From 1b8b8bafca4fe4c3556bda5e66e3ff6252bd7acc Mon Sep 17 00:00:00 2001 From: cuilei <ray_tsu1@163.com> Date: 星期一, 16 六月 2025 14:27:32 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/views/tms/requirement/ToolSharpeningList .vue | 11 src/views/dnc/base/modules/ProductStructure/Document/NcDocumentSearchNcModal.vue | 805 ++++++----- src/views/tms/modules/outBound/OutboundDetailSelectList.vue | 48 src/views/tms/requirement/modules/ToolsSharpeningModal.vue | 81 src/views/dnc/common/TableContextMenu.vue | 1 src/views/dnc/base/modules/ProductStructure/ProductStructureTree.vue | 824 ++++++----- src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue | 426 +++--- src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeTableList.vue | 316 ++-- src/views/tms/modules/baseTools/BaseToolsListRight.vue | 30 src/views/tms/modules/outBound/OutboundModal.vue | 35 src/views/tms/modules/outBound/OutboundOrderSelectList.vue | 4 src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue | 857 ++++++------ src/views/flowable/workflow/standardizedProcess/StandardizedProcessHandle.vue | 413 ++++++ src/views/dnc/base/modules/DeviceStructure/DeviceStructureMainTop.vue | 48 src/views/tms/modules/outBound/OutboundOrderModal.vue | 32 src/views/tms/stocktakingBound/ToolsStocktaKingBoundDetail.vue | 4 src/views/flowable/workflow/FlowTodo.vue | 18 src/views/tms/stocktakingBound/modules/ToolsStocktakingBoundModal.vue | 11 src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeModalForm.vue | 2 src/views/tms/stocktakingBound/modules/ToolSelectorModal.vue | 9 20 files changed, 2,348 insertions(+), 1,627 deletions(-) diff --git a/src/views/dnc/base/modules/DeviceStructure/DeviceStructureMainTop.vue b/src/views/dnc/base/modules/DeviceStructure/DeviceStructureMainTop.vue index bdca851..bb21be2 100644 --- a/src/views/dnc/base/modules/DeviceStructure/DeviceStructureMainTop.vue +++ b/src/views/dnc/base/modules/DeviceStructure/DeviceStructureMainTop.vue @@ -29,6 +29,7 @@ import HasSentDocumentTableList from './Document/HasSentDocumentTableList' import HasReceivedDocumentTableList from './Document/HasReceivedDocumentTableList' import DocumentBatchDeleteModal from '../../../common/DocumentBatchDeleteModal' +import { postAction } from '@api/manage' export default { name: 'DeviceStructureMainTop', @@ -44,7 +45,10 @@ tableContainerSize: 'small', currentTypeOfDevice: 7,// 浜у搧缁撴瀯鏍戜腑瀹氫箟鐨勮澶囧眰绾ype涓�7 currentRightClickedTableRowInfo: {}, - hasLoadedDataTabKeyArray: [] + hasLoadedDataTabKeyArray: [], + url:{ + submitProccess:'/dncFlow/dispatchFile/submitProccess' + } } }, created() { @@ -172,7 +176,47 @@ } }) }, - + handleAppoint(){ + const that = this + const { docId, param, attributionId,attributionType,publishFileId } = this.currentRightClickedTableRowInfo + that.$confirm({ + title: '鎻愮ず', + content: `纭瀹氬瀷鍚楋紵`, + okText: '纭', + cancelText: '鍙栨秷', + onOk: () => { + let dispatchFile = { + 'docId':docId, + 'attributionId':attributionId, + 'attributionType':attributionType, + 'fileId':publishFileId + } + postAction(this.url.submitProccess,dispatchFile) + .then(res => { + if (res.success) { + this.$message.success('娴佺▼鍙戣捣鎴愬姛') + } else { + that.$notification.error({ + message: '娑堟伅', + description: res.message + }) + } + }) + .catch(err => { + that.$notification.error({ + message: '娑堟伅', + description: err.message + }) + }) + .finally(() => { + that.$destroyAll() + }) + }, + onCancel: () => { + that.$destroyAll() + } + }) + }, /** * 鐐瑰嚮鎵归噺鍒犻櫎鍚庡嚭鐜板脊绐� * @param modalTitle 寮圭獥鏍囬 diff --git a/src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeModalForm.vue b/src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeModalForm.vue index cc8b2e5..3acc91b 100644 --- a/src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeModalForm.vue +++ b/src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeModalForm.vue @@ -49,7 +49,7 @@ deviceCustomTypeList: [], labelCol: { xs: { span: 24 }, - sm: { span: 6 } + sm: { span: 7 } }, wrapperCol: { xs: { span: 24 }, diff --git a/src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeTableList.vue b/src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeTableList.vue index 5619cec..549e6c6 100644 --- a/src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeTableList.vue +++ b/src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeTableList.vue @@ -8,162 +8,194 @@ </template> <script> -import { JeecgListMixin } from '@/mixins/JeecgListMixin' -import DeviceCustomTypeModal from '@views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeModal.vue' -import { deleteAction } from '@api/manage' + import { JeecgListMixin } from '@/mixins/JeecgListMixin' + import DeviceCustomTypeModal + from '@views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeModal.vue' + import { getAction, deleteAction } from '@api/manage' -export default { - name: 'DeviceCustomTypeTableList', - components: { DeviceCustomTypeModal }, - mixins: [JeecgListMixin], - props: { - currentTreeNodeInfo: { - type: Object - }, - size: { - type: String - } - }, - data() { - return { - disableMixinCreated: true, - columns: [ - // { - // title: '杞﹂棿', - // dataIndex: 'productionId_dictText', - // align: 'center' - // }, - { - title: '杞存暟', - dataIndex: 'deviceManagementCode_dictText', - align: 'center' - }, - { - title: '鏁版帶绯荤粺绫诲埆', - dataIndex: 'deviceManagementId_dictText', - align: 'center' - } - ], - dataSource: [], - currentRightClickedTypeInfo: {}, - currentClickedTypeInfo: {}, - url: { - list: '/nc/deviceType/getByBusinessId', - delete: '/nc/deviceType/delete' - } - } - }, - watch: { - currentTreeNodeInfo: { - handler(value) { - this.currentClickedTypeInfo = {} + export default { + name: 'DeviceCustomTypeTableList', + components: { DeviceCustomTypeModal }, + mixins: [JeecgListMixin], + props: { + currentTreeNodeInfo: { + type: Object }, - immediate: true - } - }, - created() { - this.$bus.$on('tableMenuItemMethodTrigger', this.triggerCorrespondingMethod) - this.$bus.$on('deviceCustomTypeAddSubmitSuccess', this.loadData) - }, - methods: { - setQueryParamAndLoadData() { - console.log('currentLevelInfo', this.currentTreeNodeInfo) - const { id, type } = this.currentTreeNodeInfo - this.queryParam = Object.assign({}, { attributionId: id, attributionType: type }) - this.dataSource = [] - this.loadData() + size: { + type: String + } }, - - customRow(record) { + data() { return { - style: { - backgroundColor: this.currentClickedTypeInfo.id === record.id ? '#BAE7FF' : 'transparent' - }, - on: { - contextmenu: event => { - event.preventDefault() - this.currentRightClickedTypeInfo = Object.assign({ param: 'deviceCustomType' }, record) - this.$emit('handleTableContextMenuOpen', this.currentRightClickedTypeInfo) + disableMixinCreated: true, + columns: [ + // { + // title: '杞﹂棿', + // dataIndex: 'productionId_dictText', + // align: 'center' + // }, + { + title: '杞存暟', + dataIndex: 'deviceManagementCode_dictText', + align: 'center' }, - click: () => { - if (this.currentClickedTypeInfo.id === record.id) return - this.currentClickedTypeInfo = Object.assign({}, record) - this.$bus.$emit('sendCurrentClickedTypeInfo', record) + { + title: '鏁版帶绯荤粺绫诲埆', + dataIndex: 'deviceManagementId_dictText', + align: 'center' } + ], + dataSource: [], + currentRightClickedTypeInfo: {}, + currentClickedTypeInfo: {}, + url: { + list: '/nc/deviceType/getByBusinessId', + delete: '/nc/deviceType/delete' } } }, - - /** - * 琛ㄦ牸鍒嗛〉銆佹帓搴忔敼鍙樸�佺瓫閫夋椂瑙﹀彂 - * @param pagination 鍒嗛〉鍣ㄩ�夐」 - * @param filters 绛涢�夐�夐」 - * @param sorter 鎺掑簭閫夐」 - */ - handleTableChange(pagination, filters, sorter) { - if (sorter.order) { - this.isorter.column = sorter.field - this.isorter.order = sorter.order === 'ascend' ? 'asc' : 'desc' - } else { - this.isorter.column = 'createTime' - this.isorter.order = 'desc' - } - for (let key in filters) { - this.filters[key] = filters[key].join(',') - } - this.ipagination = pagination - this.loadData() - }, - - /** - * 鍒犻櫎宸ュ簭鎴栧伐姝ュ眰绾ф坊鍔犵殑璁惧绫� - * @param tableRowInfo - */ - handleTypeDelete(tableRowInfo) { - const { id } = tableRowInfo - const { $confirm, url, loadData, $notification, $destroyAll } = this - $confirm({ - title: '鎻愮ず', - content: '纭鍒犻櫎姝ゆ潯璁板綍鍚楋紵', - okText: '纭', - okType: 'danger', - cancelText: '鍙栨秷', - onOk: () => { - if (!url.delete) { - this.$message.error('璇疯缃畊rl.delete灞炴��!') - return - } - - deleteAction(url.delete, { id: id }) - .then((res) => { - if (res.success) { - $notification.success({ - message: '娑堟伅', - description: res.message - }) - loadData() - } else { - $notification.warning({ - message: '娑堟伅', - description: res.message - }) - } - }) - .finally(() => { - $destroyAll() - }) + watch: { + currentTreeNodeInfo: { + handler(value) { + this.currentClickedTypeInfo = {} }, - onCancel: () => { - $destroyAll() - } - }) + immediate: true + } }, + created() { + this.$bus.$on('tableMenuItemMethodTrigger', this.triggerCorrespondingMethod) + this.$bus.$on('deviceCustomTypeAddSubmitSuccess', this.loadData) + }, + methods: { + setQueryParamAndLoadData() { + const { id, type } = this.currentTreeNodeInfo + this.queryParam = Object.assign({}, { attributionId: id, attributionType: type }) + this.dataSource = [] + this.loadData() + }, - triggerCorrespondingMethod({ methodName, modalTitle, tableRowInfo }) { - if (this[methodName] && tableRowInfo.param === 'deviceCustomType') this[methodName](tableRowInfo, modalTitle) + loadData() { + const params = this.getQueryParams()//鏌ヨ鏉′欢 + this.loading = true + getAction(this.url.list, params) + .then((res) => { + if (res.success) { + this.dataSource = res.result.records || res.result + const { autoClickedLevelInfo } = this.currentTreeNodeInfo + if (autoClickedLevelInfo) { + const tableRowRecord = this.dataSource.find(item => item.id === autoClickedLevelInfo.attributionId) + this.handleTableRowClick(tableRowRecord) + } + } else { + this.$message.warning(res.message) + } + }).finally(() => { + this.loading = false + }) + }, + + /** + * 鑷畾涔夎〃鏍艰鍔熻兘 + * @param record 琛ㄦ牸琛岃褰� + */ + customRow(record) { + return { + style: { + backgroundColor: this.currentClickedTypeInfo.id === record.id ? '#BAE7FF' : 'transparent' + }, + on: { + contextmenu: event => { + event.preventDefault() + this.currentRightClickedTypeInfo = Object.assign({ param: 'deviceCustomType' }, record) + this.$emit('handleTableContextMenuOpen', this.currentRightClickedTypeInfo) + }, + click: () => { + this.handleTableRowClick(record) + } + } + } + }, + + /** + * 琛ㄦ牸琛岀偣鍑讳簨浠� + * @param record 琛ㄦ牸琛岃褰� + */ + handleTableRowClick(record) { + if (this.currentClickedTypeInfo.id === record.id) return + this.currentClickedTypeInfo = Object.assign({}, record) + this.$bus.$emit('sendCurrentClickedTypeInfo', record) + }, + + /** + * 琛ㄦ牸鍒嗛〉銆佹帓搴忔敼鍙樸�佺瓫閫夋椂瑙﹀彂 + * @param pagination 鍒嗛〉鍣ㄩ�夐」 + * @param filters 绛涢�夐�夐」 + * @param sorter 鎺掑簭閫夐」 + */ + handleTableChange(pagination, filters, sorter) { + if (sorter.order) { + this.isorter.column = sorter.field + this.isorter.order = sorter.order === 'ascend' ? 'asc' : 'desc' + } else { + this.isorter.column = 'createTime' + this.isorter.order = 'desc' + } + for (let key in filters) { + this.filters[key] = filters[key].join(',') + } + this.ipagination = pagination + this.loadData() + }, + + /** + * 鍒犻櫎宸ュ簭鎴栧伐姝ュ眰绾ф坊鍔犵殑璁惧绫� + * @param tableRowInfo + */ + handleTypeDelete(tableRowInfo) { + const { id } = tableRowInfo + const { $confirm, url, loadData, $notification, $destroyAll } = this + $confirm({ + title: '鎻愮ず', + content: '纭鍒犻櫎姝ゆ潯璁板綍鍚楋紵', + okText: '纭', + okType: 'danger', + cancelText: '鍙栨秷', + onOk: () => { + if (!url.delete) { + this.$message.error('璇疯缃畊rl.delete灞炴��!') + return + } + + deleteAction(url.delete, { id: id }) + .then((res) => { + if (res.success) { + $notification.success({ + message: '娑堟伅', + description: res.message + }) + loadData() + } else { + $notification.warning({ + message: '娑堟伅', + description: res.message + }) + } + }) + .finally(() => { + $destroyAll() + }) + }, + onCancel: () => { + $destroyAll() + } + }) + }, + + triggerCorrespondingMethod({ methodName, modalTitle, tableRowInfo }) { + if (this[methodName] && tableRowInfo.param === 'deviceCustomType') this[methodName](tableRowInfo, modalTitle) + } } } -} </script> <style scoped> diff --git a/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentSearchNcModal.vue b/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentSearchNcModal.vue index 14e6a1e..bc4c54c 100644 --- a/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentSearchNcModal.vue +++ b/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentSearchNcModal.vue @@ -49,7 +49,7 @@ </a-form-item> </a-col> - <a-col :md="11" :sm="11"> + <a-col :md="7" :sm="7"> <a-form-item label="涓婁紶鏃堕棿"> <a-range-picker v-model="date" value-format="YYYY-MM-DD" @change="handleDateChange" allow-clear></a-range-picker> @@ -66,7 +66,7 @@ <a-table :columns="columns" :data-source="dataSource" bordered :pagination="false" :loading="loading" :rowSelection="{selectedRowKeys: selectedRowKeys,selectedRows:selectionRows, onChange: onSelectChange}" - @change="handleTableChange" + @change="handleTableChange" :customRow="customRow" :scroll="{y:456}" :size="size" rowKey="docId"> <!-- 瀛楃涓茶秴闀挎埅鍙栫渷鐣ュ彿鏄剧ず--> @@ -120,430 +120,463 @@ </a-tabs> </div> </div> + + </a-modal> </template> <script> -import { getAction } from '@/api/manage' -import dncApi from '@/api/dnc' -import { JeecgListMixin } from '@/mixins/JeecgListMixin' + import { getAction } from '@/api/manage' + import dncApi from '@/api/dnc' + import { JeecgListMixin } from '@/mixins/JeecgListMixin' -export default { - name: 'NcDocumentSearchNcModal', - components: {}, - mixins: [JeecgListMixin], - props: { - currentDocumentInfo: { - type: Object - }, - size: { - type: String - } - }, - data() { - return { - disableMixinCreated: true, - visible: false, - title: '', - columns: [ - { - title: '搴忓彿', - dataIndex: 'rowIndex', - key: 'rowIndex', - width: 50, - align: 'center', - customRender: function(t, r, index) { - return parseInt(index) + 1 - } - }, - { - title: '鑺傜偣鍚嶇О', - dataIndex: 'nodeName', - align: 'center', - width: 80, - sorter: false - }, - { - title: '鑺傜偣浠e彿', - dataIndex: 'nodeCode', - align: 'center', - width: 80, - sorter: false - }, - { - title: '鏁版帶绯荤粺绫诲埆', - dataIndex: 'deviceName', - align: 'center', - width: 80, - sorter: false - }, - { - title: '杞存暟', - dataIndex: 'deviceCode', - align: 'center', - width: 50, - sorter: false - }, - { - title: '鏂囦欢鍚嶇О', - dataIndex: 'docName', - key: 'docName', - align: 'center', - scopedSlots: { customRender: 'docName' }, - width: 240, - sorter: true - }, - { - title: '鍑哄簱鐘舵��', - dataIndex: 'pullStatus_dictText', - key: 'pullStatus', - align: 'center', - width: 80, - filters: [ - { text: '鏈嚭搴�', value: 1 }, - { text: '宸插嚭搴�', value: 2 } - ] - }, - { - title: '鐘� 鎬�', - dataIndex: 'docDispatchStatus_dictText', - key: 'docDispatchStatus', - align: 'center', - width: 60, - filters: [ - { text: '缂栧埗', value: 1 }, - { text: '鏍″', value: 2 }, - { text: '鎵瑰噯', value: 3 }, - { text: '璇曞垏', value: 4 }, - { text: '瀹氬瀷', value: 5 } - ] - }, - { - title: '鍒涘缓鏃堕棿', - dataIndex: 'createTime', - align: 'center', - width: 150, - sorter: true - } - ], - searchValue: '', - searchInput: '', - spinning: false, - treeDataSource: [], - allTreeKeys: [], - checkedKeys: [], - expandedKeys: [], - autoExpandParent: true, - isExpandAllTreeNode: true, - date: [], - url: { - list: '/nc/product/query/nc' + export default { + name: 'NcDocumentSearchNcModal', + components: {}, + mixins: [JeecgListMixin], + props: { + currentDocumentInfo: { + type: Object + }, + size: { + type: String } - } - }, - watch: { - visible: { - handler(value) { - if (value) { - this.resetData() - this.loadData() - this.getDocumentAssignDeviceTreeByApi() + }, + data() { + return { + disableMixinCreated: true, + visible: false, + title: '', + columns: [ + { + title: '搴忓彿', + dataIndex: 'rowIndex', + key: 'rowIndex', + width: 50, + align: 'center', + customRender: function(t, r, index) { + return parseInt(index) + 1 + } + }, + { + title: '鑺傜偣鍚嶇О', + dataIndex: 'nodeName', + align: 'center', + width: 80, + sorter: false + }, + { + title: '鑺傜偣浠e彿', + dataIndex: 'nodeCode', + align: 'center', + width: 80, + sorter: false + }, + { + title: '鏁版帶绯荤粺绫诲埆', + dataIndex: 'deviceName', + align: 'center', + width: 80, + sorter: false + }, + { + title: '杞存暟', + dataIndex: 'deviceCode', + align: 'center', + width: 50, + sorter: false + }, + { + title: '鏂囦欢鍚嶇О', + dataIndex: 'docName', + key: 'docName', + align: 'center', + scopedSlots: { customRender: 'docName' }, + width: 240, + sorter: true + }, + { + title: '鍑哄簱鐘舵��', + dataIndex: 'pullStatus_dictText', + key: 'pullStatus', + align: 'center', + width: 80, + filters: [ + { text: '鏈嚭搴�', value: 1 }, + { text: '宸插嚭搴�', value: 2 } + ] + }, + { + title: '鐘� 鎬�', + dataIndex: 'docDispatchStatus_dictText', + key: 'docDispatchStatus', + align: 'center', + width: 60, + filters: [ + { text: '缂栧埗', value: 1 }, + { text: '鏍″', value: 2 }, + { text: '鎵瑰噯', value: 3 }, + { text: '璇曞垏', value: 4 }, + { text: '瀹氬瀷', value: 5 } + ] + }, + { + title: '鍒涘缓鏃堕棿', + dataIndex: 'createTime', + align: 'center', + width: 150, + sorter: true + } + ], + searchValue: '', + searchInput: '', + spinning: false, + fullScreenSpinning: false, + treeDataSource: [], + allTreeKeys: [], + checkedKeys: [], + expandedKeys: [], + autoExpandParent: true, + isExpandAllTreeNode: true, + date: [], + url: { + list: '/nc/product/query/nc' } } }, - isExpandAllTreeNode: { - handler(value) { - if (value) this.expandedKeys = this.allTreeKeys - else this.expandedKeys = [] - } - } - }, - created() { - this.$bus.$on('treeMenuItemMethodTrigger', this.triggerCorrespondingMethod) - }, - methods: { - handleSearchNc() { - this.visible = true - }, - // 鑾峰彇褰撳墠瀵瑰簲鏂囨。鍒楄〃 - loadData() { - this.dataSource = [] - if (!this.url.list) { - this.$message.error('璇疯缃畊rl.list灞炴��!') - return - } - var params = this.getQueryParams()//鏌ヨ鏉′欢 - if (!params) return false - params.attributionType = this.currentDocumentInfo.type - params.attributionId = this.currentDocumentInfo.key - this.loading = true - getAction(this.url.list, params).then((res) => { - if (res.success) this.dataSource = res.result - else this.$message.warning(res.message) - }).finally(() => { - this.loading = false - }) - }, - - // 鑾峰彇DNC璁惧鏍� - getDocumentAssignDeviceTreeByApi() { - this.spinning = true - this.treeDataSource = [] - dncApi.getDeviceTreeDataApi() - .then(res => { - if (res.success) { - this.dataList = [] - this.allTreeKeys = [] - this.treeDataSource = res.result - this.generateList(this.treeDataSource) - this.expandedKeys = this.allTreeKeys - } else { - this.$message.warn(res.message) + watch: { + visible: { + handler(value) { + if (value) { + this.resetData() + this.loadData() + this.getDocumentAssignDeviceTreeByApi() } - }) - .finally(() => { - this.spinning = false - }) - }, - - // 鏃堕棿閫夋嫨鍣ㄩ�夋嫨瀹屾垚鍚庤Е鍙� - handleDateChange(value) { - this.queryParam.startTime = value[0] - this.queryParam.endTime = value[1] - }, - - /** - * 琛ㄦ牸鍒嗛〉銆佹帓搴忔敼鍙樸�佺瓫閫夋椂瑙﹀彂 - * @param pagination 鍒嗛〉鍣ㄩ�夐」 - * @param filters 绛涢�夐�夐」 - * @param sorter 鎺掑簭閫夐」 - */ - handleTableChange(pagination, filters, sorter) { - if (sorter.order) { - this.isorter.column = sorter.field - this.isorter.order = sorter.order === 'ascend' ? 'asc' : 'desc' - } else { - this.isorter.column = 'createTime' - this.isorter.order = 'desc' + } + }, + isExpandAllTreeNode: { + handler(value) { + if (value) this.expandedKeys = this.allTreeKeys + else this.expandedKeys = [] + } } - for (let key in filters) { - this.filters[key] = filters[key].join(',') - } - this.loadData() }, + created() { + this.$bus.$on('treeMenuItemMethodTrigger', this.triggerCorrespondingMethod) + }, + methods: { + handleSearchNc() { + this.visible = true + }, - // 鎸囨淳鍒拌澶囩獥鍙g偣鍑荤‘瀹氭寚娲捐澶囧悗瑙﹀彂 - handleAssignDocumentToDevice() { - const { - checkedKeys, - selectedRowKeys, - selectionRows, - dataList, - $confirm, - $notification, - currentDocumentInfo, - queryParam: { applyReason }, - $destroyAll, - $bus - } = this - const { attributionId, attributionType } = currentDocumentInfo - const paramsArray = [] - // 杩囨护杞﹂棿key浠呮斁鍏ヨ澶噆ey - const treeCheckedDeviceKeys = [] - checkedKeys.forEach(checkedKey => { - const device = dataList.find(item => item.key === checkedKey && item.type === 2) - if (device) treeCheckedDeviceKeys.push(device.key) - }) - - if (treeCheckedDeviceKeys.length === 0 || selectedRowKeys.length === 0) { - $notification.warning({ - message: '娑堟伅', - description: '璇烽�夋嫨璁惧鎴栨枃妗�' + // 鑾峰彇褰撳墠瀵瑰簲鏂囨。鍒楄〃 + loadData() { + this.dataSource = [] + if (!this.url.list) { + this.$message.error('璇疯缃畊rl.list灞炴��!') + return + } + var params = this.getQueryParams()//鏌ヨ鏉′欢 + if (!params) return false + params.attributionType = this.currentDocumentInfo.type + params.attributionId = this.currentDocumentInfo.key + this.loading = true + getAction(this.url.list, params).then((res) => { + if (res.success) this.dataSource = res.result + else this.$message.warning(res.message) + }).finally(() => { + this.loading = false }) - return - } + }, - $confirm({ - title: '鎻愮ず', - content: `纭鎻愪氦鍚楋紵`, - okText: '纭', - cancelText: '鍙栨秷', - onOk: () => { - // 鍙岄噸寰幆纭畾姣忎竴缁勮澶囦笌鏂囨。鐨勫弬鏁� - treeCheckedDeviceKeys.forEach(deviceId => { - selectionRows.forEach(({ docId, publishFileId ,attributionId,attributionType}) => { - paramsArray.push({ - docId, - deviceId, - fileId: publishFileId, - attributionId, - attributionType, - applyReason - }) - }) + /** + * 鍒楄〃鑷畾涔夎 + * @param record 鍒楄〃琛岃褰� + */ + customRow(record) { + return { + style: { + cursor: 'pointer' + }, + on: { + click: () => { + let selectedRowKeys = [...this.selectedRowKeys] + let selectionRows = [...this.selectionRows] + if (selectedRowKeys.includes(record.docId)) { + selectedRowKeys = selectedRowKeys.filter(item => item !== record.docId) + selectionRows = selectionRows.filter(item => item.docId !== record.docId) + } else { + selectedRowKeys.push(record.docId) + selectionRows.push(record) + } + this.onSelectChange(selectedRowKeys, selectionRows) + }, + dblclick: () => { + this.$emit('searchTreeNode', record) + this.visible = false + } + } + } + }, + + // 鑾峰彇DNC璁惧鏍� + getDocumentAssignDeviceTreeByApi() { + this.spinning = true + this.treeDataSource = [] + dncApi.getDeviceTreeDataApi() + .then(res => { + if (res.success) { + this.dataList = [] + this.allTreeKeys = [] + this.treeDataSource = res.result + this.generateList(this.treeDataSource) + this.expandedKeys = this.allTreeKeys + } else { + this.$message.warn(res.message) + } }) + .finally(() => { + this.spinning = false + }) + }, - paramsArray.forEach(item => { - dncApi.assignDocumentToDeviceApi(item) - .then(res => { - if (res.success) { - $bus.$emit('reloadMainBottomTableData', 'useDocumentEquipment') - $notification.success({ - message: '娑堟伅', - description: res.message - }) - } else { - $notification.error({ - message: '娑堟伅', - description: res.message - }) - } - }) - .catch(err => { - $notification.error({ - message: '娑堟伅', - description: err.message + // 鏃堕棿閫夋嫨鍣ㄩ�夋嫨瀹屾垚鍚庤Е鍙� + handleDateChange(value) { + this.queryParam.startTime = value[0] + this.queryParam.endTime = value[1] + }, + + /** + * 琛ㄦ牸鍒嗛〉銆佹帓搴忔敼鍙樸�佺瓫閫夋椂瑙﹀彂 + * @param pagination 鍒嗛〉鍣ㄩ�夐」 + * @param filters 绛涢�夐�夐」 + * @param sorter 鎺掑簭閫夐」 + */ + handleTableChange(pagination, filters, sorter) { + if (sorter.order) { + this.isorter.column = sorter.field + this.isorter.order = sorter.order === 'ascend' ? 'asc' : 'desc' + } else { + this.isorter.column = 'createTime' + this.isorter.order = 'desc' + } + for (let key in filters) { + this.filters[key] = filters[key].join(',') + } + this.loadData() + }, + + // 鎸囨淳鍒拌澶囩獥鍙g偣鍑荤‘瀹氭寚娲捐澶囧悗瑙﹀彂 + handleAssignDocumentToDevice() { + const { + checkedKeys, + selectedRowKeys, + selectionRows, + dataList, + $confirm, + $notification, + currentDocumentInfo, + queryParam: { applyReason }, + $destroyAll, + $bus + } = this + const { attributionId, attributionType } = currentDocumentInfo + const paramsArray = [] + // 杩囨护杞﹂棿key浠呮斁鍏ヨ澶噆ey + const treeCheckedDeviceKeys = [] + checkedKeys.forEach(checkedKey => { + const device = dataList.find(item => item.key === checkedKey && item.type === 2) + if (device) treeCheckedDeviceKeys.push(device.key) + }) + + if (treeCheckedDeviceKeys.length === 0 || selectedRowKeys.length === 0) { + $notification.warning({ + message: '娑堟伅', + description: '璇烽�夋嫨璁惧鎴栨枃妗�' + }) + return + } + + $confirm({ + title: '鎻愮ず', + content: `纭鎻愪氦鍚楋紵`, + okText: '纭', + cancelText: '鍙栨秷', + onOk: () => { + // 鍙岄噸寰幆纭畾姣忎竴缁勮澶囦笌鏂囨。鐨勫弬鏁� + treeCheckedDeviceKeys.forEach(deviceId => { + selectionRows.forEach(({ docId, publishFileId, attributionId, attributionType }) => { + paramsArray.push({ + docId, + deviceId, + fileId: publishFileId, + attributionId, + attributionType, + applyReason }) }) - .finally(() => { - $destroyAll() - }) - }) - }, - onCancel: () => { - $destroyAll() - } - }) - }, + }) - /* 杈撳叆鏌ヨ鍐呭鍙樺寲鏃惰Е鍙� */ - handleSearchInputChange() { - let search = this.searchInput - console.log('data', this.dataList) - console.log('search', search) - let expandedKeys = this.dataList - .map(item => { - if (item.title != null) { - if (item.title.indexOf(search) > -1) { - return this.getParentKey(item.key, this.treeDataSource) - } - return null + paramsArray.forEach(item => { + dncApi.assignDocumentToDeviceApi(item) + .then(res => { + if (res.success) { + $bus.$emit('reloadMainBottomTableData', 'useDocumentEquipment') + $notification.success({ + message: '娑堟伅', + description: res.message + }) + } else { + $notification.error({ + message: '娑堟伅', + description: res.message + }) + } + }) + .catch(err => { + $notification.error({ + message: '娑堟伅', + description: err.message + }) + }) + .finally(() => { + $destroyAll() + }) + }) + }, + onCancel: () => { + $destroyAll() } }) - .filter((item, i, self) => item && self.indexOf(item) === i) - Object.assign(this, { - expandedKeys, - searchValue: search, - autoExpandParent: true - }) - }, + }, - /** - * 鏍戣妭鐐瑰睍寮�鍚堝苟鏃惰Е鍙� - * @param expandedKeys 灞曞紑椤筴ey - */ - handleTreeNodeExpand(expandedKeys) { - this.expandedKeys = expandedKeys - this.autoExpandParent = false - }, + /* 杈撳叆鏌ヨ鍐呭鍙樺寲鏃惰Е鍙� */ + handleSearchInputChange() { + let search = this.searchInput + console.log('data', this.dataList) + console.log('search', search) + let expandedKeys = this.dataList + .map(item => { + if (item.title != null) { + if (item.title.indexOf(search) > -1) { + return this.getParentKey(item.key, this.treeDataSource) + } + return null + } + }) + .filter((item, i, self) => item && self.indexOf(item) === i) + Object.assign(this, { + expandedKeys, + searchValue: search, + autoExpandParent: true + }) + }, - /** - * 鏍戣妭鐐瑰閫夋閫変腑鏃惰Е鍙� - * @param selectedKeys 閫変腑鑺傜偣key - * @param {node} node 鑺傜偣瀵硅薄 - */ - handleTreeNodeCheck(checkedKeys, { node }) { - let record = node.dataRef - this.checkedKeys = checkedKeys - }, + /** + * 鏍戣妭鐐瑰睍寮�鍚堝苟鏃惰Е鍙� + * @param expandedKeys 灞曞紑椤筴ey + */ + handleTreeNodeExpand(expandedKeys) { + this.expandedKeys = expandedKeys + this.autoExpandParent = false + }, - /** - * 鏍戣妭鐐归�変腑鏃惰Е鍙戯紙妯℃嫙鏍戣妭鐐瑰閫夋閫変腑鏃剁殑鏁堟灉锛� - * @param selectedKeys 閫変腑鑺傜偣key - * @param {node} node 鑺傜偣瀵硅薄 - */ - handleTreeNodeSelect(selectedKeys, { node }) { - node.$el.childNodes[1].click() - }, + /** + * 鏍戣妭鐐瑰閫夋閫変腑鏃惰Е鍙� + * @param selectedKeys 閫変腑鑺傜偣key + * @param {node} node 鑺傜偣瀵硅薄 + */ + handleTreeNodeCheck(checkedKeys, { node }) { + let record = node.dataRef + this.checkedKeys = checkedKeys + }, - /** - * 閫掑綊鑾峰緱杈撳叆椤圭殑鐖剁骇key - * @param key 瀛愰」key - * @param tree 瀛愰」 - */ - getParentKey(key, tree) { - let parentKey - for (let i = 0; i < tree.length; i++) { - const node = tree[i] - if (node.children) { - if (node.children.some(item => item.key === key)) { - parentKey = node.key - console.log('parentKey', parentKey) - } else if ( - this.getParentKey(key, node.children)) { - parentKey = this.getParentKey(key, node.children) + /** + * 鏍戣妭鐐归�変腑鏃惰Е鍙戯紙妯℃嫙鏍戣妭鐐瑰閫夋閫変腑鏃剁殑鏁堟灉锛� + * @param selectedKeys 閫変腑鑺傜偣key + * @param {node} node 鑺傜偣瀵硅薄 + */ + handleTreeNodeSelect(selectedKeys, { node }) { + node.$el.childNodes[1].click() + }, + + /** + * 閫掑綊鑾峰緱杈撳叆椤圭殑鐖剁骇key + * @param key 瀛愰」key + * @param tree 瀛愰」 + */ + getParentKey(key, tree) { + let parentKey + for (let i = 0; i < tree.length; i++) { + const node = tree[i] + if (node.children) { + if (node.children.some(item => item.key === key)) { + parentKey = node.key + console.log('parentKey', parentKey) + } else if ( + this.getParentKey(key, node.children)) { + parentKey = this.getParentKey(key, node.children) + } } } - } - return parentKey - }, + return parentKey + }, - /** - * 閫掑綊鑾峰緱鎵�鏈夋爲鑺傜偣key - * @param data 璁惧鏍戞暟鎹� - */ - generateList(data) { - for (let i = 0; i < data.length; i++) { - const node = data[i] - const key = node.key - const title = node.title - const type = node.type - this.dataList.push({ key, title, type }) - this.allTreeKeys.push(key) - if (node.children) this.generateList(node.children) - } - }, + /** + * 閫掑綊鑾峰緱鎵�鏈夋爲鑺傜偣key + * @param data 璁惧鏍戞暟鎹� + */ + generateList(data) { + for (let i = 0; i < data.length; i++) { + const node = data[i] + const key = node.key + const title = node.title + const type = node.type + this.dataList.push({ key, title, type }) + this.allTreeKeys.push(key) + if (node.children) this.generateList(node.children) + } + }, - resetData() { - this.searchInput = '' - this.expandedKeys = [] - this.selectedRowKeys = [] - this.selectionRows = {} - this.checkedKeys = [] - this.filters = {} - this.isorter = Object.assign({}, this.defaultSorter) - }, + resetData() { + this.searchInput = '' + this.expandedKeys = [] + this.selectedRowKeys = [] + this.selectionRows = [] + this.checkedKeys = [] + this.filters = {} + this.isorter = Object.assign({}, this.defaultSorter) + }, - handleDelete() { - // 姝ゅ鍑芥暟涓哄睆钄絤ixins涓殑鍚屽悕鍑芥暟锛岄�氱敤鍑芥暟鍐欏湪鐖剁骇涓� - }, + handleDelete() { + // 姝ゅ鍑芥暟涓哄睆钄絤ixins涓殑鍚屽悕鍑芥暟锛岄�氱敤鍑芥暟鍐欏湪鐖剁骇涓� + }, - triggerCorrespondingMethod({ methodName, modalTitle }) { - if (this[methodName]) { - this[methodName]() - this.title = modalTitle + triggerCorrespondingMethod({ methodName, modalTitle }) { + if (this[methodName]) { + this[methodName]() + this.title = modalTitle + } } } } -} </script> <style scoped lang="less"> -/deep/ .ant-modal { - .tabs-container { - display: flex; - justify-content: space-between; + /deep/ .ant-modal { + .tabs-container { + display: flex; + justify-content: space-between; - .replaceSearch { - color: #40a9ff; - font-weight: bold; - background-color: rgb(204, 204, 204); + .replaceSearch { + color: #40a9ff; + font-weight: bold; + background-color: rgb(204, 204, 204); + } } } -} - -::-webkit-scrollbar { - width: 8px; -} + ::-webkit-scrollbar { + width: 8px; + } </style> \ No newline at end of file diff --git a/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue b/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue index 25d1a1a..c3c709f 100644 --- a/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue +++ b/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue @@ -17,234 +17,250 @@ </template> <script> -import { getAction } from '@/api/manage' -import { JeecgListMixin } from '@/mixins/JeecgListMixin' -import DocumentModal from '../../../../common/DocumentModal' -import NcDocumentAssignModal from './NcDocumentAssignModal' -import dncApi from '@api/dnc' + import { getAction } from '@/api/manage' + import { JeecgListMixin } from '@/mixins/JeecgListMixin' + import DocumentModal from '../../../../common/DocumentModal' + import NcDocumentAssignModal from './NcDocumentAssignModal' + import dncApi from '@api/dnc' -export default { - name: 'NcDocumentTableList', - components: { NcDocumentAssignModal, DocumentModal }, - mixins: [JeecgListMixin], - props: { - currentNCDocumentAttributionInfo: { - type: Object - }, - size: { - type: String - } - }, - data() { - return { - disableMixinCreated: true, - columns: [ - { - title: '搴忓彿', - dataIndex: 'rowIndex', - key: 'rowIndex', - width: 50, - align: 'center', - customRender: function(t, r, index) { - return parseInt(index) + 1 - } - }, - { - title: '鏂囦欢鍚嶇О', - dataIndex: 'docName', - key: 'docName', - align: 'center', - scopedSlots: {customRender: 'docName'}, - width: 500, - sorter: true - }, - { - title: '鍑哄簱鐘舵��', - dataIndex: 'pullStatus_dictText', - key: 'pullStatus', - align: 'center', - filters: [ - { text: '鏈嚭搴�', value: 1 }, - { text: '宸插嚭搴�', value: 2 } - ], - width: 100 - }, - { - title: '鐘舵��', - dataIndex: 'docDispatchStatus_dictText', - key: 'docDispatchStatus', - align: 'center', - filters: [ - { text: '缂栧埗', value: 1 }, - { text: '鏍″', value: 2 }, - { text: '鎵瑰噯', value: 3 }, - { text: '璇曞垏', value: 4 }, - { text: '瀹氬瀷', value: 5 } - ], - width: 70 - }, - { title: '绯荤粺鎸囧畾鐗堟湰', dataIndex: 'publishVersion', align: 'center', width: 120 }, - { - title: '鍒涘缓鏃堕棿', - dataIndex: 'createTime', - align: 'center', - width: 150, - sorter: true - } - ], - dataSource: [], - currentRightClickedDocumentInfo: {}, - currentClickedDocumentInfo: {}, - url: { - list: '/nc/doc/find/page' - } - } - }, - watch: { - currentNCDocumentAttributionInfo: { - handler(value) { - this.currentClickedDocumentInfo = this.currentRightClickedDocumentInfo = {} + export default { + name: 'NcDocumentTableList', + components: { NcDocumentAssignModal, DocumentModal }, + mixins: [JeecgListMixin], + props: { + currentNCDocumentAttributionInfo: { + type: Object }, - immediate: true - } - }, - created() { - this.$bus.$on('tableMenuItemMethodTrigger', this.triggerCorrespondingMethod) - }, - methods: { - loadData(arg) { - if (!this.url.list) { - this.$message.error('璇疯缃畊rl.list灞炴��!') - return + size: { + type: String } - console.log('currentNCDocumentAttributionInfo', this.currentNCDocumentAttributionInfo) - const { attributionId, attributionType, docClassCode } = this.currentNCDocumentAttributionInfo - //鍔犺浇鏁版嵁 鑻ヤ紶鍏ュ弬鏁�1鍒欏姞杞界涓�椤电殑鍐呭 - if (arg === 1) this.ipagination.current = 1 - var params = this.getQueryParams()//鏌ヨ鏉′欢 - params.attributionId = attributionId - params.attributionType = attributionType - params.docClassCode = docClassCode - if (!params) return false - this.dataSource = [] - this.loading = true - getAction(this.url.list + `/${this.ipagination.current}/${this.ipagination.pageSize}`, params).then((res) => { - if (res.success) { - this.dataSource = res.result.records - if (res.result.total) { - this.ipagination.total = res.result.total - } else { - this.ipagination.total = 0 - } - } else { - this.$message.warning(res.message) - } - }).finally(() => { - this.loading = false - }) }, - - customRow(record) { + data() { return { - style: { - backgroundColor: this.currentClickedDocumentInfo.docId === record.docId ? '#BAE7FF' : 'transparent' - }, - on: { - contextmenu: event => { - event.preventDefault() - this.currentRightClickedDocumentInfo = Object.assign({ param: 'NC' }, record) - this.$emit('handleTableContextMenuOpen', this.currentRightClickedDocumentInfo) + disableMixinCreated: true, + columns: [ + { + title: '搴忓彿', + dataIndex: 'rowIndex', + key: 'rowIndex', + width: 50, + align: 'center', + customRender: function(t, r, index) { + return parseInt(index) + 1 + } }, - click: () => { - if (this.currentClickedDocumentInfo.docId === record.docId) return - this.currentClickedDocumentInfo = Object.assign({}, record) - this.$bus.$emit('sendCurrentClickedDocumentInfo', record) + { + title: '鏂囦欢鍚嶇О', + dataIndex: 'docName', + key: 'docName', + align: 'center', + scopedSlots: { customRender: 'docName' }, + width: 500, + sorter: true + }, + { + title: '鍑哄簱鐘舵��', + dataIndex: 'pullStatus_dictText', + key: 'pullStatus', + align: 'center', + filters: [ + { text: '鏈嚭搴�', value: 1 }, + { text: '宸插嚭搴�', value: 2 } + ], + width: 100 + }, + { + title: '鐘舵��', + dataIndex: 'docDispatchStatus_dictText', + key: 'docDispatchStatus', + align: 'center', + filters: [ + { text: '缂栧埗', value: 1 }, + { text: '鏍″', value: 2 }, + { text: '鎵瑰噯', value: 3 }, + { text: '璇曞垏', value: 4 }, + { text: '瀹氬瀷', value: 5 } + ], + width: 70 + }, + { title: '绯荤粺鎸囧畾鐗堟湰', dataIndex: 'publishVersion', align: 'center', width: 120 }, + { + title: '鍒涘缓鏃堕棿', + dataIndex: 'createTime', + align: 'center', + width: 150, + sorter: true } + ], + dataSource: [], + currentRightClickedDocumentInfo: {}, + currentClickedDocumentInfo: {}, + url: { + list: '/nc/doc/find/page' } } }, - - /** - * 琛ㄦ牸鍒嗛〉銆佹帓搴忔敼鍙樸�佺瓫閫夋椂瑙﹀彂 - * @param pagination 鍒嗛〉鍣ㄩ�夐」 - * @param filters 绛涢�夐�夐」 - * @param sorter 鎺掑簭閫夐」 - */ - handleTableChange(pagination, filters, sorter) { - if (sorter.order) { - this.isorter.column = sorter.field - this.isorter.order = sorter.order === 'ascend' ? 'asc' : 'desc' - } else { - this.isorter.column = 'createTime' - this.isorter.order = 'desc' + watch: { + currentNCDocumentAttributionInfo: { + handler(value) { + this.currentClickedDocumentInfo = this.currentRightClickedDocumentInfo = {} + }, + immediate: true } - for (let key in filters) { - this.filters[key] = filters[key].join(',') - } - this.ipagination = pagination - this.loadData() }, - - handleDocumentEdit(record, modalTitle) { - if (!this.$refs.modalForm) return - this.$refs.modalForm.edit(record) - this.$refs.modalForm.title = modalTitle + created() { + this.$bus.$on('tableMenuItemMethodTrigger', this.triggerCorrespondingMethod) }, + methods: { + loadData(arg) { + if (!this.url.list) { + this.$message.error('璇疯缃畊rl.list灞炴��!') + return + } + const { attributionId, attributionType, docClassCode, autoClickedLevelInfo } = this.currentNCDocumentAttributionInfo + //鍔犺浇鏁版嵁 鑻ヤ紶鍏ュ弬鏁�1鍒欏姞杞界涓�椤电殑鍐呭 + if (arg === 1) this.ipagination.current = 1 + var params = this.getQueryParams()//鏌ヨ鏉′欢 + params.attributionId = attributionId + params.attributionType = attributionType + params.docClassCode = docClassCode + if (!params) return false + this.dataSource = [] + this.loading = true + getAction(this.url.list + `/${this.ipagination.current}/${this.ipagination.pageSize}`, params).then((res) => { + if (res.success) { + this.dataSource = res.result.records + if (autoClickedLevelInfo) { + const tableRowRecord = this.dataSource.find(item => item.docId === autoClickedLevelInfo.docId) + this.handleTableRowClick(tableRowRecord) + this.$bus.$emit('searchNcFinished') + } + if (res.result.total) { + this.ipagination.total = res.result.total + } else { + this.ipagination.total = 0 + } + } else { + this.$message.warning(res.message) + } + }).finally(() => { + this.loading = false + }) + }, - handleDocumentAssign(record, modalTitle) { - if (!this.$refs.documentAssignModalRef) return - this.$refs.documentAssignModalRef.title = modalTitle - this.$refs.documentAssignModalRef.visible = true - }, + /** + * 鑷畾涔夎〃鏍艰鍔熻兘 + * @param record 琛ㄦ牸琛岃褰� + */ + customRow(record) { + return { + style: { + backgroundColor: this.currentClickedDocumentInfo.docId === record.docId ? '#BAE7FF' : 'transparent' + }, + on: { + contextmenu: event => { + event.preventDefault() + this.currentRightClickedDocumentInfo = Object.assign({ param: 'NC' }, record) + this.$emit('handleTableContextMenuOpen', this.currentRightClickedDocumentInfo) + }, + click: () => { + this.handleTableRowClick(record) + } + } + } + }, - handleDocumentExtract(record){ - const that = this - const { docId,attributionId, attributionType } = record - that.$confirm({ - title: '鎻愮ず', - content: `纭鎻愬彇鍒�鍏峰悧锛焋, - okText: '纭', - cancelText: '鍙栨秷', - onOk: () => { - dncApi.extractToolsApi({ docId, attributionId, attributionType }) - .then(res => { - if (res.success) { - that.$notification.success({ - message: '娑堟伅', - description: `鎻愬彇鎴愬姛` - }) - } else { + /** + * 琛ㄦ牸琛岀偣鍑讳簨浠� + * @param record 琛ㄦ牸琛岃褰� + */ + handleTableRowClick(record) { + if (this.currentClickedDocumentInfo.docId === record.docId) return + this.currentClickedDocumentInfo = Object.assign({}, record) + this.$bus.$emit('sendCurrentClickedDocumentInfo', record) + }, + + /** + * 琛ㄦ牸鍒嗛〉銆佹帓搴忔敼鍙樸�佺瓫閫夋椂瑙﹀彂 + * @param pagination 鍒嗛〉鍣ㄩ�夐」 + * @param filters 绛涢�夐�夐」 + * @param sorter 鎺掑簭閫夐」 + */ + handleTableChange(pagination, filters, sorter) { + if (sorter.order) { + this.isorter.column = sorter.field + this.isorter.order = sorter.order === 'ascend' ? 'asc' : 'desc' + } else { + this.isorter.column = 'createTime' + this.isorter.order = 'desc' + } + for (let key in filters) { + this.filters[key] = filters[key].join(',') + } + this.ipagination = pagination + this.loadData() + }, + + handleDocumentEdit(record, modalTitle) { + if (!this.$refs.modalForm) return + this.$refs.modalForm.edit(record) + this.$refs.modalForm.title = modalTitle + }, + + handleDocumentAssign(record, modalTitle) { + if (!this.$refs.documentAssignModalRef) return + this.$refs.documentAssignModalRef.title = modalTitle + this.$refs.documentAssignModalRef.visible = true + }, + + handleDocumentExtract(record) { + const that = this + const { docId, attributionId, attributionType } = record + that.$confirm({ + title: '鎻愮ず', + content: `纭鎻愬彇鍒�鍏峰悧锛焋, + okText: '纭', + cancelText: '鍙栨秷', + onOk: () => { + dncApi.extractToolsApi({ docId, attributionId, attributionType }) + .then(res => { + if (res.success) { + that.$notification.success({ + message: '娑堟伅', + description: `鎻愬彇鎴愬姛` + }) + } else { + that.$notification.error({ + message: '娑堟伅', + description: res.message + }) + } + }) + .catch(err => { that.$notification.error({ message: '娑堟伅', - description: res.message + description: err.message }) - } - }) - .catch(err => { - that.$notification.error({ - message: '娑堟伅', - description: err.message }) - }) - .finally(() => { - that.$destroyAll() - }) - }, - onCancel: () => { - that.$destroyAll() - } - }) - }, + .finally(() => { + that.$destroyAll() + }) + }, + onCancel: () => { + that.$destroyAll() + } + }) + }, - handleDelete() { - // 姝ゅ鍑芥暟涓哄睆钄絤ixins涓殑鍚屽悕鍑芥暟锛岄�氱敤鍑芥暟鍐欏湪鐖剁骇涓� - }, + handleDelete() { + // 姝ゅ鍑芥暟涓哄睆钄絤ixins涓殑鍚屽悕鍑芥暟锛岄�氱敤鍑芥暟鍐欏湪鐖剁骇涓� + }, - triggerCorrespondingMethod({ methodName, level, modalTitle, tableRowInfo }) { - if (this[methodName] && tableRowInfo.param === 'NC') this[methodName](tableRowInfo, modalTitle) + triggerCorrespondingMethod({ methodName, level, modalTitle, tableRowInfo }) { + if (this[methodName] && tableRowInfo.param === 'NC') this[methodName](tableRowInfo, modalTitle) + } } } -} </script> <style scoped> diff --git a/src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue b/src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue index a63cbc8..e0d1f7d 100644 --- a/src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue +++ b/src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue @@ -30,478 +30,481 @@ </template> <script> -import dncApi from '@/api/dnc' -import NcDocumentTableList from './Document/NcDocumentTableList' -import OtherDocumentTableList from './Document/OtherDocumentTableList' -import TableContextMenu from '../../../common/TableContextMenu' -import DocumentBatchDeleteModal from '../../../common/DocumentBatchDeleteModal' -import DeviceCustomTypeTableList - from '@views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeTableList.vue' -import { getAction } from '@api/manage' + import dncApi from '@/api/dnc' + import NcDocumentTableList from './Document/NcDocumentTableList' + import OtherDocumentTableList from './Document/OtherDocumentTableList' + import TableContextMenu from '../../../common/TableContextMenu' + import DocumentBatchDeleteModal from '../../../common/DocumentBatchDeleteModal' + import DeviceCustomTypeTableList + from '@views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeTableList.vue' + import { getAction } from '@api/manage' -export default { - name: 'ProductStructureMainTop', - components: { - DeviceCustomTypeTableList, - DocumentBatchDeleteModal, - TableContextMenu, - OtherDocumentTableList, - NcDocumentTableList - }, - data() { - return { - activeTabKey: 2, - tableContainerSize: 'small', - isProcessHasDeviceTypeList: false, - isProcessStepHasDeviceTypeList: false, - currentRightClickedTableRowInfo: {}, - currentTreeNodeInfo: {}, - currentClickedTypeInfo: {}, - currentNCDocumentAttributionInfo: {},//褰撳墠NC鏂囨。鐨勬墍灞炵骇鍗崇埗绾х殑璇︾粏淇℃伅锛堝紩鍏ヨ澶囩被鍚嶯C鎸傝浇鑷宠澶囩被涓嬪弽涔嬪垯鎸傝浇鍦ㄥ伐搴忓拰宸ユ涓嬶級 - hasLoadedDataTabKeyArray: [] - } - }, - created() { - this.$bus.$on('sendCurrentTreeNodeInfo', this.receiveCurrentTreeNodeInfo) - this.$bus.$on('sendCurrentClickedTypeInfo', this.receiveCurrentClickedTypeInfo) - this.$bus.$on('reloadDocumentListData', this.reloadDocumentListData) - this.$bus.$on('tableMenuItemMethodTrigger', this.triggerCorrespondingMethod) - this.getDeviceTypeListDisplayPermission('dnc_device_type_process', 'isProcessHasDeviceTypeList') - this.getDeviceTypeListDisplayPermission('dnc_device_type_step', 'isProcessStepHasDeviceTypeList') - }, - beforeDestroy() { - this.$bus.$off('sendCurrentTreeNodeInfo', this.receiveCurrentTreeNodeInfo) - this.$bus.$off('sendCurrentClickedTypeInfo', this.receiveCurrentClickedTypeInfo) - this.$bus.$off('reloadDocumentListData', this.reloadDocumentListData) - this.$bus.$off('tableMenuItemMethodTrigger', this.triggerCorrespondingMethod) - }, - methods: { - /** - * 鑾峰彇璁惧绫诲瀷鍒楄〃鍦ㄥ伐搴忓拰宸ユ灞傜骇鐨勫睍绀烘潈闄� - * @param settingKey 鍚勫眰绾у睍绀烘潈闄恔ey - * @param dataProperty 缁勪欢data涓殑灞炴�у�肩敤鏉ユ帶鍒舵槸鍚﹀睍绀� - */ - getDeviceTypeListDisplayPermission(settingKey, dataProperty) { - getAction(`/system/sysParams/query/by/settingKey?settingKey=${settingKey}`).then(res => { - if (res.success) { - this[dataProperty] = res.result.settingValue === '1' - } - }) + export default { + name: 'ProductStructureMainTop', + components: { + DeviceCustomTypeTableList, + DocumentBatchDeleteModal, + TableContextMenu, + OtherDocumentTableList, + NcDocumentTableList }, - - /** - * 鎺ユ敹鏍戠粍浠朵紶鏉ョ殑褰撳墠閫変腑鐨勬爲鑺傜偣淇℃伅 - * @param treeNodeInfo 鏍戣妭鐐逛俊鎭� - */ - receiveCurrentTreeNodeInfo(treeNodeInfo) { - console.log('treeNodeInfo', treeNodeInfo) - const { id, type } = treeNodeInfo - // 浠庢爲缁勪欢鎺ュ彈鏍戣妭鐐逛俊鎭悗浠庣埗缁勪欢娴佸叆瀛愮粍浠跺苟閲嶇疆鏁版嵁 - this.currentClickedTypeInfo = this.currentRightClickedTableRowInfo = {} - this.currentTreeNodeInfo = treeNodeInfo - this.currentNCDocumentAttributionInfo = Object.assign({}, { - attributionId: id, - attributionType: type, - docClassCode: 'NC' - }) - this.hasLoadedDataTabKeyArray = [] - - if (+type === 5 || +type === 6) { - this.activeTabKey = 1 - this.$nextTick(() => { - if (this.$refs.deviceCustomTypeTableList) { - this.$refs.deviceCustomTypeTableList.setQueryParamAndLoadData() - // 鍒囨崲鏍戜箣鍚庢竻绌篘C绋嬪簭鍒楄〃 - if (this.$refs.ncDocumentTableListRef && this.$refs.ncDocumentTableListRef.dataSource.length > 0) this.$refs.ncDocumentTableListRef.dataSource = [] - } else if (this.$refs.ncDocumentTableListRef) this.$refs.ncDocumentTableListRef.loadData(1) - }) - } else { - this.activeTabKey = 2 - this.$nextTick(() => { - if (this.$refs.otherDocumentTableListRef) this.$refs.otherDocumentTableListRef.loadData(1) - }) - } - this.hasLoadedDataTabKeyArray.push(this.activeTabKey) - }, - - /** - * 鎺ュ彈褰撳墠鐐瑰嚮鐨勮澶囩被淇℃伅 - * @param record 褰撳墠鐐瑰嚮鐨勮澶囩被琛屼俊鎭� - */ - receiveCurrentClickedTypeInfo(record) { - const { id, attributionType } = record - this.currentClickedTypeInfo = Object.assign({}, record) - this.currentNCDocumentAttributionInfo = Object.assign({}, { - attributionId: id, - attributionType, - docClassCode: 'NC' - }) - this.$nextTick(() => { - if (this.$refs.ncDocumentTableListRef) this.$refs.ncDocumentTableListRef.loadData(1) - }) - }, - - /** - * 鎺у埗鍙抽敭鑿滃崟寮�鍚� - * @param record 褰撳墠琛ㄦ牸琛屼俊鎭� - */ - handleTableContextMenuOpen(record) { - this.currentRightClickedTableRowInfo = Object.assign({}, record) - this.$refs.tableContextMenuRef.currentMenuLevel = record.param - this.$refs.tableContextMenuRef.menuStyle.top = event.clientY + 'px' - this.$refs.tableContextMenuRef.menuStyle.left = event.clientX + 'px' - this.$refs.tableContextMenuRef.menuVisible = true - document.body.addEventListener('click', this.handleMenuClose) - }, - - /** - * tab鏍忓垏鎹㈡椂瑙﹀彂 - * @param activeTabKey 鍒囨崲鍚庣殑tabKey - */ - handleTabChange(activeTabKey) { - if (!this.hasLoadedDataTabKeyArray.includes(activeTabKey)) { - this.$nextTick(() => { - if (this.$refs.otherDocumentTableListRef) this.$refs.otherDocumentTableListRef.loadData(1) - }) - // 闃绘鎺ュ彛鍦ㄥ悓涓�鏂囨。涓�娆$偣鍑诲唴澶氭瑙﹀彂 - this.hasLoadedDataTabKeyArray.push(activeTabKey) + data() { + return { + activeTabKey: 2, + tableContainerSize: 'small', + isProcessHasDeviceTypeList: false, + isProcessStepHasDeviceTypeList: false, + currentRightClickedTableRowInfo: {}, + currentTreeNodeInfo: {}, + currentClickedTypeInfo: {}, + currentNCDocumentAttributionInfo: {},//褰撳墠NC鏂囨。鐨勬墍灞炵骇鍗崇埗绾х殑璇︾粏淇℃伅锛堝紩鍏ヨ澶囩被鍚嶯C鎸傝浇鑷宠澶囩被涓嬪弽涔嬪垯鎸傝浇鍦ㄥ伐搴忓拰宸ユ涓嬶級 + hasLoadedDataTabKeyArray: [] } }, + created() { + this.$bus.$on('sendCurrentTreeNodeInfo', this.receiveCurrentTreeNodeInfo) + this.$bus.$on('sendCurrentClickedTypeInfo', this.receiveCurrentClickedTypeInfo) + this.$bus.$on('reloadDocumentListData', this.reloadDocumentListData) + this.$bus.$on('tableMenuItemMethodTrigger', this.triggerCorrespondingMethod) + this.getDeviceTypeListDisplayPermission('dnc_device_type_process', 'isProcessHasDeviceTypeList') + this.getDeviceTypeListDisplayPermission('dnc_device_type_step', 'isProcessStepHasDeviceTypeList') + }, + beforeDestroy() { + this.$bus.$off('sendCurrentTreeNodeInfo', this.receiveCurrentTreeNodeInfo) + this.$bus.$off('sendCurrentClickedTypeInfo', this.receiveCurrentClickedTypeInfo) + this.$bus.$off('reloadDocumentListData', this.reloadDocumentListData) + this.$bus.$off('tableMenuItemMethodTrigger', this.triggerCorrespondingMethod) + }, + methods: { + /** + * 鑾峰彇璁惧绫诲瀷鍒楄〃鍦ㄥ伐搴忓拰宸ユ灞傜骇鐨勫睍绀烘潈闄� + * @param settingKey 鍚勫眰绾у睍绀烘潈闄恔ey + * @param dataProperty 缁勪欢data涓殑灞炴�у�肩敤鏉ユ帶鍒舵槸鍚﹀睍绀� + */ + getDeviceTypeListDisplayPermission(settingKey, dataProperty) { + getAction(`/system/sysParams/query/by/settingKey?settingKey=${settingKey}`).then(res => { + if (res.success) { + this[dataProperty] = res.result.settingValue === '1' + } + }) + }, - /** - * 鏂囨。浠ュ強NC绋嬪簭瀵煎叆/鍑哄簱/鍏ュ簱/鍙栨秷鍑哄簱/鍙戝竷/褰掓。鎴愬姛鍚庤Е鍙戦噸鏂板姞杞芥枃妗e垪琛� - * @param docClassCode 鏂囨。绫诲埆 - * @param attributionType 鏂囨。鐖剁骇type绫诲瀷 - * @param attributionId 鏂囨。鐖剁骇Id - */ - reloadDocumentListData({ docClassCode, attributionType, attributionId }) { - console.log('docClassCode, attributionType, attributionId', docClassCode, attributionType, attributionId) - // 鍦ㄦ澶勮澶嘚C鏂囨。鐖剁骇鍙傛暟鏄彲姝ゆ柟娉曟槸缁撴瀯鏍戜互鍙婅澶囩被涓ょ涓嶅悓瀵煎叆鏂瑰紡鐨勫叡鍚屽嚭鍙� - this.currentNCDocumentAttributionInfo = Object.assign({}, { docClassCode, attributionId, attributionType }) + /** + * 鎺ユ敹鏍戠粍浠朵紶鏉ョ殑褰撳墠閫変腑鐨勬爲鑺傜偣淇℃伅 + * @param treeNodeInfo 鏍戣妭鐐逛俊鎭� + */ + receiveCurrentTreeNodeInfo(treeNodeInfo) { + const { id, type, autoClickedLevelInfo } = treeNodeInfo + // 浠庢爲缁勪欢鎺ュ彈鏍戣妭鐐逛俊鎭悗浠庣埗缁勪欢娴佸叆瀛愮粍浠跺苟閲嶇疆鏁版嵁 + this.currentClickedTypeInfo = this.currentRightClickedTableRowInfo = {} + this.currentTreeNodeInfo = treeNodeInfo + this.currentNCDocumentAttributionInfo = Object.assign({}, { + attributionId: id, + attributionType: type, + docClassCode: 'NC', + autoClickedLevelInfo + }) + this.hasLoadedDataTabKeyArray = [] - // 鍒ゆ柇褰撳墠鍙充晶灞曠ず鐨勬枃妗g殑鎵�灞炴槸鍚︽槸褰撳墠宸﹂敭閫変腑鏍戣妭鐐规垨璁惧绫伙紝鑻ヤ笉鏄綋鍓嶅乏閿�変腑鐨勫垯鍦ㄥ鍏ュ悗涓嶅埛鏂板彸渚х殑鏂囨。鍒楄〃(閬垮厤鏃犳晥鍒锋柊) - // 鍒ゆ柇鏄惁鏄湪鏂囨。鍒楄〃涓繘琛屽嚭搴�/鍏ュ簱/鍙戝竷/褰掓。绛夋搷浣�,鑻ユ槸鍦ㄦ枃妗e垪琛ㄤ腑鎿嶄綔鍒欐搷浣滄垚鍔熷悗鐩存帴鍒锋柊鏂囨。鍒楄〃 - if (!this.currentRightClickedTableRowInfo.hasOwnProperty('docId')) { - if (this.currentRightClickedTableRowInfo.hasOwnProperty('deviceManagementId')) { - // 姝ょ鎯呭喌鏄湪寮曞叆璁惧绫诲苟鍦ㄨ澶囩被鍒楄〃涓繘琛孨C鏂囨。瀵煎叆 - if (this.currentClickedTypeInfo.id !== attributionId) return + if (+type === 5 || +type === 6) { + this.activeTabKey = 1 + this.$nextTick(() => { + if (this.$refs.deviceCustomTypeTableList) { + this.$refs.deviceCustomTypeTableList.setQueryParamAndLoadData() + // 鍒囨崲鏍戜箣鍚庢竻绌篘C绋嬪簭鍒楄〃 + if (this.$refs.ncDocumentTableListRef && this.$refs.ncDocumentTableListRef.dataSource.length > 0) this.$refs.ncDocumentTableListRef.dataSource = [] + } + else if (this.$refs.ncDocumentTableListRef) this.$refs.ncDocumentTableListRef.loadData(1) + }) } else { - // 姝ょ鎯呭喌鏄湪缁撴瀯鏍戣妭鐐逛笂杩涜鏂囨。瀵煎叆 - if (this.currentTreeNodeInfo.id !== attributionId) return + this.activeTabKey = 2 + this.$nextTick(() => { + if (this.$refs.otherDocumentTableListRef) this.$refs.otherDocumentTableListRef.loadData(1) + }) } - } + this.hasLoadedDataTabKeyArray.push(this.activeTabKey) + }, - if (docClassCode === 'NC') { + /** + * 鎺ュ彈褰撳墠鐐瑰嚮鐨勮澶囩被淇℃伅 + * @param record 褰撳墠鐐瑰嚮鐨勮澶囩被琛屼俊鎭� + */ + receiveCurrentClickedTypeInfo(record) { + const { id, attributionType } = record + const { autoClickedLevelInfo } = this.currentTreeNodeInfo + this.currentClickedTypeInfo = Object.assign({}, record) + this.currentNCDocumentAttributionInfo = Object.assign({}, { + attributionId: id, + attributionType, + docClassCode: 'NC', + autoClickedLevelInfo + }) this.$nextTick(() => { if (this.$refs.ncDocumentTableListRef) this.$refs.ncDocumentTableListRef.loadData(1) }) - } else { - if (this.$refs.otherDocumentTableListRef) this.$refs.otherDocumentTableListRef.loadData(1) - } - }, + }, - // 涓嬭浇褰撳墠鍙抽敭閫変腑鏂囨。 - handleDownload() { - const that = this - const { docId, docName } = this.currentRightClickedTableRowInfo - dncApi.downloadDocumentApi({ docId, docName }) - .then(res => { - if (!res.success) { + /** + * 鎺у埗鍙抽敭鑿滃崟寮�鍚� + * @param record 褰撳墠琛ㄦ牸琛屼俊鎭� + */ + handleTableContextMenuOpen(record) { + this.currentRightClickedTableRowInfo = Object.assign({}, record) + this.$refs.tableContextMenuRef.currentMenuLevel = record.param + this.$refs.tableContextMenuRef.menuStyle.top = event.clientY + 'px' + this.$refs.tableContextMenuRef.menuStyle.left = event.clientX + 'px' + this.$refs.tableContextMenuRef.menuVisible = true + document.body.addEventListener('click', this.handleMenuClose) + }, + + /** + * tab鏍忓垏鎹㈡椂瑙﹀彂 + * @param activeTabKey 鍒囨崲鍚庣殑tabKey + */ + handleTabChange(activeTabKey) { + if (!this.hasLoadedDataTabKeyArray.includes(activeTabKey)) { + this.$nextTick(() => { + if (this.$refs.otherDocumentTableListRef) this.$refs.otherDocumentTableListRef.loadData(1) + }) + // 闃绘鎺ュ彛鍦ㄥ悓涓�鏂囨。涓�娆$偣鍑诲唴澶氭瑙﹀彂 + this.hasLoadedDataTabKeyArray.push(activeTabKey) + } + }, + + /** + * 鏂囨。浠ュ強NC绋嬪簭瀵煎叆/鍑哄簱/鍏ュ簱/鍙栨秷鍑哄簱/鍙戝竷/褰掓。鎴愬姛鍚庤Е鍙戦噸鏂板姞杞芥枃妗e垪琛� + * @param docClassCode 鏂囨。绫诲埆 + * @param attributionType 鏂囨。鐖剁骇type绫诲瀷 + * @param attributionId 鏂囨。鐖剁骇Id + */ + reloadDocumentListData({ docClassCode, attributionType, attributionId }) { + console.log('docClassCode, attributionType, attributionId', docClassCode, attributionType, attributionId) + // 鍦ㄦ澶勮澶嘚C鏂囨。鐖剁骇鍙傛暟鏄彲姝ゆ柟娉曟槸缁撴瀯鏍戜互鍙婅澶囩被涓ょ涓嶅悓瀵煎叆鏂瑰紡鐨勫叡鍚屽嚭鍙� + this.currentNCDocumentAttributionInfo = Object.assign({}, { docClassCode, attributionId, attributionType }) + + // 鍒ゆ柇褰撳墠鍙充晶灞曠ず鐨勬枃妗g殑鎵�灞炴槸鍚︽槸褰撳墠宸﹂敭閫変腑鏍戣妭鐐规垨璁惧绫伙紝鑻ヤ笉鏄綋鍓嶅乏閿�変腑鐨勫垯鍦ㄥ鍏ュ悗涓嶅埛鏂板彸渚х殑鏂囨。鍒楄〃(閬垮厤鏃犳晥鍒锋柊) + // 鍒ゆ柇鏄惁鏄湪鏂囨。鍒楄〃涓繘琛屽嚭搴�/鍏ュ簱/鍙戝竷/褰掓。绛夋搷浣�,鑻ユ槸鍦ㄦ枃妗e垪琛ㄤ腑鎿嶄綔鍒欐搷浣滄垚鍔熷悗鐩存帴鍒锋柊鏂囨。鍒楄〃 + if (!this.currentRightClickedTableRowInfo.hasOwnProperty('docId')) { + if (this.currentRightClickedTableRowInfo.hasOwnProperty('deviceManagementId')) { + // 姝ょ鎯呭喌鏄湪寮曞叆璁惧绫诲苟鍦ㄨ澶囩被鍒楄〃涓繘琛孨C鏂囨。瀵煎叆 + if (this.currentClickedTypeInfo.id !== attributionId) return + } else { + // 姝ょ鎯呭喌鏄湪缁撴瀯鏍戣妭鐐逛笂杩涜鏂囨。瀵煎叆 + if (this.currentTreeNodeInfo.id !== attributionId) return + } + } + + if (docClassCode === 'NC') { + this.$nextTick(() => { + if (this.$refs.ncDocumentTableListRef) this.$refs.ncDocumentTableListRef.loadData(1) + }) + } else { + if (this.$refs.otherDocumentTableListRef) this.$refs.otherDocumentTableListRef.loadData(1) + } + }, + + // 涓嬭浇褰撳墠鍙抽敭閫変腑鏂囨。 + handleDownload() { + const that = this + const { docId, docName } = this.currentRightClickedTableRowInfo + dncApi.downloadDocumentApi({ docId, docName }) + .then(res => { + if (!res.success) { + that.$notification.error({ + message: '娑堟伅', + description: res.message + }) + } + }) + .catch(err => { that.$notification.error({ message: '娑堟伅', - description: res.message + description: err.message }) + }) + }, + + // 鍒犻櫎褰撳墠鍙抽敭閫変腑鏂囨。 + handleDelete() { + const { docId, param, attributionId, attributionType } = this.currentRightClickedTableRowInfo + const that = this + that.$confirm({ + title: '鎻愮ず', + content: `鍒犻櫎鍚庝笉鍙彇娑堬紝纭鍒犻櫎鍚楋紵`, + okText: '纭', + cancelText: '鍙栨秷', + onOk: () => { + dncApi.deleteDocumentApi({ docId, attributionType, attributionId }) + .then((res) => { + if (res.success) { + that.$notification.success({ + message: '娑堟伅', + description: res.message + }) + that.reloadDocumentListData({ docClassCode: param, attributionId, attributionType }) + } else { + that.$notification.warning({ + message: '娑堟伅', + description: res.message + }) + } + }) + .finally(() => { + that.$destroyAll() + }) + }, + onCancel: () => { + that.$destroyAll() } }) - .catch(err => { - that.$notification.error({ - message: '娑堟伅', - description: err.message - }) + }, + + /** + * 鐐瑰嚮鎵归噺鍒犻櫎鍚庡嚭鐜板脊绐� + * @param modalTitle 寮圭獥鏍囬 + */ + handleBatchRemove(modalTitle) { + if (!this.$refs.documentBatchDeleteModalRef) return + this.$refs.documentBatchDeleteModalRef.title = modalTitle + this.$refs.documentBatchDeleteModalRef.visible = true + }, + + /** + * 鍑哄簱褰撳墠鍙抽敭閫変腑鏂囨。 + * @param menuLabel + */ + handlePull(menuLabel) { + const that = this + const { docId, docName, param, attributionId, attributionType } = this.currentRightClickedTableRowInfo + that.$confirm({ + title: '鎻愮ず', + content: `纭${menuLabel}鍚楋紵`, + okText: '纭', + cancelText: '鍙栨秷', + onOk: () => { + dncApi.documentOutboundApi({ docId, docName }) + .then(res => { + if (res.success) { + that.reloadDocumentListData({ docClassCode: param, attributionId, attributionType }) + that.$notification.success({ + message: '娑堟伅', + description: `${menuLabel}鎴愬姛` + }) + } else { + that.$notification.error({ + message: '娑堟伅', + description: res.message + }) + } + }) + .catch(err => { + that.$notification.error({ + message: '娑堟伅', + description: err.message + }) + }) + .finally(() => { + that.$destroyAll() + }) + }, + onCancel: () => { + that.$destroyAll() + } }) - }, + }, - // 鍒犻櫎褰撳墠鍙抽敭閫変腑鏂囨。 - handleDelete() { - const { docId, param, attributionId, attributionType } = this.currentRightClickedTableRowInfo - const that = this - that.$confirm({ - title: '鎻愮ず', - content: `鍒犻櫎鍚庝笉鍙彇娑堬紝纭鍒犻櫎鍚楋紵`, - okText: '纭', - cancelText: '鍙栨秷', - onOk: () => { - dncApi.deleteDocumentApi({docId,attributionType,attributionId}) - .then((res) => { - if (res.success) { - that.$notification.success({ - message: '娑堟伅', - description: res.message - }) - that.reloadDocumentListData({ docClassCode: param, attributionId, attributionType }) - } else { - that.$notification.warning({ - message: '娑堟伅', - description: res.message - }) - } - }) - .finally(() => { - that.$destroyAll() - }) - }, - onCancel: () => { - that.$destroyAll() - } - }) - }, - - /** - * 鐐瑰嚮鎵归噺鍒犻櫎鍚庡嚭鐜板脊绐� - * @param modalTitle 寮圭獥鏍囬 - */ - handleBatchRemove(modalTitle) { - if (!this.$refs.documentBatchDeleteModalRef) return - this.$refs.documentBatchDeleteModalRef.title = modalTitle - this.$refs.documentBatchDeleteModalRef.visible = true - }, - - /** - * 鍑哄簱褰撳墠鍙抽敭閫変腑鏂囨。 - * @param menuLabel - */ - handlePull(menuLabel) { - const that = this - const { docId, docName, param, attributionId, attributionType } = this.currentRightClickedTableRowInfo - that.$confirm({ - title: '鎻愮ず', - content: `纭${menuLabel}鍚楋紵`, - okText: '纭', - cancelText: '鍙栨秷', - onOk: () => { - dncApi.documentOutboundApi({ docId, docName }) - .then(res => { - if (res.success) { - that.reloadDocumentListData({ docClassCode: param, attributionId, attributionType }) - that.$notification.success({ - message: '娑堟伅', - description: `${menuLabel}鎴愬姛` - }) - } else { + /** + * 鍙栨秷鍑哄簱褰撳墠鍙抽敭閫変腑鏂囨。 + * @param menuLabel + */ + handleCancelPull(menuLabel) { + const that = this + const { docId, param, attributionId, attributionType } = this.currentRightClickedTableRowInfo + that.$confirm({ + title: '鎻愮ず', + content: `纭${menuLabel}鍚楋紵`, + okText: '纭', + cancelText: '鍙栨秷', + onOk: () => { + dncApi.documentCancelOutboundApi(docId) + .then(res => { + if (res.success) { + this.reloadDocumentListData({ docClassCode: param, attributionId, attributionType }) + that.$notification.success({ + message: '娑堟伅', + description: res.message + }) + } else { + that.$notification.error({ + message: '娑堟伅', + description: res.message + }) + } + }) + .catch(err => { that.$notification.error({ message: '娑堟伅', - description: res.message + description: err.message }) - } - }) - .catch(err => { - that.$notification.error({ - message: '娑堟伅', - description: err.message }) - }) - .finally(() => { - that.$destroyAll() - }) - }, - onCancel: () => { - that.$destroyAll() - } - }) - }, + .finally(() => { + that.$destroyAll() + }) + }, + onCancel() { + that.$destroyAll() + } + }) + }, - /** - * 鍙栨秷鍑哄簱褰撳墠鍙抽敭閫変腑鏂囨。 - * @param menuLabel - */ - handleCancelPull(menuLabel) { - const that = this - const { docId, param, attributionId, attributionType } = this.currentRightClickedTableRowInfo - that.$confirm({ - title: '鎻愮ず', - content: `纭${menuLabel}鍚楋紵`, - okText: '纭', - cancelText: '鍙栨秷', - onOk: () => { - dncApi.documentCancelOutboundApi(docId) - .then(res => { - if (res.success) { - this.reloadDocumentListData({ docClassCode: param, attributionId, attributionType }) - that.$notification.success({ - message: '娑堟伅', - description: res.message - }) - } else { + /** + * 鍙戝竷褰撳墠鍙抽敭閫変腑鏂囨。 + * @param menuLabel + */ + handlePublish(menuLabel) { + const that = this + const { docId, param, attributionId, attributionType } = this.currentRightClickedTableRowInfo + that.$confirm({ + title: '鎻愮ず', + content: `纭${menuLabel}鍚楋紵`, + okText: '纭', + cancelText: '鍙栨秷', + onOk: () => { + dncApi.documentPublishApi(docId) + .then(res => { + if (res.success) { + this.reloadDocumentListData({ docClassCode: param, attributionId, attributionType }) + this.$bus.$emit('reloadMainBottomTableData', 'documentVersion') + that.$notification.success({ + message: '娑堟伅', + description: res.message + }) + } else { + that.$notification.error({ + message: '娑堟伅', + description: res.message + }) + } + }) + .catch(err => { that.$notification.error({ message: '娑堟伅', - description: res.message + description: err.message }) - } - }) - .catch(err => { - that.$notification.error({ - message: '娑堟伅', - description: err.message }) - }) - .finally(() => { - that.$destroyAll() - }) - }, - onCancel() { - that.$destroyAll() - } - }) - }, + .finally(() => { + that.$destroyAll() + }) + }, + onCancel() { + that.$destroyAll() + } + }) + }, - /** - * 鍙戝竷褰撳墠鍙抽敭閫変腑鏂囨。 - * @param menuLabel - */ - handlePublish(menuLabel) { - const that = this - const { docId, param, attributionId, attributionType } = this.currentRightClickedTableRowInfo - that.$confirm({ - title: '鎻愮ず', - content: `纭${menuLabel}鍚楋紵`, - okText: '纭', - cancelText: '鍙栨秷', - onOk: () => { - dncApi.documentPublishApi(docId) - .then(res => { - if (res.success) { - this.reloadDocumentListData({ docClassCode: param, attributionId, attributionType }) - this.$bus.$emit('reloadMainBottomTableData', 'documentVersion') - that.$notification.success({ - message: '娑堟伅', - description: res.message - }) - } else { + /** + * 閲嶆柊鍙戝竷褰撳墠鍙抽敭閫変腑鏂囨。骞堕噸鏂板彂甯冮��鍥炰笂涓�鏂囨。鐗堟湰 + * @param menuLabel + */ + handleRepublish(menuLabel) { + const that = this + const { docId, param, attributionId, attributionType } = this.currentRightClickedTableRowInfo + that.$confirm({ + title: '鎻愮ず', + content: `纭${menuLabel}鍚楋紵`, + okText: '纭', + cancelText: '鍙栨秷', + onOk: () => { + dncApi.documentRepublishApi(docId) + .then(res => { + if (res.success) { + this.reloadDocumentListData({ docClassCode: param, attributionId, attributionType }) + that.$notification.success({ + message: '娑堟伅', + description: res.message + }) + } else { + that.$notification.error({ + message: '娑堟伅', + description: res.message + }) + } + }) + .catch(err => { that.$notification.error({ message: '娑堟伅', - description: res.message + description: err.message }) - } - }) - .catch(err => { - that.$notification.error({ - message: '娑堟伅', - description: err.message }) - }) - .finally(() => { - that.$destroyAll() - }) - }, - onCancel() { - that.$destroyAll() - } - }) - }, + .finally(() => { + that.$destroyAll() + }) + }, + onCancel() { + that.$destroyAll() + } + }) + }, - /** - * 閲嶆柊鍙戝竷褰撳墠鍙抽敭閫変腑鏂囨。骞堕噸鏂板彂甯冮��鍥炰笂涓�鏂囨。鐗堟湰 - * @param menuLabel - */ - handleRepublish(menuLabel) { - const that = this - const { docId, param, attributionId, attributionType } = this.currentRightClickedTableRowInfo - that.$confirm({ - title: '鎻愮ず', - content: `纭${menuLabel}鍚楋紵`, - okText: '纭', - cancelText: '鍙栨秷', - onOk: () => { - dncApi.documentRepublishApi(docId) - .then(res => { - if (res.success) { - this.reloadDocumentListData({ docClassCode: param, attributionId, attributionType }) - that.$notification.success({ - message: '娑堟伅', - description: res.message - }) - } else { + /** + * 褰掓。褰撳墠鍙抽敭閫変腑鏂囨。涓斿悗缁棤娉曠户缁彂甯冩垨褰掓。 + * @param menuLabel + */ + handlePigeonhole(menuLabel) { + const that = this + const { docId, param, attributionId, attributionType } = this.currentRightClickedTableRowInfo + that.$confirm({ + title: '鎻愮ず', + content: `${menuLabel}鍚庝笉鍙彇娑堬紝纭${menuLabel}鍚楋紵`, + okText: '纭', + cancelText: '鍙栨秷', + onOk: () => { + dncApi.documentPigeonholeApi(docId) + .then(res => { + if (res.success) { + this.reloadDocumentListData({ docClassCode: param, attributionId, attributionType }) + that.$notification.success({ + message: '娑堟伅', + description: res.message + }) + } else { + that.$notification.error({ + message: '娑堟伅', + description: res.message + }) + } + }) + .catch(err => { that.$notification.error({ message: '娑堟伅', - description: res.message + description: err.message }) - } - }) - .catch(err => { - that.$notification.error({ - message: '娑堟伅', - description: err.message }) - }) - .finally(() => { - that.$destroyAll() - }) - }, - onCancel() { - that.$destroyAll() - } - }) - }, - - /** - * 褰掓。褰撳墠鍙抽敭閫変腑鏂囨。涓斿悗缁棤娉曠户缁彂甯冩垨褰掓。 - * @param menuLabel - */ - handlePigeonhole(menuLabel) { - const that = this - const { docId, param, attributionId, attributionType } = this.currentRightClickedTableRowInfo - that.$confirm({ - title: '鎻愮ず', - content: `${menuLabel}鍚庝笉鍙彇娑堬紝纭${menuLabel}鍚楋紵`, - okText: '纭', - cancelText: '鍙栨秷', - onOk: () => { - dncApi.documentPigeonholeApi(docId) - .then(res => { - if (res.success) { - this.reloadDocumentListData({ docClassCode: param, attributionId, attributionType }) - that.$notification.success({ - message: '娑堟伅', - description: res.message - }) - } else { - that.$notification.error({ - message: '娑堟伅', - description: res.message - }) - } - }) - .catch(err => { - that.$notification.error({ - message: '娑堟伅', - description: err.message + .finally(() => { + that.$destroyAll() }) - }) - .finally(() => { - that.$destroyAll() - }) - }, - onCancel() { - that.$destroyAll() - } - }) - }, + }, + onCancel() { + that.$destroyAll() + } + }) + }, - // 鎺у埗鍙抽敭鑿滃崟鍏抽棴 - handleMenuClose() { - this.$refs.tableContextMenuRef.menuVisible = false - document.body.removeEventListener('click', this.handleMenuClose) - }, + // 鎺у埗鍙抽敭鑿滃崟鍏抽棴 + handleMenuClose() { + this.$refs.tableContextMenuRef.menuVisible = false + document.body.removeEventListener('click', this.handleMenuClose) + }, - triggerCorrespondingMethod({ methodName, modalTitle }) { - if (this[methodName]) this[methodName](modalTitle) + triggerCorrespondingMethod({ methodName, modalTitle }) { + if (this[methodName]) this[methodName](modalTitle) + } } } -} </script> <style scoped> -/deep/ .ant-table-tbody .ant-table-row { - cursor: pointer; -} + /deep/ .ant-table-tbody .ant-table-row { + cursor: pointer; + } </style> \ No newline at end of file diff --git a/src/views/dnc/base/modules/ProductStructure/ProductStructureTree.vue b/src/views/dnc/base/modules/ProductStructure/ProductStructureTree.vue index 9d8320b..7ca8dcb 100644 --- a/src/views/dnc/base/modules/ProductStructure/ProductStructureTree.vue +++ b/src/views/dnc/base/modules/ProductStructure/ProductStructureTree.vue @@ -4,7 +4,7 @@ <div style="display: flex;flex-direction: column;height: 100%"> <div style="display: flex;justify-content: space-between"> <a-input placeholder="杈撳叆鍏抽敭瀛楄繘琛屾悳绱�" allowClear v-model="searchInput" - @change="handleSearchInputChange" /> + @change="handleSearchInputChange"/> <!-- <a-tooltip title="鍒锋柊">--> <!-- <a-button icon="reload" @click="handleTreeReload" style="width: 18%;margin-left: 8px"></a-button>--> <!-- </a-tooltip>--> @@ -31,16 +31,16 @@ @select="handleTreeSelect" @expand="handleTreeExpand" @rightClick="handleTreeRightClick"> <template slot="title" slot-scope="{ label, parentId, key:treeKey,type}"> <ProductStructureTreeContextMenu ref="contextMenuRef" - :treeParams="{label,treeKey,searchValue,type}" /> + :treeParams="{label,treeKey,searchValue,type}"/> </template> - <a-icon slot="switcherIcon" type="down" /> - <a-icon slot="product" type="shopping" /> - <a-icon slot="component" type="camera" /> - <a-icon slot="part" type="hdd" /> - <a-icon slot="processSpecVersion" type="tag" /> - <a-icon slot="process" type="apartment" /> - <a-icon slot="processStep" type="tool" /> + <a-icon slot="switcherIcon" type="down"/> + <a-icon slot="product" type="shopping"/> + <a-icon slot="component" type="camera"/> + <a-icon slot="part" type="hdd"/> + <a-icon slot="processSpecVersion" type="tag"/> + <a-icon slot="process" type="apartment"/> + <a-icon slot="processStep" type="tool"/> </a-tree> </div> </div> @@ -48,421 +48,481 @@ <!--浜у搧寮圭獥--> <ProductModal ref="productModalFormRef" :currentTreeNodeInfo="rightClickSelected" - @submitSuccess="getTreeDataByApi" /> + @submitSuccess="getTreeDataByApi"/> <!--閮ㄤ欢寮圭獥--> - <ComponentModal :currentTreeNodeInfo="rightClickSelected" @submitSuccess="modalFormSubmitSuccess" /> + <ComponentModal :currentTreeNodeInfo="rightClickSelected" @submitSuccess="modalFormSubmitSuccess"/> <!--闆朵欢寮圭獥--> - <PartModal :currentTreeNodeInfo="rightClickSelected" @submitSuccess="modalFormSubmitSuccess" /> + <PartModal :currentTreeNodeInfo="rightClickSelected" @submitSuccess="modalFormSubmitSuccess"/> <!--宸ヨ壓瑙勭▼鐗堟湰寮圭獥--> - <ProcessSpecVersionModal :currentTreeNodeInfo="rightClickSelected" @submitSuccess="modalFormSubmitSuccess" /> + <ProcessSpecVersionModal :currentTreeNodeInfo="rightClickSelected" @submitSuccess="modalFormSubmitSuccess"/> <!--宸ュ簭寮圭獥--> - <ProcessModal :currentTreeNodeInfo="rightClickSelected" @submitSuccess="modalFormSubmitSuccess" /> + <ProcessModal :currentTreeNodeInfo="rightClickSelected" @submitSuccess="modalFormSubmitSuccess"/> <!--宸ユ寮圭獥--> - <ProcessStepModal :currentTreeNodeInfo="rightClickSelected" @submitSuccess="modalFormSubmitSuccess" /> + <ProcessStepModal :currentTreeNodeInfo="rightClickSelected" @submitSuccess="modalFormSubmitSuccess"/> <!--鏉冮檺閰嶇疆寮圭獥--> - <AssignPermissionModal :currentTreeNodeInfo="rightClickSelected" @submitSuccess="modalFormSubmitSuccess" /> + <AssignPermissionModal :currentTreeNodeInfo="rightClickSelected" @submitSuccess="modalFormSubmitSuccess"/> <!--妫�绱㈢數瀛愭ā鏉垮脊绐�--> - <NcDocumentSearchModal :currentDocumentInfo="rightClickSelected" @submitSuccess="modalFormSubmitSuccess" /> + <NcDocumentSearchModal :currentDocumentInfo="rightClickSelected" @submitSuccess="modalFormSubmitSuccess"/> <!--妫�绱C鏂囦欢寮圭獥--> - <NcDocumentSearchNcModal :currentDocumentInfo="rightClickSelected" @submitSuccess="modalFormSubmitSuccess" /> + <NcDocumentSearchNcModal :currentDocumentInfo="rightClickSelected" @searchTreeNode="searchTreeNode" + @submitSuccess="modalFormSubmitSuccess"/> <!--寮曠敤閮ㄤ欢--> - <NcComponentBorrowModal :currentBorrowInfo="rightClickSelected" @submitSuccess="modalFormSubmitSuccess" /> + <NcComponentBorrowModal :currentBorrowInfo="rightClickSelected" @submitSuccess="modalFormSubmitSuccess"/> <!--浜у搧缁撴瀯鏍戝熀鏈彸閿彍鍗�(绌虹櫧澶勮Е鍙�)--> - <ProductStructureBaseContextMenu ref="baseContextmenuRef" /> + <ProductStructureBaseContextMenu ref="baseContextmenuRef"/> + + <div class="full-screen-container" v-if="fullScreenSpinning"> + <a-spin :spinning="fullScreenSpinning" size="large" tip="NC鏂囦欢妫�绱腑..."/> + </div> </a-card> </template> <script> -import dncApi from '@/api/dnc' -import { deleteAction } from '@/api/manage' -import ProductStructureTreeContextMenu from './ProductStructureTreeContextMenu' -import ProductModal from './Product/ProductModal' -import ComponentModal from './Component/ComponentModal' -import PartModal from './Part/PartModal' -import ProcessSpecVersionModal from './ProcessSpecVersion/ProcessSpecVersionModal' -import ProcessModal from './Process/ProcessModal' -import ProcessStepModal from './ProcessStep/ProcessStepModal' -import AssignPermissionModal from './Permission/AssignPermissionModal' -import DeviceCustomTypeModal from '@views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeModal.vue' -import ProductStructureBaseContextMenu - from '@views/dnc/base/modules/ProductStructure/ProductStructureBaseContextMenu.vue' -import NcDocumentSearchModal from '@views/dnc/base/modules/ProductStructure/Document/NcDocumentSearchModal.vue' -import NcDocumentSearchNcModal from '@views/dnc/base/modules/ProductStructure/Document/NcDocumentSearchNcModal.vue' -import NcComponentBorrowModal from '@views/dnc/base/modules/ProductStructure/Document/NcComponentBorrowModal.vue' + import dncApi from '@/api/dnc' + import { deleteAction } from '@/api/manage' + import ProductStructureTreeContextMenu from './ProductStructureTreeContextMenu' + import ProductModal from './Product/ProductModal' + import ComponentModal from './Component/ComponentModal' + import PartModal from './Part/PartModal' + import ProcessSpecVersionModal from './ProcessSpecVersion/ProcessSpecVersionModal' + import ProcessModal from './Process/ProcessModal' + import ProcessStepModal from './ProcessStep/ProcessStepModal' + import AssignPermissionModal from './Permission/AssignPermissionModal' + import DeviceCustomTypeModal + from '@views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeModal.vue' + import ProductStructureBaseContextMenu + from '@views/dnc/base/modules/ProductStructure/ProductStructureBaseContextMenu.vue' + import NcDocumentSearchModal from '@views/dnc/base/modules/ProductStructure/Document/NcDocumentSearchModal.vue' + import NcDocumentSearchNcModal from '@views/dnc/base/modules/ProductStructure/Document/NcDocumentSearchNcModal.vue' + import NcComponentBorrowModal from '@views/dnc/base/modules/ProductStructure/Document/NcComponentBorrowModal.vue' -export default { - name: 'ProductStructureTree', - components: { - ProductStructureBaseContextMenu, - DeviceCustomTypeModal, - AssignPermissionModal, - ProcessStepModal, - ProcessModal, - ProcessSpecVersionModal, - PartModal, - ComponentModal, - ProductModal, - ProductStructureTreeContextMenu, - NcDocumentSearchModal, - NcDocumentSearchNcModal, - NcComponentBorrowModal - }, - data() { - return { - searchInput: '', - cardLoading: false, - loading: false, - treeDataSource: [], - selectedKeys: [], - expandedKeys: [], - beforeSearchExpandedKeys: [], - searchValue: '', - dataList: [], - autoExpandParent: true, - checkStrictly: true, - allTreeKeys: [], - rightClickSelected: {}, - url: { - delete: '/nc/product/delete' - } - } - }, - created() { - this.getTreeDataByApi() - this.$bus.$on('treeMenuItemMethodTrigger', this.triggerCorrespondingMethod) - }, - beforeDestroy() { - this.$bus.$off('treeMenuItemMethodTrigger', this.triggerCorrespondingMethod) - }, - methods: { - // 璋冪敤鎺ュ彛鑾峰彇鏍戠殑鏁版嵁 - getTreeDataByApi() { - this.loading = true - this.cardLoading = true - this.treeDataSource = [] - dncApi.getProductStructureTreeApi() - .then(res => { - if (res.success) { - this.dataList = [] - this.allTreeKeys = [] - this.treeDataSource = res.result - this.generateList(this.treeDataSource) - // this.expandedKeys = this.allTreeKeys - if (this.expandedKeys.length === 0) this.expandedKeys = this.beforeSearchExpandedKeys = [this.treeDataSource[0].id] - } else { - this.$message.warn(res.message) - } - }).finally(() => { - this.loading = false - this.cardLoading = false - }) + export default { + name: 'ProductStructureTree', + components: { + ProductStructureBaseContextMenu, + DeviceCustomTypeModal, + AssignPermissionModal, + ProcessStepModal, + ProcessModal, + ProcessSpecVersionModal, + PartModal, + ComponentModal, + ProductModal, + ProductStructureTreeContextMenu, + NcDocumentSearchModal, + NcDocumentSearchNcModal, + NcComponentBorrowModal }, - - /** - * 鏍戣妭鐐归�変腑鏃惰Е鍙� - * @param selectedKeys 閫変腑鑺傜偣key - * @param {node} node 鑺傜偣瀵硅薄 - */ - handleTreeSelect(selectedKeys, { node }) { - const that = this - let record = node.dataRef - const { id, type } = record - dncApi.getProductStructureTreeNodeEntityApi({ id, type }) - .then(res => { - if (res.success) { - let currentSelectedNodeInfo - if (res.result.length > 0) { - currentSelectedNodeInfo = Object.assign({}, record, { entity: res.result[0] }) - } else { - currentSelectedNodeInfo = {} - that.$notification.warning({ - message: '娑堟伅', - description: '鏆傛棤璇ヨ妭鐐硅缁嗕俊鎭�' - }) - } - // 鍚戝彸渚х埗绾х粍浠跺彂閫佸綋鍓嶉�変腑鏍戣妭鐐逛俊鎭� - this.$bus.$emit('sendCurrentTreeNodeInfo', currentSelectedNodeInfo) - } else { - that.$notification.error({ - message: '娑堟伅', - description: res.message - }) - } - }) - if (selectedKeys.length === 0) return - this.selectedKeys = selectedKeys - }, - - /** - * 鏍戣妭鐐瑰彸閿崟鍑昏妭鐐规椂瑙﹀彂 - * @param node 鑺傜偣瀵硅薄 - */ - handleTreeRightClick({ node }) { - if (this.$refs.baseContextmenuRef) this.$refs.baseContextmenuRef.menuVisible = false - const that = this - const record = node.dataRef - const { id, type } = record - dncApi.getProductStructureTreeNodeEntityApi({ id, type }) - .then(res => { - if (res.success) { - if (res.result.length > 0) { - that.rightClickSelected = Object.assign({}, record, { entity: res.result[0] }) - } else { - that.rightClickSelected = {} - that.$notification.warning({ - message: '娑堟伅', - description: '鏆傛棤璇ヨ妭鐐硅缁嗕俊鎭�' - }) - } - } else { - that.$notification.error({ - message: '娑堟伅', - description: res.message - }) - } - }) - }, - - // 鏍戣妭鐐瑰彸閿崟鍑昏彍鍗曚腑鍒犻櫎鎸夐挳鏃惰Е鍙� - handleDelete() { - const that = this - const { rightClickSelected: { id, type }, $confirm, url, $notification } = that - $confirm({ - title: '鎻愮ず', - content: '纭鍒犻櫎姝ゆ潯璁板綍鍚楋紵', - okText: '纭', - okType: 'danger', - cancelText: '鍙栨秷', - onOk: () => { - if (!url.delete) { - this.$message.error('璇疯缃畊rl.delete灞炴��!') - return - } - deleteAction(url.delete + `/${id}/${type}`) - .then((res) => { - if (res.success) { - that.getTreeDataByApi() - $notification.success({ - message: '娑堟伅', - description: res.message - }) - } else { - $notification.warning({ - message: '娑堟伅', - description: res.message - }) - } - }) - .finally(() => { - that.$destroyAll() - }) - }, - onCancel: () => { - that.$destroyAll() + data() { + return { + searchInput: '', + cardLoading: false, + loading: false, + treeDataSource: [], + selectedKeys: [], + expandedKeys: [], + beforeSearchExpandedKeys: [], + searchValue: '', + dataList: [], + autoExpandParent: true, + checkStrictly: true, + allTreeKeys: [], + rightClickSelected: {}, + fullScreenSpinning: false, + url: { + delete: '/nc/product/delete' } - }) + } }, - - /** - * 鑷姩灞曞紑娣诲姞涓嬬骇鑺傜偣鐨勭埗鑺傜偣 - * @param isAddNextLevel 鏄惁闇�瑕佸睍寮�涓嬬骇 - */ - modalFormSubmitSuccess(isAddNextLevel) { - // 鍒ゆ柇鏄惁涓烘坊鍔犱笅绾у苟涓斿垽鏂埗鑺傜偣鏄惁灞曞紑 - if (isAddNextLevel && !this.expandedKeys.includes(this.rightClickSelected.id)) this.expandedKeys.push(this.rightClickSelected.id) + created() { this.getTreeDataByApi() + this.$bus.$on('treeMenuItemMethodTrigger', this.triggerCorrespondingMethod) + this.$bus.$on('searchNcFinished', () => this.fullScreenSpinning = false) }, - - /** - * 鏍戣妭鐐瑰睍寮�鍚堝苟鏃惰Е鍙� - * @param expandedKeys 灞曞紑椤筴ey - */ - handleTreeExpand(expandedKeys) { - this.expandedKeys = this.beforeSearchExpandedKeys = expandedKeys - this.autoExpandParent = false + beforeDestroy() { + this.$bus.$off('treeMenuItemMethodTrigger', this.triggerCorrespondingMethod) }, + methods: { + // 璋冪敤鎺ュ彛鑾峰彇鏍戠殑鏁版嵁 + getTreeDataByApi() { + this.loading = true + this.cardLoading = true + this.treeDataSource = [] + dncApi.getProductStructureTreeApi() + .then(res => { + if (res.success) { + this.dataList = [] + this.allTreeKeys = [] + this.treeDataSource = res.result + this.generateList(this.treeDataSource) + // this.expandedKeys = this.allTreeKeys + if (this.expandedKeys.length === 0) this.expandedKeys = this.beforeSearchExpandedKeys = [this.treeDataSource[0].id] + } else { + this.$message.warn(res.message) + } + }).finally(() => { + this.loading = false + this.cardLoading = false + }) + }, - // 杈撳叆鏌ヨ鍐呭鍙樺寲鏃惰Е鍙戯紙澧炲姞闃叉姈鏈哄埗锛� - handleSearchInputChange() { - const that = this - let timer - if (timer) clearTimeout(timer) - timer = setTimeout(function() { - that.searchAndExpandTreeNode() // 鍔犲皬鎷彿璋冪敤鍑芥暟 - }, 1000) - }, - - // 闃叉姈鍑芥暟涓Е鍙戞悳绱㈠苟灞曞紑鏍戣妭鐐� - searchAndExpandTreeNode() { - let search = this.searchInput - let expandedKeys - let autoExpandParent - if (search !== '') { - expandedKeys = this.dataList - .map(item => { - if (item.title != null) { - if (item.title.indexOf(search) > -1) { - return this.getParentKey(item.key, this.treeDataSource) + /** + * 鏍戣妭鐐归�変腑鏃惰Е鍙� + * @param selectedKeys 閫変腑鑺傜偣key + * @param eventOrRecord 鑺傜偣瀵硅薄鎴栬�呮墜鍔ㄤ紶鍏ecord + */ + handleTreeSelect(selectedKeys, eventOrRecord) { + const that = this + let record = eventOrRecord.node ? eventOrRecord.node.dataRef : eventOrRecord + const { id, type } = record + dncApi.getProductStructureTreeNodeEntityApi({ id, type }) + .then(res => { + if (res.success) { + let currentSelectedNodeInfo + if (res.result.length > 0) { + currentSelectedNodeInfo = Object.assign({}, record, { entity: res.result[0] }) + } else { + currentSelectedNodeInfo = {} + that.$notification.warning({ + message: '娑堟伅', + description: '鏆傛棤璇ヨ妭鐐硅缁嗕俊鎭�' + }) } - return null + // 鍚戝彸渚х埗绾х粍浠跺彂閫佸綋鍓嶉�変腑鏍戣妭鐐逛俊鎭� + this.$bus.$emit('sendCurrentTreeNodeInfo', currentSelectedNodeInfo) + } else { + that.$notification.error({ + message: '娑堟伅', + description: res.message + }) } }) - .filter((item, i, self) => item && self.indexOf(item) === i) - autoExpandParent = true - } else { - expandedKeys = this.beforeSearchExpandedKeys - autoExpandParent = false - } - Object.assign(this, { - expandedKeys, - searchValue: search, - autoExpandParent - }) - }, + if (selectedKeys.length === 0) return + this.selectedKeys = selectedKeys + }, - /** - * 閫掑綊鑾峰緱杈撳叆椤圭殑鐖剁骇key - * @param key 瀛愰」key - * @param tree 瀛愰」 - */ - getParentKey(key, tree) { - let parentKey - for (let i = 0; i < tree.length; i++) { - const node = tree[i] - if (node.children) { - if (node.children.some(item => item.key === key)) { - parentKey = node.key - } else if ( - this.getParentKey(key, node.children)) { - parentKey = this.getParentKey(key, node.children) + /** + * 鏍戣妭鐐瑰彸閿崟鍑昏妭鐐规椂瑙﹀彂 + * @param node 鑺傜偣瀵硅薄 + */ + handleTreeRightClick({ node }) { + if (this.$refs.baseContextmenuRef) this.$refs.baseContextmenuRef.menuVisible = false + const that = this + const record = node.dataRef + const { id, type } = record + dncApi.getProductStructureTreeNodeEntityApi({ id, type }) + .then(res => { + if (res.success) { + if (res.result.length > 0) { + that.rightClickSelected = Object.assign({}, record, { entity: res.result[0] }) + } else { + that.rightClickSelected = {} + that.$notification.warning({ + message: '娑堟伅', + description: '鏆傛棤璇ヨ妭鐐硅缁嗕俊鎭�' + }) + } + } else { + that.$notification.error({ + message: '娑堟伅', + description: res.message + }) + } + }) + }, + + // 鏍戣妭鐐瑰彸閿崟鍑昏彍鍗曚腑鍒犻櫎鎸夐挳鏃惰Е鍙� + handleDelete() { + const that = this + const { rightClickSelected: { id, type }, $confirm, url, $notification } = that + $confirm({ + title: '鎻愮ず', + content: '纭鍒犻櫎姝ゆ潯璁板綍鍚楋紵', + okText: '纭', + okType: 'danger', + cancelText: '鍙栨秷', + onOk: () => { + if (!url.delete) { + this.$message.error('璇疯缃畊rl.delete灞炴��!') + return + } + deleteAction(url.delete + `/${id}/${type}`) + .then((res) => { + if (res.success) { + that.getTreeDataByApi() + $notification.success({ + message: '娑堟伅', + description: res.message + }) + } else { + $notification.warning({ + message: '娑堟伅', + description: res.message + }) + } + }) + .finally(() => { + that.$destroyAll() + }) + }, + onCancel: () => { + that.$destroyAll() + } + }) + }, + + /** + * 鑷姩灞曞紑娣诲姞涓嬬骇鑺傜偣鐨勭埗鑺傜偣 + * @param isAddNextLevel 鏄惁闇�瑕佸睍寮�涓嬬骇 + */ + modalFormSubmitSuccess(isAddNextLevel) { + // 鍒ゆ柇鏄惁涓烘坊鍔犱笅绾у苟涓斿垽鏂埗鑺傜偣鏄惁灞曞紑 + if (isAddNextLevel && !this.expandedKeys.includes(this.rightClickSelected.id)) this.expandedKeys.push(this.rightClickSelected.id) + this.getTreeDataByApi() + }, + + /** + * 鏍戣妭鐐瑰睍寮�鍚堝苟鏃惰Е鍙� + * @param expandedKeys 灞曞紑椤筴ey + */ + handleTreeExpand(expandedKeys) { + this.expandedKeys = this.beforeSearchExpandedKeys = expandedKeys + this.autoExpandParent = false + }, + + /** + * 妫�绱C鏂囦欢寮圭獥涓弻鍑昏璁板綍鍚庤Е鍙戞悳绱C鏂囦欢瀵瑰簲鏍戣妭鐐瑰苟妯℃嫙閫変腑鏍戣妭鐐规煡璇㈠搴旇澶囩被鎴朜C鏂囦欢 + * @param searchNcRecord 妫�绱C鏂囦欢寮圭獥涓弻鍑昏幏寰楃殑NC鏂囦欢鍒楄〃琛岃褰� + */ + searchTreeNode(searchNcRecord) { + this.fullScreenSpinning = true + const { attributionId, nodeCode, nodeName, nodeId, docId } = searchNcRecord + this.searchInput = `[${nodeCode}]${nodeName}` + this.searchAndExpandTreeNode() + const treeNodeRecord = Object.assign({ + autoClickedLevelInfo: { + attributionId, + docId + } + }, this.getTreeNodeRecord(nodeId, this.treeDataSource)) + this.handleTreeSelect([treeNodeRecord.id], treeNodeRecord) + }, + + // 杈撳叆鏌ヨ鍐呭鍙樺寲鏃惰Е鍙戯紙澧炲姞闃叉姈鏈哄埗锛� + handleSearchInputChange() { + const that = this + let timer + if (timer) clearTimeout(timer) + timer = setTimeout(function() { + that.searchAndExpandTreeNode() // 鍔犲皬鎷彿璋冪敤鍑芥暟 + }, 1000) + }, + + // 闃叉姈鍑芥暟涓Е鍙戞悳绱㈠苟灞曞紑鏍戣妭鐐� + searchAndExpandTreeNode() { + let search = this.searchInput + let expandedKeys + let autoExpandParent + if (search !== '') { + expandedKeys = this.dataList + .map(item => { + if (item.title != null) { + if (item.title.indexOf(search) > -1) { + return this.getParentKey(item.key, this.treeDataSource) + } + return null + } + }) + .filter((item, i, self) => item && self.indexOf(item) === i) + autoExpandParent = true + } else { + expandedKeys = this.beforeSearchExpandedKeys + autoExpandParent = false + } + Object.assign(this, { + expandedKeys, + searchValue: search, + autoExpandParent + }) + }, + + /** + * 閫掑綊鑾峰緱杈撳叆椤圭殑鐖剁骇key + * @param key 瀛愰」key + * @param tree 瀛愰」 + */ + getParentKey(key, tree) { + let parentKey + for (let i = 0; i < tree.length; i++) { + const node = tree[i] + if (node.children) { + if (node.children.some(item => item.key === key)) { + parentKey = node.key + } else if ( + this.getParentKey(key, node.children)) { + parentKey = this.getParentKey(key, node.children) + } } } + return parentKey + }, + + /** + * 閫掑綊鑾峰緱杈撳叆椤圭殑record瀵硅薄 + * @param key record瀵硅薄key鍊� + * @param tree 鏍戣妭鐐� + */ + getTreeNodeRecord(key, tree) { + let treeNodeRecord + for (let i = 0; i < tree.length; i++) { + const node = tree[i] + if (node.children) { + if (node.children.findIndex(item => item.key === key) > -1) { + treeNodeRecord = node.children.find(item => item.key === key) + } else if (this.getTreeNodeRecord(key, node.children)) { + treeNodeRecord = this.getTreeNodeRecord(key, node.children) + } + } + } + return treeNodeRecord + }, + + /** + * 閫掑綊鑾峰緱鎵�鏈夋爲鑺傜偣key + * @param data + */ + generateList(data) { + for (let i = 0; i < data.length; i++) { + data[i].key = data[i].id + const node = data[i] + const key = node.id + const title = node.label + this.dataList.push({ key, title }) + this.allTreeKeys.push(key) + this.setTreeNodeIcon(node) + if (node.children) this.generateList(node.children) + } + }, + + /** + * 鏍戞墍鍦ㄧ埗鍏冪礌鐨勫彸閿簨浠� + * @param event 浜嬩欢瀵硅薄 + */ + openBaseContextMenu(event) { + event.preventDefault() + if (event.target.id !== 'tree-container') return + this.$refs.baseContextmenuRef.menuStyle.top = event.clientY + 'px' + this.$refs.baseContextmenuRef.menuStyle.left = event.clientX + 'px' + this.$refs.baseContextmenuRef.menuVisible = true + document.body.addEventListener('click', this.handleBaseContextMenuClose) + }, + + /** + * 璁剧疆鏍戣妭鐐瑰浘鏍� + * @param treeNode + */ + setTreeNodeIcon(treeNode) { + switch (+treeNode.type) { + case 1: + treeNode.slots = { icon: 'product' } + break + case 2: + treeNode.slots = { icon: 'component' } + break + case 3: + treeNode.slots = { icon: 'part' } + break + case 4: + treeNode.slots = { icon: 'processSpecVersion' } + break + case 5: + treeNode.slots = { icon: 'process' } + break + case 6: + treeNode.slots = { icon: 'processStep' } + break + default: + } + }, + + // 鎺у埗鍩虹鍙抽敭鑿滃崟鍏抽棴 + handleBaseContextMenuClose() { + if (this.$refs.baseContextmenuRef) this.$refs.baseContextmenuRef.menuVisible = false + document.body.removeEventListener('click', this.handleBaseContextMenuClose) + }, + + // 鍒锋柊閲嶆柊鑾峰彇鏍戠殑鏁版嵁 + handleTreeReload() { + this.getTreeDataByApi() + }, + + triggerCorrespondingMethod({ methodName }) { + if (this[methodName]) this[methodName]() } - return parentKey - }, - /** - * 閫掑綊鑾峰緱鎵�鏈夋爲鑺傜偣key - * @param data - */ - generateList(data) { - for (let i = 0; i < data.length; i++) { - data[i].key = data[i].id - const node = data[i] - const key = node.id - const title = node.label - this.dataList.push({ key, title }) - this.allTreeKeys.push(key) - this.setTreeNodeIcon(node) - if (node.children) this.generateList(node.children) - } - }, - - /** - * 鏍戞墍鍦ㄧ埗鍏冪礌鐨勫彸閿簨浠� - * @param event 浜嬩欢瀵硅薄 - */ - openBaseContextMenu(event) { - event.preventDefault() - if (event.target.id !== 'tree-container') return - this.$refs.baseContextmenuRef.menuStyle.top = event.clientY + 'px' - this.$refs.baseContextmenuRef.menuStyle.left = event.clientX + 'px' - this.$refs.baseContextmenuRef.menuVisible = true - document.body.addEventListener('click', this.handleBaseContextMenuClose) - }, - - /** - * 璁剧疆鏍戣妭鐐瑰浘鏍� - * @param treeNode - */ - setTreeNodeIcon(treeNode) { - switch (+treeNode.type) { - case 1: - treeNode.slots = { icon: 'product' } - break - case 2: - treeNode.slots = { icon: 'component' } - break - case 3: - treeNode.slots = { icon: 'part' } - break - case 4: - treeNode.slots = { icon: 'processSpecVersion' } - break - case 5: - treeNode.slots = { icon: 'process' } - break - case 6: - treeNode.slots = { icon: 'processStep' } - break - default: - } - }, - - // 鎺у埗鍩虹鍙抽敭鑿滃崟鍏抽棴 - handleBaseContextMenuClose() { - if(this.$refs.baseContextmenuRef)this.$refs.baseContextmenuRef.menuVisible = false - document.body.removeEventListener('click', this.handleBaseContextMenuClose) - }, - - // 鍒锋柊閲嶆柊鑾峰彇鏍戠殑鏁版嵁 - handleTreeReload() { - this.getTreeDataByApi() - }, - - triggerCorrespondingMethod({ methodName }) { - if (this[methodName]) this[methodName]() } - } -} </script> <style lang="less" scoped> -/deep/ .ant-card-body { - padding: 0 12px 0 0; -} - -/deep/ .ant-card-body, /deep/ .ant-spin-nested-loading, /deep/ .ant-spin-container { - height: 100%; -} - -/deep/ .ant-tree-title, .ant-tree-title .ant-dropdown-trigger { - display: inline-block; - width: calc(100% - 24px) !important; -} - -::-webkit-scrollbar { - width: 8px; -} - -@media screen and (min-width: 1920px) { - .tree_con { - height: 748px !important; + /deep/ .ant-card-body { + padding: 0 12px 0 0; } -} -@media screen and (min-width: 1680px) and (max-width: 1920px) { - .tree_con { - height: 748px !important; + /deep/ .ant-card-body, /deep/ .ant-spin-nested-loading, /deep/ .ant-spin-container { + height: 100%; } -} -@media screen and (min-width: 1400px) and (max-width: 1680px) { - .tree_con { - height: 600px !important; + /deep/ .ant-tree-title, .ant-tree-title .ant-dropdown-trigger { + display: inline-block; + width: calc(100% - 24px) !important; } -} -@media screen and (min-width: 1280px) and (max-width: 1400px) { - .tree_con { - height: 501px !important; + ::-webkit-scrollbar { + width: 8px; } -} -@media screen and (max-width: 1280px) { - .tree_con { - height: 501px !important; + .full-screen-container { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, .8); + z-index: 9999; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; } -} + + @media screen and (min-width: 1920px) { + .tree_con { + height: 748px !important; + } + } + + @media screen and (min-width: 1680px) and (max-width: 1920px) { + .tree_con { + height: 748px !important; + } + } + + @media screen and (min-width: 1400px) and (max-width: 1680px) { + .tree_con { + height: 600px !important; + } + } + + @media screen and (min-width: 1280px) and (max-width: 1400px) { + .tree_con { + height: 501px !important; + } + } + + @media screen and (max-width: 1280px) { + .tree_con { + height: 501px !important; + } + } </style> diff --git a/src/views/dnc/common/TableContextMenu.vue b/src/views/dnc/common/TableContextMenu.vue index 28f045f..544e46d 100644 --- a/src/views/dnc/common/TableContextMenu.vue +++ b/src/views/dnc/common/TableContextMenu.vue @@ -96,6 +96,7 @@ { label: '涓嬭浇', code: 'document_download', subMenu: [], icon: 'download', isCommonMethod: true }, { label: '鍒犻櫎', code: 'document_delete', subMenu: [], icon: 'delete', isCommonMethod: true }, { label: '鎵归噺鍒犻櫎', code: 'document_batch_remove', subMenu: [], icon: 'delete', isCommonMethod: true }, + { label: '瀹氬瀷', code: 'document_appoint', subMenu: [], icon: 'swap-right', isCommonMethod: true }, { label: '鐢熷懡鍛ㄦ湡', subMenu: [ diff --git a/src/views/flowable/workflow/FlowTodo.vue b/src/views/flowable/workflow/FlowTodo.vue index dede3fd..e40a1fd 100644 --- a/src/views/flowable/workflow/FlowTodo.vue +++ b/src/views/flowable/workflow/FlowTodo.vue @@ -183,6 +183,11 @@ :selectShenpiData='selectDispatchFileXqData' @searchReset='searchReset' ></DispatchFileHandle> + <StandardizedProcessHandle + ref='StandardizedProcessHandle' + :selectShenpiData='selectDispatchFileXqData' + @searchReset='searchReset' + ></StandardizedProcessHandle> <DispatchFileBachHandleStyle ref='modalFormDispatchFileBatch' @ok='modalFormOk' @@ -301,6 +306,7 @@ import lossBoundHandle from '@views/flowable/workflow/lossBound/lossBoundHandle.vue' import InboundOrderHandle from '@views/flowable/workflow/inboundOrder/InboundOrderHandle.vue' import SparePartApplyHandle from '@views/flowable/workflow/sparePartApply/SparePartApplyHandle.vue' +import StandardizedProcessHandle from '@views/flowable/workflow/standardizedProcess/StandardizedProcessHandle.vue' export default { name: 'NcDeviceCharactersList', @@ -325,7 +331,8 @@ InboundOrderHandle, EquipmentTransferApprovalModal, EquipmentScrapApprovalModal, - SparePartApplyHandle + SparePartApplyHandle, + StandardizedProcessHandle }, data() { return { @@ -475,6 +482,9 @@ case 'ggApproval': this.handDispatchFileDetial(item) break + case 'standardized_approval': + this.handStandardizedDetial(item) + break case 'sbdjApproval': this.handInspectionOrder(item) break @@ -570,6 +580,12 @@ this.$refs.modalFormDispatchFileXq.clearTableSource() this.$refs.modalFormDispatchFileXq.getAllApproveData(item) }, + //瀹氬瀷瀹℃壒椤甸潰 + handStandardizedDetial(item){ + this.selectDispatchFileXqData = item + this.$refs.StandardizedProcessHandle.clearTableSource() + this.$refs.StandardizedProcessHandle.getAllApproveData(item) + }, handInspectionOrder(record) { console.log('record----->', record) diff --git a/src/views/flowable/workflow/standardizedProcess/StandardizedProcessHandle.vue b/src/views/flowable/workflow/standardizedProcess/StandardizedProcessHandle.vue new file mode 100644 index 0000000..a5bd125 --- /dev/null +++ b/src/views/flowable/workflow/standardizedProcess/StandardizedProcessHandle.vue @@ -0,0 +1,413 @@ +<!-- + Description: 宸ヤ綔娴�-NC瀹$澶勭悊椤甸潰 List + Author: 浣滆�� liuyh + Date: 2025-02-27 +--> +<template> + <a-modal + :title="title" + :width="width" + :visible="visible" + :footer="null" + @cancel="handCancel" + > + <a-card :bordered="false"> + <div> + <b>{{ selectShenpiData.description }}</b> + <br> + <br> + <a-tag color="blue"> + 褰撳墠澶勭悊浜� {{ selectShenpiData.assignee_dictText }} + </a-tag> + <a-tag color="blue"> + 浠诲姟鍒涘缓鏃堕棿 {{ selectShenpiData.createTime }} + </a-tag> + <br> + <br> + <button @click="fetchAndShowBmp" class="btn-custom">鎵撳紑娴佺▼鍥�</button> + <div v-if="imageSrc"> + <img :src="imageSrc" alt="Fetched Image" /> + </div> + <hr class="shallow-hr"> + </div> + <div> + <b>瀹$璇︽儏</b> + <br> + <a-form :form='form'> + <a-spin :spinning="spinning"> + <a-tabs default-active-key='1' @change='callback'> + <a-tab-pane key='1' tab='鍩烘湰淇℃伅'> + <a-form-model ref='form' :model='tableRowRecord' :rules='validatorRules'> + <a-row> + <a-col :span='span'> + <a-form-model-item label='鏂囨。鍚嶇О' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='docName'> + <a-input :disabled='coldisabled' v-model='tableRowRecord.docName'></a-input> + </a-form-model-item> + </a-col> + <a-col :span='span'> + <a-form-model-item label='鏂囨。鐗堟湰' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='publishVersion'> + <a-input :disabled='coldisabled' v-model='tableRowRecord.publishVersion'></a-input> + </a-form-model-item> + </a-col> + </a-row> + <a-row> + <a-col :span='span'> + <a-form-model-item label='鏂囨。鍚庣紑' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='docSuffix'> + <a-input :disabled='coldisabled' v-model='tableRowRecord.docSuffix'></a-input> + </a-form-model-item> + </a-col> + <a-col :span='span'> + <a-form-model-item label='绯荤粺鎸囧畾鐗堟湰' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='componentId'> + <a-input :disabled='coldisabled' v-model='tableRowRecord.componentName'></a-input> + </a-form-model-item> + </a-col> + </a-row> + <a-row> + <a-col :span='span'> + <a-form-model-item label='鍑哄簱鐘舵��' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='pullStatus_dictText'> + <a-input :disabled='coldisabled' v-model='tableRowRecord.pullStatus_dictText'></a-input> + </a-form-model-item> + </a-col> + <a-col :span='span'> + <a-form-model-item label='鍑哄簱浜�' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='pullUser_dictText'> + <a-input :disabled='coldisabled' v-model='tableRowRecord.pullUser_dictText'></a-input> + </a-form-model-item> + </a-col> + </a-row> + </a-form-model> + </a-tab-pane> + <a-tab-pane key='2' tab='娴佺▼鑺傜偣'> + <a-card> + <a-timeline style="padding:0 1% 0 12%" > + <a-timeline-item color='white' v-for="(item,index1) in hitaskDataSource" :key="index1"> + <div class="bottom"> + <p>澶勭悊浜猴細{{item.assignee_dictText}}</p> + <p v-if="index1 !==0">澶勭悊鏃堕暱锛歿{item.duration}}</p> + <p v-if="item.name !== '鎻愪氦鐢宠'">澶勭悊绫诲瀷锛歿{item.sequenceFlowName}}</p> + <p v-if="item.description != null">澶勭悊鎰忚锛歿{item.description}}</p> + <div class="left_qiu"><span>{{item.taskName}}</span></div> + </div> + </a-timeline-item> + </a-timeline> + </a-card> + </a-tab-pane> + </a-tabs> + </a-spin> + </a-form> + </div> + <div> + <hr class="shallow-hr"> + <br> + <b>瀹℃壒璇︽儏</b> + <br> + <a-form-model ref="form" :model="approveData" :rules="validatorRules" slot="detail"> + <a-row> + <a-col ::span='span' v-if="selectShenpiData.taskDefKey ==='task_proofread'" class="btxx"> + <a-form-model-item label="澶勭悊绫诲瀷" :labelCol="labelCol" :wrapperCol="wrapperCol" prop='status'> + <j-dict-select-tag type='list' v-model='assignFileStream.status' dictCode='nc_sq_handle_type_jd' placeholder="璇烽�夋嫨澶勭悊绫诲瀷" /> + </a-form-model-item > + </a-col> + <a-col ::span='span' v-if="selectShenpiData.taskDefKey ==='task_approve' || selectShenpiData.taskDefKey ==='Activity_0ocot6b'|| selectShenpiData.taskDefKey ==='task_cut' || selectShenpiData.taskDefKey ==='task_finalize'" class="btxx"> + <a-form-model-item label="澶勭悊绫诲瀷" :labelCol="labelCol" :wrapperCol="wrapperCol" prop='status'> + <j-dict-select-tag type='list' v-model='assignFileStream.status' dictCode='nc_sq_handle_type' placeholder="璇烽�夋嫨澶勭悊绫诲瀷" /> + </a-form-model-item > + </a-col> + <a-col :span="24" class="btxx"> + <a-form-model-item label="澶勭悊鎰忚" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-textarea v-model="assignFileStream.approveContent" rows="4" placeholder="璇疯緭鍏ュ鐞嗘剰瑙�"/> + </a-form-model-item > + </a-col> + </a-row> + <div class="table-operator" style="text-align: right;"> + <a-button @click="handleQueXiaoTask" type="primary" icon="close">鍙栨秷</a-button> + <a-button @click="submitForm">鎻� 浜�</a-button> + </div> + </a-form-model> + </div> + </a-card> + + + </a-modal> +</template> + +<script> + +import '@assets/less/TableExpand.less' +import { mixinDevice } from '@/utils/mixin' +import { getAction, deleteAction, postAction, downFile, httpAction } from '@api/manage' +export default { + name: 'FlowShenPi', + mixins: [mixinDevice], + props: { + selectShenpiData: { + type: Object, + required: true + } + }, + + data() { + return { + form: this.$form.createForm(this), + span: 12, + span1: 8, + coldisabled: true, + spinning: false, + tableRowRecord: {}, + assignFileStream:{}, + tableDataSource: [], + usageDataSource: [], + hitaskDataSource:[], + bomForm: {}, + approveContent:"", + imageSrc: null, + drawerVisible: true, + labelCol: { + xs: { span: 24 }, + sm: { span: 5 } + }, + wrapperCol: { + xs: { span: 30 }, + sm: { span: 16 } + }, + validatorRules: { + status: { + rules: [ + { required: true, message: '璇烽�夋嫨瀹℃壒鐘舵��!'}, + ] + }, + }, + approveData: {}, + flowData: {}, + title: '璇︽儏椤甸潰', + width: 1000, + visible: false, + // 琛ㄥご + url: { + diagramView: '/assign/flow/diagramView', + queryHisTaskList:'/dncFlow/dispatchFile/queryHisTaskList', + approve:"/dncFlow/dispatchFile/approval", + saveDispatchFile:"/dncFlow/dispatchFile/saveDispatchFile", + queryDocInfoByFlowDataId:'/dncFlow/dispatchFile/queryDocInfoByFlowDataId' + }, + dictOptions: {}, + superFieldList: [], + workflowSource: [] + } + }, + created() { + }, + computed: {}, + methods: { + callback() { + }, + handCancel() { + this.visible = false + }, + clearTableSource() { + this.tableDataSource = [] + this.usageDataSource = [] + }, + fetchAndShowBmp() { + console.log('flowData----->', this.flowData) + try { + let parm = { + processDefinitionId: this.flowData.processDefinitionId, + processInstanceId:this.flowData.processInstanceId, + TaskDefinitionKey:this.flowData.processDefinitionKey + } + downFile(this.url.diagramView,parm,'get').then((res=>{ + console.log('Pica------>',res) + const urlObject = window.URL.createObjectURL(new Blob([res])) + this.imageSrc = urlObject + })) + } catch (error) { + console.error('Error fetching image blob:', error) + alert('鏃犳硶鍔犺浇鍥剧墖锛岃绋嶅悗鍐嶈瘯銆�') + } + }, + handleQueXiaoTask(){ + this.visible = false + this.routeReload() + }, + submitForm () { + const that = this; + console.log('selectShenpiData---->',that.selectShenpiData) + if (that.selectShenpiData.taskDefKey ==='task_prepare'){ + // 瑙﹀彂琛ㄥ崟楠岃瘉-閲嶆柊鍚姩 + this.form.validateFields((err, values) => { + if (!err) { + that.confirmLoading = true; + let url=this.url.saveDispatchFile; + let method = 'post'; + let flowTaskVo = {} + flowTaskVo.comment =that.assignFileStream.approveContent; + flowTaskVo.dataId = this.selectShenpiData.dataId + flowTaskVo.instanceId = this.selectShenpiData.procInstId + flowTaskVo.taskId = this.selectShenpiData.id + console.log("琛ㄥ崟鎻愪氦鏁版嵁",flowTaskVo) + httpAction(url,flowTaskVo,method).then((res)=>{ + if(res.success){ + that.$message.success(res.message); + that.visible = false + //鍒锋柊琛ㄦ牸 + that.$emit('searchReset') + }else{ + that.$message.warning(res.message); + } + }).finally(() => { + that.confirmLoading = false; + }) + } + }) + //璺冲嚭鏂规硶 + return false; + }else { + if (!that.assignFileStream.status==null || that.assignFileStream.status===undefined){ + this.$message.warning('璇烽�夋嫨澶勭悊绫诲瀷锛�') + return false; + } + } + if (!that.assignFileStream.approveContent==null || that.assignFileStream.approveContent===undefined) { + this.$message.warning('璇疯緭鍏ュ鐞嗘剰瑙侊紒') + return false; + } + // 瑙﹀彂琛ㄥ崟楠岃瘉 + this.form.validateFields((err, values) => { + if (!err) { + that.confirmLoading = true; + let url=this.url.approve + let method = 'post'; + let handle =that.assignFileStream.status === '1'; + let flowTaskVo = {} + switch (that.selectShenpiData.taskDefKey){ + case "task_approve": + flowTaskVo.ratify=handle; + break; + case "task_cut": + flowTaskVo.cut=handle; + break; + case "task_finalize": + flowTaskVo.stereotype=handle; + break; + } + if (that.selectShenpiData.taskDefKey ==='task_proofread'){ + flowTaskVo.proofreadStatus =that.assignFileStream.status; + } + flowTaskVo.comment =that.assignFileStream.approveContent; + flowTaskVo.dataId = this.selectShenpiData.dataId + flowTaskVo.taskId = this.selectShenpiData.id + flowTaskVo.userId = this.selectShenpiData.assignee + flowTaskVo.instanceId = this.selectShenpiData.procInstId + flowTaskVo.values = this.selectShenpiData.variables + console.log("琛ㄥ崟鎻愪氦鏁版嵁",flowTaskVo) + httpAction(url,flowTaskVo,method).then((res)=>{ + if(res.success){ + that.$message.success(res.message); + that.visible = false + //鍒锋柊琛ㄦ牸 + that.$emit('searchReset') + }else{ + that.$message.warning(res.message); + } + }).finally(() => { + that.confirmLoading = false; + }) + } + }) + }, + async getAllApproveData(item) { + console.log('selectShenpiData----->', this.selectShenpiData) + this.flowData = item + let param = { + 'dataId': item.dataId + } + let parmhis={ + 'procInstId': item.procInstId + } + const hitaskDataList = await getAction(this.url.queryHisTaskList,parmhis) + if(hitaskDataList.success){ + this.hitaskDataSource=hitaskDataList.result + } + const docInforResult = await getAction(this.url.queryDocInfoByFlowDataId,param) + if(docInforResult.success){ + this.tableRowRecord = docInforResult.result + this.visible=true + } + } + } +} +</script> +<style scoped> +.shallow-hr { + border: 0; + height: 1px; /* 鍒嗙晫绾跨殑楂樺害 */ + background-color: rgba(0, 0, 0, 0.1); /* 浣跨敤 RGBA 棰滆壊锛屽苟璁剧疆杈冧綆鐨勯�忔槑搴� */ + margin: 20px 0; /* 鍒嗙晫绾夸笂涓嬬殑澶栬竟璺� */ +} +.btn-custom { + background-color: #4CAF50; /* 缁胯壊鑳屾櫙 */ + color: white; /* 鐧借壊鏂囧瓧 */ + border: none; /* 鏃犺竟妗� */ + padding: 5px 15px; /* 鍐呰竟璺� */ + text-align: center; /* 鏂囧瓧灞呬腑 */ + text-decoration: none; /* 鏃犱笅鍒掔嚎 */ + display: inline-block; /* 琛屽唴鍧楀厓绱� */ + font-size: 12px; /* 瀛椾綋澶у皬 */ + margin: 4px 2px; /* 澶栬竟璺� */ + cursor: pointer; /* 榧犳爣鎮仠鏃舵樉绀烘墜鍨� */ + border-radius: 4px; /* 鍦嗚杈规 */ +} + +.bold-large-label { + font-weight: bold; + font-size: 20px; /* 鎴栦綘闇�瑕佺殑浠讳綍澶у皬 */ +} +.left_qiu{ + position: absolute; + left: -74px; + top: 0; + width:54px; + border-radius: 50%; + height:54px; + font-size: 13px; + margin: auto; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: center; + background: #0099ff; + transform: translate(0, 0); +} +/deep/ .ant-timeline-item-tail{ + left: -29px !important; +} +.left_qiu span{ + width: 3em; + display: block; + color: #fff; + text-align: center; +} +.img{ + width: 75%; +} + +.wrap{ + clear: both; + width: 100%; + display: flex; + height: 50px; + border: 1px solid #ccc; + /* background-color: aqua; */ +} +.box{ + width:21%; + height:50px; + border-right: 1px solid #ccc; + line-height: 50px; + /* background: red; */ + text-align:center; + margin: auto; +} + +@import '~@assets/less/common.less'; +</style> \ No newline at end of file diff --git a/src/views/tms/modules/baseTools/BaseToolsListRight.vue b/src/views/tms/modules/baseTools/BaseToolsListRight.vue index 61d747a..70774c8 100644 --- a/src/views/tms/modules/baseTools/BaseToolsListRight.vue +++ b/src/views/tms/modules/baseTools/BaseToolsListRight.vue @@ -482,50 +482,32 @@ this.$refs.paraCommonToolModal.edit(record); this.$refs.paraCommonToolModal.title="璇︽儏"; this.$refs.paraCommonToolModal.disableSubmit = true; - this.$refs.paraCommonToolModal.disSeach = true; - if(this.$refs.paraCommonToolModal.removeValidate) { - this.$refs.paraCommonToolModal.removeValidate() - } + }else if(record.paramaTableName === "2"){ this.$refs.paraHoleToolsModal.edit(record); this.$refs.paraHoleToolsModal.title="璇︽儏"; this.$refs.paraHoleToolsModal.disableSubmit = true; - this.$refs.paraHoleToolsModal.disSeach = true; - if(this.$refs.paraHoleToolsModal.removeValidate) { - this.$refs.paraHoleToolsModal.removeValidate() - } + }else if(record.paramaTableName === "3"){ this.$refs.paraThreadingToolModal.edit(record); this.$refs.paraThreadingToolModal.title="璇︽儏"; this.$refs.paraThreadingToolModal.disableSubmit = true; - this.$refs.paraThreadingToolModal.disSeach = true; - if(this.$refs.paraThreadingToolModal.removeValidate) { - this.$refs.paraThreadingToolModal.removeValidate() - } + }else if(record.paramaTableName === "4"){ this.$refs.paraMillToolModal.edit(record); this.$refs.paraMillToolModal.title="璇︽儏"; this.$refs.paraMillToolModal.disableSubmit = true; - this.$refs.paraMillToolModal.disSeach = true; - if(this.$refs.paraMillToolModal.removeValidate) { - this.$refs.paraMillToolModal.removeValidate() - } + }else if(record.paramaTableName === "5"){ this.$refs.paraTurningToolsModal.edit(record); this.$refs.paraTurningToolsModal.title="璇︽儏"; this.$refs.paraTurningToolsModal.disableSubmit = true; - this.$refs.paraTurningToolsModal.disSeach = true; - if(this.$refs.paraTurningToolsModal.removeValidate) { - this.$refs.paraTurningToolsModal.removeValidate() - } + }else if(record.paramaTableName === "6"){ this.$refs.paraBladeModal.edit(record); this.$refs.paraBladeModal.title="璇︽儏"; this.$refs.paraBladeModal.disableSubmit = true; - this.$refs.paraBladeModal.disSeach = true; - if(this.$refs.paraBladeModal.removeValidate) { - this.$refs.paraBladeModal.removeValidate() - } + } }, //绂佺敤鐘舵�佹牱寮� diff --git a/src/views/tms/modules/outBound/OutboundDetailSelectList.vue b/src/views/tms/modules/outBound/OutboundDetailSelectList.vue index 2d7a3d3..6953efe 100644 --- a/src/views/tms/modules/outBound/OutboundDetailSelectList.vue +++ b/src/views/tms/modules/outBound/OutboundDetailSelectList.vue @@ -14,6 +14,26 @@ :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange, type:'checkbox'}" @change="handleTableChange"> + <template v-for="col in columns" :slot="col.dataIndex" slot-scope="text, record, index"> + <div :key="col.dataIndex"> + + <a-input-number + v-if="col.dataIndex === 'ratedLife'" + :disabled="record.accuracyClass != '1'" + :value="text" + @change="(e) => handleChange(e, record.key, col, index)" + :min="1" + /> + <a-input-number + v-if="col.dataIndex === 'useLife'" + :disabled="record.accuracyClass != '1'" + :value="text" + @change="(e) => handleChange(e, record.key, col, index)" + :min="1" + /> + </div> + </template> + <span slot="action" slot-scope="text, record"> <a @click="handleOutbound(record)">鍑哄簱</a> </span> @@ -101,6 +121,18 @@ align:"left", dataIndex: 'outboundQuantity' }, + { + title:'棰濆畾瀵垮懡', + align:"center", + dataIndex: 'ratedLife', + scopedSlots: { customRender: 'ratedLife' }, + }, + { + title:'浣跨敤瀵垮懡', + align:"center", + dataIndex: 'useLife', + scopedSlots: { customRender: 'useLife' }, + }, // { // title:'宸插嚭搴撴暟閲�', // align:"left", @@ -193,7 +225,9 @@ { outBoundOrderId: this.mainId, outboundDetailId: record.id, - outboundQuantity: record.outboundQuantity + outboundQuantity: record.outboundQuantity, + ratedLife:record.ratedLife, + useLife:record.useLife } ] postAction(this.url.outbound, params).then(res=>{ @@ -205,7 +239,17 @@ this.$message } }) - } + }, + handleChange(value, key, column, index) { + console.log(value, key, column, index) + const temp = [...this.dataSource] + const target = temp.filter(item => key === item.key)[index]; + if (target) { + target[column.dataIndex] = value + this.dataSource = temp + } + }, + } } diff --git a/src/views/tms/modules/outBound/OutboundModal.vue b/src/views/tms/modules/outBound/OutboundModal.vue index a0e748a..8312da4 100644 --- a/src/views/tms/modules/outBound/OutboundModal.vue +++ b/src/views/tms/modules/outBound/OutboundModal.vue @@ -51,7 +51,21 @@ <div :key="col.dataIndex"> <a-input-number v-if="col.dataIndex === 'outboundQuantity'" - :disabled="record.quantity <= 1" + :disabled="record.accuracyClass === '1'" + :value="text" + @change="(e) => handleChange(e, record.key, col, index)" + :min="1" + /> + <a-input-number + v-if="col.dataIndex === 'ratedLife'" + :disabled="record.accuracyClass != '1'" + :value="text" + @change="(e) => handleChange(e, record.key, col, index)" + :min="1" + /> + <a-input-number + v-if="col.dataIndex === 'useLife'" + :disabled="record.accuracyClass != '1'" :value="text" @change="(e) => handleChange(e, record.key, col, index)" :min="1" @@ -162,6 +176,18 @@ align:"center", dataIndex: 'outboundLocation' }, + { + title:'棰濆畾瀵垮懡', + align:"center", + dataIndex: 'ratedLife', + scopedSlots: { customRender: 'ratedLife' }, + }, + { + title:'浣跨敤瀵垮懡', + align:"center", + dataIndex: 'useLife', + scopedSlots: { customRender: 'useLife' }, + }, // { // title:'鍑哄簱鐘舵��;1.鏈嚭搴擄紱2.閮ㄥ垎鍑哄簱锛�3.鍑哄簱瀹屾垚', // align:"center", @@ -208,7 +234,8 @@ outboundQuantity: data[i].quantity, storageLocation: data[i].warehouseId, warehouseName: data[i].warehouseName, - outboundLocation: data[i].positionCode + outboundLocation: data[i].positionCode, + accuracyClass:data[i].accuracyClass }) } this.ipagination.total = this.dataSource.length @@ -302,7 +329,9 @@ toolId: item.toolId, outboundQuantity: item.outboundQuantity, outStorehouseType: this.model.outStorehouseType, - storageLocation: item.storageLocation + storageLocation: item.storageLocation, + ratedLife:item.ratedLife, + useLife:item.useLife } }) this.confirmLoading = true; diff --git a/src/views/tms/modules/outBound/OutboundOrderModal.vue b/src/views/tms/modules/outBound/OutboundOrderModal.vue index 0562028..8171597 100644 --- a/src/views/tms/modules/outBound/OutboundOrderModal.vue +++ b/src/views/tms/modules/outBound/OutboundOrderModal.vue @@ -142,7 +142,22 @@ <div :key="col.dataIndex"> <a-input-number v-if="col.dataIndex === 'outboundQuantity'" - :disabled="record.quantity <= 1" + :disabled="record.accuracyClass === '1'" + :value="text" + @change="(e) => handleChange(e, record.key, col, index)" + :min="1" + /> + + <a-input-number + v-if="col.dataIndex === 'ratedLife'" + :disabled="record.quantity > 1" + :value="text" + @change="(e) => handleChange(e, record.key, col, index)" + :min="1" + /> + <a-input-number + v-if="col.dataIndex === 'useLife'" + :disabled="record.quantity > 1" :value="text" @change="(e) => handleChange(e, record.key, col, index)" :min="1" @@ -254,6 +269,18 @@ align:"center", dataIndex: 'outboundLocation' }, + // { + // title:'棰濆畾瀵垮懡', + // align:"center", + // dataIndex: 'ratedLife', + // scopedSlots: { customRender: 'ratedLife' }, + // }, + // { + // title:'浣跨敤瀵垮懡', + // align:"center", + // dataIndex: 'useLife', + // scopedSlots: { customRender: 'useLife' }, + // }, // { // title:'鍑哄簱鐘舵��;1.鏈嚭搴擄紱2.閮ㄥ垎鍑哄簱锛�3.鍑哄簱瀹屾垚', // align:"center", @@ -307,7 +334,8 @@ outboundQuantity: data[i].quantity, storageLocation: data[i].warehouseId, warehouseName: data[i].warehouseName, - outboundLocation: data[i].positionCode + outboundLocation: data[i].positionCode, + accuracyClass:data[i].accuracyClass }) } this.ipagination.total = this.dataSource.length diff --git a/src/views/tms/modules/outBound/OutboundOrderSelectList.vue b/src/views/tms/modules/outBound/OutboundOrderSelectList.vue index 7d53488..000dd79 100644 --- a/src/views/tms/modules/outBound/OutboundOrderSelectList.vue +++ b/src/views/tms/modules/outBound/OutboundOrderSelectList.vue @@ -256,7 +256,9 @@ return { outBoundOrderId: this.selectedMainId, outboundDetailId: item.id, - outboundQuantity: item.outboundQuantity + outboundQuantity: item.outboundQuantity, + ratedLife:item.ratedLife, + useLife:item.useLife } }) postAction(this.url.outbound, params).then(res=>{ diff --git a/src/views/tms/requirement/ToolSharpeningList .vue b/src/views/tms/requirement/ToolSharpeningList .vue index abaa2ab..ef06cd2 100644 --- a/src/views/tms/requirement/ToolSharpeningList .vue +++ b/src/views/tms/requirement/ToolSharpeningList .vue @@ -131,12 +131,11 @@ align:"center", dataIndex: 'toolId' }, - { - title:'鍒�鍏峰悕绉�', - align:"center", - dataIndex: 'typeName' - }, - + // { + // title:'鍒�鍏峰悕绉�', + // align:"center", + // dataIndex: 'typeName' + // }, { title:'鍘傚', align:"center", diff --git a/src/views/tms/requirement/modules/ToolsSharpeningModal.vue b/src/views/tms/requirement/modules/ToolsSharpeningModal.vue index d49bc28..2ed8659 100644 --- a/src/views/tms/requirement/modules/ToolsSharpeningModal.vue +++ b/src/views/tms/requirement/modules/ToolsSharpeningModal.vue @@ -122,12 +122,11 @@ </template> <script> -import { getAction, postAction, requestPut } from '@/api/manage' + import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js' import ToolsModal from '@views/tms/requirement/modules/ToolsModal.vue' -import pick from 'lodash.pick' import DeviceListModel from '@views/mdc/base/modules/EquipmentList/DeviceListModal.vue' - +import { requestPut, postAction, httpAction } from '@/api/manage' export default { name: 'ToolsSharpeningModal', mixins: [JVxeTableModelMixin], @@ -167,8 +166,7 @@ lastSelectionData: null, url: { add: '/tms/toolSharpening/add', - edit: '/tms/toolSharpening/edit', - // queryDetailList: '/tms/toolSharpening/listToolSharpening' + edit: '/tms/toolSharpening/edit' } } }, @@ -205,61 +203,78 @@ let that = this that.visible = true that.model = Object.assign({}, record) - // this.$nextTick(() => { - // this.form.setFieldsValue(pick(that.model, 'selectedDeparts', 'selectedProduction', 'equipmentId', 'equipmentName', 'equipmentModel', 'equipmentType', 'equipmentIp', 'dataPort', - // 'driveType', 'sortNo', 'remark', 'systemVersion', 'devicePower', 'controlSystem', 'saveTableName', 'systemValue')) - // }) }, - // edit(record) { - // let that = this - // that.visible = true - // that.model = Object.assign({}, record) - // - // // 濡傛灉鏈� selectionRows 鏁版嵁锛屽垯閲嶆柊璧嬪�� - // if (this.lastSelectionData && this.lastSelectionData.length > 0) { - // this.assignModelFromSelection(this.lastSelectionData[0]) - // console.log('this.model',this.assignModelFromSelection(this.lastSelectionData[0])) - // } - // }, + close() { this.$emit('close') this.visible = false - }, handleOk() { const that = this - that.confirmLoading = true - - // 鉁� 瑙﹀彂琛ㄥ崟楠岃瘉 + // 瑙﹀彂琛ㄥ崟楠岃瘉 this.$refs.form.validate(valid => { if (valid) { let formData = Object.assign(this.model) - - let obj + that.confirmLoading = true + let httpurl = '' + let method = '' if (!this.model.id) { - obj = postAction(this.url.add, formData) + httpurl += this.url.add + method = 'post' } else { - obj = requestPut(this.url.edit, formData, { id: this.model.id }) + httpurl += this.url.edit + method = 'put' } - - obj.then((res) => { + httpAction(httpurl, this.model, method,formData).then((res) => { if (res.success) { that.$message.success(res.message) that.$emit('ok') - that.close() } else { that.$message.warning(res.message) } }).finally(() => { that.confirmLoading = false + that.close() }) } else { - that.$message.warning('璇峰~鍐欏繀濉瓧娈�') - that.confirmLoading = false return false } }) }, + // handleOk() { + // const that = this + // that.confirmLoading = true + // + // // 鉁� 瑙﹀彂琛ㄥ崟楠岃瘉 + // this.$refs.form.validate(valid => { + // if (valid) { + // let formData = Object.assign(this.model) + // + // let obj + // if (!this.model.id) { + // obj = postAction(this.url.add, formData) + // } else { + // obj = requestPut(this.url.edit, formData, { id: this.model.id }) + // } + // + // obj.then((res) => { + // if (res.success) { + // that.$message.success(res.message) + // that.$emit('ok') + // that.close() + // } else { + // that.$message.warning(res.message) + // } + // }).finally(() => { + // that.confirmLoading = false + // }) + // } else { + // that.$message.warning('璇峰~鍐欏繀濉瓧娈�') + // that.confirmLoading = false + // return false + // } + // }) + // }, handleCancel() { this.close() diff --git a/src/views/tms/stocktakingBound/ToolsStocktaKingBoundDetail.vue b/src/views/tms/stocktakingBound/ToolsStocktaKingBoundDetail.vue index b6acfa5..18bca10 100644 --- a/src/views/tms/stocktakingBound/ToolsStocktaKingBoundDetail.vue +++ b/src/views/tms/stocktakingBound/ToolsStocktaKingBoundDetail.vue @@ -61,8 +61,8 @@ { - title: '鍒�鍏风紪鍙�', - dataIndex: 'toolCode', + title: '鍒�鍏风紪鐮�', + dataIndex: 'toolId', align: 'center' }, { diff --git a/src/views/tms/stocktakingBound/modules/ToolSelectorModal.vue b/src/views/tms/stocktakingBound/modules/ToolSelectorModal.vue index eed4078..81227ee 100644 --- a/src/views/tms/stocktakingBound/modules/ToolSelectorModal.vue +++ b/src/views/tms/stocktakingBound/modules/ToolSelectorModal.vue @@ -54,17 +54,20 @@ { title: '宸ュ叿缂栫爜', align: 'center', - dataIndex: 'toolCode' + dataIndex: 'toolId', + width: 200 }, { title: '涓枃鍚嶇О', align: 'center', - dataIndex: 'chineseName' + dataIndex: 'chineseName', + width: 150 }, { title: '鍨嬪彿/鍥惧彿', align: 'center', - dataIndex: 'toolModel' + dataIndex: 'toolModel', + width: 150 } ], selectedRowKeys: [], diff --git a/src/views/tms/stocktakingBound/modules/ToolsStocktakingBoundModal.vue b/src/views/tms/stocktakingBound/modules/ToolsStocktakingBoundModal.vue index d0d4230..c07bfe8 100644 --- a/src/views/tms/stocktakingBound/modules/ToolsStocktakingBoundModal.vue +++ b/src/views/tms/stocktakingBound/modules/ToolsStocktakingBoundModal.vue @@ -169,14 +169,14 @@ }, { title: '鍒�鍏风紪鍙�', - dataIndex: 'toolCode', + dataIndex: 'toolId', align: 'center', - width: 150 + width: 180 }, { title: '宸ュ叿绫诲瀷', - dataIndex: 'applicationType', + dataIndex: 'applicationType_dictText', align: 'center', width: 150 }, @@ -327,11 +327,12 @@ this.$bus.$on('selectionRows', (data) => { for (let i = 0; i < data.length; i++) { this.dataSource.push({ - toolId: data[i].id, + toolId: data[i].toolId, toolCode: data[i].toolCode, classifyId: data[i].classifyId, - applicationType: data[i].applicationType_dictText, + applicationType_dictText: data[i].applicationType_dictText, chineseName: data[i].chineseName, + availableQuantity:data[i].availableCount, toolModel: data[i].toolModel, material: data[i].material, toolMaterial: data[i].toolMaterial, -- Gitblit v1.9.3