Explorar o código

feat: 对接设置异常 、 加急、 取消加急

linwenxin hai 1 ano
pai
achega
1d17e62cb0

+ 8 - 0
src/api/workOrderPool.js

@@ -1,5 +1,13 @@
 import request, { postBlob, getBlob, handleImport } from '@/utils/request'
 
+export function orderBaseFlag(params) {
+  return request({
+    url: `/order/base/flag`,
+    method: 'post',
+    params
+  })
+}
+
 export function orderBaseSave(data) {
   return request({
     url: `/order/base/save`,

+ 46 - 0
src/views/workOrder/workOrderPool/detailModule/workOrderInfo/buttons/abnormal.vue

@@ -0,0 +1,46 @@
+<template>
+  <div class="withinLine">
+    <el-button @click="abnormal" type="primary" size="mini">设为异常</el-button>
+  </div>
+</template>
+
+<script>
+import buttonMixin from './button_mixin.js'
+import { MessageBox } from '@zjlib/element-ui2'
+import { orderBaseFlag } from "@/api/workOrderPool.js"
+export default {
+  mixins: [buttonMixin],
+  methods: {
+    abnormal() {
+      MessageBox.confirm('是否确定将此单设置为异常单,请谨慎操作', '设为异常确认', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        orderBaseFlag({ flag: true, orderBaseId: this.orderInfo.id, orderFlagEnum: "YI_CHANGE" }).then(res => {
+          // 编辑保存后不跳转列表,刷新数据
+          this.acquireVerify(this, 'getorderDetail')()
+          // 刷新操作记录
+          this.acquireVerify(this, 'getOrderBaseLogList')()
+          this.$message({
+            type: 'success',
+            message: '设置成功!'
+          })
+        })
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.withinLine {
+  display: inline-block;
+
+  ::v-deep .el-button {
+    margin-left: 0;
+    margin-right: 10px;
+    margin-bottom: 10px;
+  }
+}
+</style>

+ 0 - 35
src/views/workOrder/workOrderPool/detailModule/workOrderInfo/buttons/activate.vue

@@ -1,35 +0,0 @@
-<template>
-  <div class="withinLine">
-    <el-button @click="activate" type="primary" size="mini">激活工单</el-button>
-  </div>
-</template>
-
-<script>
-import buttonMixin from './button_mixin.js'
-import { MessageBox } from '@zjlib/element-ui2'
-export default {
-  mixins: [buttonMixin],
-  methods: {
-    activate() {
-      MessageBox.confirm('是否确定激活工单', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(() => {
-        
-      })
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.withinLine {
-  display: inline-block;
-  ::v-deep .el-button {
-    margin-left: 0;
-    margin-right: 10px;
-    margin-bottom: 10px;
-  }
-}
-</style>

+ 0 - 80
src/views/workOrder/workOrderPool/detailModule/workOrderInfo/buttons/closeOrder.vue

@@ -1,80 +0,0 @@
-<template>
-  <div class="withinLine">
-    <el-button type="primary" size="mini" @click="closeOrder">关闭工单</el-button>
-    <el-dialog
-      title="关闭工单"
-      width="800px"
-      :visible.sync="dialogVisible"
-      :modal-append-to-body="false"
-      :append-to-body="true"
-      :before-close="handleClose"
-    >
-      <div>
-        <h2 style="color: red">注意:工单异常关闭,将无法转结算。</h2>
-        <p>平台信息编号: {{ orderInfo.id }}</p>
-      </div>
-      <el-form ref="closeOrder" size="mini" :model="sendEngineersform" label-width="100px" label-position="left">
-        <el-form-item
-          label="审批意见"
-          prop="remark"
-          :rows="5"
-          :rules="[{ required: true, message: '请输入', trigger: 'blur' }]"
-        >
-          <el-input type="textarea" v-model="sendEngineersform.remark"></el-input>
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button size="mini" @click="handleClose">取 消</el-button>
-        <el-button size="mini" type="primary" @click="sub">确 定</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import buttonMixin from './button_mixin.js'
-export default {
-  mixins: [buttonMixin],
-  data() {
-    return {
-      dialogVisible: false,
-      sendEngineersform: {
-        orderBaseId: '',
-        remark: ''
-      }
-    }
-  },
-  methods: {
-    closeOrder() {
-      this.dialogVisible = true
-      this.sendEngineersform.orderBaseId = this.orderInfo.id
-    },
-    sub() {
-      this.$refs.closeOrder.validate(valid => {
-        if (valid) {
-          
-        } else {
-          this.$message({
-            type: 'warning',
-            message: '审批意见'
-          })
-        }
-      })
-    },
-    handleClose() {
-      Object.assign(this.$data, this.$options.data())
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.withinLine {
-  display: inline-block;
-  ::v-deep .el-button {
-    margin-left: 0;
-    margin-right: 10px;
-    margin-bottom: 10px;
-  }
-}
-</style>

+ 0 - 121
src/views/workOrder/workOrderPool/detailModule/workOrderInfo/buttons/cloudCall.vue

@@ -1,121 +0,0 @@
-<template>
-  <div class="withinLine_cloud_call">
-    <i class="el-icon-phone" @click="letClick" @contextmenu.prevent.stop="rigClick"></i>
-    <el-dialog
-      :modal="true"
-      title="设置联通云呼登入名"
-      :visible.sync="dialogbol"
-      width="700px"
-      :show-close="false"
-      :close-on-click-modal="false"
-      :modal-append-to-body="true"
-      :append-to-body="true"
-    >
-      <el-form :model="form" :rules="formRules" ref="ruleForm" label-width="130px" label-position="top">
-        <el-form-item label="联通云呼登录名" prop="unicomIntegratedId">
-          <el-input style="width: 300px" v-model="form.unicomIntegratedId"></el-input>
-        </el-form-item>
-        <el-form-item label="联通云呼-接听方式" prop="unicomIntegratedType">
-          <el-radio-group v-model="form.unicomIntegratedType">
-            <el-radio label="ExtenType">支持三种方式</el-radio>
-            <el-radio label="Local">直线方式</el-radio>
-            <el-radio label="sip">软电话</el-radio>
-            <el-radio label="gateway">语音网关/IP话机</el-radio>
-          </el-radio-group>
-          <div>
-            (<span style="color: red">选择任意一种成功即可,不成功就换个方式试试</span
-            >)对应云呼平台登录界面选择的接听方式。
-          </div>
-          <div>(按对方平台说的两个地方都选择IP话机,可以不需要每天都登录)</div>
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button size="mini" @click="Cancel">取 消</el-button>
-        <el-button size="mini" @click="Confirm" type="primary">确 定</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-export default {
-  props: {
-    orderBaseId: {
-      type: [String, Number],
-      default: ''
-    },
-    phone: {
-      type: [String, Number],
-      default: ''
-    }
-  },
-
-  data() {
-    return {
-      dialogbol: false,
-      form: {
-        unicomIntegratedId: '',
-        unicomIntegratedType: ''
-      },
-      formRules: {
-        unicomIntegratedId: [{ required: true, message: '请输入', trigger: 'blur' }],
-        unicomIntegratedType: [{ required: true, message: '请选择', trigger: 'change' }]
-      }
-    }
-  },
-  methods: {
-    letClick() {
-      if (this.phone) {
-       
-      } else {
-        this.$message({
-          type: 'warning',
-          message: '请先选择工程师'
-        })
-        return
-      }
-    },
-    rigClick() {
-      var { unicomIntegratedId, unicomIntegratedType } = JSON.parse(localStorage.getItem('greemall_user'))
-      this.form.unicomIntegratedId = unicomIntegratedId || ''
-      this.form.unicomIntegratedType = unicomIntegratedType || ''
-      this.dialogbol = true
-    },
-    Cancel() {
-      this.dialogbol = false
-    },
-    Confirm() {
-      this.$refs.ruleForm.validate(valid => {
-        if (valid) {
- 
-        } else {
-          console.log('error submit!!')
-          return false
-        }
-      })
-    }
-  }
-}
-</script>
-
-<style lang="scss">
-.el-input-group__append {
-  position: relative !important;
-}
-.withinLine_cloud_call {
-  position: absolute;
-  top: 0;
-  left: 0;
-  right: 0;
-  bottom: 0;
-  .el-icon-phone {
-    width: 100%;
-    height: 100%;
-    display: inline-block;
-    text-align: center;
-    line-height: 26px;
-    background-color: #409eff !important;
-    color: #fff !important;
-  }
-}
-</style>

+ 9 - 8
src/views/workOrder/workOrderPool/detailModule/workOrderInfo/buttons/commitSave.vue

@@ -1,8 +1,8 @@
 <template>
   <div class="withinLine">
-    <el-button type="primary" size="mini" @click="save">{{
-      orderInfo.id ? '保存' : '下派工单'
-    }}</el-button>
+    <el-button type="primary" size="mini" @click="save">
+      {{ orderInfo.id ? '保存' : '下派工单' }}
+    </el-button>
   </div>
 </template>
 
@@ -19,11 +19,12 @@ export default {
           orderBaseSave(this.orderInfo).then(res => {
             if (this.orderInfo.id) {
               // 编辑保存后不跳转列表,刷新数据
-              this.acquireVerify(this, 'getorderDetail')(() => {
-                this.$message({
-                  type: 'success',
-                  message: '保存成功'
-                })
+              this.acquireVerify(this, 'getorderDetail')()
+              // 刷新操作记录
+              this.acquireVerify(this, 'getOrderBaseLogList')()
+              this.$message({
+                type: 'success',
+                message: '保存成功'
               })
             } else {
               // 创建保存后跳转列表

+ 0 - 31
src/views/workOrder/workOrderPool/detailModule/workOrderInfo/buttons/commitTempSave.vue

@@ -1,31 +0,0 @@
-<template>
-  <div class="withinLine">
-    <el-button type="primary" size="mini" @click="save">临时保存</el-button>
-  </div>
-</template>
-
-<script>
-import buttonMixin from './button_mixin.js'
-import { EventBus } from '@/utils/eventBus'
-export default {
-  mixins: [buttonMixin],
-  methods: {
-    save() {
-      this.acquireVerify(this, 'allVerify')(() => {
-        
-      })
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.withinLine {
-  display: inline-block;
-  ::v-deep .el-button {
-    margin-left: 0;
-    margin-right: 10px;
-    margin-bottom: 10px;
-  }
-}
-</style>

+ 10 - 37
src/views/workOrder/workOrderPool/detailModule/workOrderInfo/buttons/processFeedback.vue

@@ -1,24 +1,12 @@
 <template>
   <div class="withinLine">
     <el-button type="primary" size="mini" @click="open">{{ resultCodeName }}</el-button>
-    <el-dialog
-      title="过程反馈"
-      :visible.sync="dialogVisible"
-      :append-to-body="true"
-      :before-close="handleClose"
-      :close-on-click-modal="false"
-      width="750px"
-    >
+    <el-dialog title="过程反馈" :visible.sync="dialogVisible" :append-to-body="true" :before-close="handleClose"
+      :close-on-click-modal="false" width="750px">
       <zj-page-container direction="row">
         <zj-page-fill>
           <div style="width: 100%; box-sizing: border-box; padding: 0 10px">
-            <zj-form
-              v-if="dialogVisible"
-              ref="formRef"
-              :formData="form"
-              :formItems="formItems"
-              :formRules="formRules"
-            />
+            <zj-form v-if="dialogVisible" ref="formRef" :formData="form" :formItems="formItems" :formRules="formRules" />
           </div>
         </zj-page-fill>
       </zj-page-container>
@@ -47,31 +35,13 @@ export default {
   },
   data() {
     return {
-      tableData: [],
       dialogVisible: false,
-      PROCESS_DELAY_TYPE: [],
       form: {
-        remark: '',
-        appointmentTime: '',
-        message: '',
-        isTriggerMessage: '',
-        fileUrl: '',
-        delayType: '',
-        items: [],
-        resultCode: this.resultCode_
+
       },
-      optionsList: [],
-      userMobile: [],
       formRules: {
-        resultCode: [{ required: true, message: '请选择', trigger: 'blur' }],
-        materialProvide: [{ required: true, message: '请选择', trigger: 'blur' }],
-        waitApplyCode: [{ required: true, message: '请输入', trigger: 'blur' }],
-        waitMaterialCode: [{ required: true, message: '请输入', trigger: 'blur' }],
-        qualityFeedbackCode: [{ required: true, message: '请输入', trigger: 'blur' }],
-        feedbackTime: [{ required: true, message: '请选择', trigger: 'blur' }],
-        receiveNumber: [{ required: true, message: '请选择', trigger: 'blur' }]
+
       },
-      scripFeedbackList: []
     }
   },
   computed: {
@@ -80,7 +50,7 @@ export default {
       return JSON.parse(localStorage.getItem('greemall_user'))
     },
     formItems() {
-return []
+      return []
     }
   },
   methods: {
@@ -90,7 +60,7 @@ return []
     sub() {
       this.$refs.formRef.validate(valid => {
         if (valid) {
-          
+
         }
       })
     },
@@ -108,14 +78,17 @@ return []
 .el-date-editor.el-input__inner {
   width: 100%;
 }
+
 .xijiezhanshi {
   width: 100%;
   display: flex;
   justify-content: space-between;
   margin-bottom: 5px;
 }
+
 .withinLine {
   display: inline-block;
+
   ::v-deep .el-button {
     margin-left: 0;
     margin-right: 10px;

+ 0 - 90
src/views/workOrder/workOrderPool/detailModule/workOrderInfo/buttons/rejectOrder.vue

@@ -1,90 +0,0 @@
-<template>
-  <div class="withinLine">
-    <el-button type="primary" size="mini" @click="open">驳回</el-button>
-    <el-dialog
-      :modal="true"
-      title="驳回"
-      :visible.sync="dialogVisible"
-      width="50%"
-      :show-close="false"
-      :close-on-click-modal="false"
-      :modal-append-to-body="false"
-      append-to-body
-      destroy-on-close
-    >
-      <div>
-        <el-row>
-          <el-col :xs="24" :sm="24" :lg="12">平台信息编号:{{ orderInfo.id || '' }}</el-col>
-          <el-col :xs="24" :sm="24" :lg="12">报完工师傅:{{ orderInfo.workerName || '' }}</el-col>
-        </el-row>
-        <br />
-        <el-form ref="form" size="mini" :rules="formRules" label-position="top" :model="form" label-width="80px">
-          <el-form-item label="备注" prop="remark">
-            <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="form.remark"> </el-input>
-          </el-form-item>
-        </el-form>
-      </div>
-      <div slot="footer" class="dialog-footer">
-        <el-button size="mini" @click="handleCancel">取 消</el-button>
-        <el-button size="mini" @click="handleConfirm" type="primary">确 定</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import buttonMixin from './button_mixin.js'
-export default {
-  mixins: [buttonMixin],
-  components: {},
-  props: {},
-  data() {
-    return {
-      form: {
-        remark: ''
-      },
-      formRules: {
-        remark: [{ required: true, message: '请选择', trigger: 'change' }]
-      },
-      dialogVisible: false
-    }
-  },
-  created() {},
-  watch: {},
-  computed: {},
-  methods: {
-    open() {
-      this.dialogVisible = true
-    },
-    handleCancel() {
-      this.form.remark = ''
-      this.dialogVisible = false
-    },
-    handleConfirm() {
-      this.$refs.form.validate(async valid => {
-        if (valid) {
-          let params = {
-            orderBaseId: this.orderInfo.id,
-            remark: this.form.remark
-          }
-         
-        } else {
-          this.$message.error('* 代表必填必选项,请检查')
-          return false
-        }
-      })
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.withinLine {
-  display: inline-block;
-  ::v-deep .el-button {
-    margin-left: 0;
-    margin-right: 10px;
-    margin-bottom: 10px;
-  }
-}
-</style>

+ 46 - 0
src/views/workOrder/workOrderPool/detailModule/workOrderInfo/buttons/unurgent.vue

@@ -0,0 +1,46 @@
+<template>
+  <div class="withinLine">
+    <el-button @click="urgent" type="primary" size="mini">不加急</el-button>
+  </div>
+</template>
+
+<script>
+import buttonMixin from './button_mixin.js'
+import { MessageBox } from '@zjlib/element-ui2'
+import { orderBaseFlag } from "@/api/workOrderPool.js"
+export default {
+  mixins: [buttonMixin],
+  methods: {
+    urgent() {
+      MessageBox.confirm('取消加急操作,会消息通知所有订单相关人员,请谨慎操作', '取消加急确认', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        orderBaseFlag({ flag: false, orderBaseId: this.orderInfo.id, orderFlagEnum: "JIA_JI" }).then(res => {
+          // 编辑保存后不跳转列表,刷新数据
+          this.acquireVerify(this, 'getorderDetail')()
+          // 刷新操作记录
+          this.acquireVerify(this, 'getOrderBaseLogList')()
+          this.$message({
+            type: 'success',
+            message: '取消加急成功!'
+          })
+        })
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.withinLine {
+  display: inline-block;
+
+  ::v-deep .el-button {
+    margin-left: 0;
+    margin-right: 10px;
+    margin-bottom: 10px;
+  }
+}
+</style>

+ 46 - 0
src/views/workOrder/workOrderPool/detailModule/workOrderInfo/buttons/urgent.vue

@@ -0,0 +1,46 @@
+<template>
+  <div class="withinLine">
+    <el-button @click="urgent" type="primary" size="mini">加急</el-button>
+  </div>
+</template>
+
+<script>
+import buttonMixin from './button_mixin.js'
+import { MessageBox } from '@zjlib/element-ui2'
+import { orderBaseFlag } from "@/api/workOrderPool.js"
+export default {
+  mixins: [buttonMixin],
+  methods: {
+    urgent() {
+      MessageBox.confirm('加急操作,会消息通知所有订单相关人员,请谨慎操作', '加急确认', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        orderBaseFlag({ flag: true, orderBaseId: this.orderInfo.id, orderFlagEnum: "JIA_JI" }).then(res => {
+          // 编辑保存后不跳转列表,刷新数据
+          this.acquireVerify(this, 'getorderDetail')()
+          // 刷新操作记录
+          this.acquireVerify(this, 'getOrderBaseLogList')()
+          this.$message({
+            type: 'success',
+            message: '加急成功!'
+          })
+        })
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.withinLine {
+  display: inline-block;
+
+  ::v-deep .el-button {
+    margin-left: 0;
+    margin-right: 10px;
+    margin-bottom: 10px;
+  }
+}
+</style>

+ 0 - 87
src/views/workOrder/workOrderPool/detailModule/workOrderInfo/buttons/void.vue

@@ -1,87 +0,0 @@
-<template>
-  <div class="withinLine">
-    <el-button type="primary" size="mini" @click="open">作废</el-button>
-    <el-dialog
-      title="作废"
-      :visible.sync="dialogVisible"
-      :append-to-body="true"
-      width="500px"
-      :before-close="handleClose"
-    >
-      <el-form ref="form" size="mini" :model="form" label-width="80px">
-        <el-form-item
-          label="备注内容"
-          prop="cancelRemark"
-          :rules="[{ required: true, message: '请输入', trigger: 'blur' }]"
-        >
-          <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="form.cancelRemark"> </el-input>
-        </el-form-item>
-        <el-form-item
-          label="作废原因"
-          prop="cancelReason"
-          :rules="[{ required: true, message: '请选择', trigger: 'blur' }]"
-        >
-          <el-select v-model="form.cancelReason" placeholder="请选择">
-            <el-option
-              v-for="(item, index) in ORDER_CANCEL_REASON"
-              :key="index"
-              :label="item.label"
-              :value="item.value"
-            >
-            </el-option>
-          </el-select>
-        </el-form-item>
-      </el-form>
-      <span slot="footer" class="dialog-footer">
-        <el-button size="mini" @click="handleClose">取 消</el-button>
-        <el-button size="mini" type="primary" @click="sub">提交</el-button>
-      </span>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import buttonMixin from './button_mixin.js'
-export default {
-  mixins: [buttonMixin],
-  data() {
-    return {
-      dialogVisible: false,
-      form: {},
-      ORDER_CANCEL_REASON: []
-    }
-  },
-  methods: {
-    open() {
-      if (this.orderInfo.orderStatus === 'A13081' || this.orderInfo.orderStatus === 'A1308') {
-        this.$message.error('已作废工单,不可再作废')
-        return
-      }
-
-      this.dialogVisible = true
-    },
-    sub() {
-      this.$refs.form.validate(valid => {
-        if (valid) {
-
-        }
-      })
-    },
-    handleClose() {
-      this.dialogVisible = false
-      Object.assign(this.$data, this.$options.data())
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.withinLine {
-  display: inline-block;
-  ::v-deep .el-button {
-    margin-left: 0;
-    margin-right: 10px;
-    margin-bottom: 10px;
-  }
-}
-</style>

+ 10 - 4
src/views/workOrder/workOrderPool/detailModule/workOrderInfo/index.vue

@@ -37,8 +37,11 @@
         <commitSave v-if="~btnRestrict.indexOf(1)" :orderInfo="orderInfo" :orderType="orderType" />
         <!-- 2,过程反馈  -->
         <!-- 3,设为异常  -->
+        <abnormal v-if="~btnRestrict.indexOf(3)" :orderInfo="orderInfo" :orderType="orderType" />
         <!-- 4,加急  -->
+        <urgent v-if="~btnRestrict.indexOf(4)" :orderInfo="orderInfo" :orderType="orderType" />
         <!-- 5,不加急  -->
+        <unurgent v-if="~btnRestrict.indexOf(5)" :orderInfo="orderInfo" :orderType="orderType" />
         <!-- 6,取消工单  -->
         <!-- 7,回访  -->
         <!-- 8,新建工单 -->
@@ -64,12 +67,18 @@ import pandanxinxi from './mixins/pandanxinxi.js'
 import copyInfo from './buttons/copyInfo.vue'
 import closeButton from './buttons/closeButton.vue'
 import commitSave from './buttons/commitSave.vue'
+import urgent from './buttons/urgent.vue'
+import unurgent from './buttons/unurgent.vue'
+import abnormal from './buttons/abnormal.vue'
 
 export default {
   components: {
     copyInfo,
     closeButton,
-    commitSave
+    commitSave,
+    urgent,
+    unurgent,
+    abnormal
   },
   mixins: [
     workOrderLogic,
@@ -81,9 +90,6 @@ export default {
     pandanxinxi,
   ],
   methods: {
-    upoptions() {
-
-    },
     allVerify(cb) {
       this.$refs.formRef.validate((valid, invalidFields, errLabels) => {
         cb && cb(valid, invalidFields, errLabels)

+ 33 - 19
src/views/workOrder/workOrderPool/detailModule/workOrderInfo/mixins/workOrderLogic.js

@@ -43,7 +43,7 @@ var initdata_ = {
   workerId: "",
   // 工程师列表
   orderWorkers: [],
-  orderWorkers_cp:[]
+  orderWorkers_cp: []
 }
 
 export default {
@@ -113,45 +113,59 @@ export default {
           YQX: []
         }[this.orderInfo.orderStatus]
       }
+
+      // 已经加急
+      if (this.orderInfo.orderFlags.find(item => item.tag == 'JIA_JI')) {
+        btns = btns.filter(item => !new Set([4]).has(item))
+      } else {
+        btns = btns.filter(item => !new Set([5]).has(item))
+      }
+
+      // 已经异常
+      if (this.orderInfo.orderFlags.find(item => item.tag == 'YI_CHANGE')) {
+        btns = btns.filter(item => !new Set([3]).has(item))
+      }
+
       return btns
     },
     // 处理每个字段是否可编辑
     formOptions() {
+      var finish = !!~['YWG','YJS','YQX'].indexOf(this.orderInfo.orderStatus)
       return {
         // 基础信息--------------------
         // 客户名称
         userName: {
-          isEdit: true,
+          isEdit: !finish,
           isShow: true,
           isRules: [...required]
         },
         // 联系人
         linkName: {
-          isEdit: true,
+          isEdit: !finish,
           isShow: true,
           isRules: [...required]
         },
         // 客户电话
         userMobile: {
-          isEdit: true,
+          isEdit: !finish,
           isShow: true,
           isRules: [...mobileRequired]
         },
         // 客户电话2
         userMobile2: {
-          isEdit: true,
+          isEdit: !finish,
           isShow: true,
           isRules: [...mobile]
         },
         // gps地址
         gpsAddress: {
-          isEdit: true,
+          isEdit: !finish,
           isShow: true,
           isRules: [...required]
         },
         // 详细地址
         address: {
-          isEdit: true,
+          isEdit: !finish,
           isShow: true,
           isRules: []
         },
@@ -162,49 +176,49 @@ export default {
           isShow: true,
           isRules: [...required]
         },
-        // 预约上门日期
-        appointmentTime: {
-          isEdit: true,
+        orderChannelId: {
+          isEdit: this.id ? false : true,
           isShow: true,
           isRules: [...required]
         },
-        orderChannelId: {
-          isEdit: this.id ? false : true,
+        // 预约上门日期
+        appointmentTime: {
+          isEdit: !finish,
           isShow: true,
           isRules: [...required]
         },
         saleCompany: {
-          isEdit: true,
+          isEdit: !finish,
           isShow: true,
           isRules: []
         },
         // 产品信息------------------------
         orderProducts: {
-          isEdit: true,
+          isEdit: !finish,
           isShow: true,
           isRules: [...required]
         },
         // 其它信息------------------------
         // 备注
         remark: {
-          isEdit: true,
+          isEdit: !finish,
           isShow: true,
           isRules: []
         },
         // 派单信息-----------------------------
         // 服务商网点
         websitId: {
-          isEdit: true,
+          isEdit: !finish,
           isShow: true,
           isRules: [...required]
         },
         workerId: {
-          isEdit: true,
+          isEdit: !finish,
           isShow: true,
           isRules: [...required]
         },
         orderWorkers: {
-          isEdit: true,
+          isEdit: !finish,
           isShow: true,
           isRules: [...required]
         },
@@ -231,7 +245,7 @@ export default {
           .then(([res, res1]) => {
             this.orderInfo = {
               ...res.data,
-              orderWorkers_cp: [...(res.data.orderWorkers||[]).map(item=>({...item}))],
+              orderWorkers_cp: [...(res.data.orderWorkers || []).map(item => ({ ...item }))],
               orderProducts: res1.data || [],
               workerId_fz: "",
             }

+ 15 - 0
src/views/workOrder/workOrderPool/index.vue

@@ -217,6 +217,21 @@ export default {
     exportList: orderBaseListExport,
     // 表格列解析渲染数据更改
     columnParsing(item, defaultData) {
+      if (item.jname === 'orderFlags') {
+        defaultData.render = (h, { row, index, column }) => {
+          return (
+            <div style="padding:0 6px;cursor: pointer;">
+              {(row[column.columnAttributes.prop] || []).map(item => {
+                return (
+                  <div style="display: inline-block;border:1px solid #409EFF; color:#409EFF;padding:0 2px;border-radius: 4px;margin:2px 2px 0 0;">
+                    {item.tagName}
+                  </div>
+                )
+              })}
+            </div>
+          )
+        }
+      }
       return defaultData
     },
     // 监听勾选变化