From 09da100729793848bc01b51f7b05ca3f1e7ec64f Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期四, 20 六月 2024 14:05:35 +0800
Subject: [PATCH] 提交一把
---
company/src/components/enterprise/importEmployees.vue | 215 +++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 188 insertions(+), 27 deletions(-)
diff --git a/company/src/components/enterprise/importEmployees.vue b/company/src/components/enterprise/importEmployees.vue
index ccba938..45550ff 100644
--- a/company/src/components/enterprise/importEmployees.vue
+++ b/company/src/components/enterprise/importEmployees.vue
@@ -1,46 +1,207 @@
<template>
<GlobalWindow
:title="title"
- width="100%"
+ width="30%"
:visible.sync="visible"
:confirm-working="isWorking"
@confirm="confirm"
>
+ <p class="tip-warn" v-if="type ==1"><i class="el-icon-warning"></i>鎻愰啋锛�<br>
+ <span style="">鍔犱繚浜哄憳鍚嶅崟涓紝浜哄憳濮撳悕銆佽韩浠借瘉鍙枫�佹淳閬e崟浣嶅拰宸ョ淇℃伅鍧囦负蹇呭~椤癸紝澶囨敞淇℃伅鍙负绌猴紝璇峰綍鍏ュ悎娉曟暟鎹��</span>
+ </p>
+ <p class="tip-warn" v-if="type !=1"><i class="el-icon-warning"></i>鎻愰啋锛�<br>
+ <span style="">鍑忎繚浜哄憳鍚嶅崟涓紝浜哄憳濮撳悕銆佽韩浠借瘉鍙峰潎涓哄繀濉」锛屽娉ㄤ俊鎭彲涓虹┖锛岃褰曞叆鍚堟硶鏁版嵁銆�</span>
+ </p>
<el-form class="demo-form-inline">
<el-form-item label="涓婁紶鍚嶅崟" required>
- <el-button type="primary" @click="clickRef">鐐瑰嚮涓婁紶</el-button>
- <el-button type="text">鍚嶅崟妯℃澘.EXCEL</el-button>
+ <div style="width: 100%;display: flex;align-items: center;">
+ <el-button type="primary" @click="clickRef" :loading="importing">鐐瑰嚮涓婁紶</el-button>
+ <el-button type="text" @click="exportTemplate">鍚嶅崟妯℃澘.EXCEL</el-button>
+ </div>
+ <div style="font-size: 14px; color: black;" v-if="fileName">{{fileName}}</div>
</el-form-item>
</el-form>
- <input type="file" accept=".excel" ref="fileExcel" @change="result" />
+ <input type="file" @cancel="importing=false" style="position: fixed; left: 0; top: -50px;" accept=".xlsx" ref="fileExcel" @change="result" />
+ <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'
- export default {
- name: 'importEmployees',
- extends: BaseOpera,
- components: { GlobalWindow },
- data () {
- return {
- list: []
- }
- },
- methods: {
- open (title, arr) {
- this.title = title
- this.visible = true
- },
- clickRef () {
- this.$refs.fileExcel.click()
- },
- result (e) {
- console.log(e)
- }
- }
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import { importExcel,importReuduceExcel } from '@/api/business/member'
+export default {
+ name: 'importEmployees',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ importing:false,
+ confirming:false,
+ list: [],
+ price: 0,
+ type: null,
+ solutionId: null,
+ applyId: null,
+ addList: [],
+ delList: [],
+ fileName: ''
}
+ },
+ methods: {
+ open (title, obj) {
+ this.title = title
+ this.addList = []
+ this.delList = []
+ this.fileName = ''
+ this.type = obj.type
+ this.visible = true
+ this.solutionId = obj.solutionId
+ this.applyId = obj.insuranceApplyId
+ this.list = obj.arr
+ this.price = obj.price
+ this.importing= false
+ this.confirming= false
+ },
+ // 瀵煎嚭妯℃澘
+ exportTemplate () {
+ // 鎶曚繚鐢宠
+ if (this.type === 1) {
+ window.open('/template/personnel_add.xlsx')
+ } else {
+ window.open('/template/personnel_reduce.xlsx')
+ }
+ },
+ clickRef () {
+ if(this.importing){
+ return
+ }
+ this.importing=true
+ this.$refs.fileExcel.click()
+ },
+ result(e){
+ if (this.type === 1) {
+ this.result1(e)
+ } else {
+ this.result2(e)
+ }
+ },
+ result1 (e) {
+ this.addList = []
+ const data = new FormData()
+ data.append('file', e.target.files[0])
+ data.append('solutionId', this.solutionId)
+ importExcel(data)
+ .then(res => {
+ res.forEach(item => {
+ item.memberName = item.name
+ item.fee = ''
+ })
+ this.addList = res
+ this.fileName = e.target.files[0].name
+ this.importing =false
+ })
+ .catch(err => {
+ this.importing =false
+ this.$message.error(err)
+ this.fileName = ''
+ })
+ .finally(() => {
+ this.importing =false
+ this.$refs.fileExcel.value = null
+ })
+ },
+ result2 (e) {
+ this.delList = []
+ const data = new FormData()
+ data.append('file', e.target.files[0])
+ data.append('applyId', this.applyId)
+ importReuduceExcel(data)
+ .then(res => {
+ res.forEach(item => {
+ item.memberName = item.name
+ })
+ this.delList = res
+ this.fileName = e.target.files[0].name
+ this.importing =false
+ })
+ .catch(err => {
+ this.importing = false
+ this.$message.error(err)
+ this.fileName = ''
+ })
+ .finally(() => {
+ this.importing =false
+ this.$refs.fileExcel.value = null
+ })
+ },
+ confirm () {
+ if (this.type === 1) {
+ this.confirm1()
+ } else {
+ this.confirm2()
+ }
+ },
+ confirm1 () {
+ if(this.addList==null || this.addList.length ==0){
+ this.$message.error('瀵煎叆浜哄憳鍚嶅崟涓虹┖锛岃鍏堜笂浼犱汉鍛樺悕鍗�')
+ return
+ }
+ if(this.confirming){
+ return
+ }
+ this.confirming = true
+ for (let i = 0; i < this.addList.length; i++) {
+ for (let a = 0; a < this.list.length; a++) {
+ if (this.addList[i].idCard === this.list[a].idcardNo) {
+ this.$message.warning(`銆�${this.addList[i].name}銆戝憳宸ヨ韩浠借瘉銆�${this.addList[i].idCard}銆戦噸澶峘)
+ this.confirming = false
+ return
+ }
+ if (this.addList[i].idCard === this.list[a].idCard) {
+ this.$message.warning(`銆�${this.addList[i].name}銆戝憳宸ヨ韩浠借瘉銆�${this.addList[i].idCard}銆戦噸澶峘)
+ this.confirming = false
+ return
+ }
+ }
+ }
+ this.addList.forEach(item => {
+ item.fee = this.price
+ })
+ this.visible = false
+ this.$emit('result', this.addList)
+ },
+ confirm2() {
+ if(this.delList==null || this.delList.length ==0){
+ this.$message.error('瀵煎叆浜哄憳鍚嶅崟涓虹┖锛岃鍏堜笂浼犱汉鍛樺悕鍗�')
+ return
+ }
+ if(this.confirming){
+ return
+ }
+ this.confirming = true
+ for (let i = 0; i < this.delList.length; i++) {
+ for (let a = 0; a < this.list.length; a++) {
+ if (this.delList[i].idCard === this.list[a].idcardNo) {
+ this.$message.warning(`銆�${this.delList[i].name}銆戝憳宸ヨ韩浠借瘉銆�${this.delList[i].idCard}銆戦噸澶峘)
+ this.confirming = false
+ return
+ }
+ if (this.delList[i].idCard === this.list[a].idCard) {
+ this.$message.warning(`銆�${this.delList[i].name}銆戝憳宸ヨ韩浠借瘉銆�${this.delList[i].idCard}銆戦噸澶峘)
+ this.confirming = false
+ return
+ }
+ }
+ }
+ this.visible = false
+ this.$emit('result', this.delList)
+ }
+ }
+}
</script>
<style lang="scss" scoped>
--
Gitblit v1.9.3