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

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

parent d41a0355
...@@ -4,35 +4,68 @@ ...@@ -4,35 +4,68 @@
:title="title" :title="title"
:visible.sync="open" :visible.sync="open"
:direction="direction" :direction="direction"
size="50%"> size="50%"
>
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row> <el-row>
<Field label="员工姓名" prop="staffName" v-model="form.staffName" placeholder="请输入员工姓名"/> <Field
<Field label="联系电话" prop="phoneNumber" v-model="form.phoneNumber" placeholder="请输入联系电话"/> label="员工姓名"
<Field label="身份证号码" prop="idCard" v-model="form.idCard" placeholder="请输入身份证号码"/> prop="staffName"
<Field label="离职时间" prop="leaveDate" v-model="form.leaveDate" type="date" /> v-model="form.staffName"
<Field label="离职原因" prop="leaveReason" v-model="form.leaveReason" type="textarea" placeholder="请输入离职原因"/> placeholder="请输入员工姓名"
<Field label="拉黑时间" prop="blackDate" v-model="form.blackDate" type="date" /> />
<Field label="拉黑原因" prop="blackReason" v-model="form.blackReason" type="textarea" 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 /> <form-buttons @submit="submitForm" noCancelBtn />
</el-form> </el-form>
</el-drawer> </el-drawer>
</template> </template>
<script> <script>
import form from "@/assets/mixins/formdialog"; import form from "@/assets/mixins/formdialog";
export default { export default {
name: "StaffBlackDetail", name: "StaffBlackDetail",
mixins: [form], mixins: [form],
components: { components: {},
},
created() { created() {
this.changePath("staff/black")
}, },
data() { data() {
return { return {
...@@ -42,51 +75,45 @@ ...@@ -42,51 +75,45 @@
title: "员工黑名单信息", title: "员工黑名单信息",
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
direction:"rtl", direction: "rtl",
toString:[ toString: [],
], toDate: ["leaveDate", "blackDate"],
toDate:[
"leaveDate",
"blackDate",
],
// 表单校验 // 表单校验
rules: { rules: {
staffName: [ staffName: [
{required: true,message: "请输入员工姓名", trigger: "blur" }, { required: true, message: "请输入员工姓名", trigger: "blur" },
{max: 64,message: "最多只能录入64个字符",trigger: "blur",}, { max: 64, message: "最多只能录入64个字符", trigger: "blur" },
],
createTime: [
{required: true,message: "请选择创建时间" },
], ],
} createTime: [{ required: true, message: "请选择创建时间" }],
},
}; };
}, },
methods: { methods: {
/** 编辑 */ /** 编辑 */
edit(row) { edit(row) {
this.reset() this.reset();
this.query = { id: row.id }; this.query = { id: row.id };
this.urls.currUrl ="staff/black/edit"; this.urls.currUrl = "staff/black/edit";
this.getData(); this.getData();
this.pageInfo.type="edit" this.pageInfo.type = "edit";
this.title = "修改员工黑名单信息"; this.title = "修改员工黑名单信息";
}, },
/** 新增 */ /** 新增 */
add(row) { add(row) {
this.reset() this.reset();
this.urls.currUrl = "staff/black/add"; this.urls.currUrl = "staff/black/add";
this.getData(); this.getData();
this.pageInfo.type="add" this.pageInfo.type = "add";
this.title = "新增员工黑名单信息"; this.title = "新增员工黑名单信息";
}, },
/** 查看*/ /** 查看*/
view(row) { view(row) {
this.reset() this.reset();
this.query = { id: row.id }; this.query = { id: row.id };
this.urls.currUrl ="staff/black/view"; this.urls.currUrl = "staff/black/view";
this.getData(); this.getData();
this.pageInfo.type="view" this.pageInfo.type = "view";
this.title = "员工黑名单信息详细"; this.title = "员工黑名单信息详细";
}, },
/**取消按钮 */ /**取消按钮 */
...@@ -106,14 +133,14 @@ ...@@ -106,14 +133,14 @@
// 表单重置 // 表单重置
reset() { reset() {
this.form = { this.form = {
staffId : null, staffId: null,
staffName : "", staffName: "",
phoneNumber : "", phoneNumber: "",
idCard : "", idCard: "",
leaveDate : null, leaveDate: null,
leaveReason : "", leaveReason: "",
blackDate : null, blackDate: null,
blackReason : "", blackReason: "",
}; };
this.resetForm("form"); this.resetForm("form");
}, },
...@@ -123,5 +150,5 @@ ...@@ -123,5 +150,5 @@
} }
}, },
}, },
}; };
</script> </script>
...@@ -6,17 +6,16 @@ ...@@ -6,17 +6,16 @@
</template> </template>
<script> <script>
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import drawerShow from "./drawershow"; import drawerShow from "./drawershow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
export default { export default {
name: "StaffBlackList", name: "StaffBlackList",
components: { components: {
drawerShow drawerShow,
}, },
mixins: [table], mixins: [table],
created() { created() {},
},
methods: { methods: {
/** 重写新增方法 */ /** 重写新增方法 */
toAdd(row) { toAdd(row) {
...@@ -30,36 +29,60 @@ ...@@ -30,36 +29,60 @@
toView(row) { toView(row) {
this.$refs.drawerform.view(row); this.$refs.drawerform.view(row);
}, },
}, },
data() { data() {
return { return {
config: { config: {
isshowTabPane:true, search: [
showType:[], {
name: "staffName",
type: "text",
label: "员工姓名",
fuzzy: true,
},
],
isshowTabPane: true,
columns: [ columns: [
{type: "selection", width: 60}, { type: "selection", width: 60 },
{type: "index",label: "序号",width: 50}, { type: "index", label: "序号", width: 50 },
{label: "员工姓名", prop: "staffName"}, { label: "员工姓名", prop: "staffName" },
{label: "离职时间", prop: "leaveDate", formatter: this.formatterDate}, {
label: "离职时间",
prop: "leaveDate",
formatter: this.formatterDateOnly,
},
{label: "拉黑时间", prop: "blackDate", formatter: this.formatterDate}, {
label: "拉黑时间",
prop: "blackDate",
formatter: this.formatterDateOnly,
},
{label: "创建用户", prop: "createUserId", formatter: this.formatter}, {
label: "创建用户",
prop: "createUserId",
formatter: this.formatter,
},
{ {
label: "操作", label: "操作",
width: 240, width: 240,
formatter: row => { formatter: (row) => {
return ( 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}
/>
); );
} },
} },
] ],
} },
};
}
}; };
},
};
</script> </script>
\ No newline at end of file
...@@ -7,7 +7,8 @@ ...@@ -7,7 +7,8 @@
icon="el-icon-tickets" icon="el-icon-tickets"
size="mini" size="mini"
@click="handleImport" @click="handleImport"
>导入</el-button> >导入</el-button
>
<el-button <el-button
slot="table-head-left2" slot="table-head-left2"
style="margin-left: 10px" style="margin-left: 10px"
...@@ -15,7 +16,8 @@ ...@@ -15,7 +16,8 @@
size="mini" size="mini"
@click="doExport" @click="doExport"
:disabled="isExport" :disabled="isExport"
>导出</el-button> >导出</el-button
>
</LayoutTable> </LayoutTable>
<!-- 员工关怀信息导入对话框 --> <!-- 员工关怀信息导入对话框 -->
...@@ -43,10 +45,11 @@ ...@@ -43,10 +45,11 @@
<em>点击上传</em> <em>点击上传</em>
</div> </div>
<div class="el-upload__tip" slot="tip"> <div class="el-upload__tip" slot="tip">
<el-checkbox <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的数据
v-model="upload.updateSupport" <el-link
/>是否更新已经存在的数据 type="primary"
<el-link type="primary" style="font-size: 14px" @click="downloadTemplate" style="font-size: 14px"
@click="downloadTemplate"
>下载模板</el-link >下载模板</el-link
> >
</div> </div>
...@@ -71,11 +74,10 @@ import table from "@/assets/mixins/table"; ...@@ -71,11 +74,10 @@ import table from "@/assets/mixins/table";
export default { export default {
name: "StaffCareList", name: "StaffCareList",
components: { components: {
drawerShow drawerShow,
}, },
mixins: [table], mixins: [table],
created() { created() {},
},
data() { data() {
return { return {
// 用户导入参数 // 用户导入参数
...@@ -93,39 +95,53 @@ export default { ...@@ -93,39 +95,53 @@ export default {
}, },
isExport: false, isExport: false,
config: { config: {
isshowTabPane:true, isshowTabPane: true,
search: [ search: [
{ {
name: "staffName", name: "staffName",
type: "text", type: "text",
label: "员工姓名", label: "员工姓名",
fuzzy: true fuzzy: true,
}, },
], ],
columns: [ columns: [
{type: "selection", width: 60}, { type: "selection", width: 60 },
{type: "index",label: "序号",width: 50}, { type: "index", label: "序号", width: 50 },
{label: "员工姓名", prop: "staffName"}, { 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: "操作", label: "操作",
width: 240, width: 240,
formatter: row => { formatter: (row) => {
return ( 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: { methods: {
/** 导入 */ /** 导入 */
...@@ -162,21 +178,27 @@ export default { ...@@ -162,21 +178,27 @@ export default {
/** 导出Excel */ /** 导出Excel */
doExport() { doExport() {
this.isExport = true; this.isExport = true;
let params = {} let params = {};
for(let value of this.config.search){ for (let value of this.config.search) {
if(this.query[value.name]){ if (this.query[value.name]) {
params[value.name] = this.query[value.name] params[value.name] = this.query[value.name];
} }
} }
if(this.selection.length>0){ if (this.selection.length > 0) {
params['idList'] = this.selection params["idList"] = this.selection;
} }
this.$download("/staff/care/exportExcel", { this.$download(
...params "/staff/care/exportExcel",
}, { type: "excel" }).then(() => this.isExport = false).catch(error => { {
...params,
},
{ type: "excel" }
)
.then(() => (this.isExport = false))
.catch((error) => {
this.isExport = false; this.isExport = false;
this.$message.error(error.message); this.$message.error(error.message);
}) });
}, },
/** 重写新增方法 */ /** 重写新增方法 */
toAdd(row) { toAdd(row) {
...@@ -190,6 +212,6 @@ export default { ...@@ -190,6 +212,6 @@ export default {
toView(row) { toView(row) {
this.$refs.drawerform.view(row); this.$refs.drawerform.view(row);
}, },
} },
} };
</script> </script>
\ No newline at end of file
...@@ -84,13 +84,13 @@ export default { ...@@ -84,13 +84,13 @@ export default {
{ {
label: "入职时间", label: "入职时间",
prop: "entryDate", prop: "entryDate",
formatter: this.formatterDate, formatter: this.formatterDateOnly,
}, },
{ {
label: "离职时间", label: "离职时间",
prop: "leaveDate", prop: "leaveDate",
formatter: this.formatterDate, formatter: this.formatterDateOnly,
}, },
{ label: "审核状态", prop: "auditStatus", formatter: this.formatter }, { label: "审核状态", prop: "auditStatus", formatter: this.formatter },
......
...@@ -4,46 +4,144 @@ ...@@ -4,46 +4,144 @@
:title="title" :title="title"
:visible.sync="open" :visible.sync="open"
:direction="direction" :direction="direction"
size="50%"> size="50%"
>
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row> <el-row>
<Field label="员工ID" prop="staffId" v-model="form.staffId" placeholder="请输入员工ID"/> <Field
<Field label="员工姓名" prop="staffName" v-model="form.staffName" placeholder="请输入员工姓名"/> label="员工ID"
<Field label="性别" prop="gender" v-model="form.gender" type="select" :enumData="dict.gender" placeholder="请选择性别"/> prop="staffId"
<Field label="出生日期" prop="birthday" v-model="form.birthday" type="date" /> v-model="form.staffId"
<Field label="照片" prop="photoPath" v-model="form.photoPath" type="textarea" placeholder="请输入照片"/> placeholder="请输入员工ID"
<Field label="联系电话" prop="phoneNumber" v-model="form.phoneNumber" placeholder="请输入联系电话"/> />
<Field label="身份证号码" prop="idCard" v-model="form.idCard" placeholder="请输入身份证号码"/> <Field
<Field label="工号" prop="workNum" v-model="form.workNum" placeholder="请输入工号"/> label="员工姓名"
<Field label="政治面貌 " prop="politicalstatus" v-model="form.politicalstatus" type="select" :enumData="dict.politicalstatus" placeholder="请选择政治面貌 "/> prop="staffName"
<Field label="所属部门" prop="deptId" v-model="form.deptId" placeholder="请输入所属部门"/> v-model="form.staffName"
<Field label="所属部门名称" prop="deptName" v-model="form.deptName" placeholder="请输入所属部门名称"/> placeholder="请输入员工姓名"
<Field label="职位ID" prop="jobId" v-model="form.jobId" placeholder="请输入职位ID"/> />
<Field label="职位名称" prop="jobName" v-model="form.jobName" placeholder="请输入职位名称"/> <Field
<Field label="员工类型" prop="staffType" v-model="form.staffType" type="select" :enumData="dict.staffType" placeholder="请选择员工类型"/> label="性别"
<Field label="员工状态" prop="status" v-model="form.status" type="select" :enumData="dict.status" placeholder="请选择员工状态"/> prop="gender"
<Field label="入职时间" prop="entryDate" v-model="form.entryDate" type="date" /> v-model="form.gender"
<Field label="计划转正时间" prop="regularDate" v-model="form.regularDate" type="date" /> type="select"
<Field label="审核状态" prop="auditStatus" v-model="form.auditStatus" type="select" :enumData="dict.auditStatus" placeholder="请选择审核状态"/> :enumData="dict.gender"
placeholder="请选择性别"
/>
<Field
label="出生日期"
prop="birthday"
v-model="form.birthday"
type="date"
/>
<Field
label="照片"
prop="photoPath"
v-model="form.photoPath"
type="textarea"
placeholder="请输入照片"
/>
<Field
label="联系电话"
prop="phoneNumber"
v-model="form.phoneNumber"
placeholder="请输入联系电话"
/>
<Field
label="身份证号码"
prop="idCard"
v-model="form.idCard"
placeholder="请输入身份证号码"
/>
<Field
label="工号"
prop="workNum"
v-model="form.workNum"
placeholder="请输入工号"
/>
<Field
label="政治面貌 "
prop="politicalstatus"
v-model="form.politicalstatus"
type="select"
:enumData="dict.politicalstatus"
placeholder="请选择政治面貌 "
/>
<Field
label="所属部门"
prop="deptId"
v-model="form.deptId"
placeholder="请输入所属部门"
/>
<Field
label="所属部门名称"
prop="deptName"
v-model="form.deptName"
placeholder="请输入所属部门名称"
/>
<Field
label="职位ID"
prop="jobId"
v-model="form.jobId"
placeholder="请输入职位ID"
/>
<Field
label="职位名称"
prop="jobName"
v-model="form.jobName"
placeholder="请输入职位名称"
/>
<Field
label="员工类型"
prop="staffType"
v-model="form.staffType"
type="select"
:enumData="dict.staffType"
placeholder="请选择员工类型"
/>
<Field
label="员工状态"
prop="status"
v-model="form.status"
type="select"
:enumData="dict.status"
placeholder="请选择员工状态"
/>
<Field
label="入职时间"
prop="entryDate"
v-model="form.entryDate"
type="date"
/>
<Field
label="计划转正时间"
prop="regularDate"
v-model="form.regularDate"
type="date"
/>
<Field
label="审核状态"
prop="auditStatus"
v-model="form.auditStatus"
type="select"
:enumData="dict.auditStatus"
placeholder="请选择审核状态"
/>
</el-row> </el-row>
<form-buttons @submit='submitForm' noCancelBtn /> <form-buttons @submit="submitForm" noCancelBtn />
</el-form> </el-form>
</el-drawer> </el-drawer>
</template> </template>
<script> <script>
import form from "@/assets/mixins/formdialog"; import form from "@/assets/mixins/formdialog";
export default { export default {
name: "StaffRegularDetail", name: "StaffRegularDetail",
mixins: [form], mixins: [form],
components: { components: {},
},
created() { created() {
this.changePath("staff/regular") this.changePath("staff/regular");
}, },
data() { data() {
return { return {
...@@ -53,57 +151,51 @@ ...@@ -53,57 +151,51 @@
title: "员工转正信息", title: "员工转正信息",
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
direction:"rtl", direction: "rtl",
toString:[ toString: [
"gender", "gender",
"politicalstatus", "politicalstatus",
"staffType", "staffType",
"status", "status",
"auditStatus", "auditStatus",
], ],
toDate:[ toDate: ["birthday", "entryDate", "regularDate"],
"birthday",
"entryDate",
"regularDate",
],
// 表单校验 // 表单校验
rules: { rules: {
staffName: [ staffName: [
{required: true,message: "请输入员工姓名", trigger: "blur" }, { required: true, message: "请输入员工姓名", trigger: "blur" },
{max: 64,message: "最多只能录入64个字符",trigger: "blur",}, { max: 64, message: "最多只能录入64个字符", trigger: "blur" },
], ],
createTime: [ createTime: [{ required: true, message: "请选择创建时间" }],
{required: true,message: "请选择创建时间" }, },
],
}
}; };
}, },
methods: { methods: {
/** 编辑 */ /** 编辑 */
edit(row) { edit(row) {
this.reset() this.reset();
this.query = { id: row.id }; this.query = { id: row.id };
this.urls.currUrl ="staff/regular/edit"; this.urls.currUrl = "staff/regular/edit";
this.getData(); this.getData();
this.pageInfo.type="edit" this.pageInfo.type = "edit";
this.title = "修改员工转正信息"; this.title = "修改员工转正信息";
}, },
/** 新增 */ /** 新增 */
add(row) { add(row) {
this.reset() this.reset();
this.urls.currUrl = "staff/regular/add"; this.urls.currUrl = "staff/regular/add";
this.getData(); this.getData();
this.pageInfo.type="add" this.pageInfo.type = "add";
this.title = "新增员工转正信息"; this.title = "新增员工转正信息";
}, },
/** 查看*/ /** 查看*/
view(row) { view(row) {
this.reset() this.reset();
this.query = { id: row.id }; this.query = { id: row.id };
this.urls.currUrl ="staff/regular/view"; this.urls.currUrl = "staff/regular/view";
this.getData(); this.getData();
this.pageInfo.type="view" this.pageInfo.type = "view";
this.title = "员工转正信息详细"; this.title = "员工转正信息详细";
}, },
/**取消按钮 */ /**取消按钮 */
...@@ -123,24 +215,24 @@ ...@@ -123,24 +215,24 @@
// 表单重置 // 表单重置
reset() { reset() {
this.form = { this.form = {
staffId : null, staffId: null,
staffName : "", staffName: "",
gender : 1, gender: 1,
birthday : null, birthday: null,
photoPath : "", photoPath: "",
phoneNumber : "", phoneNumber: "",
idCard : "", idCard: "",
workNum : "", workNum: "",
politicalstatus : 1, politicalstatus: 1,
deptId : null, deptId: null,
deptName : "", deptName: "",
jobId : null, jobId: null,
jobName : "", jobName: "",
staffType : 1, staffType: 1,
status : 1, status: 1,
entryDate : null, entryDate: null,
regularDate : null, regularDate: null,
auditStatus : 0, auditStatus: 0,
}; };
this.resetForm("form"); this.resetForm("form");
}, },
...@@ -150,5 +242,5 @@ ...@@ -150,5 +242,5 @@
} }
}, },
}, },
}; };
</script> </script>
...@@ -71,7 +71,6 @@ export default { ...@@ -71,7 +71,6 @@ export default {
"linkType", "linkType",
"commMenu", "commMenu",
"menuType", "menuType",
"authType",
], ],
// 表单校验 // 表单校验
rules: { 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