Просмотр исходного кода

feature(交付工单): 部分前端页面调整

lk 2 лет назад
Родитель
Сommit
4a88e62f71

+ 9 - 0
src/api/work/deliverWork.js

@@ -52,4 +52,13 @@ export default {
   completeInstall(query) {
     return micro_request.postRequest(basePath, 'DeliverOrderProgress', 'CompleteInstall', query)
   },
+  confirmInstallInfo(query) {
+    return micro_request.postRequest(basePath, 'DeliverOrderProgress', 'ConfirmInstallInfo', query)
+  },
+  auditInstall(query) {
+    return micro_request.postRequest(basePath, 'DeliverOrderProgress', 'AuditInstall', query)
+  },
+  updateProgressProductInfo(query) {
+    return micro_request.postRequest(basePath, 'DeliverOrderProgress', 'UpdateProgressProductInfo', query)
+  },
 }

+ 59 - 0
src/views/work/deliver/components/auditInstall.vue

@@ -0,0 +1,59 @@
+<template>
+  <el-dialog title="审核" :visible.sync="dialogFormVisible" width="560px" @close="close">
+    <el-form ref="form" label-position="top" :model="form" :rules="rules">
+      <el-row :gutter="20">
+        <el-col :span="24">
+          <el-form-item label="审核说明" prop="remark">
+            <el-input v-model="form.remark" placeholder="审核说明" :rows="5" show-word-limit type="textarea" />
+          </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+    <template #footer>
+      <el-button @click="close">取 消</el-button>
+      <el-button type="primary" @click="save">确 定</el-button>
+    </template>
+  </el-dialog>
+</template>
+
+<script>
+  import deliverWorkApi from '@/api/work/deliverWork'
+
+  export default {
+    name: 'WorkOrderFeedback',
+    data() {
+      return {
+        form: {
+          id: '',
+          remark: '',
+        },
+        rules: {
+          remark: [{ required: true, message: '不能为空', trigger: ['blur', 'change'] }],
+        },
+        dialogFormVisible: false,
+      }
+    },
+    mounted() {},
+    methods: {
+      open(row) {
+        this.form.id = row.id
+        this.form.remark = ''
+        this.dialogFormVisible = true
+      },
+      close() {
+        this.$refs['form'].resetFields()
+        this.dialogFormVisible = false
+      },
+      save() {
+        this.$refs['form'].validate(async (valid) => {
+          if (valid) {
+            const { msg } = await deliverWorkApi.auditInstall(JSON.parse(JSON.stringify(this.form)))
+            this.$baseMessage(msg, 'success', 'vab-hey-message-success')
+            this.$emit('fetch-data')
+            this.close()
+          }
+        })
+      },
+    },
+  }
+</script>

+ 82 - 0
src/views/work/deliver/components/confirmInstall.vue

@@ -0,0 +1,82 @@
+<template>
+  <el-dialog title="确认" :visible.sync="dialogFormVisible" width="560px" @close="close">
+    <el-form ref="form" label-position="top" :model="form" :rules="rules">
+      <el-row :gutter="20">
+        <el-col :span="12">
+          <el-form-item label="安装开始时间" prop="installBeginTime">
+            <el-date-picker
+              v-model="form.installBeginTime"
+              placeholder="安装开始时间"
+              type="date"
+              value-format="yyyy-MM-dd HH:mm:ss" />
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="安装结束时间" prop="installEndTime">
+            <el-date-picker
+              v-model="form.installEndTime"
+              placeholder="安装结束时间"
+              type="date"
+              value-format="yyyy-MM-dd HH:mm:ss" />
+          </el-form-item>
+        </el-col>
+        <el-col :span="24">
+          <el-form-item label="备注" prop="remark">
+            <el-input v-model="form.remark" placeholder="备注" :rows="5" show-word-limit type="textarea" />
+          </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+    <template #footer>
+      <el-button @click="close">取 消</el-button>
+      <el-button type="primary" @click="save">确 定</el-button>
+    </template>
+  </el-dialog>
+</template>
+
+<script>
+  import deliverWorkApi from '@/api/work/deliverWork'
+
+  export default {
+    name: 'WorkOrderFeedback',
+    data() {
+      return {
+        form: {
+          id: '',
+          installBeginTime: '',
+          installEndTime: '',
+          remark: '',
+        },
+        rules: {
+          installBeginTime: [{ required: true, message: '不能为空', trigger: ['blur', 'change'] }],
+          installEndTime: [{ required: true, message: '不能为空', trigger: ['blur', 'change'] }],
+        },
+        dialogFormVisible: false,
+      }
+    },
+    mounted() {},
+    methods: {
+      open(row) {
+        this.form.id = row.id
+        this.form.installBeginTime = ''
+        this.form.installEndTime = ''
+        this.form.remark = ''
+        this.dialogFormVisible = true
+      },
+      close() {
+        this.$refs['form'].resetFields()
+        this.dialogFormVisible = false
+      },
+      save() {
+        this.$refs['form'].validate(async (valid) => {
+          if (valid) {
+            const { msg } = await deliverWorkApi.confirmInstallInfo(JSON.parse(JSON.stringify(this.form)))
+            this.$baseMessage(msg, 'success', 'vab-hey-message-success')
+            this.$emit('fetch-data')
+            this.close()
+          }
+        })
+      },
+    },
+  }
+</script>

