From f81c63f5f07eed48145a02819eac97e936bc27e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BE=99=E8=BF=90=E6=A8=A1?= <1724894114@qq.com> Date: Thu, 22 Aug 2024 19:37:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=B7=A5=E5=8D=95=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/model/orders.js | 22 +- src/assets/icons/OrderMaintenance.vue | 13 ++ src/assets/icons/OrderReview.vue | 13 ++ src/assets/icons/SaveMaintenance.vue | 13 ++ src/assets/icons/index.js | 3 + src/style/order.scss | 53 ++++- src/views/order/order-info.vue | 175 +++------------- src/views/order/order-logs.vue | 2 +- src/views/order/orderList/detailView.vue | 176 ++++++++++++++++ src/views/order/orderList/index.vue | 110 +++++++--- src/views/order/preview-order.vue | 89 +++++++- src/views/order/submit-order.vue | 246 +++++++++++++++++++++++ 12 files changed, 725 insertions(+), 190 deletions(-) create mode 100644 src/assets/icons/OrderMaintenance.vue create mode 100644 src/assets/icons/OrderReview.vue create mode 100644 src/assets/icons/SaveMaintenance.vue create mode 100644 src/views/order/orderList/detailView.vue create mode 100644 src/views/order/submit-order.vue diff --git a/src/api/model/orders.js b/src/api/model/orders.js index 513443c..f2ddcee 100644 --- a/src/api/model/orders.js +++ b/src/api/model/orders.js @@ -147,8 +147,28 @@ export default { post: async function (params) { return await http.post(this.url,params); } + }, + review:{ + url: `${config.API_URL}/maintenance.order.approval`, + name: "维保工单审核", + post: async function (params) { + return await http.post(this.url,params); + } + }, + submit:{ + url: `${config.API_URL}/maintenance.order.submit`, + name: "提交维保工单", + post: async function (params) { + return await http.post(this.url,params); + } + }, + send:{ + url: `${config.API_URL}/maintenance.order.send.supplier`, + name: "下发维保工单", + post: async function (params) { + return await http.post(this.url,params); + } } - }, sock: { list:{ diff --git a/src/assets/icons/OrderMaintenance.vue b/src/assets/icons/OrderMaintenance.vue new file mode 100644 index 0000000..755f25c --- /dev/null +++ b/src/assets/icons/OrderMaintenance.vue @@ -0,0 +1,13 @@ + + + + + + + diff --git a/src/assets/icons/OrderReview.vue b/src/assets/icons/OrderReview.vue new file mode 100644 index 0000000..f2a5ad0 --- /dev/null +++ b/src/assets/icons/OrderReview.vue @@ -0,0 +1,13 @@ + + + + + + + diff --git a/src/assets/icons/SaveMaintenance.vue b/src/assets/icons/SaveMaintenance.vue new file mode 100644 index 0000000..3780081 --- /dev/null +++ b/src/assets/icons/SaveMaintenance.vue @@ -0,0 +1,13 @@ + + + + + + + diff --git a/src/assets/icons/index.js b/src/assets/icons/index.js index 31a67ef..3c548e4 100644 --- a/src/assets/icons/index.js +++ b/src/assets/icons/index.js @@ -67,6 +67,9 @@ export { default as OrderSee } from './OrderSee.vue' export { default as OrderConfirm } from './OrderConfirm.vue' export { default as OrderLog } from './OrderLog.vue' export { default as OrderSetup } from './OrderSetup.vue' +export { default as OrderMaintenance } from './OrderMaintenance.vue' +export { default as OrderReview } from './OrderReview.vue' +export { default as SaveMaintenance } from './SaveMaintenance.vue' export { default as Home } from './menu/Home.vue' diff --git a/src/style/order.scss b/src/style/order.scss index 0277f75..19b8eab 100644 --- a/src/style/order.scss +++ b/src/style/order.scss @@ -5,26 +5,33 @@ .headerView{ border-bottom: 1px solid #e8e8e8; display: flex;justify-content: space-between;align-items: center; - padding: 0 0 15px 0; + padding: 5px 0 17px 0; } .title{ font-weight: 500; font-size: 13px; } .cardBody{ - padding: 15px 0 0 0; + padding: 12px 0 0 0; display: flex;flex-direction: column; .el-row{ - padding: 12px 0; + padding: 10px 0; .el-col{ + display: flex; + .label{ - width: 100px; - display: inline-block; - text-align: right; + flex-basis: 100px; + justify-content: flex-end; color: #303133; + display: flex; + } + .labelText{ + align-items: center; } .text{ color: #222; + display: flex; + flex: 1; } } } @@ -34,8 +41,8 @@ min-height: 800px; margin-top: 10px; .cardItem{ - margin-bottom: 15px; - border-bottom: 1px solid #e8e8e8; + margin-bottom: 12px; + border-bottom: 1px solid #e9e9e9; padding: 0 0 10px 0; } .cardItem:last-child{ @@ -43,3 +50,33 @@ } } } + + +.orderSteps{ + .el-step__main{ + .el-step__title{ + font-size: 12px; + } + } + .is-success .el-step__icon{ + background: var(--el-color-success); + border-color: var(--el-color-success-light-5); + .el-icon{ + color: var(--el-color-white); + } + } + .is-finish .el-step__icon{ + background: var(--el-color-primary); + border-color: var(--el-color-primary-light-5); + .el-step__icon-inner{ + color: var(--el-color-white); + } + } + .is-wait .el-step__icon{ + background: var(--el-color-info); + border-color: var(--el-color-info-light-5); + .el-step__icon-inner{ + color: var(--el-color-white); + } + } +} diff --git a/src/views/order/order-info.vue b/src/views/order/order-info.vue index a0915ce..a2a4333 100644 --- a/src/views/order/order-info.vue +++ b/src/views/order/order-info.vue @@ -1,163 +1,28 @@ - + - - - 工单时间 - - 当前状态: - {{info.business_status}} - - - - - - 创建时间: - {{info.created_at}} - - - PE确认时间: - {{info.pe_confirmation_time}} - - - 过保时间: - {{info.warranty_end_date}} - - - - - + + + diff --git a/src/views/order/orderList/index.vue b/src/views/order/orderList/index.vue index 4fa49a8..82a13a9 100644 --- a/src/views/order/orderList/index.vue +++ b/src/views/order/orderList/index.vue @@ -3,9 +3,9 @@ 新增工单 - 批量审核 - 提交维保 - 下发维保 + 批量审核 + 提交维保 + 下发维保 @@ -53,12 +53,12 @@ - 编辑工单 - 删除工单 - 审核工单 - 工单详情 - 提交维保 - 下发维保 + 编辑工单 + 删除工单 + 审核工单 + 工单详情 + 提交维保 + 下发维保 工单日志 @@ -158,7 +158,7 @@ export default { //添加 add(){ - eventBus.$emit('tagClose','/order/create-order',{id:this.emailId}); + eventBus.$emit('tagClose','/order/create-order'); }, // 批量导入 @@ -192,15 +192,16 @@ export default { //编辑 table_edit(row){ - this.dialog.save = true - this.$nextTick(() => { - this.$refs.saveDialog.open('edit').setData(row) - }) + eventBus.$emit('tagClose','/order/create-order',{id:row.id}); }, //查看 table_show(row){ eventBus.$emit('tagClose','/order/order-info',{id:row.id}); }, + // 审核 + table_review(row){ + eventBus.$emit('tagClose','/order/preview-order',{id:row.id}); + }, //删除 async table_del(row){ this.$confirm(`确定删除 ${row.repair_order_no} 吗?`, '提示', { @@ -210,7 +211,6 @@ export default { const res = await this.$API.orders.order.maintenance.delete.post(reqData); if(res.code == 200){ this.$refs.table.refresh(); - this.$message.success("删除成功") } }).catch(()=>{}) }, @@ -223,30 +223,68 @@ export default { const res = await this.$API.orders.order.maintenance.delete.post(reqData); if(res.code == 200){ this.$refs.table.refresh(); - this.$message.success("删除成功") } }).catch(()=>{}) }, + async batch_review(){ + this.$messageBox.prompt('如果拒绝,请输入审核不通过的理由。', '审核', { + confirmButtonText: '拒绝', + cancelButtonText: '通过', + cancelButtonClass:'cancelBtn el-button--primary', + confirmButtonClass:'saveBtn el-button--danger', + }).then(async ({value}) => { + let params = { + order_ids:this.selection.map(em=>em.id), + status:false, + opinion:value + } + const res = await this.$API.orders.order.maintenance.review.post(params); + if(res.code == 200){ + this.$refs.table.refresh(); + } + }).catch(async () => { + let params = { + order_ids: this.selection.map(em => em.id), + status: true, + } + const res = await this.$API.orders.order.maintenance.review.post(params); + if (res.code == 200) { + this.$refs.table.refresh(); + } + }) + }, + async save_maintenance() { + const params = {order_ids: this.selection.map(em => em.id)}; + const res = await this.$API.orders.order.maintenance.submit.post(params); + if (res.code == 200) { + this.$refs.table.refresh(); + this.$message.success("操作成功") + } + }, + async issued_maintenance() { + const params = {order_ids: this.selection.map(em => em.id)}; + const res = await this.$API.orders.order.maintenance.send.post(params); + if (res.code == 200) { + this.$refs.table.refresh(); + this.$message.success("操作成功") + } + }, // 工单设置 - table_setup(){ - // row - // this.$router.push({ - // path: '/order/add-permission', - // query: { - // id: row.id, - // name:row.name - // } - // }) + async table_submit(row){ + eventBus.$emit('tagClose','/order/submit-order',{id:row.id}); + }, + async table_send(row) { + let params = { + order_ids:[row.id] + } + const res = await this.$API.orders.order.maintenance.send.post(params); + if (res.code == 200) { + this.$refs.table.refresh(); + } }, // 工单日志 table_logs(row){ - this.$router.push({ - path: '/order/order-logs', - query: { - id: row.id, - name:row.name - } - }) + eventBus.$emit('tagClose','/order/order-logs',{id:row.id}); }, //表格选择后回调事件 selectionChange(selection){ @@ -303,4 +341,12 @@ export default { height: 20px; margin: 0 auto; } +.el-message-box{ + ::v-deep .cancelBtn{ + + } + ::v-deep .saveBtn{ + + } +} diff --git a/src/views/order/preview-order.vue b/src/views/order/preview-order.vue index 1d52b67..4ad8fa5 100644 --- a/src/views/order/preview-order.vue +++ b/src/views/order/preview-order.vue @@ -1,24 +1,103 @@ - + + + + + + + + + 审核通过 + 审核拒绝 + + + + + + + diff --git a/src/views/order/submit-order.vue b/src/views/order/submit-order.vue new file mode 100644 index 0000000..11a614f --- /dev/null +++ b/src/views/order/submit-order.vue @@ -0,0 +1,246 @@ + + + + + + + 工单时间 + + 当前状态: + {{info.business_status}} + + + + + + 创建时间: + {{info.created_at}} + + + PE确认时间: + {{info.pe_confirmation_time}} + + + 过保时间: + {{info.warranty_end_date}} + + + + + + + + + + + + +