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

pref:代码优化

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