From 7207ef22748a8fecfde5e7ded828dc9b6bcfefe7 Mon Sep 17 00:00:00 2001 From: cuilei <ray_tsu1@163.com> Date: 星期一, 15 九月 2025 15:37:40 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/views/cms/CuttingScrapList.vue | 254 ++-- src/views/eam/equipment/modules/EamEquipmentModal.vue | 2 src/views/mes/modules/MesMaterialTransferRequestForm.vue | 50 src/views/base/ShiftGroupManager.vue | 18 src/views/cms/CuttingScrapDetailList.vue | 5 src/views/cms/CuttingReceiveDetailList.vue | 260 ++-- src/views/base/modules/group/GroupModal.vue | 293 +++--- src/views/cms/modules/CuttingScrapModal.vue | 159 +- src/views/mes/modules/WorkOrderSelectModal.vue | 2 src/utils/util.js | 26 src/views/cms/modules/JSelectScrapModal.vue | 261 +++++ src/views/cms/CuttingReceiveList.vue | 727 ++++++++------- src/views/cms/modules/CuttingReceiveModal.vue | 749 +++++++------- 13 files changed, 1,591 insertions(+), 1,215 deletions(-) diff --git a/src/utils/util.js b/src/utils/util.js index 31c8720..e1de3d4 100644 --- a/src/utils/util.js +++ b/src/utils/util.js @@ -512,7 +512,31 @@ } return [target].concat(getParents(target), window) } - +/** + * 閲嶅鍊奸獙璇佸伐鍏锋柟娉� + * + * 浣跨敤绀轰緥锛� + * { validator: (rule, value, callback) => validateDuplicateValue('sys_fill_rule', 'rule_code', value, this.model.id, callback) } + * + * @param tableName 琚獙璇佺殑琛ㄥ悕 + * @param fieldName 琚獙璇佺殑瀛楁鍚� + * @param fieldVal 琚獙璇佺殑鍊� + * @param dataId 鏁版嵁ID锛屽彲绌� + * @param delFlag 鍒犻櫎鏍囪 + * @param callback + */ +export function validateDuplicateValueInDelFlag(tableName, fieldName, fieldVal, dataId, delFlag, callback) { + if (fieldVal) { + let params = { tableName, fieldName, fieldVal, dataId, delFlag } + api.duplicateCheck(params).then(res => { + res['success'] ? callback() : callback(res['message']) + }).catch(err => { + callback(err.message || err) + }) + } else { + callback() + } +} /** * 鏍规嵁缁勪欢鍚嶈幏鍙栫埗绾� * @param vm diff --git a/src/views/base/ShiftGroupManager.vue b/src/views/base/ShiftGroupManager.vue index 1e4f5c1..81d39ba 100644 --- a/src/views/base/ShiftGroupManager.vue +++ b/src/views/base/ShiftGroupManager.vue @@ -7,7 +7,13 @@ <!-- 鎼滅储鍖哄煙 --> <a-form layout="inline" @keyup.enter.native="searchQuery"> <a-row :gutter="24"> - <a-col :md="6" :sm="8"> + <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <a-form-item label="浜х嚎"> + <j-dict-select-tag placeholder="璇烽�夋嫨浜х嚎" v-model="queryParam.factoryId" + dictCode="base_factory,factory_name,id,del_flag=0 and factory_category='3'"></j-dict-select-tag> + </a-form-item> + </a-col> + <a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-form-item label="鐝粍鍚嶇О" :labelCol="{span: 5}" :wrapperCol="{span: 18, offset: 1}"> <a-input placeholder="" v-model="queryParam.groupName"></a-input> </a-form-item> @@ -89,7 +95,7 @@ <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> <a-col :md="9" :sm="24"> <a-button type="primary" @click="searchQuery2" icon="search" style="margin-left: 21px">鏌ヨ</a-button> - <a-button type="primary" @click="searchReset2" icon="reload" style="margin-left: 8px">閲嶇疆</a-button> + <a-button type="info" @click="searchReset2" icon="reload" style="margin-left: 8px">閲嶇疆</a-button> </a-col> </span> @@ -170,7 +176,7 @@ queryParam2: {}, dataSource1: [], dataSource2: [], - ipagination1: { + ipagination: { current: 1, pageSize: 10, pageSizeOptions: ['10', '20', '30'], @@ -192,9 +198,9 @@ showSizeChanger: true, total: 0 }, - isorter1: { - column: 'createTime', - order: 'desc' + isorter: { + column: 'groupCode', + order: 'asc' }, isorter2: { column: 'createTime', diff --git a/src/views/base/modules/group/GroupModal.vue b/src/views/base/modules/group/GroupModal.vue index 70dca51..4185b29 100644 --- a/src/views/base/modules/group/GroupModal.vue +++ b/src/views/base/modules/group/GroupModal.vue @@ -12,42 +12,37 @@ style="top:5%;height: 85%;overflow-y: hidden"> <a-spin :spinning="confirmLoading"> - <a-form-model ref="form" v-bind="layout" :model="model" :rules="validatorRules"> + <a-form-model ref="form" :model="model" :rules="validatorRules"> <a-form-model-item label="鐝粍缂栫爜" required prop="groupCode" :labelCol="labelCol" :wrapperCol="wrapperCol"> - <a-input v-model="model.groupCode" :disabled="roleDisabled" placeholder="璇疯緭鍏ョ彮缁勭紪鐮�"/> + <a-input v-model="model.groupCode" :disabled="roleDisabled" placeholder="璇疯緭鍏ョ彮缁勭紪鐮�" /> </a-form-model-item> <a-form-model-item label="鐝粍鍚嶇О" required prop="groupName" :labelCol="labelCol" :wrapperCol="wrapperCol"> - <a-input v-model="model.groupName" placeholder="璇疯緭鍏ョ彮缁勫悕绉�"/> + <a-input v-model="model.groupName" placeholder="璇疯緭鍏ョ彮缁勫悕绉�" /> </a-form-model-item> - <a-form-model-item label="鐝粍闀�" prop="groupManager" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-form-model-item label="鐝粍闀�" prop="groupManager" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <j-search-select-tag + type="list" + v-model="model.groupManager" + :trigger-change="true" + dict="sys_user,realname,id, del_flag='0' and status='1'" + placeholder="璇烽�夋嫨鐝粍闀�" + /> + </a-form-model-item> + <a-form-model-item label="浜х嚎" prop="factoryId" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <j-dict-select-tag placeholder="璇烽�夋嫨浜х嚎" v-model="model.factoryId" + dictCode="base_factory,factory_name,id,del_flag=0 and factory_category='3'"></j-dict-select-tag> + </a-form-model-item> + <a-form-model-item label="鐝" prop="shiftId" :labelCol="labelCol" :wrapperCol="wrapperCol"> <j-dict-select-tag - type="list" - v-model="model.groupManager" - :trigger-change="true" - dictCode="sys_user,realname,id" - placeholder="璇烽�夋嫨鐝粍闀�" - /> - </a-form-model-item> - <a-form-model-item label="浜х嚎" prop="factoryId" :labelCol="labelCol" :wrapperCol="wrapperCol"> - <j-select-factory - v-model="model.factoryId" - :multi="true" - @back="backFactoryInfo" - :backProduction="true" - :treeProductOpera="true" - ></j-select-factory> - </a-form-model-item> - <a-form-model-item label="鐝" prop="shiftId" :labelCol="labelCol" :wrapperCol="wrapperCol"> - <j-dict-select-tag - type="list" - v-model="model.shiftId" - :trigger-change="true" - dictCode="base_shift,shift_name,id" - placeholder="璇烽�夋嫨鐝" - /> + type="list" + v-model="model.shiftId" + :trigger-change="true" + dictCode="base_shift,shift_name,id" + placeholder="璇烽�夋嫨鐝" + /> </a-form-model-item> <a-form-model-item label="澶囨敞" prop="remark" :labelCol="labelCol" :wrapperCol="wrapperCol"> - <a-textarea :rows="5" v-model="model.remark" placeholder="璇疯緭鍏ュ娉�"/> + <a-textarea :rows="5" v-model="model.remark" placeholder="璇疯緭鍏ュ娉�" /> </a-form-model-item> </a-form-model> </a-spin> @@ -55,130 +50,138 @@ </template> <script> - import {duplicateCheck } from '@/api/api' - import {postAction,requestPut} from '@/api/manage' - import JDictSelectTag from '@/components/dict/JDictSelectTag' - import JSelectFactory from '../../../../components/jeecgbiz/JSelectFactory' - export default { - name: "GroupModal", - components: { - JDictSelectTag, - JSelectFactory +import { duplicateCheck } from '@/api/api' +import { postAction, requestPut } from '@/api/manage' +import JDictSelectTag from '@/components/dict/JDictSelectTag' + +export default { + name: 'GroupModal', + components: { + JDictSelectTag }, - data () { - return { - title:"鎿嶄綔", - visible: false, - roleDisabled: false, - model: {}, - labelCol: { - xs: { span: 24 }, - sm: { span: 5 }, - }, - wrapperCol: { - xs: { span: 24 }, - sm: { span: 16 }, - }, - confirmLoading: false, - validatorRules:{ - groupName: [ - { required: true, message: '璇疯緭鍏ョ彮缁勫悕绉�!' }, - { min: 2, max: 30, message: '闀垮害鍦� 2 鍒� 30 涓瓧绗�', trigger: 'blur' } - ], - groupCode: [ - { required: true, message: '璇疯緭鍏ョ彮缁勫悕绉�!'}, - { min: 0, max: 64, message: '闀垮害涓嶈秴杩� 64 涓瓧绗�', trigger: 'blur' }, - { validator: this.validategroupCode} - ], - remark: [ - { min: 0, max: 126, message: '闀垮害涓嶈秴杩� 126 涓瓧绗�', trigger: 'blur' } - ] - }, - url: { - add: "/base/shiftGroup/add", - edit: "/base/shiftGroup/edit", - }, - nextFactoryOptions: [], - } + data() { + return { + title: '鎿嶄綔', + visible: false, + roleDisabled: false, + model: {}, + labelCol: { + xs: { span: 24 }, + sm: { span: 5 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 16 } + }, + confirmLoading: false, + validatorRules: { + groupName: [ + { required: true, message: '璇疯緭鍏ョ彮缁勫悕绉�!' }, + { min: 2, max: 30, message: '闀垮害鍦� 2 鍒� 30 涓瓧绗�', trigger: 'blur' } + ], + groupCode: [ + { required: true, message: '璇疯緭鍏ョ彮缁勫悕绉�!' }, + { min: 0, max: 64, message: '闀垮害涓嶈秴杩� 64 涓瓧绗�', trigger: 'blur' }, + { validator: this.validategroupCode } + ], + factoryId: [ + { required: true, message: '璇烽�夋嫨浜х嚎!' }, + ], + groupManager: [ + { required: true, message: '璇烽�夋嫨鐝粍闀�!' }, + ], + shiftId: [ + { required: true, message: '璇烽�夋嫨鐝彮娆�!' }, + ], + remark: [ + { min: 0, max: 126, message: '闀垮害涓嶈秴杩� 126 涓瓧绗�', trigger: 'blur' } + ] + }, + url: { + add: '/base/shiftGroup/add', + edit: '/base/shiftGroup/edit' + }, + nextFactoryOptions: [] + } + }, + created() { + //澶囦唤model鍘熷鍊� + this.modelDefault = JSON.parse(JSON.stringify(this.model)) + }, + methods: { + add() { + this.edit(this.modelDefault) }, - created () { - //澶囦唤model鍘熷鍊� - this.modelDefault = JSON.parse(JSON.stringify(this.model)); + edit(record) { + this.model = Object.assign({}, record) + this.visible = true }, - methods: { - add () { - this.edit(this.modelDefault); - }, - edit (record) { - this.model = Object.assign({}, record); - this.visible = true; - }, - close () { - this.$refs.form.clearValidate(); - this.$emit('close'); - this.visible = false; - }, - handleOk () { - const that = this; - // 瑙﹀彂琛ㄥ崟楠岃瘉 - this.$refs.form.validate(valid => { - if (valid) { - that.confirmLoading = true; - let obj; - if(!this.model.id){ - obj=postAction(this.url.add, this.model) - }else{ - obj=requestPut(this.url.edit, this.model, { - id: this.model.id - }) - } - obj.then((res)=>{ - if(res.success){ - that.$message.success(res.message); - that.$emit('ok'); - }else{ - that.$message.warning(res.message); - } - }).finally(() => { - that.confirmLoading = false; - that.close(); + close() { + this.$refs.form.clearValidate() + this.$emit('close') + this.visible = false + }, + handleOk() { + const that = this + // 瑙﹀彂琛ㄥ崟楠岃瘉 + this.$refs.form.validate(valid => { + if (valid) { + that.confirmLoading = true + let obj + if (!this.model.id) { + obj = postAction(this.url.add, this.model) + } else { + obj = requestPut(this.url.edit, this.model, { + id: this.model.id }) - }else{ - return false; + } + obj.then((res) => { + if (res.success) { + that.$message.success(res.message) + that.$emit('ok') + } else { + that.$message.warning(res.message) + } + }).finally(() => { + that.confirmLoading = false + that.close() + }) + } else { + return false + } + }) + }, + handleCancel() { + this.close() + }, + validategroupCode(rule, value, callback) { + if (/[\u4E00-\u9FA5]/g.test(value)) { + callback('鐝粍缂栫爜涓嶅彲杈撳叆姹夊瓧!') + } else { + let params = { + tableName: 'base_shift_group', + fieldName: 'group_code', + fieldVal: value, + dataId: this.model.id + } + duplicateCheck(params).then((res) => { + if (res.success) { + callback() + } else { + callback(res.message) } }) - }, - handleCancel () { - this.close() - }, - validategroupCode(rule, value, callback){ - if(/[\u4E00-\u9FA5]/g.test(value)){ - callback("鐝粍缂栫爜涓嶅彲杈撳叆姹夊瓧!"); - }else{ - let params = { - tableName: "base_shift_group", - fieldName: "group_code", - fieldVal: value, - dataId: this.model.id, - }; - duplicateCheck(params).then((res)=>{ - if(res.success){ - callback(); - }else{ - callback(res.message); - } - }); - } - }, - backFactoryInfo(info) { - this.model.factoryIds = this.model.factoryId - this.nextFactoryOptions = info.map((item, index, arr) => { - let c = { label: item.text, value: item.value + '' } - return c - }) - }, + } + }, + backFactoryInfo(info) { + this.model.factoryIds = this.model.factoryId + this.nextFactoryOptions = info.map((item, index, arr) => { + let c = { label: item.text, value: item.value + '' } + return c + }) } } +} </script> <style scoped> diff --git a/src/views/cms/CuttingReceiveDetailList.vue b/src/views/cms/CuttingReceiveDetailList.vue index 1688387..5522cb7 100644 --- a/src/views/cms/CuttingReceiveDetailList.vue +++ b/src/views/cms/CuttingReceiveDetailList.vue @@ -1,48 +1,48 @@ <template> - <a-card :bordered="false"> - <!-- table鍖哄煙-begin --> - <div> - <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> - <i class="anticon anticon-info-circle ant-alert-icon"></i> 宸查�夋嫨 <a - style="font-weight: 600">{{ selectedRowKeys.length }}</a>椤� - <a style="margin-left: 24px" @click="onClearSelected">娓呯┖</a> - </div> + <a-card :bordered="false"> + <!-- table鍖哄煙-begin --> + <div> + <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> + <i class="anticon anticon-info-circle ant-alert-icon"></i> 宸查�夋嫨 <a + style="font-weight: 600">{{ selectedRowKeys.length }}</a>椤� + <a style="margin-left: 24px" @click="onClearSelected">娓呯┖</a> + </div> - <a-table - ref="table" - size="middle" - :scroll="{x:true}" - bordered - rowKey="id" - :columns="columns" - :dataSource="dataSource" - :pagination="ipagination" - :loading="loading" - class="j-table-force-nowrap" - @change="handleTableChange"> + <a-table + ref="table" + size="middle" + :scroll="{x:true}" + bordered + rowKey="id" + :columns="columns" + :dataSource="dataSource" + :pagination="ipagination" + :loading="loading" + class="j-table-force-nowrap" + @change="handleTableChange"> - <template slot="htmlSlot" slot-scope="text"> - <div v-html="text"></div> - </template> - <template slot="imgSlot" slot-scope="text,record"> - <span v-if="!text" style="font-size: 12px;font-style: italic;">鏃犲浘鐗�</span> - <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" - style="max-width:80px;font-size: 12px;font-style: italic;" /> - </template> - <template slot="fileSlot" slot-scope="text"> - <span v-if="!text" style="font-size: 12px;font-style: italic;">鏃犳枃浠�</span> - <a-button - v-else - :ghost="true" - type="primary" - icon="download" - size="small" - @click="downloadFile(text)"> - 涓嬭浇 - </a-button> - </template> + <template slot="htmlSlot" slot-scope="text"> + <div v-html="text"></div> + </template> + <template slot="imgSlot" slot-scope="text,record"> + <span v-if="!text" style="font-size: 12px;font-style: italic;">鏃犲浘鐗�</span> + <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" + style="max-width:80px;font-size: 12px;font-style: italic;" /> + </template> + <template slot="fileSlot" slot-scope="text"> + <span v-if="!text" style="font-size: 12px;font-style: italic;">鏃犳枃浠�</span> + <a-button + v-else + :ghost="true" + type="primary" + icon="download" + size="small" + @click="downloadFile(text)"> + 涓嬭浇 + </a-button> + </template> - <span slot="action" slot-scope="text, record"> + <span slot="action" slot-scope="text, record"> <a @click="handleEdit(record)">缂栬緫</a> <a-divider type="vertical" /> @@ -61,11 +61,11 @@ </a-dropdown> </span> - </a-table> - </div> + </a-table> + </div> - <cutting-receive-detail-modal ref="modalForm" @ok="modalFormOk"></cutting-receive-detail-modal> - </a-card> + <cutting-receive-detail-modal ref="modalForm" @ok="modalFormOk"></cutting-receive-detail-modal> + </a-card> </template> <script> @@ -75,93 +75,93 @@ import { JeecgListMixin } from '@/mixins/JeecgListMixin' export default { - name: 'CuttingReceiveDetailList', - mixins: [JeecgListMixin, mixinDevice], - components: {}, - data() { - return { - description: '棰嗙敤鍗曟槑缁嗙鐞嗛〉闈�', - // 琛ㄥご - columns: [ - { - title: '#', - dataIndex: '', - key: 'rowIndex', - width: 60, - align: 'center', - customRender: function(t, r, index) { - return parseInt(index) + 1 - } - }, - { - title: '鍒�鍏风紪鐮�', - align: 'center', - dataIndex: 'cuttingCode' - }, - { - title: '鍒�鍏峰悕绉�', - align: 'center', - dataIndex: 'cuttingName' - }, - { - title: '鍒�鍏锋潯鐮�', - align: 'center', - dataIndex: 'cuttingBarcode' - }, - { - title: '宸ヤ欢鏉愯川', - align: 'center', - dataIndex: 'workpieceMaterial' - }, - { - title: '浣跨敤瀵垮懡', - align: 'center', - dataIndex: 'usedLife' - } - ], - url: { - list: '/cms/cuttingReceive/detailList', - delete: '/cms/cuttingReceiveDetail/delete', - deleteBatch: '/cms/cuttingReceiveDetail/deleteBatch', - exportXlsUrl: '/cms/cuttingReceiveDetail/exportXls', - importExcelUrl: 'cms/cuttingReceiveDetail/importExcel' + name: 'CuttingReceiveDetailList', + mixins: [JeecgListMixin, mixinDevice], + components: {}, + data() { + return { + description: '棰嗙敤鍗曟槑缁嗙鐞嗛〉闈�', + // 琛ㄥご + columns: [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + customRender: function(t, r, index) { + return parseInt(index) + 1 + } + }, + { + title: '鍒�鍏风紪鐮�', + align: 'center', + dataIndex: 'cuttingCode' + }, + { + title: '鍒�鍏峰悕绉�', + align: 'center', + dataIndex: 'cuttingName' + }, + { + title: '鍒�鍏锋潯鐮�', + align: 'center', + dataIndex: 'cuttingBarcode' + }, + { + title: '宸ヤ欢鏉愯川', + align: 'center', + dataIndex: 'workpieceMaterial' + }, + { + title: '浣跨敤瀵垮懡', + align: 'center', + dataIndex: 'usedLife' + } + ], + url: { + list: '/cms/cuttingReceive/detailList', + delete: '/cms/cuttingReceiveDetail/delete', + deleteBatch: '/cms/cuttingReceiveDetail/deleteBatch', + exportXlsUrl: '/cms/cuttingReceiveDetail/exportXls', + importExcelUrl: 'cms/cuttingReceiveDetail/importExcel' - }, - dictOptions: {}, - superFieldList: [], - disableMixinCreated: true - } - }, - created() { - this.getSuperFieldList() - }, - computed: { - importExcelUrl: function() { - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}` - } - }, - methods: { - initDictConfig() { }, - getSuperFieldList() { - let fieldList = [] - fieldList.push({ type: 'string', value: 'orderId', text: '棰嗙敤鍗旾D' }) - fieldList.push({ type: 'string', value: 'cuttingId', text: '鍒�鍏稩D' }) - fieldList.push({ type: 'string', value: 'cuttingCode', text: '鍒�鍏风紪鐮�' }) // 娣诲姞杩欎竴琛� - fieldList.push({ type: 'string', value: 'cuttingName', text: '鍒�鍏峰悕绉�' }) // 娣诲姞杩欎竴琛� - fieldList.push({ type: 'string', value: 'cuttingBarcode', text: '鍒�鍏锋潯鐮�' }) // 娣诲姞杩欎竴琛� - fieldList.push({ type: 'string', value: 'inventoryId', text: '搴撳瓨ID' }) - fieldList.push({ type: 'string', value: 'workpieceMaterial', text: '宸ヤ欢鏉愯川' }) - fieldList.push({ type: 'int', value: 'usedLife', text: '浣跨敤瀵垮懡' }) - this.superFieldList = fieldList - } - }, - mounted() { - this.$bus.$on('getToolingStorageData', (data) => { - this.queryParam.orderId = data.id - this.searchQuery() - }) - } + dictOptions: {}, + superFieldList: [], + disableMixinCreated: true + } + }, + created() { + this.getSuperFieldList() + }, + computed: { + importExcelUrl: function() { + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}` + } + }, + methods: { + initDictConfig() { + }, + getSuperFieldList() { + let fieldList = [] + fieldList.push({ type: 'string', value: 'orderId', text: '棰嗙敤鍗旾D' }) + fieldList.push({ type: 'string', value: 'cuttingId', text: '鍒�鍏稩D' }) + fieldList.push({ type: 'string', value: 'cuttingCode', text: '鍒�鍏风紪鐮�' }) // 娣诲姞杩欎竴琛� + fieldList.push({ type: 'string', value: 'cuttingName', text: '鍒�鍏峰悕绉�' }) // 娣诲姞杩欎竴琛� + fieldList.push({ type: 'string', value: 'cuttingBarcode', text: '鍒�鍏锋潯鐮�' }) // 娣诲姞杩欎竴琛� + fieldList.push({ type: 'string', value: 'inventoryId', text: '搴撳瓨ID' }) + fieldList.push({ type: 'string', value: 'workpieceMaterial', text: '宸ヤ欢鏉愯川' }) + fieldList.push({ type: 'int', value: 'usedLife', text: '浣跨敤瀵垮懡' }) + this.superFieldList = fieldList + } + }, + mounted() { + this.$bus.$on('getToolingStorageData', (data) => { + this.queryParam.orderId = data.id + this.searchQuery() + }) + } } </script> <style scoped> diff --git a/src/views/cms/CuttingReceiveList.vue b/src/views/cms/CuttingReceiveList.vue index b99b965..b407a53 100644 --- a/src/views/cms/CuttingReceiveList.vue +++ b/src/views/cms/CuttingReceiveList.vue @@ -1,126 +1,126 @@ <template> - <a-card :bordered="false"> - <!-- 鏌ヨ鍖哄煙 --> - <div class="table-page-search-wrapper"> - <a-form layout="inline" @keyup.enter.native="searchQuery"> - <a-row :gutter="24"> - <a-col :md="6" :sm="8"> - <a-form-item label="棰嗙敤鍗曠姸鎬�"> - <j-search-select-tag - placeholder="璇烽�夋嫨棰嗙敤鍗曠姸鎬�" - v-model="queryParam.orderStatus" - dict="order_status" - /> - </a-form-item> - </a-col> - <a-col :md="6" :sm="8"> - <a-form-item label="棰嗙敤浜�"> - <j-search-select-tag - placeholder="璇烽�夋嫨棰嗙敤浜�" - v-model="queryParam.receiver" - dict="sys_user,realname,id,del_flag!=1" - /> - </a-form-item> - </a-col> - <a-col - :md="6" - :sm="8" - > + <a-card :bordered="false"> + <!-- 鏌ヨ鍖哄煙 --> + <div class="table-page-search-wrapper"> + <a-form layout="inline" @keyup.enter.native="searchQuery"> + <a-row :gutter="24"> + <a-col :md="6" :sm="8"> + <a-form-item label="棰嗙敤鍗曠姸鎬�"> + <j-search-select-tag + placeholder="璇烽�夋嫨棰嗙敤鍗曠姸鎬�" + v-model="queryParam.orderStatus" + dict="order_status" + /> + </a-form-item> + </a-col> + <a-col :md="6" :sm="8"> + <a-form-item label="棰嗙敤浜�"> + <j-search-select-tag + placeholder="璇烽�夋嫨棰嗙敤浜�" + v-model="queryParam.receiver" + dict="sys_user,realname,id,del_flag!=1" + /> + </a-form-item> + </a-col> + <a-col + :md="6" + :sm="8" + > <span - style="float: left;overflow: hidden;" - class="table-page-search-submitButtons" + style="float: left;overflow: hidden;" + class="table-page-search-submitButtons" > <a-button - type="primary" - @click="searchQuery" - icon="search" + type="primary" + @click="searchQuery" + icon="search" >鏌ヨ</a-button> <a-button - type="primary" - @click="searchReset" - icon="reload" - style="margin-left: 8px" + type="primary" + @click="searchReset" + icon="reload" + style="margin-left: 8px" >閲嶇疆</a-button> </span> - </a-col> - </a-row> - </a-form> - </div> - <!-- 鏌ヨ鍖哄煙-END --> + </a-col> + </a-row> + </a-form> + </div> + <!-- 鏌ヨ鍖哄煙-END --> - <!-- 鎿嶄綔鎸夐挳鍖哄煙 --> - <div class="table-operator"> - <a-button @click="handleAdd" type="primary" icon="plus">鏂板</a-button> - <!-- <a-button type="primary" icon="download" @click="handleExportXls('鍒�鍏烽鐢ㄥ崟')">瀵煎嚭</a-button> - <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> - <a-button type="primary" icon="import">瀵煎叆</a-button> - </a-upload> --> + <!-- 鎿嶄綔鎸夐挳鍖哄煙 --> + <div class="table-operator"> + <a-button @click="handleAdd" type="primary" icon="plus">鏂板</a-button> + <!-- <a-button type="primary" icon="download" @click="handleExportXls('鍒�鍏烽鐢ㄥ崟')">瀵煎嚭</a-button> + <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> + <a-button type="primary" icon="import">瀵煎叆</a-button> + </a-upload> --> + </div> + + <!-- table鍖哄煙-begin --> + <div> + <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> + <i class="anticon anticon-info-circle ant-alert-icon"></i> 宸查�夋嫨 <a + style="font-weight: 600">{{ selectedRowKeys.length }}</a>椤� + <a style="margin-left: 24px" @click="onClearSelected">娓呯┖</a> </div> - <!-- table鍖哄煙-begin --> - <div> - <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> - <i class="anticon anticon-info-circle ant-alert-icon"></i> 宸查�夋嫨 <a - style="font-weight: 600">{{ selectedRowKeys.length }}</a>椤� - <a style="margin-left: 24px" @click="onClearSelected">娓呯┖</a> - </div> + <a-table + ref="table" + size="middle" + :scroll="{x:true}" + bordered + rowKey="id" + :columns="columns" + :dataSource="dataSource" + :pagination="ipagination" + :loading="loading" + class="j-table-force-nowrap" + :customRow="customRow" + @change="handleTableChange"> - <a-table - ref="table" - size="middle" - :scroll="{x:true}" - bordered - rowKey="id" - :columns="columns" - :dataSource="dataSource" - :pagination="ipagination" - :loading="loading" - class="j-table-force-nowrap" - :customRow="customRow" - @change="handleTableChange"> + <template slot="htmlSlot" slot-scope="text"> + <div v-html="text"></div> + </template> + <template slot="imgSlot" slot-scope="text,record"> + <span v-if="!text" style="font-size: 12px;font-style: italic;">鏃犲浘鐗�</span> + <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" + style="max-width:80px;font-size: 12px;font-style: italic;" /> + </template> + <template slot="fileSlot" slot-scope="text"> + <span v-if="!text" style="font-size: 12px;font-style: italic;">鏃犳枃浠�</span> + <a-button + v-else + :ghost="true" + type="primary" + icon="download" + size="small" + @click="downloadFile(text)"> + 涓嬭浇 + </a-button> + </template> - <template slot="htmlSlot" slot-scope="text"> - <div v-html="text"></div> - </template> - <template slot="imgSlot" slot-scope="text,record"> - <span v-if="!text" style="font-size: 12px;font-style: italic;">鏃犲浘鐗�</span> - <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" - style="max-width:80px;font-size: 12px;font-style: italic;" /> - </template> - <template slot="fileSlot" slot-scope="text"> - <span v-if="!text" style="font-size: 12px;font-style: italic;">鏃犳枃浠�</span> - <a-button - v-else - :ghost="true" - type="primary" - icon="download" - size="small" - @click="downloadFile(text)"> - 涓嬭浇 - </a-button> - </template> + <!-- <span slot="action" slot-scope="text, record">--> + <!-- <a @click="handleEdit(record)">缂栬緫</a>--> - <!-- <span slot="action" slot-scope="text, record">--> - <!-- <a @click="handleEdit(record)">缂栬緫</a>--> + <!-- <a-divider type="vertical" />--> + <!-- <a-dropdown>--> + <!-- <a class="ant-dropdown-link">鏇村 <a-icon type="down" /></a>--> + <!-- <a-menu slot="overlay">--> + <!-- <a-menu-item>--> + <!-- <a @click="handleDetail(record)">璇︽儏</a>--> + <!-- </a-menu-item>--> + <!-- <a-menu-item>--> + <!-- <a-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record.id)">--> + <!-- <a>鍒犻櫎</a>--> + <!-- </a-popconfirm>--> + <!-- </a-menu-item>--> + <!-- </a-menu>--> + <!-- </a-dropdown>--> + <!-- </span>--> - <!-- <a-divider type="vertical" />--> - <!-- <a-dropdown>--> - <!-- <a class="ant-dropdown-link">鏇村 <a-icon type="down" /></a>--> - <!-- <a-menu slot="overlay">--> - <!-- <a-menu-item>--> - <!-- <a @click="handleDetail(record)">璇︽儏</a>--> - <!-- </a-menu-item>--> - <!-- <a-menu-item>--> - <!-- <a-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record.id)">--> - <!-- <a>鍒犻櫎</a>--> - <!-- </a-popconfirm>--> - <!-- </a-menu-item>--> - <!-- </a-menu>--> - <!-- </a-dropdown>--> - <!-- </span>--> - - <span slot="action" slot-scope="text, record"> - <a @click="handleEdit(record)" :disabled="record.orderStatus === '2'">缂栬緫</a> + <span slot="action" slot-scope="text, record"> + <a @click="handleEdit(record)" :disabled="record.orderStatus === '2' || record.orderStatus === '3'">缂栬緫</a> <a-divider type="vertical" /> <a-dropdown> <a class="ant-dropdown-link">鏇村 <a-icon type="down" /></a> @@ -128,15 +128,10 @@ <a-menu-item> <a @click="handleDetail(record)">璇︽儏</a> </a-menu-item> - <!-- <a-menu-item v-if="record.orderStatus != '2'">--> - <!-- <a-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record.id)">--> - <!-- <a>鍒犻櫎</a>--> - <!-- </a-popconfirm>--> - <!-- </a-menu-item>--> - <a-menu-item v-if="record.orderStatus !== '2'"> + <a-menu-item v-if="record.orderStatus === '1'"> <a @click="handleSubmit(record.id)" :disabled="record.orderStatus === '3'">鎻愪氦</a> </a-menu-item> - <a-menu-item v-if="record.orderStatus !== '2'"> + <a-menu-item v-if="record.orderStatus === '1'"> <a-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record.id)"> <a>鍒犻櫎</a> </a-popconfirm> @@ -148,15 +143,15 @@ </a-dropdown> </span> - </a-table> - </div> - <a-tabs defaultActiveKey="1"> - <a-tab-pane tab="鍒�鍏烽鐢ㄦ槑缁�" key="1"> - <cutting-receive-detail-list ref="cuttingReceiveDetailList"></cutting-receive-detail-list> - </a-tab-pane> - </a-tabs> - <cutting-receive-modal ref="modalForm" @ok="modalFormOk"></cutting-receive-modal> - </a-card> + </a-table> + </div> + <a-tabs defaultActiveKey="1"> + <a-tab-pane tab="鍒�鍏烽鐢ㄦ槑缁�" key="1"> + <cutting-receive-detail-list ref="cuttingReceiveDetailList"></cutting-receive-detail-list> + </a-tab-pane> + </a-tabs> + <cutting-receive-modal ref="modalForm" @ok="modalFormOk"></cutting-receive-modal> + </a-card> </template> <script> @@ -169,232 +164,288 @@ import { httpAction } from '@api/manage' export default { - name: 'CuttingReceiveList', - mixins: [JeecgListMixin, mixinDevice], - components: { - CuttingReceiveModal, - CuttingReceiveDetailList - }, - data() { + name: 'CuttingReceiveList', + mixins: [JeecgListMixin, mixinDevice], + components: { + CuttingReceiveModal, + CuttingReceiveDetailList + }, + data() { + return { + description: '鍒�鍏烽鐢ㄥ崟绠$悊椤甸潰', + // 琛ㄥご + columns: [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + customRender: function(t, r, index) { + return parseInt(index) + 1 + } + }, + { + title: '棰嗙敤浜�', + align: 'center', + dataIndex: 'receiver_dictText' + }, + { + title: '棰嗙敤鏃堕棿', + align: 'center', + dataIndex: 'receiveTime', + customRender: function(text) { + return !text ? '' : (text.length > 10 ? text.substr(0, 10) : text) + } + }, + { + title: '棰嗙敤璇存槑', + align: 'center', + dataIndex: 'receiveComment' + }, + { + title: '纭浜�', + align: 'center', + dataIndex: 'confirmer_dictText' + }, + { + title: '纭鏃堕棿', + align: 'center', + dataIndex: 'confirmTime', + customRender: function(text) { + return !text ? '' : (text.length > 10 ? text.substr(0, 10) : text) + } + }, + { + title: '纭鎰忚', + align: 'center', + dataIndex: 'confirmComment' + }, + { + title: '鏄惁浼氬綊杩�', + align: 'center', + dataIndex: 'returnFlag' + }, + { + title: '褰掕繕鏃堕棿', + align: 'center', + dataIndex: 'returnTime', + customRender: function(text) { + return !text ? '' : (text.length > 10 ? text.substr(0, 10) : text) + } + }, + { + title: '褰掕繕璇存槑', + align: 'center', + dataIndex: 'returnComment' + }, + { + title: '褰掕繕纭浜�', + align: 'center', + dataIndex: 'returnConfirmer_dictText' + }, + { + title: '褰掕繕纭鏃堕棿', + align: 'center', + dataIndex: 'returnConfirmTime', + customRender: function(text) { + return !text ? '' : (text.length > 10 ? text.substr(0, 10) : text) + } + }, + { + title: '褰掕繕纭鎰忚', + align: 'center', + dataIndex: 'returnConfirmComment' + }, + { + title: '棰嗙敤鍗曠姸鎬�', + align: 'center', + dataIndex: 'orderStatus_dictText' + }, + { + title: '鎿嶄綔', + dataIndex: 'action', + align: 'center', + fixed: 'right', + width: 147, + scopedSlots: { customRender: 'action' } + } + ], + url: { + list: '/cms/cuttingReceive/list', + delete: '/cms/cuttingReceive/delete', + deleteBatch: '/cms/cuttingReceive/deleteBatch', + exportXlsUrl: '/cms/cuttingReceive/exportXls', + importExcelUrl: 'cms/cuttingReceive/importExcel', + submit: '/cms/cuttingReceive/submit', + returnBack: '/cms/cuttingReceive/handleBack' + }, + dictOptions: {}, + superFieldList: [] + } + }, + created() { + this.getSuperFieldList() + }, + computed: { + importExcelUrl: function() { + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}` + } + }, + methods: { + searchReset() { + this.queryParam = {} + this.$refs.cuttingReceiveDetailList.dataSource = [] + this.loadData(1) + }, + handleEdit: function(record) { + this.$refs.modalForm.edit(record) + this.$refs.modalForm.title = '缂栬緫' + this.$refs.modalForm.disableSubmit = false + }, + handleAdd() { + this.$refs.modalForm.add() + this.$refs.modalForm.title = '鏂板' + this.$refs.modalForm.disableSubmit = false + }, + handleDetail: function(record) { + this.$refs.modalForm.edit(record) + this.$refs.modalForm.title = '璇︽儏' + this.$refs.modalForm.disableSubmit = true + }, + customRow(record) { return { - description: '鍒�鍏烽鐢ㄥ崟绠$悊椤甸潰', - // 琛ㄥご - columns: [ - { - title: '#', - dataIndex: '', - key: 'rowIndex', - width: 60, - align: 'center', - customRender: function(t, r, index) { - return parseInt(index) + 1 - } - }, - { - title: '棰嗙敤浜�', - align: 'center', - dataIndex: 'receiver_dictText' - }, - { - title: '棰嗙敤鏃堕棿', - align: 'center', - dataIndex: 'receiveTime', - customRender: function(text) { - return !text ? '' : (text.length > 10 ? text.substr(0, 10) : text) - } - }, - { - title: '棰嗙敤璇存槑', - align: 'center', - dataIndex: 'receiveComment' - }, - { - title: '纭浜�', - align: 'center', - dataIndex: 'confirmer_dictText' - }, - { - title: '纭鏃堕棿', - align: 'center', - dataIndex: 'confirmTime', - customRender: function(text) { - return !text ? '' : (text.length > 10 ? text.substr(0, 10) : text) - } - }, - { - title: '纭鎰忚', - align: 'center', - dataIndex: 'confirmComment' - }, - { - title: '鏄惁浼氬綊杩�', - align: 'center', - dataIndex: 'returnFlag' - }, - { - title: '褰掕繕鏃堕棿', - align: 'center', - dataIndex: 'returnTime', - customRender: function(text) { - return !text ? '' : (text.length > 10 ? text.substr(0, 10) : text) - } - }, - { - title: '褰掕繕璇存槑', - align: 'center', - dataIndex: 'returnComment' - }, - { - title: '褰掕繕纭浜�', - align: 'center', - dataIndex: 'returnConfirmer_dictText' - }, - { - title: '褰掕繕纭鏃堕棿', - align: 'center', - dataIndex: 'returnConfirmTime', - customRender: function(text) { - return !text ? '' : (text.length > 10 ? text.substr(0, 10) : text) - } - }, - { - title: '褰掕繕纭鎰忚', - align: 'center', - dataIndex: 'returnConfirmComment' - }, - { - title: '棰嗙敤鍗曠姸鎬�', - align: 'center', - dataIndex: 'orderStatus_dictText' - }, - { - title: '鎿嶄綔', - dataIndex: 'action', - align: 'center', - fixed: 'right', - width: 147, - scopedSlots: { customRender: 'action' } + on: { + click: (e) => { + //灏嗗綋鍓嶉�変腑鐨勮褰曚紶鍒板瓙椤甸潰 + this.$bus.$emit('getToolingStorageData', record) + //鐐瑰嚮褰撳墠琛屽彉鑹� + let oldList = document.querySelectorAll('.checked-td-of-add-table') + if (oldList) { + for (let j = 0; j < oldList.length; j++) { + oldList[j].classList.remove('checked-td-of-add-table') + } } - ], - url: { - list: '/cms/cuttingReceive/list', - delete: '/cms/cuttingReceive/delete', - deleteBatch: '/cms/cuttingReceive/deleteBatch', - exportXlsUrl: '/cms/cuttingReceive/exportXls', - importExcelUrl: 'cms/cuttingReceive/importExcel', - submit: '/cms/cuttingReceive/submit' - }, - dictOptions: {}, - superFieldList: [] - } - }, - created() { - this.getSuperFieldList() - }, - computed: { - importExcelUrl: function() { - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}` - } - }, - methods: { - searchReset() { - this.queryParam = {} - this.$refs.cuttingReceiveDetailList.dataSource = [] - this.loadData(1) - }, - handleEdit: function(record) { - this.$refs.modalForm.edit(record) - this.$refs.modalForm.title = '缂栬緫' - this.$refs.modalForm.disableSubmit = false - }, - handleAdd() { - this.$refs.modalForm.add() - this.$refs.modalForm.title = '鏂板' - this.$refs.modalForm.disableSubmit = false - }, - handleDetail: function(record) { - this.$refs.modalForm.edit(record) - this.$refs.modalForm.title = '璇︽儏' - this.$refs.modalForm.disableSubmit = true - }, - customRow(record) { - return { - on: { - click: (e) => { - //灏嗗綋鍓嶉�変腑鐨勮褰曚紶鍒板瓙椤甸潰 - this.$bus.$emit('getToolingStorageData', record) - //鐐瑰嚮褰撳墠琛屽彉鑹� - let oldList = document.querySelectorAll('.checked-td-of-add-table') - if (oldList) { - for (let j = 0; j < oldList.length; j++) { - oldList[j].classList.remove('checked-td-of-add-table') - } - } - let children = e.target.parentNode.children - for (let i = 0; i < children.length; i++) { - children[i].classList.add('checked-td-of-add-table') - } - } + let children = e.target.parentNode.children + for (let i = 0; i < children.length; i++) { + children[i].classList.add('checked-td-of-add-table') } - } - }, + } + } + } + }, - /** - * 鍗曟嵁鎻愪氦 - */ - handleSubmit: function(id) { - if (!this.url.submit) { - this.$message.error('璇疯缃畊rl.submit灞炴��!') - return - } + /** + * 鍗曟嵁鎻愪氦 + */ + handleSubmit: function(id) { + if (!this.url.submit) { + this.$message.error('璇疯缃畊rl.submit灞炴��!') + return + } - let targetId = id // 浠庡弬鏁拌幏鍙朓D - // 濡傛灉娌℃湁閫氳繃鍙傛暟浼犻�扞D锛屽垯妫�鏌ラ�変腑鐨勮褰� - if (!targetId) { - if (this.selectedRowKeys.length != 1) { - this.$message.warning('璇烽�夋嫨涓�鏉¤褰曪紒') - return + let targetId = id // 浠庡弬鏁拌幏鍙朓D + // 濡傛灉娌℃湁閫氳繃鍙傛暟浼犻�扞D锛屽垯妫�鏌ラ�変腑鐨勮褰� + if (!targetId) { + if (this.selectedRowKeys.length != 1) { + this.$message.warning('璇烽�夋嫨涓�鏉¤褰曪紒') + return + } else { + targetId = this.selectedRowKeys[0] + } + } + + // 灏嗗弬鏁颁綔涓烘煡璇㈠弬鏁伴檮鍔犲埌URL涓� + let httpurl = this.url.submit + '?orderId=' + encodeURIComponent(targetId) + let method = 'get' + var params = {} // 娓呯┖params锛屽洜涓哄弬鏁板凡缁忓湪URL涓紶閫� + + const that = this + + this.$confirm({ + title: '纭鎻愪氦锛�', + // content: '姝e湪鎻愪氦鏁版嵁锛岃鑰愬績绛夊緟...', + okText: '纭', + cancelText: '鍙栨秷', + onOk() { + // 鏄剧ず鍔犺浇鎻愮ず + const hide = that.$message.loading('姝e湪鎻愪氦鏁版嵁锛岃鑰愬績绛夊緟...', 0) + + // 鍙戦�佽姹� + return httpAction(httpurl, params, method).then((res) => { + hide() // 闅愯棌鍔犺浇鎻愮ず + if (res.success) { + that.$message.success(res.message) + that.loadData() } else { - targetId = this.selectedRowKeys[0] + that.$message.warning(res.message) } - } + }).catch(error => { + hide() // 闅愯棌鍔犺浇鎻愮ず + that.$message.error('鎻愪氦澶辫触: ' + error.message) + }).finally(() => { + that.loading = false + }) + } + }) + }, - // 灏嗗弬鏁颁綔涓烘煡璇㈠弬鏁伴檮鍔犲埌URL涓� - let httpurl = this.url.submit + '?orderId=' + encodeURIComponent(targetId) - let method = 'get' - var params = {} // 娓呯┖params锛屽洜涓哄弬鏁板凡缁忓湪URL涓紶閫� + /** + * 鍗曟嵁棰嗙敤 + */ - const that = this + handleBack: function(id) { + if (!this.url.returnBack) { + this.$message.error('璇疯缃畊rl.return灞炴��!') + return + } - this.$confirm({ - title: '纭鎻愪氦锛�', - // content: '姝e湪鎻愪氦鏁版嵁锛岃鑰愬績绛夊緟...', - okText: '纭', - cancelText: '鍙栨秷', - onOk() { - // 鏄剧ず鍔犺浇鎻愮ず - const hide = that.$message.loading('姝e湪鎻愪氦鏁版嵁锛岃鑰愬績绛夊緟...', 0) + let targetId = id // 浠庡弬鏁拌幏鍙朓D + // 濡傛灉娌℃湁閫氳繃鍙傛暟浼犻�扞D锛屽垯妫�鏌ラ�変腑鐨勮褰� + if (!targetId) { + if (this.selectedRowKeys.length != 1) { + this.$message.warning('璇烽�夋嫨涓�鏉¤褰曪紒') + return + } else { + targetId = this.selectedRowKeys[0] + } + } - // 鍙戦�佽姹� - return httpAction(httpurl, params, method).then((res) => { - hide() // 闅愯棌鍔犺浇鎻愮ず - if (res.success) { - that.$message.success(res.message) - that.loadData() - } else { - that.$message.warning(res.message) - } - }).catch(error => { - hide() // 闅愯棌鍔犺浇鎻愮ず - that.$message.error('鎻愪氦澶辫触: ' + error.message) - }).finally(() => { - that.loading = false - }) + // 灏嗗弬鏁颁綔涓烘煡璇㈠弬鏁伴檮鍔犲埌URL涓� + let httpurl = this.url.returnBack + '?orderId=' + encodeURIComponent(targetId) + let method = 'get' + var params = {} // 娓呯┖params锛屽洜涓哄弬鏁板凡缁忓湪URL涓紶閫� + + const that = this + + this.$confirm({ + title: '纭鎻愪氦锛�', + // content: '姝e湪鎻愪氦鏁版嵁锛岃鑰愬績绛夊緟...', + okText: '纭', + cancelText: '鍙栨秷', + onOk() { + // 鏄剧ず鍔犺浇鎻愮ず + const hide = that.$message.loading('姝e湪鎻愪氦鏁版嵁锛岃鑰愬績绛夊緟...', 0) + + // 鍙戦�佽姹� + return httpAction(httpurl, params, method).then((res) => { + hide() // 闅愯棌鍔犺浇鎻愮ず + if (res.success) { + that.$message.success(res.message) + that.loadData() + } else { + that.$message.warning(res.message) } - }) - }, - //TODO锛氬垁鍏峰綊杩� handleBack - } + }).catch(error => { + hide() // 闅愯棌鍔犺浇鎻愮ず + that.$message.error('鎻愪氦澶辫触: ' + error.message) + }).finally(() => { + that.loading = false + }) + } + }) + } + } } </script> <style scoped> diff --git a/src/views/cms/CuttingScrapDetailList.vue b/src/views/cms/CuttingScrapDetailList.vue index 026b4d8..a84ce50 100644 --- a/src/views/cms/CuttingScrapDetailList.vue +++ b/src/views/cms/CuttingScrapDetailList.vue @@ -11,7 +11,7 @@ <!-- 鎿嶄綔鎸夐挳鍖哄煙 --> <div class="table-operator"> - <a-button @click="handleAdd" type="primary" icon="plus">鏂板</a-button> +<!-- <a-button @click="handleAdd" type="primary" icon="plus">鏂板</a-button>--> <!-- <a-button type="primary" icon="download" @click="handleExportXls('鍒�鍏锋姤搴熸槑缁�')">瀵煎嚭</a-button> <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> <a-button type="primary" icon="import">瀵煎叆</a-button> @@ -76,7 +76,6 @@ </a-menu> </a-dropdown> </span> - </a-table> </div> @@ -137,7 +136,7 @@ deleteBatch: "/cms/cuttingScrapDetail/deleteBatch", exportXlsUrl: "/cms/cuttingScrapDetail/exportXls", importExcelUrl: "cms/cuttingScrapDetail/importExcel", - + }, dictOptions:{}, superFieldList:[], diff --git a/src/views/cms/CuttingScrapList.vue b/src/views/cms/CuttingScrapList.vue index cb27f29..0747b44 100644 --- a/src/views/cms/CuttingScrapList.vue +++ b/src/views/cms/CuttingScrapList.vue @@ -7,22 +7,22 @@ <a-col :md="6" :sm="8"> <a-form-item label="鎶ュ簾鍗曠姸鎬�"> <j-search-select-tag - placeholder="璇烽�夋嫨鎶ュ簾鍗曠姸鎬�" - v-model="queryParam.orderStatus" - dict="order_status" - /> + placeholder="璇烽�夋嫨鎶ュ簾鍗曠姸鎬�" + v-model="queryParam.orderStatus" + dict="order_status" + /> </a-form-item> </a-col> <a-col :md="6" :sm="8"> - <a-form-item label="鐢宠浜�"> - <j-search-select-tag - placeholder="璇烽�夋嫨鐢宠浜�" - v-model="queryParam.applicant" - dict="sys_user,realname,id,del_flag!=1" - /> - </a-form-item> - </a-col> - <a-col + <a-form-item label="鐢宠浜�"> + <j-search-select-tag + placeholder="璇烽�夋嫨鐢宠浜�" + v-model="queryParam.applicant" + dict="sys_user,realname,id,del_flag!=1" + /> + </a-form-item> + </a-col> + <a-col :md="6" :sm="8" > @@ -60,7 +60,8 @@ <!-- table鍖哄煙-begin --> <div> <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> - <i class="anticon anticon-info-circle ant-alert-icon"></i> 宸查�夋嫨 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>椤� + <i class="anticon anticon-info-circle ant-alert-icon"></i> 宸查�夋嫨 <a + style="font-weight: 600">{{ selectedRowKeys.length }}</a>椤� <a style="margin-left: 24px" @click="onClearSelected">娓呯┖</a> </div> @@ -83,7 +84,8 @@ </template> <template slot="imgSlot" slot-scope="text,record"> <span v-if="!text" style="font-size: 12px;font-style: italic;">鏃犲浘鐗�</span> - <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/> + <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" + style="max-width:80px;font-size: 12px;font-style: italic;" /> </template> <template slot="fileSlot" slot-scope="text"> <span v-if="!text" style="font-size: 12px;font-style: italic;">鏃犳枃浠�</span> @@ -119,7 +121,7 @@ </a-table> </div> -<a-tabs defaultActiveKey="1"> + <a-tabs defaultActiveKey="1"> <a-tab-pane tab="鍒�鍏锋姤搴熸槑缁�" key="1"> <cutting-scrap-detail-list ref="cuttingScrapDetailList"></cutting-scrap-detail-list> </a-tab-pane> @@ -130,126 +132,126 @@ <script> - import '@/assets/less/TableExpand.less' - import { mixinDevice } from '@/utils/mixin' - import { JeecgListMixin } from '@/mixins/JeecgListMixin' - import CuttingScrapModal from './modules/CuttingScrapModal' - import CuttingScrapDetailList from './CuttingScrapDetailList' +import '@/assets/less/TableExpand.less' +import { mixinDevice } from '@/utils/mixin' +import { JeecgListMixin } from '@/mixins/JeecgListMixin' +import CuttingScrapModal from './modules/CuttingScrapModal' +import CuttingScrapDetailList from './CuttingScrapDetailList' - export default { - name: 'CuttingScrapList', - mixins:[JeecgListMixin, mixinDevice], - components: { - CuttingScrapModal, - CuttingScrapDetailList - }, - data () { - return { - description: '鍒�鍏锋姤搴熺鐞嗛〉闈�', - // 琛ㄥご - columns: [ - { - title: '#', - dataIndex: '', - key:'rowIndex', - width:60, - align:"center", - customRender:function (t,r,index) { - return parseInt(index)+1; - } - }, - { - title:'鐢宠浜�', - align:"center", - dataIndex: 'applicant_dictText' - }, - { - title:'鐢宠鏃堕棿', - align:"center", - dataIndex: 'applicationTime', - customRender:function (text) { - return !text?"":(text.length>10?text.substr(0,10):text) - } - }, - { - title:'鐢宠璇存槑', - align:"center", - dataIndex: 'applicationComment' - }, - { - title:'纭浜�', - align:"center", - dataIndex: 'confirmer_dictText' - }, - { - title:'纭鏃堕棿', - align:"center", - dataIndex: 'confirmTime', - customRender:function (text) { - return !text?"":(text.length>10?text.substr(0,10):text) - } - }, - { - title:'纭鎰忚', - align:"center", - dataIndex: 'confirmComment' - }, - { - title:'鎶ュ簾鍗曠姸鎬�', - align:"center", - dataIndex: 'orderStatus' - }, - { - title: '鎿嶄綔', - dataIndex: 'action', - align:"center", - fixed:"right", - width:147, - scopedSlots: { customRender: 'action' } +export default { + name: 'CuttingScrapList', + mixins: [JeecgListMixin, mixinDevice], + components: { + CuttingScrapModal, + CuttingScrapDetailList + }, + data() { + return { + description: '鍒�鍏锋姤搴熺鐞嗛〉闈�', + // 琛ㄥご + columns: [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + customRender: function(t, r, index) { + return parseInt(index) + 1 } - ], - url: { - list: "/cms/cuttingScrap/list", - delete: "/cms/cuttingScrap/delete", - deleteBatch: "/cms/cuttingScrap/deleteBatch", - exportXlsUrl: "/cms/cuttingScrap/exportXls", - importExcelUrl: "cms/cuttingScrap/importExcel", - }, - dictOptions:{}, - superFieldList:[], - } - }, - created() { - this.getSuperFieldList(); - }, - computed: { - importExcelUrl: function(){ - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; + { + title: '鐢宠浜�', + align: 'center', + dataIndex: 'applicant_dictText' + }, + { + title: '鐢宠鏃堕棿', + align: 'center', + dataIndex: 'applicationTime', + customRender: function(text) { + return !text ? '' : (text.length > 10 ? text.substr(0, 10) : text) + } + }, + { + title: '鐢宠璇存槑', + align: 'center', + dataIndex: 'applicationComment' + }, + { + title: '纭浜�', + align: 'center', + dataIndex: 'confirmer_dictText' + }, + { + title: '纭鏃堕棿', + align: 'center', + dataIndex: 'confirmTime', + customRender: function(text) { + return !text ? '' : (text.length > 10 ? text.substr(0, 10) : text) + } + }, + { + title: '纭鎰忚', + align: 'center', + dataIndex: 'confirmComment' + }, + { + title: '鎶ュ簾鍗曠姸鎬�', + align: 'center', + dataIndex: 'orderStatus' + }, + { + title: '鎿嶄綔', + dataIndex: 'action', + align: 'center', + fixed: 'right', + width: 147, + scopedSlots: { customRender: 'action' } + } + ], + url: { + list: '/cms/cuttingScrap/list', + delete: '/cms/cuttingScrap/delete', + deleteBatch: '/cms/cuttingScrap/deleteBatch', + exportXlsUrl: '/cms/cuttingScrap/exportXls', + importExcelUrl: 'cms/cuttingScrap/importExcel' + }, - }, - methods: { - searchReset() { + dictOptions: {}, + superFieldList: [] + } + }, + created() { + this.getSuperFieldList() + }, + computed: { + importExcelUrl: function() { + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}` + } + }, + methods: { + searchReset() { this.queryParam = {} this.$refs.cuttingScrapDetailList.dataSource = [] - this.loadData(1); + this.loadData(1) }, - handleEdit: function (record) { - this.$refs.modalForm.edit(record) - this.$refs.modalForm.title = '缂栬緫' - this.$refs.modalForm.disableSubmit = false + handleEdit: function(record) { + this.$refs.modalForm.edit(record) + this.$refs.modalForm.title = '缂栬緫' + this.$refs.modalForm.disableSubmit = false }, handleAdd() { this.$refs.modalForm.add() this.$refs.modalForm.title = '鏂板' this.$refs.modalForm.disableSubmit = false }, - handleDetail:function(record){ - this.$refs.modalForm.edit(record); - this.$refs.modalForm.title="璇︽儏"; - this.$refs.modalForm.disableSubmit = true; + handleDetail: function(record) { + this.$refs.modalForm.edit(record) + this.$refs.modalForm.title = '璇︽儏' + this.$refs.modalForm.disableSubmit = true }, - customRow(record) { + customRow(record) { return { on: { click: (e) => { @@ -266,13 +268,13 @@ for (let i = 0; i < children.length; i++) { children[i].classList.add('checked-td-of-add-table') } - }, - }, + } + } } - }, } } +} </script> <style scoped> - @import '~@assets/less/common.less'; +@import '~@assets/less/common.less'; </style> \ No newline at end of file diff --git a/src/views/cms/modules/CuttingReceiveModal.vue b/src/views/cms/modules/CuttingReceiveModal.vue index 804ed5f..577ef59 100644 --- a/src/views/cms/modules/CuttingReceiveModal.vue +++ b/src/views/cms/modules/CuttingReceiveModal.vue @@ -1,165 +1,165 @@ <template> - <a-modal :title="title" :visible="visible" :fullScreen="true" :width="1200" @ok="handleOk" @cancel="handleCancel"> - <a-spin :spinning="confirmLoading"> - <a-form :form="form"> - <a-row style="width: 100%"> - <a-col :span="24 / 2"> - <a-form-item label="棰嗙敤浜�" :labelCol="labelCol" :wrapperCol="wrapperCol"> - <j-search-select-tag - :disabled="disableSubmit" - placeholder="璇烽�夋嫨棰嗙敤浜�" - v-decorator="['receiver', { rules: [{ required: true, message: '璇烽�夋嫨棰嗙敤浜�' }] }]" - dict="sys_user,realname,id,del_flag=0" - /> - </a-form-item> - </a-col> - <a-col :span="24 / 2"> - <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="棰嗙敤鏃ユ湡"> - <a-date-picker - :disabled="disableSubmit" - style="width: 100%" - v-decorator="['receiveTime', validatorRules.receiveTime]" - /> - </a-form-item> - </a-col> - </a-row> - <a-row style="width: 100%"> - <a-col :span="24"> - <a-form-item label="棰嗙敤璇存槑" :labelCol="{span:3}" :wrapperCol="{span:21}"> - <a-textarea :disabled="disableSubmit" placeholder="璇疯緭鍏ラ鐢ㄨ鏄�" - v-decorator="['receiveComment', validatorRules.receiveComment]" /> - </a-form-item> - </a-col> - </a-row> - <a-row style="width: 100%"> - <a-col :span="24 / 2"> - <a-form-item label="纭浜�" :labelCol="labelCol" :wrapperCol="wrapperCol"> - <j-search-select-tag - :disabled="disableSubmit" - placeholder="璇烽�夋嫨纭浜�" - v-decorator="['confirmer', { rules: [{ required: false, message: '璇烽�夋嫨纭浜�' }] }]" - dict="sys_user,realname,id,del_flag=0" - /> - </a-form-item> - </a-col> - <a-col :span="24 / 2"> - <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="纭鏃ユ湡"> - <a-date-picker - :disabled="disableSubmit" - style="width: 100%" - v-decorator="['confirmTime', validatorRules.confirmTime]" - /> - </a-form-item> - </a-col> - </a-row> - <a-row style="width: 100%"> - <a-col :span="24"> - <a-form-item label="纭鎰忚" :labelCol="{span:3}" :wrapperCol="{span:21}"> - <a-textarea :disabled="disableSubmit" placeholder="璇疯緭鍏ョ‘璁ゆ剰瑙�" - v-decorator="['confirmComment', validatorRules.confirmComment]" /> - </a-form-item> - </a-col> - </a-row> - <a-row style="width: 100%"> - <a-col :span="24 / 2"> - <a-form-item label="鏄惁浼氬綊杩�" :labelCol="labelCol" :wrapperCol="wrapperCol"> - <a-input :disabled="disableSubmit" placeholder="璇疯緭鍏ユ槸鍚︿細褰掕繕" - v-decorator="['returnFlag', validatorRules.returnFlag]"></a-input> - </a-form-item> - </a-col> - <a-col :span="24 / 2"> - <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="褰掕繕鏃ユ湡"> - <a-date-picker - :disabled="disableSubmit" - style="width: 100%" - v-decorator="['returnTime', validatorRules.returnTime]" - /> - </a-form-item> - </a-col> - </a-row> - <a-row style="width: 100%"> - <a-col :span="24"> - <a-form-item label="褰掕繕璇存槑" :labelCol="{span:3}" :wrapperCol="{span:21}"> - <a-textarea :disabled="disableSubmit" placeholder="璇疯緭鍏ュ綊杩樿鏄�" - v-decorator="['returnComment', validatorRules.returnComment]" /> - </a-form-item> - </a-col> - </a-row> - <a-row style="width: 100%"> - <a-col :span="24 / 2"> - <a-form-item label="褰掕繕纭浜�" :labelCol="labelCol" :wrapperCol="wrapperCol"> - <j-search-select-tag - :disabled="disableSubmit" - placeholder="璇烽�夋嫨褰掕繕纭浜�" - v-decorator="['returnConfirmer', { rules: [{ required: false, message: '璇烽�夋嫨褰掕繕纭浜�' }] }]" - dict="sys_user,realname,id,del_flag=0" - /> - </a-form-item> - </a-col> - <a-col :span="24 / 2"> - <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="褰掕繕纭鏃ユ湡"> - <a-date-picker - :disabled="disableSubmit" - style="width: 100%" - v-decorator="['returnConfirmTime', validatorRules.returnConfirmTime]" - /> - </a-form-item> - </a-col> - </a-row> - <a-row style="width: 100%"> - <a-col :span="24"> - <a-form-item label="褰掕繕纭鎰忚" :labelCol="{span:3}" :wrapperCol="{span:21}"> - <a-textarea :disabled="disableSubmit" placeholder="璇疯緭鍏ュ綊杩樼‘璁ゆ剰瑙�" - v-decorator="['returnConfirmComment', validatorRules.returnConfirmComment]" /> - </a-form-item> - </a-col> - </a-row> - </a-form> - </a-spin> - <a-button type="primary" :style="{ marginBottom: '8px' }" @click="selectTooling()">閫夋嫨搴撳瓨鍒�鍏�</a-button> - <a-table - ref="table" - bordered - size="middle" - rowKey="id" - :columns="columns" - :dataSource="dataSource" - :pagination="ipagination" - :loading="loading" - > - <template v-for="col in columns" :slot="col.dataIndex" slot-scope="text, record, index"> - <div :key="col.dataIndex"> - <a-input - :value="text" - :disabled="disableSubmit" - v-if="col.dataIndex === 'workpieceMaterial'" - @change="(e)=>handleChange(e.target.value, record.key, col, index)" - /> - <a-input-number - v-if="col.dataIndex === 'usedLife'" - :value="text" - @change="(e) => handleChange(e, record.key, col, index)" - :min="1" - /> - </div> - </template> - <span slot="action" slot-scope="text, record, index"> + <a-modal :title="title" :visible="visible" :fullScreen="true" :width="1200" @ok="handleOk" @cancel="handleCancel"> + <a-spin :spinning="confirmLoading"> + <a-form :form="form"> + <a-row style="width: 100%"> + <a-col :span="24 / 2"> + <a-form-item label="棰嗙敤浜�" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <j-search-select-tag + :disabled="disableSubmit" + placeholder="璇烽�夋嫨棰嗙敤浜�" + v-decorator="['receiver', { rules: [{ required: true, message: '璇烽�夋嫨棰嗙敤浜�' }] }]" + dict="sys_user,realname,id,del_flag=0" + /> + </a-form-item> + </a-col> + <a-col :span="24 / 2"> + <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="棰嗙敤鏃ユ湡"> + <a-date-picker + :disabled="disableSubmit" + style="width: 100%" + v-decorator="['receiveTime', validatorRules.receiveTime]" + /> + </a-form-item> + </a-col> + </a-row> + <a-row style="width: 100%"> + <a-col :span="24"> + <a-form-item label="棰嗙敤璇存槑" :labelCol="{span:3}" :wrapperCol="{span:21}"> + <a-textarea :disabled="disableSubmit" placeholder="璇疯緭鍏ラ鐢ㄨ鏄�" + v-decorator="['receiveComment', validatorRules.receiveComment]" /> + </a-form-item> + </a-col> + </a-row> + <a-row style="width: 100%"> + <a-col :span="24 / 2"> + <a-form-item label="纭浜�" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <j-search-select-tag + :disabled="disableSubmit" + placeholder="璇烽�夋嫨纭浜�" + v-decorator="['confirmer', { rules: [{ required: false, message: '璇烽�夋嫨纭浜�' }] }]" + dict="sys_user,realname,id,del_flag=0" + /> + </a-form-item> + </a-col> + <a-col :span="24 / 2"> + <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="纭鏃ユ湡"> + <a-date-picker + :disabled="disableSubmit" + style="width: 100%" + v-decorator="['confirmTime', validatorRules.confirmTime]" + /> + </a-form-item> + </a-col> + </a-row> + <a-row style="width: 100%"> + <a-col :span="24"> + <a-form-item label="纭鎰忚" :labelCol="{span:3}" :wrapperCol="{span:21}"> + <a-textarea :disabled="disableSubmit" placeholder="璇疯緭鍏ョ‘璁ゆ剰瑙�" + v-decorator="['confirmComment', validatorRules.confirmComment]" /> + </a-form-item> + </a-col> + </a-row> + <a-row style="width: 100%"> + <a-col :span="24 / 2"> + <a-form-item label="鏄惁浼氬綊杩�" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input :disabled="disableSubmit" placeholder="璇疯緭鍏ユ槸鍚︿細褰掕繕" + v-decorator="['returnFlag', validatorRules.returnFlag]"></a-input> + </a-form-item> + </a-col> + <a-col :span="24 / 2"> + <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="褰掕繕鏃ユ湡"> + <a-date-picker + :disabled="disableSubmit" + style="width: 100%" + v-decorator="['returnTime', validatorRules.returnTime]" + /> + </a-form-item> + </a-col> + </a-row> + <a-row style="width: 100%"> + <a-col :span="24"> + <a-form-item label="褰掕繕璇存槑" :labelCol="{span:3}" :wrapperCol="{span:21}"> + <a-textarea :disabled="disableSubmit" placeholder="璇疯緭鍏ュ綊杩樿鏄�" + v-decorator="['returnComment', validatorRules.returnComment]" /> + </a-form-item> + </a-col> + </a-row> + <a-row style="width: 100%"> + <a-col :span="24 / 2"> + <a-form-item label="褰掕繕纭浜�" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <j-search-select-tag + :disabled="disableSubmit" + placeholder="璇烽�夋嫨褰掕繕纭浜�" + v-decorator="['returnConfirmer', { rules: [{ required: false, message: '璇烽�夋嫨褰掕繕纭浜�' }] }]" + dict="sys_user,realname,id,del_flag=0" + /> + </a-form-item> + </a-col> + <a-col :span="24 / 2"> + <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="褰掕繕纭鏃ユ湡"> + <a-date-picker + :disabled="disableSubmit" + style="width: 100%" + v-decorator="['returnConfirmTime', validatorRules.returnConfirmTime]" + /> + </a-form-item> + </a-col> + </a-row> + <a-row style="width: 100%"> + <a-col :span="24"> + <a-form-item label="褰掕繕纭鎰忚" :labelCol="{span:3}" :wrapperCol="{span:21}"> + <a-textarea :disabled="disableSubmit" placeholder="璇疯緭鍏ュ綊杩樼‘璁ゆ剰瑙�" + v-decorator="['returnConfirmComment', validatorRules.returnConfirmComment]" /> + </a-form-item> + </a-col> + </a-row> + </a-form> + </a-spin> + <a-button type="primary" :style="{ marginBottom: '8px' }" @click="selectTooling()">閫夋嫨搴撳瓨鍒�鍏�</a-button> + <a-table + ref="table" + bordered + size="middle" + rowKey="id" + :columns="columns" + :dataSource="dataSource" + :pagination="ipagination" + :loading="loading" + > + <template v-for="col in columns" :slot="col.dataIndex" slot-scope="text, record, index"> + <div :key="col.dataIndex"> + <a-input + :value="text" + :disabled="disableSubmit" + v-if="col.dataIndex === 'workpieceMaterial'" + @change="(e)=>handleChange(e.target.value, record.key, col, index)" + /> + <a-input-number + v-if="col.dataIndex === 'usedLife'" + :value="text" + @change="(e) => handleChange(e, record.key, col, index)" + :min="1" + /> + </div> + </template> + <span slot="action" slot-scope="text, record, index"> <a-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record, index)"> <a>鍒犻櫎</a> </a-popconfirm> </span> - </a-table> - <template slot="footer" v-if="disableSubmit == false"> - <a-button :style="{ marginRight: '8px' }" @click="handleCancel">鍏抽棴</a-button> - <a-button @click="handleOk" type="primary">鎻愪氦</a-button> - </template> + </a-table> + <template slot="footer" v-if="disableSubmit == false"> + <a-button :style="{ marginRight: '8px' }" @click="handleCancel">鍏抽棴</a-button> + <a-button @click="handleOk" type="primary">鎻愪氦</a-button> + </template> - <template slot="footer" v-if="disableSubmit == true"> - <a-button :style="{ marginRight: '8px' }" @click="handleCancel">鍏抽棴</a-button> - </template> - <j-select-inventory-modal ref="inventoryModalForm" @ok="modalFormOk"></j-select-inventory-modal> - <!-- <j-select-tooling-modal ref="toolingModalForm" @ok="modalFormOk"></j-select-tooling-modal>--> - </a-modal> + <template slot="footer" v-if="disableSubmit == true"> + <a-button :style="{ marginRight: '8px' }" @click="handleCancel">鍏抽棴</a-button> + </template> + <j-select-inventory-modal ref="inventoryModalForm" @ok="modalFormOk"></j-select-inventory-modal> + <!-- <j-select-tooling-modal ref="toolingModalForm" @ok="modalFormOk"></j-select-tooling-modal>--> + </a-modal> </template> <script> @@ -176,226 +176,225 @@ import JSelectInventoryModal from '@views/cms/modules/JSelectInventoryModal.vue' export default { - name: 'CuttingInboundModal', - components: { - JSelectToolingModal, - JSelectInventoryModal, - JMultiSelectTag, - JDictSelectTag, - store, - moment - }, - data() { - return { - /* 鍒嗛〉鍙傛暟 */ - ipagination: { - current: 1, - pageSize: 10, - pageSizeOptions: ['10', '20', '30'], - showTotal: (total, range) => { - return range[0] + '-' + range[1] + ' 鍏�' + total + '鏉�' - }, - showQuickJumper: true, - showSizeChanger: true, - total: 0 - }, - title: '鏂板', - visible: false, - selectedRowKeys: {}, - model: {}, - labelCol: { - xs: { span: 24 }, - sm: { span: 6 } - }, - wrapperCol: { - xs: { span: 24 }, - sm: { span: 18 } - }, - confirmLoading: false, - loading: false, - form: this.$form.createForm(this), - dataSource: [], - param: {}, - validatorRules: {}, - columns: [ - { - title: '#', - dataIndex: '', - key: 'rowIndex', - width: 50, - align: 'center', - customRender: function(t, r, index) { - return parseInt(index) + 1 - } - }, - { - title: '鍒�鍏风紪鐮�', - align: 'center', - dataIndex: 'cuttingCode', - width: 150 - }, - { - title: '鍒�鍏峰悕绉�', - align: 'center', - dataIndex: 'cuttingName' - }, - { - title: '宸ヤ欢鏉愯川', - align: 'center', - dataIndex: 'workpieceMaterial', - scopedSlots: { customRender: 'workpieceMaterial' } - }, - { - title: '浣跨敤瀵垮懡', - align: 'center', - dataIndex: 'usedLife', - scopedSlots: { customRender: 'usedLife' } - }, - { - title: '鎿嶄綔', - align: 'center', - dataIndex: 'action', - scopedSlots: { customRender: 'action' } - } - ], - url: { - add: '/cms/cuttingReceive/add', - detailList: '/cms/cuttingReceive/detailList' - }, - orderId: '', - disableSubmit: false + name: 'CuttingInboundModal', + components: { + JSelectInventoryModal, + JMultiSelectTag, + JDictSelectTag, + store, + moment + }, + data() { + return { + /* 鍒嗛〉鍙傛暟 */ + ipagination: { + current: 1, + pageSize: 10, + pageSizeOptions: ['10', '20', '30'], + showTotal: (total, range) => { + return range[0] + '-' + range[1] + ' 鍏�' + total + '鏉�' + }, + showQuickJumper: true, + showSizeChanger: true, + total: 0 + }, + title: '鏂板', + visible: false, + selectedRowKeys: {}, + model: {}, + labelCol: { + xs: { span: 24 }, + sm: { span: 6 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 18 } + }, + confirmLoading: false, + loading: false, + form: this.$form.createForm(this), + dataSource: [], + param: {}, + validatorRules: {}, + columns: [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 50, + align: 'center', + customRender: function(t, r, index) { + return parseInt(index) + 1 + } + }, + { + title: '鍒�鍏风紪鐮�', + align: 'center', + dataIndex: 'cuttingCode', + width: 150 + }, + { + title: '鍒�鍏峰悕绉�', + align: 'center', + dataIndex: 'cuttingName' + }, + { + title: '宸ヤ欢鏉愯川', + align: 'center', + dataIndex: 'workpieceMaterial', + scopedSlots: { customRender: 'workpieceMaterial' } + }, + { + title: '浣跨敤瀵垮懡', + align: 'center', + dataIndex: 'usedLife', + scopedSlots: { customRender: 'usedLife' } + }, + { + title: '鎿嶄綔', + align: 'center', + dataIndex: 'action', + scopedSlots: { customRender: 'action' } + } + ], + url: { + add: '/cms/cuttingReceive/add', + detailList: '/cms/cuttingReceive/detailList' + }, + orderId: '', + disableSubmit: false + } + }, + methods: { + modalFormOk() { + + }, + getQueryParams() { + this.param.pageNo = this.ipagination.current + this.param.pageSize = this.ipagination.pageSize + return filterObj(this.param) + }, + add() { + let receiver = store.getters.userInfo.id + let receiveTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss') + this.edit({ receiver: receiver, receiveTime: receiveTime }) + }, + edit(record) { + record.receiver = store.getters.userInfo.id + record.receiveTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss') + this.form.resetFields() + this.model = Object.assign({}, record) + this.visible = true + this.disableSubmit = false + if (record.id) { + this.orderId = record.id + this.detailList(this.orderId) } - }, - methods: { - modalFormOk() { - - }, - getQueryParams() { - this.param.pageNo = this.ipagination.current - this.param.pageSize = this.ipagination.pageSize - return filterObj(this.param) - }, - add() { - let receiver = store.getters.userInfo.id - let receiveTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss') - this.edit({ receiver: receiver, receiveTime: receiveTime }) - }, - edit(record) { - record.receiver = store.getters.userInfo.id - record.receiveTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss') - this.form.resetFields() - this.model = Object.assign({}, record) - this.visible = true - this.disableSubmit = false - if (record.id) { - this.orderId = record.id - this.detailList(this.orderId) - } - this.$nextTick(() => { - this.form.setFieldsValue( - pick(this.model, 'receiver', 'receiveTime', 'receiveComment', 'confirmer', 'confirmTime', 'confirmComment' - , 'returnFlag', 'returnTime', 'returnComment', 'returnConfirmer', 'returnConfirmTime', 'returnConfirmComment') - ) - }) - }, - handleDelete(record, index) { - this.dataSource.splice(index, 1) - }, - handleChange(value, key, column, index) { - //let t = (this.ipaginationm.current - 1) * this.ipaginationm.pageSize + index - const temp = [...this.dataSource] - const target = temp.filter((item) => key === item.key)[index] - if (target) { - target[column.dataIndex] = value - this.dataSource = temp - } - }, - selectTooling: function() { - let ids = [] - for (let i = 0; i < this.dataSource.length; i++) { - ids.push(this.dataSource[i].inventoryId) - console.log('褰撳墠鏁版嵁婧�:', this.dataSource) - } - // this.$refs.toolingModalForm.showModal(ids) - // this.$refs.toolingModalForm.title = '閫夋嫨鍒�鍏�' - // this.$refs.toolingModalForm.disableSubmit = false - - this.$refs.inventoryModalForm.showModal(ids) - this.$refs.inventoryModalForm.title = '閫夋嫨搴撳瓨鍒�鍏�' - this.$refs.inventoryModalForm.disableSubmit = false - - }, - detailList(orderId) { - this.param.orderId = orderId - getAction(this.url.detailList, this.getQueryParams()).then((res) => { - if (res.success) { - this.dataSource = res.result - } - }) - }, - filterOption(input, option) { - return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0 - }, - handleOk() { - if (this.dataSource.length == 0) { - this.$message.error('璇峰厛閫夋嫨鍏ュ簱鍒�鍏�') - return - } - const that = this - // 瑙﹀彂琛ㄥ崟楠岃瘉 - this.form.validateFields((err, values) => { - if (!err) { - that.confirmLoading = true - let formData = Object.assign(this.model, values) - formData.detailData = this.dataSource - - // 纭繚 detailData 鍖呭惈 inventoryId - formData.detailData = this.dataSource.map(item => ({ - ...item, - // 纭繚 inventoryId 琚纭紶閫� - inventoryId: item.inventoryId - })) - - postAction(that.url.add, formData) - .then((res) => { - if (res.success) { - that.$message.success('棰嗙敤鎴愬姛') - that.$emit('ok', new Date()) - } else { - that.$message.warning(res.message) - } - }) - .finally(() => { - that.confirmLoading = false - that.close() - }) - } - }) - }, - handleCancel() { - this.close() - }, - close() { - this.$emit('close') - this.dataSource = [] - this.visible = false - this.disableSubmit = false - } - }, - mounted() { - this.$bus.$on('selectionRows', (data) => { - console.log('鎺ユ敹鍒扮殑閫夋嫨鏁版嵁:', data) - //getCurrSelected 浜嬩欢 鎺ユ敹缁勪欢浼犻�掔殑鍙傛暟 - for (let i = 0; i < data.length; i++) { - this.dataSource.push({ - inventoryId: data[i].id, - cuttingCode: data[i].cuttingCode, - cuttingName: data[i].cuttingName, - cuttingId: data[i].cuttingId - }) - } - console.log('鏇存柊鍚庣殑鏁版嵁婧�:', this.dataSource) + this.$nextTick(() => { + this.form.setFieldsValue( + pick(this.model, 'receiver', 'receiveTime', 'receiveComment', 'confirmer', 'confirmTime', 'confirmComment' + , 'returnFlag', 'returnTime', 'returnComment', 'returnConfirmer', 'returnConfirmTime', 'returnConfirmComment') + ) }) - } + }, + handleDelete(record, index) { + this.dataSource.splice(index, 1) + }, + handleChange(value, key, column, index) { + //let t = (this.ipaginationm.current - 1) * this.ipaginationm.pageSize + index + const temp = [...this.dataSource] + const target = temp.filter((item) => key === item.key)[index] + if (target) { + target[column.dataIndex] = value + this.dataSource = temp + } + }, + selectTooling: function() { + let ids = [] + for (let i = 0; i < this.dataSource.length; i++) { + ids.push(this.dataSource[i].inventoryId) + console.log('褰撳墠鏁版嵁婧�:', this.dataSource) + } + // this.$refs.toolingModalForm.showModal(ids) + // this.$refs.toolingModalForm.title = '閫夋嫨鍒�鍏�' + // this.$refs.toolingModalForm.disableSubmit = false + + this.$refs.inventoryModalForm.showModal(ids) + this.$refs.inventoryModalForm.title = '閫夋嫨搴撳瓨鍒�鍏�' + this.$refs.inventoryModalForm.disableSubmit = false + + }, + detailList(orderId) { + this.param.orderId = orderId + getAction(this.url.detailList, this.getQueryParams()).then((res) => { + if (res.success) { + this.dataSource = res.result + } + }) + }, + filterOption(input, option) { + return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0 + }, + handleOk() { + if (this.dataSource.length == 0) { + this.$message.error('璇峰厛閫夋嫨鍏ュ簱鍒�鍏�') + return + } + const that = this + // 瑙﹀彂琛ㄥ崟楠岃瘉 + this.form.validateFields((err, values) => { + if (!err) { + that.confirmLoading = true + let formData = Object.assign(this.model, values) + formData.detailData = this.dataSource + + // 纭繚 detailData 鍖呭惈 inventoryId + formData.detailData = this.dataSource.map(item => ({ + ...item, + // 纭繚 inventoryId 琚纭紶閫� + inventoryId: item.inventoryId + })) + + postAction(that.url.add, formData) + .then((res) => { + if (res.success) { + that.$message.success('棰嗙敤鎴愬姛') + that.$emit('ok', new Date()) + } else { + that.$message.warning(res.message) + } + }) + .finally(() => { + that.confirmLoading = false + that.close() + }) + } + }) + }, + handleCancel() { + this.close() + }, + close() { + this.$emit('close') + this.dataSource = [] + this.visible = false + this.disableSubmit = false + } + }, + mounted() { + this.$bus.$on('selectionRows', (data) => { + console.log('鎺ユ敹鍒扮殑閫夋嫨鏁版嵁:', data) + //getCurrSelected 浜嬩欢 鎺ユ敹缁勪欢浼犻�掔殑鍙傛暟 + for (let i = 0; i < data.length; i++) { + this.dataSource.push({ + inventoryId: data[i].id, + cuttingCode: data[i].cuttingCode, + cuttingName: data[i].cuttingName, + cuttingId: data[i].cuttingId + }) + } + console.log('鏇存柊鍚庣殑鏁版嵁婧�:', this.dataSource) + }) + } } </script> \ No newline at end of file diff --git a/src/views/cms/modules/CuttingScrapModal.vue b/src/views/cms/modules/CuttingScrapModal.vue index 027d35c..82ff665 100644 --- a/src/views/cms/modules/CuttingScrapModal.vue +++ b/src/views/cms/modules/CuttingScrapModal.vue @@ -3,7 +3,7 @@ <a-spin :spinning="confirmLoading"> <a-form :form="form"> <a-row style="width: 100%"> - <a-col :span="24 / 2"> + <a-col :span="24 / 2"> <a-form-item label="鐢宠浜�" :labelCol="labelCol" :wrapperCol="wrapperCol"> <j-search-select-tag :disabled="disableSubmit" @@ -26,12 +26,13 @@ <a-row style="width: 100%"> <a-col :span="24"> <a-form-item label="鐢宠璇存槑" :labelCol="{span:3}" :wrapperCol="{span:21}"> - <a-textarea :disabled="disableSubmit" placeholder="璇疯緭鍏ョ敵璇疯鏄�" v-decorator="['applicationComment', validatorRules.applicationComment]" /> + <a-textarea :disabled="disableSubmit" placeholder="璇疯緭鍏ョ敵璇疯鏄�" + v-decorator="['applicationComment', validatorRules.applicationComment]" /> </a-form-item> </a-col> </a-row> <a-row style="width: 100%"> - <a-col :span="24 / 2"> + <a-col :span="24 / 2"> <a-form-item label="纭浜�" :labelCol="labelCol" :wrapperCol="wrapperCol"> <j-search-select-tag :disabled="disableSubmit" @@ -54,14 +55,16 @@ <a-row style="width: 100%"> <a-col :span="24"> <a-form-item label="纭鎰忚" :labelCol="{span:3}" :wrapperCol="{span:21}"> - <a-textarea :disabled="disableSubmit" placeholder="璇疯緭鍏ョ‘璁ゆ剰瑙�" v-decorator="['confirmComment', validatorRules.confirmComment]" /> + <a-textarea :disabled="disableSubmit" placeholder="璇疯緭鍏ョ‘璁ゆ剰瑙�" + v-decorator="['confirmComment', validatorRules.confirmComment]" /> </a-form-item> </a-col> </a-row> </a-form> </a-spin> <a-button type="primary" :style="{ marginBottom: '8px' }" @click="selectTooling()" - >閫夋嫨鍒�鍏�</a-button + >閫夋嫨鎶ュ簾鍒�鍏� + </a-button > <a-table ref="table" @@ -75,13 +78,13 @@ > <template v-for="col in columns" :slot="col.dataIndex" slot-scope="text, record, index"> <div :key="col.dataIndex"> - <a-input - :value="text" - :disabled="disableSubmit" - v-if="col.dataIndex == 'newCuttingId'" - @change="(e)=>handleChange(e.target.value, record.key, col, index)" - /> - + <a-input + :value="text" + :disabled="disableSubmit" + v-if="col.dataIndex == 'newCuttingId'" + @change="(e)=>handleChange(e.target.value, record.key, col, index)" + /> + </div> </template> <span slot="action" slot-scope="text, record, index"> @@ -98,33 +101,35 @@ <template slot="footer" v-if="disableSubmit == true"> <a-button :style="{ marginRight: '8px' }" @click="handleCancel">鍏抽棴</a-button> </template> - <j-select-tooling-modal ref="toolingModalForm" @ok="modalFormOk"></j-select-tooling-modal> + <j-select-scrap-modal ref="scrapModalForm" @ok="modalFormOk"></j-select-scrap-modal> </a-modal> </template> <script> - import pick from 'lodash.pick' - import JSelectToolingModal from './JSelectToolingModal' - import moment from 'moment' - import { getAction, postAction, requestPut } from '@/api/manage' - import JDictSelectTag from '@/components/dict/JDictSelectTag' - import JSearchSelectTag from '@/components/dict/JSearchSelectTag' - import JMultiSelectTag from '@/components/dict/JMultiSelectTag' - import { filterObj } from '@/utils/util' - import store from '@/store/' - export default { - name: 'CuttingInboundModal', - components: { - JSelectToolingModal, +import pick from 'lodash.pick' +import JSelectToolingModal from './JSelectToolingModal' +import moment from 'moment' +import { getAction, postAction, requestPut } from '@/api/manage' +import JDictSelectTag from '@/components/dict/JDictSelectTag' +import JSearchSelectTag from '@/components/dict/JSearchSelectTag' +import JMultiSelectTag from '@/components/dict/JMultiSelectTag' +import { filterObj } from '@/utils/util' +import store from '@/store/' +import JSelectScrapModal from '@views/cms/modules/JSelectScrapModal.vue' + +export default { + name: 'CuttingInboundModal', + components: { + JSelectScrapModal, JMultiSelectTag, JDictSelectTag, store, - moment, + moment }, - data () { - return { - /* 鍒嗛〉鍙傛暟 */ + data() { + return { + /* 鍒嗛〉鍙傛暟 */ ipagination: { current: 1, pageSize: 10, @@ -134,27 +139,26 @@ }, showQuickJumper: true, showSizeChanger: true, - total: 0, + total: 0 }, - title:'鏂板', - visible: false, - selectedRowKeys: {}, + title: '鏂板', + visible: false, + selectedRowKeys: {}, model: {}, labelCol: { xs: { span: 24 }, - sm: { span: 6 }, + sm: { span: 6 } }, wrapperCol: { xs: { span: 24 }, - sm: { span: 18 }, + sm: { span: 18 } }, confirmLoading: false, loading: false, form: this.$form.createForm(this), dataSource: [], param: {}, - validatorRules: { - }, + validatorRules: {}, columns: [ { title: '#', @@ -162,47 +166,47 @@ key: 'rowIndex', width: 50, align: 'center', - customRender: function (t, r, index) { + customRender: function(t, r, index) { return parseInt(index) + 1 - }, + } }, { title: '鍒�鍏风紪鐮�', align: 'center', dataIndex: 'cuttingCode', - width: 150, + width: 150 }, { title: '鍒�鍏峰悕绉�', align: 'center', - dataIndex: 'cuttingName', + dataIndex: 'cuttingName' }, - + { title: '鎿嶄綔', dataIndex: 'action', align: 'center', - scopedSlots: { customRender: 'action' }, - }, + scopedSlots: { customRender: 'action' } + } ], url: { add: '/cms/cuttingScrap/add', - detailList: '/cms/cuttingScrap/detailList', + detailList: '/cms/cuttingScrap/detailList' }, - orderId:'', - disableSubmit:false - } - }, - methods: { - modalFormOk(){ + orderId: '', + disableSubmit: false + } + }, + methods: { + modalFormOk() { - }, - getQueryParams() { + }, + getQueryParams() { this.param.pageNo = this.ipagination.current this.param.pageSize = this.ipagination.pageSize return filterObj(this.param) }, - add() { + add() { let applicant = store.getters.userInfo.id let applicationTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss') this.edit({ applicant: applicant, applicationTime: applicationTime }) @@ -224,7 +228,7 @@ ) }) }, - handleDelete(record, index) { + handleDelete(record, index) { this.dataSource.splice(index, 1) }, handleChange(value, key, column, index) { @@ -236,14 +240,15 @@ this.dataSource = temp } }, - selectTooling: function () { + selectTooling: function() { let ids = [] for (let i = 0; i < this.dataSource.length; i++) { ids.push(this.dataSource[i].cuttingId) + ids.push(this.dataSource[i].inventoryId) } - this.$refs.toolingModalForm.showModal(ids) - this.$refs.toolingModalForm.title = '閫夋嫨鍒�鍏�' - this.$refs.toolingModalForm.disableSubmit = false + this.$refs.scrapModalForm.showModal(ids) + this.$refs.scrapModalForm.title = '閫夋嫨鎶ュ簾鍒�鍏�' + this.$refs.scrapModalForm.disableSubmit = false }, detailList(orderId) { this.param.orderId = orderId @@ -262,17 +267,32 @@ return } const that = this + // 瑙﹀彂琛ㄥ崟楠岃瘉 this.form.validateFields((err, values) => { if (!err) { that.confirmLoading = true let formData = Object.assign(this.model, values) formData.detailData = this.dataSource + + // 纭繚浼犻�掔粰鍚庣鐨勬暟鎹寘鍚墍鏈夊繀瑕佸瓧娈� + formData.detailData = this.dataSource.map(item => { + return { + // 鏄庣‘鎸囧畾姣忎釜瀛楁锛岀‘淇� inventoryId 琚纭紶閫� + inventoryId: item.inventoryId, + cuttingId: item.cuttingId, + cuttingCode: item.cuttingCode, + cuttingName: item.cuttingName, + // 濡傛灉杩樻湁鍏朵粬瀛楁涔熼渶瑕佸寘鍚� + ...item // 鍖呭惈鍏朵粬鍙兘瀛樺湪鐨勫瓧娈� + } + }) + postAction(that.url.add, formData) .then((res) => { if (res.success) { - that.$message.success('鎶ュ簾鎴愬姛') that.$emit('ok', new Date()) + that.$message.success('鎶ュ簾鎴愬姛') } else { that.$message.warning(res.message) } @@ -292,19 +312,24 @@ this.dataSource = [] this.visible = false this.disableSubmit = false - }, - }, - mounted() { + } + }, + mounted() { this.$bus.$on('selectionRows', (data) => { //getCurrSelected 浜嬩欢 鎺ユ敹缁勪欢浼犻�掔殑鍙傛暟 for (let i = 0; i < data.length; i++) { this.dataSource.push({ - cuttingId: data[i].id, + // cuttingId: data[i].id, + // cuttingCode: data[i].cuttingCode, + // cuttingName: data[i].cuttingName + inventoryId: data[i].id, cuttingCode: data[i].cuttingCode, - cuttingName: data[i].cuttingName + cuttingName: data[i].cuttingName, + cuttingId: data[i].cuttingId, }) } }) - }, + console.log('鏇存柊鍚庣殑鏁版嵁婧�:', this.dataSource) } +} </script> \ No newline at end of file diff --git a/src/views/cms/modules/JSelectScrapModal.vue b/src/views/cms/modules/JSelectScrapModal.vue new file mode 100644 index 0000000..dd0f76f --- /dev/null +++ b/src/views/cms/modules/JSelectScrapModal.vue @@ -0,0 +1,261 @@ +<template> + <!--鏀寔鍏ㄥ睆缂╂斁--> + <!--閫夋嫨鍒�鍏风殑寮圭獥锛屾牴鎹繖涓脊绐楀皢閫夋嫨鍒�鍏蜂粠鍒�鍏蜂俊鎭縼绉诲埌鍒�鍏峰簱瀛橈紝鐢ㄦ潵棰嗙敤鍒�鍏峰簱瀛橀噷鐨勫垁鍏� --> + <j-modal + :visible="visible" + :title="title" + switchFullscreen + :width="1200" + @ok="handleSubmit" + @cancel="close" + style="top: 50px" + cancelText="鍏抽棴" + > + <a-card :bordered="false"> + <div class="table-page-search-wrapper"> + <a-form layout="inline" @keyup.enter.native="searchQuery"> + <a-row :gutter="24"> + <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <a-form-item label="鍒�鍏风紪鐮�"> + <a-input placeholder="璇疯緭鍏ュ垁鍏风紪鐮�,鏀寔妯$硦鏌ヨ" v-model="queryParam.cuttingCode"></a-input> + </a-form-item> + </a-col> + <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <a-form-item label="鍒�鍏峰悕绉�"> + <a-input placeholder="璇疯緭鍏ュ垁鍏峰悕绉�,鏀寔妯$硦鏌ヨ" v-model="queryParam.cuttingName"></a-input> + </a-form-item> + </a-col> + + <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button> + <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">閲嶇疆</a-button> + </a-row> + </a-form> + </div> + <!--鍒�鍏峰垪琛�--> + <a-table + ref="table" + :scroll="scrollTrigger" + size="middle" + rowKey="id" + :columns="columns" + :dataSource="dataSource" + :pagination="ipagination" + :rowSelection="rowSelection" + :loading="loading" + @change="handleTableChange" + > + </a-table> + </a-card> + </j-modal> +</template> + +<script> +import { filterObj } from '@/utils/util' +import { getAction } from '@/api/manage' + +export default { + name: 'JSelectScrapModal', + components: {}, + props: {}, + data() { + return { + queryParam: {}, + columns: [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 50, + align: 'center', + customRender: function (t, r, index) { + return parseInt(index) + 1 + }, + }, + { + title: '鍒�鍏风紪鐮�', + align: 'center', + dataIndex: 'cuttingCode', + sorter: true, + }, + { + title: '鍒�鍏峰悕绉�', + align: 'center', + dataIndex: 'cuttingName', + sorter: true, + }, + { + title: '鍒�鍏峰垎绫�', + align: 'center', + dataIndex: 'cuttingCategory', + sorter: true, + }, + { + title:'鍒�鍏锋潯鐮�', + align: 'center', + dataIndex: 'cuttingBarcode', + sorter: true, + }, + { + title:'鍒�鍏峰綋鍓嶅鍛斤紙鐧惧垎姣旓級', + align: 'center', + dataIndex: 'currentLife', + sorter: true, + }, + { + title:'搴撳瓨id', + align: 'center', + dataIndex: 'id', + sorter: true, + } + ], + selectedRowKeys: [], + oldSlelectRows: [], + scrollTrigger: {}, + dataSource: [], + selectionRows: [], + title: '鏍规嵁鏌ヨ缁撴灉閫夋嫨鍒�鍏�', + ipagination: { + current: 1, + pageSize: 10, + pageSizeOptions: ['5', '10', '20'], + showTotal: (total, range) => { + return range[0] + '-' + range[1] + ' 鍏�' + total + '鏉�' + }, + showQuickJumper: true, + showSizeChanger: true, + total: 0, + }, + isorter: { + column: 'num', + order: 'desc', + }, + departTree: [], + visible: false, + loading: false, + url: { + // list: '/cms/cuttingTool/getCuttingToolList', + list:'/cms/cuttingReceive/getInventoryToolList' + }, + } + }, + computed: { + rowSelection() { + return { + type: 'checkbox', + onChange: (selectedRowKeys, selectedRows) => { + this.selectedRowKeys = selectedRowKeys + this.onSelectChange(selectedRows) + }, + getCheckboxProps: (record) => ({ + props: { + disabled: record.distable, + }, + }), + selectedRowKeys: this.selectedRowKeys, + } + }, + }, + watch: {}, + created() {}, + methods: { + async loadData(arg) { + if (arg === 1) { + this.ipagination.current = 1 + } + let that = this + this.loading = true + let params = this.getQueryParams() //鏌ヨ鏉′欢 + await getAction(this.url.list, params).then((res) => { + if (res.success) { + for (let i = 0; i < res.result.records.length; i++) { + if (that.oldSlelectRows.indexOf(res.result.records[i].id) > -1) { + res.result.records[i].distable = true + } else { + res.result.records[i].distable = false + } + } + this.dataSource = res.result.records + this.ipagination.total = res.result.total + } + if (res.code === 510) { + this.$message.warning(res.message) + } + this.loading = false + }) + }, + showModal(oldSlelectRows) { + this.oldSlelectRows = oldSlelectRows + this.visible = true + this.loadData(1) + }, + getQueryParams() { + let param = Object.assign({}, this.queryParam, this.isorter) + param.field = this.getQueryField() + param.pageNo = this.ipagination.current + param.pageSize = this.ipagination.pageSize + return filterObj(param) + }, + //鏌ヨ鏉′欢澶勭悊 + getQueryField() { + let str = 'id,' + for (let a = 0; a < this.columns.length; a++) { + str += ',' + this.columns[a].dataIndex + } + return str + }, + searchReset(num) { + let that = this + if (num !== 0) { + that.loadData(1) + } + that.selectborrowIds = [] + }, + close() { + this.searchReset(0) + this.selectedRowKeys = [] + this.visible = false + }, + handleTableChange(pagination, filters, sorter) { + if (Object.keys(sorter).length > 0) { + this.isorter.column = sorter.field + this.isorter.order = 'ascend' === sorter.order ? 'asc' : 'desc' + } + this.ipagination = pagination + this.loadData() + }, + handleSubmit() { + this.$bus.$emit('selectionRows', this.selectionRows) + this.searchReset(0) + this.close() + }, + onSelectChange(selectionRows) { + this.selectionRows = selectionRows + }, + onSearch() { + this.loadData(1) + }, + searchQuery() { + this.loadData(1); + }, + // searchReset() { + // this.queryParam = {} + // this.loadData(1) + // }, + }, +} +</script> + +<style scoped> +.ant-table-tbody .ant-table-row td { + padding-top: 10px; + padding-bottom: 10px; +} + +#components-layout-demo-custom-trigger .trigger { + font-size: 18px; + line-height: 64px; + padding: 0 24px; + cursor: pointer; + transition: color 0.3s; +} +</style> \ No newline at end of file diff --git a/src/views/eam/equipment/modules/EamEquipmentModal.vue b/src/views/eam/equipment/modules/EamEquipmentModal.vue index 1d739ab..8c3454f 100644 --- a/src/views/eam/equipment/modules/EamEquipmentModal.vue +++ b/src/views/eam/equipment/modules/EamEquipmentModal.vue @@ -198,7 +198,7 @@ </a-col> <a-col :span="6"> <a-form-model-item prop="equipmentManager" label="璁惧绠$悊鍛�"> - <j-search-select-tag placeholder="璇烽�夋嫨璁惧绠$悊鍛�" v-model="model.equipmentManager" dict="sys_user,realname, username, del_flag=0 and post='PCR0004' and status=1" :disabled="disableSubmit"/> + <j-search-select-tag placeholder="璇烽�夋嫨璁惧绠$悊鍛�" v-model="model.equipmentManager" dict="sys_user,realname, username, del_flag=0 and status=1" :disabled="disableSubmit"/> </a-form-model-item> </a-col> <a-col :span="6"> diff --git a/src/views/mes/modules/MesMaterialTransferRequestForm.vue b/src/views/mes/modules/MesMaterialTransferRequestForm.vue index 5881aca..d7cd62c 100644 --- a/src/views/mes/modules/MesMaterialTransferRequestForm.vue +++ b/src/views/mes/modules/MesMaterialTransferRequestForm.vue @@ -42,11 +42,9 @@ </a-col> <a-col :span="12"> <a-form-model-item label="鎷夊姩鐗╂枡" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialNumber"> - <a-select v-model="model.materialNumber" placeholder="璇烽�夋嫨鎷夊姩鐗╂枡" @change="handleMaterialNumberChange"> - <a-select-option v-for="item in materialList" :value="item.materialNumber" :title="item.materialName" :key="item.materialNumber"> - {{ item.materialName }} - </a-select-option> - </a-select> + <j-search-select-tag v-model="model.materialNumber" placeholder="璇烽�夋嫨鎷夊姩鐗╂枡" + :dict-options="materialList" @change="handleMaterialNumberChange"> + </j-search-select-tag> </a-form-model-item> </a-col> <a-col :span="12"> @@ -118,7 +116,7 @@ workOrderQuery: '/mes/mesProductionWorkOrder/queryById' }, materialList: [], //鐗╂枡鍒楄〃 - workOrderObj: {}, //宸ュ崟瀵硅薄 + workOrderObj: {} //宸ュ崟瀵硅薄 } }, computed: { @@ -140,17 +138,21 @@ this.model.workOrderCode = this.model.workOrderId_dictText this.visible = true if (this.model.workOrderId) { - this.editable = true; + this.editable = true let workOrderRes = await this.loadProductionWorkOrder(this.model.workOrderId) - if(!workOrderRes.success || !workOrderRes.result) { - return; + if (!workOrderRes.success || !workOrderRes.result) { + return } //鎺掍骇宸ュ崟璧嬪�� - this.workOrderObj = Object.assign({}, workOrderRes.result); + this.workOrderObj = Object.assign({}, workOrderRes.result) //鐗╂枡鍒楄〃 let materialListRes = await this.loadMaterialList(workOrderRes.result.materialNumber) if (materialListRes.success && materialListRes.result && materialListRes.result.length > 0) { - this.materialList = [...materialListRes.result] + this.materialList = materialListRes.result.map(item => ({ + ...item, + value: item.materialNumber, + text: item.materialName + })) } else { this.materialList = [] } @@ -163,24 +165,28 @@ this.model.targetWarehouseId = undefined this.model.warehouseName = '' } - }else { - this.editable = false; + } else { + this.editable = false } }, async selectConfirm(rows) { if (rows && rows.length > 0) { //娓呯┖鍏宠仈鏁版嵁 - this.model.materialNumber = undefined; - this.model.materialName = ''; - this.model.specifiedQuantity = 0; + this.model.materialNumber = undefined + this.model.materialName = '' + this.model.specifiedQuantity = 0 //璧嬪�兼柊鐨勬暟鎹� this.model.workOrderId = rows[0].id this.model.workOrderCode = rows[0].workOrderCode //鎺掍骇宸ュ崟璧嬪�� - this.workOrderObj = Object.assign({}, rows[0]); + this.workOrderObj = Object.assign({}, rows[0]) let materialListRes = await this.loadMaterialList(rows[0].materialNumber) if (materialListRes.success && materialListRes.result && materialListRes.result.length > 0) { - this.materialList = [...materialListRes.result] + this.materialList = materialListRes.result.map(item => ({ + ...item, + value: item.materialNumber, + text: item.materialName + })) } else { this.materialList = [] } @@ -194,13 +200,13 @@ } } else { //娓呯┖鍏宠仈鏁版嵁 - this.model.materialNumber = undefined; - this.model.materialName = ''; - this.model.specifiedQuantity = 0; + this.model.materialNumber = undefined + this.model.materialName = '' + this.model.specifiedQuantity = 0 this.materialList = [] this.model.targetWarehouseId = undefined this.model.warehouseName = '' - this.workOrderObj = {}; + this.workOrderObj = {} } }, submitForm() { diff --git a/src/views/mes/modules/WorkOrderSelectModal.vue b/src/views/mes/modules/WorkOrderSelectModal.vue index 1c9abf0..cf4c755 100644 --- a/src/views/mes/modules/WorkOrderSelectModal.vue +++ b/src/views/mes/modules/WorkOrderSelectModal.vue @@ -70,7 +70,7 @@ workOrderStatus: this.orderStatus, }, url: { - list: "/mes/mesProductionWorkOrder/list" + list: "/mes/mesProductionWorkOrder/queryWorkOrderByTransfer" }, columns: [ { -- Gitblit v1.9.3