Commit 8cd12952 authored by 姬鋆屾's avatar 姬鋆屾

pref:代码优化

parent 07298ac7
<template>
<div class="page">
<!-- S 班次表格主体 -->
<LayoutTable :data="tableData" :config="tableConfig"></LayoutTable>
<dialog-show ref="dialogform" @ok="getData" />
<!-- E 班次表格主体 -->
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import dialogShow from "./dialogshow";
import table from "@/assets/mixins/table";
import dialogShow from './dialogshow';
import table from '@/assets/mixins/table';
export default {
name: "AttendanceClassList",
name: 'AttendanceClassList',
components: {
dialogShow,
dialogShow
},
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}
align="center"
></el-table-column>
);
},
/** 重写新增方法 */
toAdd(row) {
this.$refs.dialogform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.dialogform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.dialogform.view(row);
},
},
data() {
return {
/** 子表列元素 */
columnSet: [
{
prop: "goWorkDate",
label: "上班打卡时间",
prop: 'goWorkDate',
label: '上班打卡时间',
width: 150,
align: "center",
align: 'center'
},
{
prop: "goWorkDateBefore",
label: "上班前打卡(分钟)",
prop: 'goWorkDateBefore',
label: '上班前打卡(分钟)',
width: 150,
align: "center",
align: 'center'
},
{
prop: "goWorkDateAfter",
label: "上班后打卡(分钟)",
prop: 'goWorkDateAfter',
label: '上班后打卡(分钟)',
width: 150,
align: "center",
align: 'center'
},
{
prop: "offWorkDate",
label: "下班打卡时间",
prop: 'offWorkDate',
label: '下班打卡时间',
width: 150,
align: "center",
align: 'center'
},
{
prop: "offWorkDateBefore",
label: "下班前打卡(分钟)",
prop: 'offWorkDateBefore',
label: '下班前打卡(分钟)',
width: 150,
align: "center",
align: 'center'
},
{
prop: "offWorkDateAfter",
label: "下班后打卡(分钟)",
prop: 'offWorkDateAfter',
label: '下班后打卡(分钟)',
width: 150,
align: "center",
},
align: 'center'
}
// {prop:"remark",label:"备注",width:150},
// {prop:"classId",label:"班次ID",width:150},
],
config: {
search: [
{
name: "className",
type: "text",
label: "班次名称",
fuzzy: true,
},
name: 'className',
type: 'text',
label: '班次名称',
fuzzy: true
}
],
isshowTabPane: true,
columns: [
{ type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 },
{ label: "班次名称", prop: "className" },
{ type: 'selection', width: 60 },
{ type: 'index', label: '序号', width: 50 },
{ label: '班次名称', prop: 'className' },
// {label: "考勤时间", prop: "className"},
{
label: "考勤班次详细信息",
label: '考勤班次详细信息',
width: 200,
prop: "subColumns",
prop: 'subColumns',
formatter: (row) => {
let widthsize = this.columnSet.reduce((pre, cur) => {
return pre + Number(cur.width);
......@@ -121,10 +91,10 @@ export default {
</el-button>
</el-popover>
);
},
}
},
{
label: "操作",
label: '操作',
width: 240,
formatter: (row) => {
return (
......@@ -137,11 +107,45 @@ export default {
onDel={this.toDel}
/>
);
},
},
],
},
}
}
]
}
};
},
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}
align="center"
></el-table-column>
);
},
/** 重写新增方法 */
toAdd(row) {
this.$refs.dialogform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.dialogform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.dialogform.view(row);
}
}
};
</script>
<template>
<div class="page">
<LayoutTable
:data="tableData"
notDel
:config="tableConfig"
v-if="isshow"
></LayoutTable>
<!-- S 考勤组表格主体 -->
<LayoutTable :data="tableData" notDel :config="tableConfig" v-if="isshow"></LayoutTable>
<group-template ref="groupTemplate" @ok="okFn" />
<!-- E 考勤组表格主体 -->
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import groupTemplate from "./groupTemplate";
import table from "@/assets/mixins/table";
import groupTemplate from './groupTemplate';
import table from '@/assets/mixins/table';
export default {
name: "AttendanceGroupList",
name: 'AttendanceGroupList',
components: {
groupTemplate,
groupTemplate
},
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.isshow = false;
this.$refs.groupTemplate.add(row);
// this.$router.push(
// {
// path:'/attendance/group/view'
// }
// )
},
/** 重写编辑方法 */
toEdit(row) {
this.isshow = false;
this.$refs.groupTemplate.edit(row);
// this.$router.push(
// {
// path:'/attendance/group/view'
// }
// )
},
/** 重写查看方法 */
toView(row) {
this.isshow = false;
this.$refs.groupTemplate.view(row);
},
okFn(val) {
this.getData();
this.isshow = val;
},
},
data() {
return {
isshow: true,
/** 子表列元素 */
columnSet: [
{ prop: "groupId", label: "考勤组", width: 100 },
{ prop: "groupName", label: "考勤组名称", width: 100 },
{ prop: "staffId", label: "员工ID", width: 100 },
{ prop: "staffName", label: "员工姓名", width: 100 },
{ prop: "partAttendance", label: "是否参与考勤,", width: 100 },
{ prop: "remark", label: "备注", width: 100 },
{ prop: 'groupId', label: '考勤组', width: 100 },
{ prop: 'groupName', label: '考勤组名称', width: 100 },
{ prop: 'staffId', label: '员工ID', width: 100 },
{ prop: 'staffName', label: '员工姓名', width: 100 },
{ prop: 'partAttendance', label: '是否参与考勤,', width: 100 },
{ prop: 'remark', label: '备注', width: 100 }
],
config: {
isshowTabPane: true,
search: [
{
name: "groupName",
type: "text",
label: "考勤组名称",
fuzzy: true,
},
name: 'groupName',
type: 'text',
label: '考勤组名称',
fuzzy: true
}
],
columns: [
{ type: "selection", width: 60, fixed: "left" },
{ type: "index", label: "序号", width: 50, fixed: "left" },
{ type: 'selection', width: 60, fixed: 'left' },
{ type: 'index', label: '序号', width: 50, fixed: 'left' },
{ label: "考勤组名称", prop: "groupName", width: 200, fixed: "left" },
{ label: '考勤组名称', prop: 'groupName', width: 200, fixed: 'left' },
{ label: "人数", prop: "personNum", width: 80, fixed: "left" },
{ label: '人数', prop: 'personNum', width: 80, fixed: 'left' },
{
label: "负责人",
prop: "responsibleName",
label: '负责人',
prop: 'responsibleName',
width: 80,
fixed: "left",
fixed: 'left'
}, //未
{
label: "类型",
prop: "type",
label: '类型',
prop: 'type',
formatter: this.formatterattendType,
width: 100,
fixed: "left",
fixed: 'left'
},
// {label: "创建用户", prop: "createUserId", formatter: this.formatter},
......@@ -120,9 +69,9 @@ export default {
// {label: "考勤方式", prop: "attendanceType"},
{
label: "考勤时间",
prop: "attendanceTime",
formatter: this.formatterBanci,
label: '考勤时间',
prop: 'attendanceTime',
formatter: this.formatterBanci
}, //未
// {label: "考勤组人员信息",
......@@ -141,7 +90,7 @@ export default {
// },
// },
{
label: "操作",
label: '操作',
width: 240,
formatter: (row) => {
return (
......@@ -154,12 +103,63 @@ export default {
onDel={this.toDel}
/>
);
},
},
],
},
}
}
]
}
};
},
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.isshow = false;
this.$refs.groupTemplate.add(row);
// this.$router.push(
// {
// path:'/attendance/group/view'
// }
// )
},
/** 重写编辑方法 */
toEdit(row) {
this.isshow = false;
this.$refs.groupTemplate.edit(row);
// this.$router.push(
// {
// path:'/attendance/group/view'
// }
// )
},
/** 重写查看方法 */
toView(row) {
this.isshow = false;
this.$refs.groupTemplate.view(row);
},
// 确认操作
okFn(val) {
this.getData();
this.isshow = val;
}
}
};
</script>
<style lang="less" scoped>
......
<template>
<div class="page">
<!-- S 表格主体 -->
<LayoutTable :data="tableData" :config="tableConfig" notDel>
<el-button
type="primary"
......@@ -10,165 +11,134 @@
>导出
</el-button>
</LayoutTable>
<!-- E 表格主体 -->
<!-- S 弹窗部分 -->
<drawer-show ref="drawerform" @ok="getData" />
<drawer-audit ref="draweraudit" @ok="getData" />
<!-- E 弹窗部分 -->
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import drawerAudit from "./draweraudit";
import table from "@/assets/mixins/table";
import drawerShow from './drawershow';
import drawerAudit from './draweraudit';
import table from '@/assets/mixins/table';
export default {
name: "AttendanceLeaveRecordList",
name: 'AttendanceLeaveRecordList',
components: {
drawerShow,
drawerAudit,
drawerAudit
},
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);
},
audit(row) {
//todo 审核页面进行审核
this.$refs.drawerform.edit(row);
// this.$refs.draweraudit.view(row);
},
doExport() {
this.isExport = true;
this.$download(
"/attendance/leave/record/exportExcel",
{
idList: this.selection,
name: this.$route.query["name"],
startTimeEnd: this.query.startTimeEnd,
startTimeStart: this.query.startTimeStart,
},
{ type: "excel", name: "请假记录" }
)
.then(() => (this.isExport = false))
.catch((error) => {
this.isExport = false;
this.$message.error(error.message);
});
},
},
data() {
return {
// 导出加载状态
isExport: false,
// 表格配置项
config: {
isshowTabPane: true,
search: [
{
name: "leavePerson",
type: "text",
label: "请假人",
fuzzy: true,
name: 'leavePerson',
type: 'text',
label: '请假人',
fuzzy: true
},
{
name: "phoneNumber",
type: "text",
label: "电话号码",
fuzzy: true,
name: 'phoneNumber',
type: 'text',
label: '电话号码',
fuzzy: true
},
{
name: "salaId",
type: "selectSalaId",
label: "大厅",
fuzzy: false,
name: 'salaId',
type: 'selectSalaId',
label: '大厅',
fuzzy: false
},
{
name: "deptId",
type: "selectDeptId",
label: "部门",
fuzzy: false,
name: 'deptId',
type: 'selectDeptId',
label: '部门',
fuzzy: false
},
{
name: "leaveType",
type: "select",
label: "请假类型",
name: 'leaveType',
type: 'select',
label: '请假类型'
},
{
name: "startTimeStart",
type: "date",
label: "开始时间",
fuzzy: false,
name: 'startTimeStart',
type: 'date',
label: '开始时间',
fuzzy: false
},
{
name: "startTimeEnd",
type: "date",
label: "结束时间",
fuzzy: false,
},
name: 'startTimeEnd',
type: 'date',
label: '结束时间',
fuzzy: false
}
],
columns: [
{ type: "selection", width: 40 },
{ type: "index", label: "序号", width: 50 },
{ type: 'selection', width: 40 },
{ type: 'index', label: '序号', width: 50 },
// {label: "请假人id", prop: "leavePersonId", formatter: this.formatter},
{ label: "请假人", prop: "leavePerson" },
{ label: '请假人', prop: 'leavePerson' },
// {label: "所属部门id", prop: "deptId", formatter: this.formatter},
{
label: "大厅",
prop: "salaName",
label: '大厅',
prop: 'salaName',
formatter: this.formatter,
show: true,
show: true
},
{
label: "部门",
prop: "deptName",
label: '部门',
prop: 'deptName',
formatter: this.formatter,
show: true,
show: true
},
{ label: "电话号码", prop: "phoneNumber" },
{ label: '电话号码', prop: 'phoneNumber' },
{
label: "请假类型",
prop: "leaveType",
formatter: this.formatterLeaveType,
label: '请假类型',
prop: 'leaveType',
formatter: this.formatterLeaveType
},
{
label: "开始时间",
prop: "startTime",
label: '开始时间',
prop: 'startTime',
width: 150,
formatter: this.formatterDate,
formatter: this.formatterDate
},
{
label: "结束时间",
prop: "endTime",
label: '结束时间',
prop: 'endTime',
width: 150,
formatter: this.formatterDate,
formatter: this.formatterDate
},
{
label: "钉钉原始时间(换算时长)",
label: '钉钉原始时间(换算时长)',
width: 190,
formatter: (row) => {
return (
(row.sourceDingTime ? row.sourceDingTime : "--") +
(row.sourceDingTime ? row.sourceDingTime : '--') +
(row.duration
? "" + (row.duration / 60 / 60 / 8).toFixed(2) + "" + ""
: "(--)")
? '' + (row.duration / 60 / 60 / 8).toFixed(2) + '' + ''
: '(--)')
);
},
}
},
// {label: "审批负责人Id", prop: "approverId", formatter: this.formatter},
......@@ -176,27 +146,27 @@ export default {
/* {label: "处理状态", prop: "processStatus", formatter: this.formatter},*/
{
label: "状态",
prop: "auditResult",
formatter: this.formatter,
label: '状态',
prop: 'auditResult',
formatter: this.formatter
},
// { label: "审批负责人", prop: "approver" },
{
label: "创建用户",
prop: "createUserId",
formatter: this.formatter,
label: '创建用户',
prop: 'createUserId',
formatter: this.formatter
},
{
label: "创建时间",
prop: "createTime",
label: '创建时间',
prop: 'createTime',
width: 150,
formatter: this.formatterDate,
formatter: this.formatterDate
},
{
label: "操作",
label: '操作',
width: 220,
formatter: (row) => {
return (
......@@ -221,15 +191,54 @@ export default {
审核
</el-button>
) : (
""
''
)}
</div>
);
},
},
],
},
}
}
]
}
};
},
created() {},
methods: {
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
audit(row) {
//todo 审核页面进行审核
this.$refs.drawerform.edit(row);
// this.$refs.draweraudit.view(row);
},
// 导出操作
doExport() {
this.isExport = true;
this.$download(
'/attendance/leave/record/exportExcel',
{
idList: this.selection,
name: this.$route.query['name'],
startTimeEnd: this.query.startTimeEnd,
startTimeStart: this.query.startTimeStart
},
{ type: 'excel', name: '请假记录' }
)
.then(() => (this.isExport = false))
.catch((error) => {
this.isExport = false;
this.$message.error(error.message);
});
}
}
};
</script>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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