瀏覽代碼

no message

linwenxin 8 月之前
父節點
當前提交
be42cee994

+ 1 - 1
src/views/workOrder/workOrderPool/components/reassignment/index.vue

@@ -27,7 +27,7 @@
 </template>
 
 <script>
-import pandanxinxi from '../../detailModule/workOrderInfo/mixins/pandanxinxi.js'
+import pandanxinxi from './pandanxinxi.js'
 import showRecordSelected from '../mixins/showRecordSelected.js'
 import { required } from '@/components/template/rules_verify.js'
 import { changeOrderChangeWorker } from '@/api/workOrderPool.js'

+ 312 - 0
src/views/workOrder/workOrderPool/components/reassignment/pandanxinxi.js

@@ -0,0 +1,312 @@
+import { getWebsit } from '@/api/customerManagement.js'
+import { memberListPageV2 } from '@/api/masterManagement'
+
+export default {
+  data() {
+    return {
+      websitList: [],
+      workerList: []
+    }
+  },
+  computed: {
+    workersColumns() {
+      return [
+        {
+          columnAttributes: {
+            label: '工程师信息',
+            prop: 'workerName'
+          }
+        },
+        {
+          columnAttributes: {
+            label: '工程师类型',
+            prop: 'isMaster'
+          },
+          render: (h, { row, column, index }) => {
+            return <div style="padding-left:10px">{row.isMaster ? '主要工程师' : '辅助工程师'}</div>
+          }
+        },
+        {
+          columnAttributes: {
+            label: '联系电话',
+            prop: 'workerMobile'
+          }
+        },
+        {
+          columnAttributes: {
+            label: '身份证',
+            prop: 'workerIdcard'
+          }
+        },
+        ...(() => {
+          if (this.formOptions.orderWorkers.isEdit) {
+            return [
+              {
+                columnAttributes: {
+                  label: '操作'
+                },
+                render: (h, { row, column, index }) => {
+                  return !row.isMaster ? (
+                    <div style="padding-left:10px">
+                      <el-button
+                        type="text"
+                        onClick={() => {
+                          this.orderInfo.orderWorkers.splice(index, 1)
+                        }}
+                      >
+                        删除
+                      </el-button>
+                    </div>
+                  ) : null
+                }
+              }
+            ]
+          }
+          return []
+        })()
+      ]
+    },
+    pandanxinxi() {
+      return [
+        {
+          isShow: !this?.orderInfo?.isThreeOrder && this.formOptions.websitId.isShow,
+          name: 'el-select',
+          options: this.websitList,
+          md: 8,
+          attributes: {
+            disabled: !this.formOptions.websitId.isEdit,
+            placeholder: '请选择',
+            clearable: true,
+            filterable: true
+          },
+          formItemAttributes: {
+            label: '网点名称',
+            prop: 'websitId',
+            rules: this.formOptions.websitId.isRules
+          },
+          events: {
+            change: val => {
+              this.orderInfo.workerId = ''
+              this.orderInfo.workerName = ''
+              this.orderInfo.workerIdcard = ''
+              this.orderInfo.workerMobile = ''
+              this.workerList = []
+              this.orderInfo.orderWorkers = []
+              this.getWorkers()
+              if (val) {
+                this.orderInfo['websitName'] = this.websitList.find(item => item.value == val).label
+              } else {
+                this.orderInfo['websitName'] = ''
+              }
+            }
+          }
+        },
+        {
+          isShow: !!this?.orderInfo?.isThreeOrder && this.formOptions.websitId.isShow,
+          name: 'slot-component',
+          md: 8,
+          attributes: { disabled: true, placeholder: '请输入' },
+          formItemAttributes: { label: '网点信息', prop: 'websitName' },
+          render: (h, { props, onInput }) => {
+            var { formData } = props
+            return (
+              <el-input
+                value={`${formData.websitName || ''}-${formData.websitId || ''}`}
+                disabled={true}
+                size="mini"
+                placeholder="请输入"
+              ></el-input>
+            )
+          }
+        },
+        {
+          isShow: this.formOptions.isQd.isShow,
+          name: 'el-switch',
+          md: 8,
+          attributes: {
+            disabled: !this.formOptions.isQd.isEdit
+          },
+          formItemAttributes: {
+            label: '是否抢单',
+            prop: 'isQd',
+            rules: this.formOptions.isQd.isRules
+          }
+        },
+        {
+          isShow: this.formOptions.isQd.isShow,
+          name: 'slot-component',
+          md: 8,
+          formItemAttributes: { label: '', prop: '' },
+          render: (h, { props }) => {
+            return null
+          }
+        },
+        {
+          isShow: !this.formOptions.isQd.isShow,
+          name: 'slot-component',
+          md: 16,
+          formItemAttributes: { label: '', prop: '' },
+          render: (h, { props }) => {
+            return null
+          }
+        },
+        ...(() => {
+          if (this.formOptions.workerId.isEdit) {
+            return [
+              {
+                isShow: this.formOptions.workerId.isShow,
+                name: 'el-select',
+                options: this.workerList.filter(
+                  item =>
+                    this.orderInfo.workerId == item.value ||
+                    !~this.orderInfo.orderWorkers.map(item => item.workerId).indexOf(item.value)
+                ),
+                md: 8,
+                attributes: {
+                  disabled: !this.formOptions.workerId.isEdit,
+                  placeholder: '请选择',
+                  clearable: true,
+                  filterable: true
+                },
+                formItemAttributes: {
+                  label: '主要工程师',
+                  prop: 'workerId',
+                  rules: this.formOptions.workerId.isRules
+                },
+                events: {
+                  change: val => {
+                    var index = this.orderInfo.orderWorkers.map(item => item.isMaster).indexOf(true)
+                    if (!!~index) {
+                      this.orderInfo.orderWorkers.splice(index, 1)
+                    }
+                    if (val) {
+                      var data = this.workerList.find(item => item.value == val).data
+                      this.orderInfo.workerName = data.workerName
+                      this.orderInfo.workerIdcard = data.workerIdcard
+                      this.orderInfo.workerMobile = data.workerMobile
+                      this.orderInfo.orderWorkers.unshift({ ...data, isMaster: true })
+                      if (data.slaveWorkerId) {
+                        var data2 = this.workerList.find(item => item.value == data.slaveWorkerId).data
+                        this.orderInfo.orderWorkers.push({ ...data2, isMaster: false })
+                        this.orderInfo.workerId_fz = ''
+                      }
+                      if (this.orderInfo.orderWorkers.length > 1) {
+                        this.orderInfo.orderWorkers.map((item, index) => {
+                          if (index > 0) {
+                            item.isMaster = false
+                          }
+                        })
+                      }
+                    } else {
+                      this.orderInfo.workerName = ''
+                      this.orderInfo.workerIdcard = ''
+                      this.orderInfo.workerMobile = ''
+                    }
+                  }
+                }
+              }
+            ]
+          }
+          return []
+        })(),
+        ...(() => {
+          if (this.formOptions.orderWorkers.isEdit) {
+            return [
+              {
+                isShow: this.formOptions.orderWorkers.isEdit,
+                name: 'el-select',
+                options: this.workerList.filter(
+                  item => !~this.orderInfo.orderWorkers.map(item => item.workerId).indexOf(item.value)
+                ),
+                md: 8,
+                attributes: {
+                  disabled: !this.formOptions.orderWorkers.isEdit,
+                  placeholder: '请选择',
+                  clearable: true,
+                  filterable: true
+                },
+                formItemAttributes: {
+                  label: '辅助工程师',
+                  prop: 'workerId_fz'
+                },
+                events: {
+                  change: val => {
+                    if (val) {
+                      var data = this.workerList.find(item => item.value == val).data
+                      this.orderInfo.orderWorkers.push({ ...data, isMaster: false })
+                      this.orderInfo.workerId_fz = ''
+                    }
+                  }
+                }
+              }
+            ]
+          }
+          return []
+        })(),
+        {
+          isShow: this.formOptions.orderWorkers.isShow,
+          name: 'slot-component',
+          md: 24,
+          formItemAttributes: {
+            label: '已选工程师',
+            prop: 'orderWorkers',
+            rules: this.formOptions.orderWorkers.isRules
+          },
+          render: (h, { props }) => {
+            var { formData } = props
+            return (
+              <div>
+                <zj-table
+                  isDrop={true}
+                  columns={this.workersColumns}
+                  tableData={this.orderInfo.orderWorkers}
+                ></zj-table>
+              </div>
+            )
+          }
+        }
+      ]
+    }
+  },
+  created() {
+    // 普通工单选择网点数据
+    if (!!~[1, 2, 3].indexOf(this?.workOrderType) || this.isAllWebsit) {
+      getWebsit({ type: 'C', status: true, isAll: this.isAllWebsit || this.id ? true : false }).then(res => {
+        this.websitList = res.data.map(item => ({
+          label: item.name,
+          value: item.websitId,
+          data: item
+        }))
+      })
+    }
+  },
+  methods: {
+    getWorkers() {
+      if (this.orderInfo.websitId) {
+        memberListPageV2({
+          pageNum: 1,
+          pageSize: -1,
+          params: [
+            { param: 'b.examine_status', compare: '=', value: 'OK' },
+            { param: 'b.websit_id', compare: '=', value: this.orderInfo.websitId }
+          ]
+        }).then(res => {
+          this.workerList = res.data.records.map(item => {
+            var { id, userId, ...data } = item
+            return {
+              value: userId,
+              label: data.nickName,
+              data: {
+                workerId: userId,
+                workerName: data.nickName,
+                workerIdcard: data.idCard,
+                workerMobile: data.mobile,
+                ...data
+              }
+            }
+          })
+        })
+      }
+    }
+  }
+}