调整员工信息维护列表和个人资料校验
This commit is contained in:
@@ -112,14 +112,17 @@
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="baseStaffList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table v-loading="loading" :data="baseStaffList" class="base-staff-table">
|
||||
<el-table-column label="姓名" align="center" prop="name" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="柜员号" align="center" prop="staffId" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="身份证号" align="center" prop="idCard" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="所属部门" align="center" prop="deptName" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="身份证号" align="center" prop="idCard" min-width="190" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="所属部门" align="center" prop="deptName" min-width="180" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="电话" align="center" prop="phone" width="120"/>
|
||||
<el-table-column label="年收入" align="center" prop="annualIncome" width="140"/>
|
||||
<el-table-column label="年收入(万元)" align="center" prop="annualIncome" width="120">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ formatAnnualIncomeWan(scope.row.annualIncome) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="是否党员" align="center" prop="partyMember" width="100">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ formatPartyMember(scope.row.partyMember) }}</span>
|
||||
@@ -131,9 +134,9 @@
|
||||
<el-tag v-else type="danger">离职</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
|
||||
<el-table-column label="入职时间" align="center" prop="hireDate" width="140">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.createTime) }}</span>
|
||||
<span>{{ scope.row.hireDate ? parseTime(scope.row.hireDate, '{y}-{m}-{d}') : '-' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200">
|
||||
@@ -340,7 +343,7 @@
|
||||
<el-descriptions-item label="身份证号">{{ employeeDetail.idCard || '-' }}</el-descriptions-item>
|
||||
<el-descriptions-item label="电话">{{ employeeDetail.phone || '-' }}</el-descriptions-item>
|
||||
<el-descriptions-item label="年收入">
|
||||
{{ employeeDetail.annualIncome !== null && employeeDetail.annualIncome !== undefined && employeeDetail.annualIncome !== '' ? employeeDetail.annualIncome : '-' }}
|
||||
{{ formatAnnualIncome(employeeDetail.annualIncome) }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="入职时间">
|
||||
{{ employeeDetail.hireDate ? parseTime(employeeDetail.hireDate, '{y}-{m}-{d}') : '-' }}
|
||||
@@ -967,6 +970,26 @@ export default {
|
||||
maximumFractionDigits: 2
|
||||
})} 万元`;
|
||||
},
|
||||
formatAnnualIncome(value) {
|
||||
if (value === null || value === undefined || value === "") {
|
||||
return "-";
|
||||
}
|
||||
const amount = Number(value);
|
||||
if (!Number.isFinite(amount)) {
|
||||
return "-";
|
||||
}
|
||||
return amount.toFixed(0);
|
||||
},
|
||||
formatAnnualIncomeWan(value) {
|
||||
if (value === null || value === undefined || value === "") {
|
||||
return "-";
|
||||
}
|
||||
const amount = Number(value);
|
||||
if (!Number.isFinite(amount)) {
|
||||
return "-";
|
||||
}
|
||||
return (amount / 10000).toFixed(2);
|
||||
},
|
||||
normalizeAnnualIncome(value) {
|
||||
if (value === null || value === undefined) {
|
||||
return null;
|
||||
@@ -1511,6 +1534,11 @@ export default {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.base-staff-table ::v-deep .el-table__header-wrapper th:first-child .cell,
|
||||
.base-staff-table ::v-deep .el-table__body-wrapper td:first-child .cell {
|
||||
padding-left: 24px;
|
||||
}
|
||||
|
||||
/* 详情弹窗样式 */
|
||||
.employee-detail-dialog .detail-container {
|
||||
padding: 10px 0;
|
||||
|
||||
@@ -25,6 +25,32 @@
|
||||
<script>
|
||||
import { updateUserProfile } from "@/api/system/user"
|
||||
|
||||
const validateOptionalEmail = (rule, value, callback) => {
|
||||
if (!value) {
|
||||
callback()
|
||||
return
|
||||
}
|
||||
const emailPattern = /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/
|
||||
if (!emailPattern.test(value)) {
|
||||
callback(new Error("请输入正确的邮箱地址"))
|
||||
return
|
||||
}
|
||||
callback()
|
||||
}
|
||||
|
||||
const validateOptionalPhone = (rule, value, callback) => {
|
||||
if (!value) {
|
||||
callback()
|
||||
return
|
||||
}
|
||||
const phonePattern = /^1[3|4|5|6|7|8|9][0-9]\d{8}$/
|
||||
if (!phonePattern.test(value)) {
|
||||
callback(new Error("请输入正确的手机号码"))
|
||||
return
|
||||
}
|
||||
callback()
|
||||
}
|
||||
|
||||
export default {
|
||||
props: {
|
||||
user: {
|
||||
@@ -40,20 +66,10 @@ export default {
|
||||
{ required: true, message: "用户昵称不能为空", trigger: "blur" }
|
||||
],
|
||||
email: [
|
||||
{ required: true, message: "邮箱地址不能为空", trigger: "blur" },
|
||||
{
|
||||
type: "email",
|
||||
message: "请输入正确的邮箱地址",
|
||||
trigger: ["blur", "change"]
|
||||
}
|
||||
{ validator: validateOptionalEmail, trigger: ["blur", "change"] }
|
||||
],
|
||||
phonenumber: [
|
||||
{ required: true, message: "手机号码不能为空", trigger: "blur" },
|
||||
{
|
||||
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
|
||||
message: "请输入正确的手机号码",
|
||||
trigger: "blur"
|
||||
}
|
||||
{ validator: validateOptionalPhone, trigger: "blur" }
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user