goodList.vue 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261
  1. <template>
  2. <div class="back">
  3. <div class="back-left">
  4. <a-button @click="handleStockTypeModelManager(undefined,1)">添加分类</a-button>
  5. <a-button style="margin-left: 30px;">单位设置</a-button>
  6. <a-tree class="draggable-tree" :tree-data="treeData" blockNode style="width: 400px;"
  7. :replaceFields="{ children: 'children', title: 'name', key: 'id' }">
  8. <div slot="title" slot-scope="item,key,children" style="display:flex; align-items: center; height: 100%; overflow: hidden;">
  9. <a-button style="font-size: 12px" type="link" @click="() => { $message.success(item.name) }">{{ item.name}}</a-button>
  10. <div style="flex:1;height:1px;"></div>
  11. <a-button style="font-size: 12px; padding: 0 5px;" type="link" v-show="item.parentId == 0" @click="handleStockTypeModelManager(item,1)">添加分类</a-button>
  12. <a-button style="font-size: 12px; padding: 0 5px;" type="link" @click="handleStockTypeModelManager(item,2)">编辑</a-button>
  13. <a-button style="font-size: 12px; padding: 0 5px;" type="link" @click="() => { $message.success('删除--' + item.id) }">删除</a-button>
  14. </div>
  15. </a-tree>
  16. </div>
  17. <div class="back-right" style="margin-top: -28px; margin-left: 10px;">
  18. <a-card :bordered="false">
  19. <!-- 查询区域 -->
  20. <div class="table-page-search-wrapper">
  21. <a-form layout="inline" @keyup.enter.native="searchQuery">
  22. <a-row :gutter="24">
  23. <a-col :span="4">
  24. <a-form-item label="">
  25. <j-input placeholder="商品名称" v-model="queryParam.name" style="width: 200px"></j-input>
  26. </a-form-item>
  27. </a-col>
  28. <a-col :md="13" :sm="8" style="display: flex; justify-content: space-around;">
  29. <span style="float:left; overflow: hidden" class="table-page-search-submitButtons">
  30. <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
  31. </span>
  32. <span style="float:left; overflow: hidden; line-height: 32px">【全部】房间属性</span>
  33. <span style="float:left; overflow: hidden">
  34. <a-button type="primary" @click="handleAdd">新增商品</a-button>
  35. </span>
  36. <span style="float:left; overflow: hidden">
  37. <a-button type="danger" @click="searchQuery">批量删除</a-button>
  38. </span>
  39. <span style="float:left; overflow: hidden;">
  40. <a-button type="primary" style="background-color:coral;border: none"
  41. @click="searchQuery">进退货</a-button>
  42. </span>
  43. <span style="float:left; overflow: hidden">
  44. <a-button type="primary" style="background-color:seagreen;border: none"
  45. @click="searchQuery">导入商品</a-button>
  46. </span>
  47. </a-col>
  48. </a-row>
  49. </a-form>
  50. </div>
  51. <!-- 查询区域-END -->
  52. <div>
  53. <a-table ref="table" size="middle" :scroll="{ x: true }" bordered rowKey="id" :columns="columns"
  54. :dataSource="dataSource" :pagination="ipagination" :loading="false" :rowSelection="{
  55. selectedRowKeys: selectedRowKeys,
  56. onChange: onSelectChange,
  57. }" class="j-table-force-nowrap" @change="handleTableChange">
  58. </a-table>
  59. </div>
  60. <!-- <room-layout-form ref="modalForm" @ok="modalFormOk"></room-layout-form> -->
  61. <stock-type-model ref="stockTypeModel" @ok="onSave"></stock-type-model>
  62. </a-card>
  63. </div>
  64. </div>
  65. </template>
  66. <script>
  67. import { tree } from '@/api/good'
  68. import { JeecgListMixin } from "@/mixins/JeecgListMixin";
  69. import stockTypeModel from './stockTypeModel.vue'
  70. export default {
  71. name: "goodList",
  72. mixins: [JeecgListMixin],
  73. components: {
  74. stockTypeModel
  75. },
  76. data() {
  77. return {
  78. treeData: [
  79. {
  80. t: '111',
  81. k: '1',
  82. c: [
  83. {
  84. t: '222',
  85. k: '2',
  86. c: [
  87. { t: 'leaf', k: '333', disableCheckbox: true },
  88. { t: 'leaf', k: '444' },
  89. ],
  90. },
  91. {
  92. t: '555',
  93. k: '555',
  94. c: [{ k: '666', t: 'sb' }],
  95. },
  96. ],
  97. },],
  98. checkedKeys: [''],
  99. selectedKeys: [],
  100. queryParam: {},
  101. // 分页参数
  102. ipagination: {
  103. current: 1,
  104. pageSize: 10,
  105. pageSizeOptions: ["10", "20", "30"],
  106. showTotal: (total, range) => {
  107. return range[0] + "-" + range[1] + " 共" + total + "条";
  108. },
  109. showQuickJumper: true,
  110. showSizeChanger: true,
  111. total: 0,
  112. },
  113. // 表头
  114. columns: [
  115. {
  116. title: "商家",
  117. align: "center",
  118. dataIndex: "hotelName",
  119. },
  120. {
  121. title: "分类",
  122. align: "center",
  123. dataIndex: "cover",
  124. },
  125. {
  126. title: "单位",
  127. align: "center",
  128. dataIndex: "name",
  129. },
  130. {
  131. title: "条码",
  132. align: "center",
  133. dataIndex: "marketPrice",
  134. },
  135. {
  136. title: "名称",
  137. align: "center",
  138. dataIndex: "canLivePersonNum",
  139. },
  140. {
  141. title: "进价",
  142. align: "center",
  143. dataIndex: "num",
  144. },
  145. {
  146. title: "售价",
  147. align: "center",
  148. dataIndex: "state",
  149. },
  150. {
  151. title: "进货量",
  152. align: "center",
  153. dataIndex: "appState",
  154. },
  155. {
  156. title: "销售量",
  157. align: "center",
  158. dataIndex: "appState2",
  159. },
  160. {
  161. title: "库存量",
  162. align: "center",
  163. dataIndex: "storeNum",
  164. },
  165. {
  166. title: "排序",
  167. align: "center",
  168. dataIndex: "appState3",
  169. },
  170. {
  171. title: "操作",
  172. dataIndex: "action",
  173. align: "center",
  174. fixed: "right",
  175. width: 147,
  176. },
  177. ],
  178. url: {
  179. // list: 'org.jeecg.modules.business/busMarketMember/list',
  180. list: "/rooms/cesRoomLayout/list?hotelId",
  181. delete: "/rooms/cesRoomLayout/remove",
  182. deleteBatch: "/rooms/cesRoomLayout/deleteBatch",
  183. exportXlsUrl: "/rooms/cesRoomLayout/exportXls",
  184. importExcelUrl:"rooms/cesRoomLayout/importExcel",
  185. },
  186. dictOptions: {},
  187. superFieldList: [],
  188. selectedRowKeys: [],
  189. isorter: {
  190. column: "createTime",
  191. order: "desc",
  192. },
  193. stockTypeVisible:false,
  194. };
  195. },
  196. computed: {
  197. },
  198. watch: {
  199. },
  200. created() {
  201. this.loadTree();
  202. },
  203. methods: {
  204. handleStockTypeModelManager(item,type) {
  205. console.log(item, type)
  206. this.$refs.stockTypeModel.title = type === 1 ?"新增":"修改"
  207. this.$refs.stockTypeModel.visible = true
  208. },
  209. loadTree() {
  210. var that = this
  211. tree().then((res) => {
  212. if (res.success) {
  213. this.treeData = res.result;
  214. }
  215. })
  216. },
  217. onExpand(expandedKeys) {
  218. console.log('onExpand', expandedKeys);
  219. // if not set autoExpandParent to false, if children expanded, parent can not collapse.
  220. // or, you can remove all expanded children keys.
  221. },
  222. onSelect(selectedKeys, info) {
  223. console.log('onSelect', info);
  224. this.selectedKeys = selectedKeys;
  225. },
  226. },
  227. };
  228. </script>
  229. <style scoped>
  230. .back {
  231. display: flex;
  232. justify-content: space-between;
  233. }
  234. .back-left {
  235. flex: 10
  236. }
  237. .back-right {
  238. flex: 38;
  239. }
  240. .ant-tree li .ant-tree-node-content-wrapper {
  241. height: auto !important;
  242. }
  243. .ant-tree li .ant-tree-node-content-wrapper.ant-tree-node-selected {
  244. background-color: #bae7ff33;
  245. }</style>