Commit 522ea14579df9bfb36a222913b58fc968ead308c

Authored by 肖超群
2 parents 1df31863 cd35d7ec

Merge branch 'develop' of http://www.huahengrobot.com:90/wms/wms4 into develop

Showing 147 changed files with 3301 additions and 1649 deletions

Too many changes to show.

To preserve performance only 65 of 147 files are displayed.

ant-design-vue-jeecg/.env.production
1 NODE_ENV=production 1 NODE_ENV=production
2 VUE_APP_ENV=production 2 VUE_APP_ENV=production
3 outputDir=dist 3 outputDir=dist
4 -VUE_APP_API_BASE_URL=http://172.16.29.77:8081/wms 4 +VUE_APP_API_BASE_URL=http://127.0.0.1:8080/wms
5 VUE_APP_CAS_BASE_URL=http://localhost:8443/cas 5 VUE_APP_CAS_BASE_URL=http://localhost:8443/cas
6 VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview 6 VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview
7 \ No newline at end of file 7 \ No newline at end of file
ant-design-vue-jeecg/pom.xml
@@ -68,7 +68,7 @@ @@ -68,7 +68,7 @@
68 <goal>npm</goal> 68 <goal>npm</goal>
69 </goals> 69 </goals>
70 <configuration> 70 <configuration>
71 - <arguments>run build_development</arguments> 71 + <arguments>run build</arguments>
72 </configuration> 72 </configuration>
73 </execution> 73 </execution>
74 </executions> 74 </executions>
ant-design-vue-jeecg/src/components/jeecg/modal/JPopupOnlReport.vue
@@ -8,22 +8,28 @@ @@ -8,22 +8,28 @@
8 wrapClassName="j-popup-modal" 8 wrapClassName="j-popup-modal"
9 @ok="handleSubmit" 9 @ok="handleSubmit"
10 @cancel="handleCancel" 10 @cancel="handleCancel"
11 - cancelText="关闭">  
12 - 11 + cancelText="关闭"
  12 + >
13 <div class="table-page-search-wrapper"> 13 <div class="table-page-search-wrapper">
14 <a-form layout="inline" @keyup.enter.native="searchByquery"> 14 <a-form layout="inline" @keyup.enter.native="searchByquery">
15 <a-row :gutter="24" v-if="showSearchFlag"> 15 <a-row :gutter="24" v-if="showSearchFlag">
16 - <template v-for="(item,index) in queryInfo">  
17 - <template v-if=" item.hidden==='1' ">  
18 - <a-col :md="8" :sm="24" :key=" 'query'+index " v-show="toggleSearchStatus">  
19 - <online-query-form-item :queryParam="queryParam" :item="item"  
20 - :dictOptions="dictOptions"></online-query-form-item> 16 + <template v-for="(item, index) in queryInfo">
  17 + <template v-if="item.hidden === '1'">
  18 + <a-col :md="8" :sm="24" :key="'query' + index" v-show="toggleSearchStatus">
  19 + <online-query-form-item
  20 + :queryParam="queryParam"
  21 + :item="item"
  22 + :dictOptions="dictOptions"
  23 + ></online-query-form-item>
21 </a-col> 24 </a-col>
22 </template> 25 </template>
23 <template v-else> 26 <template v-else>
24 - <a-col :md="8" :sm="24" :key=" 'query'+index ">  
25 - <online-query-form-item :queryParam="queryParam" :item="item"  
26 - :dictOptions="dictOptions"></online-query-form-item> 27 + <a-col :md="8" :sm="24" :key="'query' + index">
  28 + <online-query-form-item
  29 + :queryParam="queryParam"
  30 + :item="item"
  31 + :dictOptions="dictOptions"
  32 + ></online-query-form-item>
27 </a-col> 33 </a-col>
28 </template> 34 </template>
29 </template> 35 </template>
@@ -34,18 +40,17 @@ @@ -34,18 +40,17 @@
34 <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button> 40 <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
35 <a @click="handleToggleSearch" style="margin-left: 8px"> 41 <a @click="handleToggleSearch" style="margin-left: 8px">
36 {{ toggleSearchStatus ? '收起' : '展开' }} 42 {{ toggleSearchStatus ? '收起' : '展开' }}
37 - <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> 43 + <a-icon :type="toggleSearchStatus ? 'up' : 'down'" />
38 </a> 44 </a>
39 </span> 45 </span>
40 </a-col> 46 </a-col>
41 -  
42 </a-row> 47 </a-row>
43 </a-form> 48 </a-form>
44 </div> 49 </div>
45 50
46 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 51 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
47 <i class="anticon anticon-info-circle ant-alert-icon"></i> 52 <i class="anticon anticon-info-circle ant-alert-icon"></i>
48 - 已选择&nbsp;<a style="font-weight: 600">{{ table.selectedRowKeys.length }}</a>项&nbsp;&nbsp; 53 + 已选择 <a style="font-weight: 600">{{ table.selectedRowKeys.length }}</a> 项
49 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 54 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
50 55
51 <a v-if="!showSearchFlag" style="margin-left: 24px" @click="onlyReload">刷新</a> 56 <a v-if="!showSearchFlag" style="margin-left: 24px" @click="onlyReload">刷新</a>
@@ -60,25 +65,29 @@ @@ -60,25 +65,29 @@
60 :dataSource="table.dataSource" 65 :dataSource="table.dataSource"
61 :pagination="table.pagination" 66 :pagination="table.pagination"
62 :loading="table.loading" 67 :loading="table.loading"
63 - :rowSelection="{type:rowSelectionType,fixed:true,selectedRowKeys: table.selectedRowKeys, onChange: handleChangeInTableSelect}" 68 + :rowSelection="{
  69 + type: rowSelectionType,
  70 + fixed: true,
  71 + selectedRowKeys: table.selectedRowKeys,
  72 + onChange: handleChangeInTableSelect
  73 + }"
64 @change="handleChangeInTable" 74 @change="handleChangeInTable"
65 style="min-height: 300px" 75 style="min-height: 300px"
66 :scroll="tableScroll" 76 :scroll="tableScroll"
67 - :customRow="clickThenCheck"> 77 + :customRow="clickThenCheck"
  78 + >
68 </a-table> 79 </a-table>
69 -  
70 -  
71 </j-modal> 80 </j-modal>
72 </template> 81 </template>
73 82
74 <script> 83 <script>
75 -import {getAction} from '@/api/manage'  
76 -import {filterObj} from '@/utils/util'  
77 -import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'  
78 -import {httpGroupRequest} from '@/api/GroupRequest.js' 84 +import { getAction } from '@/api/manage'
  85 +import { filterObj } from '@/utils/util'
  86 +import { filterMultiDictText } from '@/components/dict/JDictSelectUtil'
  87 +import { httpGroupRequest } from '@/api/GroupRequest.js'
