From 8a266df75e912cc4ff49bc504db5b6b26f152892 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 07 六月 2024 17:34:31 +0800
Subject: [PATCH] 提交一把

---
 company/src/components/enterprise/selectEmployees.vue |  199 ++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 161 insertions(+), 38 deletions(-)

diff --git a/company/src/components/enterprise/selectEmployees.vue b/company/src/components/enterprise/selectEmployees.vue
index c25116c..db719bb 100644
--- a/company/src/components/enterprise/selectEmployees.vue
+++ b/company/src/components/enterprise/selectEmployees.vue
@@ -6,71 +6,194 @@
         :confirm-working="isWorking"
         @confirm="confirm"
     >
-        <el-input v-model="val" placeholder="鏌ヨ鍛樺伐濮撳悕" @keypress.enter.native="getList" style="margin-bottom: 15px;"></el-input>
+      <el-select
+          v-model="memberIds"
+          filterable
+          multiple
+          remote
+          style="margin-bottom: 15px;width: 50%;margin-right: 10px"
+          placeholder="璇疯緭鍏ュ憳宸ュ鍚嶆垨韬唤璇佸彿"
+          :remote-method="searchSelData"
+          :loading="loading">
+        <el-option
+            v-for="item in memberList"
+            :key="item.id"
+            :label="item.name+' ' +(item.idcardNo||'')"
+            :value="item.id">
+        </el-option>
+      </el-select>
+<!--
+        <el-input v-model="val" placeholder="璇疯緭鍏ュ憳宸ュ鍚嶅悗锛岀偣鍑绘悳绱㈡寜閽垨鑰呮寜涓媏nter閿繘琛屾煡璇�" @keypress.enter.native="getList" style="margin-bottom: 15px;width: 50%;margin-right: 10px"></el-input>
+-->
+        <el-button type="primary" @click="getList" style="width: 100px;">鎼滅储</el-button>
         <el-table
             :data="list"
             border
+            @selection-change="handleSelectionChange"
             style="width: 100%">
+            <el-table-column
+                type="selection"
+                width="55">
+            </el-table-column>
             <el-table-column label="搴忓彿" width="80px">
                 <template slot-scope="scope">
                     <span>{{scope.$index + 1}}</span>
                 </template>
             </el-table-column>
             <el-table-column
-                prop="date"
+                prop="name"
                 label="濮撳悕">
             </el-table-column>
             <el-table-column
-                prop="name"
+                prop="idcardNo"
                 label="韬唤璇佸彿">
             </el-table-column>
             <el-table-column
-                prop="address"
+                prop="duName"
                 label="娲鹃仯鍗曚綅">
             </el-table-column>
             <el-table-column
-                prop="address"
+                prop="workTypeName"
                 label="鎵�灞炲伐绉�">
             </el-table-column>
         </el-table>
+      <template  v-slot:footer>
+        <el-button type="primary"  :loading="confirming" @click="confirm">纭畾</el-button>
+        <el-button @click="visible=false">杩斿洖</el-button>
+      </template>
     </GlobalWindow>
 </template>
 
 <script>
-    import BaseOpera from '@/components/base/BaseOpera'
-    import GlobalWindow from '@/components/common/GlobalWindow'
-    import { findListByDTO } from '@/api/business/member'
-    export default {
-        name: 'selectEmployees',
-        extends: BaseOpera,
-        components: { GlobalWindow },
-        data () {
-            return {
-                val: '',
-                list: []
-            }
-        },
-        created () {
-            this.config({
-                api: '/business/dispatchUnit',
-                'field.id': 'id'
-            })
-        },
-        methods: {
-            open (title) {
-                this.title = title
-                this.visible = true
-                this.getList()
-            },
-            getList() {
-                findListByDTO({
-                    name: this.val
-                }).then(res => {
-                    this.list = []
-                })
-            }
-        }
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import { findListByDTO } from '@/api/business/member'
+export default {
+  name: 'selectEmployees',
+  extends: BaseOpera,
+  components: { GlobalWindow },
+  data () {
+    return {
+      confirming:false,
+      type: '',
+      val: '',
+      memberIds:[],
+      loading:false,
+      memberList:[],
+      list: [],
+      price: '',
+      insuranceApplyId: '',
+      notInInsuranceApplyId: '',
+      validTime: '',
+      seleData: [],
+      oldList: []
     }
+  },
+  created () {
+    this.config({
+      api: '/business/dispatchUnit',
+      'field.id': 'id'
+    })
+  },
+  methods: {
+    open (title, obj) {
+      this.insuranceApplyId = ''
+      this.notInInsuranceApplyId = ''
+      this.val = ''
+      this.price = obj.price
+      this.confirming=false
+      this.oldList = obj.arr
+      if (obj.type) {
+        this.type = obj.type
+      }
+      this.list = []
+      if (obj.insuranceApplyId) {
+        this.insuranceApplyId = obj.insuranceApplyId
+      }
+      if (obj.notInInsuranceApplyId) {
+        this.notInInsuranceApplyId = obj.notInInsuranceApplyId
+      }
+      if (obj.validTime) {
+        this.validTime = obj.validTime
+      }
+      this.title = title
+      this.visible = true
+      // this.getList()
+    },
+    confirm () {
+      if(this.confirming){
+        return
+      }
+      this.confirming=true
+      if (this.seleData.length === 0) {
+        this.$message.warning('鑷冲皯閫夋嫨涓�椤瑰唴瀹�')
+        return
+      }
+      for (let i = 0; i < this.seleData.length; i++) {
+        for (let a = 0; a < this.oldList.length; a++) {
+          // this.seleData[i].name === this.oldList[a].memberName ||
+          if (this.seleData[i].idCard === this.oldList[a].idcardNo) {
+            this.$message.warning(`[${this.seleData[i].name}]鍛樺伐閲嶅`)
+            return
+          }
+        }
+      }
+      this.seleData.forEach(item => {
+        item.idCard = item.idcardNo
+        item.memberName = item.name
+        item.memberId = item.id
+        if (this.notInInsuranceApplyId || this.type == 1) {
+          item.workTypeName = ''
+          item.worktypeId = ''
+          item.duId = ''
+          item.duName = ''
+        }
+        item.fee = this.price
+      })
+      this.$emit('result', this.seleData)
+      this.confirming=false
+      this.visible = false
+    },
+    handleSelectionChange (e) {
+      this.seleData = e
+    },
+    getList () {
+      if(this.memberIds ==null || !this.memberIds.length){
+        this.$message.error('璇锋悳绱㈡妫�鏌ヤ汉鍛樹俊鎭悗杩涜鎼滅储锛�')
+        return;
+      }
+      findListByDTO({
+        name: this.val,
+        subtractMemberIds:this.memberIds,
+        insuranceApplyId: this.insuranceApplyId,
+        notInInsuranceApplyId: this.notInInsuranceApplyId,
+        validTime: this.validTime
+      }).then(res => {
+        res.forEach(item => {
+          item.reducePrice = item.fee
+          item.fee = ''
+        })
+        this.list = res
+      })
+    },
+    searchSelData (query) {
+      if (query !== '') {
+        this.loading = true;
+        findListByDTO({
+          name: query,
+          insuranceApplyId: this.insuranceApplyId,
+          notInInsuranceApplyId: this.notInInsuranceApplyId,
+          validTime: this.validTime
+        }).then(res => {
+          this.loading = false
+          this.memberList = res
+        }).finally(() => {
+          this.loading = false
+        })
+      }
+    }
+  }
+}
 </script>
 
 <style lang="scss" scoped>

--
Gitblit v1.9.3