Commit c72189b5 authored by 姬鋆屾's avatar 姬鋆屾

feat:黑名单,员工关怀及离职信息

parent d41a0355
<template>
<!-- 弹出框表单 -->
<el-drawer
:title="title"
:visible.sync="open"
:direction="direction"
size="50%">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="员工姓名" prop="staffName" v-model="form.staffName" placeholder="请输入员工姓名"/>
<Field label="联系电话" prop="phoneNumber" v-model="form.phoneNumber" placeholder="请输入联系电话"/>
<Field label="身份证号码" prop="idCard" v-model="form.idCard" placeholder="请输入身份证号码"/>
<Field label="离职时间" prop="leaveDate" v-model="form.leaveDate" type="date" />
<Field label="离职原因" prop="leaveReason" v-model="form.leaveReason" type="textarea" placeholder="请输入离职原因"/>
<Field label="拉黑时间" prop="blackDate" v-model="form.blackDate" type="date" />
<Field label="拉黑原因" prop="blackReason" v-model="form.blackReason" type="textarea" placeholder="请输入拉黑原因"/>
<!-- 弹出框表单 -->
<el-drawer
:title="title"
:visible.sync="open"
:direction="direction"
size="50%"
>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field
label="员工姓名"
prop="staffName"
v-model="form.staffName"
placeholder="请输入员工姓名"
/>
<Field
label="联系电话"
prop="phoneNumber"
v-model="form.phoneNumber"
placeholder="请输入联系电话"
/>
<Field
label="身份证号码"
prop="idCard"
v-model="form.idCard"
placeholder="请输入身份证号码"
/>
<Field
label="离职时间"
prop="leaveDate"
v-model="form.leaveDate"
type="date"
/>
<Field
label="离职原因"
prop="leaveReason"
v-model="form.leaveReason"
type="textarea"
placeholder="请输入离职原因"
/>
<Field
label="拉黑时间"
prop="blackDate"
v-model="form.blackDate"
type="date"
/>
<Field
label="拉黑原因"
prop="blackReason"
v-model="form.blackReason"
type="textarea"
placeholder="请输入拉黑原因"
/>
</el-row>
</el-row>
<form-buttons @submit='submitForm' noCancelBtn />
</el-form>
</el-drawer>
<form-buttons @submit="submitForm" noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "StaffBlackDetail",
mixins: [form],
components: {
},
created() {
this.changePath("staff/black")
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "员工黑名单信息",
// 是否显示弹出层
open: false,
direction:"rtl",
toString:[
],
toDate:[
"leaveDate",
"blackDate",
],
// 表单校验
rules: {
staffName: [
{required: true,message: "请输入员工姓名", trigger: "blur" },
{max: 64,message: "最多只能录入64个字符",trigger: "blur",},
],
createTime: [
{required: true,message: "请选择创建时间" },
],
}
};
},
import form from "@/assets/mixins/formdialog";
export default {
name: "StaffBlackDetail",
mixins: [form],
components: {},
created() {
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "员工黑名单信息",
// 是否显示弹出层
open: false,
direction: "rtl",
toString: [],
toDate: ["leaveDate", "blackDate"],
// 表单校验
rules: {
staffName: [
{ required: true, message: "请输入员工姓名", trigger: "blur" },
{ max: 64, message: "最多只能录入64个字符", trigger: "blur" },
],
createTime: [{ required: true, message: "请选择创建时间" }],
},
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="staff/black/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改员工黑名单信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "staff/black/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增员工黑名单信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="staff/black/view";
this.getData();
this.pageInfo.type="view"
this.title = "员工黑名单信息详细";
},
/**取消按钮 */
cancel() {
this.open = false;
},
/**获取数据后弹框 */
afterRender(data) {
this.open = true;
},
methods: {
/** 编辑 */
edit(row) {
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "staff/black/edit";
this.getData();
this.pageInfo.type = "edit";
this.title = "修改员工黑名单信息";
},
/** 新增 */
add(row) {
this.reset();
this.urls.currUrl = "staff/black/add";
this.getData();
this.pageInfo.type = "add";
this.title = "新增员工黑名单信息";
},
/** 查看*/
view(row) {
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "staff/black/view";
this.getData();
this.pageInfo.type = "view";
this.title = "员工黑名单信息详细";
},
/**取消按钮 */
cancel() {
this.open = false;
},
/**获取数据后弹框 */
afterRender(data) {
this.open = true;
},
afterSubmit(data) {
this.open = false;
this.$emit("ok");
},
afterSubmit(data) {
this.open = false;
this.$emit("ok");
},
// 表单重置
reset() {
this.form = {
staffId : null,
staffName : "",
phoneNumber : "",
idCard : "",
leaveDate : null,
leaveReason : "",
blackDate : null,
blackReason : "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
// 表单重置
reset() {
this.form = {
staffId: null,
staffName: "",
phoneNumber: "",
idCard: "",
leaveDate: null,
leaveReason: "",
blackDate: null,
blackReason: "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig"></LayoutTable>
<drawer-show ref="drawerform" @ok="getData" />
</div>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig"></LayoutTable>
<drawer-show ref="drawerform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "StaffBlackList",
components: {
drawerShow
},
mixins: [table],
created() {
},
methods: {
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "StaffBlackList",
components: {
drawerShow,
},
mixins: [table],
created() {},
methods: {
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
},
data() {
return {
config: {
search: [
{
name: "staffName",
type: "text",
label: "员工姓名",
fuzzy: true,
},
],
isshowTabPane: true,
columns: [
{ type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 },
},
data() {
return {
config: {
isshowTabPane:true,
showType:[],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{ label: "员工姓名", prop: "staffName" },
{label: "员工姓名", prop: "staffName"},
{
label: "离职时间",
prop: "leaveDate",
formatter: this.formatterDateOnly,
},
{label: "离职时间", prop: "leaveDate", formatter: this.formatterDate},
{
label: "拉黑时间",
prop: "blackDate",
formatter: this.formatterDateOnly,
},
{label: "拉黑时间", prop: "blackDate", formatter: this.formatterDate},
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{
label: "操作",
width: 240,
formatter: row => {
return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
);
}
}
]
}
};
}
{
label: "创建用户",
prop: "createUserId",
formatter: this.formatter,
},
{
label: "操作",
width: 240,
formatter: (row) => {
return (
<table-buttons
noAdd
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
);
},
},
],
},
};
},
};
</script>
\ No newline at end of file
......@@ -2,40 +2,42 @@
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
<el-button
slot="table-head-left2"
style="margin-left: 10px"
icon="el-icon-tickets"
size="mini"
@click="handleImport"
>导入</el-button>
slot="table-head-left2"
style="margin-left: 10px"
icon="el-icon-tickets"
size="mini"
@click="handleImport"
>导入</el-button
>
<el-button
slot="table-head-left2"
style="margin-left: 10px"
icon="el-icon-tickets"
size="mini"
@click="doExport"
:disabled="isExport"
>导出</el-button>
slot="table-head-left2"
style="margin-left: 10px"
icon="el-icon-tickets"
size="mini"
@click="doExport"
:disabled="isExport"
>导出</el-button
>
</LayoutTable>
<!-- 员工关怀信息导入对话框 -->
<el-dialog
:title="upload.title"
:visible.sync="upload.open"
width="400px"
append-to-body
:title="upload.title"
:visible.sync="upload.open"
width="400px"
append-to-body
>
<el-upload
ref="upload"
:limit="1"
accept=".xlsx, .xls"
:headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport"
:disabled="upload.isUploading"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
:auto-upload="false"
drag
ref="upload"
:limit="1"
accept=".xlsx, .xls"
:headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport"
:disabled="upload.isUploading"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
:auto-upload="false"
drag
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
......@@ -43,11 +45,12 @@
<em>点击上传</em>
</div>
<div class="el-upload__tip" slot="tip">
<el-checkbox
v-model="upload.updateSupport"
/>是否更新已经存在的数据
<el-link type="primary" style="font-size: 14px" @click="downloadTemplate"
>下载模板</el-link
<el-checkbox v-model="upload.updateSupport" />是否更新已经存在的数据
<el-link
type="primary"
style="font-size: 14px"
@click="downloadTemplate"
>下载模板</el-link
>
</div>
<div class="el-upload__tip" style="color: red" slot="tip">
......@@ -71,12 +74,11 @@ import table from "@/assets/mixins/table";
export default {
name: "StaffCareList",
components: {
drawerShow
drawerShow,
},
mixins: [table],
created() {
},
data() {
created() {},
data() {
return {
// 用户导入参数
upload: {
......@@ -93,39 +95,53 @@ export default {
},
isExport: false,
config: {
isshowTabPane:true,
isshowTabPane: true,
search: [
{
name: "staffName",
type: "text",
label: "员工姓名",
fuzzy: true
fuzzy: true,
},
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "员工姓名", prop: "staffName"},
{ type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 },
{ label: "员工姓名", prop: "staffName" },
{label: "入职时间", prop: "entryDate", formatter: this.formatterDate},
{
label: "入职时间",
prop: "entryDate",
formatter: this.formatterDateOnly,
},
{label: "关怀类型", prop: "careType",formatter: this.formatter},
{ label: "关怀类型", prop: "careType", formatter: this.formatter },
{label: "发送状态", prop: "sendStatus",formatter: this.formatter},
{ label: "发送状态", prop: "sendStatus", formatter: this.formatter },
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{
label: "创建用户",
prop: "createUserId",
formatter: this.formatter,
},
{
label: "操作",
width: 240,
formatter: row => {
formatter: (row) => {
return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
<table-buttons
noAdd
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
);
}
}
]
}
}
},
},
],
},
};
},
methods: {
/** 导入 */
......@@ -137,11 +153,11 @@ export default {
downloadTemplate() {
this.isExport = true;
this.$download("/staff/care/downloadTemplate", {}, { type: "excel" })
.then(() => (this.isExport = false))
.catch((error) => {
this.isExport = false;
this.$message.error(error.message);
});
.then(() => (this.isExport = false))
.catch((error) => {
this.isExport = false;
this.$message.error(error.message);
});
},
/** 文件上传中处理 */
handleFileUploadProgress(event, file, fileList) {
......@@ -162,21 +178,27 @@ export default {
/** 导出Excel */
doExport() {
this.isExport = true;
let params = {}
for(let value of this.config.search){
if(this.query[value.name]){
params[value.name] = this.query[value.name]
}
let params = {};
for (let value of this.config.search) {
if (this.query[value.name]) {
params[value.name] = this.query[value.name];
}
}
if(this.selection.length>0){
params['idList'] = this.selection
if (this.selection.length > 0) {
params["idList"] = this.selection;
}
this.$download("/staff/care/exportExcel", {
...params
}, { type: "excel" }).then(() => this.isExport = false).catch(error => {
this.isExport = false;
this.$message.error(error.message);
})
this.$download(
"/staff/care/exportExcel",
{
...params,
},
{ type: "excel" }
)
.then(() => (this.isExport = false))
.catch((error) => {
this.isExport = false;
this.$message.error(error.message);
});
},
/** 重写新增方法 */
toAdd(row) {
......@@ -190,6 +212,6 @@ export default {
toView(row) {
this.$refs.drawerform.view(row);
},
}
}
},
};
</script>
\ No newline at end of file
......@@ -84,13 +84,13 @@ export default {
{
label: "入职时间",
prop: "entryDate",
formatter: this.formatterDate,
formatter: this.formatterDateOnly,
},
{
label: "离职时间",
prop: "leaveDate",
formatter: this.formatterDate,
formatter: this.formatterDateOnly,
},
{ label: "审核状态", prop: "auditStatus", formatter: this.formatter },
......
This diff is collapsed.
......@@ -71,7 +71,6 @@ export default {
"linkType",
"commMenu",
"menuType",
"authType",
],
// 表单校验
rules: {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment