From cfdafcf22dbd868c9876d37efbd92b97ba014bef Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期三, 26 三月 2025 09:17:01 +0800
Subject: [PATCH] 优化
---
company/src/components/enterprise/addEmployeeWithDu.vue | 204 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 204 insertions(+), 0 deletions(-)
diff --git a/company/src/components/enterprise/addEmployeeWithDu.vue b/company/src/components/enterprise/addEmployeeWithDu.vue
new file mode 100644
index 0000000..7565552
--- /dev/null
+++ b/company/src/components/enterprise/addEmployeeWithDu.vue
@@ -0,0 +1,204 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ width="100%"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :inline="true" class="demo-form-inline">
+ <div v-for="(item, index) in list" :key="index">
+ <el-form-item label="濮撳悕" required>
+ <el-input v-model="item.memberName" placeholder="璇疯緭鍏�"></el-input>
+ </el-form-item>
+ <el-form-item label="韬唤璇佸彿" required>
+ <el-input v-model="item.idCard" maxlength="18" placeholder="璇疯緭鍏�"></el-input>
+ </el-form-item>
+ <el-form-item label="娲鹃仯鍗曚綅" >
+ <el-select v-model="item.duId" @change="selectChange(index)" placeholder="璇烽�夋嫨" clearable>
+ <el-option
+ v-for="item in dispatching"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鎵�灞炲伐绉�" >
+ <el-select v-model="item.worktypeId" @change="selectChangeWT(index)" placeholder="璇烽�夋嫨" clearable>
+ <el-option
+ v-for="item1 in item.options"
+ :key="item1.id"
+ :label="item1.name"
+ :value="item1.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" v-if="index === 0" @click="add">娣诲姞</el-button>
+ <el-button type="danger" v-else @click="dele(index)">鍒犻櫎</el-button>
+ </el-form-item>
+ </div>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import { findListByDTO } from '@/api/business/dispatchUnit'
+import { findListByDTO as worktype } from '@/api/business/worktype'
+export default {
+ name: 'addEmployee',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ tempIndex: -1,
+ dispatching: [],
+ solutionId: null,
+ list: [
+ {
+ memberName: '',
+ idCard: '',
+ workTypeName: '',
+ worktypeId: '',
+ duName: '',
+ options: [],
+ duId: '',
+ fee: ''
+ }
+ ],
+ price: 0,
+ arr: []
+ }
+ },
+ methods: {
+ open (title, obj, tempIndex) {
+ this.title = title
+ this.visible = true
+ this.tempIndex = tempIndex
+ this.solutionId = obj.solutionId
+ this.dispatching = []
+ this.list = [
+ {
+ memberName: '',
+ idCard: '',
+ workTypeName: '',
+ worktypeId: '',
+ duName: '',
+ options: [],
+ duId: '',
+ fee: ''
+ }
+ ]
+ this.arr = obj.arr
+ this.price = obj.price
+ this.getFindListByDTO()
+ },
+ getFindListByDTO () {
+ findListByDTO({
+ solutionId: this.solutionId
+ // dataType: 0
+ }).then(res => {
+ this.dispatching = res
+ })
+ },
+ selectChange (index) {
+ this.list[index].options = []
+ let duSolutionId = ''
+ this.list[index].duName = null
+ this.dispatching.forEach(item => {
+ if (item.id === this.list[index].duId) {
+ duSolutionId = item.duSolutionId
+ this.list[index].duName = item.name
+ }
+ })
+ worktype({ id: duSolutionId, queryType: 1 })
+ .then(res => {
+ this.list[index].options = res
+ })
+ },
+ selectChangeWT (index) {
+ this.list[index].workTypeName = null
+ this.list[index].options.forEach(item => {
+ if (item.id === this.list[index].worktypeId) {
+ this.list[index].workTypeName = item.name
+ }
+ })
+ },
+ add () {
+ this.list.push({
+ memberName: '',
+ idCard: '',
+ workTypeName: '',
+ worktypeId: '',
+ duName: '',
+ duId: '',
+ options: [],
+ fee: '',
+ id: this.tempIndex - 1
+ })
+ },
+ dele (index) {
+ this.list.splice(index, 1)
+ },
+ hasDuplicates (arr) {
+ return arr.some((value, index) => arr.indexOf(value) !== index)
+ },
+ confirm () {
+ // 鍒ゆ柇鍒楄〃鍚︽槸鏈夌┖鍊�
+ // for (let i = 0; this.list.length; i++) {
+ // if (!this.list[i].memberName || !this.list[i].idCard) {
+ // this.$message.warning('璇峰厛瀹屽杽淇℃伅鍚庡啀鎻愪氦')
+ // return
+ // }
+ // }
+ // 鍒ゆ柇鏂板綍鍏ユ暟鎹韩浠借瘉鏄惁鏈夐噸澶�
+ const idcardList = this.list.map(item => item.idCard)
+ if (this.hasDuplicates(idcardList)) {
+ this.$message.warning('韬唤璇佹湁閲嶅')
+ return
+ }
+ // 鍒ゆ柇韬唤璇佹槸鍚︽湁鏁�
+ for (let i = 0; i < this.list.length; i++) {
+ const regExp = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
+ if (!regExp.test(this.list[i].idCard)) {
+ this.$message.warning(`绗�${i + 1}椤瑰憳宸ヨ韩浠借瘉涓嶅悎娉昤)
+ return
+ }
+ const s=parseInt(this.list[i].idCard.substring(16,17))
+ // const s = parseInt(this.list[i].idCard.slice(16, 1))
+ if (s % 2 === 0) {
+ this.list[i].sex = 1
+ } else {
+ this.list[i].sex = 0
+ }
+ }
+ // 鍒ゆ柇璇︽儏鍒楄〃鏁版嵁韬唤璇佹槸鍚︽湁閲嶅
+ let next = true
+ this.list.forEach(item => {
+ this.arr.forEach(child => {
+ if (item.idCard === child.idCard) {
+ next = false
+ }
+ })
+ })
+ if (next) {
+ this.list.forEach(item => {
+ item.fee = this.price
+ })
+ console.log(this.list)
+ this.$emit('result', this.list)
+ this.visible = false
+ } else {
+ this.$message.warning('韬唤璇佸彿涓嶈兘閲嶅锛�')
+ }
+ }
+ }
+}
+</script>
+
+<style lang="scss" scoped>
+
+</style>
--
Gitblit v1.9.3