damon227 1 vuosi sitten
vanhempi
commit
a94e625a6b

+ 1 - 0
src/views/modules/common/user-component.vue

@@ -112,6 +112,7 @@
           this.value = null
         }
         this.$emit('userSelected', item)
+        this.$emit('userSelectedItem', {userId: item, userName: this.options.find(t => t.value === item).name})
       },
       checkItem (code) {
         if (!code || !this.options) return

+ 8 - 1
src/views/modules/common/user-components.vue

@@ -95,7 +95,8 @@ export default {
             if (i === -1) {
               this.options.push({
                 label: item.name + ' (' + item.orgName + ')',
-                value: item.userId
+                value: item.userId,
+                name: item.name
               })
             }
           })
@@ -113,6 +114,12 @@ export default {
     },
     onChange (item) {
       this.$emit('change', item)
+      let array = []
+      item.forEach(id => {
+        array.push({userId: id, userName: this.options.find(t => t.value === id).name})
+      })
+
+      this.$emit('userSelectedItems', array)
     },
     cancelReadOnly (onOff) {
       this.$nextTick(() => {

+ 1 - 0
src/views/modules/cus/communicate-add-or-update.vue

@@ -393,6 +393,7 @@
     <worder-add-or-update-dialog
       v-if="worderVisible"
       ref="worder"
+      :userMultiple="true"
       @submit="addWorderItem"
     />
     <attach-detail-dialog ref="attachDetail" @onChose="onChose" />

+ 7 - 0
src/views/modules/cus/quoted-add-or-update.vue

@@ -327,7 +327,9 @@
     <worder-add-or-update-dialog
       v-if="worderVisible"
       ref="worder"
+      :userMultiple="true"
       @submit="addWorderItem"
+      @submitArray="addWorderItems"
     />
     <attach-detail-dialog ref="attachDetail" @onChose="onChose" />
   </div>
@@ -501,6 +503,11 @@ export default {
         })
       }
     },
+    addWorderItems (array) {
+      array.forEach(item => {
+        this.addWorderItem(item)
+      })
+    },
     updateWorderHandle (row) {
       this.worderVisible = true
       this.$nextTick(() => {

+ 2 - 2
src/views/modules/order/order-add-or-update.vue

@@ -298,7 +298,7 @@
           <el-button v-if="!display" type="primary" @click="dataFormSubmit()">确定</el-button>
         </span>
     <add-or-update v-if="productListVisible"  ref="productList" @addItem="addItem" />
-    <worder-add-or-update v-if="worderListVisible" ref="worderList" @submit="addWorkItem"/>
+    <worder-add-or-update v-if="worderListVisible" ref="worderList" :userMultiple="true" @submit="addWorkItem"/>
     <!-- 文件预览 -->
     <preview-component v-if="previewVisible" ref="preview"/>
   </div>
@@ -509,7 +509,7 @@
       addWorkItemHandle () {
         this.worderListVisible = true
         this.$nextTick(() => {
-          this.$refs.worderList.init()
+          this.$refs.worderList.init(0, null, 'addItem', null, 'order')
         })
       },
       // 编辑工单派发项

+ 40 - 11
src/views/modules/worder/add-or-update-dialog.vue

@@ -78,11 +78,18 @@
         </el-row>
         <el-row class="my-row">
           <el-col :span="8">
-            <el-form-item label="任务接收人" prop="receiver">
+            <el-form-item label="任务接收人" prop="" v-if="userMultiple">
+              <user-components
+                v-model="dataForm.receivers"
+                :user-ids="dataForm.receivers"
+                @userSelectedItems="userSelectedItems"
+              />
+            </el-form-item>
+            <el-form-item label="任务接收人" prop="receiver" v-else>
               <user-component
                 v-model="dataForm.receiver"
                 :user-id="dataForm.receiver"
-                @userSelected="userChanged"
+                @userSelectedItem="userSelectedItem"
               />
             </el-form-item>
           </el-col>
@@ -122,9 +129,17 @@
 import uploadComponent from '../common/upload-component-v2'
 import { taskTypeOption, rankTypeOption } from '@/utils/enums'
 import UserComponent from '@/views/modules/common/user-component'
+import UserComponents from '@/views/modules/common/user-components'
 export default {
   name: 'worder-add-or-update',
-  components: { UserComponent, uploadComponent },
+  components: { UserComponent, uploadComponent, UserComponents },
+  props: {
+    // 任务接收人是否可多选
+    userMultiple: {
+      type: Boolean,
+      default: false
+    }
+  },
   data () {
     return {
       id: 0,
@@ -158,6 +173,9 @@ export default {
         ],
         receiver: [
           { required: true, message: '请输入工单任务接收人', trigger: 'blur' }
+        ],
+        receivers: [
+          { required: true, message: '请输入工单任务接收人', trigger: 'blur' }
         ]
       }
     }
@@ -181,7 +199,7 @@ export default {
         this.dataForm = item
       } else {
         this.isModify = false
-        if (bizType === 'communicate') {
+        if (bizType === 'communicate' || bizType === 'order') {
           this.dataForm = {
             planCompletionTime: new Date(),
             ranks: '1',
@@ -208,12 +226,19 @@ export default {
       this.$refs['dataForm'].validate((valid) => {
         if (valid) {
           this.visible = false
-          let user = this.userList.find(
-            (t) => t.userId === this.dataForm.receiver
-          )
-          this.dataForm.receiverName = user ? user.name : ''
           if (this.type === 'addItem') {
-            this.$emit('submit', this.dataForm)
+            if (!this.userMultiple) { this.$emit('submit', this.dataForm) } else {
+              let array = []
+              this.dataForm.receiverList.forEach(t => {
+                let obj = {...this.dataForm}
+                obj.recordId = Math.round(Math.random() * 1000000)
+                obj.receiver = t.userId
+                obj.receiverName = t.userName
+                array.push(obj)
+              })
+              console.log(array)
+              this.$emit('submitArray', array)
+            }
           } else if (this.type === 'update') {
 
           }
@@ -227,8 +252,12 @@ export default {
     uploadSuccess (fileList) {
       this.attachList = fileList
     },
-    userChanged (item) {
-      // todo
+    userSelectedItem (item) {
+      this.dataForm.receiverName = item.userName
+    },
+    userSelectedItems (item) {
+      this.dataForm.receiverList = item
+      this.dataForm.receivers = item.map(t => t.userId)
     }
   }
 }