jiangping
2024-05-11 c0ba1a5cc234d127c59bfa56b759f6c960741b67
company/src/components/enterprise/selectEmployees.vue
@@ -42,103 +42,104 @@
</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 {
                type: '',
                val: '',
                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.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.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.visible = false
            },
            handleSelectionChange (e) {
                this.seleData = e
            },
            getList() {
                findListByDTO({
                    name: this.val,
                    insuranceApplyId: this.insuranceApplyId,
                    notInInsuranceApplyId: this.notInInsuranceApplyId,
                    validTime: this.validTime
                }).then(res => {
                    res.forEach(item => {
                        item.fee = ''
                    })
                    this.list = res
                })
            }
        }
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 {
      type: '',
      val: '',
      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.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.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.visible = false
    },
    handleSelectionChange (e) {
      this.seleData = e
    },
    getList () {
      findListByDTO({
        name: this.val,
        insuranceApplyId: this.insuranceApplyId,
        notInInsuranceApplyId: this.notInInsuranceApplyId,
        validTime: this.validTime
      }).then(res => {
        res.forEach(item => {
          item.reducePrice = item.fee
          item.fee = ''
        })
        this.list = res
      })
    }
  }
}
</script>
<style lang="scss" scoped>