|
|
@@ -2,18 +2,11 @@
|
|
|
<div class="app-container">
|
|
|
<el-table v-loading="loading" :data="dataList" >
|
|
|
<el-table-column label="员工ID" align="center" prop="id" />
|
|
|
- <el-table-column label="姓名" align="center" :show-overflow-tooltip="true">
|
|
|
- <template v-slot="scope">
|
|
|
- <router-link :to="'/employee/historyData/' + scope.row.id" class="link-type">
|
|
|
- <span>{{ scope.row.name }}</span>
|
|
|
- </router-link>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
+ <el-table-column label="姓名" align="center" prop="name" />
|
|
|
<el-table-column label="部门" align="center" prop="deptName" />
|
|
|
<el-table-column label="职位" align="center" prop="position" />
|
|
|
<el-table-column label="员工编号" align="center" prop="employeeNumber" />
|
|
|
<el-table-column label="入职时间" align="center" prop="entryDate" />
|
|
|
-
|
|
|
<el-table-column label="员工状态" align="center" prop="employeeStatus">
|
|
|
<template v-slot="scope">
|
|
|
<dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="scope.row.employeeStatus"/>
|
|
|
@@ -22,8 +15,8 @@
|
|
|
<el-table-column label="当前可用年假" align="center" prop="remainingAnnualLeave"/>
|
|
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
|
|
<template v-slot="scope">
|
|
|
- <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
|
|
|
- v-hasPermi="['system:dict:update']">修改</el-button>
|
|
|
+ <el-button size="mini" type="text" icon="el-icon-detail" @click="handleDetail(scope.row)"
|
|
|
+ v-hasPermi="['system:dict:detail']">详情</el-button>
|
|
|
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
|
|
|
v-hasPermi="['system:dict:delete']">删除</el-button>
|
|
|
</template>
|
|
|
@@ -32,53 +25,191 @@
|
|
|
|
|
|
<pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
|
|
|
@pagination="getList"/>
|
|
|
+ <!-- 详情对话框 -->
|
|
|
+ <el-dialog :title="title" :visible.sync="openDetail" width="800px" append-to-body>
|
|
|
+ <div class="widget-wrapper">
|
|
|
+ <div class="widget-list" v-loading="loading">
|
|
|
+ <div class="fx-field x-grid-col-12">
|
|
|
+ <div class="field-label">
|
|
|
+ <div class="field-name">员工姓名</div>
|
|
|
+ </div>
|
|
|
+ <div class="field-component">
|
|
|
+ <span :title="form.name">{{ form.name }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="fx-field x-grid-col-12">
|
|
|
+ <div class="field-label">
|
|
|
+ <div class="field-name">员工ID</div>
|
|
|
+ </div>
|
|
|
+ <div class="field-component">
|
|
|
+ <span :title="form.id">{{ form.id }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="fx-field x-grid-col-12">
|
|
|
+ <div class="field-label">
|
|
|
+ <div class="field-name">员工部门</div>
|
|
|
+ </div>
|
|
|
+ <div class="field-component">
|
|
|
+ <span>{{ form.deptName }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="fx-field x-grid-col-12">
|
|
|
+ <div class="field-label">
|
|
|
+ <div class="field-name">员工职位</div>
|
|
|
+ </div>
|
|
|
+ <div class="field-component">
|
|
|
+ <span>{{ form.position }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="fx-field x-grid-col-12">
|
|
|
+ <div class="field-label">
|
|
|
+ <div class="field-name">员工编号</div>
|
|
|
+ </div>
|
|
|
+ <div class="field-component">
|
|
|
+ <span>{{ form.employeeNumber }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="fx-field x-grid-col-12">
|
|
|
+ <div class="field-label">
|
|
|
+ <div class="field-name">入职时间</div>
|
|
|
+ </div>
|
|
|
+ <div class="field-component">
|
|
|
+ <span>{{ form.entryDate }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="fx-field x-grid-col-12">
|
|
|
+ <div class="field-label">
|
|
|
+ <div class="field-name">试用期期</div>
|
|
|
+ </div>
|
|
|
+ <div class="field-component">
|
|
|
+ <span>{{ form.probationEndDate }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="fx-field x-grid-col-12">
|
|
|
+ <div class="field-label">
|
|
|
+ <div class="field-name">员工状态</div>
|
|
|
+ </div>
|
|
|
+ <div class="field-component">
|
|
|
+ <span>{{ form.employeeStatus }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="fx-field x-grid-col-12">
|
|
|
+ <div class="field-label">
|
|
|
+ <div class="field-name">电子邮箱</div>
|
|
|
+ </div>
|
|
|
+ <div class="field-component">
|
|
|
+ <span>{{ form.email }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="fx-field x-grid-col-12">
|
|
|
+ <div class="field-label">
|
|
|
+ <div class="field-name">身份证号</div>
|
|
|
+ </div>
|
|
|
+ <div class="field-component">
|
|
|
+ <span>{{ form.idCardNumber }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="fx-field x-grid-col-12">
|
|
|
+ <div class="field-label">
|
|
|
+ <div class="field-name">性别</div>
|
|
|
+ </div>
|
|
|
+ <div class="field-component">
|
|
|
+ <span>{{ form.gender }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="fx-field x-grid-col-12">
|
|
|
+ <div class="field-label">
|
|
|
+ <div class="field-name">最高学历</div>
|
|
|
+ </div>
|
|
|
+ <div class="field-component">
|
|
|
+ <span>{{ form.educationLevel }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="fx-field x-grid-col-12">
|
|
|
+ <div class="field-label">
|
|
|
+ <div class="field-name">手机号</div>
|
|
|
+ </div>
|
|
|
+ <div class="field-component">
|
|
|
+ <span>{{ form.phone }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="fx-field x-grid-col-12">
|
|
|
+ <div class="field-label">
|
|
|
+ <div class="field-name">毕业院校</div>
|
|
|
+ </div>
|
|
|
+ <div class="field-component">
|
|
|
+ <span>{{ form.graduationSchool }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="fx-field x-grid-col-12">
|
|
|
+ <div class="field-label">
|
|
|
+ <div class="field-name">毕业时间</div>
|
|
|
+ </div>
|
|
|
+ <div class="field-component">
|
|
|
+ <span >{{ form.graduationDate }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
|
|
|
- <!-- 添加或修改参数配置对话框 -->
|
|
|
- <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
|
|
- <el-form ref="form" :model="form" :rules="rules" label-width="90px">
|
|
|
- <el-form-item label="字典类型">
|
|
|
- <el-input v-model="form.dictType" :disabled="true" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="数据标签" prop="label">
|
|
|
- <el-input v-model="form.label" placeholder="请输入数据标签" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="数据键值" prop="value">
|
|
|
- <el-input v-model="form.value" placeholder="请输入数据键值" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="显示排序" prop="sort">
|
|
|
- <el-input-number v-model="form.sort" controls-position="right" :min="0" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="状态" prop="status">
|
|
|
- <el-radio-group v-model="form.status">
|
|
|
- <el-radio v-for="dict in statusDictDatas" :key="parseInt(dict.value)" :label="parseInt(dict.value)">{{dict.label}}</el-radio>
|
|
|
- </el-radio-group>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="颜色类型" prop="colorType">
|
|
|
- <el-select v-model="form.colorType">
|
|
|
- <el-option v-for="item in colorTypeOptions" :key="item.value" :label="item.label + '(' + item.value + ')'" :value="item.value" />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="CSS Class" prop="cssClass">
|
|
|
- <el-input v-model="form.cssClass" placeholder="请输入 CSS Class" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="备注" prop="remark">
|
|
|
- <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- <div slot="footer" class="dialog-footer">
|
|
|
- <el-button type="primary" @click="submitForm">确 定</el-button>
|
|
|
- <el-button @click="cancel">取 消</el-button>
|
|
|
+ <div class="fx-field x-grid-col-12">
|
|
|
+ <div class="field-label">
|
|
|
+ <div class="field-name">银行卡号</div>
|
|
|
+ </div>
|
|
|
+ <div class="field-component">
|
|
|
+ <span>{{ form.bankCardNumber }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="fx-field x-grid-col-12">
|
|
|
+ <div class="field-label">
|
|
|
+ <div class="field-name">银行卡</div>
|
|
|
+ </div>
|
|
|
+ <div class="field-component">
|
|
|
+ <span>{{ form.bankCardName }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="fx-field x-grid-col-12">
|
|
|
+ <div class="field-label">
|
|
|
+ <div class="field-name">年假基数</div>
|
|
|
+ </div>
|
|
|
+ <div class="field-component">
|
|
|
+ <span>{{ form.baseAnnualLeave }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="fx-field x-grid-col-12">
|
|
|
+ <div class="field-label">
|
|
|
+ <div class="field-name">剩余年假</div>
|
|
|
+ </div>
|
|
|
+ <div class="field-component">
|
|
|
+ <span>{{ form.remainingAnnualLeave }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="fx-field x-grid-col-12">
|
|
|
+ <div class="field-label">
|
|
|
+ <div class="field-name">离职时间</div>
|
|
|
+ </div>
|
|
|
+ <div class="field-component">
|
|
|
+ <span>{{ form.departureDate }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="fx-field x-grid-col-12">
|
|
|
+ <div class="field-label">
|
|
|
+ <div class="field-name">离职原因</div>
|
|
|
+ </div>
|
|
|
+ <div class="field-component">
|
|
|
+ <span>{{ form.resignationReason }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
-
|
|
|
<script>
|
|
|
-import { listData, getData, delData, addData, updateData, exportData } from "@/api/system/dict/data";
|
|
|
-import { listAllSimple, getType } from "@/api/system/dict/type";
|
|
|
-
|
|
|
-import { CommonStatusEnum } from '@/utils/constants'
|
|
|
-import { getDictDatas, DICT_TYPE } from '@/utils/dict'
|
|
|
+import { listHistoryData, getHistoryData, delHistoryData, exportHistoryData } from "@/api/personnel/employee/data";
|
|
|
+import { DICT_TYPE } from '@/utils/dict'
|
|
|
|
|
|
export default {
|
|
|
name: "SystemDictData",
|
|
|
@@ -88,68 +219,16 @@ export default {
|
|
|
loading: true,
|
|
|
// 导出遮罩层
|
|
|
exportLoading: false,
|
|
|
- // 显示搜索条件
|
|
|
- showSearch: true,
|
|
|
// 总条数
|
|
|
total: 0,
|
|
|
// 字典表格数据
|
|
|
dataList: [],
|
|
|
- // 默认字典类型
|
|
|
- defaultDictType: "",
|
|
|
// 弹出层标题
|
|
|
title: "",
|
|
|
// 是否显示弹出层
|
|
|
- open: false,
|
|
|
- // 类型数据字典
|
|
|
- typeOptions: [],
|
|
|
- // 查询参数
|
|
|
- queryParams: {
|
|
|
- pageNo: 1,
|
|
|
- pageSize: 10,
|
|
|
- dictName: undefined,
|
|
|
- dictType: undefined,
|
|
|
- status: undefined
|
|
|
- },
|
|
|
+ openDetail: false,
|
|
|
// 表单参数
|
|
|
form: {},
|
|
|
- // 表单校验
|
|
|
- rules: {
|
|
|
- label: [
|
|
|
- { required: true, message: "数据标签不能为空", trigger: "blur" }
|
|
|
- ],
|
|
|
- value: [
|
|
|
- { required: true, message: "数据键值不能为空", trigger: "blur" }
|
|
|
- ],
|
|
|
- sort: [
|
|
|
- { required: true, message: "数据顺序不能为空", trigger: "blur" }
|
|
|
- ]
|
|
|
- },
|
|
|
- // 数据标签回显样式
|
|
|
- colorTypeOptions: [{
|
|
|
- value: "default",
|
|
|
- label: "默认"
|
|
|
- }, {
|
|
|
- value: "primary",
|
|
|
- label: "主要"
|
|
|
- }, {
|
|
|
- value: "success",
|
|
|
- label: "成功"
|
|
|
- }, {
|
|
|
- value: "info",
|
|
|
- label: "信息"
|
|
|
- }, {
|
|
|
- value: "warning",
|
|
|
- label: "警告"
|
|
|
- }, {
|
|
|
- value: "danger",
|
|
|
- label: "危险"
|
|
|
- }
|
|
|
- ],
|
|
|
-
|
|
|
- // 枚举
|
|
|
- CommonStatusEnum: CommonStatusEnum,
|
|
|
- // 数据字典
|
|
|
- statusDictDatas: getDictDatas(DICT_TYPE.COMMON_STATUS)
|
|
|
};
|
|
|
},
|
|
|
created() {
|
|
|
@@ -158,101 +237,29 @@ export default {
|
|
|
this.getTypeList();
|
|
|
},
|
|
|
methods: {
|
|
|
- /** 查询字典类型详细 */
|
|
|
- getType(dictId) {
|
|
|
- getType(dictId).then(response => {
|
|
|
- this.queryParams.dictType = response.data.type;
|
|
|
- this.defaultDictType = response.data.type;
|
|
|
- this.getList();
|
|
|
- });
|
|
|
- },
|
|
|
- /** 查询字典类型列表 */
|
|
|
- getTypeList() {
|
|
|
- listAllSimple().then(response => {
|
|
|
- this.typeOptions = response.data;
|
|
|
- });
|
|
|
- },
|
|
|
/** 查询字典数据列表 */
|
|
|
getList() {
|
|
|
this.loading = true;
|
|
|
- listData(this.queryParams).then(response => {
|
|
|
+ listHistoryData(this.queryParams).then(response => {
|
|
|
this.dataList = response.data.list;
|
|
|
this.total = response.data.total;
|
|
|
this.loading = false;
|
|
|
});
|
|
|
},
|
|
|
- // 取消按钮
|
|
|
- cancel() {
|
|
|
- this.open = false;
|
|
|
- this.reset();
|
|
|
- },
|
|
|
- // 表单重置
|
|
|
- reset() {
|
|
|
- this.form = {
|
|
|
- id: undefined,
|
|
|
- label: undefined,
|
|
|
- value: undefined,
|
|
|
- sort: 0,
|
|
|
- status: CommonStatusEnum.ENABLE,
|
|
|
- colorType: 'default',
|
|
|
- cssClass: undefined,
|
|
|
- remark: undefined
|
|
|
- };
|
|
|
- this.resetForm("form");
|
|
|
- },
|
|
|
- /** 搜索按钮操作 */
|
|
|
- handleQuery() {
|
|
|
- this.queryParams.pageNo = 1;
|
|
|
- this.getList();
|
|
|
- },
|
|
|
- /** 重置按钮操作 */
|
|
|
- resetQuery() {
|
|
|
- this.resetForm("queryForm");
|
|
|
- this.queryParams.dictType = this.defaultDictType;
|
|
|
- this.handleQuery();
|
|
|
- },
|
|
|
- /** 新增按钮操作 */
|
|
|
- handleAdd() {
|
|
|
- this.reset();
|
|
|
- this.open = true;
|
|
|
- this.title = "添加字典数据";
|
|
|
- this.form.dictType = this.queryParams.dictType;
|
|
|
- },
|
|
|
- /** 修改按钮操作 */
|
|
|
- handleUpdate(row) {
|
|
|
- this.reset();
|
|
|
- const id = row.id || this.ids
|
|
|
- getData(id).then(response => {
|
|
|
+ /** 详情按钮操作 */
|
|
|
+ handleDetail(row) {
|
|
|
+ const id = row.id;
|
|
|
+ getHistoryData(id).then(response => {
|
|
|
this.form = response.data;
|
|
|
- this.open = true;
|
|
|
- this.title = "修改字典数据";
|
|
|
- });
|
|
|
- },
|
|
|
- /** 提交按钮 */
|
|
|
- submitForm: function() {
|
|
|
- this.$refs["form"].validate(valid => {
|
|
|
- if (valid) {
|
|
|
- if (this.form.id !== undefined) {
|
|
|
- updateData(this.form).then(response => {
|
|
|
- this.$modal.msgSuccess("修改成功");
|
|
|
- this.open = false;
|
|
|
- this.getList();
|
|
|
- });
|
|
|
- } else {
|
|
|
- addData(this.form).then(response => {
|
|
|
- this.$modal.msgSuccess("新增成功");
|
|
|
- this.open = false;
|
|
|
- this.getList();
|
|
|
- });
|
|
|
- }
|
|
|
- }
|
|
|
+ this.openDetail = true;
|
|
|
+ this.title = "详情";
|
|
|
});
|
|
|
},
|
|
|
/** 删除按钮操作 */
|
|
|
handleDelete(row) {
|
|
|
const ids = row.id;
|
|
|
this.$modal.confirm('是否确认删除字典编码为"' + ids + '"的数据项?').then(function() {
|
|
|
- return delData(ids);
|
|
|
+ return delHistoryData(ids);
|
|
|
}).then(() => {
|
|
|
this.getList();
|
|
|
this.$modal.msgSuccess("删除成功");
|
|
|
@@ -263,7 +270,7 @@ export default {
|
|
|
const queryParams = this.queryParams;
|
|
|
this.$modal.confirm('是否确认导出所有数据项?').then(() => {
|
|
|
this.exportLoading = true;
|
|
|
- return exportData(queryParams);
|
|
|
+ return exportHistoryData(queryParams);
|
|
|
}).then(response => {
|
|
|
this.$download.excel(response, '字典数据.xls');
|
|
|
this.exportLoading = false;
|