+ 68 - 0
src/views/work/deliver/components/startInstall.vue

@@ -0,0 +1,68 @@
+<template>
+  <el-dialog title="启动" :visible.sync="dialogFormVisible" width="560px" @close="close">
+    <el-form ref="form" label-position="top" :model="form" :rules="rules">
+      <el-row :gutter="20">
+        <el-col :span="24">
+          <el-form-item label="期望安装时间" prop="expectInstallTime">
+            <el-date-picker
+              v-model="form.expectInstallTime"
+              placeholder="期望安装时间"
+              type="date"
+              value-format="yyyy-MM-dd HH:mm:ss" />
+          </el-form-item>
+          <el-form-item label="备注" prop="remark">
+            <el-input v-model="form.remark" placeholder="备注" :rows="5" show-word-limit type="textarea" />
+          </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+    <template #footer>
+      <el-button @click="close">取 消</el-button>
+      <el-button type="primary" @click="save">确 定</el-button>
+    </template>
+  </el-dialog>
+</template>
+
+<script>
+  import deliverWorkApi from '@/api/work/deliverWork'
+
+  export default {
+    name: 'WorkOrderFeedback',
+    data() {
+      return {
+        form: {
+          id: '',
+          expectInstallTime: '',
+          remark: '',
+        },
+        rules: {
+          expectInstallTime: [{ required: true, message: '不能为空', trigger: ['blur', 'change'] }],
+        },
+        dialogFormVisible: false,
+      }
+    },
+    mounted() {},
+    methods: {
+      open(row) {
+        this.form.id = row.id
+        this.form.expectInstallTime = ''
+        this.form.remark = ''
+        this.dialogFormVisible = true
+      },
+      close() {
+        this.$refs['form'].resetFields()
+        this.dialogFormVisible = false
+      },
+      save() {
+        this.$refs['form'].validate(async (valid) => {
+          if (valid) {
+            const { msg } = await deliverWorkApi.startWork(JSON.parse(JSON.stringify(this.form)))
+            this.$baseMessage(msg, 'success', 'vab-hey-message-success')
+            this.$emit('fetch-data')
+            this.close()
+          }
+        })
+      },
+    },
+  }
+</script>

+ 77 - 8
src/views/work/deliver/plan.vue

@@ -170,20 +170,47 @@
               <span v-else>{{ row[item.prop] }}</span>
             </template>
           </el-table-column>
-          <el-table-column align="center" fixed="right" label="操作" show-overflow-tooltip width="120">
+          <el-table-column align="center" fixed="right" label="操作" show-overflow-tooltip width="180">
             <template #default="{ row }">
               <el-button v-if="row.progressStatus != 30" type="text" @click="handleWorkEdit(row)">编辑</el-button>
+              <!-- 非部署安装任务的开始 -->
               <el-button
                 v-if="
                   row.progressStatus == 10 &&
                   workOrderStatus != 20 &&
                   curPlanStatus != 30 &&
+                  row.progressType != '30' &&
                   userId == row.principalPersonId
                 "
                 type="text"
                 @click="handleStartWork(row)">
                 开始
               </el-button>
+              <!-- 部署安装任务的开始  有销售发起,填写期望安装时间 -->
+              <el-button
+                v-if="
+                  row.progressStatus == 10 &&
+                  workOrderStatus != 20 &&
+                  curPlanStatus != 30 &&
+                  row.progressType == '30' &&
+                  userId == 1037
+                "
+                type="text"
+                @click="handleStartInstallWork(row)">
+                开始
+              </el-button>
+              <!-- 安装人员确认安装时间 -->
+              <el-button
+                v-if="
+                  row.progressStatus == 20 &&
+                  row.deliverStatus == '15' &&
+                  row.progressType == '30' &&
+                  userId == row.principalPersonId
+                "
+                type="text"
+                @click="confirmInstallInfo(row)">
+                确认安装时间
+              </el-button>
               <el-button
                 v-if="
                   row.progressStatus == 20 &&
