<template>
|
<GlobalWindow
|
:title="title"
|
width="30%"
|
:visible.sync="visible"
|
:confirm-working="isWorking"
|
@confirm="confirm"
|
>
|
<el-form class="demo-form-inline">
|
<el-form-item label="上传名单" required>
|
<div style="width: 100%;display: flex;align-items: center;">
|
<el-button type="primary" @click="clickRef">点击上传</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" style="position: fixed; left: 0; top: -50px;" accept=".xlsx" ref="fileExcel" @change="result" />
|
</GlobalWindow>
|
</template>
|
|
<script>
|
import BaseOpera from '@/components/base/BaseOpera'
|
import GlobalWindow from '@/components/common/GlobalWindow'
|
import { importExcel } from '@/api/business/member'
|
export default {
|
name: 'importEmployees',
|
extends: BaseOpera,
|
components: { GlobalWindow },
|
data () {
|
return {
|
list: [],
|
price: 0,
|
type: null,
|
solutionId: null,
|
addList: [],
|
fileName: ''
|
}
|
},
|
methods: {
|
open (title, obj) {
|
this.title = title
|
this.addList = []
|
this.fileName = ''
|
this.type = obj.type
|
this.visible = true
|
this.solutionId = obj.solutionId
|
this.list = obj.arr
|
this.price = obj.price
|
},
|
// 导出模板
|
exportTemplate () {
|
// 投保申请
|
if (this.type === 1) {
|
window.open(process.env.VUE_APP_MEMBER1_URL)
|
} else {
|
window.open(process.env.VUE_APP_MEMBER_URL)
|
}
|
},
|
clickRef () {
|
this.$refs.fileExcel.click()
|
},
|
result (e) {
|
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
|
})
|
.catch(err => {
|
this.$message.error(err)
|
this.fileName = ''
|
})
|
.finally(() => {
|
this.$refs.fileExcel.value = null
|
})
|
},
|
confirm () {
|
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}]员工重复`)
|
return
|
}
|
}
|
}
|
this.addList.forEach(item => {
|
item.fee = this.price || ''
|
})
|
this.$emit('result', this.addList)
|
this.visible = false
|
}
|
}
|
}
|
</script>
|
|
<style lang="scss" scoped>
|
|
</style>
|