From 5c404286280f462f195396d91c313f64bf9ded12 Mon Sep 17 00:00:00 2001 From: zhaowei <zhaowei> Date: 星期六, 05 七月 2025 17:12:05 +0800 Subject: [PATCH] 1、新增保养规范流程审批 2、新增保养项明细中保养项分类以及部位列随保养分类动态展示功能 --- src/views/flowable/workflow/MaintenanceStandard/MaintenanceStandardApprovalModal.vue | 380 ++++++++++++++ src/config/router.config.js | 295 ---------- src/views/eam/base/modules/EamMaintenanceStandardModal.vue | 104 +++ src/views/flowable/workflow/FlowTodo.vue | 739 ++++++++------------------ src/views/eam/base/EamMaintenanceStandardList.vue | 57 + src/views/eam/base/modules/EamMaintenanceStandardDetailList.vue | 3 6 files changed, 755 insertions(+), 823 deletions(-) diff --git a/src/config/router.config.js b/src/config/router.config.js index 434e8f4..0396c22 100644 --- a/src/config/router.config.js +++ b/src/config/router.config.js @@ -12,276 +12,7 @@ component: TabLayout, meta: { title: '棣栭〉' }, redirect: '/dashboard/analysis', - children: [ - // // dashboard - // { - // path: '/dashboard', - // name: 'dashboard', - // redirect: '/dashboard/workplace', - // component: RouteView, - // meta: { title: '浠〃鐩�', icon: 'dashboard', permission: [ 'dashboard' ] }, - // children: [ - // { - // path: '/dashboard/analysis', - // name: 'Analysis', - // component: () => import('@/views/dashboard/Analysis'), - // meta: { title: '鍒嗘瀽椤�', permission: [ 'dashboard' ] } - // }, - // { - // path: '/dashboard/monitor', - // name: 'Monitor', - // hidden: true, - // component: () => import('@/views/dashboard/Monitor'), - // meta: { title: '鐩戞帶椤�', permission: [ 'dashboard' ] } - // }, - // { - // path: '/dashboard/workplace', - // name: 'Workplace', - // component: () => import('@/views/dashboard/Workplace'), - // meta: { title: '宸ヤ綔鍙�', permission: [ 'dashboard' ] } - // } - // ] - // }, - // - // // forms - // { - // path: '/form', - // redirect: '/form/basic-form', - // component: PageView, - // meta: { title: '琛ㄥ崟椤�', icon: 'form', permission: [ 'form' ] }, - // children: [ - // { - // path: '/form/base-form', - // name: 'BaseForm', - // component: () => import('@/views/form/BasicForm'), - // meta: { title: '鍩虹琛ㄥ崟', permission: [ 'form' ] } - // }, - // { - // path: '/form/step-form', - // name: 'StepForm', - // component: () => import('@/views/form/stepForm/StepForm'), - // meta: { title: '鍒嗘琛ㄥ崟', permission: [ 'form' ] } - // }, - // { - // path: '/form/advanced-form', - // name: 'AdvanceForm', - // component: () => import('@/views/form/advancedForm/AdvancedForm'), - // meta: { title: '楂樼骇琛ㄥ崟', permission: [ 'form' ] } - // } - // ] - // }, - // - // // list - // { - // path: '/list', - // name: 'list', - // component: PageView, - // redirect: '/list/query-list', - // meta: { title: '鍒楄〃椤�', icon: 'table', permission: [ 'table' ] }, - // children: [ - // { - // path: '/list/query-list', - // name: 'QueryList', - // component: () => import('@/views/list/TableList'), - // meta: { title: '鏌ヨ琛ㄦ牸', permission: [ 'table' ] } - // }, - // { - // path: '/list/edit-table', - // name: 'EditList', - // component: () => import('@/views/list/TableInnerEditList'), - // meta: { title: '鍐呰仈缂栬緫琛ㄦ牸', permission: [ 'table' ] } - // }, - // { - // path: '/list/user-list', - // name: 'UserList', - // component: () => import('@/views/list/UserList'), - // meta: { title: '鐢ㄦ埛鍒楄〃', permission: [ 'table' ] } - // }, - // { - // path: '/list/role-list', - // name: 'RoleList', - // component: () => import('@/views/list/RoleList'), - // meta: { title: '瑙掕壊鍒楄〃', permission: [ 'table' ] } - // }, - // { - // path: '/list/permission-list', - // name: 'PermissionList', - // component: () => import('@/views/list/PermissionList'), - // meta: { title: '鏉冮檺鍒楄〃', permission: [ 'table' ] } - // }, - // { - // path: '/list/basic-list', - // name: 'BasicList', - // component: () => import('@/views/list/StandardList'), - // meta: { title: '鏍囧噯鍒楄〃', permission: [ 'table' ] } - // }, - // { - // path: '/list/card', - // name: 'CardList', - // component: () => import('@/views/list/CardList'), - // meta: { title: '鍗$墖鍒楄〃', permission: [ 'table' ] } - // }, - // { - // path: '/list/search', - // name: 'SearchList', - // component: () => import('@/views/list/search/SearchLayout'), - // redirect: '/list/search/article', - // meta: { title: '鎼滅储鍒楄〃', permission: [ 'table' ] }, - // children: [ - // { - // path: '/list/search/article', - // name: 'SearchArticles', - // component: () => import('../views/list/TableList'), - // meta: { title: '鎼滅储鍒楄〃锛堟枃绔狅級', permission: [ 'table' ] } - // }, - // { - // path: '/list/search/project', - // name: 'SearchProjects', - // component: () => import('../views/list/TableList'), - // meta: { title: '鎼滅储鍒楄〃锛堥」鐩級', permission: [ 'table' ] } - // }, - // { - // path: '/list/search/application', - // name: 'SearchApplications', - // component: () => import('../views/list/TableList'), - // meta: { title: '鎼滅储鍒楄〃锛堝簲鐢級', permission: [ 'table' ] } - // }, - // ] - // }, - // ] - // }, - // - // // profile - // { - // path: '/profile', - // name: 'profile', - // component: RouteView, - // redirect: '/profile/basic', - // meta: { title: '璇︽儏椤�', icon: 'profile', permission: [ 'profile' ] }, - // children: [ - // { - // path: '/profile/basic', - // name: 'ProfileBasic', - // component: () => import('@/views/profile/basic/Index'), - // meta: { title: '鍩虹璇︽儏椤�', permission: [ 'profile' ] } - // }, - // { - // path: '/profile/advanced', - // name: 'ProfileAdvanced', - // component: () => import('@/views/profile/advanced/Advanced'), - // meta: { title: '楂樼骇璇︽儏椤�', permission: [ 'profile' ] } - // } - // ] - // }, - // - // // result - // { - // path: '/result', - // name: 'result', - // component: PageView, - // redirect: '/result/success', - // meta: { title: '缁撴灉椤�', icon: 'check-circle-o', permission: [ 'result' ] }, - // children: [ - // { - // path: '/result/success', - // name: 'ResultSuccess', - // component: () => import(/* webpackChunkName: "result" */ '@/views/result/Success'), - // meta: { title: '鎴愬姛', hiddenHeaderContent: true, permission: [ 'result' ] } - // }, - // { - // path: '/result/fail', - // name: 'ResultFail', - // component: () => import(/* webpackChunkName: "result" */ '@/views/result/Error'), - // meta: { title: '澶辫触', hiddenHeaderContent: true, permission: [ 'result' ] } - // } - // ] - // }, - // - // // Exception - // { - // path: '/exception', - // name: 'exception', - // component: RouteView, - // redirect: '/exception/403', - // meta: { title: '寮傚父椤�', icon: 'warning', permission: [ 'exception' ] }, - // children: [ - // { - // path: '/exception/403', - // name: 'Exception403', - // component: () => import(/* webpackChunkName: "fail" */ '@/views/exception/403'), - // meta: { title: '403', permission: [ 'exception' ] } - // }, - // { - // path: '/exception/404', - // name: 'Exception404', - // component: () => import(/* webpackChunkName: "fail" */ '@/views/exception/404'), - // meta: { title: '404', permission: [ 'exception' ] } - // }, - // { - // path: '/exception/500', - // name: 'Exception500', - // component: () => import(/* webpackChunkName: "fail" */ '@/views/exception/500'), - // meta: { title: '500', permission: [ 'exception' ] } - // } - // ] - // }, - // - // // account - // { - // path: '/account', - // component: RouteView, - // name: 'account', - // meta: { title: '涓汉椤�', icon: 'user', keepAlive: true, permission: [ 'user' ] }, - // children: [ - // { - // path: '/account/center', - // name: 'center', - // component: () => import('@/views/account/center/Index'), - // meta: { title: '涓汉涓績', keepAlive: true, permission: [ 'user' ] } - // }, - // { - // path: '/account/settings', - // name: 'settings', - // component: () => import('@/views/account/settings/Index'), - // meta: { title: '涓汉璁剧疆', hideHeader: true, keepAlive: true, permission: [ 'user' ] }, - // redirect: '/account/settings/base', - // alwaysShow: true, - // children: [ - // { - // path: '/account/settings/base', - // name: 'BaseSettings', - // component: () => import('@/views/account/settings/BaseSetting'), - // meta: { title: '鍩烘湰璁剧疆', hidden: true, keepAlive: true, permission: [ 'user' ] } - // }, - // { - // path: '/account/settings/security', - // name: 'SecuritySettings', - // component: () => import('@/views/account/settings/Security'), - // meta: { title: '瀹夊叏璁剧疆', hidden: true, keepAlive: true, permission: [ 'user' ] } - // }, - // { - // path: '/account/settings/custom', - // name: 'CustomSettings', - // component: () => import('@/views/account/settings/Custom'), - // meta: { title: '涓�у寲璁剧疆', hidden: true, keepAlive: true, permission: [ 'user' ] } - // }, - // { - // path: '/account/settings/binding', - // name: 'BindingSettings', - // component: () => import('@/views/account/settings/Binding'), - // meta: { title: '璐︽埛缁戝畾', hidden: true, keepAlive: true, permission: [ 'user' ] } - // }, - // { - // path: '/account/settings/notification', - // name: 'NotificationSettings', - // component: () => import('@/views/account/settings/Notification'), - // meta: { title: '鏂版秷鎭�氱煡', hidden: true, keepAlive: true, permission: [ 'user' ] } - // }, - // ] - // }, - // ] - // } - ] + children: [] }, { path: '*', redirect: '/404', hidden: true @@ -321,30 +52,6 @@ } ] }, - - // { - // path: '/', - // name: 'index', - // component: TabLayout, - // meta: {title: '棣栭〉'}, - // redirect: '/dashboard/workplace', - // children: [ - // { - // path: '/online', - // name: 'online', - // redirect: '/online', - // component: RouteView, - // meta: {title: '鍦ㄧ嚎寮�鍙�', icon: 'dashboard', permission: ['dashboard']}, - // children: [ - // { - // path: '/online/auto/:code', - // name: 'report', - // component: () => import('@/views/modules/online/cgreport/OnlCgreportAutoList') - // }, - // ] - // }, - // ] - // }, { // OAuth2 APP椤甸潰璺敱 diff --git a/src/views/eam/base/EamMaintenanceStandardList.vue b/src/views/eam/base/EamMaintenanceStandardList.vue index 04196b6..440ec2e 100644 --- a/src/views/eam/base/EamMaintenanceStandardList.vue +++ b/src/views/eam/base/EamMaintenanceStandardList.vue @@ -104,19 +104,22 @@ :customRow='clickThenSelect' @change="handleTableChange"> <span slot="action" slot-scope="text, record"> - <a v-if="record.standardStatus === 'WAIT_SUBMIT'" @click.stop="handleEdit(record)">缂栬緫</a> - - <template v-if="record.standardStatus === 'START'"> - <a-divider type="vertical"/> - - <a @click.stop="handleUpgrade(record)">鍗囩増</a> - </template> + <a v-if="record.standardStatus === 'START'" @click.stop="handleUpgrade(record)">鍗囩増</a> <template v-if="record.standardStatus === 'WAIT_SUBMIT'"> - <a-divider type="vertical"/> + <a @click.stop="handleEdit(record)">缂栬緫</a> + + <a-divider type="vertical"/> + + <a-popconfirm title="纭畾鍙戣捣娴佺▼鍚�?" @confirm="() => startProcess(record.id)"> + <a @click.stop="event=>event.stopPropagation()">鍙戣捣娴佺▼</a> + </a-popconfirm> + + + <a-divider type="vertical"/> <a-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record.id)"> - <a @click="event=>event.stopPropagation()">鍒犻櫎</a> + <a @click.stop="event=>event.stopPropagation()">鍒犻櫎</a> </a-popconfirm> </template> </span> @@ -125,7 +128,8 @@ <a-tabs defaultActiveKey="1"> <a-tab-pane tab='淇濆吇鏍囧噯鏄庣粏椤�' key="1"> <div class="table-operator" style="margin:-16px"> - <eam-maintenance-standard-detail-list ref="standardDetailRef" :standardId="standardId"/> + <eam-maintenance-standard-detail-list ref="standardDetailRef" :standardId="standardId" + :selectionRows="selectionRows"/> </div> </a-tab-pane> @@ -143,7 +147,7 @@ import EamMaintenanceStandardModal from './modules/EamMaintenanceStandardModal' import { JeecgListMixin } from '@/mixins/JeecgListMixin' import EamMaintenanceStandardDetailList from '@views/eam/base/modules/EamMaintenanceStandardDetailList' - import { deleteAction, templateXlsDownload } from '@api/manage' + import { deleteAction, getAction, templateXlsDownload } from '@api/manage' import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue' @@ -233,6 +237,7 @@ list: '/eam/maintenanceStandard/list', delete: '/eam/maintenanceStandard/delete', deleteBatch: '/eam/maintenanceStandard/deleteBatch', + startProcess: '/eam/maintenanceStandard/saveEamMaintenanceStandardProcess', exportXlsUrl: 'eam/maintenanceStandard/exportXls', inspectionImportExcel: 'eam/maintenanceStandard/inspectionImportExcel', weekMaintenanceImportExcel: 'eam/maintenanceStandard/weekMaintenanceImportExcel', @@ -241,8 +246,7 @@ inspectionXlsDownloadUrl: '瀵煎叆妯℃澘/鐐规鏍囧噯瀵煎叆妯℃澘_v1.0.xlsx', weekMaintenanceXlsDownloadUrl: '瀵煎叆妯℃澘/鍛ㄤ繚鏍囧噯瀵煎叆妯℃澘_v1.0.xlsx', secondMaintenanceXlsDownloadUrl: '瀵煎叆妯℃澘/浜屼繚鏍囧噯瀵煎叆妯℃澘_v1.0.xlsx', - thirdMaintenanceXlsDownloadUrl: '瀵煎叆妯℃澘/涓変繚鏍囧噯瀵煎叆妯℃澘_v1.0.xlsx', - abolish: '/eam/maintenanceStandard/abolish' + thirdMaintenanceXlsDownloadUrl: '瀵煎叆妯℃澘/涓変繚鏍囧噯瀵煎叆妯℃澘_v1.0.xlsx' }, standardId: '-1' } @@ -308,6 +312,33 @@ templateXlsDownload(url) }, + /** + * 鐐瑰嚮鍙戣捣娴佺▼瑙﹀彂 + * @param id 鍒楄〃琛岃褰旾D + */ + startProcess(id) { + this.loading = true + const that = this + getAction(this.url.startProcess, { id }) + .then(res => { + if (res.success) { + that.$notification.success({ + message: '娑堟伅', + description: res.message + }) + that.loadData() + } else { + that.$notification.warning({ + message: '娑堟伅', + description: res.message + }) + } + }) + .finally(() => { + that.loading = false + }) + }, + handleUpgrade(record) { //鍗囩増 this.$refs.modalForm.upgrade(record) diff --git a/src/views/eam/base/modules/EamMaintenanceStandardDetailList.vue b/src/views/eam/base/modules/EamMaintenanceStandardDetailList.vue index ea3c9f1..507d728 100644 --- a/src/views/eam/base/modules/EamMaintenanceStandardDetailList.vue +++ b/src/views/eam/base/modules/EamMaintenanceStandardDetailList.vue @@ -33,7 +33,8 @@ type: String, required: true, default: '-1' - } + }, + selectionRows:{} }, data() { return { diff --git a/src/views/eam/base/modules/EamMaintenanceStandardModal.vue b/src/views/eam/base/modules/EamMaintenanceStandardModal.vue index 0ece138..3ac6bc5 100644 --- a/src/views/eam/base/modules/EamMaintenanceStandardModal.vue +++ b/src/views/eam/base/modules/EamMaintenanceStandardModal.vue @@ -85,16 +85,16 @@ :columns="detail.columns" style="margin-top: 8px;"> <template v-slot:itemPart="props"> - <a-textarea v-model="props.row.itemPart" allowClear @change="$refs.editableDetailTable.validateTable()" - :placeholder="model.maintenanceCategory!='THIRD_MAINTENANCE'?'浠呬笁淇濋渶瑕佺淮鎶�':'璇疯緭鍏ラ儴浣�'" :rows="1" - autoSize :disabled="model.maintenanceCategory!='THIRD_MAINTENANCE'"/> + <a-textarea v-model="props.row.itemPart" allowClear @blur="$refs.editableDetailTable.validateTable()" + :placeholder="!Boolean(model.maintenanceCategory)?'璇烽�夋嫨淇濆吇鍒嗙被':'璇疯緭鍏ラ儴浣�'" :rows="1" + autoSize :disabled="!Boolean(model.maintenanceCategory)"/> </template> <template v-slot:itemCategory="props"> <j-dict-select-tag v-model="props.row.itemCategory" :dict-code="encodedDictCode" @change="$refs.editableDetailTable.validateTable()" - :placeholder="getItemCategoryPlaceholder" - :disabled="!Boolean(model.maintenanceCategory)||model.maintenanceCategory=='THIRD_MAINTENANCE'"/> + :placeholder="!Boolean(model.maintenanceCategory)?'璇烽�夋嫨淇濆吇鍒嗙被':'璇烽�夋嫨椤逛繚鍏诲垎绫�'" + :disabled="!Boolean(model.maintenanceCategory)"/> </template> </j-vxe-table> </a-row> @@ -219,6 +219,67 @@ ] } ], + defaultColumns: [ + { + title: 'ID', + key: 'id', + type: JVXETypes.hidden + }, + { + title: 'standardId', + key: 'standardId', + type: JVXETypes.hidden + }, + { + title: '椤圭洰搴忓彿', + key: 'itemCode', + type: JVXETypes.inputNumber, + align: 'center', + placeholder: '璇疯緭鍏ラ」鐩簭鍙�', + width: 150, + validateRules: [ + { required: true, message: '璇疯緭鍏ラ」鐩簭鍙�' }, + { unique: true, message: '椤圭洰搴忓彿涓嶈兘閲嶅' } + ] + }, + { + title: '閮ㄤ綅', + key: 'itemPart', + type: JVXETypes.slot, + slotName: 'itemPart', + placeholder: '璇疯緭鍏ラ儴浣�', + align: 'center', + validateRules: [{ handler: this.itemPartValidate }] + }, + { + title: '淇濆吇椤瑰垎绫�', + key: 'itemCategory', + type: JVXETypes.slot, + slotName: 'itemCategory', + align: 'center', + validateRules: [{ handler: this.itemCategoryValidate }] + }, + { + title: '淇濆吇椤圭洰', + key: 'itemName', + placeholder: '璇疯緭鍏ヤ繚鍏婚」鐩�', + type: JVXETypes.textarea, + align: 'center', + validateRules: [ + { required: true, message: '璇疯緭鍏ヤ繚鍏婚」鐩�' } + ] + }, + { + title: '淇濆吇瑙勮寖鎴栬姹�', + key: 'itemDemand', + placeholder: '璇疯緭鍏ヤ繚鍏昏鑼冩垨瑕佹眰', + type: JVXETypes.textarea, + align: 'center', + validateRules: [ + { required: true, message: '璇疯緭鍏ヤ繚鍏昏鑼冩垨瑕佹眰' } + ] + } + ], toolbarConfig: { // prefix 鍓嶇紑锛泂uffix 鍚庣紑 slot: ['prefix', 'suffix'], @@ -228,15 +289,19 @@ } } }, - computed: { - getItemCategoryPlaceholder() { - if (!Boolean(this.model.maintenanceCategory)) return '璇烽�夋嫨淇濆吇鍒嗙被' - else { - if (this.model.maintenanceCategory != 'THIRD_MAINTENANCE') return '璇烽�夋嫨淇濆吇椤瑰垎绫�' - else return '涓変繚鏃犻渶缁存姢' - } - }, + watch: { + 'model.maintenanceCategory': { + handler(val) { + if (val) { + if (val != 'THIRD_MAINTENANCE') this.detail.columns = [...this.detail.defaultColumns.filter(item => item.key != 'itemPart')] + else this.detail.columns = [...this.detail.defaultColumns.filter(item => item.key != 'itemCategory')] + } + else this.detail.columns = [...this.detail.defaultColumns] + } + } + }, + computed: { encodedDictCode() { let suffix if (!Boolean(this.model.maintenanceCategory) || this.model.maintenanceCategory === 'THIRD_MAINTENANCE') return @@ -247,6 +312,7 @@ } }, methods: { + // 涓婚〉闈㈢偣鍑绘柊澧炲悗瑙﹀彂 add() { this.model = {} this.visible = true @@ -255,6 +321,10 @@ this.detail.dataSource = [] }, + /** + * 涓婚〉闈㈢偣鍑荤紪杈戝悗瑙﹀彂 + * @param record 涓婚〉闈㈠垪琛ㄨ璁板綍 + */ edit(record) { this.model = Object.assign({}, record) this.visible = true @@ -264,6 +334,10 @@ this.loadDetail(record.id) }, + /** + * 鐐瑰嚮鍗囩増鍚庤Е鍙� + * @param record 涓婚〉闈㈠垪琛ㄨ璁板綍 + */ upgrade(record) { this.model = Object.assign({}, record) this.visible = true @@ -297,8 +371,9 @@ if (value !== 'THIRD_MAINTENANCE') delete item.itemPart delete item.itemCategory }) + this.detail.dataSource = [...tableData] - console.log('tableData', tableData) + this.$refs.editableDetailTable.validateTable() }, /** @@ -419,5 +494,6 @@ /deep/ textarea.ant-input { resize: none; + margin-bottom: 0; } </style> \ No newline at end of file diff --git a/src/views/flowable/workflow/FlowTodo.vue b/src/views/flowable/workflow/FlowTodo.vue index 81fec72..e29eaf4 100644 --- a/src/views/flowable/workflow/FlowTodo.vue +++ b/src/views/flowable/workflow/FlowTodo.vue @@ -7,17 +7,9 @@ <a-card :bordered='false'> <!-- 鏌ヨ鍖哄煙 --> <div class='table-page-search-wrapper'> - <a-form - layout='inline' - @keyup.enter.native='searchQuery' - > + <a-form layout='inline' @keyup.enter.native='searchQuery'> <a-row :gutter='24'> - <a-col - :lg='6' - :md='8' - :sm='24' - :xl='4' - > + <a-col :lg='6' :md='8' :sm='24' :xl='4'> <a-form-item label='娴佺▼鍒嗙被'> <j-dict-select-tag v-model='queryParam.category' @@ -26,17 +18,7 @@ ></j-dict-select-tag> </a-form-item> </a-col> - <!--<a-col :xl="4" :lg="6" :md="8" :sm="24">--> - <!--<a-form-item label="娴佺▼鍚嶇О">--> - <!--<a-input placeholder="璇疯緭鍏ユ祦绋嬪悕绉�" v-model="queryParam.flowName"></a-input>--> - <!--</a-form-item>--> - <!--</a-col>--> - <a-col - :lg='6' - :md='8' - :sm='24' - :xl='4' - > + <a-col :lg='6' :md='8' :sm='24' :xl='4'> <a-form-item label='褰撳墠鑺傜偣'> <a-input v-model='queryParam.name' @@ -44,12 +26,7 @@ ></a-input> </a-form-item> </a-col> - <a-col - :lg='6' - :md='8' - :sm='24' - :xl='4' - > + <a-col :lg='6' :md='8' :sm='24' :xl='4'> <a-form-item label='绠�瑕佹弿杩�'> <a-input v-model='queryParam.title' @@ -57,60 +34,20 @@ ></a-input> </a-form-item> </a-col> - <template v-if='toggleSearchStatus'> - <a-col - :lg='8' - :md='12' - :sm='24' - :xl='8' - > - <a-form-item label='浠诲姟鏃堕棿鑼冨洿'> - <j-date - v-model='queryParam.startTime' - :show-time='false' - class='query-group-cust' - date-format='YYYY-MM-DD HH:mm:ss' - placeholder='璇烽�夋嫨寮�濮嬫椂闂�' - ></j-date> - <span class='query-group-split-cust'></span> - <j-date - v-model='queryParam.endTime' - :show-time='false' - class='query-group-cust' - date-format='YYYY-MM-DD HH:mm:ss' - placeholder='璇烽�夋嫨缁撴潫鏃堕棿' - ></j-date> - </a-form-item> - </a-col> - </template> + <a-col :lg='8' :md='12' :sm='24' :xl='8'> + <a-form-item label='浠诲姟鏃堕棿鑼冨洿'> + <j-date v-model='queryParam.startTime' :show-time='false' class='query-group-cust' + date-format='YYYY-MM-DD HH:mm:ss' placeholder='璇烽�夋嫨寮�濮嬫椂闂�'></j-date> + <span class='query-group-split-cust'></span> + <j-date v-model='queryParam.endTime' :show-time='false' class='query-group-cust' + date-format='YYYY-MM-DD HH:mm:ss' placeholder='璇烽�夋嫨缁撴潫鏃堕棿'></j-date> + </a-form-item> + </a-col> - <a-col - :lg='6' - :md='8' - :sm='24' - :xl='4' - > - <span - class='table-page-search-submitButtons' - style='float: left;overflow: hidden;' - > - <a-button - icon='search' - type='primary' - @click='searchQuery' - >鏌ヨ</a-button> - <a-button - icon='reload' - style='margin-left: 8px' - @click='searchReset' - >閲嶇疆</a-button> - <a - style='margin-left: 8px' - @click='handleToggleSearch' - > - {{ toggleSearchStatus ? '鏀惰捣' : '灞曞紑' }} - <a-icon :type="toggleSearchStatus ? 'up' : 'down'" /> - </a> + <a-col :lg='6' :md='8' :sm='24' :xl='4'> + <span class='table-page-search-submitButtons' style='float: left;overflow: hidden;'> + <a-button icon='search' type='primary' @click='searchQuery'>鏌ヨ</a-button> + <a-button icon='reload' style='margin-left: 8px' @click='searchReset'>閲嶇疆</a-button> </span> </a-col> </a-row> @@ -122,462 +59,262 @@ <div class='table-operator'> <a-dropdown v-if='selectedRowKeys.length > 0 '> <a-menu slot='overlay'> - <a-menu-item - key='1' - @click='batchHandle' - > - <a-icon type='delete' /> + <a-menu-item key='1' @click='batchHandle'> + <a-icon type='delete'/> 鎵归噺澶勭悊 </a-menu-item> </a-menu> <a-button style='margin-left: 8px'> 鎵归噺鎿嶄綔 - <a-icon type='down' /> + <a-icon type='down'/> </a-button> </a-dropdown> </div> <!-- table鍖哄煙-begin --> <div> - <div - class='ant-alert ant-alert-info' - style='margin-bottom: 16px;' - > + <div class='ant-alert ant-alert-info' style='margin-bottom: 16px;'> <i class='anticon anticon-info-circle ant-alert-icon'></i>宸查�夋嫨 <a style='font-weight: 600'>{{ - selectedRowKeys.length }}</a>椤� - <a - style='margin-left: 24px' - @click='onClearSelected' - >娓呯┖</a> + selectedRowKeys.length }}</a>椤� + <a style='margin-left: 24px' @click='onClearSelected'>娓呯┖</a> </div> - <a-table - ref='table' - :columns='columns' - :dataSource='dataSource' - :loading='loading' - :pagination='ipagination' - :rowSelection='{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}' - :scroll='{x:getTableColumnsTotalWidth,y:465}' - bordered - rowKey='id' - size='middle' - @change='handleTableChange' - > - - <span - slot='action' - slot-scope='text, record' - > + <a-table ref='table' :columns='columns' :dataSource='dataSource' :loading='loading' :pagination='ipagination' + :rowSelection='{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}' + :scroll='{x:getTableColumnsTotalWidth,y:465}' bordered rowKey='id' size='middle' + @change='handleTableChange'> + <span slot='action' slot-scope='text, record'> <a @click='handelDetail(record,text)'>鎵ц/瀹℃壒</a> </span> - </a-table> </div> + + <maintenance-standard-approval-modal ref="maintenanceStandardApprovalModal" @modalFormOk="modalFormOk" + :selectShenpiData="selectedRowData"/> </a-card> </template> <script> + import { mixinDevice } from '@/utils/mixin' + import { JeecgListMixin } from '@/mixins/JeecgListMixin' + import { getAction } from '@api/manage' + import MaintenanceStandardApprovalModal from './MaintenanceStandard/MaintenanceStandardApprovalModal' -import '@/assets/less/TableExpand.less' -import { mixinDevice } from '@/utils/mixin' -import { JeecgListMixin } from '@/mixins/JeecgListMixin' -import JDictSelectTag from '@/components/dict/JDictSelectTag.vue' -import { getAction } from '@api/manage' -export default { - name: 'NcDeviceCharactersList', - mixins: [JeecgListMixin, mixinDevice], - components: { - JDictSelectTag, - }, - data() { - return { - description: '宸ヤ綔娴�-鎴戠殑寰呭姙', - // 琛ㄥご - columns: [ - { - title: '搴忓彿', - dataIndex: '', - key: 'rowIndex', - width: 60, - align: 'center', - customRender: function (t, r, index) { - return parseInt(index) + 1 + export default { + name: 'NcDeviceCharactersList', + mixins: [JeecgListMixin, mixinDevice], + components: { MaintenanceStandardApprovalModal }, + data() { + return { + description: '宸ヤ綔娴�-鎴戠殑寰呭姙', + // 琛ㄥご + columns: [ + { + title: '搴忓彿', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + customRender: function(t, r, index) { + return parseInt(index) + 1 + } + }, + { + title: '娴佺▼鍒嗙被', + align: 'center', + dataIndex: 'category_dictText', + width: 150 + }, + { + title: '娴佺▼鍚嶇О', + align: 'center', + dataIndex: 'flowName', + width: 200 + }, + { + title: '娴佺▼涓氬姟绠�瑕佹弿杩�', + align: 'center', + dataIndex: 'description', + ellipsis: true + }, + { + title: '涓婁竴姝ュ鐞嗕汉', + align: 'center', + dataIndex: 'preNodeAssignee_dictText', + width: 150 + }, + { + title: '鍓嶉┍鑺傜偣', + align: 'center', + dataIndex: 'preNode', + width: 200 + }, + { + title: '褰撳墠鑺傜偣', + align: 'center', + dataIndex: 'name', + width: 200 + }, + { + title: '褰撳墠鑺傜偣寮�濮嬫椂闂�', + align: 'center', + dataIndex: 'createTime', + width: 150 + }, + { + title: '鎿嶄綔', + dataIndex: 'action', + scopedSlots: { customRender: 'action' }, + align: 'center', + width: 150, + fixed: 'right' } + ], + url: { + list: '/assign/flow/toTaskBySelf' }, - { - title: '娴佺▼鍒嗙被', - align: 'center', - dataIndex: 'category_dictText', - width: 100 - }, - { - title: '娴佺▼鍚嶇О', - align: 'center', - dataIndex: 'flowName', - width: 200 - }, - { - title: '娴佺▼涓氬姟绠�瑕佹弿杩�', - align: 'center', - dataIndex: 'description', - width: 350, - ellipsis: true - - }, - { - title: '涓婁竴姝ュ鐞嗕汉', - align: 'center', - dataIndex: 'preNodeAssignee_dictText', - width: 150 - }, - { - title: '鍓嶉┍鑺傜偣', - align: 'center', - dataIndex: 'preNode', - width: 200 - }, - { - title: '褰撳墠鑺傜偣', - align: 'center', - dataIndex: 'name', - width: 200 - }, - { - title: '褰撳墠鑺傜偣寮�濮嬫椂闂�', - align: 'center', - dataIndex: 'createTime', - width: 200 - }, - { - title: '鎿嶄綔', - dataIndex: 'action', - scopedSlots: { customRender: 'action' }, - align: 'center', - width: 150, - fixed: 'right' - } - ], - url: { - list: '/assign/flow/toTaskBySelf', - isSameNode: '/assign/flow/isSameNode' + selectedRowData: {}, + selectInspectionOrderData: {}, + selectWeekMaintenanceData: {}, + selectSecondMaintenanceData: {}, + selectThirdMaintenanceData: {}, + selectRepairOrderData: {} + } + }, + computed: { + importExcelUrl: function() { + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}` }, - dictOptions: {}, - selectShenpiData: {}, - selectDispatchFileXqData: {}, - selectInspectionOrderData: {}, - selectWeekMaintenanceData: {}, - selectSecondMaintenanceData: {}, - selectThirdMaintenanceData: {}, - selectBachData: {}, - selectRepairOrderData: {}, - selectOutBoundOrderData: {}, - selectLossBoundOrderData: {}, - selectStocktakingBoundOrderData: {}, - selectInboundOrderData: {}, - selectSparePartApplyData: {}, - selectGuideCardData:{}, - selectEquipmentAssignProductData:{}, - selectEquipmentSealUpData:{}, - //涓氬姟淇℃伅ID - dataId: undefined - } - }, - created() { - }, - computed: { - importExcelUrl: function () { - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}` + getTableColumnsTotalWidth() { + return this.columns.reduce((total, item) => total + item.width, 0) + } }, - getTableColumnsTotalWidth() { - return this.columns.reduce((total, item) => total + item.width, 0) - } - }, - methods: { - loadData(arg) { - if (!this.url.list) { - this.$message.error('璇疯缃畊rl.list灞炴��!') - return - } - //鍔犺浇鏁版嵁 鑻ヤ紶鍏ュ弬鏁�1鍒欏姞杞界涓�椤电殑鍐呭 - if (arg === 1) { - this.ipagination.current = 1 - } - var params = this.getQueryParams()//鏌ヨ鏉′欢 - if (!params) { - return false - } - this.loading = true - getAction(this.url.list, params).then((res) => { - if (res.success) { - // console.log(res) - //update-begin---author:zhangyafei Date:20201118 for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------ - this.dataSource = res.result.records || res.result - if (res.result.total) { - this.ipagination.total = res.result.total - } else { - this.ipagination.total = 0 - } - if (this.selectedRowKeys.length > 0) this.selectedRowKeys = this.selectionRows = [] - //update-end---author:zhangyafei Date:20201118 for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------ - } else { - this.$message.warning(res.message) + methods: { + handelDetail(item, index) { + let processType = this.splitProcessType(item.category) + console.log('processType', processType) + switch (processType) { + case 'maintenance_standard': + this.handleMaintenanceStandard(item) + break + case 'sbdjApproval': + this.handInspectionOrder(item) + break + case 'WEEK_MAINTENANCE': + this.handleWeekMaintenance(item) + break + case 'eam_repair': + this.handleRepairOrder(item) + break + case 'second_maintenance': + this.handleSecondMaintenance(item) + break + case 'third_maintenance': + this.handleThirdMaintenance(item) + break + case 'toolOutStorageApproval': + this.handleToolOutStorageApproval(item) + break + case 'toolsStocktakingBound': + this.handleToolStocktakingApproval(item) + break + case 'toolsLossApproval': + this.handleToolLossApproval(item) + break + default: + alert('娌℃壘鍒拌娴佺▼') } - }).finally(() => { - this.loading = false - }) - }, + }, - handelDetail(item, index) { - console.log('鐐瑰嚮浜嗚鎯�') - console.log('item----->', item) - console.log('index----->', index) - let processType = this.splitAprocessType(item.category) - console.log('processType--->', processType) - switch (processType) { - case 'drApproval': - this.handDrDetial(item) - break - case 'ggApproval': - this.handDispatchFileDetial(item) - break - case 'ncFileSettingProcessApproval': - this.handStandardizedDetial(item) - break - case 'sbdjApproval': - this.handInspectionOrder(item) - break - case 'WEEK_MAINTENANCE': - this.handleWeekMaintenance(item) - break - case 'eam_repair': - this.handleRepairOrder(item) - break - case 'equipment_lean_out': - this.handleEquipmentLeanOut(item) - break - case 'second_maintenance': - this.handleSecondMaintenance(item) - break - case 'third_maintenance': - this.handleThirdMaintenance(item) - break - case 'toolOutStorageApproval': - this.handleToolOutStorageApproval(item) - break - case 'toolsStocktakingBound': - this.handleToolStocktakingApproval(item) - break - case 'toolsLossApproval': - this.handleToolLossApproval(item) - break - case 'equipment_seal_up': - this.handleEquipmentSealUp(item) - break - case 'toolInStorageApproval': - this.handleToolInStorage(item) - break - case 'equipment_transfer': - this.handleEquipmentTransfer(item) - break - case 'equipment_scrap': - this.handleEquipmentScrap(item) - break - case 'spare_part_apply': - this.handleSparePartApplyApproval(item) - break - case 'programConfirmApproval': - this.handleGuideCardApproval(item) - break - case 'equipmentAssignProductApproval': - this.handleEquipmentAssignProductApproval(item) - break - default: - alert('娌℃壘鍒拌娴佺▼') - } - }, + handleMaintenanceStandard(record) { + console.log('this.$refs.maintenanceStandardApprovalModal.', this.$refs.maintenanceStandardApprovalModal) + this.selectedRowData = Object.assign({}, record) + this.$refs.maintenanceStandardApprovalModal.visible = true + this.$refs.maintenanceStandardApprovalModal.title = '淇濆吇瑙勮寖' + this.$refs.maintenanceStandardApprovalModal.getAllApproveData(record) + this.$refs.maintenanceStandardApprovalModal.getBasicInformation(record) + }, - batchHandle() { - const categorySet = new Set(this.selectionRows.map(item => item.category)) - const nameSet = new Set(this.selectionRows.map(item => item.name)) - if (categorySet.size !== 1 || nameSet.size !== 1) { - this.$notification.info({ - message: '娑堟伅', - description: '璇烽�夋嫨鍚屼竴娴佺▼鍒嗙被涓嬬殑鍚屼竴褰撳墠鑺傜偣' - }) - return - } + batchHandle() { + const categorySet = new Set(this.selectionRows.map(item => item.category)) + const nameSet = new Set(this.selectionRows.map(item => item.name)) + if (categorySet.size !== 1 || nameSet.size !== 1) { + this.$notification.info({ + message: '娑堟伅', + description: '璇烽�夋嫨鍚屼竴娴佺▼鍒嗙被涓嬬殑鍚屼竴褰撳墠鑺傜偣' + }) + return + } - if (categorySet.has('eam_repair')) { - this.$notification.info({ - message: '娑堟伅', - description: '璁惧缁翠慨娴佺▼鏃犳硶鎵归噺澶勭悊' - }) - return - } + if (categorySet.has('eam_repair')) { + this.$notification.info({ + message: '娑堟伅', + description: '璁惧缁翠慨娴佺▼鏃犳硶鎵归噺澶勭悊' + }) + return + } - if (categorySet.has('sbdjApproval')) { - this.$refs.inspectionOrderBatchHandleRef.visible = true - this.$refs.inspectionOrderBatchHandleRef.title = this.selectionRows[0].name - this.$refs.inspectionOrderBatchHandleRef.getAllApproveData(this.selectionRows[0]) - this.$refs.inspectionOrderBatchHandleRef.getBasicInformation(this.selectionRows[0]) - } else if (categorySet.has('WEEK_MAINTENANCE')) { - this.$refs.weenMaintenanceBatchApprovalModalRef.handleDetail(this.selectionRows[0]) - this.$refs.weenMaintenanceBatchApprovalModalRef.title = this.selectionRows[0].name - } - }, + if (categorySet.has('sbdjApproval')) { + this.$refs.inspectionOrderBatchHandleRef.visible = true + this.$refs.inspectionOrderBatchHandleRef.title = this.selectionRows[0].name + this.$refs.inspectionOrderBatchHandleRef.getAllApproveData(this.selectionRows[0]) + this.$refs.inspectionOrderBatchHandleRef.getBasicInformation(this.selectionRows[0]) + } else if (categorySet.has('WEEK_MAINTENANCE')) { + this.$refs.weenMaintenanceBatchApprovalModalRef.handleDetail(this.selectionRows[0]) + this.$refs.weenMaintenanceBatchApprovalModalRef.title = this.selectionRows[0].name + } + }, - splitAprocessType(title) { - let parts = title.split('锛�') // 娉ㄦ剰鍐掑彿鏄叏瑙掑瓧绗︼紝浣跨敤瀵瑰簲鐨勫瓧杩涜鍒嗗壊 - let result = parts[0] - return result - }, - //DNC-鎸囨淳NC绋嬪簭鑷宠澶� - handDrDetial(item) { - this.selectShenpiData = item - this.$refs.modalFormApproval.clearTableSource() - this.$refs.modalFormApproval.getAllApproveData(item) - }, - //DNC-NC绋嬪簭绛炬淳 - handDispatchFileDetial(item) { - console.log('item----->', item) - this.selectDispatchFileXqData = item - this.$refs.modalFormDispatchFileXq.clearTableSource() - this.$refs.modalFormDispatchFileXq.getAllApproveData(item) - }, - //DNC-瀹氬瀷瀹℃壒椤甸潰 - handStandardizedDetial(item){ - this.selectDispatchFileXqData = item - this.$refs.StandardizedProcessHandle.clearTableSource() - this.$refs.StandardizedProcessHandle.getAllApproveData(item) - }, + splitProcessType(title) { + let parts = title.split('锛�') // 娉ㄦ剰鍐掑彿鏄叏瑙掑瓧绗︼紝浣跨敤瀵瑰簲鐨勫瓧杩涜鍒嗗壊 + let result = parts[0] + return result + }, - handInspectionOrder(record) { - console.log('record----->', record) - this.selectInspectionOrderData = Object.assign({}, record) - this.$refs.modalFormInspectionOrder.visible = true - this.$refs.modalFormInspectionOrder.title = record.name - this.$refs.modalFormInspectionOrder.getAllApproveData(record) - this.$refs.modalFormInspectionOrder.getBasicInformation(record) - }, + handInspectionOrder(record) { + console.log('record----->', record) + this.selectInspectionOrderData = Object.assign({}, record) + this.$refs.modalFormInspectionOrder.visible = true + this.$refs.modalFormInspectionOrder.title = record.name + this.$refs.modalFormInspectionOrder.getAllApproveData(record) + this.$refs.modalFormInspectionOrder.getBasicInformation(record) + }, - handleWeekMaintenance(item) { - if (item && item.dataId) { - this.selectWeekMaintenanceData = Object.assign({}, item) - this.$refs.weekMaintenanceApprovalModal.handleDetail(item) - this.$refs.weekMaintenanceApprovalModal.title = item.name - this.$refs.weekMaintenanceApprovalModal.disableSubmit = false - } - }, + handleWeekMaintenance(item) { + if (item && item.dataId) { + this.selectWeekMaintenanceData = Object.assign({}, item) + this.$refs.weekMaintenanceApprovalModal.handleDetail(item) + this.$refs.weekMaintenanceApprovalModal.title = item.name + this.$refs.weekMaintenanceApprovalModal.disableSubmit = false + } + }, - /** - * 鐐瑰嚮璁惧缁翠慨鍒嗙被娴佺▼璇︽儏鏃惰Е鍙� - * @param record - */ - handleRepairOrder(record) { - this.selectRepairOrderData = Object.assign({}, record) - this.$refs.repairOrderApprovalModal.visible = true - this.$refs.repairOrderApprovalModal.title = record.name - this.$refs.repairOrderApprovalModal.getAllApproveData(record) - this.$refs.repairOrderApprovalModal.getBasicInformation(record) - }, - handleEquipmentLeanOut(item) { - this.$refs.equipmentLeanOutApprovalModelRef.visible = true - this.$refs.equipmentLeanOutApprovalModelRef.title = item.name - this.$refs.equipmentLeanOutApprovalModelRef.handleDetail(item) - this.$refs.equipmentLeanOutApprovalModelRef.disableSubmit = false - }, - handleSecondMaintenance(item) { - if (item && item.dataId) { - this.selectSecondMaintenanceData = Object.assign({}, item) - this.$refs.secondMaintenanceApprovalModal.handleDetail(item) - this.$refs.secondMaintenanceApprovalModal.title = item.name - this.$refs.secondMaintenanceApprovalModal.disableSubmit = false + /** + * 鐐瑰嚮璁惧缁翠慨鍒嗙被娴佺▼璇︽儏鏃惰Е鍙� + * @param record + */ + handleRepairOrder(record) { + this.selectRepairOrderData = Object.assign({}, record) + this.$refs.repairOrderApprovalModal.visible = true + this.$refs.repairOrderApprovalModal.title = record.name + this.$refs.repairOrderApprovalModal.getAllApproveData(record) + this.$refs.repairOrderApprovalModal.getBasicInformation(record) + }, + handleSecondMaintenance(item) { + if (item && item.dataId) { + this.selectSecondMaintenanceData = Object.assign({}, item) + this.$refs.secondMaintenanceApprovalModal.handleDetail(item) + this.$refs.secondMaintenanceApprovalModal.title = item.name + this.$refs.secondMaintenanceApprovalModal.disableSubmit = false + } + }, + handleThirdMaintenance(item) { + if (item && item.dataId) { + this.selectThirdMaintenanceData = Object.assign({}, item) + this.$refs.thirdMaintenanceApprovalModal.handleDetail(item) + this.$refs.thirdMaintenanceApprovalModal.title = item.name + this.$refs.thirdMaintenanceApprovalModal.disableSubmit = false + } } - }, - handleThirdMaintenance(item) { - if (item && item.dataId) { - this.selectThirdMaintenanceData = Object.assign({}, item) - this.$refs.thirdMaintenanceApprovalModal.handleDetail(item) - this.$refs.thirdMaintenanceApprovalModal.title = item.name - this.$refs.thirdMaintenanceApprovalModal.disableSubmit = false - } - }, - handleToolOutStorageApproval(item) { - if (item && item.dataId) { - this.selectOutBoundOrderData = Object.assign({}, item) - this.$refs.outBoundOrderHandle.auditVisible = true - this.$refs.outBoundOrderHandle.clearTableSource() - this.$refs.outBoundOrderHandle.getAllApproveData(item) - } - }, - handleToolStocktakingApproval(item) { - if (item && item.dataId) { - this.selectStocktakingBoundOrderData = Object.assign({}, item) - this.$refs.stocktakingBoundHandle.auditVisible = true - this.$refs.stocktakingBoundHandle.clearTableSource() - this.$refs.stocktakingBoundHandle.getAllApproveData(item) - } - }, - handleToolLossApproval(item) { - if (item && item.dataId) { - this.selectLossBoundOrderData = Object.assign({}, item) - this.$refs.lossBoundHandle.auditVisible = true - this.$refs.lossBoundHandle.clearTableSource() - this.$refs.lossBoundHandle.getAllApproveData(item) - } - }, - - handleEquipmentSealUp(item) { - this.$refs.equipmentSealUpApprovalModelRef.visible = true - this.$refs.equipmentSealUpApprovalModelRef.title = item.name - this.$refs.equipmentSealUpApprovalModelRef.handleDetail(item) - this.$refs.equipmentSealUpApprovalModelRef.disableSubmit = false - }, - handleToolInStorage(item) { - if (item && item.dataId) { - this.selectInboundOrderData = Object.assign({}, item) - this.$refs.inboundOrderApprovalModal.auditVisible = true - this.$refs.inboundOrderApprovalModal.clearTableSource() - this.$refs.inboundOrderApprovalModal.getAllApproveData(item) - } - }, - handleEquipmentTransfer(item) { - this.$refs.equipmentTransferApprovalModelRef.visible = true - this.$refs.equipmentTransferApprovalModelRef.title = item.name - this.$refs.equipmentTransferApprovalModelRef.handleDetail(item) - this.$refs.equipmentTransferApprovalModelRef.disableSubmit = false - }, - handleEquipmentScrap(item) { - this.$refs.equipmentScrapApprovalModelRef.visible = true - this.$refs.equipmentScrapApprovalModelRef.title = item.name - this.$refs.equipmentScrapApprovalModelRef.handleDetail(item) - this.$refs.equipmentScrapApprovalModelRef.disableSubmit = false - }, - handleSparePartApplyApproval(item) { - if (item && item.dataId) { - this.selectSparePartApplyData = Object.assign({}, item) - this.$refs.sparePartApplyModal.auditVisible = true - this.$refs.sparePartApplyModal.clearTableSource() - this.$refs.sparePartApplyModal.getAllApproveData(item) - } - }, - //DNC-绋嬪簭纭琛ㄦ祦绋� - handleGuideCardApproval(item) { - console.log('item----->', item) - this.selectGuideCardData = item - this.$refs.guideCardBatchHandle.clearTableSource() - this.$refs.guideCardBatchHandle.getAllApproveData(item) - }, - //DNC-璁惧缁撴瀯鏍戞寚娲句骇鍝佺粨鏋勬爲 - handleEquipmentAssignProductApproval(item){ - console.log('item----->', item) - this.selectEquipmentSealUpData = item - this.$refs.assignEquipmentFileStreamHandle.clearTableSource() - this.$refs.assignEquipmentFileStreamHandle.getAllApproveData(item) } } -} -</script> -<style scoped> -@import '~@assets/less/common.less'; -</style> \ No newline at end of file +</script> \ No newline at end of file diff --git a/src/views/flowable/workflow/MaintenanceStandard/MaintenanceStandardApprovalModal.vue b/src/views/flowable/workflow/MaintenanceStandard/MaintenanceStandardApprovalModal.vue new file mode 100644 index 0000000..b8e631e --- /dev/null +++ b/src/views/flowable/workflow/MaintenanceStandard/MaintenanceStandardApprovalModal.vue @@ -0,0 +1,380 @@ +<template> + <j-modal :title="title" :visible="visible" fullscreen + :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" @ok="submitForm" + @cancel="handleCancel" :mask-closable="false" :confirmLoading="confirmLoading"> + <a-spin :spinning="spinning"> + <a-form-model ref='form' :model='tableRowRecord' :labelCol="labelCol" :wrapperCol="wrapperCol" + :rules="validatorRules"> + <a-row :gutter="48"> + <a-col :span="10"> + <a-tabs default-active-key="1"> + <a-tab-pane tab="鍩虹淇℃伅" key="1"> + <a-row> + <a-col :span="span"> + <a-form-model-item prop="standardCode" label="瑙勮寖缂栫爜"> + <a-input v-model="tableRowRecord.standardCode" readOnly/> + </a-form-model-item> + </a-col> + <a-col :span="span"> + <a-form-model-item prop="standardName" label="瑙勮寖鍚嶇О"> + <a-input v-model="tableRowRecord.standardName" readOnly/> + </a-form-model-item> + </a-col> + </a-row> + + <a-row> + <a-col :span='span'> + <a-form-model-item label="缁熶竴缂栫爜"> + <a-input v-model="tableRowRecord.equipmentCode" readOnly/> + </a-form-model-item> + </a-col> + <a-col :span='span'> + <a-form-model-item label="淇濆吇鍒嗙被"> + <a-input v-model="tableRowRecord.maintenanceCategory_dictText" readOnly/> + </a-form-model-item> + </a-col> + + </a-row> + + <a-row> + <a-col :span='span'> + <a-form-model-item label="淇濆吇鍛ㄦ湡鍗曚綅"> + <a-input v-model="tableRowRecord.periodUnit" readOnly/> + </a-form-model-item> + </a-col> + <a-col :span='span'> + <a-form-model-item label="淇濆吇鍛ㄦ湡"> + <a-input v-model="tableRowRecord.maintenancePeriod" readOnly/> + </a-form-model-item> + </a-col> + </a-row> + + <a-row> + <a-col :span='span'> + <a-form-model-item label="鍒濆鏃ユ湡"> + <a-input v-model="tableRowRecord.initialDate" readOnly/> + </a-form-model-item> + </a-col> + <a-col :span='span'> + <a-form-model-item label="瑙勮寖鐘舵��"> + <a-input v-model="tableRowRecord.standardStatus_dictText" readOnly/> + </a-form-model-item> + </a-col> + </a-row> + + <a-row> + <a-col :span="span"> + <a-form-model-item label="瑙勮寖鐗堟湰"> + <a-input v-model="tableRowRecord.standardVersion" readOnly/> + </a-form-model-item> + </a-col> + </a-row> + </a-tab-pane> + + <a-tab-pane key="2" tab="淇濆吇椤规槑缁�" forceRender> + <j-vxe-table ref="editableDetailTable" :rowNumber="false" :bordered="true" + :alwaysEdit="true" :toolbar="false" keep-source :loading="detail.loading" + :dataSource="detail.dataSource" :columns="detail.columns"> + <template v-slot:itemCategory="props"> + <j-dict-select-tag v-model="props.row.itemCategory" :dict-code="encodedDictCode" disabled/> + </template> + </j-vxe-table> + </a-tab-pane> + </a-tabs> + </a-col> + + <a-col :span="8"> + <a-tabs> + <template v-if="selectShenpiData.procInstId"> + <a-tab-pane tab='娴佺▼鍥�'> + <img :src="imageSrc" width="100%" v-if="imageSrc"/> + </a-tab-pane> + </template> + </a-tabs> + </a-col> + + <a-col :span="6"> + <a-tabs> + <a-tab-pane tab="缁翠慨涓讳换瀹℃壒"> + <a-row :gutter="24"> + <a-col :span="24"> + <a-form-model-item prop="repairManagerApproveResult" label="澶勭悊绫诲瀷"> + <j-dict-select-tag type='radio' v-model='tableRowRecord.repairManagerApproveResult' + dictCode='approved_rejected' + :disabled="disableSubmit||tableRowRecord.standardStatus!=='WAIT_REPAIR_DIRECTOR'"/> + </a-form-model-item> + </a-col> + + <a-col :span="24"> + <a-form-model-item prop="repairManagerApproveComment" label="澶勭悊鎰忚"> + <a-textarea placeholder="璇疯緭鍏ュ鐞嗘剰瑙�" + :disabled="disableSubmit||tableRowRecord.standardStatus!=='WAIT_REPAIR_DIRECTOR'" + v-model="tableRowRecord.repairManagerApproveComment"/> + </a-form-model-item> + </a-col> + </a-row> + </a-tab-pane> + </a-tabs> + + <a-tabs v-if="tableRowRecord.standardStatus&&tableRowRecord.standardStatus!=='WAIT_REPAIR_DIRECTOR'"> + <a-tab-pane tab="鎶�鏈富绠″鎵�"> + <a-row :gutter="24"> + <a-col :span="24"> + <a-form-model-item prop="technicalManagerApproveResult" label="澶勭悊绫诲瀷"> + <j-dict-select-tag type='radio' v-model='tableRowRecord.technicalManagerApproveResult' + dictCode='approved_rejected'/> + </a-form-model-item> + </a-col> + + <a-col :span="24"> + <a-form-model-item prop="technicalManagerApproveComment" label="澶勭悊鎰忚"> + <a-textarea placeholder="璇疯緭鍏ュ鐞嗘剰瑙�" v-model="tableRowRecord.technicalManagerApproveComment"/> + </a-form-model-item> + </a-col> + </a-row> + </a-tab-pane> + </a-tabs> + </a-col> + </a-row> + </a-form-model> + </a-spin> + </j-modal> +</template> + +<script> + import { getAction, deleteAction, postAction, downFile, httpAction } from '@api/manage' + import MaintenanceEquipmentSelect from '@views/eam/equipment/modules/MaintenanceEquipmentSelect.vue' + import { JVXETypes } from '@comp/jeecg/JVxeTable' + import moment from 'moment' + + export default { + name: 'MaintenanceStandardApprovalModal', + components: { MaintenanceEquipmentSelect }, + props: { + selectShenpiData: { + type: Object + } + }, + data() { + return { + span: 12, + confirmLoading: false, + spinning: false, + tableRowRecord: {}, + validatorRules: { + repairManagerApproveResult: [ + { required: true, message: '璇烽�夋嫨澶勭悊绫诲瀷' } + ], + repairManagerApproveComment: [ + { required: true, message: '璇疯緭鍏ュ鐞嗘剰瑙�' } + ], + technicalManagerApproveResult: [ + { required: true, message: '璇烽�夋嫨澶勭悊绫诲瀷' } + ], + technicalManagerApproveComment: [ + { required: true, message: '璇疯緭鍏ュ鐞嗘剰瑙�' } + ] + }, + imageSrc: null, + labelCol: { + xs: { span: 24 }, + sm: { span: 8 } + }, + wrapperCol: { + xs: { span: 30 }, + sm: { span: 16 } + }, + visible: false, + // 琛ㄥご + url: { + diagramView: '/assign/flow/diagramView', + queryHisTaskList: '/assign/flow/queryHisTaskList', + approve: '/eam/maintenanceStandard/audit', + queryById: '/eam/maintenanceStandard/list', + detailList: '/eam/eamMaintenanceStandardDetail/queryList' + }, + detail: { + loading: false, + dataSource: [], + columns: [], + defaultColumns: [ + { + title: 'ID', + key: 'id', + type: JVXETypes.hidden + }, + { + title: 'standardId', + key: 'standardId', + type: JVXETypes.hidden + }, + { + title: '椤圭洰搴忓彿', + key: 'itemCode', + type: JVXETypes.inputNumber, + align: 'center', + disabled: true + }, + { + title: '閮ㄤ綅', + key: 'itemPart', + type: JVXETypes.textarea, + align: 'center', + disabled: true + }, + { + title: '淇濆吇椤瑰垎绫�', + key: 'itemCategory', + type: JVXETypes.slot, + slotName: 'itemCategory', + align: 'center' + }, + { + title: '淇濆吇椤圭洰', + key: 'itemName', + type: JVXETypes.textarea, + align: 'center', + disabled: true + }, + { + title: '淇濆吇瑙勮寖鎴栬姹�', + key: 'itemDemand', + type: JVXETypes.textarea, + align: 'center', + disabled: true + } + ] + }, + disableSubmit: false, + title: '' + } + }, + watch: { + 'tableRowRecord.maintenanceCategory': { + handler(val) { + if (val) { + if (val != 'THIRD_MAINTENANCE') this.detail.columns = [...this.detail.defaultColumns.filter(item => item.key != 'itemPart')] + else this.detail.columns = [...this.detail.defaultColumns.filter(item => item.key != 'itemCategory')] + } + else this.detail.columns = [...this.detail.defaultColumns] + } + } + }, + computed: { + encodedDictCode() { + const dictCode = `sys_dict_item,item_text,item_value,dict_id='1940598438685134850'` + return encodeURIComponent(dictCode) + } + }, + methods: { + /** + * 鑾峰彇娴佺▼鑺傜偣鍜屾祦绋嬪浘 + * @param record 寰呭姙璁板綍淇℃伅 + */ + getAllApproveData(record) { + if (record.procInstId) { + const { processDefinitionId, processInstanceId, processDefinitionKey, procInstId } = record + const imageParam = { processDefinitionId, processInstanceId, TaskDefinitionKey: processDefinitionKey } + const that = this + this.imageSrc = null + + downFile(this.url.diagramView, imageParam, 'get') + .then((res => { + const urlObject = window.URL.createObjectURL(new Blob([res])) + that.imageSrc = urlObject + })) + .finally(() => { + this.spinning = false + }) + } + }, + + /** + * 鑾峰彇寰呭姙璁板綍鐨勫熀鏈俊鎭� + * @param record 寰呭姙璁板綍淇℃伅 + */ + async getBasicInformation(record) { + this.detail.dataSource = [] + this.tableRowRecord = {} + this.spinning = true + const param = { id: record.dataId } + let res = await getAction(this.url.queryById, param) + this.tableRowRecord = Object.assign({}, res.result.records[0]) + await this.loadDetail(record.dataId) + }, + + /** + * 鑾峰彇淇濆吇鏄庣粏 + * @param dataId 涓氬姟ID + */ + loadDetail(dataId) { + if (dataId) { + getAction(this.url.detailList, { standardId: dataId }) + .then(res => { + if (res.success) { + this.detail.dataSource = [...res.result] + } + }) + } + }, + + async submitForm() { + let errMap = await this.$refs.editableDetailTable.validateTable() + if (errMap) { + return + } + + this.$refs.form.validate(valid => { + if (valid) { + this.confirmLoading = this.spinning = true + const flowTaskVo = {} + flowTaskVo.dataId = this.selectShenpiData.dataId + flowTaskVo.taskId = this.selectShenpiData.id + flowTaskVo.userId = this.selectShenpiData.assignee + flowTaskVo.instanceId = this.selectShenpiData.procInstId + if (this.tableRowRecord.standardStatus == 'WAIT_REPAIR_DIRECTOR') { + flowTaskVo.repairManagerApproveResult = this.tableRowRecord.repairManagerApproveResult + flowTaskVo.repairManagerApproveComment = this.tableRowRecord.repairManagerApproveComment + } else { + flowTaskVo.technicalManagerApproveResult = this.tableRowRecord.technicalManagerApproveResult + flowTaskVo.technicalManagerApproveComment = this.tableRowRecord.technicalManagerApproveComment + } + const that = this + console.log('琛ㄥ崟鎻愪氦鏁版嵁', flowTaskVo) + httpAction(this.url.approve, flowTaskVo, 'post') + .then((res) => { + if (res.success) { + that.$notification.success({ + message: '娑堟伅', + description: res.message + }) + //鍒锋柊琛ㄦ牸 + that.$emit('modalFormOk') + that.handleCancel() + } else { + that.$notification.warning({ + message: '娑堟伅', + description: res.message + }) + } + }) + .finally(() => { + that.confirmLoading = this.spinning = false + }) + } else { + return false + } + }) + }, + + handleCancel() { + this.visible = false + } + } + } +</script> +<style scoped> + /deep/ .ant-select-dropdown-menu { + text-align: left; + } +</style> \ No newline at end of file -- Gitblit v1.9.3