Commit 03067487 authored by 赵啸非's avatar 赵啸非

添加基础前端代码

parent 560ff115
......@@ -40,6 +40,21 @@ const router = new Router({
//部门
...restBuilder('dept', 'dept'),
...restBuilder('staff', 'staff'),//花名册 员工信息
...restBuilder('staff/care', 'staff/care'),// 员工关怀信息
...restBuilder('care/template', 'care/template'),// 关怀问候信息
...restBuilder('job', 'job'),// 职位信息
...restBuilder('staff/black', 'staff/black'),// 员工黑名单信息
...restBuilder('staff/adjust/log', 'staff/adjust/log'),// 员工调岗信息
...restBuilder('staff/regular', 'staff/regular'),// 员工转正信息
...restBuilder('staff/leave', 'staff/leave'),// 员工离职信息
...restBuilder('staff/contract', 'staff/contract'),// 员工合同信息
...restBuilder('attendance/record', 'attendance/record'),// 考勤打卡记录信息
...restBuilder('attendance/record/detail', 'attendance/record/detail'),// 考勤打卡记录详细信息
...restBuilder('attendance/group', 'attendance/group'),// 考勤组信息
...restBuilder('attendance/class', 'attendance/class'),// 考勤班次信息
...restBuilder('attendance/leave/record', 'attendance/leave/record'),// 请假记录信息
...restBuilder('attendance/vacation/balance', 'attendance/vacation/balance'),// 员工假期余额信息
//以下为基础路由配置
......
<template>
<!-- 弹出框表单 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="班次ID" prop="shiftsId" v-model="form.shiftsId" placeholder="请输入班次ID"/>
<Field label="班次名称" prop="shiftsName" v-model="form.shiftsName" placeholder="请输入班次名称"/>
<Field label="上班打卡时间" prop="goWorkDate" v-model="form.goWorkDate" type="date" />
<Field label="上班打卡前时间段,单位分钟" prop="goWorkDateBefore" v-model="form.goWorkDateBefore" placeholder="请输入上班打卡前时间段,单位分钟"/>
<Field label="上班打卡前时间段,单位分钟" prop="goWorkDateAfter" v-model="form.goWorkDateAfter" placeholder="请输入上班打卡前时间段,单位分钟"/>
<Field label="下班打卡时间" prop="offWorkDate" v-model="form.offWorkDate" type="date" />
<Field label="下班打卡前时间段,单位分钟" prop="offWorkDateBefore" v-model="form.offWorkDateBefore" placeholder="请输入下班打卡前时间段,单位分钟"/>
<Field label="下班打卡前时间段,单位分钟" prop="offWorkDateAfter" v-model="form.offWorkDateAfter" placeholder="请输入下班打卡前时间段,单位分钟"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import form from "@/assets/mixins/formdialog";
import dialogShow from "./dialogshow";
export default {
mixins: [form],
components: {
dialogShow ,
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "考勤班次详细信息",
// 是否显示弹出层
open: false,
toString:[
],
// 表单校验
rules: {
createTime: [
{required: true,message: "请选择创建时间" },
],
}
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/class/detail/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改考勤班次详细信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "attendance/class/detail/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增考勤班次详细信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/class/detail/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");
},
// 表单重置
reset() {
this.form = {
shiftsId : null,
shiftsName : "",
goWorkDate : null,
goWorkDateBefore : null,
goWorkDateAfter : null,
offWorkDate : null,
offWorkDateBefore : null,
offWorkDateAfter : null,
remark : "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<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="班次ID" prop="shiftsId" v-model="form.shiftsId" placeholder="请输入班次ID"/>
<Field label="班次名称" prop="shiftsName" v-model="form.shiftsName" placeholder="请输入班次名称"/>
<Field label="上班打卡时间" prop="goWorkDate" v-model="form.goWorkDate" type="date" />
<Field label="上班打卡前时间段,单位分钟" prop="goWorkDateBefore" v-model="form.goWorkDateBefore" placeholder="请输入上班打卡前时间段,单位分钟"/>
<Field label="上班打卡前时间段,单位分钟" prop="goWorkDateAfter" v-model="form.goWorkDateAfter" placeholder="请输入上班打卡前时间段,单位分钟"/>
<Field label="下班打卡时间" prop="offWorkDate" v-model="form.offWorkDate" type="date" />
<Field label="下班打卡前时间段,单位分钟" prop="offWorkDateBefore" v-model="form.offWorkDateBefore" placeholder="请输入下班打卡前时间段,单位分钟"/>
<Field label="下班打卡前时间段,单位分钟" prop="offWorkDateAfter" v-model="form.offWorkDateAfter" placeholder="请输入下班打卡前时间段,单位分钟"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
<form-buttons @submit='submitForm' noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "AttendanceClassDetailDetail",
mixins: [form],
components: {
},
created() {
this.changePath("attendance/class/detail")
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "考勤班次详细信息",
// 是否显示弹出层
open: false,
direction:"rtl",
toString:[
],
toDate:[
"goWorkDate",
"offWorkDate",
],
// 表单校验
rules: {
createTime: [
{required: true,message: "请选择创建时间" },
],
}
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/class/detail/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改考勤班次详细信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "attendance/class/detail/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增考勤班次详细信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/class/detail/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");
},
// 表单重置
reset() {
this.form = {
shiftsId : null,
shiftsName : "",
goWorkDate : null,
goWorkDateBefore : null,
goWorkDateAfter : null,
offWorkDate : null,
offWorkDateBefore : null,
offWorkDateAfter : null,
remark : "",
};
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>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "AttendanceClassDetailList",
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: [
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "上班打卡时间", prop: "goWorkDate", formatter: this.formatterDate},
{label: "下班打卡时间", prop: "offWorkDate", 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} />
);
}
}
]
}
};
}
};
</script>
\ No newline at end of file
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="班次ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.shiftsId}}
</el-descriptions-item>
<el-descriptions-item label="班次名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.shiftsName}}
</el-descriptions-item>
<el-descriptions-item label="上班打卡时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.goWorkDate)}}
</el-descriptions-item>
<el-descriptions-item label="上班打卡前时间段,单位分钟" label-class-name="labelClass" content-class-name="contentClass">
{{form.goWorkDateBefore}}
</el-descriptions-item>
<el-descriptions-item label="上班打卡前时间段,单位分钟" label-class-name="labelClass" content-class-name="contentClass">
{{form.goWorkDateAfter}}
</el-descriptions-item>
<el-descriptions-item label="下班打卡时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.offWorkDate)}}
</el-descriptions-item>
<el-descriptions-item label="下班打卡前时间段,单位分钟" label-class-name="labelClass" content-class-name="contentClass">
{{form.offWorkDateBefore}}
</el-descriptions-item>
<el-descriptions-item label="下班打卡前时间段,单位分钟" label-class-name="labelClass" content-class-name="contentClass">
{{form.offWorkDateAfter}}
</el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass">
{{form.remark}}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
<template>
<!-- 弹出框表单 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="班次名称" prop="className" v-model="form.className" placeholder="请输入班次名称"/>
<Field label="班次负责人ID" prop="classResponsiblePersonId" v-model="form.classResponsiblePersonId" placeholder="请输入班次负责人ID"/>
<Field label="班次负责人名称" prop="classResponsiblePersonName" v-model="form.classResponsiblePersonName" placeholder="请输入班次负责人名称"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
<el-divider content-position="center">考勤班次详细信息信息</el-divider>
<br/>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAddAttendanceClassDetail">添加</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" icon="el-icon-delete" size="mini" @click="handleDeleteAttendanceClassDetail">删除</el-button>
</el-col>
</el-row>
<el-table :data="attendanceClassDetailList" :row-class-name="rowAttendanceClassDetailIndex" @selection-change="handleAttendanceClassDetailSelectionChange" ref="attendanceClassDetail">
<el-table-column type="selection" width="50" align="center" />
<el-table-column label="序号" align="center" prop="index" width="50"/>
<el-table-column label="班次名称" prop="shiftsName">
<template slot-scope="scope">
<el-input v-model="scope.row.shiftsName" placeholder="请输入班次名称" />
</template>
</el-table-column>
<el-table-column label="上班打卡时间" prop="goWorkDate">
<template slot-scope="scope">
<el-input v-model="scope.row.goWorkDate" placeholder="请输入上班打卡时间" />
</template>
</el-table-column>
<el-table-column label="上班打卡前时间段,单位分钟" prop="goWorkDateBefore">
<template slot-scope="scope">
<el-input v-model="scope.row.goWorkDateBefore" placeholder="请输入上班打卡前时间段,单位分钟" />
</template>
</el-table-column>
<el-table-column label="上班打卡前时间段,单位分钟" prop="goWorkDateAfter">
<template slot-scope="scope">
<el-input v-model="scope.row.goWorkDateAfter" placeholder="请输入上班打卡前时间段,单位分钟" />
</template>
</el-table-column>
<el-table-column label="下班打卡时间" prop="offWorkDate">
<template slot-scope="scope">
<el-input v-model="scope.row.offWorkDate" placeholder="请输入下班打卡时间" />
</template>
</el-table-column>
<el-table-column label="下班打卡前时间段,单位分钟" prop="offWorkDateBefore">
<template slot-scope="scope">
<el-input v-model="scope.row.offWorkDateBefore" placeholder="请输入下班打卡前时间段,单位分钟" />
</template>
</el-table-column>
<el-table-column label="下班打卡前时间段,单位分钟" prop="offWorkDateAfter">
<template slot-scope="scope">
<el-input v-model="scope.row.offWorkDateAfter" placeholder="请输入下班打卡前时间段,单位分钟" />
</template>
</el-table-column>
<el-table-column label="备注" prop="remark">
<template slot-scope="scope">
<el-input v-model="scope.row.remark" placeholder="请输入备注" />
</template>
</el-table-column>
<el-table-column label="创建用户" prop="createUserId">
<template slot-scope="scope">
<el-input v-model="scope.row.createUserId" placeholder="请输入创建用户" />
</template>
</el-table-column>
<el-table-column label="创建时间" prop="createTime">
<template slot-scope="scope">
<el-input v-model="scope.row.createTime" placeholder="请输入创建时间" />
</template>
</el-table-column>
<el-table-column label="更新用户" prop="updateUserId">
<template slot-scope="scope">
<el-input v-model="scope.row.updateUserId" placeholder="请输入更新用户" />
</template>
</el-table-column>
<el-table-column label="更新时间" prop="updateTime">
<template slot-scope="scope">
<el-input v-model="scope.row.updateTime" placeholder="请输入更新时间" />
</template>
</el-table-column>
</el-table>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import form from "@/assets/mixins/formdialog";
import dialogShow from "./dialogshow";
export default {
mixins: [form],
components: {
dialogShow ,
},
data() {
return {
// 子表选中数据
checkedAttendanceClassDetail: [],
// 考勤班次详细信息表格数据
attendanceClassDetailList: [],
// 遮罩层
loading: true,
// 弹出层标题
title: "考勤班次信息",
// 是否显示弹出层
open: false,
toString:[
],
// 表单校验
rules: {
createTime: [
{required: true,message: "请选择创建时间" },
],
}
};
},
methods: {
/** 考勤班次详细信息序号 */
rowAttendanceClassDetailIndex({ row, rowIndex }) {
row.index = rowIndex + 1;
},
/** 考勤班次详细信息添加按钮操作 */
handleAddAttendanceClassDetail() {
let obj = {};
obj.shiftsName = "";
obj.goWorkDate = "";
obj.goWorkDateBefore = "";
obj.goWorkDateAfter = "";
obj.offWorkDate = "";
obj.offWorkDateBefore = "";
obj.offWorkDateAfter = "";
obj.remark = "";
obj.createUserId = "";
obj.createTime = "";
obj.updateUserId = "";
obj.updateTime = "";
this.attendanceClassDetailList.push(obj);
},
/** 考勤班次详细信息删除按钮操作 */
handleDeleteAttendanceClassDetail() {
if (this.checkedAttendanceClassDetail.length == 0) {
this.$alert("请先选择要删除的考勤班次详细信息数据", "提示", { confirmButtonText: "确定", });
} else {
this.attendanceClassDetailList.splice(this.checkedAttendanceClassDetail[0].index - 1, 1);
}
},
/** 单选框选中数据 */
handleAttendanceClassDetailSelectionChange(selection) {
if (selection.length > 1) {
this.$refs.attendanceClassDetail.clearSelection();
this.$refs.attendanceClassDetail.toggleRowSelection(selection.pop());
} else {
this.checkedAttendanceClassDetail = selection;
}
},
// 渲染前置处理
beforeRender(data) {
if(data.entity.attendanceClassDetailList) {
this.attendanceClassDetailList = data.entity.attendanceClassDetailList;
}
return data
},
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/class/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改考勤班次信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "attendance/class/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增考勤班次信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/class/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");
},
// 表单重置
reset() {
this.form = {
className : "",
classResponsiblePersonId : null,
classResponsiblePersonName : "",
remark : "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<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="className" v-model="form.className" placeholder="请输入班次名称"/>
<Field label="班次负责人ID" prop="classResponsiblePersonId" v-model="form.classResponsiblePersonId" placeholder="请输入班次负责人ID"/>
<Field label="班次负责人名称" prop="classResponsiblePersonName" v-model="form.classResponsiblePersonName" placeholder="请输入班次负责人名称"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
<el-divider content-position="center">考勤班次详细信息信息</el-divider>
<br/>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAddAttendanceClassDetail">添加</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" icon="el-icon-delete" size="mini" @click="handleDeleteAttendanceClassDetail">删除</el-button>
</el-col>
</el-row>
<el-table :data="attendanceClassDetailList" :row-class-name="rowAttendanceClassDetailIndex" @selection-change="handleAttendanceClassDetailSelectionChange" ref="attendanceClassDetail">
<el-table-column type="selection" width="50" align="center" />
<el-table-column label="序号" align="center" prop="index" width="50"/>
<el-table-column label="班次名称" prop="shiftsName">
<template slot-scope="scope">
<el-input v-model="scope.row.shiftsName" placeholder="请输入班次名称" />
</template>
</el-table-column>
<el-table-column label="上班打卡时间" prop="goWorkDate">
<template slot-scope="scope">
<el-input v-model="scope.row.goWorkDate" placeholder="请输入上班打卡时间" />
</template>
</el-table-column>
<el-table-column label="上班打卡前时间段,单位分钟" prop="goWorkDateBefore">
<template slot-scope="scope">
<el-input v-model="scope.row.goWorkDateBefore" placeholder="请输入上班打卡前时间段,单位分钟" />
</template>
</el-table-column>
<el-table-column label="上班打卡前时间段,单位分钟" prop="goWorkDateAfter">
<template slot-scope="scope">
<el-input v-model="scope.row.goWorkDateAfter" placeholder="请输入上班打卡前时间段,单位分钟" />
</template>
</el-table-column>
<el-table-column label="下班打卡时间" prop="offWorkDate">
<template slot-scope="scope">
<el-input v-model="scope.row.offWorkDate" placeholder="请输入下班打卡时间" />
</template>
</el-table-column>
<el-table-column label="下班打卡前时间段,单位分钟" prop="offWorkDateBefore">
<template slot-scope="scope">
<el-input v-model="scope.row.offWorkDateBefore" placeholder="请输入下班打卡前时间段,单位分钟" />
</template>
</el-table-column>
<el-table-column label="下班打卡前时间段,单位分钟" prop="offWorkDateAfter">
<template slot-scope="scope">
<el-input v-model="scope.row.offWorkDateAfter" placeholder="请输入下班打卡前时间段,单位分钟" />
</template>
</el-table-column>
<el-table-column label="备注" prop="remark">
<template slot-scope="scope">
<el-input v-model="scope.row.remark" placeholder="请输入备注" />
</template>
</el-table-column>
<el-table-column label="创建用户" prop="createUserId">
<template slot-scope="scope">
<el-input v-model="scope.row.createUserId" placeholder="请输入创建用户" />
</template>
</el-table-column>
<el-table-column label="创建时间" prop="createTime">
<template slot-scope="scope">
<el-input v-model="scope.row.createTime" placeholder="请输入创建时间" />
</template>
</el-table-column>
<el-table-column label="更新用户" prop="updateUserId">
<template slot-scope="scope">
<el-input v-model="scope.row.updateUserId" placeholder="请输入更新用户" />
</template>
</el-table-column>
<el-table-column label="更新时间" prop="updateTime">
<template slot-scope="scope">
<el-input v-model="scope.row.updateTime" placeholder="请输入更新时间" />
</template>
</el-table-column>
</el-table>
<form-buttons @submit='submitForm' noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "AttendanceClassDetail",
mixins: [form],
components: {
},
created() {
this.changePath("attendance/class")
},
data() {
return {
// 子表选中数据
checkedAttendanceClassDetail: [],
// 考勤班次详细信息表格数据
attendanceClassDetailList: [],
// 遮罩层
loading: true,
// 弹出层标题
title: "考勤班次信息",
// 是否显示弹出层
open: false,
direction:"rtl",
toString:[
],
toDate:[
],
// 表单校验
rules: {
createTime: [
{required: true,message: "请选择创建时间" },
],
}
};
},
methods: {
/** 考勤班次详细信息序号 */
rowAttendanceClassDetailIndex({ row, rowIndex }) {
row.index = rowIndex + 1;
},
/** 考勤班次详细信息添加按钮操作 */
handleAddAttendanceClassDetail() {
let obj = {};
obj.shiftsName = "";
obj.goWorkDate = "";
obj.goWorkDateBefore = "";
obj.goWorkDateAfter = "";
obj.offWorkDate = "";
obj.offWorkDateBefore = "";
obj.offWorkDateAfter = "";
obj.remark = "";
obj.createUserId = "";
obj.createTime = "";
obj.updateUserId = "";
obj.updateTime = "";
this.attendanceClassDetailList.push(obj);
},
/** 考勤班次详细信息删除按钮操作 */
handleDeleteAttendanceClassDetail() {
if (this.checkedAttendanceClassDetail.length == 0) {
this.$alert("请先选择要删除的考勤班次详细信息数据", "提示", { confirmButtonText: "确定", });
} else {
this.attendanceClassDetailList.splice(this.checkedAttendanceClassDetail[0].index - 1, 1);
}
},
/** 单选框选中数据 */
handleAttendanceClassDetailSelectionChange(selection) {
if (selection.length > 1) {
this.$refs.attendanceClassDetail.clearSelection();
this.$refs.attendanceClassDetail.toggleRowSelection(selection.pop());
} else {
this.checkedAttendanceClassDetail = selection;
}
},
// 渲染前置处理
beforeRender(data) {
if(data.entity.attendanceClassDetailList) {
this.attendanceClassDetailList = data.entity.attendanceClassDetailList;
}
return data
},
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/class/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改考勤班次信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "attendance/class/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增考勤班次信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/class/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");
},
// 表单重置
reset() {
this.form = {
className : "",
classResponsiblePersonId : null,
classResponsiblePersonName : "",
remark : "",
};
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>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "AttendanceClassList",
components: {
drawerShow
},
mixins: [table],
created() {
},
methods: {
renderTable(tableData) {
return (
<el-table stripe data={tableData} class="total-table">
{this.columnSet.map((item) => this.renderTableColumn(item))}
</el-table>
);
},
renderTableColumn(options) {
return (
<el-table-column
prop={options.prop}
label={options.label}
width={options.width}
>
</el-table-column>
);
},
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
},
data() {
return {
/** 子表列元素 */
columnSet:[
{prop:"shiftsId",label:"班次ID",width:100},
{prop:"shiftsName",label:"班次名称",width:100},
{prop:"goWorkDate",label:"上班打卡时间",width:100},
{prop:"goWorkDateBefore",label:"上班打卡前时间段,单位分钟",width:100},
{prop:"goWorkDateAfter",label:"上班打卡前时间段,单位分钟",width:100},
{prop:"offWorkDate",label:"下班打卡时间",width:100},
{prop:"offWorkDateBefore",label:"下班打卡前时间段,单位分钟",width:100},
{prop:"offWorkDateAfter",label:"下班打卡前时间段,单位分钟",width:100},
{prop:"remark",label:"备注",width:100},
],
config: {
search: [
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{label: "考勤班次详细信息",
width: 120,
prop: "subColumns",
formatter: (row) => {
let widthsize = this.columnSet.reduce((pre, cur) => {
return pre + Number(cur.width);
}, 50);
return (
<el-popover placement="right" width={widthsize} trigger="click">
{this.renderTable(row.attendanceClassDetailList)}
<el-button type="text" slot="reference">详细</el-button>
</el-popover>
);
},
},
{
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
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="班次名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.className}}
</el-descriptions-item>
<el-descriptions-item label="班次负责人ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.classResponsiblePersonId}}
</el-descriptions-item>
<el-descriptions-item label="班次负责人名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.classResponsiblePersonName}}
</el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass">
{{form.remark}}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
<template>
<!-- 弹出框表单 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="考勤组名称" prop="groupName" v-model="form.groupName" placeholder="请输入考勤组名称"/>
<Field label="人数" prop="personNum" v-model="form.personNum" placeholder="请输入人数"/>
<Field label="负责人" prop="responsiblePerson" v-model="form.responsiblePerson" placeholder="请输入负责人"/>
<Field label="类型" prop="type" v-model="form.type" type="select" :enumData="dict.type" placeholder="请选择类型"/>
<Field label="考勤时间" prop="attendanceTime" v-model="form.attendanceTime" type="select" :enumData="dict.attendanceTime" placeholder="请选择考勤时间"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import form from "@/assets/mixins/formdialog";
import dialogShow from "./dialogshow";
export default {
mixins: [form],
components: {
dialogShow ,
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "考勤组信息",
// 是否显示弹出层
open: false,
toString:[
"type",
"attendanceTime",
],
// 表单校验
rules: {
createTime: [
{required: true,message: "请选择创建时间" },
],
}
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/group/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改考勤组信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "attendance/group/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增考勤组信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/group/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");
},
// 表单重置
reset() {
this.form = {
groupName : "",
personNum : null,
responsiblePerson : "",
type : null,
attendanceTime : null,
remark : "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<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="groupName" v-model="form.groupName" placeholder="请输入考勤组名称"/>
<Field label="人数" prop="personNum" v-model="form.personNum" placeholder="请输入人数"/>
<Field label="负责人" prop="responsiblePerson" v-model="form.responsiblePerson" placeholder="请输入负责人"/>
<Field label="类型" prop="type" v-model="form.type" type="select" :enumData="dict.type" placeholder="请选择类型"/>
<Field label="考勤时间" prop="attendanceTime" v-model="form.attendanceTime" type="select" :enumData="dict.attendanceTime" placeholder="请选择考勤时间"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
<form-buttons @submit='submitForm' noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "AttendanceGroupDetail",
mixins: [form],
components: {
},
created() {
this.changePath("attendance/group")
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "考勤组信息",
// 是否显示弹出层
open: false,
direction:"rtl",
toString:[
"type",
"attendanceTime",
],
toDate:[
],
// 表单校验
rules: {
createTime: [
{required: true,message: "请选择创建时间" },
],
}
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/group/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改考勤组信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "attendance/group/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增考勤组信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/group/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");
},
// 表单重置
reset() {
this.form = {
groupName : "",
personNum : null,
responsiblePerson : "",
type : null,
attendanceTime : null,
remark : "",
};
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>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "AttendanceGroupList",
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: [
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "人数", prop: "personNum",formatter: this.formatter},
{label: "类型", prop: "type",formatter: this.formatter},
{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
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="考勤组名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.groupName}}
</el-descriptions-item>
<el-descriptions-item label="人数" label-class-name="labelClass" content-class-name="contentClass">
{{form.personNum}}
</el-descriptions-item>
<el-descriptions-item label="负责人" label-class-name="labelClass" content-class-name="contentClass">
{{form.responsiblePerson}}
</el-descriptions-item>
<el-descriptions-item label="类型" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("type", form.type) }}
</el-descriptions-item>
<el-descriptions-item label="考勤时间" label-class-name="labelClass" content-class-name="contentClass">
{{form.attendanceTime}}
</el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass">
{{form.remark}}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
"type",
"attendanceTime",
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
<template>
<!-- 弹出框表单 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="请假人id" prop="leavePersonId" v-model="form.leavePersonId" placeholder="请输入请假人id"/>
<Field label="请假人" prop="leavePerson" v-model="form.leavePerson" placeholder="请输入请假人"/>
<Field label="所属部门id" prop="deptId" v-model="form.deptId" placeholder="请输入所属部门id"/>
<Field label="所属部门" prop="deptName" v-model="form.deptName" type="textarea" placeholder="请输入所属部门"/>
<Field label="电话号码" prop="phoneNumber" v-model="form.phoneNumber" placeholder="请输入电话号码"/>
<Field label="请假类型" prop="leaveType" v-model="form.leaveType" type="select" :enumData="dict.leaveType" placeholder="请选择请假类型"/>
<Field label="开始时间" prop="startTime" v-model="form.startTime" type="date" />
<Field label="结束时间" prop="endTime" v-model="form.endTime" type="date" />
<Field label="时长,单位秒" prop="duration" v-model="form.duration" placeholder="请输入时长,单位秒"/>
<Field label="请假事由" prop="reason" v-model="form.reason" type="textarea" placeholder="请输入请假事由"/>
<Field label="审批负责人Id" prop="approverId" v-model="form.approverId" placeholder="请输入审批负责人Id"/>
<Field label="审批负责人" prop="approver" v-model="form.approver" placeholder="请输入审批负责人"/>
<Field label="附件" prop="attachment" v-model="form.attachment" type="textarea" placeholder="请输入附件"/>
<Field label="附件路径" prop="attachmentPath" v-model="form.attachmentPath" type="textarea" placeholder="请输入附件路径"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import form from "@/assets/mixins/formdialog";
import dialogShow from "./dialogshow";
export default {
mixins: [form],
components: {
dialogShow ,
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "请假记录信息",
// 是否显示弹出层
open: false,
toString:[
"leaveType",
],
// 表单校验
rules: {
}
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/leave/record/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改请假记录信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "attendance/leave/record/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增请假记录信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/leave/record/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");
},
// 表单重置
reset() {
this.form = {
leavePersonId : null,
leavePerson : "",
deptId : null,
deptName : "",
phoneNumber : "",
leaveType : null,
startTime : null,
endTime : null,
duration : null,
reason : "",
approverId : null,
approver : "",
attachment : "",
attachmentPath : "",
remark : "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<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="请假人id" prop="leavePersonId" v-model="form.leavePersonId" placeholder="请输入请假人id"/>
<Field label="请假人" prop="leavePerson" v-model="form.leavePerson" placeholder="请输入请假人"/>
<Field label="所属部门id" prop="deptId" v-model="form.deptId" placeholder="请输入所属部门id"/>
<Field label="所属部门" prop="deptName" v-model="form.deptName" type="textarea" placeholder="请输入所属部门"/>
<Field label="电话号码" prop="phoneNumber" v-model="form.phoneNumber" placeholder="请输入电话号码"/>
<Field label="请假类型" prop="leaveType" v-model="form.leaveType" type="select" :enumData="dict.leaveType" placeholder="请选择请假类型"/>
<Field label="开始时间" prop="startTime" v-model="form.startTime" type="date" />
<Field label="结束时间" prop="endTime" v-model="form.endTime" type="date" />
<Field label="时长,单位秒" prop="duration" v-model="form.duration" placeholder="请输入时长,单位秒"/>
<Field label="请假事由" prop="reason" v-model="form.reason" type="textarea" placeholder="请输入请假事由"/>
<Field label="审批负责人Id" prop="approverId" v-model="form.approverId" placeholder="请输入审批负责人Id"/>
<Field label="审批负责人" prop="approver" v-model="form.approver" placeholder="请输入审批负责人"/>
<Field label="附件" prop="attachment" v-model="form.attachment" type="textarea" placeholder="请输入附件"/>
<Field label="附件路径" prop="attachmentPath" v-model="form.attachmentPath" type="textarea" placeholder="请输入附件路径"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
<form-buttons @submit='submitForm' noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "AttendanceLeaveRecordDetail",
mixins: [form],
components: {
},
created() {
this.changePath("attendance/leave/record")
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "请假记录信息",
// 是否显示弹出层
open: false,
direction:"rtl",
toString:[
"leaveType",
],
toDate:[
"startTime",
"endTime",
],
// 表单校验
rules: {
}
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/leave/record/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改请假记录信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "attendance/leave/record/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增请假记录信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/leave/record/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");
},
// 表单重置
reset() {
this.form = {
leavePersonId : null,
leavePerson : "",
deptId : null,
deptName : "",
phoneNumber : "",
leaveType : null,
startTime : null,
endTime : null,
duration : null,
reason : "",
approverId : null,
approver : "",
attachment : "",
attachmentPath : "",
remark : "",
};
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>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "AttendanceLeaveRecordList",
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: "leavePersonId",
type: "text",
label: "请假人id",
fuzzy: true
},
{
name: "phoneNumber",
type: "text",
label: "电话号码",
fuzzy: true
},
{
name: "leaveType",
type: "select",
label: "请假类型",
fuzzy: true
},
{
name: "startTime",
type: "date",
label: "开始时间",
fuzzy: true
},
{
name: "endTime",
type: "date",
label: "结束时间",
fuzzy: true
},
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "请假人id", prop: "leavePersonId", formatter: this.formatter},
{label: "请假人", prop: "leavePerson"},
{label: "所属部门id", prop: "deptId", formatter: this.formatter},
{label: "所属部门", prop: "deptName"},
{label: "电话号码", prop: "phoneNumber"},
{label: "请假类型", prop: "leaveType",formatter: this.formatter},
{label: "开始时间", prop: "startTime", formatter: this.formatterDate},
{label: "结束时间", prop: "endTime", formatter: this.formatterDate},
{label: "时长,单位秒", prop: "duration",formatter: this.formatter},
{label: "审批负责人Id", prop: "approverId", formatter: this.formatter},
{label: "审批负责人", prop: "approver"},
{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
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="请假人id" label-class-name="labelClass" content-class-name="contentClass">
{{form.leavePersonId}}
</el-descriptions-item>
<el-descriptions-item label="请假人" label-class-name="labelClass" content-class-name="contentClass">
{{form.leavePerson}}
</el-descriptions-item>
<el-descriptions-item label="所属部门id" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptId}}
</el-descriptions-item>
<el-descriptions-item label="所属部门" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptName}}
</el-descriptions-item>
<el-descriptions-item label="电话号码" label-class-name="labelClass" content-class-name="contentClass">
{{form.phoneNumber}}
</el-descriptions-item>
<el-descriptions-item label="请假类型" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("leaveType", form.leaveType) }}
</el-descriptions-item>
<el-descriptions-item label="开始时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.startTime)}}
</el-descriptions-item>
<el-descriptions-item label="结束时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.endTime)}}
</el-descriptions-item>
<el-descriptions-item label="时长,单位秒" label-class-name="labelClass" content-class-name="contentClass">
{{form.duration}}
</el-descriptions-item>
<el-descriptions-item label="请假事由" label-class-name="labelClass" content-class-name="contentClass">
{{form.reason}}
</el-descriptions-item>
<el-descriptions-item label="审批负责人Id" label-class-name="labelClass" content-class-name="contentClass">
{{form.approverId}}
</el-descriptions-item>
<el-descriptions-item label="审批负责人" label-class-name="labelClass" content-class-name="contentClass">
{{form.approver}}
</el-descriptions-item>
<el-descriptions-item label="附件" label-class-name="labelClass" content-class-name="contentClass">
{{form.attachment}}
</el-descriptions-item>
<el-descriptions-item label="附件路径" label-class-name="labelClass" content-class-name="contentClass">
{{form.attachmentPath}}
</el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass">
{{form.remark}}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
"leaveType",
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
<template>
<!-- 弹出框表单 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="考勤记录ID" prop="recordId" v-model="form.recordId" placeholder="请输入考勤记录ID"/>
<Field label="班次ID" prop="shiftsId" v-model="form.shiftsId" placeholder="请输入班次ID"/>
<Field label="班次名称" prop="shiftsName" v-model="form.shiftsName" placeholder="请输入班次名称"/>
<Field label="上班打卡时间" prop="goWorkDate" v-model="form.goWorkDate" type="date" />
<Field label="上班打卡结果" prop="goWorkResult" v-model="form.goWorkResult" type="select" :enumData="dict.goWorkResult" placeholder="请选择上班打卡结果"/>
<Field label="下班打卡时间" prop="offWorkDate" v-model="form.offWorkDate" type="date" />
<Field label="下班打卡结果" prop="offWorkResult" v-model="form.offWorkResult" type="select" :enumData="dict.offWorkResult" placeholder="请选择下班打卡结果"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import form from "@/assets/mixins/formdialog";
import dialogShow from "./dialogshow";
export default {
mixins: [form],
components: {
dialogShow ,
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "考勤打卡记录详细信息",
// 是否显示弹出层
open: false,
toString:[
"goWorkResult",
"offWorkResult",
],
// 表单校验
rules: {
createTime: [
{required: true,message: "请选择创建时间" },
],
}
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/record/detail/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改考勤打卡记录详细信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "attendance/record/detail/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增考勤打卡记录详细信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/record/detail/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");
},
// 表单重置
reset() {
this.form = {
recordId : null,
shiftsId : null,
shiftsName : "",
goWorkDate : null,
goWorkResult : null,
offWorkDate : null,
offWorkResult : null,
remark : "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<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="考勤记录ID" prop="recordId" v-model="form.recordId" placeholder="请输入考勤记录ID"/>
<Field label="班次ID" prop="shiftsId" v-model="form.shiftsId" placeholder="请输入班次ID"/>
<Field label="班次名称" prop="shiftsName" v-model="form.shiftsName" placeholder="请输入班次名称"/>
<Field label="上班打卡时间" prop="goWorkDate" v-model="form.goWorkDate" type="date" />
<Field label="上班打卡结果" prop="goWorkResult" v-model="form.goWorkResult" type="select" :enumData="dict.goWorkResult" placeholder="请选择上班打卡结果"/>
<Field label="下班打卡时间" prop="offWorkDate" v-model="form.offWorkDate" type="date" />
<Field label="下班打卡结果" prop="offWorkResult" v-model="form.offWorkResult" type="select" :enumData="dict.offWorkResult" placeholder="请选择下班打卡结果"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
<form-buttons @submit='submitForm' noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "AttendanceRecordDetailDetail",
mixins: [form],
components: {
},
created() {
this.changePath("attendance/record/detail")
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "考勤打卡记录详细信息",
// 是否显示弹出层
open: false,
direction:"rtl",
toString:[
"goWorkResult",
"offWorkResult",
],
toDate:[
"goWorkDate",
"offWorkDate",
],
// 表单校验
rules: {
createTime: [
{required: true,message: "请选择创建时间" },
],
}
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/record/detail/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改考勤打卡记录详细信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "attendance/record/detail/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增考勤打卡记录详细信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/record/detail/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");
},
// 表单重置
reset() {
this.form = {
recordId : null,
shiftsId : null,
shiftsName : "",
goWorkDate : null,
goWorkResult : null,
offWorkDate : null,
offWorkResult : null,
remark : "",
};
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>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "AttendanceRecordDetailList",
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: [
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "上班打卡时间", prop: "goWorkDate", formatter: this.formatterDate},
{label: "下班打卡时间", prop: "offWorkDate", 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} />
);
}
}
]
}
};
}
};
</script>
\ No newline at end of file
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="考勤记录ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.recordId}}
</el-descriptions-item>
<el-descriptions-item label="班次ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.shiftsId}}
</el-descriptions-item>
<el-descriptions-item label="班次名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.shiftsName}}
</el-descriptions-item>
<el-descriptions-item label="上班打卡时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.goWorkDate)}}
</el-descriptions-item>
<el-descriptions-item label="上班打卡结果" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("goWorkResult", form.goWorkResult) }}
</el-descriptions-item>
<el-descriptions-item label="下班打卡时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.offWorkDate)}}
</el-descriptions-item>
<el-descriptions-item label="下班打卡结果" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("offWorkResult", form.offWorkResult) }}
</el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass">
{{form.remark}}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
"goWorkResult",
"offWorkResult",
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
<template>
<!-- 弹出框表单 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="员工ID" prop="staffId" v-model="form.staffId" placeholder="请输入员工ID"/>
<Field label="员工姓名" prop="staffName" v-model="form.staffName" placeholder="请输入员工姓名"/>
<Field label="工号" prop="workNum" v-model="form.workNum" placeholder="请输入工号"/>
<Field label="所属部门" prop="deptId" v-model="form.deptId" placeholder="请输入所属部门"/>
<Field label="所属部门名称" prop="deptName" v-model="form.deptName" placeholder="请输入所属部门名称"/>
<Field label="职位ID" prop="positionId" v-model="form.positionId" placeholder="请输入职位ID"/>
<Field label="职位名称" prop="positionName" v-model="form.positionName" placeholder="请输入职位名称"/>
<Field label="所属考勤组ID" prop="attendanceGroupId" v-model="form.attendanceGroupId" placeholder="请输入所属考勤组ID"/>
<Field label="所属考勤组名称" prop="attendanceGroupName" v-model="form.attendanceGroupName" placeholder="请输入所属考勤组名称"/>
<Field label="班次ID" prop="shiftsId" v-model="form.shiftsId" placeholder="请输入班次ID"/>
<Field label="班次名称" prop="shiftsName" v-model="form.shiftsName" placeholder="请输入班次名称"/>
<Field label="打卡日期" prop="attendanceDate" v-model="form.attendanceDate" type="date" />
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
<el-divider content-position="center">考勤打卡记录详细信息信息</el-divider>
<br/>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAddAttendanceRecordDetail">添加</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" icon="el-icon-delete" size="mini" @click="handleDeleteAttendanceRecordDetail">删除</el-button>
</el-col>
</el-row>
<el-table :data="attendanceRecordDetailList" :row-class-name="rowAttendanceRecordDetailIndex" @selection-change="handleAttendanceRecordDetailSelectionChange" ref="attendanceRecordDetail">
<el-table-column type="selection" width="50" align="center" />
<el-table-column label="序号" align="center" prop="index" width="50"/>
<el-table-column label="班次ID" prop="shiftsId">
<template slot-scope="scope">
<el-input v-model="scope.row.shiftsId" placeholder="请输入班次ID" />
</template>
</el-table-column>
<el-table-column label="班次名称" prop="shiftsName">
<template slot-scope="scope">
<el-input v-model="scope.row.shiftsName" placeholder="请输入班次名称" />
</template>
</el-table-column>
<el-table-column label="上班打卡时间" prop="goWorkDate">
<template slot-scope="scope">
<el-input v-model="scope.row.goWorkDate" placeholder="请输入上班打卡时间" />
</template>
</el-table-column>
<el-table-column label="上班打卡结果" prop="goWorkResult">
<template slot-scope="scope">
<el-input v-model="scope.row.goWorkResult" placeholder="请输入上班打卡结果" />
</template>
</el-table-column>
<el-table-column label="下班打卡时间" prop="offWorkDate">
<template slot-scope="scope">
<el-input v-model="scope.row.offWorkDate" placeholder="请输入下班打卡时间" />
</template>
</el-table-column>
<el-table-column label="下班打卡结果" prop="offWorkResult">
<template slot-scope="scope">
<el-input v-model="scope.row.offWorkResult" placeholder="请输入下班打卡结果" />
</template>
</el-table-column>
<el-table-column label="备注" prop="remark">
<template slot-scope="scope">
<el-input v-model="scope.row.remark" placeholder="请输入备注" />
</template>
</el-table-column>
<el-table-column label="创建用户" prop="createUserId">
<template slot-scope="scope">
<el-input v-model="scope.row.createUserId" placeholder="请输入创建用户" />
</template>
</el-table-column>
<el-table-column label="创建时间" prop="createTime">
<template slot-scope="scope">
<el-input v-model="scope.row.createTime" placeholder="请输入创建时间" />
</template>
</el-table-column>
<el-table-column label="更新用户" prop="updateUserId">
<template slot-scope="scope">
<el-input v-model="scope.row.updateUserId" placeholder="请输入更新用户" />
</template>
</el-table-column>
<el-table-column label="更新时间" prop="updateTime">
<template slot-scope="scope">
<el-input v-model="scope.row.updateTime" placeholder="请输入更新时间" />
</template>
</el-table-column>
</el-table>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import form from "@/assets/mixins/formdialog";
import dialogShow from "./dialogshow";
export default {
mixins: [form],
components: {
dialogShow ,
},
data() {
return {
// 子表选中数据
checkedAttendanceRecordDetail: [],
// 考勤打卡记录详细信息表格数据
attendanceRecordDetailList: [],
// 遮罩层
loading: true,
// 弹出层标题
title: "考勤打卡记录信息",
// 是否显示弹出层
open: false,
toString:[
],
// 表单校验
rules: {
staffName: [
{required: true,message: "请输入员工姓名", trigger: "blur" },
{max: 64,message: "最多只能录入64个字符",trigger: "blur",},
],
createTime: [
{required: true,message: "请选择创建时间" },
],
}
};
},
methods: {
/** 考勤打卡记录详细信息序号 */
rowAttendanceRecordDetailIndex({ row, rowIndex }) {
row.index = rowIndex + 1;
},
/** 考勤打卡记录详细信息添加按钮操作 */
handleAddAttendanceRecordDetail() {
let obj = {};
obj.shiftsId = "";
obj.shiftsName = "";
obj.goWorkDate = "";
obj.goWorkResult = "";
obj.offWorkDate = "";
obj.offWorkResult = "";
obj.remark = "";
obj.createUserId = "";
obj.createTime = "";
obj.updateUserId = "";
obj.updateTime = "";
this.attendanceRecordDetailList.push(obj);
},
/** 考勤打卡记录详细信息删除按钮操作 */
handleDeleteAttendanceRecordDetail() {
if (this.checkedAttendanceRecordDetail.length == 0) {
this.$alert("请先选择要删除的考勤打卡记录详细信息数据", "提示", { confirmButtonText: "确定", });
} else {
this.attendanceRecordDetailList.splice(this.checkedAttendanceRecordDetail[0].index - 1, 1);
}
},
/** 单选框选中数据 */
handleAttendanceRecordDetailSelectionChange(selection) {
if (selection.length > 1) {
this.$refs.attendanceRecordDetail.clearSelection();
this.$refs.attendanceRecordDetail.toggleRowSelection(selection.pop());
} else {
this.checkedAttendanceRecordDetail = selection;
}
},
// 渲染前置处理
beforeRender(data) {
if(data.entity.attendanceRecordDetailList) {
this.attendanceRecordDetailList = data.entity.attendanceRecordDetailList;
}
return data
},
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/record/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改考勤打卡记录信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "attendance/record/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增考勤打卡记录信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/record/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");
},
// 表单重置
reset() {
this.form = {
staffId : null,
staffName : "",
workNum : "",
deptId : null,
deptName : "",
positionId : null,
positionName : "",
attendanceGroupId : null,
attendanceGroupName : "",
shiftsId : null,
shiftsName : "",
attendanceDate : null,
remark : "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<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="员工ID" prop="staffId" v-model="form.staffId" placeholder="请输入员工ID"/>
<Field label="员工姓名" prop="staffName" v-model="form.staffName" placeholder="请输入员工姓名"/>
<Field label="工号" prop="workNum" v-model="form.workNum" placeholder="请输入工号"/>
<Field label="所属部门" prop="deptId" v-model="form.deptId" placeholder="请输入所属部门"/>
<Field label="所属部门名称" prop="deptName" v-model="form.deptName" placeholder="请输入所属部门名称"/>
<Field label="职位ID" prop="positionId" v-model="form.positionId" placeholder="请输入职位ID"/>
<Field label="职位名称" prop="positionName" v-model="form.positionName" placeholder="请输入职位名称"/>
<Field label="所属考勤组ID" prop="attendanceGroupId" v-model="form.attendanceGroupId" placeholder="请输入所属考勤组ID"/>
<Field label="所属考勤组名称" prop="attendanceGroupName" v-model="form.attendanceGroupName" placeholder="请输入所属考勤组名称"/>
<Field label="班次ID" prop="shiftsId" v-model="form.shiftsId" placeholder="请输入班次ID"/>
<Field label="班次名称" prop="shiftsName" v-model="form.shiftsName" placeholder="请输入班次名称"/>
<Field label="打卡日期" prop="attendanceDate" v-model="form.attendanceDate" type="date" />
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
<el-divider content-position="center">考勤打卡记录详细信息信息</el-divider>
<br/>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAddAttendanceRecordDetail">添加</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" icon="el-icon-delete" size="mini" @click="handleDeleteAttendanceRecordDetail">删除</el-button>
</el-col>
</el-row>
<el-table :data="attendanceRecordDetailList" :row-class-name="rowAttendanceRecordDetailIndex" @selection-change="handleAttendanceRecordDetailSelectionChange" ref="attendanceRecordDetail">
<el-table-column type="selection" width="50" align="center" />
<el-table-column label="序号" align="center" prop="index" width="50"/>
<el-table-column label="班次ID" prop="shiftsId">
<template slot-scope="scope">
<el-input v-model="scope.row.shiftsId" placeholder="请输入班次ID" />
</template>
</el-table-column>
<el-table-column label="班次名称" prop="shiftsName">
<template slot-scope="scope">
<el-input v-model="scope.row.shiftsName" placeholder="请输入班次名称" />
</template>
</el-table-column>
<el-table-column label="上班打卡时间" prop="goWorkDate">
<template slot-scope="scope">
<el-input v-model="scope.row.goWorkDate" placeholder="请输入上班打卡时间" />
</template>
</el-table-column>
<el-table-column label="上班打卡结果" prop="goWorkResult">
<template slot-scope="scope">
<el-input v-model="scope.row.goWorkResult" placeholder="请输入上班打卡结果" />
</template>
</el-table-column>
<el-table-column label="下班打卡时间" prop="offWorkDate">
<template slot-scope="scope">
<el-input v-model="scope.row.offWorkDate" placeholder="请输入下班打卡时间" />
</template>
</el-table-column>
<el-table-column label="下班打卡结果" prop="offWorkResult">
<template slot-scope="scope">
<el-input v-model="scope.row.offWorkResult" placeholder="请输入下班打卡结果" />
</template>
</el-table-column>
<el-table-column label="备注" prop="remark">
<template slot-scope="scope">
<el-input v-model="scope.row.remark" placeholder="请输入备注" />
</template>
</el-table-column>
<el-table-column label="创建用户" prop="createUserId">
<template slot-scope="scope">
<el-input v-model="scope.row.createUserId" placeholder="请输入创建用户" />
</template>
</el-table-column>
<el-table-column label="创建时间" prop="createTime">
<template slot-scope="scope">
<el-input v-model="scope.row.createTime" placeholder="请输入创建时间" />
</template>
</el-table-column>
<el-table-column label="更新用户" prop="updateUserId">
<template slot-scope="scope">
<el-input v-model="scope.row.updateUserId" placeholder="请输入更新用户" />
</template>
</el-table-column>
<el-table-column label="更新时间" prop="updateTime">
<template slot-scope="scope">
<el-input v-model="scope.row.updateTime" placeholder="请输入更新时间" />
</template>
</el-table-column>
</el-table>
<form-buttons @submit='submitForm' noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "AttendanceRecordDetail",
mixins: [form],
components: {
},
created() {
this.changePath("attendance/record")
},
data() {
return {
// 子表选中数据
checkedAttendanceRecordDetail: [],
// 考勤打卡记录详细信息表格数据
attendanceRecordDetailList: [],
// 遮罩层
loading: true,
// 弹出层标题
title: "考勤打卡记录信息",
// 是否显示弹出层
open: false,
direction:"rtl",
toString:[
],
toDate:[
"attendanceDate",
],
// 表单校验
rules: {
staffName: [
{required: true,message: "请输入员工姓名", trigger: "blur" },
{max: 64,message: "最多只能录入64个字符",trigger: "blur",},
],
createTime: [
{required: true,message: "请选择创建时间" },
],
}
};
},
methods: {
/** 考勤打卡记录详细信息序号 */
rowAttendanceRecordDetailIndex({ row, rowIndex }) {
row.index = rowIndex + 1;
},
/** 考勤打卡记录详细信息添加按钮操作 */
handleAddAttendanceRecordDetail() {
let obj = {};
obj.shiftsId = "";
obj.shiftsName = "";
obj.goWorkDate = "";
obj.goWorkResult = "";
obj.offWorkDate = "";
obj.offWorkResult = "";
obj.remark = "";
obj.createUserId = "";
obj.createTime = "";
obj.updateUserId = "";
obj.updateTime = "";
this.attendanceRecordDetailList.push(obj);
},
/** 考勤打卡记录详细信息删除按钮操作 */
handleDeleteAttendanceRecordDetail() {
if (this.checkedAttendanceRecordDetail.length == 0) {
this.$alert("请先选择要删除的考勤打卡记录详细信息数据", "提示", { confirmButtonText: "确定", });
} else {
this.attendanceRecordDetailList.splice(this.checkedAttendanceRecordDetail[0].index - 1, 1);
}
},
/** 单选框选中数据 */
handleAttendanceRecordDetailSelectionChange(selection) {
if (selection.length > 1) {
this.$refs.attendanceRecordDetail.clearSelection();
this.$refs.attendanceRecordDetail.toggleRowSelection(selection.pop());
} else {
this.checkedAttendanceRecordDetail = selection;
}
},
// 渲染前置处理
beforeRender(data) {
if(data.entity.attendanceRecordDetailList) {
this.attendanceRecordDetailList = data.entity.attendanceRecordDetailList;
}
return data
},
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/record/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改考勤打卡记录信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "attendance/record/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增考勤打卡记录信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/record/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");
},
// 表单重置
reset() {
this.form = {
staffId : null,
staffName : "",
workNum : "",
deptId : null,
deptName : "",
positionId : null,
positionName : "",
attendanceGroupId : null,
attendanceGroupName : "",
shiftsId : null,
shiftsName : "",
attendanceDate : null,
remark : "",
};
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>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "AttendanceRecordList",
components: {
drawerShow
},
mixins: [table],
created() {
},
methods: {
renderTable(tableData) {
return (
<el-table stripe data={tableData} class="total-table">
{this.columnSet.map((item) => this.renderTableColumn(item))}
</el-table>
);
},
renderTableColumn(options) {
return (
<el-table-column
prop={options.prop}
label={options.label}
width={options.width}
>
</el-table-column>
);
},
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
},
data() {
return {
/** 子表列元素 */
columnSet:[
{prop:"recordId",label:"考勤记录ID",width:100},
{prop:"shiftsId",label:"班次ID",width:100},
{prop:"shiftsName",label:"班次名称",width:100},
{prop:"goWorkDate",label:"上班打卡时间",width:100},
{prop:"goWorkResult",label:"上班打卡结果",width:100},
{prop:"offWorkDate",label:"下班打卡时间",width:100},
{prop:"offWorkResult",label:"下班打卡结果",width:100},
{prop:"remark",label:"备注",width:100},
],
config: {
search: [
{
name: "staffName",
type: "text",
label: "员工姓名",
fuzzy: true
},
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "员工姓名", prop: "staffName"},
{label: "打卡日期", prop: "attendanceDate", formatter: this.formatterDate},
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{label: "考勤打卡记录详细信息",
width: 120,
prop: "subColumns",
formatter: (row) => {
let widthsize = this.columnSet.reduce((pre, cur) => {
return pre + Number(cur.width);
}, 50);
return (
<el-popover placement="right" width={widthsize} trigger="click">
{this.renderTable(row.attendanceRecordDetailList)}
<el-button type="text" slot="reference">详细</el-button>
</el-popover>
);
},
},
{
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
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="员工ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.staffId}}
</el-descriptions-item>
<el-descriptions-item label="员工姓名" label-class-name="labelClass" content-class-name="contentClass">
{{form.staffName}}
</el-descriptions-item>
<el-descriptions-item label="工号" label-class-name="labelClass" content-class-name="contentClass">
{{form.workNum}}
</el-descriptions-item>
<el-descriptions-item label="所属部门" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptId}}
</el-descriptions-item>
<el-descriptions-item label="所属部门名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptName}}
</el-descriptions-item>
<el-descriptions-item label="职位ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.positionId}}
</el-descriptions-item>
<el-descriptions-item label="职位名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.positionName}}
</el-descriptions-item>
<el-descriptions-item label="所属考勤组ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.attendanceGroupId}}
</el-descriptions-item>
<el-descriptions-item label="所属考勤组名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.attendanceGroupName}}
</el-descriptions-item>
<el-descriptions-item label="班次ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.shiftsId}}
</el-descriptions-item>
<el-descriptions-item label="班次名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.shiftsName}}
</el-descriptions-item>
<el-descriptions-item label="打卡日期" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.attendanceDate)}}
</el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass">
{{form.remark}}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
<template>
<!-- 弹出框表单 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="员工id" prop="staffId" v-model="form.staffId" placeholder="请输入员工id"/>
<Field label="员工姓名" prop="staffName" v-model="form.staffName" type="textarea" placeholder="请输入员工姓名"/>
<Field label="部门id" prop="deptId" v-model="form.deptId" placeholder="请输入部门id"/>
<Field label="部门名称" prop="deptName" v-model="form.deptName" type="textarea" placeholder="请输入部门名称"/>
<Field label="入职时间" prop="entryTime" v-model="form.entryTime" type="date" />
<Field label="事假" prop="personalLeaveDays" v-model="form.personalLeaveDays" placeholder="请输入事假"/>
<Field label="调休" prop="compensatedLeaveDays" v-model="form.compensatedLeaveDays" placeholder="请输入调休"/>
<Field label="病假" prop="sickLeaveDays" v-model="form.sickLeaveDays" placeholder="请输入病假"/>
<Field label="年假" prop="annualLeaveDays" v-model="form.annualLeaveDays" placeholder="请输入年假"/>
<Field label="婚假" prop="marriageLeaveDays" v-model="form.marriageLeaveDays" placeholder="请输入婚假"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import form from "@/assets/mixins/formdialog";
import dialogShow from "./dialogshow";
export default {
mixins: [form],
components: {
dialogShow ,
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "员工假期余额信息",
// 是否显示弹出层
open: false,
toString:[
],
// 表单校验
rules: {
}
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/vacation/balance/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改员工假期余额信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "attendance/vacation/balance/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增员工假期余额信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/vacation/balance/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");
},
// 表单重置
reset() {
this.form = {
staffId : null,
staffName : "",
deptId : null,
deptName : "",
entryTime : null,
personalLeaveDays : BigDecimal.valueOf(0),
compensatedLeaveDays : BigDecimal.valueOf(0),
sickLeaveDays : BigDecimal.valueOf(0),
annualLeaveDays : BigDecimal.valueOf(0),
marriageLeaveDays : BigDecimal.valueOf(0),
remark : "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<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="员工id" prop="staffId" v-model="form.staffId" placeholder="请输入员工id"/>
<Field label="员工姓名" prop="staffName" v-model="form.staffName" type="textarea" placeholder="请输入员工姓名"/>
<Field label="部门id" prop="deptId" v-model="form.deptId" placeholder="请输入部门id"/>
<Field label="部门名称" prop="deptName" v-model="form.deptName" type="textarea" placeholder="请输入部门名称"/>
<Field label="入职时间" prop="entryTime" v-model="form.entryTime" type="date" />
<Field label="事假" prop="personalLeaveDays" v-model="form.personalLeaveDays" placeholder="请输入事假"/>
<Field label="调休" prop="compensatedLeaveDays" v-model="form.compensatedLeaveDays" placeholder="请输入调休"/>
<Field label="病假" prop="sickLeaveDays" v-model="form.sickLeaveDays" placeholder="请输入病假"/>
<Field label="年假" prop="annualLeaveDays" v-model="form.annualLeaveDays" placeholder="请输入年假"/>
<Field label="婚假" prop="marriageLeaveDays" v-model="form.marriageLeaveDays" placeholder="请输入婚假"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
<form-buttons @submit='submitForm' noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "AttendanceVacationBalanceDetail",
mixins: [form],
components: {
},
created() {
this.changePath("attendance/vacation/balance")
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "员工假期余额信息",
// 是否显示弹出层
open: false,
direction:"rtl",
toString:[
],
toDate:[
"entryTime",
],
// 表单校验
rules: {
}
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/vacation/balance/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改员工假期余额信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "attendance/vacation/balance/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增员工假期余额信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/vacation/balance/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");
},
// 表单重置
reset() {
this.form = {
staffId : null,
staffName : "",
deptId : null,
deptName : "",
entryTime : null,
personalLeaveDays : BigDecimal.valueOf(0),
compensatedLeaveDays : BigDecimal.valueOf(0),
sickLeaveDays : BigDecimal.valueOf(0),
annualLeaveDays : BigDecimal.valueOf(0),
marriageLeaveDays : BigDecimal.valueOf(0),
remark : "",
};
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>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "AttendanceVacationBalanceList",
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: "staffId",
type: "text",
label: "员工id",
fuzzy: true
},
{
name: "deptId",
type: "text",
label: "部门id",
fuzzy: true
},
{
name: "entryTime",
type: "date",
label: "入职时间",
fuzzy: true
},
{
name: "personalLeaveDays",
type: "text",
label: "事假",
fuzzy: true
},
{
name: "compensatedLeaveDays",
type: "text",
label: "调休",
fuzzy: true
},
{
name: "sickLeaveDays",
type: "text",
label: "病假",
fuzzy: true
},
{
name: "annualLeaveDays",
type: "text",
label: "年假",
fuzzy: true
},
{
name: "marriageLeaveDays",
type: "text",
label: "婚假",
fuzzy: true
},
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "员工id", prop: "staffId", formatter: this.formatter},
{label: "员工姓名", prop: "staffName"},
{label: "部门id", prop: "deptId", formatter: this.formatter},
{label: "部门名称", prop: "deptName"},
{label: "入职时间", prop: "entryTime", formatter: this.formatterDate},
{label: "事假", prop: "personalLeaveDays", formatter: this.formatterMoney},
{label: "调休", prop: "compensatedLeaveDays", formatter: this.formatterMoney},
{label: "病假", prop: "sickLeaveDays", formatter: this.formatterMoney},
{label: "年假", prop: "annualLeaveDays", formatter: this.formatterMoney},
{label: "婚假", prop: "marriageLeaveDays", formatter: this.formatterMoney},
{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
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="员工id" label-class-name="labelClass" content-class-name="contentClass">
{{form.staffId}}
</el-descriptions-item>
<el-descriptions-item label="员工姓名" label-class-name="labelClass" content-class-name="contentClass">
{{form.staffName}}
</el-descriptions-item>
<el-descriptions-item label="部门id" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptId}}
</el-descriptions-item>
<el-descriptions-item label="部门名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptName}}
</el-descriptions-item>
<el-descriptions-item label="入职时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.entryTime)}}
</el-descriptions-item>
<el-descriptions-item label="事假" label-class-name="labelClass" content-class-name="contentClass">
{{form.personalLeaveDays}}
</el-descriptions-item>
<el-descriptions-item label="调休" label-class-name="labelClass" content-class-name="contentClass">
{{form.compensatedLeaveDays}}
</el-descriptions-item>
<el-descriptions-item label="病假" label-class-name="labelClass" content-class-name="contentClass">
{{form.sickLeaveDays}}
</el-descriptions-item>
<el-descriptions-item label="年假" label-class-name="labelClass" content-class-name="contentClass">
{{form.annualLeaveDays}}
</el-descriptions-item>
<el-descriptions-item label="婚假" label-class-name="labelClass" content-class-name="contentClass">
{{form.marriageLeaveDays}}
</el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass">
{{form.remark}}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
<template>
<!-- 弹出框表单 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="关怀类型" prop="careType" v-model="form.careType" type="select" :enumData="dict.careType" placeholder="请选择关怀类型"/>
<Field label="是否短信提示" prop="sms" v-model="form.sms" type="select" :enumData="dict.sms" placeholder="请选择是否短信提示"/>
<Field label="短信模板内容" prop="smsTemplate" v-model="form.smsTemplate" type="textarea" placeholder="请输入短信模板内容"/>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import form from "@/assets/mixins/formdialog";
import dialogShow from "./dialogshow";
export default {
mixins: [form],
components: {
dialogShow ,
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "关怀问候信息",
// 是否显示弹出层
open: false,
toString:[
"careType",
"sms",
],
// 表单校验
rules: {
createTime: [
{required: true,message: "请选择创建时间" },
],
}
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="care/template/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改关怀问候信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "care/template/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增关怀问候信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="care/template/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");
},
// 表单重置
reset() {
this.form = {
careType : 1,
sms : 1,
smsTemplate : "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<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="careType" v-model="form.careType" type="select" :enumData="dict.careType" placeholder="请选择关怀类型"/>
<Field label="是否短信提示" prop="sms" v-model="form.sms" type="select" :enumData="dict.sms" placeholder="请选择是否短信提示"/>
<Field label="短信模板内容" prop="smsTemplate" v-model="form.smsTemplate" type="textarea" placeholder="请输入短信模板内容"/>
</el-row>
<form-buttons @submit='submitForm' noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "CareTemplateDetail",
mixins: [form],
components: {
},
created() {
this.changePath("care/template")
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "关怀问候信息",
// 是否显示弹出层
open: false,
direction:"rtl",
toString:[
"careType",
"sms",
],
toDate:[
],
// 表单校验
rules: {
createTime: [
{required: true,message: "请选择创建时间" },
],
}
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="care/template/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改关怀问候信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "care/template/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增关怀问候信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="care/template/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");
},
// 表单重置
reset() {
this.form = {
careType : 1,
sms : 1,
smsTemplate : "",
};
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>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "CareTemplateList",
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: [
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "关怀类型", prop: "careType",formatter: this.formatter},
{label: "是否短信提示", prop: "sms",formatter: this.formatter},
{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
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="关怀类型" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("careType", form.careType) }}
</el-descriptions-item>
<el-descriptions-item label="是否短信提示" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("sms", form.sms) }}
</el-descriptions-item>
<el-descriptions-item label="短信模板内容" label-class-name="labelClass" content-class-name="contentClass">
{{form.smsTemplate}}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
"careType",
"sms",
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
<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="父id" prop="parentId" v-model="form.parentId" placeholder="请输入父id"/>
<Field label="祖级列表" prop="ancestors" v-model="form.ancestors" type="textarea" placeholder="请输入祖级列表"/>
<Field label="部门名称" prop="deptName" v-model="form.deptName" type="textarea" placeholder="请输入部门名称"/>
<Field label="部门状态" prop="deptStatus" v-model="form.deptStatus" type="select" :enumData="dict.deptStatus" placeholder="请选择部门状态"/>
<Field label="顺序" prop="orderNum" v-model="form.orderNum" placeholder="请输入顺序"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
<form-buttons @submit='submitForm' noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "DeptDetail",
mixins: [form],
components: {
},
created() {
this.changePath("dept")
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "部门信息",
// 是否显示弹出层
open: false,
direction:"rtl",
toString:[
"deptStatus",
],
toDate:[
],
// 表单校验
rules: {
ancestors: [
{required: true,message: "请输入祖级列表", trigger: "blur" },
{max: 256,message: "最多只能录入256个字符",trigger: "blur",},
],
deptName: [
{required: true,message: "请输入部门名称", trigger: "blur" },
{max: 256,message: "最多只能录入256个字符",trigger: "blur",},
],
deptStatus: [
{required: true,message: "请输入部门状态", trigger: "blur" },
],
orderNum: [
{required: true,message: "请输入顺序", trigger: "blur" },
],
createTime: [
{required: true,message: "请选择创建时间" },
],
}
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="dept/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改部门信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "dept/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增部门信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="dept/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");
},
// 表单重置
reset() {
this.form = {
parentId : null,
ancestors : "",
deptName : "",
deptStatus : 1,
orderNum : 0,
remark : "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<template>
<div class="page">
<LayoutTable ref="layoutTable" :data="tableData" :config="tableConfig" notDel />
<dialog-show ref="dialogform" @ok="getData" />
<LayoutTable :data="tableData" :config="tableConfig">
</LayoutTable>
<drawer-show ref="drawerform" @ok="getData" />
</div>
</template>
<script>
import { handleTree } from "@/assets/utils/index";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
import dialogShow from "./dialogshow";
export default {
name: "Dept",
name: "DeptList",
components: {
drawerShow
},
mixins: [table],
components: { Treeselect, dialogShow },
created() {
},
methods: {
afterRender(data) {
console.log("data",data)
data.data = handleTree(data.data, "id","parentId");
this.deptOptions = data.data;
this.$refs.layoutTable.showType="treetable"
},
handleAdd(row) {
this.$refs.dialogform.add(row, this.deptOptions);
},
/** 重写新增方法 */
toAdd(row) {
console.log("deptOptions", this.deptOptions)
this.$refs.dialogform.add(row, this.deptOptions);
this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.loading = true;
this.$post(this.pageInfo.exclude+"?id="+row.id,{})
.then((res) => {
if (res && res.code && res.code == 1) {
this.deptOptions = handleTree(res.data.result);
this.$refs.dialogform.edit(row, this.deptOptions);
this.loading = false;
}
})
.catch((error) => {
this.$message.error(error.message);
});
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.dialogform.view(row, this.deptOptions);
this.$refs.drawerform.view(row);
},
afterDel(data) {
this.getData()
},
},
data() {
return {
config: {
/** 树表是否默认展开 */
expand:true,
showType: "treetable",
search: [
{
name: "deptName",
name: "orderNum",
type: "text",
label: "部门名称",
label: "顺序",
fuzzy: true
}
},
{
name: "createUserId",
type: "text",
label: "创建用户",
fuzzy: true
},
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "祖级列表", prop: "ancestors"},
{label: "部门名称", prop: "deptName"},
{label: "部门状态", prop: "deptStatus",formatter:this.formatter},
{label: "部门状态", prop: "deptStatus",formatter: this.formatter},
{label: "顺序", prop: "orderNum",formatter: this.formatter},
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{
label: "操作",
width: 280,
width: 240,
formatter: row => {
return (
<div>
<el-button
size="mini"
type="text"
icon="el-icon-edit-outline"
onClick={() => {
this.handleAdd(row);
}}
>
新增
</el-button>
<table-buttons
noAdd
noView
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
</div>
);
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
);
}
}
]
......@@ -108,4 +79,4 @@
};
}
};
</script>
</script>
\ No newline at end of file
<template>
<!-- 弹出框表单 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="分组id" prop="groupId" v-model="form.groupId" placeholder="请输入分组id"/>
<Field label="分组名称" prop="groupName" v-model="form.groupName" placeholder="请输入分组名称"/>
<Field label="职位编码" prop="jobCode" v-model="form.jobCode" placeholder="请输入职位编码"/>
<Field label="职位名称" prop="jobName" v-model="form.jobName" placeholder="请输入职位名称"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import form from "@/assets/mixins/formdialog";
import dialogShow from "./dialogshow";
export default {
mixins: [form],
components: {
dialogShow ,
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "职位信息",
// 是否显示弹出层
open: false,
toString:[
],
// 表单校验
rules: {
}
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="job/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改职位信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "job/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增职位信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="job/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");
},
// 表单重置
reset() {
this.form = {
groupId : null,
groupName : "",
jobCode : "",
jobName : "",
remark : "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<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="分组id" prop="groupId" v-model="form.groupId" placeholder="请输入分组id"/>
<Field label="分组名称" prop="groupName" v-model="form.groupName" placeholder="请输入分组名称"/>
<Field label="职位编码" prop="jobCode" v-model="form.jobCode" placeholder="请输入职位编码"/>
<Field label="职位名称" prop="jobName" v-model="form.jobName" placeholder="请输入职位名称"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
<form-buttons @submit='submitForm' noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "JobDetail",
mixins: [form],
components: {
},
created() {
this.changePath("job")
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "职位信息",
// 是否显示弹出层
open: false,
direction:"rtl",
toString:[
],
toDate:[
],
// 表单校验
rules: {
}
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="job/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改职位信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "job/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增职位信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="job/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");
},
// 表单重置
reset() {
this.form = {
groupId : null,
groupName : "",
jobCode : "",
jobName : "",
remark : "",
};
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>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "JobList",
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: "groupName",
type: "text",
label: "分组名称",
fuzzy: true
},
{
name: "jobCode",
type: "text",
label: "职位编码",
fuzzy: true
},
{
name: "jobName",
type: "text",
label: "职位名称",
fuzzy: true
},
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "分组名称", prop: "groupName"},
{label: "职位编码", prop: "jobCode"},
{label: "职位名称", prop: "jobName"},
{
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
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="分组id" label-class-name="labelClass" content-class-name="contentClass">
{{form.groupId}}
</el-descriptions-item>
<el-descriptions-item label="分组名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.groupName}}
</el-descriptions-item>
<el-descriptions-item label="职位编码" label-class-name="labelClass" content-class-name="contentClass">
{{form.jobCode}}
</el-descriptions-item>
<el-descriptions-item label="职位名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.jobName}}
</el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass">
{{form.remark}}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
<template>
<!-- 弹出框表单 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="员工ID" prop="staffId" v-model="form.staffId" placeholder="请输入员工ID"/>
<Field label="员工姓名" prop="fullName" v-model="form.fullName" placeholder="请输入员工姓名"/>
<Field label="性别1男2女" prop="gender" v-model="form.gender" type="select" :enumData="dict.gender" placeholder="请选择性别1男2女"/>
<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="员工类型1全职2兼职3实习" prop="staffType" v-model="form.staffType" type="select" :enumData="dict.staffType" placeholder="请选择员工类型1全职2兼职3实习"/>
<Field label="员工状态1正式2试用3离职" prop="status" v-model="form.status" type="select" :enumData="dict.status" placeholder="请选择员工状态1正式2试用3离职"/>
<Field label="入职时间" prop="entryDate" v-model="form.entryDate" type="date" />
<Field label="调岗后所属部门" prop="newDeptId" v-model="form.newDeptId" placeholder="请输入调岗后所属部门"/>
<Field label="调岗后所属部门名称" prop="newDeptName" v-model="form.newDeptName" placeholder="请输入调岗后所属部门名称"/>
<Field label="调岗后职位ID" prop="newJobId" v-model="form.newJobId" placeholder="请输入调岗后职位ID"/>
<Field label="调岗后职位名称" prop="newJobName" v-model="form.newJobName" placeholder="请输入调岗后职位名称"/>
<Field label="审核状态0待审核1通过2拒绝" prop="auditStatus" v-model="form.auditStatus" type="select" :enumData="dict.auditStatus" placeholder="请选择审核状态0待审核1通过2拒绝"/>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import form from "@/assets/mixins/formdialog";
import dialogShow from "./dialogshow";
export default {
mixins: [form],
components: {
dialogShow ,
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "员工调岗信息",
// 是否显示弹出层
open: false,
toString:[
"gender",
"politicalstatus",
"staffType",
"status",
"auditStatus",
],
// 表单校验
rules: {
fullName: [
{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/adjust/log/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改员工调岗信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "staff/adjust/log/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增员工调岗信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="staff/adjust/log/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");
},
// 表单重置
reset() {
this.form = {
staffId : null,
fullName : "",
gender : 1,
birthday : null,
photoPath : "",
phoneNumber : "",
idCard : "",
workNum : "",
politicalstatus : 1,
deptId : null,
deptName : "",
jobId : null,
jobName : "",
staffType : 1,
status : 1,
entryDate : null,
newDeptId : null,
newDeptName : "",
newJobId : null,
newJobName : "",
auditStatus : 0,
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<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="员工ID" prop="staffId" v-model="form.staffId" placeholder="请输入员工ID"/>
<Field label="员工姓名" prop="fullName" v-model="form.fullName" placeholder="请输入员工姓名"/>
<Field label="性别1男2女" prop="gender" v-model="form.gender" type="select" :enumData="dict.gender" placeholder="请选择性别1男2女"/>
<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="员工类型1全职2兼职3实习" prop="staffType" v-model="form.staffType" type="select" :enumData="dict.staffType" placeholder="请选择员工类型1全职2兼职3实习"/>
<Field label="员工状态1正式2试用3离职" prop="status" v-model="form.status" type="select" :enumData="dict.status" placeholder="请选择员工状态1正式2试用3离职"/>
<Field label="入职时间" prop="entryDate" v-model="form.entryDate" type="date" />
<Field label="调岗后所属部门" prop="newDeptId" v-model="form.newDeptId" placeholder="请输入调岗后所属部门"/>
<Field label="调岗后所属部门名称" prop="newDeptName" v-model="form.newDeptName" placeholder="请输入调岗后所属部门名称"/>
<Field label="调岗后职位ID" prop="newJobId" v-model="form.newJobId" placeholder="请输入调岗后职位ID"/>
<Field label="调岗后职位名称" prop="newJobName" v-model="form.newJobName" placeholder="请输入调岗后职位名称"/>
<Field label="审核状态0待审核1通过2拒绝" prop="auditStatus" v-model="form.auditStatus" type="select" :enumData="dict.auditStatus" placeholder="请选择审核状态0待审核1通过2拒绝"/>
</el-row>
<form-buttons @submit='submitForm' noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "StaffAdjustLogDetail",
mixins: [form],
components: {
},
created() {
this.changePath("staff/adjust/log")
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "员工调岗信息",
// 是否显示弹出层
open: false,
direction:"rtl",
toString:[
"gender",
"politicalstatus",
"staffType",
"status",
"auditStatus",
],
toDate:[
"birthday",
"entryDate",
],
// 表单校验
rules: {
fullName: [
{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/adjust/log/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改员工调岗信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "staff/adjust/log/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增员工调岗信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="staff/adjust/log/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");
},
// 表单重置
reset() {
this.form = {
staffId : null,
fullName : "",
gender : 1,
birthday : null,
photoPath : "",
phoneNumber : "",
idCard : "",
workNum : "",
politicalstatus : 1,
deptId : null,
deptName : "",
jobId : null,
jobName : "",
staffType : 1,
status : 1,
entryDate : null,
newDeptId : null,
newDeptName : "",
newJobId : null,
newJobName : "",
auditStatus : 0,
};
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>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "StaffAdjustLogList",
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: "fullName",
type: "text",
label: "员工姓名",
fuzzy: true
},
{
name: "gender",
type: "text",
label: "性别1男2女",
fuzzy: true
},
{
name: "politicalstatus",
type: "select",
label: "政治面貌 ",
fuzzy: true
},
{
name: "staffType",
type: "text",
label: "员工类型1全职2兼职3实习",
fuzzy: true
},
{
name: "status",
type: "text",
label: "员工状态1正式2试用3离职",
fuzzy: true
},
{
name: "auditStatus",
type: "text",
label: "审核状态0待审核1通过2拒绝",
fuzzy: true
},
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "员工姓名", prop: "fullName"},
{label: "性别1男2女", prop: "gender",formatter: this.formatter},
{label: "政治面貌 ", prop: "politicalstatus",formatter: this.formatter},
{label: "员工类型1全职2兼职3实习", prop: "staffType",formatter: this.formatter},
{label: "员工状态1正式2试用3离职", prop: "status",formatter: this.formatter},
{label: "入职时间", prop: "entryDate", formatter: this.formatterDate},
{label: "审核状态0待审核1通过2拒绝", prop: "auditStatus",formatter: this.formatter},
{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
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="员工ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.staffId}}
</el-descriptions-item>
<el-descriptions-item label="员工姓名" label-class-name="labelClass" content-class-name="contentClass">
{{form.fullName}}
</el-descriptions-item>
<el-descriptions-item label="性别1男2女" label-class-name="labelClass" content-class-name="contentClass">
{{form.gender}}
</el-descriptions-item>
<el-descriptions-item label="出生日期" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.birthday)}}
</el-descriptions-item>
<el-descriptions-item label="照片" label-class-name="labelClass" content-class-name="contentClass">
{{form.photoPath}}
</el-descriptions-item>
<el-descriptions-item label="联系电话" label-class-name="labelClass" content-class-name="contentClass">
{{form.phoneNumber}}
</el-descriptions-item>
<el-descriptions-item label="身份证号码" label-class-name="labelClass" content-class-name="contentClass">
{{form.idCard}}
</el-descriptions-item>
<el-descriptions-item label="工号" label-class-name="labelClass" content-class-name="contentClass">
{{form.workNum}}
</el-descriptions-item>
<el-descriptions-item label="政治面貌 " label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("politicalstatus", form.politicalstatus) }}
</el-descriptions-item>
<el-descriptions-item label="所属部门" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptId}}
</el-descriptions-item>
<el-descriptions-item label="所属部门名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptName}}
</el-descriptions-item>
<el-descriptions-item label="职位ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.jobId}}
</el-descriptions-item>
<el-descriptions-item label="职位名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.jobName}}
</el-descriptions-item>
<el-descriptions-item label="员工类型1全职2兼职3实习" label-class-name="labelClass" content-class-name="contentClass">
{{form.staffType}}
</el-descriptions-item>
<el-descriptions-item label="员工状态1正式2试用3离职" label-class-name="labelClass" content-class-name="contentClass">
{{form.status}}
</el-descriptions-item>
<el-descriptions-item label="入职时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.entryDate)}}
</el-descriptions-item>
<el-descriptions-item label="调岗后所属部门" label-class-name="labelClass" content-class-name="contentClass">
{{form.newDeptId}}
</el-descriptions-item>
<el-descriptions-item label="调岗后所属部门名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.newDeptName}}
</el-descriptions-item>
<el-descriptions-item label="调岗后职位ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.newJobId}}
</el-descriptions-item>
<el-descriptions-item label="调岗后职位名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.newJobName}}
</el-descriptions-item>
<el-descriptions-item label="审核状态0待审核1通过2拒绝" label-class-name="labelClass" content-class-name="contentClass">
{{form.auditStatus}}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
"gender",
"politicalstatus",
"staffType",
"status",
"auditStatus",
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
<template>
<!-- 弹出框表单 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<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-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import form from "@/assets/mixins/formdialog";
import dialogShow from "./dialogshow";
export default {
mixins: [form],
components: {
dialogShow ,
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "员工黑名单信息",
// 是否显示弹出层
open: false,
toString:[
],
// 表单校验
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;
},
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();
}
},
},
};
</script>
<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-row>
<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: "请选择创建时间" },
],
}
};
},
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");
},
// 表单重置
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>
</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);
},
},
data() {
return {
config: {
search: [
{
name: "staffName",
type: "text",
label: "员工姓名",
fuzzy: true
},
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "员工姓名", prop: "staffName"},
{label: "离职时间", prop: "leaveDate", formatter: this.formatterDate},
{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} />
);
}
}
]
}
};
}
};
</script>
\ No newline at end of file
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="员工姓名" label-class-name="labelClass" content-class-name="contentClass">
{{form.staffName}}
</el-descriptions-item>
<el-descriptions-item label="联系电话" label-class-name="labelClass" content-class-name="contentClass">
{{form.phoneNumber}}
</el-descriptions-item>
<el-descriptions-item label="身份证号码" label-class-name="labelClass" content-class-name="contentClass">
{{form.idCard}}
</el-descriptions-item>
<el-descriptions-item label="离职时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.leaveDate)}}
</el-descriptions-item>
<el-descriptions-item label="离职原因" label-class-name="labelClass" content-class-name="contentClass">
{{form.leaveReason}}
</el-descriptions-item>
<el-descriptions-item label="拉黑时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.blackDate)}}
</el-descriptions-item>
<el-descriptions-item label="拉黑原因" label-class-name="labelClass" content-class-name="contentClass">
{{form.blackReason}}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
<template>
<!-- 弹出框表单 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<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="birthday" v-model="form.birthday" type="date" />
<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="entryDate" v-model="form.entryDate" type="date" />
<Field label="关怀类型" prop="careType" v-model="form.careType" type="select" :enumData="dict.careType" placeholder="请选择关怀类型"/>
<Field label="发送状态" prop="sendStatus" v-model="form.sendStatus" type="select" :enumData="dict.sendStatus" placeholder="请选择发送状态"/>
<Field label="关怀内容"><editor v-model="form.content" :min-height="256"/></Field>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import form from "@/assets/mixins/formdialog";
import dialogShow from "./dialogshow";
import Editor from '@/components/Editor';
export default {
mixins: [form],
components: {
dialogShow ,
Editor,
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "员工关怀信息",
// 是否显示弹出层
open: false,
toString:[
"careType",
"sendStatus",
],
// 表单校验
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/care/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改员工关怀信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "staff/care/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增员工关怀信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="staff/care/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");
},
// 表单重置
reset() {
this.form = {
staffId : null,
staffName : "",
birthday : null,
deptId : null,
deptName : "",
jobId : null,
jobName : "",
entryDate : null,
careType : 1,
sendStatus : 0,
content : "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<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="birthday" v-model="form.birthday" type="date" />
<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="entryDate" v-model="form.entryDate" type="date" />
<Field label="关怀类型" prop="careType" v-model="form.careType" type="select" :enumData="dict.careType" placeholder="请选择关怀类型"/>
<Field label="发送状态" prop="sendStatus" v-model="form.sendStatus" type="select" :enumData="dict.sendStatus" placeholder="请选择发送状态"/>
<Field label="关怀内容"><editor v-model="form.content" :min-height="256"/></Field>
</el-row>
<form-buttons @submit='submitForm' noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "StaffCareDetail",
mixins: [form],
components: {
},
created() {
this.changePath("staff/care")
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "员工关怀信息",
// 是否显示弹出层
open: false,
direction:"rtl",
toString:[
"careType",
"sendStatus",
],
toDate:[
"birthday",
"entryDate",
],
// 表单校验
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/care/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改员工关怀信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "staff/care/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增员工关怀信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="staff/care/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");
},
// 表单重置
reset() {
this.form = {
staffId : null,
staffName : "",
birthday : null,
deptId : null,
deptName : "",
jobId : null,
jobName : "",
entryDate : null,
careType : 1,
sendStatus : 0,
content : "",
};
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>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "StaffCareList",
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
},
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "员工姓名", prop: "staffName"},
{label: "入职时间", prop: "entryDate", formatter: this.formatterDate},
{label: "关怀类型", prop: "careType",formatter: this.formatter},
{label: "发送状态", prop: "sendStatus",formatter: this.formatter},
{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
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="员工姓名" label-class-name="labelClass" content-class-name="contentClass">
{{form.staffName}}
</el-descriptions-item>
<el-descriptions-item label="出生日期" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.birthday)}}
</el-descriptions-item>
<el-descriptions-item label="所属部门" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptId}}
</el-descriptions-item>
<el-descriptions-item label="所属部门名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptName}}
</el-descriptions-item>
<el-descriptions-item label="职位ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.jobId}}
</el-descriptions-item>
<el-descriptions-item label="职位名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.jobName}}
</el-descriptions-item>
<el-descriptions-item label="入职时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.entryDate)}}
</el-descriptions-item>
<el-descriptions-item label="关怀类型" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("careType", form.careType) }}
</el-descriptions-item>
<el-descriptions-item label="发送状态" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("sendStatus", form.sendStatus) }}
</el-descriptions-item>
<el-descriptions-item label="关怀内容" label-class-name="labelClass" content-class-name="contentClass">
<editor v-model="form.content" :min-height="256"/>
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
import Editor from '@/components/Editor';
export default {
mixins: [view],
components: {
Editor,
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
"careType",
"sendStatus",
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
<template>
<!-- 弹出框表单 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="员工ID" prop="staffId" v-model="form.staffId" placeholder="请输入员工ID"/>
<Field label="员工姓名" prop="staffName" v-model="form.staffName" placeholder="请输入员工姓名"/>
<Field label="性别" prop="gender" v-model="form.gender" type="select" :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="contractStartDate" v-model="form.contractStartDate" type="date" />
<Field label="现合同到期时间" prop="contractEndDate" v-model="form.contractEndDate" type="date" />
<Field label="合同公司" prop="contractCompany" v-model="form.contractCompany" type="textarea" placeholder="请输入合同公司"/>
<Field label="合同类型" prop="contractType" v-model="form.contractType" type="select" :enumData="dict.contractType" placeholder="请选择合同类型"/>
<Field label="新合同开始时间" prop="newStartDate" v-model="form.newStartDate" type="date" />
<Field label="新合同到期时间" prop="newEndDate" v-model="form.newEndDate" type="date" />
<Field label="审核状态" prop="auditStatus" v-model="form.auditStatus" type="select" :enumData="dict.auditStatus" placeholder="请选择审核状态"/>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import form from "@/assets/mixins/formdialog";
import dialogShow from "./dialogshow";
export default {
mixins: [form],
components: {
dialogShow ,
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "员工合同信息",
// 是否显示弹出层
open: false,
toString:[
"gender",
"politicalstatus",
"staffType",
"status",
"contractType",
"auditStatus",
],
// 表单校验
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/contract/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改员工合同信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "staff/contract/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增员工合同信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="staff/contract/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");
},
// 表单重置
reset() {
this.form = {
staffId : null,
staffName : "",
gender : 1,
birthday : null,
photoPath : "",
phoneNumber : "",
idCard : "",
workNum : "",
politicalstatus : 1,
deptId : null,
deptName : "",
jobId : null,
jobName : "",
staffType : 1,
status : 1,
entryDate : null,
contractStartDate : null,
contractEndDate : null,
contractCompany : "",
contractType : 1,
newStartDate : null,
newEndDate : null,
auditStatus : 0,
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<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="员工ID" prop="staffId" v-model="form.staffId" placeholder="请输入员工ID"/>
<Field label="员工姓名" prop="staffName" v-model="form.staffName" placeholder="请输入员工姓名"/>
<Field label="性别" prop="gender" v-model="form.gender" type="select" :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="contractStartDate" v-model="form.contractStartDate" type="date" />
<Field label="现合同到期时间" prop="contractEndDate" v-model="form.contractEndDate" type="date" />
<Field label="合同公司" prop="contractCompany" v-model="form.contractCompany" type="textarea" placeholder="请输入合同公司"/>
<Field label="合同类型" prop="contractType" v-model="form.contractType" type="select" :enumData="dict.contractType" placeholder="请选择合同类型"/>
<Field label="新合同开始时间" prop="newStartDate" v-model="form.newStartDate" type="date" />
<Field label="新合同到期时间" prop="newEndDate" v-model="form.newEndDate" type="date" />
<Field label="审核状态" prop="auditStatus" v-model="form.auditStatus" type="select" :enumData="dict.auditStatus" placeholder="请选择审核状态"/>
</el-row>
<form-buttons @submit='submitForm' noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "StaffContractDetail",
mixins: [form],
components: {
},
created() {
this.changePath("staff/contract")
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "员工合同信息",
// 是否显示弹出层
open: false,
direction:"rtl",
toString:[
"gender",
"politicalstatus",
"staffType",
"status",
"contractType",
"auditStatus",
],
toDate:[
"birthday",
"entryDate",
"contractStartDate",
"contractEndDate",
"newStartDate",
"newEndDate",
],
// 表单校验
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/contract/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改员工合同信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "staff/contract/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增员工合同信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="staff/contract/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");
},
// 表单重置
reset() {
this.form = {
staffId : null,
staffName : "",
gender : 1,
birthday : null,
photoPath : "",
phoneNumber : "",
idCard : "",
workNum : "",
politicalstatus : 1,
deptId : null,
deptName : "",
jobId : null,
jobName : "",
staffType : 1,
status : 1,
entryDate : null,
contractStartDate : null,
contractEndDate : null,
contractCompany : "",
contractType : 1,
newStartDate : null,
newEndDate : null,
auditStatus : 0,
};
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>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "StaffContractList",
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
},
{
name: "politicalstatus",
type: "select",
label: "政治面貌 ",
fuzzy: true
},
{
name: "staffType",
type: "select",
label: "员工类型",
fuzzy: true
},
{
name: "status",
type: "select",
label: "员工状态",
fuzzy: true
},
{
name: "auditStatus",
type: "select",
label: "审核状态",
fuzzy: true
},
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "员工姓名", prop: "staffName"},
{label: "性别", prop: "gender",formatter: this.formatter},
{label: "政治面貌 ", prop: "politicalstatus",formatter: this.formatter},
{label: "员工类型", prop: "staffType",formatter: this.formatter},
{label: "员工状态", prop: "status",formatter: this.formatter},
{label: "入职时间", prop: "entryDate", formatter: this.formatterDate},
{label: "现合同开始时间", prop: "contractStartDate", formatter: this.formatterDate},
{label: "现合同到期时间", prop: "contractEndDate", formatter: this.formatterDate},
{label: "合同类型", prop: "contractType",formatter: this.formatter},
{label: "新合同开始时间", prop: "newStartDate", formatter: this.formatterDate},
{label: "新合同到期时间", prop: "newEndDate", formatter: this.formatterDate},
{label: "审核状态", prop: "auditStatus",formatter: this.formatter},
{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
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="员工ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.staffId}}
</el-descriptions-item>
<el-descriptions-item label="员工姓名" label-class-name="labelClass" content-class-name="contentClass">
{{form.staffName}}
</el-descriptions-item>
<el-descriptions-item label="性别" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("gender", form.gender) }}
</el-descriptions-item>
<el-descriptions-item label="出生日期" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.birthday)}}
</el-descriptions-item>
<el-descriptions-item label="照片" label-class-name="labelClass" content-class-name="contentClass">
{{form.photoPath}}
</el-descriptions-item>
<el-descriptions-item label="联系电话" label-class-name="labelClass" content-class-name="contentClass">
{{form.phoneNumber}}
</el-descriptions-item>
<el-descriptions-item label="身份证号码" label-class-name="labelClass" content-class-name="contentClass">
{{form.idCard}}
</el-descriptions-item>
<el-descriptions-item label="工号" label-class-name="labelClass" content-class-name="contentClass">
{{form.workNum}}
</el-descriptions-item>
<el-descriptions-item label="政治面貌 " label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("politicalstatus", form.politicalstatus) }}
</el-descriptions-item>
<el-descriptions-item label="所属部门" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptId}}
</el-descriptions-item>
<el-descriptions-item label="所属部门名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptName}}
</el-descriptions-item>
<el-descriptions-item label="职位ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.jobId}}
</el-descriptions-item>
<el-descriptions-item label="职位名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.jobName}}
</el-descriptions-item>
<el-descriptions-item label="员工类型" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("staffType", form.staffType) }}
</el-descriptions-item>
<el-descriptions-item label="员工状态" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("status", form.status) }}
</el-descriptions-item>
<el-descriptions-item label="入职时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.entryDate)}}
</el-descriptions-item>
<el-descriptions-item label="现合同开始时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.contractStartDate)}}
</el-descriptions-item>
<el-descriptions-item label="现合同到期时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.contractEndDate)}}
</el-descriptions-item>
<el-descriptions-item label="合同公司" label-class-name="labelClass" content-class-name="contentClass">
{{form.contractCompany}}
</el-descriptions-item>
<el-descriptions-item label="合同类型" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("contractType", form.contractType) }}
</el-descriptions-item>
<el-descriptions-item label="新合同开始时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.newStartDate)}}
</el-descriptions-item>
<el-descriptions-item label="新合同到期时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.newEndDate)}}
</el-descriptions-item>
<el-descriptions-item label="审核状态" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("auditStatus", form.auditStatus) }}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
"gender",
"politicalstatus",
"staffType",
"status",
"contractType",
"auditStatus",
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
<template>
<!-- 弹出框表单 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="员工姓名" prop="name" v-model="form.name" placeholder="请输入员工姓名"/>
<Field label="性别" prop="gender" v-model="form.gender" type="select" :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="positionId" v-model="form.positionId" placeholder="请输入职位ID"/>
<Field label="职位名称" prop="positionName" v-model="form.positionName" 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="registerPath" v-model="form.registerPath" type="textarea" placeholder="请输入入职登记表"/>
<Field label="入职时间" prop="entryDate" v-model="form.entryDate" type="date" />
<Field label="转正时间" prop="regularDate" v-model="form.regularDate" type="date" />
<Field label="离职时间" prop="leaveDate" v-model="form.leaveDate" type="date" />
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import form from "@/assets/mixins/formdialog";
import dialogShow from "./dialogshow";
export default {
mixins: [form],
components: {
dialogShow ,
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "员工基本信息",
// 是否显示弹出层
open: false,
toString:[
"gender",
"politicalstatus",
"staffType",
"status",
],
// 表单校验
rules: {
name: [
{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/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改员工基本信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "staff/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增员工基本信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="staff/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");
},
// 表单重置
reset() {
this.form = {
name : "",
gender : 1,
birthday : null,
photoPath : "",
phoneNumber : "",
idCard : "",
workNum : "",
politicalstatus : 1,
deptId : null,
deptName : "",
positionId : null,
positionName : "",
staffType : 1,
status : 1,
registerPath : "",
entryDate : null,
regularDate : null,
leaveDate : null,
remark : "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<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="name" v-model="form.name" placeholder="请输入员工姓名"/>
<Field label="性别" prop="gender" v-model="form.gender" type="select" :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="positionId" v-model="form.positionId" placeholder="请输入职位ID"/>
<Field label="职位名称" prop="positionName" v-model="form.positionName" 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="registerPath" v-model="form.registerPath" type="textarea" placeholder="请输入入职登记表"/>
<Field label="入职时间" prop="entryDate" v-model="form.entryDate" type="date" />
<Field label="转正时间" prop="regularDate" v-model="form.regularDate" type="date" />
<Field label="离职时间" prop="leaveDate" v-model="form.leaveDate" type="date" />
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
<form-buttons @submit='submitForm' noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "StaffDetail",
mixins: [form],
components: {
},
created() {
this.changePath("staff")
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "员工基本信息",
// 是否显示弹出层
open: false,
direction:"rtl",
toString:[
"gender",
"politicalstatus",
"staffType",
"status",
],
toDate:[
"birthday",
"entryDate",
"regularDate",
"leaveDate",
],
// 表单校验
rules: {
name: [
{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/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改员工基本信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "staff/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增员工基本信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="staff/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");
},
// 表单重置
reset() {
this.form = {
name : "",
gender : 1,
birthday : null,
photoPath : "",
phoneNumber : "",
idCard : "",
workNum : "",
politicalstatus : 1,
deptId : null,
deptName : "",
positionId : null,
positionName : "",
staffType : 1,
status : 1,
registerPath : "",
entryDate : null,
regularDate : null,
leaveDate : null,
remark : "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<template>
<!-- 弹出框表单 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="员工ID" prop="staffId" v-model="form.staffId" placeholder="请输入员工ID"/>
<Field label="员工姓名" prop="staffName" v-model="form.staffName" placeholder="请输入员工姓名"/>
<Field label="性别" prop="gender" v-model="form.gender" type="select" :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="leaveDate" v-model="form.leaveDate" type="date" />
<Field label="离职原因" prop="leaveReason" v-model="form.leaveReason" type="textarea" placeholder="请输入离职原因"/>
<Field label="审核状态" prop="auditStatus" v-model="form.auditStatus" type="select" :enumData="dict.auditStatus" placeholder="请选择审核状态"/>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import form from "@/assets/mixins/formdialog";
import dialogShow from "./dialogshow";
export default {
mixins: [form],
components: {
dialogShow ,
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "员工离职信息",
// 是否显示弹出层
open: false,
toString:[
"gender",
"politicalstatus",
"staffType",
"status",
"auditStatus",
],
// 表单校验
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/leave/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改员工离职信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "staff/leave/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增员工离职信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="staff/leave/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");
},
// 表单重置
reset() {
this.form = {
staffId : null,
staffName : "",
gender : 1,
birthday : null,
photoPath : "",
phoneNumber : "",
idCard : "",
workNum : "",
politicalstatus : 1,
deptId : null,
deptName : "",
jobId : null,
jobName : "",
staffType : 1,
status : 1,
entryDate : null,
leaveDate : null,
leaveReason : "",
auditStatus : 0,
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<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="员工ID" prop="staffId" v-model="form.staffId" placeholder="请输入员工ID"/>
<Field label="员工姓名" prop="staffName" v-model="form.staffName" placeholder="请输入员工姓名"/>
<Field label="性别" prop="gender" v-model="form.gender" type="select" :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="leaveDate" v-model="form.leaveDate" type="date" />
<Field label="离职原因" prop="leaveReason" v-model="form.leaveReason" type="textarea" placeholder="请输入离职原因"/>
<Field label="审核状态" prop="auditStatus" v-model="form.auditStatus" type="select" :enumData="dict.auditStatus" placeholder="请选择审核状态"/>
</el-row>
<form-buttons @submit='submitForm' noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "StaffLeaveDetail",
mixins: [form],
components: {
},
created() {
this.changePath("staff/leave")
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "员工离职信息",
// 是否显示弹出层
open: false,
direction:"rtl",
toString:[
"gender",
"politicalstatus",
"staffType",
"status",
"auditStatus",
],
toDate:[
"birthday",
"entryDate",
"leaveDate",
],
// 表单校验
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/leave/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改员工离职信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "staff/leave/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增员工离职信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="staff/leave/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");
},
// 表单重置
reset() {
this.form = {
staffId : null,
staffName : "",
gender : 1,
birthday : null,
photoPath : "",
phoneNumber : "",
idCard : "",
workNum : "",
politicalstatus : 1,
deptId : null,
deptName : "",
jobId : null,
jobName : "",
staffType : 1,
status : 1,
entryDate : null,
leaveDate : null,
leaveReason : "",
auditStatus : 0,
};
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>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "StaffLeaveList",
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
},
{
name: "politicalstatus",
type: "select",
label: "政治面貌 ",
fuzzy: true
},
{
name: "staffType",
type: "select",
label: "员工类型",
fuzzy: true
},
{
name: "status",
type: "select",
label: "员工状态",
fuzzy: true
},
{
name: "auditStatus",
type: "select",
label: "审核状态",
fuzzy: true
},
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "员工姓名", prop: "staffName"},
{label: "性别", prop: "gender",formatter: this.formatter},
{label: "政治面貌 ", prop: "politicalstatus",formatter: this.formatter},
{label: "员工类型", prop: "staffType",formatter: this.formatter},
{label: "员工状态", prop: "status",formatter: this.formatter},
{label: "入职时间", prop: "entryDate", formatter: this.formatterDate},
{label: "离职时间", prop: "leaveDate", formatter: this.formatterDate},
{label: "审核状态", prop: "auditStatus",formatter: this.formatter},
{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
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="员工ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.staffId}}
</el-descriptions-item>
<el-descriptions-item label="员工姓名" label-class-name="labelClass" content-class-name="contentClass">
{{form.staffName}}
</el-descriptions-item>
<el-descriptions-item label="性别" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("gender", form.gender) }}
</el-descriptions-item>
<el-descriptions-item label="出生日期" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.birthday)}}
</el-descriptions-item>
<el-descriptions-item label="照片" label-class-name="labelClass" content-class-name="contentClass">
{{form.photoPath}}
</el-descriptions-item>
<el-descriptions-item label="联系电话" label-class-name="labelClass" content-class-name="contentClass">
{{form.phoneNumber}}
</el-descriptions-item>
<el-descriptions-item label="身份证号码" label-class-name="labelClass" content-class-name="contentClass">
{{form.idCard}}
</el-descriptions-item>
<el-descriptions-item label="工号" label-class-name="labelClass" content-class-name="contentClass">
{{form.workNum}}
</el-descriptions-item>
<el-descriptions-item label="政治面貌 " label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("politicalstatus", form.politicalstatus) }}
</el-descriptions-item>
<el-descriptions-item label="所属部门" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptId}}
</el-descriptions-item>
<el-descriptions-item label="所属部门名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptName}}
</el-descriptions-item>
<el-descriptions-item label="职位ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.jobId}}
</el-descriptions-item>
<el-descriptions-item label="职位名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.jobName}}
</el-descriptions-item>
<el-descriptions-item label="员工类型" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("staffType", form.staffType) }}
</el-descriptions-item>
<el-descriptions-item label="员工状态" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("status", form.status) }}
</el-descriptions-item>
<el-descriptions-item label="入职时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.entryDate)}}
</el-descriptions-item>
<el-descriptions-item label="离职时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.leaveDate)}}
</el-descriptions-item>
<el-descriptions-item label="离职原因" label-class-name="labelClass" content-class-name="contentClass">
{{form.leaveReason}}
</el-descriptions-item>
<el-descriptions-item label="审核状态" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("auditStatus", form.auditStatus) }}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
"gender",
"politicalstatus",
"staffType",
"status",
"auditStatus",
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
<template>
<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: "StaffList",
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: "name",
type: "text",
label: "员工姓名",
fuzzy: true
},
{
name: "politicalstatus",
type: "select",
label: "政治面貌 ",
fuzzy: true
},
{
name: "staffType",
type: "select",
label: "员工类型",
fuzzy: true
},
{
name: "status",
type: "select",
label: "员工状态",
fuzzy: true
},
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "员工姓名", prop: "name"},
{label: "性别", prop: "gender",formatter: this.formatter},
{label: "政治面貌 ", prop: "politicalstatus",formatter: this.formatter},
{label: "员工类型", prop: "staffType",formatter: this.formatter},
{label: "员工状态", prop: "status",formatter: this.formatter},
{label: "入职时间", prop: "entryDate", formatter: this.formatterDate},
{label: "转正时间", prop: "regularDate", formatter: this.formatterDate},
{label: "离职时间", prop: "leaveDate", 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} />
);
}
}
]
}
};
}
};
</script>
\ No newline at end of file
<template>
<!-- 弹出框表单 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="员工ID" prop="staffId" v-model="form.staffId" placeholder="请输入员工ID"/>
<Field label="员工姓名" prop="staffName" v-model="form.staffName" placeholder="请输入员工姓名"/>
<Field label="性别" prop="gender" v-model="form.gender" type="select" :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-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import form from "@/assets/mixins/formdialog";
import dialogShow from "./dialogshow";
export default {
mixins: [form],
components: {
dialogShow ,
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "员工转正信息",
// 是否显示弹出层
open: false,
toString:[
"gender",
"politicalstatus",
"staffType",
"status",
"auditStatus",
],
// 表单校验
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/regular/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改员工转正信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "staff/regular/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增员工转正信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="staff/regular/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");
},
// 表单重置
reset() {
this.form = {
staffId : null,
staffName : "",
gender : 1,
birthday : null,
photoPath : "",
phoneNumber : "",
idCard : "",
workNum : "",
politicalstatus : 1,
deptId : null,
deptName : "",
jobId : null,
jobName : "",
staffType : 1,
status : 1,
entryDate : null,
regularDate : null,
auditStatus : 0,
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<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="员工ID" prop="staffId" v-model="form.staffId" placeholder="请输入员工ID"/>
<Field label="员工姓名" prop="staffName" v-model="form.staffName" placeholder="请输入员工姓名"/>
<Field label="性别" prop="gender" v-model="form.gender" type="select" :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>
<form-buttons @submit='submitForm' noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "StaffRegularDetail",
mixins: [form],
components: {
},
created() {
this.changePath("staff/regular")
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "员工转正信息",
// 是否显示弹出层
open: false,
direction:"rtl",
toString:[
"gender",
"politicalstatus",
"staffType",
"status",
"auditStatus",
],
toDate:[
"birthday",
"entryDate",
"regularDate",
],
// 表单校验
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/regular/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改员工转正信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "staff/regular/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增员工转正信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="staff/regular/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");
},
// 表单重置
reset() {
this.form = {
staffId : null,
staffName : "",
gender : 1,
birthday : null,
photoPath : "",
phoneNumber : "",
idCard : "",
workNum : "",
politicalstatus : 1,
deptId : null,
deptName : "",
jobId : null,
jobName : "",
staffType : 1,
status : 1,
entryDate : null,
regularDate : null,
auditStatus : 0,
};
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>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "StaffRegularList",
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
},
{
name: "politicalstatus",
type: "select",
label: "政治面貌 ",
fuzzy: true
},
{
name: "staffType",
type: "select",
label: "员工类型",
fuzzy: true
},
{
name: "status",
type: "select",
label: "员工状态",
fuzzy: true
},
{
name: "auditStatus",
type: "select",
label: "审核状态",
fuzzy: true
},
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "员工姓名", prop: "staffName"},
{label: "性别", prop: "gender",formatter: this.formatter},
{label: "政治面貌 ", prop: "politicalstatus",formatter: this.formatter},
{label: "员工类型", prop: "staffType",formatter: this.formatter},
{label: "员工状态", prop: "status",formatter: this.formatter},
{label: "入职时间", prop: "entryDate", formatter: this.formatterDate},
{label: "计划转正时间", prop: "regularDate", formatter: this.formatterDate},
{label: "审核状态", prop: "auditStatus",formatter: this.formatter},
{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
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="员工ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.staffId}}
</el-descriptions-item>
<el-descriptions-item label="员工姓名" label-class-name="labelClass" content-class-name="contentClass">
{{form.staffName}}
</el-descriptions-item>
<el-descriptions-item label="性别" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("gender", form.gender) }}
</el-descriptions-item>
<el-descriptions-item label="出生日期" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.birthday)}}
</el-descriptions-item>
<el-descriptions-item label="照片" label-class-name="labelClass" content-class-name="contentClass">
{{form.photoPath}}
</el-descriptions-item>
<el-descriptions-item label="联系电话" label-class-name="labelClass" content-class-name="contentClass">
{{form.phoneNumber}}
</el-descriptions-item>
<el-descriptions-item label="身份证号码" label-class-name="labelClass" content-class-name="contentClass">
{{form.idCard}}
</el-descriptions-item>
<el-descriptions-item label="工号" label-class-name="labelClass" content-class-name="contentClass">
{{form.workNum}}
</el-descriptions-item>
<el-descriptions-item label="政治面貌 " label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("politicalstatus", form.politicalstatus) }}
</el-descriptions-item>
<el-descriptions-item label="所属部门" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptId}}
</el-descriptions-item>
<el-descriptions-item label="所属部门名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptName}}
</el-descriptions-item>
<el-descriptions-item label="职位ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.jobId}}
</el-descriptions-item>
<el-descriptions-item label="职位名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.jobName}}
</el-descriptions-item>
<el-descriptions-item label="员工类型" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("staffType", form.staffType) }}
</el-descriptions-item>
<el-descriptions-item label="员工状态" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("status", form.status) }}
</el-descriptions-item>
<el-descriptions-item label="入职时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.entryDate)}}
</el-descriptions-item>
<el-descriptions-item label="计划转正时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.regularDate)}}
</el-descriptions-item>
<el-descriptions-item label="审核状态" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("auditStatus", form.auditStatus) }}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
"gender",
"politicalstatus",
"staffType",
"status",
"auditStatus",
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="员工姓名" label-class-name="labelClass" content-class-name="contentClass">
{{form.name}}
</el-descriptions-item>
<el-descriptions-item label="性别" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("gender", form.gender) }}
</el-descriptions-item>
<el-descriptions-item label="出生日期" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.birthday)}}
</el-descriptions-item>
<el-descriptions-item label="照片" label-class-name="labelClass" content-class-name="contentClass">
{{form.photoPath}}
</el-descriptions-item>
<el-descriptions-item label="联系电话" label-class-name="labelClass" content-class-name="contentClass">
{{form.phoneNumber}}
</el-descriptions-item>
<el-descriptions-item label="身份证号码" label-class-name="labelClass" content-class-name="contentClass">
{{form.idCard}}
</el-descriptions-item>
<el-descriptions-item label="工号" label-class-name="labelClass" content-class-name="contentClass">
{{form.workNum}}
</el-descriptions-item>
<el-descriptions-item label="政治面貌 " label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("politicalstatus", form.politicalstatus) }}
</el-descriptions-item>
<el-descriptions-item label="所属部门" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptId}}
</el-descriptions-item>
<el-descriptions-item label="所属部门名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptName}}
</el-descriptions-item>
<el-descriptions-item label="职位ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.positionId}}
</el-descriptions-item>
<el-descriptions-item label="职位名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.positionName}}
</el-descriptions-item>
<el-descriptions-item label="员工类型" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("staffType", form.staffType) }}
</el-descriptions-item>
<el-descriptions-item label="员工状态" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("status", form.status) }}
</el-descriptions-item>
<el-descriptions-item label="入职登记表" label-class-name="labelClass" content-class-name="contentClass">
{{form.registerPath}}
</el-descriptions-item>
<el-descriptions-item label="入职时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.entryDate)}}
</el-descriptions-item>
<el-descriptions-item label="转正时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.regularDate)}}
</el-descriptions-item>
<el-descriptions-item label="离职时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.leaveDate)}}
</el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass">
{{form.remark}}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
"gender",
"politicalstatus",
"staffType",
"status",
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
{
"local": {
"baseUrl": "http://127.0.0.1:17400/refined",
"baseLogin": "http://127.0.0.1:18222/m"
"baseUrl": "http://127.0.0.1:17500/attendance"
},
"test": {
"baseUrl": "http://192.168.0.98:11091/m",
"baseUrl": "http://192.168.0.98:11039/attendance",
"baseLogin": "http://192.168.0.98:11078/base"
},
"portal": {
......
......@@ -364,7 +364,7 @@ CREATE TABLE mortals_xhx_attendance_leave_record(
`duration` int(9) COMMENT '时长,单位秒',
`reason` text COMMENT '请假事由',
`approverId` bigint(20) COMMENT '审批负责人Id',
`approver` varchar COMMENT '审批负责人',
`approver` varchar(64) COMMENT '审批负责人',
`attachment` varchar(255) COMMENT '附件',
`attachmentPath` varchar(255) COMMENT '附件路径',
`remark` varchar(255) COMMENT '备注',
......
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