79 import md5 from 'md5' 88 import md5 from 'md5'
80 89
81 -const MODAL_WIDTH = 1200; 90 +const MODAL_WIDTH = 1200
82 export default { 91 export default {
83 name: 'JPopupOnlReport', 92 name: 'JPopupOnlReport',
84 props: ['multi', 'code', 'sorter', 'groupId', 'param'], 93 props: ['multi', 'code', 'sorter', 'groupId', 'param'],
@@ -86,7 +95,7 @@ export default { @@ -86,7 +95,7 @@ export default {
86 data() { 95 data() {
87 return { 96 return {
88 visible: false, 97 visible: false,
89 - title: "", 98 + title: '',
90 confirmLoading: false, 99 confirmLoading: false,
91 queryInfo: [], 100 queryInfo: [],
92 toggleSearchStatus: false, 101 toggleSearchStatus: false,
@@ -119,12 +128,12 @@ export default { @@ -119,12 +128,12 @@ export default {
119 total: 0 128 total: 0
120 } 129 }
121 }, 130 },
122 - cgRpConfigId: "", 131 + cgRpConfigId: '',
123 modalWidth: MODAL_WIDTH, 132 modalWidth: MODAL_WIDTH,
124 - tableScroll: {x: true}, 133 + tableScroll: { x: true },
125 dynamicParam: {}, 134 dynamicParam: {},
126 // 排序字段,默认无排序 135 // 排序字段,默认无排序
127 - iSorter: null, 136 + iSorter: null
128 } 137 }
129 }, 138 },
130 mounted() { 139 mounted() {
@@ -140,10 +149,10 @@ export default { @@ -140,10 +149,10 @@ export default {
140 // update--begin--autor:liusq-----date:20210706------for:JPopup组件在modal中使用报错#2729------ 149 // update--begin--autor:liusq-----date:20210706------for:JPopup组件在modal中使用报错#2729------
141 if (this.visible) { 150 if (this.visible) {
142 this.dynamicParamHandler() 151 this.dynamicParamHandler()
143 - this.loadData(); 152 + this.loadData()
144 } 153 }
145 // update--begin--autor:liusq-----date:20210706------for:JPopup组件在modal中使用报错#2729------ 154 // update--begin--autor:liusq-----date:20210706------for:JPopup组件在modal中使用报错#2729------
146 - }, 155 + }
147 }, 156 },
148 sorter: { 157 sorter: {
149 immediate: true, 158 immediate: true,
@@ -151,7 +160,7 @@ export default { @@ -151,7 +160,7 @@ export default {
151 if (this.sorter) { 160 if (this.sorter) {
152 let arr = this.sorter.split('=') 161 let arr = this.sorter.split('=')
153 if (arr.length === 2 && ['asc', 'desc'].includes(arr[1].toLowerCase())) { 162 if (arr.length === 2 && ['asc', 'desc'].includes(arr[1].toLowerCase())) {
154 - this.iSorter = {column: arr[0], order: arr[1].toLowerCase()} 163 + this.iSorter = { column: arr[0], order: arr[1].toLowerCase() }
155 // 排序字段受控 164 // 排序字段受控
156 this.table.columns.forEach(col => { 165 this.table.columns.forEach(col => {
157 if (col.dataIndex === this.iSorter.column) { 166 if (col.dataIndex === this.iSorter.column) {
@@ -164,8 +173,8 @@ export default { @@ -164,8 +173,8 @@ export default {
164 console.warn('【JPopup】sorter参数不合法') 173 console.warn('【JPopup】sorter参数不合法')
165 } 174 }
166 } 175 }
167 - },  
168 - }, 176 + }
  177 + }
169 }, 178 },
170 computed: { 179 computed: {
171 showSearchFlag() { 180 showSearchFlag() {
@@ -174,7 +183,7 @@ export default { @@ -174,7 +183,7 @@ export default {
174 // 行选择框类型,根据是否多选来控制显示为单选框还是多选框 183 // 行选择框类型,根据是否多选来控制显示为单选框还是多选框
175 rowSelectionType() { 184 rowSelectionType() {
176 return this.multi ? 'checkbox' : 'radio' 185 return this.multi ? 'checkbox' : 'radio'
177 - }, 186 + }
178 }, 187 },
179 methods: { 188 methods: {
180 loadColumnsInfo() { 189 loadColumnsInfo() {
@@ -186,15 +195,15 @@ export default { @@ -186,15 +195,15 @@ export default {
186 } 195 }
187 httpGroupRequest(() => getAction(url), groupIdKey).then(res => { 196 httpGroupRequest(() => getAction(url), groupIdKey).then(res => {
188 if (res.success) { 197 if (res.success) {
189 - this.initDictOptionData(res.result.dictOptions); 198 + this.initDictOptionData(res.result.dictOptions)
190 this.cgRpConfigId = res.result.cgRpConfigId 199 this.cgRpConfigId = res.result.cgRpConfigId
191 this.title = res.result.cgRpConfigName 200 this.title = res.result.cgRpConfigName
192 let currColumns = res.result.columns 201 let currColumns = res.result.columns
193 for (let a = 0; a < currColumns.length; a++) { 202 for (let a = 0; a < currColumns.length; a++) {
194 if (currColumns[a].customRender) { 203 if (currColumns[a].customRender) {
195 - let dictCode = currColumns[a].customRender;  
196 - currColumns[a].customRender = (text) => {  
197 - return filterMultiDictText(this.dictOptions[dictCode], text + ""); 204 + let dictCode = currColumns[a].customRender
  205 + currColumns[a].customRender = text => {
  206 + return filterMultiDictText(this.dictOptions[dictCode], text + '')
198 } 207 }
199 } 208 }
200 // 排序字段受控 209 // 排序字段受控
@@ -207,8 +216,14 @@ export default { @@ -207,8 +216,14 @@ export default {
207 } else { 216 } else {
208 this.$error({ 217 this.$error({
209 title: '出错了', 218 title: '出错了',
210 - content: (<p>Popup初始化失败,请检查你的配置或稍后重试!<br/>错误信息如下:{res.message}</p>),  
211 - onOk: () => this.close(), 219 + content: (
  220 + <p>
  221 + Popup初始化失败,请检查你的配置或稍后重试!
  222 + <br />
  223 + 错误信息如下:{res.message}
  224 + </p>
  225 + ),
  226 + onOk: () => this.close()
212 }) 227 })
213 } 228 }
214 }) 229 })
@@ -220,7 +235,7 @@ export default { @@ -220,7 +235,7 @@ export default {
220 if (this.groupId) { 235 if (this.groupId) {
221 groupIdKey = this.groupId + url 236 groupIdKey = this.groupId + url
222 } 237 }
223 - httpGroupRequest(() => getAction(url), groupIdKey).then((res) => { 238 + httpGroupRequest(() => getAction(url), groupIdKey).then(res => {
224 // console.log("获取查询条件", res); 239 // console.log("获取查询条件", res);
225 if (res.success) { 240 if (res.success) {
226 this.dynamicParamHandler(res.result) 241 this.dynamicParamHandler(res.result)
@@ -242,7 +257,7 @@ export default { @@ -242,7 +257,7 @@ export default {
242 queryTemp[item.field] = '' 257 queryTemp[item.field] = ''
243 } 258 }
244 } 259 }
245 - this.queryParam = {...queryTemp} 260 + this.queryParam = { ...queryTemp }
246 } 261 }
247 let dynamicTemp = {} 262 let dynamicTemp = {}
248 if (this.param) { 263 if (this.param) {
@@ -258,13 +273,13 @@ export default { @@ -258,13 +273,13 @@ export default {
258 dynamicTemp[key] = this.param[key] 273 dynamicTemp[key] = this.param[key]
259 }) 274 })
260 } 275 }
261 - this.dynamicParam = {...dynamicTemp} 276 + this.dynamicParam = { ...dynamicTemp }
262 }, 277 },
263 loadData(arg) { 278 loadData(arg) {
264 if (arg == 1) { 279 if (arg == 1) {
265 this.table.pagination.current = 1 280 this.table.pagination.current = 1
266 } 281 }
267 - let params = this.getQueryParams();//查询条件 282 + let params = this.getQueryParams() //查询条件
268 this.table.loading = true 283 this.table.loading = true
269 let url = `${this.url.getData}${this.cgRpConfigId}` 284 let url = `${this.url.getData}${this.cgRpConfigId}`
270 //缓存key 285 //缓存key
@@ -293,10 +308,10 @@ export default { @@ -293,10 +308,10 @@ export default {
293 paramTarget['self_' + key] = this.dynamicParam[key] 308 paramTarget['self_' + key] = this.dynamicParam[key]
294 }) 309 })
295 } 310 }
296 - let param = Object.assign(paramTarget, this.queryParam, this.iSorter);  
297 - param.pageNo = this.table.pagination.current;  
298 - param.pageSize = this.table.pagination.pageSize;  
299 - return filterObj(param); 311 + let param = Object.assign(paramTarget, this.queryParam, this.iSorter)
  312 + param.pageNo = this.table.pagination.current
  313 + param.pageSize = this.table.pagination.pageSize
  314 + return filterObj(param)
300 }, 315 },
301 handleChangeInTableSelect(selectedRowKeys, selectionRows) { 316 handleChangeInTableSelect(selectedRowKeys, selectionRows) {
302 //update-begin-author:taoyan date:2020902 for:【issue】开源online的几个问题 LOWCOD-844 317 //update-begin-author:taoyan date:2020902 for:【issue】开源online的几个问题 LOWCOD-844
@@ -307,7 +322,7 @@ export default { @@ -307,7 +322,7 @@ export default {
307 } else { 322 } else {
308 //当两者长度不一的时候 需要判断 323 //当两者长度不一的时候 需要判断
309 let keys = this.table.selectedRowKeys 324 let keys = this.table.selectedRowKeys
310 - let rows = this.table.selectionRows; 325 + let rows = this.table.selectionRows
311 //这个循环 添加新的记录 326 //这个循环 添加新的记录
312 for (let i = 0; i < selectionRows.length; i++) { 327 for (let i = 0; i < selectionRows.length; i++) {
313 let combineKey = this.combineRowKey(selectionRows[i]) 328 let combineKey = this.combineRowKey(selectionRows[i])
@@ -350,20 +365,20 @@ export default { @@ -350,20 +365,20 @@ export default {
350 handleSubmit() { 365 handleSubmit() {
351 if (!this.multi) { 366 if (!this.multi) {
352 if (this.table.selectionRows && this.table.selectionRows.length > 1) { 367 if (this.table.selectionRows && this.table.selectionRows.length > 1) {
353 - this.$message.warning("请选择一条记录") 368 + this.$message.warning('请选择一条记录')
354 return false 369 return false
355 } 370 }
356 } 371 }
357 if (!this.table.selectionRows || this.table.selectionRows.length == 0) { 372 if (!this.table.selectionRows || this.table.selectionRows.length == 0) {
358 - this.$message.warning("请选择一条记录") 373 + this.$message.warning('请选择一条记录')
359 return false 374 return false
360 } 375 }
361 - this.$emit('ok', this.table.selectionRows); 376 + this.$emit('ok', this.table.selectionRows)
362 this.close() 377 this.close()
363 }, 378 },
364 close() { 379 close() {
365 - this.$emit('close');  
366 - this.visible = false; 380 + this.$emit('close')
  381 + this.visible = false
367 this.onClearSelected() 382 this.onClearSelected()
368 }, 383 },
369 show() { 384 show() {
@@ -371,19 +386,19 @@ export default { @@ -371,19 +386,19 @@ export default {
371 this.loadColumnsInfo() 386 this.loadColumnsInfo()
372 }, 387 },
373 handleToggleSearch() { 388 handleToggleSearch() {
374 - this.toggleSearchStatus = !this.toggleSearchStatus; 389 + this.toggleSearchStatus = !this.toggleSearchStatus
375 }, 390 },
376 searchByquery() { 391 searchByquery() {
377 - this.loadData(1); 392 + this.loadData(1)
378 }, 393 },
379 onlyReload() { 394 onlyReload() {
380 - this.loadData(); 395 + this.loadData()
381 }, 396 },
382 searchReset() { 397 searchReset() {
383 Object.keys(this.queryParam).forEach(key => { 398 Object.keys(this.queryParam).forEach(key => {
384 - this.queryParam[key] = "" 399 + this.queryParam[key] = ''
385 }) 400 })
386 - this.loadData(1); 401 + this.loadData(1)
387 }, 402 },
388 onClearSelected() { 403 onClearSelected() {
389 this.table.selectedRowKeys = [] 404 this.table.selectedRowKeys = []
@@ -415,7 +430,8 @@ export default { @@ -415,7 +430,8 @@ export default {
415 click: () => { 430 click: () => {
416 let rowKey = this.combineRowKey(record) 431 let rowKey = this.combineRowKey(record)
417 if (!this.table.selectedRowKeys || this.table.selectedRowKeys.length == 0) { 432 if (!this.table.selectedRowKeys || this.table.selectedRowKeys.length == 0) {
418 - let arr1 = [], arr2 = [] 433 + let arr1 = [],
  434 + arr2 = []
419 arr1.push(record) 435 arr1.push(record)
420 arr2.push(rowKey) 436 arr2.push(rowKey)
421 this.table.selectedRowKeys = arr2 437 this.table.selectedRowKeys = arr2
@@ -426,8 +442,8 @@ export default { @@ -426,8 +442,8 @@ export default {
426 this.table.selectionRows.push(record) 442 this.table.selectionRows.push(record)
427 } else { 443 } else {
428 let rowKey_index = this.table.selectedRowKeys.indexOf(rowKey) 444 let rowKey_index = this.table.selectedRowKeys.indexOf(rowKey)
429 - this.table.selectedRowKeys.splice(rowKey_index, 1);  
430 - this.table.selectionRows.splice(rowKey_index, 1); 445 + this.table.selectedRowKeys.splice(rowKey_index, 1)
  446 + this.table.selectionRows.splice(rowKey_index, 1)
431 } 447 }
432 } 448 }
433 // 判断是否允许多选,如果不允许多选,就只存储最后一个选中的行 449 // 判断是否允许多选,如果不允许多选,就只存储最后一个选中的行
@@ -445,15 +461,13 @@ export default { @@ -445,15 +461,13 @@ export default {
445 Object.keys(dictOptions).map(k => { 461 Object.keys(dictOptions).map(k => {
446 obj[k] = dictOptions[k].filter(item => { 462 obj[k] = dictOptions[k].filter(item => {
447 return item != null 463 return item != null
448 - });  
449 - }); 464 + })
  465 + })
450 this.dictOptions = obj 466 this.dictOptions = obj
451 } 467 }
452 -  
453 } 468 }
454 } 469 }
455 </script> 470 </script>
456 471
457 <style scoped> 472 <style scoped>
458 -  
459 </style> 473 </style>
460 \ No newline at end of file 474 \ No newline at end of file
ant-design-vue-jeecg/src/components/tools/DepartSelect.vue
@@ -136,14 +136,14 @@ export default { @@ -136,14 +136,14 @@ export default {
136 }) 136 })
137 }, 137 },
138 show() { 138 show() {
139 - //如果组件传值username此处就不用loadDepartList了  
140 - this.loadDepartList().then(() => {  
141 - this.visible = true  
142 - if (!this.departList || this.departList.length <= 0) {  
143 - this.$message.warning("您尚未设置部门信息!")  
144 - this.departClear()  
145 - }  
146 - }) 139 + // 如果组件传值username此处就不用loadDepartList了
  140 + // this.loadDepartList().then(() => {
  141 + // this.visible = true
  142 + // if (!this.departList || this.departList.length <= 0) {
  143 + // this.$message.warning("您尚未设置部门信息!")
  144 + // this.departClear()
  145 + // }
  146 + // })
147 }, 147 },
148 departClear() { 148 departClear() {
149 this.departList = [] 149 this.departList = []
ant-design-vue-jeecg/src/components/tools/UserMenu.vue
@@ -40,12 +40,12 @@ @@ -40,12 +40,12 @@
40 <span v-if="isDesktop()">欢迎您,{{ nickname() }}</span> 40 <span v-if="isDesktop()">欢迎您,{{ nickname() }}</span>
41 </span> 41 </span>
42 <a-menu slot="overlay" class="user-dropdown-menu-wrapper"> 42 <a-menu slot="overlay" class="user-dropdown-menu-wrapper">
43 - <a-menu-item key="0"> 43 + <!-- <a-menu-item key="0">
44 <router-link :to="{ name: 'account-center' }"> 44 <router-link :to="{ name: 'account-center' }">
45 <a-icon type="user"/> 45 <a-icon type="user"/>
46 <span>个人中心</span> 46 <span>个人中心</span>
47 </router-link> 47 </router-link>
48 - </a-menu-item> 48 + </a-menu-item> -->
49 <a-menu-item key="1"> 49 <a-menu-item key="1">
50 <router-link :to="{ name: 'account-settings-base' }"> 50 <router-link :to="{ name: 'account-settings-base' }">
51 <a-icon type="setting"/> 51 <a-icon type="setting"/>
@@ -60,10 +60,10 @@ @@ -60,10 +60,10 @@
60 <a-icon type="setting"/> 60 <a-icon type="setting"/>
61 <span>密码修改</span> 61 <span>密码修改</span>
62 </a-menu-item> 62 </a-menu-item>
63 - <a-menu-item key="5" @click="updateCurrentDepart"> 63 + <!-- <a-menu-item key="5" @click="updateCurrentDepart">
64 <a-icon type="cluster"/> 64 <a-icon type="cluster"/>
65 <span>切换部门</span> 65 <span>切换部门</span>
66 - </a-menu-item> 66 + </a-menu-item> -->
67 <a-menu-item key="6" @click="clearCache"> 67 <a-menu-item key="6" @click="clearCache">
68 <a-icon type="sync"/> 68 <a-icon type="sync"/>
69 <span>清理缓存</span> 69 <span>清理缓存</span>
ant-design-vue-jeecg/src/views/account/settings/BaseSetting.vue
@@ -51,7 +51,7 @@ @@ -51,7 +51,7 @@
51 </a-form> 51 </a-form>
52 52
53 </a-col> 53 </a-col>
54 - <a-col :md="24" :lg="8" :style="{ minHeight: '180px' }"> 54 + <!-- <a-col :md="24" :lg="8" :style="{ minHeight: '180px' }">
55 <div class="ant-upload-preview" @click="$refs.modal.edit(1)"> 55 <div class="ant-upload-preview" @click="$refs.modal.edit(1)">
56 <a-icon type="cloud-upload-o" class="upload-icon"/> 56 <a-icon type="cloud-upload-o" class="upload-icon"/>
57 <div class="mask"> 57 <div class="mask">
@@ -59,7 +59,7 @@ @@ -59,7 +59,7 @@
59 </div> 59 </div>
60 <img :src="option.img"/> 60 <img :src="option.img"/>
61 </div> 61 </div>
62 - </a-col> 62 + </a-col> -->
63 63
64 </a-row> 64 </a-row>
65 65
ant-design-vue-jeecg/src/views/jeecg/JeecgOrderMainList.vue
@@ -57,7 +57,7 @@ @@ -57,7 +57,7 @@
57 <div> 57 <div>
58 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 58 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
59 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 59 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
60 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 60 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
61 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 61 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
62 </div> 62 </div>
63 63
ant-design-vue-jeecg/src/views/jeecg/TableExpandeSub.vue
@@ -52,7 +52,7 @@ @@ -52,7 +52,7 @@
52 <div> 52 <div>
53 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 53 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
54 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 54 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
55 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 55 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
56 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 56 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
57 </div> 57 </div>
58 58
ant-design-vue-jeecg/src/views/jeecg/tablist/JeecgOrderCustomerList.vue
@@ -22,7 +22,7 @@ @@ -22,7 +22,7 @@
22 <div> 22 <div>
23 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 23 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
24 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 24 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
25 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 25 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
26 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 26 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
27 </div> 27 </div>
28 28
ant-design-vue-jeecg/src/views/jeecg/tablist/JeecgOrderDMainList.vue
@@ -53,7 +53,7 @@ @@ -53,7 +53,7 @@
53 <div> 53 <div>
54 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 54 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
55 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 55 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
56 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 56 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
57 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 57 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
58 </div> 58 </div>
59 59
ant-design-vue-jeecg/src/views/jeecg/tablist/JeecgOrderTicketList.vue
@@ -22,7 +22,7 @@ @@ -22,7 +22,7 @@
22 <div> 22 <div>
23 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 23 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
24 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 24 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
25 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 25 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
26 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 26 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
27 </div> 27 </div>
28 28
ant-design-vue-jeecg/src/views/system/DataLogList.vue
@@ -34,8 +34,8 @@ @@ -34,8 +34,8 @@
34 <div> 34 <div>
35 <!--已选择的清空 --> 35 <!--已选择的清空 -->
36 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 36 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
37 - <i class="anticon anticon-info-circle ant-alert-icon"></i>已选择&nbsp;<a  
38 - style="font-weight: 600">{{ selectedRowKeys.length }}</a>项&nbsp;&nbsp; 37 + <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
  38 + style="font-weight: 600">{{ selectedRowKeys.length }}</a> 项
39 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 39 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
40 </div> 40 </div>
41 <a-table 41 <a-table
@@ -51,7 +51,7 @@ @@ -51,7 +51,7 @@
51 @change="handleTableChange" 51 @change="handleTableChange"
52 > 52 >
53 <!-- 字符串超长截取省略号显示--> 53 <!-- 字符串超长截取省略号显示-->
54 - <span slot="dataContent" slot-scope="text, record"> 54 + <span slot="dataContent" slot-scope="text">
55 <j-ellipsis :value="text" :length="80"/> 55 <j-ellipsis :value="text" :length="80"/>
56 </span> 56 </span>
57 </a-table> 57 </a-table>
ant-design-vue-jeecg/src/views/system/DepartList2.vue
@@ -25,7 +25,7 @@ @@ -25,7 +25,7 @@
25 <div> 25 <div>
26 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 26 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
27 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 27 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
28 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 28 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
29 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 29 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
30 </div> 30 </div>
31 <a-table 31 <a-table
ant-design-vue-jeecg/src/views/system/NewPermissionList.vue
@@ -17,9 +17,9 @@ @@ -17,9 +17,9 @@
17 <div> 17 <div>
18 18
19 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 19 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
20 - <i class="anticon anticon-info-circle ant-alert-icon"></i>已选择&nbsp;<a style="font-weight: 600">{{ 20 + <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{
21 selectedRowKeys.length 21 selectedRowKeys.length
22 - }}</a>项&nbsp;&nbsp; 22 + }}</a>
23 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 23 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
24 </div> 24 </div>
25 25
ant-design-vue-jeecg/src/views/system/PermissionList.vue
@@ -18,9 +18,9 @@ @@ -18,9 +18,9 @@
18 <div> 18 <div>
19 19
20 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 20 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
21 - <i class="anticon anticon-info-circle ant-alert-icon"></i>已选择&nbsp;<a style="font-weight: 600">{{ 21 + <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{
22 selectedRowKeys.length 22 selectedRowKeys.length
23 - }}</a>项&nbsp;&nbsp; 23 + }}</a>
24 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 24 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
25 </div> 25 </div>
26 26
ant-design-vue-jeecg/src/views/system/RoleList.vue
@@ -56,8 +56,8 @@ @@ -56,8 +56,8 @@
56 <!-- table区域-begin --> 56 <!-- table区域-begin -->
57 <div> 57 <div>
58 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 58 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
59 - <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择&nbsp;<a  
60 - style="font-weight: 600">{{ selectedRowKeys.length }}</a>项&nbsp;&nbsp; 59 + <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
  60 + style="font-weight: 600">{{ selectedRowKeys.length }}</a> 项
61 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 61 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
62 </div> 62 </div>
63 63
ant-design-vue-jeecg/src/views/system/RoleUserList.vue
@@ -31,23 +31,22 @@ @@ -31,23 +31,22 @@
31 </a-form> 31 </a-form>
32 </div> 32 </div>
33 <!-- 操作按钮区域 --> 33 <!-- 操作按钮区域 -->
34 - <div class="table-operator" style="margin: 5px 0 10px 2px"> 34 + <div class="table-operator">
35 <a-button @click="handleAdd" v-has="'role:add'" type="primary" icon="plus">新建角色</a-button> 35 <a-button @click="handleAdd" v-has="'role:add'" type="primary" icon="plus">新建角色</a-button>
36 <!--<a-button @click="handleEdit(model1)" type="primary" icon="plus">角色编辑</a-button>--> 36 <!--<a-button @click="handleEdit(model1)" type="primary" icon="plus">角色编辑</a-button>-->
37 - <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader"  
38 - :action="importExcelUrl" @change="handleImportExcel"> 37 + <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
39 <a-button v-has="'role:import'" type="primary" icon="import">导入</a-button> 38 <a-button v-has="'role:import'" type="primary" icon="import">导入</a-button>
40 </a-upload> 39 </a-upload>
41 <a-button v-has="'role:export'" type="primary" icon="download" @click="handleExportXls('角色管理')">导出</a-button> 40 <a-button v-has="'role:export'" type="primary" icon="download" @click="handleExportXls('角色管理')">导出</a-button>
42 </div> 41 </div>
43 42
44 - <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">  
45 - <i class="anticon anticon-info-circle ant-alert-icon">  
46 - </i> 已选择 <a><b>{{ selectedRowKeys1.length }}</b></a>项  
47 - <a style="margin-left: 24px" @click="onClearSelected1">清空</a>  
48 - </div> 43 + <div>
  44 + <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
  45 + <i class="anticon anticon-info-circle ant-alert-icon">
  46 + </i> 已选择 <a><b>{{ selectedRowKeys1.length }}</b></a> 项
  47 + <a style="margin-left: 24px" @click="onClearSelected1">清空</a>
  48 + </div>
49 49
50 - <div style="margin-top: 15px">  
51 <a-table 50 <a-table
52 style="height:500px" 51 style="height:500px"
53 ref="table" 52 ref="table"
@@ -60,30 +59,26 @@ @@ -60,30 +59,26 @@
60 :loading="loading" 59 :loading="loading"
61 :rowSelection="{selectedRowKeys: selectedRowKeys1, onChange: onSelectChange1, type:'radio'}" 60 :rowSelection="{selectedRowKeys: selectedRowKeys1, onChange: onSelectChange1, type:'radio'}"
62 @change="handleTableChange"> 61 @change="handleTableChange">
63 - <span slot="action" slot-scope="text, record">  
64 - <a @click="handleOpen(record)">用户</a>  
65 - <a-divider type="vertical"/>  
66 -  
67 -  
68 - <a-dropdown>  
69 - <a class="ant-dropdown-link">  
70 - 更多 <a-icon type="down"/>  
71 - </a>  
72 - <a-menu slot="overlay">  
73 - <a-menu-item>  
74 - <a v-has="'role:authorize'" @click="handlePerssion(record.id)">授权</a>  
75 - </a-menu-item>  
76 - <a-menu-item>  
77 - <a v-has="'role:edit'" @click="handleEdit(record)">编辑</a>  
78 - </a-menu-item>  
79 - <a-menu-item>  
80 - <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete1(record.id)">  
81 - <a v-has="'role:delete'">删除</a>  
82 - </a-popconfirm>  
83 - </a-menu-item>  
84 - </a-menu>  
85 - </a-dropdown>  
86 - </span> 62 + <span slot="action" slot-scope="text, record">
  63 + <a @click="handleOpen(record)">用户</a>
  64 + <a-divider type="vertical"/>
  65 + <a-dropdown>
  66 + <a class="ant-dropdown-link">更多<a-icon type="down"/></a>
  67 + <a-menu slot="overlay">
  68 + <a-menu-item>
  69 + <a v-has="'role:authorize'" @click="handlePerssion(record.id)">授权</a>
  70 + </a-menu-item>
  71 + <a-menu-item>
  72 + <a v-has="'role:edit'" @click="handleEdit(record)">编辑</a>
  73 + </a-menu-item>
  74 + <a-menu-item>
  75 + <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete1(record.id)">
  76 + <a v-has="'role:delete'">删除</a>
  77 + </a-popconfirm>
  78 + </a-menu-item>
  79 + </a-menu>
  80 + </a-dropdown>
  81 + </span>
87 </a-table> 82 </a-table>
88 </div> 83 </div>
89 <!-- 右侧的角色权限配置 --> 84 <!-- 右侧的角色权限配置 -->
ant-design-vue-jeecg/src/views/system/SysAnnouncementList.vue
@@ -52,7 +52,7 @@ @@ -52,7 +52,7 @@
52 <div> 52 <div>
53 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 53 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
54 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 54 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
55 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 55 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
56 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 56 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
57 </div> 57 </div>
58 58
ant-design-vue-jeecg/src/views/system/SysCategoryList.vue
@@ -26,7 +26,7 @@ @@ -26,7 +26,7 @@
26 <div> 26 <div>
27 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 27 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
28 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 28 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
29 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 29 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
30 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 30 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
31 </div> 31 </div>
32 32
ant-design-vue-jeecg/src/views/system/SysPositionList.vue
@@ -64,7 +64,7 @@ @@ -64,7 +64,7 @@
64 <div> 64 <div>
65 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 65 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
66 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 66 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
67 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 67 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
68 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 68 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
69 </div> 69 </div>
70 70
ant-design-vue-jeecg/src/views/system/SysUserOnlineList.vue
@@ -24,7 +24,7 @@ @@ -24,7 +24,7 @@
24 <div> 24 <div>
25 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 25 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
26 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 26 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
27 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 27 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
28 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 28 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
29 </div> 29 </div>
30 30
ant-design-vue-jeecg/src/views/system/TenantList.vue
@@ -29,7 +29,7 @@ @@ -29,7 +29,7 @@
29 <div> 29 <div>
30 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 30 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
31 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 31 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
32 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 32 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
33 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 33 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
34 </div> 34 </div>
35 35
ant-design-vue-jeecg/src/views/system/UserList.vue
@@ -61,7 +61,7 @@ @@ -61,7 +61,7 @@
61 </div> 61 </div>
62 62
63 <!-- 操作按钮区域 --> 63 <!-- 操作按钮区域 -->
64 - <div class="table-operator" style="border-top: 5px"> 64 + <div class="table-operator">
65 <a-button v-has="'user:add'" @click="handleAdd" type="primary" icon="plus">添加用户</a-button> 65 <a-button v-has="'user:add'" @click="handleAdd" type="primary" icon="plus">添加用户</a-button>
66 <a-button v-has="'user:export'" type="primary" icon="download" @click="handleExportXls('用户信息')">导出</a-button> 66 <a-button v-has="'user:export'" type="primary" icon="download" @click="handleExportXls('用户信息')">导出</a-button>
67 <a-upload v-has="'user:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" 67 <a-upload v-has="'user:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"
@@ -97,8 +97,8 @@ @@ -97,8 +97,8 @@
97 <!-- table区域-begin --> 97 <!-- table区域-begin -->
98 <div> 98 <div>
99 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 99 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
100 - <i class="anticon anticon-info-circle ant-alert-icon"></i>已选择&nbsp;<a  
101 - style="font-weight: 600">{{ selectedRowKeys.length }}</a>项&nbsp;&nbsp; 100 + <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择
  101 + <a style="font-weight: 600">{{ selectedRowKeys.length }}</a> 项
102 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 102 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
103 </div> 103 </div>
104 104
ant-design-vue-jeecg/src/views/system/compare/CompareWcsLocationTask.vue
@@ -23,6 +23,25 @@ @@ -23,6 +23,25 @@
23 /> 23 />
24 </a-form-item> 24 </a-form-item>
25 </a-col> 25 </a-col>
  26 + <a-col :xl="12" :lg="14" :md="16" :sm="24">
  27 + <a-form-item label="任务创建时间">
  28 + <j-date
  29 + :show-time="true"
  30 + date-format="YYYY-MM-DD HH:mm:ss"
  31 + placeholder="请选择开始时间"
  32 + class="query-group-cust"
  33 + v-model="queryParam.taskCreateTimeBegin"
  34 + ></j-date>
  35 + <span class="query-group-split-cust"></span>
  36 + <j-date
  37 + :show-time="true"
  38 + date-format="YYYY-MM-DD HH:mm:ss"
  39 + placeholder="请选择结束时间"
  40 + class="query-group-cust"
  41 + v-model="queryParam.taskCreateTimeEnd"
  42 + ></j-date>
  43 + </a-form-item>
  44 + </a-col>
26 <a-col :xl="6" :lg="7" :md="8" :sm="24"> 45 <a-col :xl="6" :lg="7" :md="8" :sm="24">
27 <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> 46 <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
28 <a-button type="primary" @click="searchQuery" icon="search">查询</a-button> 47 <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
@@ -90,20 +109,40 @@ export default { @@ -90,20 +109,40 @@ export default {
90 required: false 109 required: false
91 } 110 }
92 }, 111 },
  112 +
93 watch: { 113 watch: {
94 mainId: { 114 mainId: {
95 immediate: true, 115 immediate: true,
96 handler(val) { 116 handler(val) {
97 - if (!this.mainId) {  
98 - this.clearList()  
99 - } else {  
100 - this.queryParam['locationCode'] = val  
101 - this.loadData(1)  
102 - } 117 + var nowDate = new Date()
  118 + this.queryParam['taskCreateTimeBegin'] = new Date(nowDate.getTime() - 90 * 24 * 60 * 60 * 1000).format('yyyy-MM-dd hh:mm:ss')
  119 + this.queryParam['taskCreateTimeEnd'] = nowDate.format('yyyy-MM-dd hh:mm:ss')
  120 + this.queryParam['locationCode'] = val
  121 + this.loadData(1)
103 } 122 }
104 } 123 }
105 }, 124 },
106 data() { 125 data() {
  126 + Date.prototype.format = function(fmt) {
  127 + var o = {
  128 + 'M+': this.getMonth() + 1, //月份
  129 + 'd+': this.getDate(), //日
  130 + 'h+': this.getHours(), //小时
  131 + 'm+': this.getMinutes(), //分
  132 + 's+': this.getSeconds(), //秒
  133 + 'q+': Math.floor((this.getMonth() + 3) / 3), //季度
  134 + S: this.getMilliseconds() //毫秒
  135 + }
  136 + if (/(y+)/.test(fmt)) {
  137 + fmt = fmt.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length))
  138 + }
  139 + for (var k in o) {
  140 + if (new RegExp('(' + k + ')').test(fmt)) {
  141 + fmt = fmt.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length))
  142 + }
  143 + }
  144 + return fmt
  145 + }
107 return { 146 return {
108 description: '库位任务信息比较页面', 147 description: '库位任务信息比较页面',
109 disableMixinCreated: true, 148 disableMixinCreated: true,
@@ -227,7 +266,6 @@ export default { @@ -227,7 +266,6 @@ export default {
227 } 266 }
228 }) 267 })
229 } 268 }
230 -  
231 // 获取 wcs_task_status 269 // 获取 wcs_task_status
232 if (getDictItemsFromCache('wcs_task_status')) { 270 if (getDictItemsFromCache('wcs_task_status')) {
233 this.wcsTaskStatusList = getDictItemsFromCache('wcs_task_status') 271 this.wcsTaskStatusList = getDictItemsFromCache('wcs_task_status')
ant-design-vue-jeecg/src/views/system/config/AddressList.vue
@@ -49,7 +49,7 @@ @@ -49,7 +49,7 @@
49 <div> 49 <div>
50 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 50 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
51 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 51 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
52 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 52 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
53 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 53 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
54 </div> 54 </div>
55 55
ant-design-vue-jeecg/src/views/system/config/AgvPortList.vue
@@ -47,7 +47,7 @@ @@ -47,7 +47,7 @@
47 <!-- table区域-begin --> 47 <!-- table区域-begin -->
48 <div> 48 <div>
49 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 49 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
50 - <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a> 50 + <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>
51 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 51 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
52 </div> 52 </div>
53 53
ant-design-vue-jeecg/src/views/system/config/BomDetailList.vue
@@ -31,7 +31,7 @@ @@ -31,7 +31,7 @@
31 <div> 31 <div>
32 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 32 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
33 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 33 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
34 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 34 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
35 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 35 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
36 </div> 36 </div>
37 37
ant-design-vue-jeecg/src/views/system/config/BomHeaderList.vue
@@ -43,7 +43,7 @@ @@ -43,7 +43,7 @@
43 <div> 43 <div>
44 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 44 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
45 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 45 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
46 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 46 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
47 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 47 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
48 </div> 48 </div>
49 49
ant-design-vue-jeecg/src/views/system/config/CarrierList.vue
@@ -34,7 +34,7 @@ @@ -34,7 +34,7 @@
34 <div> 34 <div>
35 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 35 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
36 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 36 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
37 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 37 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
38 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 38 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
39 </div> 39 </div>
40 40
ant-design-vue-jeecg/src/views/system/config/CompanyList.vue
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button> 20 <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
21 <a @click="handleToggleSearch" style="margin-left: 8px"> 21 <a @click="handleToggleSearch" style="margin-left: 8px">
22 {{ toggleSearchStatus ? '收起' : '展开' }} 22 {{ toggleSearchStatus ? '收起' : '展开' }}
23 - <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> 23 + <a-icon :type="toggleSearchStatus ? 'up' : 'down'" />
24 </a> 24 </a>
25 </span> 25 </span>
26 </a-col> 26 </a-col>
@@ -33,19 +33,27 @@ @@ -33,19 +33,27 @@
33 <div class="table-operator"> 33 <div class="table-operator">
34 <a-button @click="handleAdd" v-has="'company:add'" type="primary" icon="plus">新增</a-button> 34 <a-button @click="handleAdd" v-has="'company:add'" type="primary" icon="plus">新增</a-button>
35 <a-button v-has="'company:export'" type="primary" icon="download" @click="handleExportXls('货主')">导出</a-button> 35 <a-button v-has="'company:export'" type="primary" icon="download" @click="handleExportXls('货主')">导出</a-button>
36 - <a-upload v-has="'company:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"  
37 - @change="handleImportExcel"> 36 + <a-upload
  37 + v-has="'company:import'"
  38 + name="file"
  39 + :showUploadList="false"
  40 + :multiple="false"
  41 + :headers="tokenHeader"
  42 + :action="importExcelUrl"
  43 + @change="handleImportExcel"
  44 + >
38 <a-button type="primary" icon="import">导入</a-button> 45 <a-button type="primary" icon="import">导入</a-button>
39 </a-upload> 46 </a-upload>
40 <a-dropdown v-if="selectedRowKeys.length > 0"> 47 <a-dropdown v-if="selectedRowKeys.length > 0">
41 <a-menu slot="overlay" v-has="'company:deleteBatch'"> 48 <a-menu slot="overlay" v-has="'company:deleteBatch'">
42 <a-menu-item key="1" @click="batchDel"> 49 <a-menu-item key="1" @click="batchDel">
43 - <a-icon type="deleteBatch"/> 50 + <a-icon type="deleteBatch" />
44 删除 51 删除
45 </a-menu-item> 52 </a-menu-item>
46 </a-menu> 53 </a-menu>
47 - <a-button style="margin-left: 8px"> 批量操作  
48 - <a-icon type="down"/> 54 + <a-button style="margin-left: 8px">
  55 + 批量操作
  56 + <a-icon type="down" />
49 </a-button> 57 </a-button>
50 </a-dropdown> 58 </a-dropdown>
51 </div> 59 </div>
@@ -53,49 +61,47 @@ @@ -53,49 +61,47 @@
53 <!-- table区域-begin --> 61 <!-- table区域-begin -->
54 <div> 62 <div>
55 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 63 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
56 - <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a  
57 - style="font-weight: 600">{{ selectedRowKeys.length }}</a>项 64 + <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择
  65 + <a style="font-weight: 600">{{ selectedRowKeys.length }}</a> 项
58 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 66 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
59 </div> 67 </div>
60 68
61 <a-table 69 <a-table
62 ref="table" 70 ref="table"
63 size="middle" 71 size="middle"
64 - :scroll="{x:true}" 72 + :scroll="{ x: true }"
65 bordered 73 bordered
66 rowKey="id" 74 rowKey="id"
67 :columns="columns" 75 :columns="columns"
68 :dataSource="dataSource" 76 :dataSource="dataSource"
69 :pagination="ipagination" 77 :pagination="ipagination"
70 :loading="loading" 78 :loading="loading"
71 - :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" 79 + :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
72 class="j-table-force-nowrap" 80 class="j-table-force-nowrap"
73 - @change="handleTableChange">  
74 - 81 + @change="handleTableChange"
  82 + >
75 <template slot="htmlSlot" slot-scope="text"> 83 <template slot="htmlSlot" slot-scope="text">
76 <div v-html="text"></div> 84 <div v-html="text"></div>
77 </template> 85 </template>
78 <template slot="imgSlot" slot-scope="text"> 86 <template slot="imgSlot" slot-scope="text">
79 <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span> 87 <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
80 - <img v-else :src="getImgView(text)" height="25px" alt=""  
81 - style="max-width:80px;font-size: 12px;font-style: italic;"/> 88 + <img
  89 + v-else
  90 + :src="getImgView(text)"
  91 + height="25px"
  92 + alt=""
  93 + style="max-width:80px;font-size: 12px;font-style: italic;"
  94 + />
82 </template> 95 </template>
83 <template slot="fileSlot" slot-scope="text"> 96 <template slot="fileSlot" slot-scope="text">
84 <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span> 97 <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
85 - <a-button  
86 - v-else  
87 - :ghost="true"  
88 - type="primary"  
89 - icon="download"  
90 - size="small"  
91 - @click="downloadFile(text)"> 98 + <a-button v-else :ghost="true" type="primary" icon="download" size="small" @click="downloadFile(text)">
92 下载 99 下载
93 </a-button> 100 </a-button>
94 </template> 101 </template>
95 102
96 <span slot="action" slot-scope="text, record"> 103 <span slot="action" slot-scope="text, record">
97 - <a v-has="'company:edit'" @click="handleEdit(record)">编辑</a>  
98 - <a-divider type="vertical"/> 104 + <a v-has="'company:edit'" @click="handleEdit(record)">编辑<a-divider type="vertical" /></a>
99 <a-dropdown> 105 <a-dropdown>
100 <a class="ant-dropdown-link">更多 <a-icon type="down"/></a> 106 <a class="ant-dropdown-link">更多 <a-icon type="down"/></a>
101 <a-menu slot="overlay"> 107 <a-menu slot="overlay">
@@ -110,7 +116,6 @@ @@ -110,7 +116,6 @@
110 </a-menu> 116 </a-menu>
111 </a-dropdown> 117 </a-dropdown>
112 </span> 118 </span>
113 -  
114 </a-table> 119 </a-table>
115 </div> 120 </div>
116 121
@@ -119,10 +124,9 @@ @@ -119,10 +124,9 @@
119 </template> 124 </template>
120 125
121 <script> 126 <script>
122 -  
123 import '@/assets/less/TableExpand.less' 127 import '@/assets/less/TableExpand.less'
124 -import {mixinDevice} from '@/utils/mixin'  
125 -import {JeecgListMixin} from '@/mixins/JeecgListMixin' 128 +import { mixinDevice } from '@/utils/mixin'
  129 +import { JeecgListMixin } from '@/mixins/JeecgListMixin'
126 import CompanyModal from './modules/CompanyModal' 130 import CompanyModal from './modules/CompanyModal'
127 131
128 export default { 132 export default {
@@ -141,105 +145,103 @@ export default { @@ -141,105 +145,103 @@ export default {
141 dataIndex: '', 145 dataIndex: '',
142 key: 'rowIndex', 146 key: 'rowIndex',
143 width: 60, 147 width: 60,
144 - align: "center",  
145 - customRender: function (t, r, index) {  
146 - return parseInt(index) + 1; 148 + align: 'center',
  149 + customRender: function(t, r, index) {
  150 + return parseInt(index) + 1
147 } 151 }
148 }, 152 },
149 { 153 {
150 title: '货主编码', 154 title: '货主编码',
151 - align: "center", 155 + align: 'center',
152 dataIndex: 'code' 156 dataIndex: 'code'
153 }, 157 },
154 { 158 {
155 title: '货主名称', 159 title: '货主名称',
156 - align: "center", 160 + align: 'center',
157 dataIndex: 'name' 161 dataIndex: 'name'
158 }, 162 },
159 { 163 {
160 title: '地址', 164 title: '地址',
161 - align: "center", 165 + align: 'center',
162 dataIndex: 'address' 166 dataIndex: 'address'
163 }, 167 },
164 { 168 {
165 title: '区县', 169 title: '区县',
166 - align: "center", 170 + align: 'center',
167 dataIndex: 'district' 171 dataIndex: 'district'
168 }, 172 },
169 { 173 {
170 title: '城市', 174 title: '城市',
171 - align: "center", 175 + align: 'center',
172 dataIndex: 'city' 176 dataIndex: 'city'
173 }, 177 },
174 { 178 {
175 title: '省份', 179 title: '省份',
176 - align: "center", 180 + align: 'center',
177 dataIndex: 'province' 181 dataIndex: 'province'
178 }, 182 },
179 { 183 {
180 title: '国家', 184 title: '国家',
181 - align: "center", 185 + align: 'center',
182 dataIndex: 'country' 186 dataIndex: 'country'
183 }, 187 },
184 { 188 {
185 title: '邮编', 189 title: '邮编',
186 - align: "center", 190 + align: 'center',
187 dataIndex: 'postalcode' 191 dataIndex: 'postalcode'
188 }, 192 },
189 { 193 {
190 title: '联系人', 194 title: '联系人',
191 - align: "center", 195 + align: 'center',
192 dataIndex: 'attentionto' 196 dataIndex: 'attentionto'
193 }, 197 },
194 { 198 {
195 title: '联系电话', 199 title: '联系电话',
196 - align: "center", 200 + align: 'center',
197 dataIndex: 'phonenum' 201 dataIndex: 'phonenum'
198 }, 202 },
199 { 203 {
200 title: '操作', 204 title: '操作',
201 dataIndex: 'action', 205 dataIndex: 'action',
202 - align: "center",  
203 - fixed: "right", 206 + align: 'center',
  207 + fixed: 'right',
204 width: 147, 208 width: 147,
205 - scopedSlots: {customRender: 'action'} 209 + scopedSlots: { customRender: 'action' }
206 } 210 }
207 ], 211 ],
208 url: { 212 url: {
209 - list: "/config/company/list",  
210 - delete: "/config/company/delete",  
211 - deleteBatch: "/config/company/deleteBatch",  
212 - exportXlsUrl: "/config/company/exportXls",  
213 - importExcelUrl: "config/company/importExcel",  
214 - 213 + list: '/config/company/list',
  214 + delete: '/config/company/delete',
  215 + deleteBatch: '/config/company/deleteBatch',
  216 + exportXlsUrl: '/config/company/exportXls',
  217 + importExcelUrl: 'config/company/importExcel'
215 }, 218 },
216 dictOptions: {}, 219 dictOptions: {},
217 - superFieldList: [], 220 + superFieldList: []
218 } 221 }
219 }, 222 },
220 created() { 223 created() {
221 - this.getSuperFieldList(); 224 + this.getSuperFieldList()
222 }, 225 },
223 computed: { 226 computed: {
224 - importExcelUrl: function () {  
225 - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;  
226 - }, 227 + importExcelUrl: function() {
  228 + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
  229 + }
227 }, 230 },
228 methods: { 231 methods: {
229 - initDictConfig() {  
230 - }, 232 + initDictConfig() {},
231 getSuperFieldList() { 233 getSuperFieldList() {
232 - let fieldList = [];  
233 - fieldList.push({type: 'string', value: 'code', text: '货主编码', dictCode: ''})  
234 - fieldList.push({type: 'string', value: 'name', text: '货主名称', dictCode: ''})  
235 - fieldList.push({type: 'string', value: 'address', text: '地址', dictCode: ''})  
236 - fieldList.push({type: 'string', value: 'district', text: '区县', dictCode: ''})  
237 - fieldList.push({type: 'string', value: 'city', text: '城市', dictCode: ''})  
238 - fieldList.push({type: 'string', value: 'province', text: '省份', dictCode: ''})  
239 - fieldList.push({type: 'string', value: 'country', text: '国家', dictCode: ''})  
240 - fieldList.push({type: 'string', value: 'postalcode', text: '邮编', dictCode: ''})  
241 - fieldList.push({type: 'string', value: 'attentionto', text: '联系人', dictCode: ''})  
242 - fieldList.push({type: 'string', value: 'phonenum', text: '联系电话', dictCode: ''}) 234 + let fieldList = []
  235 + fieldList.push({ type: 'string', value: 'code', text: '货主编码', dictCode: '' })
  236 + fieldList.push({ type: 'string', value: 'name', text: '货主名称', dictCode: '' })
  237 + fieldList.push({ type: 'string', value: 'address', text: '地址', dictCode: '' })
  238 + fieldList.push({ type: 'string', value: 'district', text: '区县', dictCode: '' })
  239 + fieldList.push({ type: 'string', value: 'city', text: '城市', dictCode: '' })
  240 + fieldList.push({ type: 'string', value: 'province', text: '省份', dictCode: '' })
  241 + fieldList.push({ type: 'string', value: 'country', text: '国家', dictCode: '' })
  242 + fieldList.push({ type: 'string', value: 'postalcode', text: '邮编', dictCode: '' })
  243 + fieldList.push({ type: 'string', value: 'attentionto', text: '联系人', dictCode: '' })
  244 + fieldList.push({ type: 'string', value: 'phonenum', text: '联系电话', dictCode: '' })
243 this.superFieldList = fieldList 245 this.superFieldList = fieldList
244 } 246 }
245 } 247 }
ant-design-vue-jeecg/src/views/system/config/ContainerCapacityList.vue
@@ -6,7 +6,16 @@ @@ -6,7 +6,16 @@
6 <a-row :gutter="24"> 6 <a-row :gutter="24">
7 <a-col :xl="6" :lg="7" :md="8" :sm="24"> 7 <a-col :xl="6" :lg="7" :md="8" :sm="24">
8 <a-form-item label="容器类型"> 8 <a-form-item label="容器类型">
9 - <a-input placeholder="请输入容器类型" v-model="queryParam.containerTypeCode"></a-input> 9 + <a-select
  10 + show-search
  11 + placeholder="请选择容器类型"
  12 + option-filter-prop="children"
  13 + v-model="queryParam.containerTypeCode"
  14 + >
  15 + <a-select-option v-for="item in containerTypeList" :key="item.name" :value="item.code">
  16 + {{ item.name }}
  17 + </a-select-option>
  18 + </a-select>
10 </a-form-item> 19 </a-form-item>
11 </a-col> 20 </a-col>
12 <a-col :xl="6" :lg="7" :md="8" :sm="24"> 21 <a-col :xl="6" :lg="7" :md="8" :sm="24">
@@ -14,21 +23,15 @@ @@ -14,21 +23,15 @@
14 <a-input placeholder="请输入物料编码" v-model="queryParam.materialCode"></a-input> 23 <a-input placeholder="请输入物料编码" v-model="queryParam.materialCode"></a-input>
15 </a-form-item> 24 </a-form-item>
16 </a-col> 25 </a-col>
17 - <template v-if="toggleSearchStatus">  
18 - <a-col :xl="6" :lg="7" :md="8" :sm="24">  
19 - <a-form-item label="是否可用">  
20 - <j-dict-select-tag placeholder="请选择是否可用" v-model="queryParam.enable" dictCode="enable_status"/>  
21 - </a-form-item>  
22 - </a-col>  
23 - </template> 26 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  27 + <a-form-item label="是否可用">
  28 + <j-dict-select-tag placeholder="请选择是否可用" v-model="queryParam.enable" dictCode="enable_status" />
  29 + </a-form-item>
  30 + </a-col>
24 <a-col :xl="6" :lg="7" :md="8" :sm="24"> 31 <a-col :xl="6" :lg="7" :md="8" :sm="24">
25 <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> 32 <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
26 <a-button type="primary" @click="searchQuery" icon="search">查询</a-button> 33 <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
27 <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button> 34 <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
28 - <a @click="handleToggleSearch" style="margin-left: 8px">  
29 - {{ toggleSearchStatus ? '收起' : '展开' }}  
30 - <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>  
31 - </a>  
32 </span> 35 </span>
33 </a-col> 36 </a-col>
34 </a-row> 37 </a-row>
@@ -39,20 +42,35 @@ @@ -39,20 +42,35 @@
39 <!-- 操作按钮区域 --> 42 <!-- 操作按钮区域 -->
40 <div class="table-operator"> 43 <div class="table-operator">
41 <a-button @click="handleAdd" v-has="'containerCapacity:add'" type="primary" icon="plus">新增</a-button> 44 <a-button @click="handleAdd" v-has="'containerCapacity:add'" type="primary" icon="plus">新增</a-button>
42 - <a-button v-has="'containerCapacity:export'" type="primary" icon="download" @click="handleExportXls('容器容量管理')">导出</a-button>  
43 - <a-upload v-has="'containerCapacity:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"  
44 - @change="handleImportExcel"> 45 + <a-button
  46 + v-has="'containerCapacity:export'"
  47 + type="primary"
  48 + icon="download"
  49 + @click="handleExportXls('容器容量管理')"
  50 + >
  51 + 导出
  52 + </a-button>
  53 + <a-upload
  54 + v-has="'containerCapacity:import'"
  55 + name="file"
  56 + :showUploadList="false"
  57 + :multiple="false"
  58 + :headers="tokenHeader"
  59 + :action="importExcelUrl"
  60 + @change="handleImportExcel"
  61 + >
45 <a-button type="primary" icon="import">导入</a-button> 62 <a-button type="primary" icon="import">导入</a-button>
46 </a-upload> 63 </a-upload>
47 <a-dropdown v-if="selectedRowKeys.length > 0"> 64 <a-dropdown v-if="selectedRowKeys.length > 0">
48 <a-menu slot="overlay" v-has="'containerCapacity:deleteBatch'"> 65 <a-menu slot="overlay" v-has="'containerCapacity:deleteBatch'">
49 <a-menu-item key="1" @click="batchDel"> 66 <a-menu-item key="1" @click="batchDel">
50 - <a-icon type="delete"/> 67 + <a-icon type="delete" />
51 删除 68 删除
52 </a-menu-item> 69 </a-menu-item>
53 </a-menu> 70 </a-menu>
54 - <a-button style="margin-left: 8px"> 批量操作  
55 - <a-icon type="down"/> 71 + <a-button style="margin-left: 8px">
  72 + 批量操作
  73 + <a-icon type="down" />
56 </a-button> 74 </a-button>
57 </a-dropdown> 75 </a-dropdown>
58 </div> 76 </div>
@@ -60,50 +78,52 @@ @@ -60,50 +78,52 @@
60 <!-- table区域-begin --> 78 <!-- table区域-begin -->
61 <div> 79 <div>
62 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 80 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
63 - <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a  
64 - style="font-weight: 600">{{ selectedRowKeys.length }}</a>项 81 + <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择
  82 + <a style="font-weight: 600">{{ selectedRowKeys.length }}</a> 项
65 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 83 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
66 </div> 84 </div>
67 85
68 <a-table 86 <a-table
69 ref="table" 87 ref="table"
70 size="middle" 88 size="middle"
71 - :scroll="{x:true}" 89 + :scroll="{ x: true }"
72 bordered 90 bordered
73 rowKey="id" 91 rowKey="id"
74 :columns="columns" 92 :columns="columns"
75 :dataSource="dataSource" 93 :dataSource="dataSource"
76 :pagination="ipagination" 94 :pagination="ipagination"
77 :loading="loading" 95 :loading="loading"
78 - :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" 96 + :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
79 class="j-table-force-nowrap" 97 class="j-table-force-nowrap"
80 - @change="handleTableChange"> 98 + @change="handleTableChange"
  99 + >
  100 + <span slot="containerTypeCode" slot-scope="containerTypeCode">
  101 + <a-tag :key="containerTypeCode" color="pink">
  102 + {{ solutionContainerType(containerTypeCode) }}
  103 + </a-tag>
  104 + </span>
81 105
82 <template slot="htmlSlot" slot-scope="text"> 106 <template slot="htmlSlot" slot-scope="text">
83 <div v-html="text"></div> 107 <div v-html="text"></div>
84 </template> 108 </template>
85 <template slot="imgSlot" slot-scope="text"> 109 <template slot="imgSlot" slot-scope="text">
86 <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span> 110 <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
87 - <img v-else :src="getImgView(text)" height="25px" alt=""  
88 - style="max-width:80px;font-size: 12px;font-style: italic;"/> 111 + <img
  112 + v-else
  113 + :src="getImgView(text)"
  114 + height="25px"
  115 + alt=""
  116 + style="max-width:80px;font-size: 12px;font-style: italic;"
  117 + />
89 </template> 118 </template>
90 <template slot="fileSlot" slot-scope="text"> 119 <template slot="fileSlot" slot-scope="text">
91 <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span> 120 <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
92 - <a-button  
93 - v-else  
94 - :ghost="true"  
95 - type="primary"  
96 - icon="download"  
97 - size="small"  
98 - @click="downloadFile(text)"> 121 + <a-button v-else :ghost="true" type="primary" icon="download" size="small" @click="downloadFile(text)">
99 下载 122 下载
100 </a-button> 123 </a-button>
101 </template> 124 </template>
102 -  
103 <span slot="action" slot-scope="text, record"> 125 <span slot="action" slot-scope="text, record">
104 - <a v-has="'containerCapacity:edit'" @click="handleEdit(record)">编辑</a>  
105 -  
106 - <a-divider type="vertical"/> 126 + <a v-has="'containerCapacity:edit'" @click="handleEdit(record)">编辑<a-divider type="vertical"/></a>
107 <a-dropdown> 127 <a-dropdown>
108 <a class="ant-dropdown-link">更多 <a-icon type="down"/></a> 128 <a class="ant-dropdown-link">更多 <a-icon type="down"/></a>
109 <a-menu slot="overlay"> 129 <a-menu slot="overlay">
@@ -118,7 +138,6 @@ @@ -118,7 +138,6 @@
118 </a-menu> 138 </a-menu>
119 </a-dropdown> 139 </a-dropdown>
120 </span> 140 </span>
121 -  
122 </a-table> 141 </a-table>
123 </div> 142 </div>
124 143
@@ -127,13 +146,12 @@ @@ -127,13 +146,12 @@
127 </template> 146 </template>
128 147
129 <script> 148 <script>
130 -  
131 import '@/assets/less/TableExpand.less' 149 import '@/assets/less/TableExpand.less'
132 -import {mixinDevice} from '@/utils/mixin'  
133 -import {JeecgListMixin} from '@/mixins/JeecgListMixin' 150 +import { mixinDevice } from '@/utils/mixin'
  151 +import { JeecgListMixin } from '@/mixins/JeecgListMixin'
134 import ContainerCapacityModal from './modules/ContainerCapacityModal' 152 import ContainerCapacityModal from './modules/ContainerCapacityModal'
135 -import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'  
136 -import {getZoneList} from '@/api/api' 153 +import { filterMultiDictText } from '@/components/dict/JDictSelectUtil'
  154 +import { getZoneList, getContainerTypeList } from '@/api/api'
137 155
138 export default { 156 export default {
139 name: 'ContainerCapacityList', 157 name: 'ContainerCapacityList',
@@ -144,6 +162,7 @@ export default { @@ -144,6 +162,7 @@ export default {
144 data() { 162 data() {
145 return { 163 return {
146 description: '容器容量管理管理页面', 164 description: '容器容量管理管理页面',
  165 + containerTypeList: [],
147 // 表头 166 // 表头
148 columns: [ 167 columns: [
149 { 168 {
@@ -151,112 +170,125 @@ export default { @@ -151,112 +170,125 @@ export default {
151 dataIndex: '', 170 dataIndex: '',
152 key: 'rowIndex', 171 key: 'rowIndex',
153 width: 60, 172 width: 60,
154 - align: "center",  
155 - customRender: function (t, r, index) {  
156 - return parseInt(index) + 1; 173 + align: 'center',
  174 + customRender: function(t, r, index) {
  175 + return parseInt(index) + 1
157 } 176 }
158 }, 177 },
159 { 178 {
160 title: '容器类型', 179 title: '容器类型',
161 - align: "center",  
162 - dataIndex: 'containerTypeCode'  
163 - },  
164 - {  
165 - title: '货主',  
166 - align: "center",  
167 - dataIndex: 'companyCode' 180 + align: 'center',
  181 + dataIndex: 'containerTypeCode',
  182 + key: 'containerTypeCode',
  183 + scopedSlots: { customRender: 'containerTypeCode' }
168 }, 184 },
169 { 185 {
170 title: '物料编码', 186 title: '物料编码',
171 - align: "center", 187 + align: 'center',
172 dataIndex: 'materialCode' 188 dataIndex: 'materialCode'
173 }, 189 },
174 { 190 {
175 title: '物料名称', 191 title: '物料名称',
176 - align: "center", 192 + align: 'center',
177 dataIndex: 'materialName' 193 dataIndex: 'materialName'
178 }, 194 },
179 { 195 {
180 title: '物料单位', 196 title: '物料单位',
181 - align: "center", 197 + align: 'center',
182 dataIndex: 'materialUnit' 198 dataIndex: 'materialUnit'
183 }, 199 },
184 { 200 {
185 title: '存放数量', 201 title: '存放数量',
186 - align: "center", 202 + align: 'center',
187 dataIndex: 'qty' 203 dataIndex: 'qty'
188 }, 204 },
189 { 205 {
190 title: '是否可用', 206 title: '是否可用',
191 - align: "center", 207 + align: 'center',
192 dataIndex: 'enable_dictText' 208 dataIndex: 'enable_dictText'
193 }, 209 },
194 { 210 {
195 title: '创建人', 211 title: '创建人',
196 - align: "center", 212 + align: 'center',
197 dataIndex: 'createBy' 213 dataIndex: 'createBy'
198 }, 214 },
199 { 215 {
200 title: '创建日期', 216 title: '创建日期',
201 - align: "center", 217 + align: 'center',
202 dataIndex: 'createTime' 218 dataIndex: 'createTime'
203 }, 219 },
204 { 220 {
205 title: '更新人', 221 title: '更新人',
206 - align: "center", 222 + align: 'center',
207 dataIndex: 'updateBy' 223 dataIndex: 'updateBy'
208 }, 224 },
209 { 225 {
210 title: '更新日期', 226 title: '更新日期',
211 - align: "center", 227 + align: 'center',
212 dataIndex: 'updateTime' 228 dataIndex: 'updateTime'
213 }, 229 },
214 { 230 {
215 title: '操作', 231 title: '操作',
216 dataIndex: 'action', 232 dataIndex: 'action',
217 - align: "center",  
218 - fixed: "right", 233 + align: 'center',
  234 + fixed: 'right',
219 width: 147, 235 width: 147,
220 - scopedSlots: {customRender: 'action'} 236 + scopedSlots: { customRender: 'action' }
221 } 237 }
222 ], 238 ],
223 url: { 239 url: {
224 - list: "/config/containerCapacity/list",  
225 - delete: "/config/containerCapacity/delete",  
226 - deleteBatch: "/config/containerCapacity/deleteBatch",  
227 - exportXlsUrl: "/config/containerCapacity/exportXls",  
228 - importExcelUrl: "config/containerCapacity/importExcel",  
229 - 240 + list: '/config/containerCapacity/list',
  241 + delete: '/config/containerCapacity/delete',
  242 + deleteBatch: '/config/containerCapacity/deleteBatch',
  243 + exportXlsUrl: '/config/containerCapacity/exportXls',
  244 + importExcelUrl: 'config/containerCapacity/importExcel'
230 }, 245 },
231 dictOptions: {}, 246 dictOptions: {},
232 - superFieldList: [], 247 + superFieldList: []
233 } 248 }
234 }, 249 },
235 created() { 250 created() {
236 - this.getSuperFieldList(); 251 + this.getSuperFieldList()
  252 + this.loadFrom()
237 }, 253 },
238 computed: { 254 computed: {
239 - importExcelUrl: function () {  
240 - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;  
241 - }, 255 + importExcelUrl: function() {
  256 + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
  257 + }
242 }, 258 },
243 methods: { 259 methods: {
244 - initDictConfig() { 260 + initDictConfig() {},
  261 + solutionContainerType(value) {
  262 + var actions = []
  263 + Object.keys(this.containerTypeList).some(key => {
  264 + if (this.containerTypeList[key].code == '' + value) {
  265 + actions.push(this.containerTypeList[key].name)
  266 + return true
  267 + }
  268 + })
  269 + return actions.join('')
  270 + },
  271 + loadFrom() {
  272 + getContainerTypeList().then(res => {
  273 + if (res.success) {
  274 + this.containerTypeList = res.result
  275 + }
  276 + })
245 }, 277 },
246 getSuperFieldList() { 278 getSuperFieldList() {
247 - let fieldList = [];  
248 - fieldList.push({type: 'string', value: 'containerTypeCode', text: '容器类型', dictCode: ''})  
249 - fieldList.push({type: 'string', value: 'warehouseCode', text: '仓库编码', dictCode: ''})  
250 - fieldList.push({type: 'string', value: 'companyCode', text: '货主', dictCode: ''})  
251 - fieldList.push({type: 'string', value: 'materialCode', text: '物料编码', dictCode: ''})  
252 - fieldList.push({type: 'string', value: 'materialName', text: '物料名称', dictCode: ''})  
253 - fieldList.push({type: 'string', value: 'materialUnit', text: '物料单位', dictCode: ''})  
254 - fieldList.push({type: 'BigDecimal', value: 'qty', text: '存放数量', dictCode: ''})  
255 - fieldList.push({type: 'int', value: 'enable', text: '是否可用', dictCode: 'enable_status'})  
256 - fieldList.push({type: 'string', value: 'createBy', text: '创建人', dictCode: ''})  
257 - fieldList.push({type: 'datetime', value: 'createTime', text: '创建日期'})  
258 - fieldList.push({type: 'string', value: 'updateBy', text: '更新人', dictCode: ''})  
259 - fieldList.push({type: 'datetime', value: 'updateTime', text: '更新日期'}) 279 + let fieldList = []
  280 + fieldList.push({ type: 'string', value: 'containerTypeCode', text: '容器类型', dictCode: '' })
  281 + fieldList.push({ type: 'string', value: 'warehouseCode', text: '仓库编码', dictCode: '' })
  282 + fieldList.push({ type: 'string', value: 'companyCode', text: '货主', dictCode: '' })
  283 + fieldList.push({ type: 'string', value: 'materialCode', text: '物料编码', dictCode: '' })
  284 + fieldList.push({ type: 'string', value: 'materialName', text: '物料名称', dictCode: '' })
  285 + fieldList.push({ type: 'string', value: 'materialUnit', text: '物料单位', dictCode: '' })
  286 + fieldList.push({ type: 'BigDecimal', value: 'qty', text: '存放数量', dictCode: '' })
  287 + fieldList.push({ type: 'int', value: 'enable', text: '是否可用', dictCode: 'enable_status' })
  288 + fieldList.push({ type: 'string', value: 'createBy', text: '创建人', dictCode: '' })
  289 + fieldList.push({ type: 'datetime', value: 'createTime', text: '创建日期' })
  290 + fieldList.push({ type: 'string', value: 'updateBy', text: '更新人', dictCode: '' })
  291 + fieldList.push({ type: 'datetime', value: 'updateTime', text: '更新日期' })
260 this.superFieldList = fieldList 292 this.superFieldList = fieldList
261 } 293 }
262 } 294 }
ant-design-vue-jeecg/src/views/system/config/ContainerList.vue
@@ -21,18 +21,30 @@ @@ -21,18 +21,30 @@
21 show-search 21 show-search
22 placeholder="请选择容器类型" 22 placeholder="请选择容器类型"
23 option-filter-prop="children" 23 option-filter-prop="children"
24 -  
25 - v-model="queryParam.containerTypeCode">  
26 - <a-select-option v-for="item in containerTypeList" :key="item.name" :value="item.code">{{  
27 - item.name  
28 - }} 24 + v-model="queryParam.containerTypeCode"
  25 + >
  26 + <a-select-option v-for="item in containerTypeList" :key="item.name" :value="item.code"
  27 + >{{ item.name }}
29 </a-select-option> 28 </a-select-option>
30 </a-select> 29 </a-select>
31 </a-form-item> 30 </a-form-item>
32 </a-col> 31 </a-col>
33 <a-col :xl="6" :lg="7" :md="8" :sm="24"> 32 <a-col :xl="6" :lg="7" :md="8" :sm="24">
34 <a-form-item label="容器状态"> 33 <a-form-item label="容器状态">
35 - <j-dict-select-tag placeholder="请选择容器状态" v-model="queryParam.status" dictCode="container_status"/> 34 + <j-dict-select-tag
  35 + placeholder="请选择容器状态"
  36 + v-model="queryParam.status"
  37 + dictCode="container_status"
  38 + />
  39 + </a-form-item>
  40 + </a-col>
  41 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  42 + <a-form-item label="容器填充状态">
  43 + <j-dict-select-tag
  44 + placeholder="请选择容器填充状态"
  45 + v-model="queryParam.fillStatus"
  46 + dictCode="fill_status"
  47 + />
36 </a-form-item> 48 </a-form-item>
37 </a-col> 49 </a-col>
38 </template> 50 </template>
@@ -42,7 +54,7 @@ @@ -42,7 +54,7 @@
42 <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button> 54 <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
43 <a @click="handleToggleSearch" style="margin-left: 8px"> 55 <a @click="handleToggleSearch" style="margin-left: 8px">
44 {{ toggleSearchStatus ? '收起' : '展开' }} 56 {{ toggleSearchStatus ? '收起' : '展开' }}
45 - <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> 57 + <a-icon :type="toggleSearchStatus ? 'up' : 'down'" />
46 </a> 58 </a>
47 </span> 59 </span>
48 </a-col> 60 </a-col>
@@ -54,21 +66,30 @@ @@ -54,21 +66,30 @@
54 <!-- 操作按钮区域 --> 66 <!-- 操作按钮区域 -->
55 <div class="table-operator"> 67 <div class="table-operator">
56 <a-button @click="handleAdd" v-has="'container:add'" type="primary" icon="plus">新增</a-button> 68 <a-button @click="handleAdd" v-has="'container:add'" type="primary" icon="plus">新增</a-button>
57 - <a-button v-has="'container:export'" type="primary" icon="download" @click="handleExportXls('容器管理')">导出</a-button>  
58 - <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"  
59 - @change="handleImportExcel"> 69 + <a-button v-has="'container:export'" type="primary" icon="download" @click="handleExportXls('容器管理')">
  70 + 导出
  71 + </a-button>
  72 + <a-upload
  73 + name="file"
  74 + :showUploadList="false"
  75 + :multiple="false"
  76 + :headers="tokenHeader"
  77 + :action="importExcelUrl"
  78 + @change="handleImportExcel"
  79 + >
60 <a-button v-has="'container:import'" type="primary" icon="import">导入</a-button> 80 <a-button v-has="'container:import'" type="primary" icon="import">导入</a-button>
61 </a-upload> 81 </a-upload>
62 <a-button v-has="'container:print'" @click="batchPrint()" type="primary">打印</a-button> 82 <a-button v-has="'container:print'" @click="batchPrint()" type="primary">打印</a-button>
63 <a-dropdown v-if="selectedRowKeys.length > 0"> 83 <a-dropdown v-if="selectedRowKeys.length > 0">
64 <a-menu slot="overlay" v-has="'container:deleteBatch'"> 84 <a-menu slot="overlay" v-has="'container:deleteBatch'">
65 <a-menu-item key="1" @click="batchDel"> 85 <a-menu-item key="1" @click="batchDel">
66 - <a-icon type="delete"/> 86 + <a-icon type="delete" />
67 删除 87 删除
68 </a-menu-item> 88 </a-menu-item>
69 </a-menu> 89 </a-menu>
70 - <a-button style="margin-left: 8px"> 批量操作  
71 - <a-icon type="down"/> 90 + <a-button style="margin-left: 8px">
  91 + 批量操作
  92 + <a-icon type="down" />
72 </a-button> 93 </a-button>
73 </a-dropdown> 94 </a-dropdown>
74 </div> 95 </div>
@@ -76,33 +97,33 @@ @@ -76,33 +97,33 @@
76 <!-- table区域-begin --> 97 <!-- table区域-begin -->
77 <div> 98 <div>
78 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 99 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
79 - <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a  
80 - style="font-weight: 600">{{ selectedRowKeys.length }}</a>项 100 + <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择
  101 + <a style="font-weight: 600">{{ selectedRowKeys.length }}</a> 项
81 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 102 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
82 </div> 103 </div>
83 104
84 <a-table 105 <a-table
85 ref="table" 106 ref="table"
86 size="middle" 107 size="middle"
87 - :scroll="{x:true}" 108 + :scroll="{ x: true }"
88 bordered 109 bordered
89 rowKey="id" 110 rowKey="id"
90 :columns="columns" 111 :columns="columns"
91 :dataSource="dataSource" 112 :dataSource="dataSource"
92 :pagination="ipagination" 113 :pagination="ipagination"
93 :loading="loading" 114 :loading="loading"
94 - :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" 115 + :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
95 class="j-table-force-nowrap" 116 class="j-table-force-nowrap"
96 - @change="handleTableChange">  
97 - 117 + @change="handleTableChange"
  118 + >
98 <span slot="zoneCode" slot-scope="zoneCode"> 119 <span slot="zoneCode" slot-scope="zoneCode">
99 - <a-tag :key="zoneCode" color=blue> 120 + <a-tag :key="zoneCode" color="blue">
100 {{ solutionZoneCode(zoneCode) }} 121 {{ solutionZoneCode(zoneCode) }}
101 </a-tag> 122 </a-tag>
102 </span> 123 </span>
103 124
104 <span slot="containerTypeCode" slot-scope="containerTypeCode"> 125 <span slot="containerTypeCode" slot-scope="containerTypeCode">
105 - <a-tag :key="containerTypeCode" color=pink> 126 + <a-tag :key="containerTypeCode" color="pink">
106 {{ solutionContainerType(containerTypeCode) }} 127 {{ solutionContainerType(containerTypeCode) }}
107 </a-tag> 128 </a-tag>
108 </span> 129 </span>
@@ -112,26 +133,23 @@ @@ -112,26 +133,23 @@
112 </template> 133 </template>
113 <template slot="imgSlot" slot-scope="text"> 134 <template slot="imgSlot" slot-scope="text">
114 <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span> 135 <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
115 - <img v-else :src="getImgView(text)" height="25px" alt=""  
116 - style="max-width:80px;font-size: 12px;font-style: italic;"/> 136 + <img
  137 + v-else
  138 + :src="getImgView(text)"
  139 + height="25px"
  140 + alt=""
  141 + style="max-width:80px;font-size: 12px;font-style: italic;"
  142 + />
117 </template> 143 </template>
118 <template slot="fileSlot" slot-scope="text"> 144 <template slot="fileSlot" slot-scope="text">
119 <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span> 145 <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
120 - <a-button  
121 - v-else  
122 - :ghost="true"  
123 - type="primary"  
124 - icon="download"  
125 - size="small"  
126 - @click="downloadFile(text)"> 146 + <a-button v-else :ghost="true" type="primary" icon="download" size="small" @click="downloadFile(text)">
127 下载 147 下载
128 </a-button> 148 </a-button>
129 </template> 149 </template>
130 150
131 <span slot="action" slot-scope="text, record"> 151 <span slot="action" slot-scope="text, record">
132 - <a v-has="'container:add'" @click="editForm(record)">编辑</a>  
133 -  
134 - <a-divider type="vertical"/> 152 + <a v-has="'container:add'" @click="editForm(record)">编辑<a-divider type="vertical"/></a>
135 <a-dropdown> 153 <a-dropdown>
136 <a class="ant-dropdown-link">更多 <a-icon type="down"/></a> 154 <a class="ant-dropdown-link">更多 <a-icon type="down"/></a>
137 <a-menu slot="overlay"> 155 <a-menu slot="overlay">
@@ -146,7 +164,6 @@ @@ -146,7 +164,6 @@
146 </a-menu> 164 </a-menu>
147 </a-dropdown> 165 </a-dropdown>
148 </span> 166 </span>
149 -  
150 </a-table> 167 </a-table>
151 </div> 168 </div>
152 169
@@ -157,16 +174,15 @@ @@ -157,16 +174,15 @@
157 </template> 174 </template>
158 175
159 <script> 176 <script>
160 -  
161 import '@/assets/less/TableExpand.less' 177 import '@/assets/less/TableExpand.less'
162 -import {mixinDevice} from '@/utils/mixin'  
163 -import {JeecgListMixin} from '@/mixins/JeecgListMixin' 178 +import { mixinDevice } from '@/utils/mixin'
  179 +import { JeecgListMixin } from '@/mixins/JeecgListMixin'
164 import ContainerModal from './modules/ContainerModal' 180 import ContainerModal from './modules/ContainerModal'
165 -import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'  
166 -import {getZoneList} from '@/api/api'  
167 -import {getContainerTypeList} from '@/api/api'  
168 -import ContainerEditModal from "./modules/ContainerEditModal";  
169 -import ContainerPrintModal from "./modules/ContainerPrintModal"; 181 +import { filterMultiDictText } from '@/components/dict/JDictSelectUtil'
  182 +import { getZoneList } from '@/api/api'
  183 +import { getContainerTypeList } from '@/api/api'
  184 +import ContainerEditModal from './modules/ContainerEditModal'
  185 +import ContainerPrintModal from './modules/ContainerPrintModal'
170 186
171 export default { 187 export default {
172 name: 'ContainerList', 188 name: 'ContainerList',
@@ -188,125 +204,132 @@ export default { @@ -188,125 +204,132 @@ export default {
188 dataIndex: '', 204 dataIndex: '',
189 key: 'rowIndex', 205 key: 'rowIndex',
190 width: 60, 206 width: 60,
191 - align: "center",  
192 - customRender: function (t, r, index) {  
193 - return parseInt(index) + 1; 207 + align: 'center',
  208 + customRender: function(t, r, index) {
  209 + return parseInt(index) + 1
194 } 210 }
195 }, 211 },
196 { 212 {
197 title: '容器编码', 213 title: '容器编码',
198 - align: "center", 214 + align: 'center',
199 dataIndex: 'code' 215 dataIndex: 'code'
200 }, 216 },
201 { 217 {
202 title: '库位编码', 218 title: '库位编码',
203 - align: "center", 219 + align: 'center',
204 dataIndex: 'locationCode' 220 dataIndex: 'locationCode'
205 }, 221 },
206 { 222 {
207 title: '容器类型', 223 title: '容器类型',
208 - align: "center", 224 + align: 'center',
209 dataIndex: 'containerTypeCode', 225 dataIndex: 'containerTypeCode',
210 key: 'containerTypeCode', 226 key: 'containerTypeCode',
211 - scopedSlots: {customRender: 'containerTypeCode'} 227 + scopedSlots: { customRender: 'containerTypeCode' }
212 }, 228 },
213 { 229 {
214 title: '容器状态', 230 title: '容器状态',
215 - align: "center", 231 + align: 'center',
216 dataIndex: 'status_dictText' 232 dataIndex: 'status_dictText'
217 }, 233 },
218 { 234 {
  235 + title: '容器填充状态',
  236 + align: 'center',
  237 + dataIndex: 'fillStatus_dictText'
  238 + },
  239 + {
219 title: '创建人', 240 title: '创建人',
220 - align: "center", 241 + align: 'center',
221 dataIndex: 'createBy' 242 dataIndex: 'createBy'
222 }, 243 },
223 { 244 {
224 title: '创建日期', 245 title: '创建日期',
225 - align: "center", 246 + align: 'center',
226 dataIndex: 'createTime' 247 dataIndex: 'createTime'
227 }, 248 },
228 { 249 {
229 title: '更新人', 250 title: '更新人',
230 - align: "center", 251 + align: 'center',
231 dataIndex: 'updateBy' 252 dataIndex: 'updateBy'
232 }, 253 },
233 { 254 {
234 title: '更新日期', 255 title: '更新日期',
235 - align: "center", 256 + align: 'center',
236 dataIndex: 'updateTime' 257 dataIndex: 'updateTime'
237 }, 258 },
238 { 259 {
239 title: '操作', 260 title: '操作',
240 dataIndex: 'action', 261 dataIndex: 'action',
241 - align: "center",  
242 - fixed: "right", 262 + align: 'center',
  263 + fixed: 'right',
243 width: 147, 264 width: 147,
244 - scopedSlots: {customRender: 'action'} 265 + scopedSlots: { customRender: 'action' }
245 } 266 }
246 ], 267 ],
247 url: { 268 url: {
248 - list: "/config/container/list",  
249 - delete: "/config/container/delete",  
250 - deleteBatch: "/config/container/deleteBatch",  
251 - exportXlsUrl: "/config/container/exportXls",  
252 - importExcelUrl: "config/container/importExcel",  
253 - 269 + list: '/config/container/list',
  270 + delete: '/config/container/delete',
  271 + deleteBatch: '/config/container/deleteBatch',
  272 + exportXlsUrl: '/config/container/exportXls',
  273 + importExcelUrl: 'config/container/importExcel'
254 }, 274 },
255 dictOptions: {}, 275 dictOptions: {},
256 - superFieldList: [], 276 + superFieldList: []
257 } 277 }
258 }, 278 },
259 created() { 279 created() {
260 - this.getSuperFieldList();  
261 - this.loadFrom(); 280 + this.getSuperFieldList()
  281 + this.loadFrom()
262 }, 282 },
263 computed: { 283 computed: {
264 - importExcelUrl: function () {  
265 - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;  
266 - }, 284 + importExcelUrl: function() {
  285 + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
  286 + }
267 }, 287 },
268 methods: { 288 methods: {
269 - initDictConfig() {  
270 - }, 289 + initDictConfig() {},
271 getSuperFieldList() { 290 getSuperFieldList() {
272 - let fieldList = [];  
273 - fieldList.push({type: 'string', value: 'code', text: '容器编码', dictCode: ''})  
274 - fieldList.push({type: 'string', value: 'companyCode', text: '货主', dictCode: ''})  
275 - fieldList.push({type: 'string', value: 'locationCode', text: '库位编码', dictCode: ''}) 291 + let fieldList = []
  292 + fieldList.push({ type: 'string', value: 'code', text: '容器编码', dictCode: '' })
  293 + fieldList.push({ type: 'string', value: 'companyCode', text: '货主', dictCode: '' })
  294 + fieldList.push({ type: 'string', value: 'locationCode', text: '库位编码', dictCode: '' })
276 // fieldList.push({type:'string',value:'zoneCode',text:'库区编码',dictCode:''}) 295 // fieldList.push({type:'string',value:'zoneCode',text:'库区编码',dictCode:''})
277 - fieldList.push({type: 'string', value: 'containerTypeCode', text: '容器类型', dictCode: ''})  
278 - fieldList.push({type: 'string', value: 'status', text: '容器状态', dictCode: 'container_status'})  
279 - fieldList.push({type: 'string', value: 'createBy', text: '创建人', dictCode: ''})  
280 - fieldList.push({type: 'datetime', value: 'createTime', text: '创建日期'})  
281 - fieldList.push({type: 'string', value: 'updateBy', text: '更新人', dictCode: ''})  
282 - fieldList.push({type: 'datetime', value: 'updateTime', text: '更新日期'}) 296 + fieldList.push({ type: 'string', value: 'containerTypeCode', text: '容器类型', dictCode: '' })
  297 + fieldList.push({ type: 'string', value: 'status', text: '容器状态', dictCode: 'container_status' })
  298 + fieldList.push({ type: 'string', value: 'fillStatus', text: '容器填充状态', dictCode: 'fill_status' })
  299 + fieldList.push({ type: 'string', value: 'createBy', text: '创建人', dictCode: '' })
  300 + fieldList.push({ type: 'datetime', value: 'createTime', text: '创建日期' })
  301 + fieldList.push({ type: 'string', value: 'updateBy', text: '更新人', dictCode: '' })
  302 + fieldList.push({ type: 'datetime', value: 'updateTime', text: '更新日期' })
283 this.superFieldList = fieldList 303 this.superFieldList = fieldList
284 }, 304 },
285 editForm(record) { 305 editForm(record) {
286 - this.$refs.modalEditForm.edit(record);  
287 - this.$refs.modalEditForm.title = "编辑容器";  
288 - this.$refs.modalEditForm.disableSubmit = false; 306 + this.$refs.modalEditForm.edit(record)
  307 + this.$refs.modalEditForm.title = '编辑容器'
  308 + this.$refs.modalEditForm.disableSubmit = false
289 }, 309 },
290 batchPrint() { 310 batchPrint() {
291 if (this.selectedRowKeys.length <= 0) { 311 if (this.selectedRowKeys.length <= 0) {
292 - this.$message.warning('请选择一条记录!');  
293 - return; 312 + this.$message.warning('请选择一条记录!')
  313 + return
294 } else { 314 } else {
295 - var ids = ""; 315 + var ids = ''
296 for (var a = 0; a < this.selectedRowKeys.length; a++) { 316 for (var a = 0; a < this.selectedRowKeys.length; a++) {
297 - ids += this.selectedRowKeys[a] + ","; 317 + ids += this.selectedRowKeys[a] + ','
298 } 318 }
299 - window.open(window._CONFIG['domianURL'] + "/jmreport/view/768644669245833216/?id=" + ids, "newWindow", "toolbar=no,scrollbars=no,menubar=no,screenX=100,screenY=100");  
300 - 319 + window.open(
  320 + window._CONFIG['domianURL'] + '/jmreport/view/768644669245833216/?id=' + ids,
  321 + 'newWindow',
  322 + 'toolbar=no,scrollbars=no,menubar=no,screenX=100,screenY=100'
  323 + )
301 } 324 }
302 }, 325 },
303 loadFrom() { 326 loadFrom() {
304 - getZoneList().then((res) => { 327 + getZoneList().then(res => {
305 if (res.success) { 328 if (res.success) {
306 this.zoneList = res.result 329 this.zoneList = res.result
307 } 330 }
308 }) 331 })
309 - getContainerTypeList().then((res) => { 332 + getContainerTypeList().then(res => {
310 if (res.success) { 333 if (res.success) {
311 this.containerTypeList = res.result 334 this.containerTypeList = res.result
312 } 335 }
@@ -314,8 +337,8 @@ export default { @@ -314,8 +337,8 @@ export default {
314 }, 337 },
315 solutionZoneCode(value) { 338 solutionZoneCode(value) {
316 var actions = [] 339 var actions = []
317 - Object.keys(this.zoneList).some((key) => {  
318 - if (this.zoneList[key].code == ('' + value)) { 340 + Object.keys(this.zoneList).some(key => {
  341 + if (this.zoneList[key].code == '' + value) {
319 actions.push(this.zoneList[key].name) 342 actions.push(this.zoneList[key].name)
320 return true 343 return true
321 } 344 }
@@ -324,14 +347,14 @@ export default { @@ -324,14 +347,14 @@ export default {
324 }, 347 },
325 solutionContainerType(value) { 348 solutionContainerType(value) {
326 var actions = [] 349 var actions = []
327 - Object.keys(this.containerTypeList).some((key) => {  
328 - if (this.containerTypeList[key].code == ('' + value)) { 350 + Object.keys(this.containerTypeList).some(key => {
  351 + if (this.containerTypeList[key].code == '' + value) {
329 actions.push(this.containerTypeList[key].name) 352 actions.push(this.containerTypeList[key].name)
330 return true 353 return true
331 } 354 }
332 }) 355 })
333 return actions.join('') 356 return actions.join('')
334 - }, 357 + }
335 } 358 }
336 } 359 }
337 </script> 360 </script>
ant-design-vue-jeecg/src/views/system/config/ContainerTypeList.vue
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button> 20 <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
21 <a @click="handleToggleSearch" style="margin-left: 8px"> 21 <a @click="handleToggleSearch" style="margin-left: 8px">
22 {{ toggleSearchStatus ? '收起' : '展开' }} 22 {{ toggleSearchStatus ? '收起' : '展开' }}
23 - <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> 23 + <a-icon :type="toggleSearchStatus ? 'up' : 'down'" />
24 </a> 24 </a>
25 </span> 25 </span>
26 </a-col> 26 </a-col>
@@ -32,20 +32,30 @@ @@ -32,20 +32,30 @@
32 <!-- 操作按钮区域 --> 32 <!-- 操作按钮区域 -->
33 <div class="table-operator"> 33 <div class="table-operator">
34 <a-button @click="handleAdd" v-has="'containerType:add'" type="primary" icon="plus">新增</a-button> 34 <a-button @click="handleAdd" v-has="'containerType:add'" type="primary" icon="plus">新增</a-button>
35 - <a-button v-has="'containerType:export'" type="primary" icon="download" @click="handleExportXls('容器类型')">导出</a-button>  
36 - <a-upload v-has="'containerType:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"  
37 - @change="handleImportExcel"> 35 + <a-button v-has="'containerType:export'" type="primary" icon="download" @click="handleExportXls('容器类型')">
  36 + 导出
  37 + </a-button>
  38 + <a-upload
  39 + v-has="'containerType:import'"
  40 + name="file"
  41 + :showUploadList="false"
  42 + :multiple="false"
  43 + :headers="tokenHeader"
  44 + :action="importExcelUrl"
  45 + @change="handleImportExcel"
  46 + >
38 <a-button type="primary" icon="import">导入</a-button> 47 <a-button type="primary" icon="import">导入</a-button>
39 </a-upload> 48 </a-upload>
40 <a-dropdown v-if="selectedRowKeys.length > 0"> 49 <a-dropdown v-if="selectedRowKeys.length > 0">
41 <a-menu slot="overlay" v-has="'containerType:deleteBatch'"> 50 <a-menu slot="overlay" v-has="'containerType:deleteBatch'">
42 <a-menu-item key="1" @click="batchDel"> 51 <a-menu-item key="1" @click="batchDel">
43 - <a-icon type="delete"/> 52 + <a-icon type="delete" />
44 删除 53 删除
45 </a-menu-item> 54 </a-menu-item>
46 </a-menu> 55 </a-menu>
47 - <a-button style="margin-left: 8px"> 批量操作  
48 - <a-icon type="down"/> 56 + <a-button style="margin-left: 8px">
  57 + 批量操作
  58 + <a-icon type="down" />
49 </a-button> 59 </a-button>
50 </a-dropdown> 60 </a-dropdown>
51 </div> 61 </div>
@@ -53,50 +63,59 @@ @@ -53,50 +63,59 @@
53 <!-- table区域-begin --> 63 <!-- table区域-begin -->
54 <div> 64 <div>
55 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 65 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
56 - <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a  
57 - style="font-weight: 600">{{ selectedRowKeys.length }}</a>项 66 + <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择
  67 + <a style="font-weight: 600">{{ selectedRowKeys.length }}</a> 项
58 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 68 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
59 </div> 69 </div>
60 70
61 <a-table 71 <a-table
62 ref="table" 72 ref="table"
63 size="middle" 73 size="middle"
64 - :scroll="{x:true}" 74 + :scroll="{ x: true }"
65 bordered 75 bordered
66 rowKey="id" 76 rowKey="id"
67 :columns="columns" 77 :columns="columns"
68 :dataSource="dataSource" 78 :dataSource="dataSource"
69 :pagination="ipagination" 79 :pagination="ipagination"
70 :loading="loading" 80 :loading="loading"
71 - :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" 81 + :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
72 class="j-table-force-nowrap" 82 class="j-table-force-nowrap"
73 - @change="handleTableChange"> 83 + @change="handleTableChange"
  84 + >
  85 + <span slot="companyCode" slot-scope="companyCode">
  86 + <a-tag :key="companyCode" color=blue>
  87 + {{ solutionCompany(companyCode) }}
  88 + </a-tag>
  89 + </span>
  90 +
  91 + <span slot="locationTypes" slot-scope="locationTypes" >
  92 + <a-tag v-for="locationType in locationTypes" :key="locationType" color=pink>
  93 + {{ solutionLocationType(locationType) }}
  94 + </a-tag>
  95 + </span>
74 96
75 <template slot="htmlSlot" slot-scope="text"> 97 <template slot="htmlSlot" slot-scope="text">
76 <div v-html="text"></div> 98 <div v-html="text"></div>
77 </template> 99 </template>
78 <template slot="imgSlot" slot-scope="text"> 100 <template slot="imgSlot" slot-scope="text">
79 <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span> 101 <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
80 - <img v-else :src="getImgView(text)" height="25px" alt=""  
81 - style="max-width:80px;font-size: 12px;font-style: italic;"/> 102 + <img
  103 + v-else
  104 + :src="getImgView(text)"
  105 + height="25px"
  106 + alt=""
  107 + style="max-width:80px;font-size: 12px;font-style: italic;"
  108 + />
82 </template> 109 </template>
83 <template slot="fileSlot" slot-scope="text"> 110 <template slot="fileSlot" slot-scope="text">
84 <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span> 111 <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
85 - <a-button  
86 - v-else  
87 - :ghost="true"  
88 - type="primary"  
89 - icon="download"  
90 - size="small"  
91 - @click="downloadFile(text)"> 112 + <a-button v-else :ghost="true" type="primary" icon="download" size="small" @click="downloadFile(text)">
92 下载 113 下载
93 </a-button> 114 </a-button>
94 </template> 115 </template>
95 116
96 <span slot="action" slot-scope="text, record"> 117 <span slot="action" slot-scope="text, record">
97 - <a v-has="'containerType:edit'" @click="handleEdit(record)">编辑</a>  
98 -  
99 - <a-divider type="vertical"/> 118 + <a v-has="'containerType:edit'" @click="handleEdit(record)">编辑<a-divider type="vertical"/></a>
100 <a-dropdown> 119 <a-dropdown>
101 <a class="ant-dropdown-link">更多 <a-icon type="down"/></a> 120 <a class="ant-dropdown-link">更多 <a-icon type="down"/></a>
102 <a-menu slot="overlay"> 121 <a-menu slot="overlay">
@@ -111,7 +130,6 @@ @@ -111,7 +130,6 @@
111 </a-menu> 130 </a-menu>
112 </a-dropdown> 131 </a-dropdown>
113 </span> 132 </span>
114 -  
115 </a-table> 133 </a-table>
116 </div> 134 </div>
117 135
@@ -120,11 +138,11 @@ @@ -120,11 +138,11 @@
120 </template> 138 </template>
121 139
122 <script> 140 <script>
123 -  
124 import '@/assets/less/TableExpand.less' 141 import '@/assets/less/TableExpand.less'
125 -import {mixinDevice} from '@/utils/mixin'  
126 -import {JeecgListMixin} from '@/mixins/JeecgListMixin' 142 +import { mixinDevice } from '@/utils/mixin'
  143 +import { JeecgListMixin } from '@/mixins/JeecgListMixin'
127 import ContainerTypeModal from './modules/ContainerTypeModal' 144 import ContainerTypeModal from './modules/ContainerTypeModal'
  145 +import {getCompanyList, getLocationTypeList } from '@/api/api'
128 146
129 export default { 147 export default {
130 name: 'ContainerTypeList', 148 name: 'ContainerTypeList',
@@ -134,6 +152,8 @@ export default { @@ -134,6 +152,8 @@ export default {
134 }, 152 },
135 data() { 153 data() {
136 return { 154 return {
  155 + companyList: [],
  156 + locationTypeList: [],
137 description: '容器类型管理页面', 157 description: '容器类型管理页面',
138 // 表头 158 // 表头
139 columns: [ 159 columns: [
@@ -142,123 +162,158 @@ export default { @@ -142,123 +162,158 @@ export default {
142 dataIndex: '', 162 dataIndex: '',
143 key: 'rowIndex', 163 key: 'rowIndex',
144 width: 60, 164 width: 60,
145 - align: "center",  
146 - customRender: function (t, r, index) {  
147 - return parseInt(index) + 1; 165 + align: 'center',
  166 + customRender: function(t, r, index) {
  167 + return parseInt(index) + 1
148 } 168 }
149 }, 169 },
150 { 170 {
151 title: '编码', 171 title: '编码',
152 - align: "center", 172 + align: 'center',
153 dataIndex: 'code' 173 dataIndex: 'code'
154 }, 174 },
155 { 175 {
156 title: '名称', 176 title: '名称',
157 - align: "center", 177 + align: 'center',
158 dataIndex: 'name' 178 dataIndex: 'name'
159 }, 179 },
160 - {  
161 - title: '货主编码',  
162 - align: "center",  
163 - dataIndex: 'companyCode'  
164 - }, 180 + // {
  181 + // title: '货主',
  182 + // align: 'center',
  183 + // dataIndex: 'companyCode',
  184 + // key: 'companyCode',
  185 + // scopedSlots: {customRender: 'companyCode'}
  186 + // },
165 { 187 {
166 title: '绑定的库位类型', 188 title: '绑定的库位类型',
167 - align: "center",  
168 - dataIndex: 'locationType' 189 + align: 'center',
  190 + dataIndex: 'locationTypes',
  191 + key: 'locationTypes',
  192 + scopedSlots: {customRender: 'locationTypes'}
169 }, 193 },
170 { 194 {
171 title: '长', 195 title: '长',
172 - align: "center", 196 + align: 'center',
173 dataIndex: 'length' 197 dataIndex: 'length'
174 }, 198 },
175 { 199 {
176 title: '宽', 200 title: '宽',
177 - align: "center", 201 + align: 'center',
178 dataIndex: 'width' 202 dataIndex: 'width'
179 }, 203 },
180 { 204 {
181 title: '高', 205 title: '高',
182 - align: "center", 206 + align: 'center',
183 dataIndex: 'height' 207 dataIndex: 'height'
184 }, 208 },
185 { 209 {
186 title: '空容器重量', 210 title: '空容器重量',
187 - align: "center", 211 + align: 'center',
188 dataIndex: 'emptyweight' 212 dataIndex: 'emptyweight'
189 }, 213 },
190 { 214 {
191 title: '容器最大承重', 215 title: '容器最大承重',
192 - align: "center", 216 + align: 'center',
193 dataIndex: 'maxweight' 217 dataIndex: 'maxweight'
194 }, 218 },
195 { 219 {
196 title: '创建人', 220 title: '创建人',
197 - align: "center", 221 + align: 'center',
198 dataIndex: 'createBy' 222 dataIndex: 'createBy'
199 }, 223 },
200 { 224 {
201 title: '创建日期', 225 title: '创建日期',
202 - align: "center", 226 + align: 'center',
203 dataIndex: 'createTime' 227 dataIndex: 'createTime'
204 }, 228 },
205 { 229 {
206 title: '更新人', 230 title: '更新人',
207 - align: "center", 231 + align: 'center',
208 dataIndex: 'updateBy' 232 dataIndex: 'updateBy'
209 }, 233 },
210 { 234 {
211 title: '更新日期', 235 title: '更新日期',
212 - align: "center", 236 + align: 'center',
213 dataIndex: 'updateTime' 237 dataIndex: 'updateTime'
214 }, 238 },
215 { 239 {
216 title: '操作', 240 title: '操作',
217 dataIndex: 'action', 241 dataIndex: 'action',
218 - align: "center",  
219 - fixed: "right", 242 + align: 'center',
  243 + fixed: 'right',
220 width: 147, 244 width: 147,
221 - scopedSlots: {customRender: 'action'} 245 + scopedSlots: { customRender: 'action' }
222 } 246 }
223 ], 247 ],
224 url: { 248 url: {
225 - list: "/config/containerType/list",  
226 - delete: "/config/containerType/delete",  
227 - deleteBatch: "/config/containerType/deleteBatch",  
228 - exportXlsUrl: "/config/containerType/exportXls",  
229 - importExcelUrl: "config/containerType/importExcel",  
230 - 249 + list: '/config/containerType/list',
  250 + delete: '/config/containerType/delete',
  251 + deleteBatch: '/config/containerType/deleteBatch',
  252 + exportXlsUrl: '/config/containerType/exportXls',
  253 + importExcelUrl: 'config/containerType/importExcel'
231 }, 254 },
232 dictOptions: {}, 255 dictOptions: {},
233 - superFieldList: [], 256 + superFieldList: []
234 } 257 }
235 }, 258 },
236 created() { 259 created() {
237 - this.getSuperFieldList(); 260 + this.getSuperFieldList()
  261 + this.loadFrom()
238 }, 262 },
239 computed: { 263 computed: {
240 - importExcelUrl: function () {  
241 - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;  
242 - }, 264 + importExcelUrl: function() {
  265 + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
  266 + }
243 }, 267 },
244 methods: { 268 methods: {
245 - initDictConfig() { 269 + initDictConfig() {},
  270 + loadFrom() {
  271 + getCompanyList().then((res) => {
  272 + if (res.success) {
  273 + this.companyList = res.result
  274 + }
  275 + });
  276 + getLocationTypeList().then(res => {
  277 + if (res.success) {
  278 + this.locationTypeList = res.result
  279 + }
  280 + });
  281 + },
  282 + solutionCompany(value) {
  283 + var actions = []
  284 + Object.keys(this.companyList).some((key) => {
  285 + if (this.companyList[key].code == ('' + value)) {
  286 + actions.push(this.companyList[key].name)
  287 + return true
  288 + }
  289 + })
  290 + return actions.join('')
  291 + },
  292 + solutionLocationType(value) {
  293 + var actions = []
  294 + Object.keys(this.locationTypeList).some(key => {
  295 + if (this.locationTypeList[key].code == '' + value) {
  296 + actions.push(this.locationTypeList[key].name)
  297 + return true
  298 + }
  299 + })
  300 + return actions.join('')
246 }, 301 },
247 getSuperFieldList() { 302 getSuperFieldList() {
248 - let fieldList = [];  
249 - fieldList.push({type: 'string', value: 'code', text: '编码', dictCode: ''})  
250 - fieldList.push({type: 'string', value: 'name', text: '名称', dictCode: ''})  
251 - fieldList.push({type: 'string', value: 'companyCode', text: '货主编码', dictCode: ''})  
252 - fieldList.push({type: 'string', value: 'locationType', text: '绑定的库位类型', dictCode: ''})  
253 - fieldList.push({type: 'int', value: 'length', text: '长', dictCode: ''})  
254 - fieldList.push({type: 'int', value: 'width', text: '宽', dictCode: ''})  
255 - fieldList.push({type: 'int', value: 'height', text: '高', dictCode: ''})  
256 - fieldList.push({type: 'int', value: 'emptyweight', text: '空容器重量', dictCode: ''})  
257 - fieldList.push({type: 'int', value: 'maxweight', text: '容器最大承重', dictCode: ''})  
258 - fieldList.push({type: 'string', value: 'createBy', text: '创建人', dictCode: ''})  
259 - fieldList.push({type: 'datetime', value: 'createTime', text: '创建日期'})  
260 - fieldList.push({type: 'string', value: 'updateBy', text: '更新人', dictCode: ''})  
261 - fieldList.push({type: 'datetime', value: 'updateTime', text: '更新日期'}) 303 + let fieldList = []
  304 + fieldList.push({ type: 'string', value: 'code', text: '编码', dictCode: '' })
  305 + fieldList.push({ type: 'string', value: 'name', text: '名称', dictCode: '' })
  306 + fieldList.push({ type: 'string', value: 'companyCode', text: '货主编码', dictCode: '' })
  307 + fieldList.push({ type: 'string', value: 'locationType', text: '绑定的库位类型', dictCode: '' })
  308 + fieldList.push({ type: 'int', value: 'length', text: '长', dictCode: '' })
  309 + fieldList.push({ type: 'int', value: 'width', text: '宽', dictCode: '' })
  310 + fieldList.push({ type: 'int', value: 'height', text: '高', dictCode: '' })
  311 + fieldList.push({ type: 'int', value: 'emptyweight', text: '空容器重量', dictCode: '' })
  312 + fieldList.push({ type: 'int', value: 'maxweight', text: '容器最大承重', dictCode: '' })
  313 + fieldList.push({ type: 'string', value: 'createBy', text: '创建人', dictCode: '' })
  314 + fieldList.push({ type: 'datetime', value: 'createTime', text: '创建日期' })
  315 + fieldList.push({ type: 'string', value: 'updateBy', text: '更新人', dictCode: '' })
  316 + fieldList.push({ type: 'datetime', value: 'updateTime', text: '更新日期' })
262 this.superFieldList = fieldList 317 this.superFieldList = fieldList
263 } 318 }
264 } 319 }
ant-design-vue-jeecg/src/views/system/config/CustomerList.vue
@@ -34,7 +34,7 @@ @@ -34,7 +34,7 @@
34 <div> 34 <div>
35 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 35 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
36 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 36 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
37 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 37 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
38 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 38 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
39 </div> 39 </div>
40 40
ant-design-vue-jeecg/src/views/system/config/CycleCountPreferenceList.vue
@@ -34,7 +34,7 @@ @@ -34,7 +34,7 @@
34 <div> 34 <div>
35 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 35 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
36 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 36 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
37 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 37 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
38 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 38 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
39 </div> 39 </div>
40 40
ant-design-vue-jeecg/src/views/system/config/LocationHighList.vue
@@ -54,7 +54,7 @@ @@ -54,7 +54,7 @@
54 <div> 54 <div>
55 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 55 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
56 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 56 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
57 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 57 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
58 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 58 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
59 </div> 59 </div>
60 60
ant-design-vue-jeecg/src/views/system/config/LocationList.vue
@@ -16,7 +16,7 @@ @@ -16,7 +16,7 @@
16 </a-col> 16 </a-col>
17 <a-col :xl="6" :lg="7" :md="8" :sm="24"> 17 <a-col :xl="6" :lg="7" :md="8" :sm="24">
18 <a-form-item label="状态"> 18 <a-form-item label="状态">
19 - <j-dict-select-tag placeholder="请选择状态" v-model="queryParam.status" dictCode="location_status"/> 19 + <j-dict-select-tag placeholder="请选择状态" v-model="queryParam.status" dictCode="location_status" />
20 </a-form-item> 20 </a-form-item>
21 </a-col> 21 </a-col>
22 <a-col :xl="6" :lg="7" :md="8" :sm="24"> 22 <a-col :xl="6" :lg="7" :md="8" :sm="24">
@@ -25,10 +25,10 @@ @@ -25,10 +25,10 @@
25 show-search 25 show-search
26 placeholder="请选择库位类型" 26 placeholder="请选择库位类型"
27 option-filter-prop="children" 27 option-filter-prop="children"
28 -  
29 - v-model="queryParam.locationTypeCode"> 28 + v-model="queryParam.locationTypeCode"
  29 + >
30 <a-select-option v-for="item in locationTypeList" :key="item.name" :value="item.code"> 30 <a-select-option v-for="item in locationTypeList" :key="item.name" :value="item.code">
31 - {{item.name}} 31 + {{ item.name }}
32 </a-select-option> 32 </a-select-option>
33 </a-select> 33 </a-select>
34 </a-form-item> 34 </a-form-item>
@@ -40,10 +40,10 @@ @@ -40,10 +40,10 @@
40 show-search 40 show-search
41 placeholder="请选择库区编码" 41 placeholder="请选择库区编码"
42 option-filter-prop="children" 42 option-filter-prop="children"
43 -  
44 - v-model="queryParam.zoneCode"> 43 + v-model="queryParam.zoneCode"
  44 + >
45 <a-select-option v-for="item in zoneList" :key="item.name" :value="item.code"> 45 <a-select-option v-for="item in zoneList" :key="item.name" :value="item.code">
46 - {{item.name}} 46 + {{ item.name }}
47 </a-select-option> 47 </a-select-option>
48 </a-select> 48 </a-select>
49 </a-form-item> 49 </a-form-item>
@@ -70,17 +70,17 @@ @@ -70,17 +70,17 @@
70 </a-col> 70 </a-col>
71 <a-col :xl="6" :lg="7" :md="8" :sm="24"> 71 <a-col :xl="6" :lg="7" :md="8" :sm="24">
72 <a-form-item label="高低位"> 72 <a-form-item label="高低位">
73 - <j-dict-select-tag placeholder="请输入高低位" v-model="queryParam.high" dictCode="high_status"/> 73 + <j-dict-select-tag placeholder="请输入高低位" v-model="queryParam.high" dictCode="high_status" />
74 </a-form-item> 74 </a-form-item>
75 </a-col> 75 </a-col>
76 <a-col :xl="6" :lg="7" :md="8" :sm="24"> 76 <a-col :xl="6" :lg="7" :md="8" :sm="24">
77 <a-form-item label="内外侧"> 77 <a-form-item label="内外侧">
78 - <j-dict-select-tag placeholder="请选择内外侧" v-model="queryParam.rowFlag" dictCode="row_type"/> 78 + <j-dict-select-tag placeholder="请选择内外侧" v-model="queryParam.rowFlag" dictCode="row_type" />
79 </a-form-item> 79 </a-form-item>
80 </a-col> 80 </a-col>
81 <a-col :xl="6" :lg="7" :md="8" :sm="24"> 81 <a-col :xl="6" :lg="7" :md="8" :sm="24">
82 <a-form-item label="是否可用"> 82 <a-form-item label="是否可用">
83 - <j-dict-select-tag placeholder="请选择是否可用" v-model="queryParam.enable" dictCode="enable_status"/> 83 + <j-dict-select-tag placeholder="请选择是否可用" v-model="queryParam.enable" dictCode="enable_status" />
84 </a-form-item> 84 </a-form-item>
85 </a-col> 85 </a-col>
86 </template> 86 </template>
@@ -90,7 +90,7 @@ @@ -90,7 +90,7 @@
90 <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button> 90 <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
91 <a @click="handleToggleSearch" style="margin-left: 8px"> 91 <a @click="handleToggleSearch" style="margin-left: 8px">
92 {{ toggleSearchStatus ? '收起' : '展开' }} 92 {{ toggleSearchStatus ? '收起' : '展开' }}
93 - <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> 93 + <a-icon :type="toggleSearchStatus ? 'up' : 'down'" />
94 </a> 94 </a>
95 </span> 95 </span>
96 </a-col> 96 </a-col>
@@ -103,21 +103,31 @@ @@ -103,21 +103,31 @@
103 <div class="table-operator"> 103 <div class="table-operator">
104 <a-button @click="batchAdd()" v-has="'location:batchAdd'" type="primary" icon="plus">批量新增</a-button> 104 <a-button @click="batchAdd()" v-has="'location:batchAdd'" type="primary" icon="plus">批量新增</a-button>
105 <a-button v-has="'location:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button> 105 <a-button v-has="'location:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button>
106 - <a-button v-has="'location:export'" type="primary" icon="download" @click="handleExportXls('库位管理')">导出</a-button>  
107 - <a-upload v-has="'location:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"  
108 - @change="handleImportExcel"> 106 + <a-button v-has="'location:export'" type="primary" icon="download" @click="handleExportXls('库位管理')">
  107 + 导出
  108 + </a-button>
  109 + <a-upload
  110 + v-has="'location:import'"
  111 + name="file"
  112 + :showUploadList="false"
  113 + :multiple="false"
  114 + :headers="tokenHeader"
  115 + :action="importExcelUrl"
  116 + @change="handleImportExcel"
  117 + >
109 <a-button type="primary" icon="import">导入</a-button> 118 <a-button type="primary" icon="import">导入</a-button>
110 </a-upload> 119 </a-upload>
111 <a-button v-has="'material:print'" @click="batchPrint()" type="primary">打印</a-button> 120 <a-button v-has="'material:print'" @click="batchPrint()" type="primary">打印</a-button>
112 <a-dropdown v-if="selectedRowKeys.length > 0"> 121 <a-dropdown v-if="selectedRowKeys.length > 0">
113 <a-menu slot="overlay" v-has="'location:deleteBatch'"> 122 <a-menu slot="overlay" v-has="'location:deleteBatch'">
114 <a-menu-item key="1" @click="batchDel"> 123 <a-menu-item key="1" @click="batchDel">
115 - <a-icon type="delete"/> 124 + <a-icon type="delete" />
116 删除 125 删除
117 </a-menu-item> 126 </a-menu-item>
118 </a-menu> 127 </a-menu>
119 - <a-button style="margin-left: 8px"> 批量操作  
120 - <a-icon type="down"/> 128 + <a-button style="margin-left: 8px">
  129 + 批量操作
  130 + <a-icon type="down" />
121 </a-button> 131 </a-button>
122 </a-dropdown> 132 </a-dropdown>
123 </div> 133 </div>
@@ -125,33 +135,33 @@ @@ -125,33 +135,33 @@
125 <!-- table区域-begin --> 135 <!-- table区域-begin -->
126 <div> 136 <div>
127 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 137 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
128 - <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a  
129 - style="font-weight: 600">{{ selectedRowKeys.length }}</a>项 138 + <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择
  139 + <a style="font-weight: 600">{{ selectedRowKeys.length }}</a> 项
130 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 140 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
131 </div> 141 </div>
132 142
133 <a-table 143 <a-table
134 ref="table" 144 ref="table"
135 size="middle" 145 size="middle"
136 - :scroll="{x:true}" 146 + :scroll="{ x: true }"
137 bordered 147 bordered
138 rowKey="id" 148 rowKey="id"
139 :columns="columns" 149 :columns="columns"
140 :dataSource="dataSource" 150 :dataSource="dataSource"
141 :pagination="ipagination" 151 :pagination="ipagination"
142 :loading="loading" 152 :loading="loading"
143 - :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" 153 + :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
144 class="j-table-force-nowrap" 154 class="j-table-force-nowrap"
145 - @change="handleTableChange">  
146 -  
147 - <span slot="locationTypeCode" slot-scope="locationTypeCode">  
148 - <a-tag :key="locationTypeCode" color=pink> 155 + @change="handleTableChange"
  156 + >
  157 + <span slot="locationTypeCode" slot-scope="locationTypeCode">
  158 + <a-tag :key="locationTypeCode" color="pink">
149 {{ solutionLocationType(locationTypeCode) }} 159 {{ solutionLocationType(locationTypeCode) }}
150 </a-tag> 160 </a-tag>
151 </span> 161 </span>
152 162
153 <span slot="zoneCode" slot-scope="zoneCode"> 163 <span slot="zoneCode" slot-scope="zoneCode">
154 - <a-tag :key="zoneCode" color=blue> 164 + <a-tag :key="zoneCode" color="blue">
155 {{ solutionZoneCode(zoneCode) }} 165 {{ solutionZoneCode(zoneCode) }}
156 </a-tag> 166 </a-tag>
157 </span> 167 </span>
@@ -161,26 +171,23 @@ @@ -161,26 +171,23 @@
161 </template> 171 </template>
162 <template slot="imgSlot" slot-scope="text"> 172 <template slot="imgSlot" slot-scope="text">
163 <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span> 173 <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
164 - <img v-else :src="getImgView(text)" height="25px" alt=""  
165 - style="max-width:80px;font-size: 12px;font-style: italic;"/> 174 + <img
  175 + v-else
  176 + :src="getImgView(text)"
  177 + height="25px"
  178 + alt=""
  179 + style="max-width:80px;font-size: 12px;font-style: italic;"
  180 + />
166 </template> 181 </template>
167 <template slot="fileSlot" slot-scope="text"> 182 <template slot="fileSlot" slot-scope="text">
168 <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span> 183 <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
169 - <a-button  
170 - v-else  
171 - :ghost="true"  
172 - type="primary"  
173 - icon="download"  
174 - size="small"  
175 - @click="downloadFile(text)"> 184 + <a-button v-else :ghost="true" type="primary" icon="download" size="small" @click="downloadFile(text)">
176 下载 185 下载
177 </a-button> 186 </a-button>
178 </template> 187 </template>
179 188
180 <span slot="action" slot-scope="text, record"> 189 <span slot="action" slot-scope="text, record">
181 - <a v-has="'location:edit'" @click="handleEdit(record)">编辑</a>  
182 -  
183 - <a-divider type="vertical"/> 190 + <a v-has="'location:edit'" @click="handleEdit(record)">编辑<a-divider type="vertical"/></a>
184 <a-dropdown> 191 <a-dropdown>
185 <a class="ant-dropdown-link">更多 <a-icon type="down"/></a> 192 <a class="ant-dropdown-link">更多 <a-icon type="down"/></a>
186 <a-menu slot="overlay"> 193 <a-menu slot="overlay">
@@ -195,7 +202,6 @@ @@ -195,7 +202,6 @@
195 </a-menu> 202 </a-menu>
196 </a-dropdown> 203 </a-dropdown>
197 </span> 204 </span>
198 -  
199 </a-table> 205 </a-table>
200 </div> 206 </div>
201 207
@@ -206,15 +212,14 @@ @@ -206,15 +212,14 @@
206 </template> 212 </template>
207 213
208 <script> 214 <script>
209 -  
210 import '@/assets/less/TableExpand.less' 215 import '@/assets/less/TableExpand.less'
211 -import {mixinDevice} from '@/utils/mixin'  
212 -import {JeecgListMixin} from '@/mixins/JeecgListMixin' 216 +import { mixinDevice } from '@/utils/mixin'
  217 +import { JeecgListMixin } from '@/mixins/JeecgListMixin'
213 import LocationModal from './modules/LocationModal' 218 import LocationModal from './modules/LocationModal'
214 -import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'  
215 -import {getLocationTypeList} from '@/api/api'  
216 -import {getZoneList} from '@/api/api'  
217 -import LocationBatchAddModal from "./modules/LocationBatchAddModal"; 219 +import { filterMultiDictText } from '@/components/dict/JDictSelectUtil'
  220 +import { getLocationTypeList } from '@/api/api'
  221 +import { getZoneList } from '@/api/api'
  222 +import LocationBatchAddModal from './modules/LocationBatchAddModal'
218 import LocationPrintModal from './modules/LocationPrintModal' 223 import LocationPrintModal from './modules/LocationPrintModal'
219 224
220 export default { 225 export default {
@@ -234,114 +239,113 @@ export default { @@ -234,114 +239,113 @@ export default {
234 columns: [ 239 columns: [
235 { 240 {
236 title: 'ID', 241 title: 'ID',
237 - align: "center", 242 + align: 'center',
238 dataIndex: 'id' 243 dataIndex: 'id'
239 }, 244 },
240 { 245 {
241 title: '库位编码', 246 title: '库位编码',
242 - align: "center", 247 + align: 'center',
243 dataIndex: 'code' 248 dataIndex: 'code'
244 }, 249 },
245 { 250 {
246 title: '容器编码', 251 title: '容器编码',
247 - align: "center", 252 + align: 'center',
248 dataIndex: 'containerCode' 253 dataIndex: 'containerCode'
249 }, 254 },
250 { 255 {
251 title: '状态', 256 title: '状态',
252 - align: "center", 257 + align: 'center',
253 dataIndex: 'status_dictText' 258 dataIndex: 'status_dictText'
254 }, 259 },
255 { 260 {
256 title: '库区', 261 title: '库区',
257 - align: "center", 262 + align: 'center',
258 dataIndex: 'zoneCode', 263 dataIndex: 'zoneCode',
259 key: 'zoneCode', 264 key: 'zoneCode',
260 - scopedSlots: {customRender: 'zoneCode'} 265 + scopedSlots: { customRender: 'zoneCode' }
261 }, 266 },
262 { 267 {
263 title: '库位类型', 268 title: '库位类型',
264 - align: "center", 269 + align: 'center',
265 dataIndex: 'locationTypeCode', 270 dataIndex: 'locationTypeCode',
266 key: 'locationTypeCode', 271 key: 'locationTypeCode',
267 - scopedSlots: {customRender: 'locationTypeCode'} 272 + scopedSlots: { customRender: 'locationTypeCode' }
268 }, 273 },
269 { 274 {
270 title: '巷道', 275 title: '巷道',
271 - align: "center", 276 + align: 'center',
272 dataIndex: 'roadWay' 277 dataIndex: 'roadWay'
273 }, 278 },
274 { 279 {
275 title: '行', 280 title: '行',
276 - align: "center", 281 + align: 'center',
277 dataIndex: 'row' 282 dataIndex: 'row'
278 }, 283 },
279 { 284 {
280 title: '列', 285 title: '列',
281 - align: "center", 286 + align: 'center',
282 dataIndex: 'icolumn' 287 dataIndex: 'icolumn'
283 }, 288 },
284 { 289 {
285 title: '层', 290 title: '层',
286 - align: "center", 291 + align: 'center',
287 dataIndex: 'layer' 292 dataIndex: 'layer'
288 }, 293 },
289 { 294 {
290 title: '高低位', 295 title: '高低位',
291 - align: "center", 296 + align: 'center',
292 dataIndex: 'high_dictText' 297 dataIndex: 'high_dictText'
293 }, 298 },
294 { 299 {
295 title: '内外侧', 300 title: '内外侧',
296 - align: "center", 301 + align: 'center',
297 dataIndex: 'rowFlag_dictText' 302 dataIndex: 'rowFlag_dictText'
298 }, 303 },
299 { 304 {
300 title: '物料分区存放', 305 title: '物料分区存放',
301 - align: "center", 306 + align: 'center',
302 dataIndex: 'materialAreaCode' 307 dataIndex: 'materialAreaCode'
303 }, 308 },
304 { 309 {
305 title: '是否可用', 310 title: '是否可用',
306 - align: "center", 311 + align: 'center',
307 dataIndex: 'enable_dictText' 312 dataIndex: 'enable_dictText'
308 }, 313 },
309 { 314 {
310 title: '创建人', 315 title: '创建人',
311 - align: "center", 316 + align: 'center',
312 dataIndex: 'createBy' 317 dataIndex: 'createBy'
313 }, 318 },
314 { 319 {
315 title: '创建日期', 320 title: '创建日期',
316 - align: "center", 321 + align: 'center',
317 dataIndex: 'createTime' 322 dataIndex: 'createTime'
318 }, 323 },
319 { 324 {
320 title: '更新人', 325 title: '更新人',
321 - align: "center", 326 + align: 'center',
322 dataIndex: 'updateBy' 327 dataIndex: 'updateBy'
323 }, 328 },
324 { 329 {
325 title: '更新日期', 330 title: '更新日期',
326 - align: "center", 331 + align: 'center',
327 dataIndex: 'updateTime' 332 dataIndex: 'updateTime'
328 }, 333 },
329 { 334 {
330 title: '操作', 335 title: '操作',
331 dataIndex: 'action', 336 dataIndex: 'action',
332 - align: "center",  
333 - fixed: "right", 337 + align: 'center',
  338 + fixed: 'right',
334 width: 147, 339 width: 147,
335 - scopedSlots: {customRender: 'action'} 340 + scopedSlots: { customRender: 'action' }
336 } 341 }
337 ], 342 ],
338 url: { 343 url: {
339 - list: "/config/location/list",  
340 - delete: "/config/location/delete",  
341 - deleteBatch: "/config/location/deleteBatch",  
342 - exportXlsUrl: "/config/location/exportXls",  
343 - importExcelUrl: "config/location/importExcel",  
344 - 344 + list: '/config/location/list',
  345 + delete: '/config/location/delete',
  346 + deleteBatch: '/config/location/deleteBatch',
  347 + exportXlsUrl: '/config/location/exportXls',
  348 + importExcelUrl: 'config/location/importExcel'
345 }, 349 },
346 /* 分页参数 */ 350 /* 分页参数 */
347 ipagination: { 351 ipagination: {
@@ -349,83 +353,86 @@ export default { @@ -349,83 +353,86 @@ export default {
349 pageSize: 10, 353 pageSize: 10,
350 pageSizeOptions: ['10', '20', '50'], 354 pageSizeOptions: ['10', '20', '50'],
351 showTotal: (total, range) => { 355 showTotal: (total, range) => {
352 - return range[0] + "-" + range[1] + " 共" + total + "条" 356 + return range[0] + '-' + range[1] + ' 共' + total + '条'
353 }, 357 },
354 showQuickJumper: true, 358 showQuickJumper: true,
355 showSizeChanger: true, 359 showSizeChanger: true,
356 total: 0 360 total: 0
357 }, 361 },
358 dictOptions: {}, 362 dictOptions: {},
359 - superFieldList: [], 363 + superFieldList: []
360 } 364 }
361 }, 365 },
362 created() { 366 created() {
363 - this.getSuperFieldList();  
364 - this.loadFrom(); 367 + this.getSuperFieldList()
  368 + this.loadFrom()
365 }, 369 },
366 computed: { 370 computed: {
367 - importExcelUrl: function () {  
368 - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;  
369 - }, 371 + importExcelUrl: function() {
  372 + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
  373 + }
370 }, 374 },
371 methods: { 375 methods: {
372 - initDictConfig() {  
373 - }, 376 + initDictConfig() {},
374 getSuperFieldList() { 377 getSuperFieldList() {
375 - let fieldList = [];  
376 - fieldList.push({type: 'string', value: 'code', text: '库位编码', dictCode: ''})  
377 - fieldList.push({type: 'string', value: 'zoneCode', text: '库区编码', dictCode: ''})  
378 - fieldList.push({type: 'string', value: 'locationTypeCode', text: '库位类型', dictCode: ''})  
379 - fieldList.push({type: 'string', value: 'containerCode', text: '容器编码', dictCode: ''})  
380 - fieldList.push({type: 'string', value: 'status', text: '状态', dictCode: 'location_status'})  
381 - fieldList.push({type: 'int', value: 'roadWay', text: '巷道', dictCode: ''})  
382 - fieldList.push({type: 'int', value: 'row', text: '行', dictCode: ''})  
383 - fieldList.push({type: 'int', value: 'icolumn', text: '列', dictCode: ''})  
384 - fieldList.push({type: 'int', value: 'layer', text: '层', dictCode: ''})  
385 - fieldList.push({type: 'int', value: 'grid', text: '格', dictCode: ''})  
386 - fieldList.push({type: 'int', value: 'high', text: '高低位', dictCode: ''})  
387 - fieldList.push({type: 'int', value: 'rowFlag', text: '内外侧', dictCode: 'row_type'})  
388 - fieldList.push({type: 'string', value: 'materialAreaCode', text: '物料分区存放', dictCode: ''})  
389 - fieldList.push({type: 'int', value: 'enable', text: '是否可用', dictCode: 'enable_status'})  
390 - fieldList.push({type: 'string', value: 'createBy', text: '创建人', dictCode: ''})  
391 - fieldList.push({type: 'datetime', value: 'createTime', text: '创建日期'})  
392 - fieldList.push({type: 'string', value: 'updateBy', text: '更新人', dictCode: ''})  
393 - fieldList.push({type: 'datetime', value: 'updateTime', text: '更新日期'}) 378 + let fieldList = []
  379 + fieldList.push({ type: 'string', value: 'code', text: '库位编码', dictCode: '' })
  380 + fieldList.push({ type: 'string', value: 'zoneCode', text: '库区编码', dictCode: '' })
  381 + fieldList.push({ type: 'string', value: 'locationTypeCode', text: '库位类型', dictCode: '' })
  382 + fieldList.push({ type: 'string', value: 'containerCode', text: '容器编码', dictCode: '' })
  383 + fieldList.push({ type: 'string', value: 'status', text: '状态', dictCode: 'location_status' })
  384 + fieldList.push({ type: 'int', value: 'roadWay', text: '巷道', dictCode: '' })
  385 + fieldList.push({ type: 'int', value: 'row', text: '行', dictCode: '' })
  386 + fieldList.push({ type: 'int', value: 'icolumn', text: '列', dictCode: '' })
  387 + fieldList.push({ type: 'int', value: 'layer', text: '层', dictCode: '' })
  388 + fieldList.push({ type: 'int', value: 'grid', text: '格', dictCode: '' })
  389 + fieldList.push({ type: 'int', value: 'high', text: '高低位', dictCode: '' })
  390 + fieldList.push({ type: 'int', value: 'rowFlag', text: '内外侧', dictCode: 'row_type' })
  391 + fieldList.push({ type: 'string', value: 'materialAreaCode', text: '物料分区存放', dictCode: '' })
  392 + fieldList.push({ type: 'int', value: 'enable', text: '是否可用', dictCode: 'enable_status' })
  393 + fieldList.push({ type: 'string', value: 'createBy', text: '创建人', dictCode: '' })
  394 + fieldList.push({ type: 'datetime', value: 'createTime', text: '创建日期' })
  395 + fieldList.push({ type: 'string', value: 'updateBy', text: '更新人', dictCode: '' })
  396 + fieldList.push({ type: 'datetime', value: 'updateTime', text: '更新日期' })
394 this.superFieldList = fieldList 397 this.superFieldList = fieldList
395 }, 398 },
396 loadFrom() { 399 loadFrom() {
397 - getZoneList().then((res) => { 400 + getZoneList().then(res => {
398 if (res.success) { 401 if (res.success) {
399 this.zoneList = res.result 402 this.zoneList = res.result
400 } 403 }
401 - });  
402 - getLocationTypeList().then((res) => { 404 + })
  405 + getLocationTypeList().then(res => {
403 if (res.success) { 406 if (res.success) {
404 this.locationTypeList = res.result 407 this.locationTypeList = res.result
405 } 408 }
406 }) 409 })
407 }, 410 },
408 batchAdd() { 411 batchAdd() {
409 - this.$refs.batchAddModalForm.add();  
410 - this.$refs.batchAddModalForm.title = "批量新增";  
411 - this.$refs.batchAddModalForm.disableSubmit = false; 412 + this.$refs.batchAddModalForm.add()
  413 + this.$refs.batchAddModalForm.title = '批量新增'
  414 + this.$refs.batchAddModalForm.disableSubmit = false
412 }, 415 },
413 batchPrint() { 416 batchPrint() {
414 if (this.selectedRowKeys.length <= 0) { 417 if (this.selectedRowKeys.length <= 0) {
415 - this.$message.warning('请选择一条记录!');  
416 - return; 418 + this.$message.warning('请选择一条记录!')
  419 + return
417 } else { 420 } else {
418 - var ids = ""; 421 + var ids = ''
419 for (var a = 0; a < this.selectedRowKeys.length; a++) { 422 for (var a = 0; a < this.selectedRowKeys.length; a++) {
420 - ids += this.selectedRowKeys[a] + ","; 423 + ids += this.selectedRowKeys[a] + ','
421 } 424 }
422 - window.open(window._CONFIG['domianURL'] + "/jmreport/view/768700106074832896/?id=" + ids, "newWindow", "toolbar=no,scrollbars=no,menubar=no,screenX=100,screenY=100"); 425 + window.open(
  426 + window._CONFIG['domianURL'] + '/jmreport/view/768700106074832896/?id=' + ids,
  427 + 'newWindow',
  428 + 'toolbar=no,scrollbars=no,menubar=no,screenX=100,screenY=100'
  429 + )
423 } 430 }
424 }, 431 },
425 solutionZoneCode(value) { 432 solutionZoneCode(value) {
426 var actions = [] 433 var actions = []
427 - Object.keys(this.zoneList).some((key) => {  
428 - if (this.zoneList[key].code == ('' + value)) { 434 + Object.keys(this.zoneList).some(key => {
  435 + if (this.zoneList[key].code == '' + value) {
429 actions.push(this.zoneList[key].name) 436 actions.push(this.zoneList[key].name)
430 return true 437 return true
431 } 438 }
@@ -434,14 +441,14 @@ export default { @@ -434,14 +441,14 @@ export default {
434 }, 441 },
435 solutionLocationType(value) { 442 solutionLocationType(value) {
436 var actions = [] 443 var actions = []
437 - Object.keys(this.locationTypeList).some((key) => {  
438 - if (this.locationTypeList[key].code == ('' + value)) { 444 + Object.keys(this.locationTypeList).some(key => {
  445 + if (this.locationTypeList[key].code == '' + value) {
439 actions.push(this.locationTypeList[key].name) 446 actions.push(this.locationTypeList[key].name)
440 return true 447 return true
441 } 448 }
442 }) 449 })
443 return actions.join('') 450 return actions.join('')
444 - }, 451 + }
445 } 452 }
446 } 453 }
447 </script> 454 </script>
ant-design-vue-jeecg/src/views/system/config/LocationTypeList.vue
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button> 20 <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
21 <a @click="handleToggleSearch" style="margin-left: 8px"> 21 <a @click="handleToggleSearch" style="margin-left: 8px">
22 {{ toggleSearchStatus ? '收起' : '展开' }} 22 {{ toggleSearchStatus ? '收起' : '展开' }}
23 - <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> 23 + <a-icon :type="toggleSearchStatus ? 'up' : 'down'" />
24 </a> 24 </a>
25 </span> 25 </span>
26 </a-col> 26 </a-col>
@@ -32,20 +32,30 @@ @@ -32,20 +32,30 @@
32 <!-- 操作按钮区域 --> 32 <!-- 操作按钮区域 -->
33 <div class="table-operator"> 33 <div class="table-operator">
34 <a-button v-has="'locationType:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button> 34 <a-button v-has="'locationType:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button>
35 - <a-button v-has="'locationType:export'" type="primary" icon="download" @click="handleExportXls('库位类型')">导出</a-button>  
36 - <a-upload v-has="'locationType:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"  
37 - @change="handleImportExcel"> 35 + <a-button v-has="'locationType:export'" type="primary" icon="download" @click="handleExportXls('库位类型')">
  36 + 导出
  37 + </a-button>
  38 + <a-upload
  39 + v-has="'locationType:import'"
  40 + name="file"
  41 + :showUploadList="false"
  42 + :multiple="false"
  43 + :headers="tokenHeader"
  44 + :action="importExcelUrl"
  45 + @change="handleImportExcel"
  46 + >
38 <a-button type="primary" icon="import">导入</a-button> 47 <a-button type="primary" icon="import">导入</a-button>
39 </a-upload> 48 </a-upload>
40 <a-dropdown v-if="selectedRowKeys.length > 0"> 49 <a-dropdown v-if="selectedRowKeys.length > 0">
41 <a-menu slot="overlay" v-has="'locationType:deleteBatch'"> 50 <a-menu slot="overlay" v-has="'locationType:deleteBatch'">
42 <a-menu-item key="1" @click="batchDel"> 51 <a-menu-item key="1" @click="batchDel">
43 - <a-icon type="delete"/> 52 + <a-icon type="delete" />
44 删除 53 删除
45 </a-menu-item> 54 </a-menu-item>
46 </a-menu> 55 </a-menu>
47 - <a-button style="margin-left: 8px"> 批量操作  
48 - <a-icon type="down"/> 56 + <a-button style="margin-left: 8px">
  57 + 批量操作
  58 + <a-icon type="down" />
49 </a-button> 59 </a-button>
50 </a-dropdown> 60 </a-dropdown>
51 </div> 61 </div>
@@ -53,50 +63,47 @@ @@ -53,50 +63,47 @@
53 <!-- table区域-begin --> 63 <!-- table区域-begin -->
54 <div> 64 <div>
55 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 65 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
56 - <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a  
57 - style="font-weight: 600">{{ selectedRowKeys.length }}</a>项 66 + <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择
  67 + <a style="font-weight: 600">{{ selectedRowKeys.length }}</a> 项
58 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 68 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
59 </div> 69 </div>
60 70
61 <a-table 71 <a-table
62 ref="table" 72 ref="table"
63 size="middle" 73 size="middle"
64 - :scroll="{x:true}" 74 + :scroll="{ x: true }"
65 bordered 75 bordered
66 rowKey="id" 76 rowKey="id"
67 :columns="columns" 77 :columns="columns"
68 :dataSource="dataSource" 78 :dataSource="dataSource"
69 :pagination="ipagination" 79 :pagination="ipagination"
70 :loading="loading" 80 :loading="loading"
71 - :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" 81 + :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
72 class="j-table-force-nowrap" 82 class="j-table-force-nowrap"
73 - @change="handleTableChange">  
74 - 83 + @change="handleTableChange"
  84 + >
75 <template slot="htmlSlot" slot-scope="text"> 85 <template slot="htmlSlot" slot-scope="text">
76 <div v-html="text"></div> 86 <div v-html="text"></div>
77 </template> 87 </template>
78 <template slot="imgSlot" slot-scope="text"> 88 <template slot="imgSlot" slot-scope="text">
79 <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span> 89 <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
80 - <img v-else :src="getImgView(text)" height="25px" alt=""  
81 - style="max-width:80px;font-size: 12px;font-style: italic;"/> 90 + <img
  91 + v-else
  92 + :src="getImgView(text)"
  93 + height="25px"
  94 + alt=""
  95 + style="max-width:80px;font-size: 12px;font-style: italic;"
  96 + />
82 </template> 97 </template>
83 <template slot="fileSlot" slot-scope="text"> 98 <template slot="fileSlot" slot-scope="text">
84 <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span> 99 <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
85 - <a-button  
86 - v-else  
87 - :ghost="true"  
88 - type="primary"  
89 - icon="download"  
90 - size="small"  
91 - @click="downloadFile(text)"> 100 + <a-button v-else :ghost="true" type="primary" icon="download" size="small" @click="downloadFile(text)">
92 下载 101 下载
93 </a-button> 102 </a-button>
94 </template> 103 </template>
95 104
96 <span slot="action" slot-scope="text, record"> 105 <span slot="action" slot-scope="text, record">
97 - <a v-has="'locationType:edit'" @click="handleEdit(record)">编辑</a>  
98 -  
99 - <a-divider type="vertical"/> 106 + <a v-has="'locationType:edit'" @click="handleEdit(record)">编辑<a-divider type="vertical"/></a>
100 <a-dropdown> 107 <a-dropdown>
101 <a class="ant-dropdown-link">更多 <a-icon type="down"/></a> 108 <a class="ant-dropdown-link">更多 <a-icon type="down"/></a>
102 <a-menu slot="overlay"> 109 <a-menu slot="overlay">
@@ -111,7 +118,6 @@ @@ -111,7 +118,6 @@
111 </a-menu> 118 </a-menu>
112 </a-dropdown> 119 </a-dropdown>
113 </span> 120 </span>
114 -  
115 </a-table> 121 </a-table>
116 </div> 122 </div>
117 123
@@ -120,10 +126,9 @@ @@ -120,10 +126,9 @@
120 </template> 126 </template>
121 127
122 <script> 128 <script>
123 -  
124 import '@/assets/less/TableExpand.less' 129 import '@/assets/less/TableExpand.less'
125 -import {mixinDevice} from '@/utils/mixin'  
126 -import {JeecgListMixin} from '@/mixins/JeecgListMixin' 130 +import { mixinDevice } from '@/utils/mixin'
  131 +import { JeecgListMixin } from '@/mixins/JeecgListMixin'
127 import LocationTypeModal from './modules/LocationTypeModal' 132 import LocationTypeModal from './modules/LocationTypeModal'
128 133
129 export default { 134 export default {
@@ -142,114 +147,111 @@ export default { @@ -142,114 +147,111 @@ export default {
142 dataIndex: '', 147 dataIndex: '',
143 key: 'rowIndex', 148 key: 'rowIndex',
144 width: 60, 149 width: 60,
145 - align: "center",  
146 - customRender: function (t, r, index) {  
147 - return parseInt(index) + 1; 150 + align: 'center',
  151 + customRender: function(t, r, index) {
  152 + return parseInt(index) + 1
148 } 153 }
149 }, 154 },
150 { 155 {
151 title: '编码', 156 title: '编码',
152 - align: "center", 157 + align: 'center',
153 dataIndex: 'code' 158 dataIndex: 'code'
154 }, 159 },
155 { 160 {
156 title: '名称', 161 title: '名称',
157 - align: "center", 162 + align: 'center',
158 dataIndex: 'name' 163 dataIndex: 'name'
159 }, 164 },
160 { 165 {
161 title: '库区', 166 title: '库区',
162 - align: "center", 167 + align: 'center',
163 dataIndex: 'zoneCode' 168 dataIndex: 'zoneCode'
164 }, 169 },
165 { 170 {
166 title: '长度', 171 title: '长度',
167 - align: "center", 172 + align: 'center',
168 dataIndex: 'length' 173 dataIndex: 'length'
169 }, 174 },
170 { 175 {
171 title: '宽度', 176 title: '宽度',
172 - align: "center", 177 + align: 'center',
173 dataIndex: 'weight' 178 dataIndex: 'weight'
174 }, 179 },
175 { 180 {
176 title: '高度', 181 title: '高度',
177 - align: "center", 182 + align: 'center',
178 dataIndex: 'height' 183 dataIndex: 'height'
179 }, 184 },
180 { 185 {
181 title: '最大承重', 186 title: '最大承重',
182 - align: "center", 187 + align: 'center',
183 dataIndex: 'maxWeight' 188 dataIndex: 'maxWeight'
184 }, 189 },
185 { 190 {
186 title: '创建人', 191 title: '创建人',
187 - align: "center", 192 + align: 'center',
188 dataIndex: 'createBy' 193 dataIndex: 'createBy'
189 }, 194 },
190 { 195 {
191 title: '创建日期', 196 title: '创建日期',
192 - align: "center", 197 + align: 'center',
193 dataIndex: 'createTime' 198 dataIndex: 'createTime'
194 }, 199 },
195 { 200 {
196 title: '更新人', 201 title: '更新人',
197 - align: "center", 202 + align: 'center',
198 dataIndex: 'updateBy' 203 dataIndex: 'updateBy'
199 }, 204 },
200 { 205 {
201 title: '更新日期', 206 title: '更新日期',
202 - align: "center", 207 + align: 'center',
203 dataIndex: 'updateTime' 208 dataIndex: 'updateTime'
204 }, 209 },
205 { 210 {
206 title: '操作', 211 title: '操作',
207 dataIndex: 'action', 212 dataIndex: 'action',
208 - align: "center",  
209 - fixed: "right", 213 + align: 'center',
  214 + fixed: 'right',
210 width: 147, 215 width: 147,
211 - scopedSlots: {customRender: 'action'} 216 + scopedSlots: { customRender: 'action' }
212 } 217 }
213 ], 218 ],
214 url: { 219 url: {
215 - list: "/config/locationType/list",  
216 - delete: "/config/locationType/delete",  
217 - deleteBatch: "/config/locationType/deleteBatch",  
218 - exportXlsUrl: "/config/locationType/exportXls",  
219 - importExcelUrl: "config/locationType/importExcel",  
220 - 220 + list: '/config/locationType/list',
  221 + delete: '/config/locationType/delete',
  222 + deleteBatch: '/config/locationType/deleteBatch',
  223 + exportXlsUrl: '/config/locationType/exportXls',
  224 + importExcelUrl: 'config/locationType/importExcel'
221 }, 225 },
222 dictOptions: {}, 226 dictOptions: {},
223 - superFieldList: [], 227 + superFieldList: []
224 } 228 }
225 }, 229 },
226 created() { 230 created() {
227 - this.getSuperFieldList();  
228 - this.loadFrom(); 231 + this.getSuperFieldList()
229 }, 232 },
230 computed: { 233 computed: {
231 - importExcelUrl: function () {  
232 - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;  
233 - }, 234 + importExcelUrl: function() {
  235 + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
  236 + }
234 }, 237 },
235 methods: { 238 methods: {
236 - initDictConfig() {  
237 - }, 239 + initDictConfig() {},
238 getSuperFieldList() { 240 getSuperFieldList() {
239 - let fieldList = [];  
240 - fieldList.push({type: 'string', value: 'code', text: '编码', dictCode: ''})  
241 - fieldList.push({type: 'string', value: 'name', text: '名称', dictCode: ''})  
242 - fieldList.push({type: 'int', value: 'length', text: '长度', dictCode: ''})  
243 - fieldList.push({type: 'int', value: 'weight', text: '宽度', dictCode: ''})  
244 - fieldList.push({type: 'int', value: 'height', text: '高度', dictCode: ''})  
245 - fieldList.push({type: 'int', value: 'maxWeight', text: '最大承重', dictCode: ''})  
246 - fieldList.push({type: 'string', value: 'createBy', text: '创建人', dictCode: ''})  
247 - fieldList.push({type: 'datetime', value: 'createTime', text: '创建日期'})  
248 - fieldList.push({type: 'string', value: 'updateBy', text: '更新人', dictCode: ''})  
249 - fieldList.push({type: 'datetime', value: 'updateTime', text: '更新日期'}) 241 + let fieldList = []
  242 + fieldList.push({ type: 'string', value: 'code', text: '编码', dictCode: '' })
  243 + fieldList.push({ type: 'string', value: 'name', text: '名称', dictCode: '' })
  244 + fieldList.push({ type: 'int', value: 'length', text: '长度', dictCode: '' })
  245 + fieldList.push({ type: 'int', value: 'weight', text: '宽度', dictCode: '' })
  246 + fieldList.push({ type: 'int', value: 'height', text: '高度', dictCode: '' })
  247 + fieldList.push({ type: 'int', value: 'maxWeight', text: '最大承重', dictCode: '' })
  248 + fieldList.push({ type: 'string', value: 'createBy', text: '创建人', dictCode: '' })
  249 + fieldList.push({ type: 'datetime', value: 'createTime', text: '创建日期' })
  250 + fieldList.push({ type: 'string', value: 'updateBy', text: '更新人', dictCode: '' })
  251 + fieldList.push({ type: 'datetime', value: 'updateTime', text: '更新日期' })
250 this.superFieldList = fieldList 252 this.superFieldList = fieldList
251 - },  
252 - }, 253 + }
  254 + }
253 } 255 }
254 </script> 256 </script>
255 <style scoped> 257 <style scoped>
ant-design-vue-jeecg/src/views/system/config/MaterialAreaList.vue
@@ -34,7 +34,7 @@ @@ -34,7 +34,7 @@
34 <div> 34 <div>
35 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 35 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
36 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 36 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
37 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 37 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
38 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 38 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
39 </div> 39 </div>
40 40
ant-design-vue-jeecg/src/views/system/config/MaterialList.vue
@@ -62,7 +62,7 @@ @@ -62,7 +62,7 @@
62 <div> 62 <div>
63 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 63 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
64 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 64 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
65 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 65 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
66 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 66 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
67 </div> 67 </div>
68 68
ant-design-vue-jeecg/src/views/system/config/MaterialMultipleList.vue
@@ -34,7 +34,7 @@ @@ -34,7 +34,7 @@
34 <div> 34 <div>
35 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 35 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
36 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 36 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
37 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 37 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
38 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 38 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
39 </div> 39 </div>
40 40
ant-design-vue-jeecg/src/views/system/config/MaterialTypeList.vue
@@ -54,7 +54,7 @@ @@ -54,7 +54,7 @@
54 <div> 54 <div>
55 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 55 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
56 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 56 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
57 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 57 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
58 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 58 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
59 </div> 59 </div>
60 60
ant-design-vue-jeecg/src/views/system/config/MaterialUnitList.vue
@@ -61,7 +61,7 @@ @@ -61,7 +61,7 @@
61 <div> 61 <div>
62 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 62 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
63 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 63 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
64 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 64 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
65 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 65 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
66 </div> 66 </div>
67 67
ant-design-vue-jeecg/src/views/system/config/MaterialWarningList.vue
@@ -54,7 +54,7 @@ @@ -54,7 +54,7 @@
54 <div> 54 <div>
55 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 55 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
56 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 56 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
57 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 57 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
58 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 58 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
59 </div> 59 </div>
60 60
ant-design-vue-jeecg/src/views/system/config/ParameterConfigurationList.vue
@@ -61,7 +61,7 @@ @@ -61,7 +61,7 @@
61 <div> 61 <div>
62 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 62 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
63 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 63 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
64 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 64 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
65 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 65 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
66 </div> 66 </div>
67 67
ant-design-vue-jeecg/src/views/system/config/PortList.vue
@@ -61,7 +61,7 @@ @@ -61,7 +61,7 @@
61 <div> 61 <div>
62 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 62 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
63 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 63 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
64 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 64 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
65 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 65 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
66 </div> 66 </div>
67 67
ant-design-vue-jeecg/src/views/system/config/ReceiptTypeList.vue
@@ -53,7 +53,7 @@ @@ -53,7 +53,7 @@
53 <div> 53 <div>
54 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 54 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
55 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 55 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
56 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 56 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
57 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 57 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
58 </div> 58 </div>
59 59
ant-design-vue-jeecg/src/views/system/config/ShipmentTypeList.vue
@@ -53,7 +53,7 @@ @@ -53,7 +53,7 @@
53 <div> 53 <div>
54 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 54 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
55 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 55 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
56 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 56 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
57 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 57 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
58 </div> 58 </div>
59 59
ant-design-vue-jeecg/src/views/system/config/StrategyList.vue
@@ -29,7 +29,7 @@ @@ -29,7 +29,7 @@
29 <!-- table区域-begin --> 29 <!-- table区域-begin -->
30 <div> 30 <div>
31 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 31 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
32 - <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a> 32 + <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>
33 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 33 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
34 </div> 34 </div>
35 35
ant-design-vue-jeecg/src/views/system/config/SupplierList.vue
@@ -61,7 +61,7 @@ @@ -61,7 +61,7 @@
61 <div> 61 <div>
62 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 62 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
63 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 63 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
64 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 64 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
65 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 65 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
66 </div> 66 </div>
67 67
ant-design-vue-jeecg/src/views/system/config/SysUserWarehouseList.vue
@@ -49,7 +49,7 @@ @@ -49,7 +49,7 @@
49 <div> 49 <div>
50 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 50 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
51 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 51 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
52 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 52 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
53 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 53 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
54 </div> 54 </div>
55 55
ant-design-vue-jeecg/src/views/system/config/WarehouseList.vue
@@ -56,7 +56,7 @@ @@ -56,7 +56,7 @@
56 <div> 56 <div>
57 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 57 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
58 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 58 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
59 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 59 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
60 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 60 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
61 </div> 61 </div>
62 62
ant-design-vue-jeecg/src/views/system/config/ZoneList.vue
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button> 20 <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
21 <a @click="handleToggleSearch" style="margin-left: 8px"> 21 <a @click="handleToggleSearch" style="margin-left: 8px">
22 {{ toggleSearchStatus ? '收起' : '展开' }} 22 {{ toggleSearchStatus ? '收起' : '展开' }}
23 - <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> 23 + <a-icon :type="toggleSearchStatus ? 'up' : 'down'" />
24 </a> 24 </a>
25 </span> 25 </span>
26 </a-col> 26 </a-col>
@@ -32,20 +32,30 @@ @@ -32,20 +32,30 @@
32 <!-- 操作按钮区域 --> 32 <!-- 操作按钮区域 -->
33 <div class="table-operator"> 33 <div class="table-operator">
34 <a-button v-has="'zone:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button> 34 <a-button v-has="'zone:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button>
35 - <a-button v-has="'zone:export'" type="primary" icon="download" @click="handleExportXls('库区管理')">导出</a-button>  
36 - <a-upload v-has="'zone:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"  
37 - @change="handleImportExcel"> 35 + <a-button v-has="'zone:export'" type="primary" icon="download" @click="handleExportXls('库区管理')"
  36 + >导出</a-button
  37 + >
  38 + <a-upload
  39 + v-has="'zone:import'"
  40 + name="file"
  41 + :showUploadList="false"
  42 + :multiple="false"
  43 + :headers="tokenHeader"
  44 + :action="importExcelUrl"
  45 + @change="handleImportExcel"
  46 + >
38 <a-button type="primary" icon="import">导入</a-button> 47 <a-button type="primary" icon="import">导入</a-button>
39 </a-upload> 48 </a-upload>
40 <a-dropdown v-if="selectedRowKeys.length > 0"> 49 <a-dropdown v-if="selectedRowKeys.length > 0">
41 <a-menu slot="overlay" v-has="'zone:deleteBatch'"> 50 <a-menu slot="overlay" v-has="'zone:deleteBatch'">
42 <a-menu-item key="1" @click="batchDel"> 51 <a-menu-item key="1" @click="batchDel">
43 - <a-icon type="delete"/> 52 + <a-icon type="delete" />
44 删除 53 删除
45 </a-menu-item> 54 </a-menu-item>
46 </a-menu> 55 </a-menu>
47 - <a-button style="margin-left: 8px"> 批量操作  
48 - <a-icon type="down"/> 56 + <a-button style="margin-left: 8px">
  57 + 批量操作
  58 + <a-icon type="down" />
49 </a-button> 59 </a-button>
50 </a-dropdown> 60 </a-dropdown>
51 </div> 61 </div>
@@ -53,27 +63,27 @@ @@ -53,27 +63,27 @@
53 <!-- table区域-begin --> 63 <!-- table区域-begin -->
54 <div> 64 <div>
55 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 65 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
56 - <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a  
57 - style="font-weight: 600">{{ selectedRowKeys.length }}</a>项 66 + <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择
  67 + <a style="font-weight: 600">{{ selectedRowKeys.length }}</a> 项
58 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 68 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
59 </div> 69 </div>
60 70
61 <a-table 71 <a-table
62 ref="table" 72 ref="table"
63 size="middle" 73 size="middle"
64 - :scroll="{x:true}" 74 + :scroll="{ x: true }"
65 bordered 75 bordered
66 rowKey="id" 76 rowKey="id"
67 :columns="columns" 77 :columns="columns"
68 :dataSource="dataSource" 78 :dataSource="dataSource"
69 :pagination="ipagination" 79 :pagination="ipagination"
70 :loading="loading" 80 :loading="loading"
71 - :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" 81 + :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
72 class="j-table-force-nowrap" 82 class="j-table-force-nowrap"
73 - @change="handleTableChange">  
74 -  
75 - <span slot="locationTypeCode" slot-scope="locationTypeCode">  
76 - <a-tag :key="locationTypeCode" color=pink> 83 + @change="handleTableChange"
  84 + >
  85 + <span slot="locationTypeCodes" slot-scope="locationTypeCodes" >
  86 + <a-tag v-for="locationTypeCode in locationTypeCodes" :key="locationTypeCode" color=pink>
77 {{ solutionLocationType(locationTypeCode) }} 87 {{ solutionLocationType(locationTypeCode) }}
78 </a-tag> 88 </a-tag>
79 </span> 89 </span>
@@ -83,26 +93,23 @@ @@ -83,26 +93,23 @@
83 </template> 93 </template>
84 <template slot="imgSlot" slot-scope="text"> 94 <template slot="imgSlot" slot-scope="text">
85 <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span> 95 <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
86 - <img v-else :src="getImgView(text)" height="25px" alt=""  
87 - style="max-width:80px;font-size: 12px;font-style: italic;"/> 96 + <img
  97 + v-else
  98 + :src="getImgView(text)"
  99 + height="25px"
  100 + alt=""
  101 + style="max-width:80px;font-size: 12px;font-style: italic;"
  102 + />
88 </template> 103 </template>
89 <template slot="fileSlot" slot-scope="text"> 104 <template slot="fileSlot" slot-scope="text">
90 <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span> 105 <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
91 - <a-button  
92 - v-else  
93 - :ghost="true"  
94 - type="primary"  
95 - icon="download"  
96 - size="small"  
97 - @click="downloadFile(text)"> 106 + <a-button v-else :ghost="true" type="primary" icon="download" size="small" @click="downloadFile(text)">
98 下载 107 下载
99 </a-button> 108 </a-button>
100 </template> 109 </template>
101 110
102 <span slot="action" slot-scope="text, record"> 111 <span slot="action" slot-scope="text, record">
103 - <a v-has="'zone:edit'" @click="handleEdit(record)">编辑</a>  
104 -  
105 - <a-divider type="vertical"/> 112 + <a v-has="'zone:edit'" @click="handleEdit(record)">编辑<a-divider type="vertical"/></a>
106 <a-dropdown> 113 <a-dropdown>
107 <a class="ant-dropdown-link">更多 <a-icon type="down"/></a> 114 <a class="ant-dropdown-link">更多 <a-icon type="down"/></a>
108 <a-menu slot="overlay"> 115 <a-menu slot="overlay">
@@ -117,7 +124,6 @@ @@ -117,7 +124,6 @@
117 </a-menu> 124 </a-menu>
118 </a-dropdown> 125 </a-dropdown>
119 </span> 126 </span>
120 -  
121 </a-table> 127 </a-table>
122 </div> 128 </div>
123 129
@@ -126,12 +132,11 @@ @@ -126,12 +132,11 @@
126 </template> 132 </template>
127 133
128 <script> 134 <script>
129 -  
130 import '@/assets/less/TableExpand.less' 135 import '@/assets/less/TableExpand.less'
131 -import {mixinDevice} from '@/utils/mixin'  
132 -import {JeecgListMixin} from '@/mixins/JeecgListMixin' 136 +import { mixinDevice } from '@/utils/mixin'
  137 +import { JeecgListMixin } from '@/mixins/JeecgListMixin'
133 import ZoneModal from './modules/ZoneModal' 138 import ZoneModal from './modules/ZoneModal'
134 -import {getLocationTypeList} from '@/api/api' 139 +import { getLocationTypeList } from '@/api/api'
135 140
136 export default { 141 export default {
137 name: 'ZoneList', 142 name: 'ZoneList',
@@ -150,93 +155,93 @@ export default { @@ -150,93 +155,93 @@ export default {
150 dataIndex: '', 155 dataIndex: '',
151 key: 'rowIndex', 156 key: 'rowIndex',
152 width: 60, 157 width: 60,
153 - align: "center",  
154 - customRender: function (t, r, index) {  
155 - return parseInt(index) + 1; 158 + align: 'center',
  159 + customRender: function(t, r, index) {
  160 + return parseInt(index) + 1
156 } 161 }
157 }, 162 },
158 { 163 {
159 title: '编码', 164 title: '编码',
160 - align: "center", 165 + align: 'center',
161 dataIndex: 'code' 166 dataIndex: 'code'
162 }, 167 },
163 { 168 {
164 title: '名称', 169 title: '名称',
165 - align: "center", 170 + align: 'center',
166 dataIndex: 'name' 171 dataIndex: 'name'
167 }, 172 },
168 { 173 {
169 title: '包含库位类型', 174 title: '包含库位类型',
170 - align: "center",  
171 - dataIndex: 'locationTypeCode', 175 + align: 'center',
  176 + dataIndex: 'locationTypeCodes',
  177 + key: 'locationTypeCodes',
  178 + scopedSlots: {customRender: 'locationTypeCodes'}
172 }, 179 },
173 { 180 {
174 title: '创建人', 181 title: '创建人',
175 - align: "center", 182 + align: 'center',
176 dataIndex: 'createBy' 183 dataIndex: 'createBy'
177 }, 184 },
178 { 185 {
179 title: '创建日期', 186 title: '创建日期',
180 - align: "center", 187 + align: 'center',
181 dataIndex: 'createTime' 188 dataIndex: 'createTime'
182 }, 189 },
183 { 190 {
184 title: '更新人', 191 title: '更新人',
185 - align: "center", 192 + align: 'center',
186 dataIndex: 'updateBy' 193 dataIndex: 'updateBy'
187 }, 194 },
188 { 195 {
189 title: '更新日期', 196 title: '更新日期',
190 - align: "center", 197 + align: 'center',
191 dataIndex: 'updateTime' 198 dataIndex: 'updateTime'
192 }, 199 },
193 { 200 {
194 title: '操作', 201 title: '操作',
195 dataIndex: 'action', 202 dataIndex: 'action',
196 - align: "center",  
197 - fixed: "right", 203 + align: 'center',
  204 + fixed: 'right',
198 width: 147, 205 width: 147,
199 - scopedSlots: {customRender: 'action'} 206 + scopedSlots: { customRender: 'action' }
200 } 207 }
201 ], 208 ],
202 url: { 209 url: {
203 - list: "/config/zone/list",  
204 - delete: "/config/zone/delete",  
205 - deleteBatch: "/config/zone/deleteBatch",  
206 - exportXlsUrl: "/config/zone/exportXls",  
207 - importExcelUrl: "config/zone/importExcel",  
208 - 210 + list: '/config/zone/list',
  211 + delete: '/config/zone/delete',
  212 + deleteBatch: '/config/zone/deleteBatch',
  213 + exportXlsUrl: '/config/zone/exportXls',
  214 + importExcelUrl: 'config/zone/importExcel'
209 }, 215 },
210 dictOptions: {}, 216 dictOptions: {},
211 - superFieldList: [], 217 + superFieldList: []
212 } 218 }
213 }, 219 },
214 created() { 220 created() {
215 - this.getSuperFieldList();  
216 - this.loadFrom(); 221 + this.getSuperFieldList()
  222 + this.loadFrom()
217 }, 223 },
218 computed: { 224 computed: {
219 - importExcelUrl: function () {  
220 - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;  
221 - }, 225 + importExcelUrl: function() {
  226 + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
  227 + }
222 }, 228 },
223 methods: { 229 methods: {
224 - initDictConfig() {  
225 - }, 230 + initDictConfig() {},
226 getSuperFieldList() { 231 getSuperFieldList() {
227 - let fieldList = [];  
228 - fieldList.push({type: 'string', value: 'code', text: '编码', dictCode: ''})  
229 - fieldList.push({type: 'string', value: 'name', text: '名称', dictCode: ''})  
230 - fieldList.push({type: 'string', value: 'companyCode', text: '货主编码', dictCode: ''})  
231 - fieldList.push({type: 'string', value: 'locationTypeCode', text: '库位类型', dictCode: ''})  
232 - fieldList.push({type: 'string', value: 'createBy', text: '创建人', dictCode: ''})  
233 - fieldList.push({type: 'datetime', value: 'createTime', text: '创建日期'})  
234 - fieldList.push({type: 'string', value: 'updateBy', text: '更新人', dictCode: ''})  
235 - fieldList.push({type: 'datetime', value: 'updateTime', text: '更新日期'}) 232 + let fieldList = []
  233 + fieldList.push({ type: 'string', value: 'code', text: '编码', dictCode: '' })
  234 + fieldList.push({ type: 'string', value: 'name', text: '名称', dictCode: '' })
  235 + fieldList.push({ type: 'string', value: 'companyCode', text: '货主编码', dictCode: '' })
  236 + fieldList.push({ type: 'string', value: 'locationTypeCode', text: '库位类型', dictCode: '' })
  237 + fieldList.push({ type: 'string', value: 'createBy', text: '创建人', dictCode: '' })
  238 + fieldList.push({ type: 'datetime', value: 'createTime', text: '创建日期' })
  239 + fieldList.push({ type: 'string', value: 'updateBy', text: '更新人', dictCode: '' })
  240 + fieldList.push({ type: 'datetime', value: 'updateTime', text: '更新日期' })
236 this.superFieldList = fieldList 241 this.superFieldList = fieldList
237 }, 242 },
238 loadFrom() { 243 loadFrom() {
239 - getLocationTypeList().then((res) => { 244 + getLocationTypeList().then(res => {
240 if (res.success) { 245 if (res.success) {
241 this.locationTypeList = res.result 246 this.locationTypeList = res.result
242 } 247 }
@@ -244,8 +249,8 @@ export default { @@ -244,8 +249,8 @@ export default {
244 }, 249 },
245 solutionLocationType(value) { 250 solutionLocationType(value) {
246 var actions = [] 251 var actions = []
247 - Object.keys(this.locationTypeList).some((key) => {  
248 - if (this.locationTypeList[key].code == ('' + value)) { 252 + Object.keys(this.locationTypeList).some(key => {
  253 + if (this.locationTypeList[key].code == '' + value) {
249 actions.push(this.locationTypeList[key].name) 254 actions.push(this.locationTypeList[key].name)
250 return true 255 return true
251 } 256 }
ant-design-vue-jeecg/src/views/system/config/modules/ContainerCapacityForm.vue
@@ -5,12 +5,15 @@ @@ -5,12 +5,15 @@
5 <a-row> 5 <a-row>
6 <a-col :span="24"> 6 <a-col :span="24">
7 <a-form-model-item label="容器类型" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="containerTypeCode"> 7 <a-form-model-item label="容器类型" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="containerTypeCode">
8 - <a-input v-model="model.containerTypeCode" placeholder="请输入容器类型"></a-input>  
9 - </a-form-model-item>  
10 - </a-col>  
11 - <a-col :span="24">  
12 - <a-form-model-item label="货主" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="companyCode">  
13 - <a-input v-model="model.companyCode" placeholder="请输入货主"></a-input> 8 + <a-select
  9 + show-search
  10 + placeholder="请选择容器类型"
  11 + option-filter-prop="children"
  12 + v-model="model.containerTypeCode">
  13 + <a-select-option v-for="item in containerTypeList" :key="item.name" :value="item.code">
  14 + {{ item.name }}
  15 + </a-select-option>
  16 + </a-select>
14 </a-form-model-item> 17 </a-form-model-item>
15 </a-col> 18 </a-col>
16 <a-col :span="24"> 19 <a-col :span="24">
@@ -19,18 +22,8 @@ @@ -19,18 +22,8 @@
19 </a-form-model-item> 22 </a-form-model-item>
20 </a-col> 23 </a-col>
21 <a-col :span="24"> 24 <a-col :span="24">
22 - <a-form-model-item label="物料名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialName">  
23 - <a-input v-model="model.materialName" placeholder="请输入物料名称"></a-input>  
24 - </a-form-model-item>  
25 - </a-col>  
26 - <a-col :span="24">  
27 - <a-form-model-item label="物料单位" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialUnit">  
28 - <a-input v-model="model.materialUnit" placeholder="请输入物料单位"></a-input>  
29 - </a-form-model-item>  
30 - </a-col>  
31 - <a-col :span="24">  
32 - <a-form-model-item label="存放数量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="qty">  
33 - <a-input-number v-model="model.qty" placeholder="请输入存放数量" style="width: 100%"/> 25 + <a-form-model-item label="容量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="qty">
  26 + <a-input-number v-model="model.qty" placeholder="请输入容量" style="width: 100%"/>
34 </a-form-model-item> 27 </a-form-model-item>
35 </a-col> 28 </a-col>
36 <a-col :span="24"> 29 <a-col :span="24">
@@ -48,6 +41,7 @@ @@ -48,6 +41,7 @@
48 41
49 import {httpAction, getAction} from '@/api/manage' 42 import {httpAction, getAction} from '@/api/manage'
50 import {validateDuplicateValue} from '@/utils/util' 43 import {validateDuplicateValue} from '@/utils/util'
  44 +import {getContainerTypeList} from '@/api/api'
51 45
52 export default { 46 export default {
53 name: 'ContainerCapacityForm', 47 name: 'ContainerCapacityForm',
@@ -63,6 +57,7 @@ export default { @@ -63,6 +57,7 @@ export default {
63 data() { 57 data() {
64 return { 58 return {
65 model: {}, 59 model: {},
  60 + containerTypeList: [],
66 labelCol: { 61 labelCol: {
67 xs: {span: 24}, 62 xs: {span: 24},
68 sm: {span: 5}, 63 sm: {span: 5},
@@ -80,10 +75,10 @@ export default { @@ -80,10 +75,10 @@ export default {
80 {required: true, message: '请输入物料编码!'}, 75 {required: true, message: '请输入物料编码!'},
81 ], 76 ],
82 qty: [ 77 qty: [
83 - {required: true, message: '请输入存放数量!'}, 78 + {required: true, message: '请输入量!'},
84 ], 79 ],
85 enable: [ 80 enable: [
86 - {required: true, message: '请输入是否可用!'}, 81 + {required: true, message: '请选择是否可用!'},
87 ], 82 ],
88 }, 83 },
89 url: { 84 url: {
@@ -101,8 +96,16 @@ export default { @@ -101,8 +96,16 @@ export default {
101 created() { 96 created() {
102 //备份model原始值 97 //备份model原始值
103 this.modelDefault = JSON.parse(JSON.stringify(this.model)); 98 this.modelDefault = JSON.parse(JSON.stringify(this.model));
  99 + this.loadFrom();
104 }, 100 },
105 methods: { 101 methods: {
  102 + loadFrom() {
  103 + getContainerTypeList().then((res) => {
  104 + if (res.success) {
  105 + this.containerTypeList = res.result
  106 + }
  107 + });
  108 + },
106 add() { 109 add() {
107 this.edit(this.modelDefault); 110 this.edit(this.modelDefault);
108 }, 111 },
ant-design-vue-jeecg/src/views/system/config/modules/ContainerForm.vue
@@ -9,11 +9,9 @@ @@ -9,11 +9,9 @@
9 show-search 9 show-search
10 placeholder="请选择容器类型" 10 placeholder="请选择容器类型"
11 option-filter-prop="children" 11 option-filter-prop="children"
12 -  
13 v-model="model.containerTypeCode"> 12 v-model="model.containerTypeCode">
14 - <a-select-option v-for="item in containerTypeList" :key="item.name" :value="item.code">{{  
15 - item.name  
16 - }} 13 + <a-select-option v-for="item in containerTypeList" :key="item.name" :value="item.code">
  14 + {{ item.name }}
17 </a-select-option> 15 </a-select-option>
18 </a-select> 16 </a-select>
19 </a-form-model-item> 17 </a-form-model-item>
ant-design-vue-jeecg/src/views/system/config/modules/ContainerTypeForm.vue
@@ -13,14 +13,26 @@ @@ -13,14 +13,26 @@
13 <a-input v-model="model.name" placeholder="请输入名称"></a-input> 13 <a-input v-model="model.name" placeholder="请输入名称"></a-input>
14 </a-form-model-item> 14 </a-form-model-item>
15 </a-col> 15 </a-col>
16 - <a-col :span="24">  
17 - <a-form-model-item label="货主编码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="companyCode">  
18 - <a-input v-model="model.companyCode" placeholder="请输入货主编码"></a-input> 16 + <!-- <a-col :span="24">
  17 + <a-form-model-item label="货主" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="companyCode">
  18 + <a-select
  19 + show-search
  20 + placeholder="请选择货主编码"
  21 + option-filter-prop="children"
  22 + v-model="model.companyCode">
  23 + <a-select-option v-for="item in companyList" :key="item.name" :value="item.code">
  24 + {{ item.name }}
  25 + </a-select-option>
  26 + </a-select>
19 </a-form-model-item> 27 </a-form-model-item>
20 - </a-col> 28 + </a-col> -->
21 <a-col :span="24"> 29 <a-col :span="24">
22 <a-form-model-item label="绑定的库位类型" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="locationType"> 30 <a-form-model-item label="绑定的库位类型" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="locationType">
23 - <a-input v-model="model.locationType" placeholder="请输入绑定的库位类型"></a-input> 31 + <j-select-multiple
  32 + v-model="model.locationType"
  33 + :options="locationTypeOptions"
  34 + placeholder="请选择库位类型">
  35 + </j-select-multiple>
24 </a-form-model-item> 36 </a-form-model-item>
25 </a-col> 37 </a-col>
26 <a-col :span="24"> 38 <a-col :span="24">
@@ -57,7 +69,7 @@ @@ -57,7 +69,7 @@
57 <script> 69 <script>
58 70
59 import {httpAction, getAction} from '@/api/manage' 71 import {httpAction, getAction} from '@/api/manage'
60 -import {validateDuplicateValue} from '@/utils/util' 72 +import {getLocationTypeList, getCompanyList} from '@/api/api'
61 73
62 export default { 74 export default {
63 name: 'ContainerTypeForm', 75 name: 'ContainerTypeForm',
@@ -73,6 +85,8 @@ export default { @@ -73,6 +85,8 @@ export default {
73 data() { 85 data() {
74 return { 86 return {
75 model: {}, 87 model: {},
  88 + companyList: [],
  89 + locationTypeOptions: [],
76 labelCol: { 90 labelCol: {
77 xs: {span: 24}, 91 xs: {span: 24},
78 sm: {span: 5}, 92 sm: {span: 5},
@@ -90,7 +104,7 @@ export default { @@ -90,7 +104,7 @@ export default {
90 {required: true, message: '请输入名称!'}, 104 {required: true, message: '请输入名称!'},
91 ], 105 ],
92 locationType: [ 106 locationType: [
93 - {required: true, message: '请输入库位类型!'}, 107 + {required: true, message: '请选择库位类型!'},
94 ], 108 ],
95 }, 109 },
96 url: { 110 url: {
@@ -110,10 +124,26 @@ export default { @@ -110,10 +124,26 @@ export default {
110 this.modelDefault = JSON.parse(JSON.stringify(this.model)); 124 this.modelDefault = JSON.parse(JSON.stringify(this.model));
111 }, 125 },
112 methods: { 126 methods: {
  127 + loadFrom() {
  128 + getCompanyList().then((res) => {
  129 + if (res.success) {
  130 + this.companyList = res.result
  131 + }
  132 + });
  133 + getLocationTypeList().then((res) => {
  134 + if (res.success) {
  135 + this.locationTypeOptions = res.result.map((item, index, arr) => {
  136 + return {label: item.name, value: item.code}
  137 + })
  138 + }
  139 + });
  140 + },
113 add() { 141 add() {
  142 + this.loadFrom();
114 this.edit(this.modelDefault); 143 this.edit(this.modelDefault);
115 }, 144 },
116 edit(record) { 145 edit(record) {
  146 + this.loadFrom();
117 this.model = Object.assign({}, record); 147 this.model = Object.assign({}, record);
118 this.visible = true; 148 this.visible = true;
119 }, 149 },
ant-design-vue-jeecg/src/views/system/config/modules/ZoneForm.vue
@@ -15,7 +15,7 @@ @@ -15,7 +15,7 @@
15 </a-col> 15 </a-col>
16 <a-col :span="24"> 16 <a-col :span="24">
17 <a-form-model-item label="包含库位类型" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="locationTypeCode"> 17 <a-form-model-item label="包含库位类型" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="locationTypeCode">
18 - <a-input v-model="model.locationTypeCode" placeholder="请输入库位类型编码"></a-input> 18 + <a-input v-model="model.locationTypeCode" placeholder="请输入包含库位类型编码,用英文逗号分割"></a-input>
19 </a-form-model-item> 19 </a-form-model-item>
20 </a-col> 20 </a-col>
21 </a-row> 21 </a-row>
ant-design-vue-jeecg/src/views/system/inventory/InventoryChildList.vue
@@ -106,7 +106,7 @@ @@ -106,7 +106,7 @@
106 <!-- table区域-begin --> 106 <!-- table区域-begin -->
107 <div> 107 <div>
108 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 108 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
109 - <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a> 109 + <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>
110 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 110 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
111 </div> 111 </div>
112 112
@@ -143,12 +143,9 @@ @@ -143,12 +143,9 @@
143 下载 143 下载
144 </a-button> 144 </a-button>
145 </template> 145 </template>
146 -  
147 <span slot="action" slot-scope="text, record"> 146 <span slot="action" slot-scope="text, record">
148 <a v-has="'inventoryChild:edit'" @click="handleEdit(record)">编辑</a> 147 <a v-has="'inventoryChild:edit'" @click="handleEdit(record)">编辑</a>
149 -  
150 </span> 148 </span>
151 -  
152 </a-table> 149 </a-table>
153 </div> 150 </div>
154 151
ant-design-vue-jeecg/src/views/system/inventory/InventoryDetailList.vue
@@ -3,7 +3,9 @@ @@ -3,7 +3,9 @@
3 <!-- 操作按钮区域 --> 3 <!-- 操作按钮区域 -->
4 <div class="table-operator" v-if="mainId"> 4 <div class="table-operator" v-if="mainId">
5 <a-button v-has="'inventoryDetail:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button> 5 <a-button v-has="'inventoryDetail:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button>
6 - <a-button v-has="'inventoryDetail:export'" type="primary" icon="download" @click="handleExportXls('库存详情')">导出</a-button> 6 + <a-button v-has="'inventoryDetail:export'" type="primary" icon="download" @click="handleExportXls('库存详情')"
  7 + >导出</a-button
  8 + >
7 <a-upload 9 <a-upload
8 v-has="'inventoryDetail:import'" 10 v-has="'inventoryDetail:import'"
9 name="file" 11 name="file"
@@ -11,18 +13,20 @@ @@ -11,18 +13,20 @@
11 :multiple="false" 13 :multiple="false"
12 :headers="tokenHeader" 14 :headers="tokenHeader"
13 :action="importExcelUrl" 15 :action="importExcelUrl"
14 - @change="handleImportExcel"> 16 + @change="handleImportExcel"
  17 + >
15 <a-button type="primary" icon="import">导入</a-button> 18 <a-button type="primary" icon="import">导入</a-button>
16 </a-upload> 19 </a-upload>
17 <a-dropdown v-if="selectedRowKeys.length > 0"> 20 <a-dropdown v-if="selectedRowKeys.length > 0">
18 <a-menu slot="overlay" v-has="'inventoryDetail:deleteBatch'"> 21 <a-menu slot="overlay" v-has="'inventoryDetail:deleteBatch'">
19 <a-menu-item key="1" @click="batchDel"> 22 <a-menu-item key="1" @click="batchDel">
20 - <a-icon type="delete"/> 23 + <a-icon type="delete" />
21 删除 24 删除
22 </a-menu-item> 25 </a-menu-item>
23 </a-menu> 26 </a-menu>
24 - <a-button style="margin-left: 8px"> 批量操作  
25 - <a-icon type="down"/> 27 + <a-button style="margin-left: 8px">
  28 + 批量操作
  29 + <a-icon type="down" />
26 </a-button> 30 </a-button>
27 </a-dropdown> 31 </a-dropdown>
28 </div> 32 </div>
@@ -30,8 +34,8 @@ @@ -30,8 +34,8 @@
30 <!-- table区域-begin --> 34 <!-- table区域-begin -->
31 <div> 35 <div>
32 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 36 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
33 - <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a  
34 - style="font-weight: 600">{{ selectedRowKeys.length }}</a>项 37 + <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择
  38 + <a style="font-weight: 600">{{ selectedRowKeys.length }}</a> 项
35 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 39 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
36 </div> 40 </div>
37 41
@@ -40,16 +44,16 @@ @@ -40,16 +44,16 @@
40 size="middle" 44 size="middle"
41 bordered 45 bordered
42 rowKey="id" 46 rowKey="id"
43 - :scroll="{x:true}" 47 + :scroll="{ x: true }"
44 :columns="columns" 48 :columns="columns"
45 :dataSource="dataSource" 49 :dataSource="dataSource"
46 :pagination="ipagination" 50 :pagination="ipagination"
47 :loading="loading" 51 :loading="loading"
48 - :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"  
49 - @change="handleTableChange">  
50 - 52 + :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
  53 + @change="handleTableChange"
  54 + >
51 <span slot="companyCode" slot-scope="companyCode"> 55 <span slot="companyCode" slot-scope="companyCode">
52 - <a-tag :key="companyCode" color=blue> 56 + <a-tag :key="companyCode" color="blue">
53 {{ solutionCompany(companyCode) }} 57 {{ solutionCompany(companyCode) }}
54 </a-tag> 58 </a-tag>
55 </span> 59 </span>
@@ -59,31 +63,27 @@ @@ -59,31 +63,27 @@
59 </template> 63 </template>
60 <template slot="imgSlot" slot-scope="text"> 64 <template slot="imgSlot" slot-scope="text">
61 <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span> 65 <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
62 - <img v-else :src="getImgView(text)" height="25px" alt=""  
63 - style="max-width:80px;font-size: 12px;font-style: italic;"/> 66 + <img
  67 + v-else
  68 + :src="getImgView(text)"
  69 + height="25px"
  70 + alt=""
  71 + style="max-width:80px;font-size: 12px;font-style: italic;"
  72 + />
64 </template> 73 </template>
65 <template slot="fileSlot" slot-scope="text"> 74 <template slot="fileSlot" slot-scope="text">
66 <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span> 75 <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
67 - <a-button  
68 - v-else  
69 - :ghost="true"  
70 - type="primary"  
71 - icon="download"  
72 - size="small"  
73 - @click="downloadFile(text)"> 76 + <a-button v-else :ghost="true" type="primary" icon="download" size="small" @click="downloadFile(text)">
74 下载 77 下载
75 </a-button> 78 </a-button>
76 </template> 79 </template>
77 80
78 <span slot="action" slot-scope="text, record"> 81 <span slot="action" slot-scope="text, record">
79 - <a v-has="'inventoryDetail:edit'" @click="handleEdit(record)">编辑</a>  
80 - <a-divider type="vertical"/>  
81 - 82 + <a v-has="'inventoryDetail:edit'" @click="handleEdit(record)">编辑<a-divider type="vertical"/></a>
82 <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)"> 83 <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
83 <a v-has="'inventoryDetail:delete'">删除</a> 84 <a v-has="'inventoryDetail:delete'">删除</a>
84 </a-popconfirm> 85 </a-popconfirm>
85 </span> 86 </span>
86 -  
87 </a-table> 87 </a-table>
88 </div> 88 </div>
89 89
@@ -92,15 +92,14 @@ @@ -92,15 +92,14 @@
92 </template> 92 </template>
93 93
94 <script> 94 <script>
95 -  
96 -import {JeecgListMixin} from '@/mixins/JeecgListMixin' 95 +import { JeecgListMixin } from '@/mixins/JeecgListMixin'
97 import InventoryDetailModal from './modules/InventoryDetailModal' 96 import InventoryDetailModal from './modules/InventoryDetailModal'
98 -import {getCompanyList} from '@/api/api' 97 +import { getCompanyList } from '@/api/api'
99 98
100 export default { 99 export default {
101 - name: "InventoryDetailList", 100 + name: 'InventoryDetailList',
102 mixins: [JeecgListMixin], 101 mixins: [JeecgListMixin],
103 - components: {InventoryDetailModal}, 102 + components: { InventoryDetailModal },
104 props: { 103 props: {
105 mainId: { 104 mainId: {
106 type: String, 105 type: String,
@@ -116,7 +115,7 @@ export default { @@ -116,7 +115,7 @@ export default {
116 this.clearList() 115 this.clearList()
117 } else { 116 } else {
118 this.queryParam['inventoryHeaderId'] = val 117 this.queryParam['inventoryHeaderId'] = val
119 - this.loadData(1); 118 + this.loadData(1)
120 } 119 }
121 } 120 }
122 } 121 }
@@ -130,15 +129,15 @@ export default { @@ -130,15 +129,15 @@ export default {
130 columns: [ 129 columns: [
131 { 130 {
132 title: '库存详情ID', 131 title: '库存详情ID',
133 - align: "center", 132 + align: 'center',
134 dataIndex: 'id' 133 dataIndex: 'id'
135 }, 134 },
136 { 135 {
137 title: '货主', 136 title: '货主',
138 - align: "center", 137 + align: 'center',
139 dataIndex: 'companyCode', 138 dataIndex: 'companyCode',
140 key: 'companyCode', 139 key: 'companyCode',
141 - scopedSlots: {customRender: 'companyCode'} 140 + scopedSlots: { customRender: 'companyCode' }
142 }, 141 },
143 // { 142 // {
144 // title: '库区', 143 // title: '库区',
@@ -147,130 +146,138 @@ export default { @@ -147,130 +146,138 @@ export default {
147 // }, 146 // },
148 { 147 {
149 title: '容器编码', 148 title: '容器编码',
150 - align: "center", 149 + align: 'center',
151 dataIndex: 'containerCode' 150 dataIndex: 'containerCode'
152 }, 151 },
153 { 152 {
154 title: '库位编码', 153 title: '库位编码',
155 - align: "center", 154 + align: 'center',
156 dataIndex: 'locationCode' 155 dataIndex: 'locationCode'
157 }, 156 },
158 { 157 {
159 title: '物料编码', 158 title: '物料编码',
160 - align: "center", 159 + align: 'center',
161 dataIndex: 'materialCode' 160 dataIndex: 'materialCode'
162 }, 161 },
163 { 162 {
164 title: '物料名称', 163 title: '物料名称',
165 - align: "center", 164 + align: 'center',
166 dataIndex: 'materialName' 165 dataIndex: 'materialName'
167 }, 166 },
168 { 167 {
169 title: '物料规格', 168 title: '物料规格',
170 - align: "center", 169 + align: 'center',
171 dataIndex: 'materialSpec' 170 dataIndex: 'materialSpec'
172 }, 171 },
173 { 172 {
174 title: '物料单位', 173 title: '物料单位',
175 - align: "center", 174 + align: 'center',
176 dataIndex: 'materialUnit' 175 dataIndex: 'materialUnit'
177 }, 176 },
178 { 177 {
179 title: '数量', 178 title: '数量',
180 - align: "center", 179 + align: 'center',
181 dataIndex: 'qty' 180 dataIndex: 'qty'
182 }, 181 },
183 { 182 {
184 title: '任务锁定数量', 183 title: '任务锁定数量',
185 - align: "center", 184 + align: 'center',
186 dataIndex: 'taskQty' 185 dataIndex: 'taskQty'
187 }, 186 },
188 { 187 {
  188 + title: '托盘填充度',
  189 + align: 'center',
  190 + dataIndex: 'fillDensity',
  191 + customRender: text => {
  192 + return text == null ? '' : text + '%'
  193 + }
  194 + },
  195 + {
189 title: '库存状态', 196 title: '库存状态',
190 - align: "center",  
191 - dataIndex: 'inventoryStatus_dictText', 197 + align: 'center',
  198 + dataIndex: 'inventoryStatus_dictText'
192 }, 199 },
193 { 200 {
194 title: '批次', 201 title: '批次',
195 - align: "center", 202 + align: 'center',
196 dataIndex: 'batch' 203 dataIndex: 'batch'
197 }, 204 },
198 - {  
199 - title: '唯一号',  
200 - align: "center",  
201 - dataIndex: 'uniqueCode'  
202 - }, 205 + // {
  206 + // title: '唯一号',
  207 + // align: "center",
  208 + // dataIndex: 'uniqueCode'
  209 + // },
203 { 210 {
204 title: '入库日期', 211 title: '入库日期',
205 - align: "center", 212 + align: 'center',
206 dataIndex: 'receiptDate' 213 dataIndex: 'receiptDate'
207 }, 214 },
208 { 215 {
209 title: '库龄(天)', 216 title: '库龄(天)',
210 - align: "center", 217 + align: 'center',
211 dataIndex: 'inventoryAge' 218 dataIndex: 'inventoryAge'
212 }, 219 },
213 { 220 {
214 title: '创建人', 221 title: '创建人',
215 - align: "center", 222 + align: 'center',
216 dataIndex: 'createBy' 223 dataIndex: 'createBy'
217 }, 224 },
218 { 225 {
219 title: '创建日期', 226 title: '创建日期',
220 - align: "center", 227 + align: 'center',
221 dataIndex: 'createTime' 228 dataIndex: 'createTime'
222 }, 229 },
223 { 230 {
224 title: '更新人', 231 title: '更新人',
225 - align: "center", 232 + align: 'center',
226 dataIndex: 'updateBy' 233 dataIndex: 'updateBy'
227 }, 234 },
228 { 235 {
229 title: '更新日期', 236 title: '更新日期',
230 - align: "center", 237 + align: 'center',
231 dataIndex: 'updateTime' 238 dataIndex: 'updateTime'
232 }, 239 },
233 { 240 {
234 title: '操作', 241 title: '操作',
235 dataIndex: 'action', 242 dataIndex: 'action',
236 - align: "center",  
237 - fixed: "right", 243 + align: 'center',
  244 + fixed: 'right',
238 width: 147, 245 width: 147,
239 - scopedSlots: {customRender: 'action'}, 246 + scopedSlots: { customRender: 'action' }
240 } 247 }
241 ], 248 ],
242 url: { 249 url: {
243 - list: "/inventory/inventoryHeader/listInventoryDetailByMainId",  
244 - delete: "/inventory/inventoryHeader/deleteInventoryDetail",  
245 - deleteBatch: "/inventory/inventoryHeader/deleteBatchInventoryDetail",  
246 - exportXlsUrl: "/inventory/inventoryHeader/exportInventoryDetail",  
247 - importUrl: "/inventory/inventoryHeader/importInventoryDetail", 250 + list: '/inventory/inventoryHeader/listInventoryDetailByMainId',
  251 + delete: '/inventory/inventoryHeader/deleteInventoryDetail',
  252 + deleteBatch: '/inventory/inventoryHeader/deleteBatchInventoryDetail',
  253 + exportXlsUrl: '/inventory/inventoryHeader/exportInventoryDetail',
  254 + importUrl: '/inventory/inventoryHeader/importInventoryDetail'
248 }, 255 },
249 dictOptions: { 256 dictOptions: {
250 - containerStatus: [], 257 + containerStatus: []
251 } 258 }
252 } 259 }
253 }, 260 },
254 created() { 261 created() {
255 - this.loadFrom(); 262 + this.loadFrom()
256 }, 263 },
257 computed: { 264 computed: {
258 importExcelUrl() { 265 importExcelUrl() {
259 - return `${window._CONFIG['domianURL']}/${this.url.importUrl}/${this.mainId}`; 266 + return `${window._CONFIG['domianURL']}/${this.url.importUrl}/${this.mainId}`
260 } 267 }
261 }, 268 },
262 methods: { 269 methods: {
263 loadFrom() { 270 loadFrom() {
264 - getCompanyList().then((res) => { 271 + getCompanyList().then(res => {
265 if (res.success) { 272 if (res.success) {
266 this.companyList = res.result 273 this.companyList = res.result
267 } 274 }
268 - }); 275 + })
269 }, 276 },
270 solutionCompany(value) { 277 solutionCompany(value) {
271 var actions = [] 278 var actions = []
272 - Object.keys(this.companyList).some((key) => {  
273 - if (this.companyList[key].code == ('' + value)) { 279 + Object.keys(this.companyList).some(key => {
  280 + if (this.companyList[key].code == '' + value) {
274 actions.push(this.companyList[key].name) 281 actions.push(this.companyList[key].name)
275 return true 282 return true
276 } 283 }
@@ -282,10 +289,9 @@ export default { @@ -282,10 +289,9 @@ export default {
282 this.selectedRowKeys = [] 289 this.selectedRowKeys = []
283 this.ipagination.current = 1 290 this.ipagination.current = 1
284 } 291 }
285 -  
286 } 292 }
287 } 293 }
288 </script> 294 </script>
289 <style scoped> 295 <style scoped>
290 -@import '~@assets/less/common.less' 296 +@import '~@assets/less/common.less';
291 </style> 297 </style>
ant-design-vue-jeecg/src/views/system/inventory/InventoryHeaderList.vue
@@ -73,7 +73,7 @@ @@ -73,7 +73,7 @@
73 <div> 73 <div>
74 <!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">--> 74 <!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">-->
75 <!-- <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a--> 75 <!-- <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a-->
76 -<!-- style="font-weight: 600">{{ selectedRowKeys.length }}</a>项--> 76 +<!-- style="font-weight: 600">{{ selectedRowKeys.length }}</a> 项-->
77 <!-- <a style="margin-left: 24px" @click="onClearSelected">清空</a>--> 77 <!-- <a style="margin-left: 24px" @click="onClearSelected">清空</a>-->
78 <!-- </div>--> 78 <!-- </div>-->
79 79
ant-design-vue-jeecg/src/views/system/inventory/InventoryMaterialSummaryList.vue
@@ -53,7 +53,7 @@ @@ -53,7 +53,7 @@
53 <!-- table区域-begin --> 53 <!-- table区域-begin -->
54 <div> 54 <div>
55 <!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">--> 55 <!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">-->
56 -<!-- <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项--> 56 +<!-- <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a> 项-->
57 <!-- <a style="margin-left: 24px" @click="onClearSelected">清空</a>--> 57 <!-- <a style="margin-left: 24px" @click="onClearSelected">清空</a>-->
58 <!-- </div>--> 58 <!-- </div>-->
59 59
@@ -113,7 +113,7 @@ @@ -113,7 +113,7 @@
113 </a-tab-pane> 113 </a-tab-pane>
114 </a-tabs> 114 </a-tabs>
115 115
116 - <inventory-material-summary-modal ref="modalForm" @ok="modalFormOk"></inventory-material-summary-modal> 116 + <!-- <inventory-material-summary-modal ref="modalForm" @ok="modalFormOk"></inventory-material-summary-modal> -->
117 </a-card> 117 </a-card>
118 </template> 118 </template>
119 119
@@ -213,8 +213,8 @@ @@ -213,8 +213,8 @@
213 methods: { 213 methods: {
214 solutionZoneCode(value) { 214 solutionZoneCode(value) {
215 var actions = [] 215 var actions = []
216 - Object.keys(this.zoneList).some((key) => {  
217 - if (this.zoneList[key].code == ('' + value)) { 216 + Object.keys(this.zoneList).some(key => {
  217 + if (this.zoneList[key].code == '' + value) {
218 actions.push(this.zoneList[key].name) 218 actions.push(this.zoneList[key].name)
219 return true 219 return true
220 } 220 }
@@ -255,9 +255,7 @@ @@ -255,9 +255,7 @@
255 }, 255 },
256 initDictConfig(){ 256 initDictConfig(){
257 }, 257 },
258 -  
259 solutionCompany(value) { 258 solutionCompany(value) {
260 - debugger  
261 var actions = [] 259 var actions = []
262 Object.keys(this.companyList).some((key) => { 260 Object.keys(this.companyList).some((key) => {
263 if (this.companyList[key].code == ('' + value)) { 261 if (this.companyList[key].code == ('' + value)) {
ant-design-vue-jeecg/src/views/system/inventory/InventoryTransactionList.vue
@@ -10,7 +10,6 @@ @@ -10,7 +10,6 @@
10 show-search 10 show-search
11 placeholder="请选择货主" 11 placeholder="请选择货主"
12 option-filter-prop="children" 12 option-filter-prop="children"
13 -  
14 v-model="queryParam.companyCode"> 13 v-model="queryParam.companyCode">
15 <a-select-option v-for="item in companyList" :key="item.name" :value="item.code">{{ 14 <a-select-option v-for="item in companyList" :key="item.name" :value="item.code">{{
16 item.name 15 item.name
@@ -121,7 +120,7 @@ @@ -121,7 +120,7 @@
121 <div> 120 <div>
122 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 121 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
123 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 122 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
124 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 123 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
125 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 124 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
126 </div> 125 </div>
127 126
@@ -361,7 +360,7 @@ export default { @@ -361,7 +360,7 @@ export default {
361 fieldList.push({type: 'string', value: 'materialName', text: '物料名称', dictCode: ''}) 360 fieldList.push({type: 'string', value: 'materialName', text: '物料名称', dictCode: ''})
362 fieldList.push({type: 'string', value: 'materialSpec', text: '物料规格', dictCode: ''}) 361 fieldList.push({type: 'string', value: 'materialSpec', text: '物料规格', dictCode: ''})
363 fieldList.push({type: 'string', value: 'materialUnit', text: '物料单位', dictCode: ''}) 362 fieldList.push({type: 'string', value: 'materialUnit', text: '物料单位', dictCode: ''})
364 - fieldList.push({type: 'string', value: 'inventoryStatus', text: '库存状态', dictCode: ''}) 363 + fieldList.push({type: 'string', value: 'inventoryStatus', text: '库存状态', dictCode: 'inventory_status'})
365 fieldList.push({type: 'BigDecimal', value: 'qty', text: '数量', dictCode: ''}) 364 fieldList.push({type: 'BigDecimal', value: 'qty', text: '数量', dictCode: ''})
366 fieldList.push({type: 'string', value: 'batch', text: '批次', dictCode: ''}) 365 fieldList.push({type: 'string', value: 'batch', text: '批次', dictCode: ''})
367 fieldList.push({type: 'string', value: 'createBy', text: '创建人', dictCode: ''}) 366 fieldList.push({type: 'string', value: 'createBy', text: '创建人', dictCode: ''})
ant-design-vue-jeecg/src/views/system/inventory/SimpleInventoryDetailList.vue
@@ -47,7 +47,11 @@ @@ -47,7 +47,11 @@
47 </a-col> 47 </a-col>
48 <a-col :xl="6" :lg="7" :md="8" :sm="24"> 48 <a-col :xl="6" :lg="7" :md="8" :sm="24">
49 <a-form-item label="库存状态"> 49 <a-form-item label="库存状态">
50 - <j-dict-select-tag placeholder="请选择库存状态" v-model="queryParam.inventoryStatus" dictCode="inventory_status"/> 50 + <j-dict-select-tag
  51 + placeholder="请选择库存状态"
  52 + v-model="queryParam.inventoryStatus"
  53 + dictCode="inventory_status"
  54 + />
51 </a-form-item> 55 </a-form-item>
52 </a-col> 56 </a-col>
53 <a-col :xl="6" :lg="7" :md="8" :sm="24"> 57 <a-col :xl="6" :lg="7" :md="8" :sm="24">
@@ -55,14 +59,19 @@ @@ -55,14 +59,19 @@
55 <a-input placeholder="请输入批次" v-model="queryParam.batch"></a-input> 59 <a-input placeholder="请输入批次" v-model="queryParam.batch"></a-input>
56 </a-form-item> 60 </a-form-item>
57 </a-col> 61 </a-col>
58 - <a-col :xl="6" :lg="7" :md="8" :sm="24"> 62 + <!-- <a-col :xl="6" :lg="7" :md="8" :sm="24">
59 <a-form-item label="唯一号"> 63 <a-form-item label="唯一号">
60 <a-input placeholder="请输入唯一号" v-model="queryParam.uniqueCode"></a-input> 64 <a-input placeholder="请输入唯一号" v-model="queryParam.uniqueCode"></a-input>
61 </a-form-item> 65 </a-form-item>
62 - </a-col> 66 + </a-col> -->
63 <a-col :xl="6" :lg="7" :md="8" :sm="24"> 67 <a-col :xl="6" :lg="7" :md="8" :sm="24">
64 <a-form-item label="入库日期"> 68 <a-form-item label="入库日期">
65 - <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择入库日期" v-model="queryParam.receiptDate"></j-date> 69 + <j-date
  70 + :show-time="true"
  71 + date-format="YYYY-MM-DD HH:mm:ss"
  72 + placeholder="请选择入库日期"
  73 + v-model="queryParam.receiptDate"
  74 + ></j-date>
66 </a-form-item> 75 </a-form-item>
67 </a-col> 76 </a-col>
68 <a-col :xl="6" :lg="7" :md="8" :sm="24"> 77 <a-col :xl="6" :lg="7" :md="8" :sm="24">
@@ -77,7 +86,7 @@ @@ -77,7 +86,7 @@
77 <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button> 86 <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
78 <a @click="handleToggleSearch" style="margin-left: 8px"> 87 <a @click="handleToggleSearch" style="margin-left: 8px">
79 {{ toggleSearchStatus ? '收起' : '展开' }} 88 {{ toggleSearchStatus ? '收起' : '展开' }}
80 - <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> 89 + <a-icon :type="toggleSearchStatus ? 'up' : 'down'" />
81 </a> 90 </a>
82 </span> 91 </span>
83 </a-col> 92 </a-col>
@@ -89,70 +98,81 @@ @@ -89,70 +98,81 @@
89 <!-- 操作按钮区域 --> 98 <!-- 操作按钮区域 -->
90 <div class="table-operator"> 99 <div class="table-operator">
91 <a-button v-has="'inventoryDetail:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button> 100 <a-button v-has="'inventoryDetail:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button>
92 - <a-button v-has="'inventoryDetail:export'" type="primary" icon="download" @click="handleExportXls('库存详情')">导出</a-button>  
93 - <a-upload v-has="'inventoryDetail:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> 101 + <a-button v-has="'inventoryDetail:export'" type="primary" icon="download" @click="handleExportXls('库存详情')"
  102 + >导出</a-button
  103 + >
  104 + <a-upload
  105 + v-has="'inventoryDetail:import'"
  106 + name="file"
  107 + :showUploadList="false"
  108 + :multiple="false"
  109 + :headers="tokenHeader"
  110 + :action="importExcelUrl"
  111 + @change="handleImportExcel"
  112 + >
94 <a-button type="primary" icon="import">导入</a-button> 113 <a-button type="primary" icon="import">导入</a-button>
95 </a-upload> 114 </a-upload>
96 <!-- 高级查询区域 --> 115 <!-- 高级查询区域 -->
97 - <j-super-query :fieldList="superFieldList" v-has="'inventoryDetail:superSearch'" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>  
98 -<!-- <a-dropdown v-if="selectedRowKeys.length > 0">-->  
99 -<!-- <a-menu slot="overlay">-->  
100 -<!-- <a-menu-item v-has="'inventoryDetail:delete'" key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>-->  
101 -<!-- </a-menu>-->  
102 -<!-- <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>-->  
103 -<!-- </a-dropdown>--> 116 + <j-super-query
  117 + :fieldList="superFieldList"
  118 + v-has="'inventoryDetail:superSearch'"
  119 + ref="superQueryModal"
  120 + @handleSuperQuery="handleSuperQuery"
  121 + ></j-super-query>
  122 + <!-- <a-dropdown v-if="selectedRowKeys.length > 0">-->
  123 + <!-- <a-menu slot="overlay">-->
  124 + <!-- <a-menu-item v-has="'inventoryDetail:delete'" key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>-->
  125 + <!-- </a-menu>-->
  126 + <!-- <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>-->
  127 + <!-- </a-dropdown>-->
104 </div> 128 </div>
105 129
106 <!-- table区域-begin --> 130 <!-- table区域-begin -->
107 <div> 131 <div>
108 -<!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">-->  
109 -<!-- <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项-->  
110 -<!-- <a style="margin-left: 24px" @click="onClearSelected">清空</a>-->  
111 -<!-- </div>--> 132 + <!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">-->
  133 + <!-- <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a> 项-->
  134 + <!-- <a style="margin-left: 24px" @click="onClearSelected">清空</a>-->
  135 + <!-- </div>-->
112 136
113 <a-table 137 <a-table
114 ref="table" 138 ref="table"
115 size="middle" 139 size="middle"
116 - :scroll="{x:true}" 140 + :scroll="{ x: true }"
117 bordered 141 bordered
118 rowKey="id" 142 rowKey="id"
119 :columns="columns" 143 :columns="columns"
120 :dataSource="dataSource" 144 :dataSource="dataSource"
121 :pagination="ipagination" 145 :pagination="ipagination"
122 :loading="loading" 146 :loading="loading"
123 - :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" 147 + :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
124 class="j-table-force-nowrap" 148 class="j-table-force-nowrap"
125 - @change="handleTableChange">  
126 - 149 + @change="handleTableChange"
  150 + >
127 <template slot="htmlSlot" slot-scope="text"> 151 <template slot="htmlSlot" slot-scope="text">
128 <div v-html="text"></div> 152 <div v-html="text"></div>
129 </template> 153 </template>
130 <template slot="imgSlot" slot-scope="text"> 154 <template slot="imgSlot" slot-scope="text">
131 <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span> 155 <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
132 - <img v-else :src="getImgView(text)" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/> 156 + <img
  157 + v-else
  158 + :src="getImgView(text)"
  159 + height="25px"
  160 + alt=""
  161 + style="max-width:80px;font-size: 12px;font-style: italic;"
  162 + />
133 </template> 163 </template>
134 <template slot="fileSlot" slot-scope="text"> 164 <template slot="fileSlot" slot-scope="text">
135 <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span> 165 <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
136 - <a-button  
137 - v-else  
138 - :ghost="true"  
139 - type="primary"  
140 - icon="download"  
141 - size="small"  
142 - @click="downloadFile(text)"> 166 + <a-button v-else :ghost="true" type="primary" icon="download" size="small" @click="downloadFile(text)">
143 下载 167 下载
144 </a-button> 168 </a-button>
145 </template> 169 </template>
146 -  
147 <span slot="action" slot-scope="text, record"> 170 <span slot="action" slot-scope="text, record">
148 - <a v-has="'inventoryDetail:edit'"@click="handleEdit(record)">编辑</a>  
149 -  
150 - <a-divider type="vertical" /> 171 + <a v-has="'inventoryDetail:edit'" @click="handleEdit(record)">编辑<a-divider type="vertical"/></a>
151 <a-popconfirm v-has="'inventoryDetail:delete'" title="确定删除吗?" @confirm="() => handleDelete(record.id)"> 172 <a-popconfirm v-has="'inventoryDetail:delete'" title="确定删除吗?" @confirm="() => handleDelete(record.id)">
152 <a>删除</a> 173 <a>删除</a>
153 </a-popconfirm> 174 </a-popconfirm>
154 </span> 175 </span>
155 -  
156 </a-table> 176 </a-table>
157 </div> 177 </div>
158 178
@@ -161,187 +181,192 @@ @@ -161,187 +181,192 @@
161 </template> 181 </template>
162 182
163 <script> 183 <script>
  184 +import '@/assets/less/TableExpand.less'
  185 +import { mixinDevice } from '@/utils/mixin'
  186 +import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  187 +import SimpleInventoryDetailModal from './modules/SimpleInventoryDetailModal'
  188 +import { filterMultiDictText } from '@/components/dict/JDictSelectUtil'
164 189
165 - import '@/assets/less/TableExpand.less'  
166 - import { mixinDevice } from '@/utils/mixin'  
167 - import { JeecgListMixin } from '@/mixins/JeecgListMixin'  
168 - import SimpleInventoryDetailModal from './modules/SimpleInventoryDetailModal'  
169 - import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'  
170 -  
171 - export default {  
172 - name: 'InventoryDetailList',  
173 - mixins:[JeecgListMixin, mixinDevice],  
174 - components: {  
175 - SimpleInventoryDetailModal  
176 - },  
177 - data () {  
178 - return {  
179 - description: '库存详情管理页面',  
180 - // 表头  
181 - columns: [  
182 - {  
183 - title: '#',  
184 - dataIndex: '',  
185 - key:'rowIndex',  
186 - width:60,  
187 - align:"center",  
188 - customRender:function (t,r,index) {  
189 - return parseInt(index)+1;  
190 - }  
191 - },  
192 - {  
193 - title:'货主',  
194 - align:"center",  
195 - dataIndex: 'companyCode'  
196 - },  
197 - {  
198 - title:'库区',  
199 - align:"center",  
200 - dataIndex: 'zoneCode'  
201 - },  
202 - {  
203 - title:'容器编码',  
204 - align:"center",  
205 - dataIndex: 'containerCode'  
206 - },  
207 - {  
208 - title:'库位编码',  
209 - align:"center",  
210 - dataIndex: 'locationCode'  
211 - },  
212 - {  
213 - title:'物料编码',  
214 - align:"center",  
215 - dataIndex: 'materialCode'  
216 - },  
217 - {  
218 - title:'物料名称',  
219 - align:"center",  
220 - dataIndex: 'materialName'  
221 - },  
222 - {  
223 - title:'物料规格',  
224 - align:"center",  
225 - dataIndex: 'materialSpec'  
226 - },  
227 - {  
228 - title:'物料单位',  
229 - align:"center",  
230 - dataIndex: 'materialUnit'  
231 - },  
232 - {  
233 - title:'数量',  
234 - align:"center",  
235 - dataIndex: 'qty'  
236 - },  
237 - {  
238 - title:'任务锁定数量',  
239 - align:"center",  
240 - dataIndex: 'taskQty'  
241 - },  
242 - {  
243 - title:'库存状态',  
244 - align:"center",  
245 - dataIndex: 'inventoryStatus_dictText'  
246 - },  
247 - {  
248 - title:'批次',  
249 - align:"center",  
250 - dataIndex: 'batch'  
251 - },  
252 - {  
253 - title:'唯一号',  
254 - align:"center",  
255 - dataIndex: 'uniqueCode'  
256 - },  
257 - {  
258 - title:'入库日期',  
259 - align:"center",  
260 - dataIndex: 'receiptDate'  
261 - },  
262 - {  
263 - title:'库龄(天)',  
264 - align:"center",  
265 - dataIndex: 'inventoryAge'  
266 - },  
267 - {  
268 - title:'创建人',  
269 - align:"center",  
270 - dataIndex: 'createBy'  
271 - },  
272 - {  
273 - title:'创建日期',  
274 - align:"center",  
275 - dataIndex: 'createTime'  
276 - },  
277 - {  
278 - title:'更新人',  
279 - align:"center",  
280 - dataIndex: 'updateBy'  
281 - },  
282 - {  
283 - title:'更新日期',  
284 - align:"center",  
285 - dataIndex: 'updateTime'  
286 - },  
287 - {  
288 - title: '操作',  
289 - dataIndex: 'action',  
290 - align:"center",  
291 - fixed:"right",  
292 - width:147,  
293 - scopedSlots: { customRender: 'action' } 190 +export default {
  191 + name: 'InventoryDetailList',
  192 + mixins: [JeecgListMixin, mixinDevice],
  193 + components: {
  194 + SimpleInventoryDetailModal
  195 + },
  196 + data() {
  197 + return {
  198 + description: '库存详情管理页面',
  199 + // 表头
  200 + columns: [
  201 + {
  202 + title: '#',
  203 + dataIndex: '',
  204 + key: 'rowIndex',
  205 + width: 60,
  206 + align: 'center',
  207 + customRender: function(t, r, index) {
  208 + return parseInt(index) + 1
294 } 209 }
295 - ],  
296 - url: {  
297 - list: "/inventory/inventoryDetail/list",  
298 - delete: "/inventory/inventoryDetail/delete",  
299 - deleteBatch: "/inventory/inventoryDetail/deleteBatch",  
300 - exportXlsUrl: "/inventory/inventoryDetail/exportXls",  
301 - importExcelUrl: "inventory/inventoryDetail/importExcel",  
302 -  
303 }, 210 },
304 - dictOptions:{},  
305 - superFieldList:[],  
306 - }  
307 - },  
308 - created() {  
309 - this.getSuperFieldList();  
310 - },  
311 - computed: {  
312 - importExcelUrl: function(){  
313 - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;  
314 - },  
315 - },  
316 - methods: {  
317 - initDictConfig(){ 211 + {
  212 + title: '货主',
  213 + align: 'center',
  214 + dataIndex: 'companyCode'
  215 + },
  216 + {
  217 + title: '库区',
  218 + align: 'center',
  219 + dataIndex: 'zoneCode'
  220 + },
  221 + {
  222 + title: '容器编码',
  223 + align: 'center',
  224 + dataIndex: 'containerCode'
  225 + },
  226 + {
  227 + title: '库位编码',
  228 + align: 'center',
  229 + dataIndex: 'locationCode'
  230 + },
  231 + {
  232 + title: '物料编码',
  233 + align: 'center',
  234 + dataIndex: 'materialCode'
  235 + },
  236 + {
  237 + title: '物料名称',
  238 + align: 'center',
  239 + dataIndex: 'materialName'
  240 + },
  241 + {
  242 + title: '物料规格',
  243 + align: 'center',
  244 + dataIndex: 'materialSpec'
  245 + },
  246 + {
  247 + title: '物料单位',
  248 + align: 'center',
  249 + dataIndex: 'materialUnit'
  250 + },
  251 + {
  252 + title: '数量',
  253 + align: 'center',
  254 + dataIndex: 'qty'
  255 + },
  256 + {
  257 + title: '任务锁定数量',
  258 + align: 'center',
  259 + dataIndex: 'taskQty'
  260 + },
  261 + {
  262 + title: '托盘填充度',
  263 + align: 'center',
  264 + dataIndex: 'fillDensity',
  265 + customRender: text => {
  266 + return text == null ? '' : text + '%'
  267 + }
  268 + },
  269 + {
  270 + title: '库存状态',
  271 + align: 'center',
  272 + dataIndex: 'inventoryStatus_dictText'
  273 + },
  274 + {
  275 + title: '批次',
  276 + align: 'center',
  277 + dataIndex: 'batch'
  278 + },
  279 + // {
  280 + // title:'唯一号',
  281 + // align:"center",
  282 + // dataIndex: 'uniqueCode'
  283 + // },
  284 + {
  285 + title: '入库日期',
  286 + align: 'center',
  287 + dataIndex: 'receiptDate'
  288 + },
  289 + {
  290 + title: '库龄(天)',
  291 + align: 'center',
  292 + dataIndex: 'inventoryAge'
  293 + },
  294 + {
  295 + title: '创建人',
  296 + align: 'center',
  297 + dataIndex: 'createBy'
  298 + },
  299 + {
  300 + title: '创建日期',
  301 + align: 'center',
  302 + dataIndex: 'createTime'
  303 + },
  304 + {
  305 + title: '更新人',
  306 + align: 'center',
  307 + dataIndex: 'updateBy'
  308 + },
  309 + {
  310 + title: '更新日期',
  311 + align: 'center',
  312 + dataIndex: 'updateTime'
  313 + },
  314 + {
  315 + title: '操作',
  316 + dataIndex: 'action',
  317 + align: 'center',
  318 + fixed: 'right',
  319 + width: 147,
  320 + scopedSlots: { customRender: 'action' }
  321 + }
  322 + ],
  323 + url: {
  324 + list: '/inventory/inventoryDetail/list',
  325 + delete: '/inventory/inventoryDetail/delete',
  326 + deleteBatch: '/inventory/inventoryDetail/deleteBatch',
  327 + exportXlsUrl: '/inventory/inventoryDetail/exportXls',
  328 + importExcelUrl: 'inventory/inventoryDetail/importExcel'
318 }, 329 },
319 - getSuperFieldList(){  
320 - let fieldList=[];  
321 - fieldList.push({type:'string',value:'companyCode',text:'货主',dictCode:''})  
322 - fieldList.push({type:'string',value:'zoneCode',text:'库区',dictCode:''})  
323 - fieldList.push({type:'string',value:'containerCode',text:'容器编码',dictCode:''})  
324 - fieldList.push({type:'string',value:'locationCode',text:'库位编码',dictCode:''})  
325 - fieldList.push({type:'string',value:'materialCode',text:'物料编码',dictCode:''})  
326 - fieldList.push({type:'string',value:'materialName',text:'物料名称',dictCode:''})  
327 - fieldList.push({type:'string',value:'materialSpec',text:'物料规格',dictCode:''})  
328 - fieldList.push({type:'string',value:'materialUnit',text:'物料单位',dictCode:''})  
329 - fieldList.push({type:'BigDecimal',value:'qty',text:'数量',dictCode:''})  
330 - fieldList.push({type:'BigDecimal',value:'taskQty',text:'任务锁定数量',dictCode:''})  
331 - fieldList.push({type:'string',value:'inventoryStatus',text:'库存状态',dictCode:'inventory_status'})  
332 - fieldList.push({type:'string',value:'batch',text:'批次',dictCode:''})  
333 - fieldList.push({type:'string',value:'uniqueCode',text:'唯一号',dictCode:''})  
334 - fieldList.push({type:'datetime',value:'receiptDate',text:'入库日期'})  
335 - fieldList.push({type:'int',value:'inventoryAge',text:'库龄(天)',dictCode:''})  
336 - fieldList.push({type:'string',value:'createBy',text:'创建人',dictCode:''})  
337 - fieldList.push({type:'datetime',value:'createTime',text:'创建日期'})  
338 - fieldList.push({type:'string',value:'updateBy',text:'更新人',dictCode:''})  
339 - fieldList.push({type:'datetime',value:'updateTime',text:'更新日期'})  
340 - this.superFieldList = fieldList  
341 - } 330 + dictOptions: {},
  331 + superFieldList: []
  332 + }
  333 + },
  334 + created() {
  335 + this.getSuperFieldList()
  336 + },
  337 + computed: {
  338 + importExcelUrl: function() {
  339 + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
  340 + }
  341 + },
  342 + methods: {
  343 + initDictConfig() {},
  344 + getSuperFieldList() {
  345 + let fieldList = []
  346 + fieldList.push({ type: 'string', value: 'companyCode', text: '货主', dictCode: '' })
  347 + fieldList.push({ type: 'string', value: 'zoneCode', text: '库区', dictCode: '' })
  348 + fieldList.push({ type: 'string', value: 'containerCode', text: '容器编码', dictCode: '' })
  349 + fieldList.push({ type: 'string', value: 'locationCode', text: '库位编码', dictCode: '' })
  350 + fieldList.push({ type: 'string', value: 'materialCode', text: '物料编码', dictCode: '' })
  351 + fieldList.push({ type: 'string', value: 'materialName', text: '物料名称', dictCode: '' })
  352 + fieldList.push({ type: 'string', value: 'materialSpec', text: '物料规格', dictCode: '' })
  353 + fieldList.push({ type: 'string', value: 'materialUnit', text: '物料单位', dictCode: '' })
  354 + fieldList.push({ type: 'BigDecimal', value: 'qty', text: '数量', dictCode: '' })
  355 + fieldList.push({ type: 'BigDecimal', value: 'taskQty', text: '任务锁定数量', dictCode: '' })
  356 + fieldList.push({ type: 'string', value: 'inventoryStatus', text: '库存状态', dictCode: 'inventory_status' })
  357 + fieldList.push({ type: 'string', value: 'batch', text: '批次', dictCode: '' })
  358 + // fieldList.push({type:'string',value:'uniqueCode',text:'唯一号',dictCode:''})
  359 + fieldList.push({ type: 'datetime', value: 'receiptDate', text: '入库日期' })
  360 + fieldList.push({ type: 'int', value: 'inventoryAge', text: '库龄(天)', dictCode: '' })
  361 + fieldList.push({ type: 'string', value: 'createBy', text: '创建人', dictCode: '' })
  362 + fieldList.push({ type: 'datetime', value: 'createTime', text: '创建日期' })
  363 + fieldList.push({ type: 'string', value: 'updateBy', text: '更新人', dictCode: '' })
  364 + fieldList.push({ type: 'datetime', value: 'updateTime', text: '更新日期' })
  365 + this.superFieldList = fieldList
342 } 366 }
343 } 367 }
  368 +}
344 </script> 369 </script>
345 <style scoped> 370 <style scoped>
346 - @import '~@assets/less/common.less'; 371 +@import '~@assets/less/common.less';
347 </style> 372 </style>
348 \ No newline at end of file 373 \ No newline at end of file
ant-design-vue-jeecg/src/views/system/inventory/subTables/InventoryDetailSubTable.vue
@@ -30,7 +30,7 @@ @@ -30,7 +30,7 @@
30 <div> 30 <div>
31 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 31 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
32 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a 32 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
33 - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 33 + style="font-weight: 600">{{ selectedRowKeys.length }}</a>
34 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 34 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
35 </div> 35 </div>
36 36
ant-design-vue-jeecg/src/views/system/modules/DeptRoleInfo.vue
@@ -38,7 +38,7 @@ @@ -38,7 +38,7 @@
38 <div> 38 <div>
39 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> 39 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
40 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600"> 40 <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">
41 - {{ selectedRowKeys.length }}</a> 41 + {{ selectedRowKeys.length }}</a>
42 <a style="margin-left: 24px" @click="onClearSelected">清空</a> 42 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
43 </div> 43 </div>
44 <a-table 44 <a-table