Merge remote-tracking branch 'origin/master'
# Conflicts:
# src/views/tms/modules/outBound/OutboundOrderModal.vue
| | |
| | | import HasSentDocumentTableList from './Document/HasSentDocumentTableList' |
| | | import HasReceivedDocumentTableList from './Document/HasReceivedDocumentTableList' |
| | | import DocumentBatchDeleteModal from '../../../common/DocumentBatchDeleteModal' |
| | | import { postAction } from '@api/manage' |
| | | |
| | | export default { |
| | | name: 'DeviceStructureMainTop', |
| | |
| | | tableContainerSize: 'small', |
| | | currentTypeOfDevice: 7,// 产åç»ææ ä¸å®ä¹ç设å¤å±çº§type为7 |
| | | currentRightClickedTableRowInfo: {}, |
| | | hasLoadedDataTabKeyArray: [] |
| | | hasLoadedDataTabKeyArray: [], |
| | | url:{ |
| | | submitProccess:'/dncFlow/dispatchFile/submitProccess' |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | 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 å¼¹çªæ é¢ |
| | |
| | | deviceCustomTypeList: [], |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 6 } |
| | | sm: { span: 7 } |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | |
| | | |
| | | <script> |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | import DeviceCustomTypeModal from '@views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeModal.vue' |
| | | import { deleteAction } from '@api/manage' |
| | | import DeviceCustomTypeModal |
| | | from '@views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeModal.vue' |
| | | import { getAction, deleteAction } from '@api/manage' |
| | | |
| | | export default { |
| | | name: 'DeviceCustomTypeTableList', |
| | |
| | | }, |
| | | methods: { |
| | | setQueryParamAndLoadData() { |
| | | console.log('currentLevelInfo', this.currentTreeNodeInfo) |
| | | const { id, type } = this.currentTreeNodeInfo |
| | | this.queryParam = Object.assign({}, { attributionId: id, attributionType: type }) |
| | | this.dataSource = [] |
| | | this.loadData() |
| | | }, |
| | | |
| | | 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: { |
| | |
| | | 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) |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | |
| | | /** |
| | |
| | | </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> |
| | |
| | | |
| | | <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"> |
| | | |
| | | <!-- å符串è¶
é¿æªåçç¥å·æ¾ç¤º--> |
| | |
| | | </a-tabs> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | </a-modal> |
| | | </template> |
| | | |
| | |
| | | searchValue: '', |
| | | searchInput: '', |
| | | spinning: false, |
| | | fullScreenSpinning: false, |
| | | treeDataSource: [], |
| | | allTreeKeys: [], |
| | | checkedKeys: [], |
| | |
| | | handleSearchNc() { |
| | | this.visible = true |
| | | }, |
| | | |
| | | // è·åå½åå¯¹åºææ¡£å表 |
| | | loadData() { |
| | | this.dataSource = [] |
| | |
| | | }).finally(() => { |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | |
| | | /** |
| | | * å表èªå®ä¹è¡ |
| | | * @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è®¾å¤æ |
| | |
| | | this.searchInput = '' |
| | | this.expandedKeys = [] |
| | | this.selectedRowKeys = [] |
| | | this.selectionRows = {} |
| | | this.selectionRows = [] |
| | | this.checkedKeys = [] |
| | | this.filters = {} |
| | | this.isorter = Object.assign({}, this.defaultSorter) |
| | |
| | | background-color: rgb(204, 204, 204); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | ::-webkit-scrollbar { |
| | |
| | | this.$message.error('请设置url.list屿§!') |
| | | return |
| | | } |
| | | console.log('currentNCDocumentAttributionInfo', this.currentNCDocumentAttributionInfo) |
| | | const { attributionId, attributionType, docClassCode } = this.currentNCDocumentAttributionInfo |
| | | const { attributionId, attributionType, docClassCode, autoClickedLevelInfo } = this.currentNCDocumentAttributionInfo |
| | | //å è½½æ°æ® è¥ä¼ å
¥åæ°1åå 载第ä¸é¡µçå
容 |
| | | if (arg === 1) this.ipagination.current = 1 |
| | | var params = this.getQueryParams()//æ¥è¯¢æ¡ä»¶ |
| | |
| | | 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 { |
| | |
| | | }) |
| | | }, |
| | | |
| | | /** |
| | | * èªå®ä¹è¡¨æ ¼è¡åè½ |
| | | * @param record è¡¨æ ¼è¡è®°å½ |
| | | */ |
| | | customRow(record) { |
| | | return { |
| | | style: { |
| | |
| | | this.$emit('handleTableContextMenuOpen', this.currentRightClickedDocumentInfo) |
| | | }, |
| | | click: () => { |
| | | this.handleTableRowClick(record) |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | |
| | | /** |
| | | * è¡¨æ ¼è¡ç¹å»äºä»¶ |
| | | * @param record è¡¨æ ¼è¡è®°å½ |
| | | */ |
| | | handleTableRowClick(record) { |
| | | if (this.currentClickedDocumentInfo.docId === record.docId) return |
| | | this.currentClickedDocumentInfo = Object.assign({}, record) |
| | | this.$bus.$emit('sendCurrentClickedDocumentInfo', record) |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | |
| | | /** |
| | |
| | | * @param treeNodeInfo æ èç¹ä¿¡æ¯ |
| | | */ |
| | | receiveCurrentTreeNodeInfo(treeNodeInfo) { |
| | | console.log('treeNodeInfo', treeNodeInfo) |
| | | const { id, type } = treeNodeInfo |
| | | const { id, type, autoClickedLevelInfo } = treeNodeInfo |
| | | // 仿 ç»ä»¶æ¥åæ èç¹ä¿¡æ¯åä»ç¶ç»ä»¶æµå
¥åç»ä»¶å¹¶éç½®æ°æ® |
| | | this.currentClickedTypeInfo = this.currentRightClickedTableRowInfo = {} |
| | | this.currentTreeNodeInfo = treeNodeInfo |
| | | this.currentNCDocumentAttributionInfo = Object.assign({}, { |
| | | attributionId: id, |
| | | attributionType: type, |
| | | docClassCode: 'NC' |
| | | docClassCode: 'NC', |
| | | autoClickedLevelInfo |
| | | }) |
| | | this.hasLoadedDataTabKeyArray = [] |
| | | |
| | |
| | | this.$refs.deviceCustomTypeTableList.setQueryParamAndLoadData() |
| | | // 忢æ ä¹åæ¸
空NCç¨åºå表 |
| | | 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.$refs.ncDocumentTableListRef) this.$refs.ncDocumentTableListRef.loadData(1) |
| | | }) |
| | | } else { |
| | | this.activeTabKey = 2 |
| | |
| | | */ |
| | | receiveCurrentClickedTypeInfo(record) { |
| | | const { id, attributionType } = record |
| | | const { autoClickedLevelInfo } = this.currentTreeNodeInfo |
| | | this.currentClickedTypeInfo = Object.assign({}, record) |
| | | this.currentNCDocumentAttributionInfo = Object.assign({}, { |
| | | attributionId: id, |
| | | attributionType, |
| | | docClassCode: 'NC' |
| | | docClassCode: 'NC', |
| | | autoClickedLevelInfo |
| | | }) |
| | | this.$nextTick(() => { |
| | | if (this.$refs.ncDocumentTableListRef) this.$refs.ncDocumentTableListRef.loadData(1) |
| | |
| | | <!--æ£ç´¢çµå模æ¿å¼¹çª--> |
| | | <NcDocumentSearchModal :currentDocumentInfo="rightClickSelected" @submitSuccess="modalFormSubmitSuccess" /> |
| | | <!--æ£ç´¢NCæä»¶å¼¹çª--> |
| | | <NcDocumentSearchNcModal :currentDocumentInfo="rightClickSelected" @submitSuccess="modalFormSubmitSuccess" /> |
| | | <NcDocumentSearchNcModal :currentDocumentInfo="rightClickSelected" @searchTreeNode="searchTreeNode" |
| | | @submitSuccess="modalFormSubmitSuccess"/> |
| | | <!--å¼ç¨é¨ä»¶--> |
| | | <NcComponentBorrowModal :currentBorrowInfo="rightClickSelected" @submitSuccess="modalFormSubmitSuccess" /> |
| | | <!--产åç»ææ åºæ¬å³é®èå(空ç½å¤è§¦å)--> |
| | | <ProductStructureBaseContextMenu ref="baseContextmenuRef" /> |
| | | |
| | | <div class="full-screen-container" v-if="fullScreenSpinning"> |
| | | <a-spin :spinning="fullScreenSpinning" size="large" tip="NCæä»¶æ£ç´¢ä¸..."/> |
| | | </div> |
| | | </a-card> |
| | | </template> |
| | | |
| | |
| | | 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 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' |
| | |
| | | checkStrictly: true, |
| | | allTreeKeys: [], |
| | | rightClickSelected: {}, |
| | | fullScreenSpinning: false, |
| | | url: { |
| | | delete: '/nc/product/delete' |
| | | } |
| | |
| | | created() { |
| | | this.getTreeDataByApi() |
| | | this.$bus.$on('treeMenuItemMethodTrigger', this.triggerCorrespondingMethod) |
| | | this.$bus.$on('searchNcFinished', () => this.fullScreenSpinning = false) |
| | | }, |
| | | beforeDestroy() { |
| | | this.$bus.$off('treeMenuItemMethodTrigger', this.triggerCorrespondingMethod) |
| | |
| | | /** |
| | | * æ èç¹é䏿¶è§¦å |
| | | * @param selectedKeys éä¸èç¹key |
| | | * @param {node} node èç¹å¯¹è±¡ |
| | | * @param eventOrRecord èç¹å¯¹è±¡æè
æå¨ä¼ å
¥record |
| | | */ |
| | | handleTreeSelect(selectedKeys, { node }) { |
| | | handleTreeSelect(selectedKeys, eventOrRecord) { |
| | | const that = this |
| | | let record = node.dataRef |
| | | let record = eventOrRecord.node ? eventOrRecord.node.dataRef : eventOrRecord |
| | | const { id, type } = record |
| | | dncApi.getProductStructureTreeNodeEntityApi({ id, type }) |
| | | .then(res => { |
| | |
| | | this.autoExpandParent = false |
| | | }, |
| | | |
| | | /** |
| | | * æ£ç´¢NCæä»¶å¼¹çªä¸åå»è¡è®°å½å触åæç´¢NCæä»¶å¯¹åºæ èç¹å¹¶æ¨¡æé䏿 èç¹æ¥è¯¢å¯¹åºè®¾å¤ç±»æNCæä»¶ |
| | | * @param searchNcRecord æ£ç´¢NCæä»¶å¼¹çªä¸åå»è·å¾ç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 |
| | |
| | | } |
| | | } |
| | | 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 |
| | | }, |
| | | |
| | | /** |
| | |
| | | width: 8px; |
| | | } |
| | | |
| | | .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; |
| | |
| | | { 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: [ |
| | |
| | | :selectShenpiData='selectDispatchFileXqData' |
| | | @searchReset='searchReset' |
| | | ></DispatchFileHandle> |
| | | <StandardizedProcessHandle |
| | | ref='StandardizedProcessHandle' |
| | | :selectShenpiData='selectDispatchFileXqData' |
| | | @searchReset='searchReset' |
| | | ></StandardizedProcessHandle> |
| | | <DispatchFileBachHandleStyle |
| | | ref='modalFormDispatchFileBatch' |
| | | @ok='modalFormOk' |
| | |
| | | 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', |
| | |
| | | InboundOrderHandle, |
| | | EquipmentTransferApprovalModal, |
| | | EquipmentScrapApprovalModal, |
| | | SparePartApplyHandle |
| | | SparePartApplyHandle, |
| | | StandardizedProcessHandle |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | case 'ggApproval': |
| | | this.handDispatchFileDetial(item) |
| | | break |
| | | case 'standardized_approval': |
| | | this.handStandardizedDetial(item) |
| | | break |
| | | case 'sbdjApproval': |
| | | this.handInspectionOrder(item) |
| | | break |
| | |
| | | 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) |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <!-- |
| | | 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> |
| | |
| | | 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() |
| | | } |
| | | |
| | | } |
| | | }, |
| | | //ç¦ç¨ç¶ææ ·å¼ |
| | |
| | | :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> |
| | |
| | | title:'ç³è¯·åºåºæ°é', |
| | | align:"left", |
| | | dataIndex: 'outboundQuantity' |
| | | }, |
| | | { |
| | | title:'é¢å®å¯¿å½', |
| | | align:"center", |
| | | dataIndex: 'ratedLife', |
| | | scopedSlots: { customRender: 'ratedLife' }, |
| | | }, |
| | | { |
| | | title:'使ç¨å¯¿å½', |
| | | align:"center", |
| | | dataIndex: 'useLife', |
| | | scopedSlots: { customRender: 'useLife' }, |
| | | }, |
| | | // { |
| | | // title:'å·²åºåºæ°é', |
| | |
| | | { |
| | | 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=>{ |
| | |
| | | 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 |
| | | } |
| | | }, |
| | | |
| | | |
| | | } |
| | | } |
| | |
| | | <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" |
| | |
| | | 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", |
| | |
| | | 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 |
| | |
| | | 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; |
| | |
| | | <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" |
| | |
| | | dataIndex: 'outboundLocation' |
| | | }, |
| | | // { |
| | | // title:'é¢å®å¯¿å½', |
| | | // align:"center", |
| | | // dataIndex: 'ratedLife', |
| | | // scopedSlots: { customRender: 'ratedLife' }, |
| | | // }, |
| | | // { |
| | | // title:'使ç¨å¯¿å½', |
| | | // align:"center", |
| | | // dataIndex: 'useLife', |
| | | // scopedSlots: { customRender: 'useLife' }, |
| | | // }, |
| | | // { |
| | | // title:'åºåºç¶æ;1.æªåºåºï¼2.é¨ååºåºï¼3.åºåºå®æ', |
| | | // align:"center", |
| | | // dataIndex: 'status' |
| | |
| | | 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 |
| | |
| | | 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=>{ |
| | |
| | | align:"center", |
| | | dataIndex: 'toolId' |
| | | }, |
| | | { |
| | | title:'åå
·åç§°', |
| | | align:"center", |
| | | dataIndex: 'typeName' |
| | | }, |
| | | |
| | | // { |
| | | // title:'åå
·åç§°', |
| | | // align:"center", |
| | | // dataIndex: 'typeName' |
| | | // }, |
| | | { |
| | | title:'åå®¶', |
| | | align:"center", |
| | |
| | | </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], |
| | |
| | | lastSelectionData: null, |
| | | url: { |
| | | add: '/tms/toolSharpening/add', |
| | | edit: '/tms/toolSharpening/edit', |
| | | // queryDetailList: '/tms/toolSharpening/listToolSharpening' |
| | | edit: '/tms/toolSharpening/edit' |
| | | } |
| | | } |
| | | }, |
| | |
| | | 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() |
| | |
| | | |
| | | |
| | | { |
| | | title: 'åå
·ç¼å·', |
| | | dataIndex: 'toolCode', |
| | | title: 'åå
·ç¼ç ', |
| | | dataIndex: 'toolId', |
| | | align: 'center' |
| | | }, |
| | | { |
| | |
| | | { |
| | | 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: [], |
| | |
| | | }, |
| | | { |
| | | title: 'åå
·ç¼å·', |
| | | dataIndex: 'toolCode', |
| | | dataIndex: 'toolId', |
| | | align: 'center', |
| | | width: 150 |
| | | width: 180 |
| | | }, |
| | | |
| | | { |
| | | title: 'å·¥å
፱Ȍ', |
| | | dataIndex: 'applicationType', |
| | | dataIndex: 'applicationType_dictText', |
| | | align: 'center', |
| | | width: 150 |
| | | }, |
| | |
| | | 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, |