@@ -229,7 +256,7 @@
               <el-button
                 v-if="
                   row.progressStatus == 20 &&
-                  row.deliverStatus == '60' &&
+                  row.deliverStatus == '50' &&
                   row.progressType == '10' &&
                   userId == row.principalPersonId
                 "
@@ -244,11 +271,24 @@
                 完成
               </el-button>
               <el-button
-                v-if="row.progressStatus == 20 && row.progressType == '30' && userId == row.principalPersonId"
+                v-if="
+                  row.progressStatus == 20 &&
+                  row.progressType == '30' &&
+                  row.deliverStatus == '20' &&
+                  userId == row.principalPersonId
+                "
                 type="text"
                 @click="handleComplete(row)">
                 完成
               </el-button>
+              <!-- 部署安装任务审核 -->
+              <el-button
+                v-show="row.progressStatus == 30 && row.progressType == '30' && row.deliverStatus == '60'"
+                v-permissions="['order:delivery:work:auditinstall']"
+                type="text"
+                @click="auditInstall(row)">
+                审核
+              </el-button>
               <!-- <el-button v-show="row.progressStatus == 10" type="text" @click="handleDelete(row)">删除</el-button> -->
             </template>
           </el-table-column>
@@ -276,6 +316,12 @@
       <inspect ref="inspect" @fetch-data="fetchWorkListPage1" />
       <!-- 详情 -->
       <detailWork ref="detailWork" />
+      <!-- 销售发起部署安装任务 -->
+      <StartInstall ref="StartInstall" @fetch-data="fetchWorkListPage1" />
+      <!-- 确认安装信息 -->
+      <ConfirmInstall ref="ConfirmInstall" @fetch-data="fetchWorkListPage1" />
+      <!-- 安装审核 -->
+      <AuditInstall ref="AuditInstall" @fetch-data="fetchWorkListPage1" />
     </div>
   </div>
 </template>
@@ -293,11 +339,26 @@
   import completeProgress from '@/views/work/deliver/components/completeProgress'
   import deliver from '@/views/work/deliver/components/deliver'
   import inspect from '@/views/work/deliver/components/inspect'
+  import StartInstall from '@/views/work/deliver/components/startInstall'
+  import ConfirmInstall from '@/views/work/deliver/components/confirmInstall'
+  import AuditInstall from '@/views/work/deliver/components/auditInstall'
   import { mapGetters } from 'vuex'
 
   export default {
     name: 'Product',
-    components: { EditPlan, EditWork, detailWork, TableTool, selectStatus, completeProgress, deliver, inspect },
+    components: {
+      EditPlan,
+      EditWork,
+      detailWork,
+      TableTool,
+      selectStatus,
+      completeProgress,
+      deliver,
+      inspect,
+      StartInstall,
+      ConfirmInstall,
+      AuditInstall,
+    },
     data() {
       return {
         orderType: '',
@@ -542,8 +603,6 @@
         })
           .then(async ({ value }) => {
             // 当用户点击确定按钮时,执行的逻辑
-            await this.fetchWorkList()
-            console.log('输入的值为:', value)
             const [err, res] = await to(deliverWorkApi.startWork({ id: row.id, remark: value }))
             if (err) return
             if (res.code == 200) {
@@ -556,6 +615,18 @@
             console.log('取消输入')
           })
       },
+      // 部署安装任务开始
+      handleStartInstallWork(row) {
+        this.$refs['StartInstall'].open(row)
+      },
+      // 确认安装时间
+      confirmInstallInfo(row) {
+        this.$refs['ConfirmInstall'].open(row)
+      },
+      // 安装审核
+      auditInstall(row) {
+        this.$refs['AuditInstall'].open(row)
+      },
       // 完成工作项
       async handleFinishWork(row) {
         this.$prompt('你确定要完成当前任务吗', '提示', {
@@ -564,8 +635,6 @@
         })
           .then(async ({ value }) => {
             // 当用户点击确定按钮时,执行的逻辑
-            await this.fetchWorkList()
-            console.log('输入的值为:', value)
             const [err, res] = await to(deliverWorkApi.finishWork({ id: row.id, remark: value }))
             if (err) return
             if (res.code == 200) {