feat:修改光芯人员导入功能

This commit is contained in:
TianyangZhang 2026-03-31 11:08:44 +08:00
parent a994cbc10d
commit a3fe47384b
1 changed files with 56 additions and 122 deletions

View File

@ -2,20 +2,6 @@
<el-container>
<el-header>
<div class="left-panel">
<el-select
v-model="query.has_blt"
placeholder="有无定位卡"
@change="handleQuery"
clearable
style="margin-left: 2px; width: 120px"
>
<el-option
v-for="item in bltOptions"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
<el-select
v-model="query.type"
placeholder="人员类型"
@ -99,6 +85,7 @@
<template #footer>
<span class="dialog-footer">
<el-button type="info" @click="downloadTemplate">下载模板</el-button>
<el-button @click="importVisible = false"> </el-button>
<el-button
type="primary"
@ -121,102 +108,61 @@
stripe
@resetQuery="resetQuery"
>
<!-- <el-table-column type="selection" width="50"></el-table-column> -->
<el-table-column label="#" type="index" width="50"></el-table-column>
<el-table-column label="人员类型" prop="type" width="160">
<el-table-column label="#" type="index" width="50" fixed="left"></el-table-column>
<el-table-column label="姓名" prop="name" width="100" fixed="left"></el-table-column>
<el-table-column label="身份证号码" prop="id_number" width="180" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="所属部门" prop="belong_dept" width="150" :show-overflow-tooltip="true">
<template #default="scope">
<span v-if="scope.row.belong_dept_">{{ scope.row.belong_dept_.name }}</span>
</template>
</el-table-column>
<el-table-column label="车间" prop="workshop" width="120" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="职务" prop="position" width="120" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="职务聘任日期" prop="office_date" width="120"></el-table-column>
<el-table-column label="类别" prop="type" width="100">
<template #default="scope">
<span
v-if="
scope.row.type == 'employee' || scope.row.type == 'remployee'
"
>[{{ jobOptions[scope.row.job_state] }}]
</span>
<span>{{ userTypeOptions[scope.row.type] }}</span>
<span
v-if="
(scope.row.type == 'employee' ||
scope.row.type == 'remployee') &&
scope.row.is_atwork
"
style="color: green; font-weight: bold"
>
在岗
</span>
</template>
</el-table-column>
<el-table-column label="姓名" prop="name" width="120">
</el-table-column>
<el-table-column label="性别" prop="gender" width="60">
</el-table-column>
<el-table-column label="证件照" prop="photo" width="120">
<el-table-column label="性别" prop="gender" width="60"></el-table-column>
<el-table-column label="银行卡号码" prop="bank_card" width="180" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="入职日期" prop="start_date" width="120"></el-table-column>
<el-table-column label="合同到期日" prop="contract_end_date" width="120"></el-table-column>
<el-table-column label="转正日期" prop="regular_date" width="120"></el-table-column>
<el-table-column label="出生日期" prop="birthday" width="120"></el-table-column>
<el-table-column label="年龄" prop="age" width="60"></el-table-column>
<el-table-column label="工龄" prop="work_years" width="60"></el-table-column>
<el-table-column label="政治面貌" prop="partisan" width="100"></el-table-column>
<el-table-column label="入党时间" prop="join_partisan_date" width="120"></el-table-column>
<el-table-column label="民族" prop="nation" width="80"></el-table-column>
<el-table-column label="婚姻状况" prop="marriage" width="80"></el-table-column>
<el-table-column label="户口性质" prop="hukou_type" width="100"></el-table-column>
<el-table-column label="籍贯" prop="birthplace" width="120" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="户籍地址" prop="hukou_address" width="200" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="现住地址" prop="address" width="200" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="枣庄市职称" prop="zhuanzhi" width="120" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="获得枣庄市职称日期" prop="zhuanzhi_date" width="160"></el-table-column>
<el-table-column label="总院/集团职称" prop="zyjt_zhuanzhi" width="140" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="获得职称日期" prop="zyjt_zhuanzhi_date" width="120"></el-table-column>
<el-table-column label="职业技能等级" prop="skill_rank" width="120"></el-table-column>
<el-table-column label="获得技能等级证书日期" prop="skill_rank_date" width="170"></el-table-column>
<el-table-column label="全日制最高学历" prop="full_edu" width="130"></el-table-column>
<el-table-column label="全日制学校名称" prop="full_edu_school" width="160" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="全日制所学专业" prop="full_edu_major" width="140" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="全日制入学-毕业时间" prop="full_edu_time" width="170" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="非全日制最高学历" prop="part_edu" width="140"></el-table-column>
<el-table-column label="非全日制学校名称" prop="part_edu_school" width="160" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="非全日制所学专业" prop="part_edu_major" width="150" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="非全日制入学-毕业时间" prop="part_edu_time" width="180" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="本人联系电话" prop="phone" width="130"></el-table-column>
<el-table-column label="紧急联系人姓名" prop="emergency_contact" width="130"></el-table-column>
<el-table-column label="紧急联系人电话" prop="emergency_phone" width="130"></el-table-column>
<el-table-column label="所获荣誉" prop="honor" width="160" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="首次缴纳社保日期" prop="first_social_security_date" width="160"></el-table-column>
<el-table-column label="是否为退役军人" prop="is_veteran" width="120"></el-table-column>
<el-table-column label="个人邮箱" prop="email" width="160" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="操作" fixed="right" align="left" width="80">
<template #default="scope">
<el-avatar :size="50" :src="scope.row.photo" shape="square" />
</template>
</el-table-column>
<el-table-column
label="手机号"
prop="phone"
width="120"
></el-table-column>
<el-table-column
label="部门/单位"
prop="belong_dept"
width="180"
:show-overflow-tooltip="true"
>
<template #default="scope">
<span v-if="scope.row.belong_dept_">{{
scope.row.belong_dept_.name
}}</span>
</template>
</el-table-column>
<el-table-column
label="身份证号"
prop="id_number"
width="180"
:show-overflow-tooltip="true"
></el-table-column>
<el-table-column label="系统账号" prop="user" width="180"
><template #default="scope">
<span v-if="scope.row.user">{{ scope.row.user_.username }}</span>
</template></el-table-column
>
<el-table-column label="定位卡号" prop="blt_" width="180" :show-overflow-tooltip="true">
<template #default="scope">
<div v-if="scope.row.blt_">
<div>{{ scope.row.blt_.code }}</div>
<div v-if="scope.row.location">
{{ scope.row.location.area_fix_name }}-
<span v-if="scope.row.location.xx_detail"
>({{ scope.row.location.xx_detail.longitude }},
{{ scope.row.location.xx_detail.latitude }})</span
>
</div>
</div>
</template>
</el-table-column>
<el-table-column
label="创建时间"
prop="create_time"
width="180"
></el-table-column>
<el-table-column label="操作" fixed="right" align="left" width="170">
<template #default="scope">
<!-- <el-button
link
type="primary"
size="small"
@click="Addcertificate(scope.row)"
v-auth="'employee.update'"
>证书
</el-button> -->
<el-button
link
type="success"
size="small"
@click="handleForm('show', scope.row)"
>查看
</el-button>
<el-button
link
type="warning"
@ -224,22 +170,6 @@
v-auth="'employee.update'"
@click="handleForm('edit', scope.row)"
>编辑
</el-button>
<el-button
v-if="scope.row.blt_"
link
type="danger"
size="small"
@click="handleBindBlt(20, scope.row)"
>解绑
</el-button>
<el-button
v-else
link
type="primary"
size="small"
@click="handleBindBlt(10, scope.row)"
>绑卡
</el-button>
</template>
</el-table-column>
@ -383,6 +313,10 @@ export default {
});
this.deptData = genTree(res);
},
downloadTemplate() {
const url = config.API_URL.slice(0, -4) + '/media/temp/花名册-模板.xlsx'
window.open(url, '_blank')
},
submitImport() {
if (!this.importFilePath) {
this.$message.warning('请先选择并上传文件')