From a674e9834bec0ce5a18b751c7434323cc7199ce5 Mon Sep 17 00:00:00 2001 From: lixiangyu <lixiangyu@xalxzn.com> Date: 星期四, 11 九月 2025 17:57:34 +0800 Subject: [PATCH] feat(cms): CuttingReceiveDetailList.vue刀具领用功能中新增领用单提交功能 CuttingReceiveList.vue 刀具领用 提交按钮的前端样式和刀具领用归还按钮的前端样式 --- src/views/cms/CuttingReceiveDetailList.vue | 259 +++--- src/views/cms/CuttingReceiveList.vue | 622 ++++++++------ src/views/cms/CuttingInboundList.vue | 799 +++++++++--------- src/views/cms/modules/CuttingReceiveModal.vue | 753 +++++++++--------- 4 files changed, 1,261 insertions(+), 1,172 deletions(-) diff --git a/src/views/cms/CuttingInboundList.vue b/src/views/cms/CuttingInboundList.vue index 673fc37..94dbb77 100644 --- a/src/views/cms/CuttingInboundList.vue +++ b/src/views/cms/CuttingInboundList.vue @@ -1,123 +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-form-item label="纭浜�"> - <j-search-select-tag - v-model="queryParam.confirmer" - placeholder="璇烽�夋嫨纭浜�" - dict="sys_user,realname,id,del_flag!=1" - /> - </a-form-item> - </a-col> -<!-- <a-col :md="6" :sm="8">--> -<!-- <a-form-item label="鍏ュ簱鏃堕棿">--> -<!-- <j-date--> -<!-- v-model="queryParam.receiveTime"--> -<!-- type="date"--> -<!-- value-format="YYYY-MM-DD"--> -<!-- />--> -<!-- </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"> + <a-form-item label="纭浜�"> + <j-search-select-tag + v-model="queryParam.confirmer" + placeholder="璇烽�夋嫨纭浜�" + dict="sys_user,realname,id,del_flag!=1" + /> + </a-form-item> + </a-col> + <!-- <a-col :md="6" :sm="8">--> + <!-- <a-form-item label="鍏ュ簱鏃堕棿">--> + <!-- <j-date--> + <!-- v-model="queryParam.receiveTime"--> + <!-- type="date"--> + <!-- value-format="YYYY-MM-DD"--> + <!-- />--> + <!-- </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> - - <!-- 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 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> - <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"> + <!-- 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> - <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> + <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"> - <span slot="action" slot-scope="text, record"> - <a @click="handleEdit(record)" :disabled="record.orderStatus == '2'">缂栬緫</a> + <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)" :disabled="record.orderStatus === '2'">缂栬緫</a> <a-divider type="vertical" /> <a-dropdown> <a class="ant-dropdown-link">鏇村 <a-icon type="down" /></a> @@ -125,11 +128,11 @@ <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-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record.id)">--> + <!-- <a>鍒犻櫎</a>--> + <!-- </a-popconfirm>--> + <!-- </a-menu-item>--> <a-menu-item v-if="record.orderStatus != '2'"> <a @click="handleSubmit(record.id)" :disabled="record.orderStatus == '3'">鎻愪氦</a> </a-menu-item> @@ -142,328 +145,325 @@ </a-dropdown> </span> - </a-table> - </div> - <a-tabs defaultActiveKey="1"> - <a-tab-pane tab="鍒�鍏峰叆搴撴槑缁�" key="1"> - <cutting-inbound-detail-list ref="cuttingInbounDetailList"></cutting-inbound-detail-list> - </a-tab-pane> - </a-tabs> - <cutting-inbound-modal ref="modalForm" @ok="modalFormOk"></cutting-inbound-modal> - </a-card> + </a-table> + </div> + <a-tabs defaultActiveKey="1"> + <a-tab-pane tab="鍒�鍏峰叆搴撴槑缁�" key="1"> + <cutting-inbound-detail-list ref="cuttingInbounDetailList"></cutting-inbound-detail-list> + </a-tab-pane> + </a-tabs> + <cutting-inbound-modal ref="modalForm" @ok="modalFormOk"></cutting-inbound-modal> + </a-card> </template> - - <script> - import '@/assets/less/TableExpand.less' - import { mixinDevice } from '@/utils/mixin' - import { JeecgListMixin } from '@/mixins/JeecgListMixin' - import CuttingInboundModal from './modules/CuttingInboundModal' - import CuttingInboundDetailList from './CuttingInboundDetailList' - import { downFile, httpAction } from '@api/manage' - import Vue from 'vue' - import { ACCESS_TOKEN } from '@/store/mutation-types' - import store from '@/store' - import { Modal } from 'ant-design-vue'; +import '@/assets/less/TableExpand.less' +import { mixinDevice } from '@/utils/mixin' +import { JeecgListMixin } from '@/mixins/JeecgListMixin' +import CuttingInboundModal from './modules/CuttingInboundModal' +import CuttingInboundDetailList from './CuttingInboundDetailList' +import { downFile, httpAction } from '@api/manage' +import Vue from 'vue' +import { ACCESS_TOKEN } from '@/store/mutation-types' +import store from '@/store' +import { Modal } from 'ant-design-vue' - export default { - name: 'CuttingInboundList', - mixins:[JeecgListMixin, mixinDevice], - components: { +export default { + name: 'CuttingInboundList', + mixins: [JeecgListMixin, mixinDevice], + components: { CuttingInboundModal, CuttingInboundDetailList - }, - data () { + }, + data() { return { - description: '鍒�鍏峰叆搴撳崟绠$悊椤甸潰', - // 琛ㄥご - columns: [ - { - title: '#', - dataIndex: '', - key:'rowIndex', - width:60, - align:"center", - customRender:function (t,r,index) { - return parseInt(index)+1; + 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: 'orderStatus_dictText' + }, + { + title: '鎿嶄綔', + dataIndex: 'action', + align: 'center', + fixed: 'right', + width: 147, + scopedSlots: { customRender: 'action' } } - }, - { - 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: 'orderStatus_dictText', - }, - { - title: '鎿嶄綔', - dataIndex: 'action', - align:"center", - fixed:"right", - width:147, - scopedSlots: { customRender: 'action' } - } - ], - url: { - list: "/cms/cuttingInbound/list", - delete: "/cms/cuttingInbound/delete", - deleteBatch: "/cms/cuttingInbound/deleteBatch", - exportXlsUrl: "/cms/cuttingInbound/exportXls", - importExcelUrl: "cms/cuttingInbound/importExcel", - submit: "/cms/cuttingInbound/submit", - }, - dictOptions:{}, - superFieldList:[], + ], + url: { + list: '/cms/cuttingInbound/list', + delete: '/cms/cuttingInbound/delete', + deleteBatch: '/cms/cuttingInbound/deleteBatch', + exportXlsUrl: '/cms/cuttingInbound/exportXls', + importExcelUrl: 'cms/cuttingInbound/importExcel', + submit: '/cms/cuttingInbound/submit' + }, + dictOptions: {}, + superFieldList: [] } - }, - created() { - this.getSuperFieldList(); + }, + created() { + this.getSuperFieldList() // 娣诲姞瀛楀吀鏁版嵁鍔犺浇 - this.initDictConfig(); - }, - computed: { - importExcelUrl: function(){ - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; - }, - }, - methods: { + this.initDictConfig() + }, + computed: { + importExcelUrl: function() { + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}` + } + }, + methods: { searchQuery() { - this.loadData(1); + this.loadData(1) }, searchReset() { - this.queryParam = {} - this.$refs.cuttingInbounDetailList.dataSource = [] - this.loadData(1); + this.queryParam = {} + this.$refs.cuttingInbounDetailList.dataSource = [] + 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 + 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) { - 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') - } - }, - }, - } + 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') + } + } + } + } }, - handleExportXls(fileName){ - if(!fileName || typeof fileName != "string"){ - fileName = "瀵煎嚭鏂囦欢" - } - let param = this.getQueryParams(); - if(this.selectedRowKeys && this.selectedRowKeys.length>0){ - param['selections'] = this.selectedRowKeys.join(",") - } - console.log("瀵煎嚭鍙傛暟",param) - downFile(this.url.exportXlsUrl,param).then((data)=>{ - if (!data) { - // this.$message.warning("鏂囦欢涓嬭浇澶辫触") - this.$notification.warning({ - message:'娑堟伅', - description:"鏂囦欢涓嬭浇澶辫触" - }); - return - } - if (typeof window.navigator.msSaveBlob !== 'undefined') { - window.navigator.msSaveBlob(new Blob([data],{type: 'application/vnd.ms-excel'}), fileName+'.xls') - }else{ - let url = window.URL.createObjectURL(new Blob([data],{type: 'application/vnd.ms-excel'})) - let link = document.createElement('a') - link.style.display = 'none' - link.href = url - link.setAttribute('download', fileName+'.xls') - document.body.appendChild(link) - link.click() - document.body.removeChild(link); //涓嬭浇瀹屾垚绉婚櫎鍏冪礌 - window.URL.revokeObjectURL(url); //閲婃斁鎺塨lob瀵硅薄 - } - }) + handleExportXls(fileName) { + if (!fileName || typeof fileName != 'string') { + fileName = '瀵煎嚭鏂囦欢' + } + let param = this.getQueryParams() + if (this.selectedRowKeys && this.selectedRowKeys.length > 0) { + param['selections'] = this.selectedRowKeys.join(',') + } + console.log('瀵煎嚭鍙傛暟', param) + downFile(this.url.exportXlsUrl, param).then((data) => { + if (!data) { + // this.$message.warning("鏂囦欢涓嬭浇澶辫触") + this.$notification.warning({ + message: '娑堟伅', + description: '鏂囦欢涓嬭浇澶辫触' + }) + return + } + if (typeof window.navigator.msSaveBlob !== 'undefined') { + window.navigator.msSaveBlob(new Blob([data], { type: 'application/vnd.ms-excel' }), fileName + '.xls') + } else { + let url = window.URL.createObjectURL(new Blob([data], { type: 'application/vnd.ms-excel' })) + let link = document.createElement('a') + link.style.display = 'none' + link.href = url + link.setAttribute('download', fileName + '.xls') + document.body.appendChild(link) + link.click() + document.body.removeChild(link) //涓嬭浇瀹屾垚绉婚櫎鍏冪礌 + window.URL.revokeObjectURL(url) //閲婃斁鎺塨lob瀵硅薄 + } + }) }, /* 瀵煎叆 */ - handleImportExcel(info){ - this.loading = true; - if (info.file.status !== 'uploading') { - console.log(info.file, info.fileList); - } - if (info.file.status === 'done') { - this.loading = false; - if (info.file.response.success) { - // this.$message.success(`${info.file.name} 鏂囦欢涓婁紶鎴愬姛`); - if (info.file.response.code === 201) { - let { message, result: { msg, fileUrl, fileName } } = info.file.response - let href = window._CONFIG['domianURL'] + fileUrl - this.$warning({ - title: message, - content: (<div> - <span>{msg}</span><br/> - <span>鍏蜂綋璇︽儏璇� <a href={href} target="_blank" download={fileName}>鐐瑰嚮涓嬭浇</a> </span> - </div> - ) - }) - } else { - // this.$message.success(info.file.response.message || `${info.file.name} 鏂囦欢涓婁紶鎴愬姛`) - this.$notification.success({ - message:'娑堟伅', - description:info.file.response.message || `${info.file.name} 鏂囦欢涓婁紶鎴愬姛` - }); - } - this.loadData() - } else { - // this.$message.error(`${info.file.name} ${info.file.response.message}.`); - this.$notification.error({ - message:'娑堟伅', - description:`${info.file.name} ${info.file.response.message}.` - }); - } - } else if (info.file.status === 'error') { - this.loading = false; - if (info.file.response.status === 500) { - let data = info.file.response - const token = Vue.ls.get(ACCESS_TOKEN) - if (token && data.message.includes("Token澶辨晥")) { - this.$error({ - title: '鐧诲綍宸茶繃鏈�', - content: '寰堟姳姝夛紝鐧诲綍宸茶繃鏈燂紝璇烽噸鏂扮櫥褰�', - okText: '閲嶆柊鐧诲綍', - mask: false, - onOk: () => { - store.dispatch('Logout').then(() => { - Vue.ls.remove(ACCESS_TOKEN) - window.location.reload(); + handleImportExcel(info) { + this.loading = true + if (info.file.status !== 'uploading') { + console.log(info.file, info.fileList) + } + if (info.file.status === 'done') { + this.loading = false + if (info.file.response.success) { + // this.$message.success(`${info.file.name} 鏂囦欢涓婁紶鎴愬姛`); + if (info.file.response.code === 201) { + let { message, result: { msg, fileUrl, fileName } } = info.file.response + let href = window._CONFIG['domianURL'] + fileUrl + this.$warning({ + title: message, + content: (<div> + <span>{msg}</span><br /> + <span>鍏蜂綋璇︽儏璇� <a href={href} target="_blank" download={fileName}>鐐瑰嚮涓嬭浇</a> </span> + </div> + ) }) - } - }) + } else { + // this.$message.success(info.file.response.message || `${info.file.name} 鏂囦欢涓婁紶鎴愬姛`) + this.$notification.success({ + message: '娑堟伅', + description: info.file.response.message || `${info.file.name} 鏂囦欢涓婁紶鎴愬姛` + }) + } + this.loadData() + } else { + // this.$message.error(`${info.file.name} ${info.file.response.message}.`); + this.$notification.error({ + message: '娑堟伅', + description: `${info.file.name} ${info.file.response.message}.` + }) } - } else { - // this.$message.error(`鏂囦欢涓婁紶澶辫触: ${info.file.msg} `); - this.$notification.error({ - message:'娑堟伅', - description:`鏂囦欢涓婁紶澶辫触: ${info.file.msg} ` - }); - } - } + } else if (info.file.status === 'error') { + this.loading = false + if (info.file.response.status === 500) { + let data = info.file.response + const token = Vue.ls.get(ACCESS_TOKEN) + if (token && data.message.includes('Token澶辨晥')) { + this.$error({ + title: '鐧诲綍宸茶繃鏈�', + content: '寰堟姳姝夛紝鐧诲綍宸茶繃鏈燂紝璇烽噸鏂扮櫥褰�', + okText: '閲嶆柊鐧诲綍', + mask: false, + onOk: () => { + store.dispatch('Logout').then(() => { + Vue.ls.remove(ACCESS_TOKEN) + window.location.reload() + }) + } + }) + } + } else { + // this.$message.error(`鏂囦欢涓婁紶澶辫触: ${info.file.msg} `); + this.$notification.error({ + message: '娑堟伅', + description: `鏂囦欢涓婁紶澶辫触: ${info.file.msg} ` + }) + } + } }, - /** - * 鍗曟嵁鎻愪氦 - */ + // 鍗曟嵁鎻愪氦 + 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('璇烽�夋嫨涓�鏉¤褰曪紒') + if (!this.url.submit) { + this.$message.error('璇疯缃畊rl.submit灞炴��!') return - } else { - targetId = this.selectedRowKeys[0] - } - } + } - // 灏嗗弬鏁颁綔涓烘煡璇㈠弬鏁伴檮鍔犲埌URL涓� - let httpurl = this.url.submit + '?orderId=' + encodeURIComponent(targetId) - let method = 'get' - var params = {} // 娓呯┖params锛屽洜涓哄弬鏁板凡缁忓湪URL涓紶閫� + let targetId = id // 浠庡弬鏁拌幏鍙朓D + // 濡傛灉娌℃湁閫氳繃鍙傛暟浼犻�扞D锛屽垯妫�鏌ラ�変腑鐨勮褰� + if (!targetId) { + if (this.selectedRowKeys.length != 1) { + this.$message.warning('璇烽�夋嫨涓�鏉¤褰曪紒') + return + } else { + targetId = this.selectedRowKeys[0] + } + } - const that = this + // 灏嗗弬鏁颁綔涓烘煡璇㈠弬鏁伴檮鍔犲埌URL涓� + let httpurl = this.url.submit + '?orderId=' + encodeURIComponent(targetId) + let method = 'get' + var params = {} // 娓呯┖params锛屽洜涓哄弬鏁板凡缁忓湪URL涓紶閫� - this.$confirm({ - title: '纭鎻愪氦锛�', - // content: '姝e湪鎻愪氦鏁版嵁锛岃鑰愬績绛夊緟...', - okText: '纭', - cancelText: '鍙栨秷', - onOk() { - // 鏄剧ず鍔犺浇鎻愮ず - const hide = that.$message.loading('姝e湪鎻愪氦鏁版嵁锛岃鑰愬績绛夊緟...', 0); + const that = this - // 鍙戦�佽姹� - 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 - }) - } - }) - }, + 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) + } + }).catch(error => { + hide() // 闅愯棌鍔犺浇鎻愮ず + that.$message.error('鎻愪氦澶辫触: ' + error.message) + }).finally(() => { + that.loading = false + }) + } + }) + } // /** // * 鍗曟嵁鎻愪氦锛堟敮鎸佸疄鏃惰繘搴︽洿鏂帮級 @@ -614,10 +614,9 @@ // }) // }, - - } - } + } +} </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/CuttingReceiveDetailList.vue b/src/views/cms/CuttingReceiveDetailList.vue index dc1113d..1688387 100644 --- a/src/views/cms/CuttingReceiveDetailList.vue +++ b/src/views/cms/CuttingReceiveDetailList.vue @@ -1,46 +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" /> @@ -59,104 +61,109 @@ </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> - import '@/assets/less/TableExpand.less' - import { mixinDevice } from '@/utils/mixin' - import { JeecgListMixin } from '@/mixins/JeecgListMixin' +import '@/assets/less/TableExpand.less' +import { mixinDevice } from '@/utils/mixin' +import { JeecgListMixin } from '@/mixins/JeecgListMixin' - export default { - name: 'CuttingReceiveDetailList', - mixins:[JeecgListMixin, mixinDevice], - components: { - }, - data () { +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; + 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' } - }, - { - title:'鍒�鍏风紪鐮�', - align:"center", - dataIndex: 'cuttingCode' - }, - { - title:'鍒�鍏峰悕绉�', - align:"center", - dataIndex: 'cuttingName' - }, - { - 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", + ], + 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 + }, + 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:'inventoryId',text:'搴撳瓨ID'}) - fieldList.push({type:'string',value:'workpieceMaterial',text:'宸ヤ欢鏉愯川'}) - fieldList.push({type:'int',value:'usedLife',text:'浣跨敤瀵垮懡'}) - this.superFieldList = fieldList + }, + created() { + this.getSuperFieldList() + }, + computed: { + importExcelUrl: function() { + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}` } - }, - mounted() { - this.$bus.$on('getToolingStorageData', (data) => { - this.queryParam.orderId = data.id; - this.searchQuery(); - }) - } - } + }, + 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> - @import '~@assets/less/common.less'; +@import '~@assets/less/common.less'; </style> \ No newline at end of file diff --git a/src/views/cms/CuttingReceiveList.vue b/src/views/cms/CuttingReceiveList.vue index 36899db..b99b965 100644 --- a/src/views/cms/CuttingReceiveList.vue +++ b/src/views/cms/CuttingReceiveList.vue @@ -1,108 +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> - - <!-- 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 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> - <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"> + <!-- 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> - <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> + <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"> - <span slot="action" slot-scope="text, record"> - <a @click="handleEdit(record)">缂栬緫</a> + <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>--> + + <!-- <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> <a-divider type="vertical" /> <a-dropdown> <a class="ant-dropdown-link">鏇村 <a-icon type="down" /></a> @@ -110,24 +128,35 @@ <a-menu-item> <a @click="handleDetail(record)">璇︽儏</a> </a-menu-item> - <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 @click="handleSubmit(record.id)" :disabled="record.orderStatus === '3'">鎻愪氦</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 @click="handleBack(record.id)">褰掕繕</a> </a-menu-item> </a-menu> </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> @@ -137,178 +166,235 @@ import { JeecgListMixin } from '@/mixins/JeecgListMixin' import CuttingReceiveModal from './modules/CuttingReceiveModal' import CuttingReceiveDetailList from './CuttingReceiveDetailList' +import { httpAction } from '@api/manage' export default { - 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' - }, - { - 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' - - }, - 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) { + name: 'CuttingReceiveList', + mixins: [JeecgListMixin, mixinDevice], + components: { + CuttingReceiveModal, + CuttingReceiveDetailList + }, + data() { 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') - } + 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' } } - let children = e.target.parentNode.children - for (let i = 0; i < children.length; i++) { - children[i].classList.add('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') + } + } + } + } + }, + + /** + * 鍗曟嵁鎻愪氦 + */ + 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 + } 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 { + that.$message.warning(res.message) + } + }).catch(error => { + hide() // 闅愯棌鍔犺浇鎻愮ず + that.$message.error('鎻愪氦澶辫触: ' + error.message) + }).finally(() => { + that.loading = false + }) + } + }) + }, + //TODO锛氬垁鍏峰綊杩� handleBack + } } </script> <style scoped> diff --git a/src/views/cms/modules/CuttingReceiveModal.vue b/src/views/cms/modules/CuttingReceiveModal.vue index 75531e4..804ed5f 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,229 +176,226 @@ 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: '鎿嶄綔', - dataIndex: 'action', - align: 'center', - 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) + 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 } - this.$nextTick(() => { - this.form.setFieldsValue( - pick(this.model, 'receiver', 'receiveTime', 'receiveComment', 'confirmer', 'confirmTime', 'confirmComment' - , 'returnFlag', 'returnTime', 'returnComment', 'returnConfirmer', 'returnConfirmTime', 'returnConfirmComment') - ) + }, + 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) }) - }, - 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 - - // 娣诲姞鏇存柊搴撳瓨鐘舵�佺殑閫昏緫 - const inventoryIds = this.dataSource.map(item => item.inventoryId) - const updateInventoryStatus = inventoryIds.length > 0 ? - //闇�瑕佸啓涓�涓洿鏂板簱瀛樼姸鎬佺殑鎺ュ彛鍦ㄥ悗绔紙杩樻病鍐�25/9/9锛� - postAction('/cms/inventory/updateStatus', { - ids: inventoryIds, - status: '寰呭嚭搴�' //璁句负寰呭嚭搴� - }) : Promise.resolve() - updateInventoryStatus.then(() => { - return postAction(that.url.add, formData) - }).then((res) => { - if (res.success) { - that.$message.success('棰嗙敤鎴愬姛') - that.$emit('ok', new Date()) - } else { - that.$message.warning(res.message) - } - }).catch((error) => { - that.$message.error('鎿嶄綔澶辫触: ' + error.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 -- Gitblit v1.9.3