0512新功能优化a

This commit is contained in:
lzm
2026-05-12 11:25:24 +08:00
parent 1fbf02a310
commit ddc0c7db1e
15 changed files with 1371 additions and 273 deletions

View File

@@ -57,6 +57,17 @@
<el-option :value="false" label="停用" />
</el-select>
</el-form-item>
<el-form-item label="是否所长" prop="officeLeaderFlag">
<el-select
v-model="queryParams.officeLeaderFlag"
class="!w-180px"
clearable
placeholder="请选择"
>
<el-option :value="true" label="是" />
<el-option :value="false" label="否" />
</el-select>
</el-form-item>
<el-form-item>
<el-button @click="handleQuery">
<Icon class="mr-5px" icon="ep:search" />
@@ -76,7 +87,7 @@
<ContentWrap>
<el-table v-loading="loading" :data="list">
<el-table-column align="center" label="ID" prop="id" width="88" />
<el-table-column :index="getRowIndex" align="center" label="序号" type="index" width="88" />
<el-table-column align="center" label="员工姓名" min-width="120" prop="employeeName" />
<el-table-column align="center" label="性别" prop="gender" width="80" />
<el-table-column align="center" label="所属专业所" min-width="140" prop="officeName" />
@@ -95,9 +106,28 @@
prop="registrationSealNo"
show-overflow-tooltip
/>
<el-table-column align="center" label="入职时间" prop="entryDate" width="120" />
<el-table-column align="center" label="离职时间" prop="leaveDate" width="120" />
<el-table-column
align="center"
label="入职时间"
prop="entryDate"
width="120"
:formatter="dateFormatter2"
/>
<el-table-column
align="center"
label="离职时间"
prop="leaveDate"
width="120"
:formatter="dateFormatter2"
/>
<el-table-column align="center" label="状态" prop="employeeStatus" width="90" />
<el-table-column align="center" label="是否所长" width="100">
<template #default="scope">
<el-tag :type="scope.row.officeLeaderFlag ? 'warning' : 'info'">
{{ scope.row.officeLeaderFlag ? '是' : '否' }}
</el-tag>
</template>
</el-table-column>
<el-table-column align="center" label="是否启用" width="100">
<template #default="scope">
<el-tag :type="scope.row.enabledFlag ? 'success' : 'info'">
@@ -105,7 +135,13 @@
</el-tag>
</template>
</el-table-column>
<el-table-column align="center" label="创建时间" prop="createTime" width="180" />
<el-table-column
align="center"
label="创建时间"
prop="createTime"
width="180"
:formatter="dateFormatter"
/>
<el-table-column align="center" fixed="right" label="操作" width="160">
<template #default="scope">
<el-button
@@ -262,6 +298,11 @@
<el-switch v-model="formData.enabledFlag" active-text="启用" inactive-text="停用" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否所长" prop="officeLeaderFlag">
<el-switch v-model="formData.officeLeaderFlag" active-text="是" inactive-text="否" />
</el-form-item>
</el-col>
</el-row>
<el-form-item label="备注" prop="remark">
<el-input
@@ -286,6 +327,7 @@
import type { FormRules } from 'element-plus'
import * as EmployeeApi from '@/api/tjt/employee'
import * as OfficeApi from '@/api/tjt/office'
import { dateFormatter, dateFormatter2, formatDate } from '@/utils/formatTime'
defineOptions({ name: 'TjtEmployee' })
@@ -327,9 +369,13 @@ const queryParams = reactive<EmployeeApi.EmployeePageReqVO>({
employeeName: undefined,
officeId: undefined,
employeeStatus: undefined,
enabledFlag: undefined
enabledFlag: undefined,
officeLeaderFlag: undefined
})
const getRowIndex = (index: number) =>
(queryParams.pageNo - 1) * queryParams.pageSize + index + 1
const createFormData = (): EmployeeApi.EmployeeVO => ({
employeeName: '',
gender: '男',
@@ -341,12 +387,17 @@ const createFormData = (): EmployeeApi.EmployeeVO => ({
leaveDate: undefined,
employeeStatus: '在职',
remark: '',
officeLeaderFlag: false,
sortNo: 0,
enabledFlag: true
})
const formData = ref<EmployeeApi.EmployeeVO>(createFormData())
const normalizeDateValue = (value?: string | number) => {
return value ? formatDate(value as any, 'YYYY-MM-DD') : undefined
}
const formRules = reactive<FormRules>({
employeeName: [{ required: true, message: '员工姓名不能为空', trigger: 'blur' }],
gender: [{ required: true, message: '性别不能为空', trigger: 'change' }],
@@ -408,7 +459,12 @@ const openDialog = async (type: 'create' | 'update', id?: number) => {
}
formLoading.value = true
try {
formData.value = await EmployeeApi.getEmployee(id)
const data = await EmployeeApi.getEmployee(id)
formData.value = {
...data,
entryDate: normalizeDateValue(data.entryDate as any),
leaveDate: normalizeDateValue(data.leaveDate as any)
}
await ensureCurrentOfficeOption()
} finally {
formLoading.value = false