Commit 31afcce3 authored by 姬鋆屾's avatar 姬鋆屾

parent 0c7c0c15
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="80px" height="80px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -616 -81 )">
<path d="M 656 82 C 677.84 82 695 99.16 695 121 C 695 142.84 677.84 160 656 160 C 634.16 160 617 142.84 617 121 C 617 99.16 634.16 82 656 82 Z " fill-rule="nonzero" fill="#535353" stroke="none" fill-opacity="0.0784313725490196" />
<path d="M 656 82 C 677.84 82 695 99.16 695 121 C 695 142.84 677.84 160 656 160 C 634.16 160 617 142.84 617 121 C 617 99.16 634.16 82 656 82 Z " stroke-width="2" stroke="#bbbbbb" fill="none" />
</g>
</svg>
\ No newline at end of file
...@@ -21,7 +21,6 @@ ...@@ -21,7 +21,6 @@
v-if="isShowButton('notAdd')" v-if="isShowButton('notAdd')"
type="primary" type="primary"
icon="el-icon-plus" icon="el-icon-plus"
plain
size="mini" size="mini"
@click="config.methods.add" @click="config.methods.add"
title="新增" title="新增"
...@@ -56,7 +55,6 @@ ...@@ -56,7 +55,6 @@
icon="el-icon-delete" icon="el-icon-delete"
type="danger" type="danger"
size="mini" size="mini"
plain
title="批量删除" title="批量删除"
>批量删除</el-button >批量删除</el-button
> >
......
...@@ -4,49 +4,315 @@ ...@@ -4,49 +4,315 @@
:title="title" :title="title"
:visible.sync="open" :visible.sync="open"
:direction="direction" :direction="direction"
size="50%"> size="50%"
>
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row> <el-row>
<Field label="员工ID" prop="staffId" v-model="form.staffId" placeholder="请输入员工ID"/> <el-col :span="22">
<Field label="员工姓名" prop="staffName" v-model="form.staffName" placeholder="请输入员工姓名"/> <el-form-item label="姓名:">
<Field label="工号" prop="workNum" v-model="form.workNum" placeholder="请输入工号"/> <el-select v-model="form.staffId" style="width: 100%;">
<Field label="所属部门" prop="deptId" v-model="form.deptId" placeholder="请输入所属部门"/> <el-option
<Field label="所属部门名称" prop="deptName" v-model="form.deptName" placeholder="请输入所属部门名称"/> v-for="item in staffArr"
<Field label="所属考勤组ID" prop="attendanceGroupId" v-model="form.attendanceGroupId" placeholder="请输入所属考勤组ID"/> :key="item.value"
<Field label="所属考勤组名称" prop="attendanceGroupName" v-model="form.attendanceGroupName" placeholder="请输入所属考勤组名称"/> :label="item.label"
<Field label="考勤时间" prop="attendanceDate" v-model="form.attendanceDate" type="date" /> :value="item.value"
<Field label="绩效规则id" prop="ruleId" v-model="form.ruleId" placeholder="请输入绩效规则id"/> >
<Field label="规则名称" prop="ruleNme" v-model="form.ruleNme" placeholder="请输入规则名称"/> </el-option
<Field label="异常时间" prop="errorTime" v-model="form.errorTime" type="date" /> ></el-select>
<Field label="上下班时间" prop="goOffTimeStr" v-model="form.goOffTimeStr" placeholder="请输入上下班时间"/> </el-form-item>
<Field label="实际打卡时间" prop="actualAttendTime" v-model="form.actualAttendTime" type="date" /> </el-col>
<Field label="异常处理结果" prop="errorResult" v-model="form.errorResult" placeholder="请输入异常处理结果"/> </el-row>
<Field label="扣分方式" prop="subMethod" v-model="form.subMethod" type="select" :enumData="dict.subMethod" placeholder="请选择扣分方式"/> <el-row>
<Field label="扣分人员" prop="deductPerson" v-model="form.deductPerson" placeholder="请输入扣分人员"/> <el-col :span="22">
<Field label="扣分时间" prop="deductTime" v-model="form.deductTime" type="date" /> <el-form-item label="所属部门:">
<Field label="增减类型" prop="subAddType" v-model="form.subAddType" type="select" :enumData="dict.subAddType" placeholder="请选择增减类型"/> <el-select v-model="form.deptId" style="width: 100%;">
<Field label="扣分或增加分值" prop="score" v-model="form.score" placeholder="请输入扣分或增加分值"/> <el-option
<Field label="处理状态" prop="processStatus" v-model="form.processStatus" type="select" :enumData="dict.processStatus" placeholder="请选择处理状态"/> v-for="item in deptArr"
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/> :key="item.value"
:label="item.label"
:value="item.value"
>
</el-option
></el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="22">
<el-form-item label="窗口编号:">
<el-input
v-model="form.windowNum"
placeholder="请输入窗口编号"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="22">
<el-form-item label="考勤组:">
<el-select v-model="form.attendanceGroupId" style="width: 100%;">
<el-option
v-for="item in kaoqinArr"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option
></el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="22">
<el-form-item label="异常时间:">
<el-date-picker
v-model="form.errorTime"
type="date"
placeholder="选择日期"
style="width: 100%;"
>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="22">
<el-form-item label="实际打卡时间:">
<el-time-select
v-model="form.actualAttendTime"
:picker-options="{
start: '06:00',
step: '00:15',
end: '18:30',
}"
placeholder="选择时间"
style="width: 100%;"
>
</el-time-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="22">
<el-form-item label="图片凭证:">
<el-upload
class="upload-demo"
action="https://jsonplaceholder.typicode.com/posts/"
:on-preview="handlePreview"
:on-remove="handleRemove"
:before-remove="beforeRemove"
multiple
:limit="3"
:on-exceed="handleExceed"
:file-list="fileList"
>
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">
只能上传jpg/png等图片文件
</div>
</el-upload>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="22">
<el-form-item label="绩效规则:">
<el-col :span="22">
<el-select v-model="form.attendanceGroupId" style="width: 100%;">
<el-option
v-for="item in kaoqinArr"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option
></el-select>
</el-col>
<el-col :span="22">
<el-select
v-model="form.attendanceGroupId"
style="width: 100%;margin-top: 10px;"
>
<el-option
v-for="item in kaoqinArr"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option></el-select
></el-col>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="22">
<el-form-item label="扣分分值:">
<p>{{ form.score }}</p>
</el-form-item>
</el-col>
</el-row> </el-row>
<form-buttons @submit='submitForm' v-if="pageInfo.type!='view'" noCancelBtn /> <form-buttons
@submit="submitForm"
v-if="pageInfo.type != 'view'"
noCancelBtn
/>
</el-form> </el-form>
<!-- <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="attendanceGroupId"
v-model="form.attendanceGroupId"
placeholder="请输入所属考勤组ID"
/>
<Field
label="所属考勤组名称"
prop="attendanceGroupName"
v-model="form.attendanceGroupName"
placeholder="请输入所属考勤组名称"
/>
<Field
label="考勤时间"
prop="attendanceDate"
v-model="form.attendanceDate"
type="date"
/>
<Field
label="绩效规则id"
prop="ruleId"
v-model="form.ruleId"
placeholder="请输入绩效规则id"
/>
<Field
label="规则名称"
prop="ruleNme"
v-model="form.ruleNme"
placeholder="请输入规则名称"
/>
<Field
label="异常时间"
prop="errorTime"
v-model="form.errorTime"
type="date"
/>
<Field
label="上下班时间"
prop="goOffTimeStr"
v-model="form.goOffTimeStr"
placeholder="请输入上下班时间"
/>
<Field
label="实际打卡时间"
prop="actualAttendTime"
v-model="form.actualAttendTime"
type="date"
/>
<Field
label="异常处理结果"
prop="errorResult"
v-model="form.errorResult"
placeholder="请输入异常处理结果"
/>
<Field
label="扣分方式"
prop="subMethod"
v-model="form.subMethod"
type="select"
:enumData="dict.subMethod"
placeholder="请选择扣分方式"
/>
<Field
label="扣分人员"
prop="deductPerson"
v-model="form.deductPerson"
placeholder="请输入扣分人员"
/>
<Field
label="扣分时间"
prop="deductTime"
v-model="form.deductTime"
type="date"
/>
<Field
label="增减类型"
prop="subAddType"
v-model="form.subAddType"
type="select"
:enumData="dict.subAddType"
placeholder="请选择增减类型"
/>
<Field
label="扣分或增加分值"
prop="score"
v-model="form.score"
placeholder="请输入扣分或增加分值"
/>
<Field
label="处理状态"
prop="processStatus"
v-model="form.processStatus"
type="select"
:enumData="dict.processStatus"
placeholder="请选择处理状态"
/>
<Field
label="备注"
prop="remark"
v-model="form.remark"
type="textarea"
placeholder="请输入备注"
/>
</el-row>
<form-buttons
@submit="submitForm"
v-if="pageInfo.type != 'view'"
noCancelBtn
/>
</el-form> -->
</el-drawer> </el-drawer>
</template> </template>
<script> <script>
import form from "@/assets/mixins/formdialog"; import form from "@/assets/mixins/formdialog";
export default { export default {
name: "PerformAttendRecordDetail", name: "PerformAttendRecordDetail",
mixins: [form], mixins: [form],
components: { components: {},
},
created() { created() {
this.changePath("perform/attend/record") this.changePath("perform/attend/record");
}, },
data() { data() {
return { return {
...@@ -56,56 +322,54 @@ ...@@ -56,56 +322,54 @@
title: "考勤绩效记录信息", title: "考勤绩效记录信息",
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
direction:"rtl", direction: "rtl",
toString:[ toString: ["subMethod", "subAddType", "processStatus"],
"subMethod", toDate: ["attendanceDate", "errorTime", "actualAttendTime", "deductTime"],
"subAddType",
"processStatus",
],
toDate:[
"attendanceDate",
"errorTime",
"actualAttendTime",
"deductTime",
],
// 表单校验 // 表单校验
rules: { rules: {
staffName: [ staffName: [
{required: true,message: "请输入员工姓名", trigger: "blur" }, { required: true, message: "请输入员工姓名", trigger: "blur" },
{max: 64,message: "最多只能录入64个字符",trigger: "blur",}, { max: 64, message: "最多只能录入64个字符", trigger: "blur" },
], ],
createTime: [ createTime: [{ required: true, message: "请选择创建时间" }],
{required: true,message: "请选择创建时间" }, },
staffArr: [
{
label: "员工1",
value: "1",
},
], ],
} deptArr: [],
kaoqinArr: [],
fileList: [],
}; };
}, },
methods: { methods: {
/** 编辑 */ /** 编辑 */
edit(row) { edit(row) {
this.reset() this.reset();
this.query = { id: row.id }; this.query = { id: row.id };
this.urls.currUrl ="perform/attend/record/edit"; this.urls.currUrl = "perform/attend/record/edit";
this.getData(); this.getData();
this.pageInfo.type="edit" this.pageInfo.type = "edit";
this.title = "修改考勤绩效记录信息"; this.title = "修改考勤绩效记录信息";
}, },
/** 新增 */ /** 新增 */
add(row) { add(row) {
this.reset() this.reset();
this.urls.currUrl = "perform/attend/record/add"; this.urls.currUrl = "perform/attend/record/add";
this.getData(); this.getData();
this.pageInfo.type="add" this.pageInfo.type = "add";
this.title = "新增考勤绩效记录信息"; this.title = "新增考勤绩效记录信息";
}, },
/** 查看*/ /** 查看*/
view(row) { view(row) {
this.reset() this.reset();
this.query = { id: row.id }; this.query = { id: row.id };
this.urls.currUrl ="perform/attend/record/view"; this.urls.currUrl = "perform/attend/record/view";
this.getData(); this.getData();
this.pageInfo.type="view" this.pageInfo.type = "view";
this.title = "考勤绩效记录信息详细"; this.title = "考勤绩效记录信息详细";
}, },
/**取消按钮 */ /**取消按钮 */
...@@ -125,27 +389,27 @@ ...@@ -125,27 +389,27 @@
// 表单重置 // 表单重置
reset() { reset() {
this.form = { this.form = {
staffId : null, staffId: null,
staffName : "", staffName: "",
workNum : "", workNum: "",
deptId : null, deptId: null,
deptName : "", deptName: "",
attendanceGroupId : null, attendanceGroupId: null,
attendanceGroupName : "", attendanceGroupName: "",
attendanceDate : null, attendanceDate: null,
ruleId : null, ruleId: null,
ruleNme : "", ruleNme: "",
errorTime : null, errorTime: null,
goOffTimeStr : "", goOffTimeStr: "",
actualAttendTime : null, actualAttendTime: null,
errorResult : "", errorResult: "",
subMethod : 1, subMethod: 1,
deductPerson : "", deductPerson: "",
deductTime : null, deductTime: null,
subAddType : 1, subAddType: 1,
score : 0.00, score: 0.0,
processStatus : 1, processStatus: 1,
remark : "", remark: "",
}; };
this.resetForm("form"); this.resetForm("form");
}, },
...@@ -154,6 +418,22 @@ ...@@ -154,6 +418,22 @@
this.$refs[refName].resetFields(); this.$refs[refName].resetFields();
} }
}, },
handleRemove(file, fileList) {
console.log(file, fileList);
}, },
}; handlePreview(file) {
console.log(file);
},
handleExceed(files, fileList) {
this.$message.warning(
`当前限制选择 3 个文件,本次选择了 ${
files.length
} 个文件,共选择了 ${files.length + fileList.length} 个文件`
);
},
beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${file.name}?`);
},
},
};
</script> </script>
...@@ -7,7 +7,8 @@ ...@@ -7,7 +7,8 @@
icon="el-icon-tickets" icon="el-icon-tickets"
size="mini" size="mini"
@click="handleImport" @click="handleImport"
>导入</el-button> >导入</el-button
>
<el-button <el-button
slot="table-head-left2" slot="table-head-left2"
style="margin-left: 10px" style="margin-left: 10px"
...@@ -15,7 +16,8 @@ ...@@ -15,7 +16,8 @@
size="mini" size="mini"
@click="doExport" @click="doExport"
:disabled="isExport" :disabled="isExport"
>导出</el-button> >导出</el-button
>
</LayoutTable> </LayoutTable>
<!-- 考勤绩效记录信息导入对话框 --> <!-- 考勤绩效记录信息导入对话框 -->
...@@ -43,10 +45,11 @@ ...@@ -43,10 +45,11 @@
<em>点击上传</em> <em>点击上传</em>
</div> </div>
<div class="el-upload__tip" slot="tip"> <div class="el-upload__tip" slot="tip">
<el-checkbox <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的数据
v-model="upload.updateSupport" <el-link
/>是否更新已经存在的数据 type="primary"
<el-link type="primary" style="font-size: 14px" @click="downloadTemplate" style="font-size: 14px"
@click="downloadTemplate"
>下载模板</el-link >下载模板</el-link
> >
</div> </div>
...@@ -65,17 +68,16 @@ ...@@ -65,17 +68,16 @@
</template> </template>
<script> <script>
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import drawerShow from "./drawershow"; import drawerShow from "./drawershow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
export default { export default {
name: "PerformAttendRecordList", name: "PerformAttendRecordList",
components: { components: {
drawerShow drawerShow,
},
mixins: [table],
created() {
}, },
mixins: [table],
created() {},
methods: { methods: {
/** 导入 */ /** 导入 */
handleImport() { handleImport() {
...@@ -85,7 +87,11 @@ ...@@ -85,7 +87,11 @@
/** 下载模板操作 */ /** 下载模板操作 */
downloadTemplate() { downloadTemplate() {
this.isExport = true; this.isExport = true;
this.$download("/perform/attend/record/downloadTemplate", {}, { type: "excel" }) this.$download(
"/perform/attend/record/downloadTemplate",
{},
{ type: "excel" }
)
.then(() => (this.isExport = false)) .then(() => (this.isExport = false))
.catch((error) => { .catch((error) => {
this.isExport = false; this.isExport = false;
...@@ -111,9 +117,15 @@ ...@@ -111,9 +117,15 @@
/** 导出Excel */ /** 导出Excel */
doExport() { doExport() {
this.isExport = true; this.isExport = true;
this.$download("/perform/attend/record/exportExcel", { this.$download(
"idList": this.selection, "/perform/attend/record/exportExcel",
}, { type: "excel" }).then(() => this.isExport = false).catch(error => { {
idList: this.selection,
},
{ type: "excel" }
)
.then(() => (this.isExport = false))
.catch((error) => {
this.isExport = false; this.isExport = false;
this.$message.error(error.message); this.$message.error(error.message);
}); });
...@@ -130,7 +142,6 @@ ...@@ -130,7 +142,6 @@
toView(row) { toView(row) {
this.$refs.drawerform.view(row); this.$refs.drawerform.view(row);
}, },
}, },
data() { data() {
return { return {
...@@ -149,58 +160,101 @@ ...@@ -149,58 +160,101 @@
}, },
isExport: false, isExport: false,
config: { config: {
isshowTabPane:true, isshowTabPane: true,
search: [ search: [
{
name: "status",
type: "select",
label: "全部状态",
fuzzy: false,
},
{
name: "deptId",
type: "select",
label: "全部部门",
fuzzy: false,
},
{
name: "date",
type: "date",
label: "请选择日期",
fuzzy: false,
},
{
name: "staffName",
type: "text",
label: "请输入员工姓名搜索",
fuzzy: false,
},
], ],
columns: [ columns: [
{type: "selection", width: 60}, { type: "selection", width: 50 },
{type: "index",label: "序号",width: 50}, { type: "index", label: "序号", width: 50 },
{label: "员工姓名", prop: "staffName"},
{label: "工号", prop: "workNum"}, { label: "姓名", prop: "staffName" },
{label: "所属部门名称", prop: "deptName"}, { label: "窗口编号", prop: "windowNum" },
{label: "所属考勤组名称", prop: "attendanceGroupName"}, { label: "所属部门", prop: "deptName" },
{label: "考勤时间", prop: "attendanceDate", formatter: this.formatterDate}, { label: "考勤组", prop: "attendanceGroupName" },
{label: "规则名称", prop: "ruleNme"}, {
label: "异常时间",
prop: "errorTime",
formatter: this.formatterDate,
},
{label: "异常时间", prop: "errorTime", formatter: this.formatterDate}, { label: "上下班时间", prop: "goOffTimeStr" },
{label: "上下班时间", prop: "goOffTimeStr"}, {
label: "实际打卡时间",
prop: "actualAttendTime",
formatter: this.formatterDate,
},
{label: "实际打卡时间", prop: "actualAttendTime", formatter: this.formatterDate}, { label: "异常结果", prop: "errorResult" },
{label: "异常处理结果", prop: "errorResult"}, { label: "图片凭证", prop: "snapPath" },
{label: "扣分方式", prop: "subMethod",formatter: this.formatter}, { label: "绩效规则", prop: "ruleNme" },
{label: "扣分人员", prop: "deductPerson"}, { label: "扣分方式", prop: "subMethod", formatter: this.formatter },
{label: "扣分时间", prop: "deductTime", formatter: this.formatterDate}, {
label: "扣分时间",
prop: "deductTime",
formatter: this.formatterDate,
},
{label: "增减类型", prop: "subAddType",formatter: this.formatter}, { label: "扣分人员", prop: "deductPerson" },
{label: "扣分或增加分值", prop: "score", formatter: this.formatter}, { label: "扣分分值", prop: "score", formatter: this.formatter },
{label: "处理状态", prop: "processStatus",formatter: this.formatter}, {
label: "处理状态",
prop: "processStatus",
formatter: this.formatter,
},
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{ {
label: "操作", label: "操作",
width: 240, width: 200,
formatter: row => { formatter: (row) => {
return ( return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} /> <table-buttons
noAdd
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
); );
} },
} },
] ],
} },
};
}
}; };
},
};
</script> </script>
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
<el-button
slot="table-head-left2"
style="margin-left: 10px"
icon="el-icon-tickets"
size="mini"
@click="handleImport"
>导入</el-button
>
<el-button
slot="table-head-left2"
style="margin-left: 10px"
icon="el-icon-tickets"
size="mini"
@click="doExport"
:disabled="isExport"
>导出</el-button
>
</LayoutTable>
<!-- 考勤绩效记录信息导入对话框 -->
<el-dialog
:title="upload.title"
:visible.sync="upload.open"
width="400px"
append-to-body
>
<el-upload
ref="upload"
:limit="1"
accept=".xlsx, .xls"
:headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport"
:disabled="upload.isUploading"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
:auto-upload="false"
drag
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
将文件拖到此处,或
<em>点击上传</em>
</div>
<div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" />是否更新已经存在的数据
<el-link
type="primary"
style="font-size: 14px"
@click="downloadTemplate"
>下载模板</el-link
>
</div>
<div class="el-upload__tip" style="color: red" slot="tip">
提示:仅允许导入“xls”或“xlsx”格式文件!
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm">确 定</el-button>
<el-button @click="upload.open = false">取 消</el-button>
</div>
</el-dialog>
<drawer-show ref="drawerform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "PerformAttendRecordList",
components: {
drawerShow,
},
mixins: [table],
created() {},
methods: {
/** 导入 */
handleImport() {
this.upload.title = "考勤绩效记录信息导入";
this.upload.open = true;
},
/** 下载模板操作 */
downloadTemplate() {
this.isExport = true;
this.$download(
"/perform/attend/record/downloadTemplate",
{},
{ type: "excel" }
)
.then(() => (this.isExport = false))
.catch((error) => {
this.isExport = false;
this.$message.error(error.message);
});
},
/** 文件上传中处理 */
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
/** 文件上传成功处理 */
handleFileSuccess(response, file, fileList) {
this.upload.open = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
this.getData();
},
/** 提交上传文件 */
submitFileForm() {
this.$refs.upload.submit();
},
/** 导出Excel */
doExport() {
this.isExport = true;
this.$download(
"/perform/attend/record/exportExcel",
{
idList: this.selection,
},
{ type: "excel" }
)
.then(() => (this.isExport = false))
.catch((error) => {
this.isExport = false;
this.$message.error(error.message);
});
},
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
},
data() {
return {
// 用户导入参数
upload: {
// 是否显示弹出层(考勤绩效记录信息导入)
open: false,
// 弹出层标题(考勤绩效记录信息导入)
title: "导入考勤绩效记录信息数据",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的数据
updateSupport: 0,
// 上传的地址
url: "/attendance/perform/attend/record/importData",
},
isExport: false,
config: {
isshowTabPane: true,
search: [],
columns: [
{ type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 },
{ label: "员工姓名", prop: "staffName" },
{ label: "工号", prop: "workNum" },
{ label: "所属部门名称", prop: "deptName" },
{ label: "所属考勤组名称", prop: "attendanceGroupName" },
{
label: "考勤时间",
prop: "attendanceDate",
formatter: this.formatterDate,
},
{ label: "规则名称", prop: "ruleNme" },
{
label: "异常时间",
prop: "errorTime",
formatter: this.formatterDate,
},
{ label: "上下班时间", prop: "goOffTimeStr" },
{
label: "实际打卡时间",
prop: "actualAttendTime",
formatter: this.formatterDate,
},
{ label: "异常处理结果", prop: "errorResult" },
{ label: "扣分方式", prop: "subMethod", formatter: this.formatter },
{ label: "扣分人员", prop: "deductPerson" },
{
label: "扣分时间",
prop: "deductTime",
formatter: this.formatterDate,
},
{ label: "增减类型", prop: "subAddType", formatter: this.formatter },
{ label: "扣分或增加分值", prop: "score", formatter: this.formatter },
{
label: "处理状态",
prop: "processStatus",
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>
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
<el-button
slot="table-head-left2"
style="margin-left: 10px"
icon="el-icon-tickets"
size="mini"
@click="handleImport"
>导入</el-button
>
<el-button
slot="table-head-left2"
style="margin-left: 10px"
icon="el-icon-tickets"
size="mini"
@click="doExport"
:disabled="isExport"
>导出</el-button
>
</LayoutTable>
<!-- 评价绩效投诉记录信息导入对话框 -->
<el-dialog
:title="upload.title"
:visible.sync="upload.open"
width="400px"
append-to-body
>
<el-upload
ref="upload"
:limit="1"
accept=".xlsx, .xls"
:headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport"
:disabled="upload.isUploading"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
:auto-upload="false"
drag
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
将文件拖到此处,或
<em>点击上传</em>
</div>
<div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" />是否更新已经存在的数据
<el-link
type="primary"
style="font-size: 14px"
@click="downloadTemplate"
>下载模板</el-link
>
</div>
<div class="el-upload__tip" style="color: red" slot="tip">
提示:仅允许导入“xls”或“xlsx”格式文件!
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm">确 定</el-button>
<el-button @click="upload.open = false">取 消</el-button>
</div>
</el-dialog>
<drawer-show ref="drawerform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "PerformComplainRecordList",
components: {
drawerShow,
},
mixins: [table],
created() {},
methods: {
/** 导入 */
handleImport() {
this.upload.title = "评价绩效投诉记录信息导入";
this.upload.open = true;
},
/** 下载模板操作 */
downloadTemplate() {
this.isExport = true;
this.$download(
"/perform/complain/record/downloadTemplate",
{},
{ type: "excel" }
)
.then(() => (this.isExport = false))
.catch((error) => {
this.isExport = false;
this.$message.error(error.message);
});
},
/** 文件上传中处理 */
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
/** 文件上传成功处理 */
handleFileSuccess(response, file, fileList) {
this.upload.open = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
this.getData();
},
/** 提交上传文件 */
submitFileForm() {
this.$refs.upload.submit();
},
/** 导出Excel */
doExport() {
this.isExport = true;
this.$download(
"/perform/complain/record/exportExcel",
{
idList: this.selection,
},
{ type: "excel" }
)
.then(() => (this.isExport = false))
.catch((error) => {
this.isExport = false;
this.$message.error(error.message);
});
},
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
},
data() {
return {
// 用户导入参数
upload: {
// 是否显示弹出层(评价绩效投诉记录信息导入)
open: false,
// 弹出层标题(评价绩效投诉记录信息导入)
title: "导入评价绩效投诉记录信息数据",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的数据
updateSupport: 0,
// 上传的地址
url: "/m/perform/complain/record/importData",
},
isExport: false,
config: {
isshowTabPane: true,
search: [],
columns: [
{ type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 },
{ label: "员工姓名", prop: "staffName" },
{ label: "工号", prop: "workNum" },
{ label: "窗口编号", prop: "windowNum" },
{ label: "所属部门名称", prop: "deptName" },
{ label: "投诉标题", prop: "complainTitle" },
{ label: "投诉内容", prop: "complainContent" },
{ label: "投诉人真实姓名", prop: "complainRealName" },
{ label: "联系电话", prop: "contact" },
{
label: "投诉时间",
prop: "complainTime",
formatter: this.formatterDate,
},
{ label: "投诉来源", prop: "complainSource" },
{ label: "投诉设备", prop: "complainDevice" },
{ label: "规则名称", prop: "ruleName" },
{ label: "扣分方式", prop: "subMethod", formatter: this.formatter },
{ label: "扣分人员", prop: "deductPerson" },
{
label: "扣分时间",
prop: "deductTime",
formatter: this.formatterDate,
},
{ label: "扣分或增加分值", prop: "score", formatter: this.formatter },
{
label: "处理状态",
prop: "processStatus",
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>
...@@ -7,7 +7,8 @@ ...@@ -7,7 +7,8 @@
icon="el-icon-tickets" icon="el-icon-tickets"
size="mini" size="mini"
@click="handleImport" @click="handleImport"
>导入</el-button> >导入</el-button
>
<el-button <el-button
slot="table-head-left2" slot="table-head-left2"
style="margin-left: 10px" style="margin-left: 10px"
...@@ -15,7 +16,8 @@ ...@@ -15,7 +16,8 @@
size="mini" size="mini"
@click="doExport" @click="doExport"
:disabled="isExport" :disabled="isExport"
>导出</el-button> >导出</el-button
>
</LayoutTable> </LayoutTable>
<!-- 评价绩效投诉记录信息导入对话框 --> <!-- 评价绩效投诉记录信息导入对话框 -->
...@@ -43,10 +45,11 @@ ...@@ -43,10 +45,11 @@
<em>点击上传</em> <em>点击上传</em>
</div> </div>
<div class="el-upload__tip" slot="tip"> <div class="el-upload__tip" slot="tip">
<el-checkbox <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的数据
v-model="upload.updateSupport" <el-link
/>是否更新已经存在的数据 type="primary"
<el-link type="primary" style="font-size: 14px" @click="downloadTemplate" style="font-size: 14px"
@click="downloadTemplate"
>下载模板</el-link >下载模板</el-link
> >
</div> </div>
...@@ -65,17 +68,16 @@ ...@@ -65,17 +68,16 @@
</template> </template>
<script> <script>
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import drawerShow from "./drawershow"; import drawerShow from "./drawershow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
export default { export default {
name: "PerformComplainRecordList", name: "PerformComplainRecordList",
components: { components: {
drawerShow drawerShow,
},
mixins: [table],
created() {
}, },
mixins: [table],
created() {},
methods: { methods: {
/** 导入 */ /** 导入 */
handleImport() { handleImport() {
...@@ -85,7 +87,11 @@ ...@@ -85,7 +87,11 @@
/** 下载模板操作 */ /** 下载模板操作 */
downloadTemplate() { downloadTemplate() {
this.isExport = true; this.isExport = true;
this.$download("/perform/complain/record/downloadTemplate", {}, { type: "excel" }) this.$download(
"/perform/complain/record/downloadTemplate",
{},
{ type: "excel" }
)
.then(() => (this.isExport = false)) .then(() => (this.isExport = false))
.catch((error) => { .catch((error) => {
this.isExport = false; this.isExport = false;
...@@ -111,9 +117,15 @@ ...@@ -111,9 +117,15 @@
/** 导出Excel */ /** 导出Excel */
doExport() { doExport() {
this.isExport = true; this.isExport = true;
this.$download("/perform/complain/record/exportExcel", { this.$download(
"idList": this.selection, "/perform/complain/record/exportExcel",
}, { type: "excel" }).then(() => this.isExport = false).catch(error => { {
idList: this.selection,
},
{ type: "excel" }
)
.then(() => (this.isExport = false))
.catch((error) => {
this.isExport = false; this.isExport = false;
this.$message.error(error.message); this.$message.error(error.message);
}); });
...@@ -130,7 +142,6 @@ ...@@ -130,7 +142,6 @@
toView(row) { toView(row) {
this.$refs.drawerform.view(row); this.$refs.drawerform.view(row);
}, },
}, },
data() { data() {
return { return {
...@@ -149,60 +160,107 @@ ...@@ -149,60 +160,107 @@
}, },
isExport: false, isExport: false,
config: { config: {
isshowTabPane:true, isshowTabPane: true,
search: [ search: [
{
name: "status",
type: "select",
label: "全部状态",
fuzzy: false,
},
{
name: "deptId",
type: "select",
label: "全部部门",
fuzzy: false,
},
{
name: "source",
type: "select",
label: "全部来源",
fuzzy: false,
},
{
name: "date",
type: "date",
label: "请选择日期",
fuzzy: false,
},
{
name: "staffName",
type: "text",
label: "请输入员工姓名搜索",
fuzzy: false,
},
], ],
columns: [ columns: [
{type: "selection", width: 60}, { type: "selection", width: 50 },
{type: "index",label: "序号",width: 50}, { type: "index", label: "序号", width: 50 },
{label: "员工姓名", prop: "staffName"}, { label: "姓名", prop: "staffName" },
{label: "工号", prop: "workNum"}, { label: "窗口编号", prop: "windowNum" },
{label: "窗口编号", prop: "windowNum"}, { label: "所属部门", prop: "deptName" },
{label: "所属部门名称", prop: "deptName"}, { label: "投诉标题", prop: "complainTitle" },
{label: "投诉标题", prop: "complainTitle"}, { label: "投诉内容", prop: "complainContent" },
{label: "投诉内容", prop: "complainContent"}, { label: "投诉人真实姓名", prop: "complainRealName" },
{label: "投诉人真实姓名", prop: "complainRealName"}, { label: "联系电话", prop: "contact" },
{label: "联系电话", prop: "contact"}, {
label: "投诉时间",
prop: "complainTime",
formatter: this.formatterDate,
},
{label: "投诉时间", prop: "complainTime", formatter: this.formatterDate}, { label: "投诉来源", prop: "complainSource" },
{label: "投诉来源", prop: "complainSource"}, { label: "图片凭证", prop: "snapPath" },
{label: "投诉设备", prop: "complainDevice"}, { label: "投诉设备", prop: "complainDevice" },
{label: "规则名称", prop: "ruleName"}, { label: "绩效规则", prop: "ruleNme" },
{label: "扣分方式", prop: "subMethod",formatter: this.formatter}, { label: "扣分方式", prop: "subMethod", formatter: this.formatter },
{label: "扣分人员", prop: "deductPerson"}, {
label: "扣分时间",
prop: "deductTime",
formatter: this.formatterDate,
},
{label: "扣分时间", prop: "deductTime", formatter: this.formatterDate}, { label: "扣分人员", prop: "deductPerson" },
{label: "扣分或增加分值", prop: "score", formatter: this.formatter}, { label: "扣分分值", prop: "score", formatter: this.formatter },
{label: "处理状态", prop: "processStatus",formatter: this.formatter}, {
label: "处理状态",
prop: "processStatus",
formatter: this.formatter,
},
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{ {
label: "操作", label: "操作",
width: 240, width: 200,
formatter: row => { formatter: (row) => {
return ( return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} /> <table-buttons
noAdd
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
); );
} },
} },
] ],
} },
};
}
}; };
},
};
</script> </script>
...@@ -7,7 +7,8 @@ ...@@ -7,7 +7,8 @@
icon="el-icon-tickets" icon="el-icon-tickets"
size="mini" size="mini"
@click="handleImport" @click="handleImport"
>导入</el-button> >导入</el-button
>
<el-button <el-button
slot="table-head-left2" slot="table-head-left2"
style="margin-left: 10px" style="margin-left: 10px"
...@@ -15,7 +16,8 @@ ...@@ -15,7 +16,8 @@
size="mini" size="mini"
@click="doExport" @click="doExport"
:disabled="isExport" :disabled="isExport"
>导出</el-button> >导出</el-button
>
</LayoutTable> </LayoutTable>
<!-- 效能绩效记录信息导入对话框 --> <!-- 效能绩效记录信息导入对话框 -->
...@@ -43,10 +45,11 @@ ...@@ -43,10 +45,11 @@
<em>点击上传</em> <em>点击上传</em>
</div> </div>
<div class="el-upload__tip" slot="tip"> <div class="el-upload__tip" slot="tip">
<el-checkbox <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的数据
v-model="upload.updateSupport" <el-link
/>是否更新已经存在的数据 type="primary"
<el-link type="primary" style="font-size: 14px" @click="downloadTemplate" style="font-size: 14px"
@click="downloadTemplate"
>下载模板</el-link >下载模板</el-link
> >
</div> </div>
...@@ -65,17 +68,16 @@ ...@@ -65,17 +68,16 @@
</template> </template>
<script> <script>
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import drawerShow from "./drawershow"; import drawerShow from "./drawershow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
export default { export default {
name: "PerformEffectRecordList", name: "PerformEffectRecordList",
components: { components: {
drawerShow drawerShow,
},
mixins: [table],
created() {
}, },
mixins: [table],
created() {},
methods: { methods: {
/** 导入 */ /** 导入 */
handleImport() { handleImport() {
...@@ -85,7 +87,11 @@ ...@@ -85,7 +87,11 @@
/** 下载模板操作 */ /** 下载模板操作 */
downloadTemplate() { downloadTemplate() {
this.isExport = true; this.isExport = true;
this.$download("/perform/effect/record/downloadTemplate", {}, { type: "excel" }) this.$download(
"/perform/effect/record/downloadTemplate",
{},
{ type: "excel" }
)
.then(() => (this.isExport = false)) .then(() => (this.isExport = false))
.catch((error) => { .catch((error) => {
this.isExport = false; this.isExport = false;
...@@ -111,9 +117,15 @@ ...@@ -111,9 +117,15 @@
/** 导出Excel */ /** 导出Excel */
doExport() { doExport() {
this.isExport = true; this.isExport = true;
this.$download("/perform/effect/record/exportExcel", { this.$download(
"idList": this.selection, "/perform/effect/record/exportExcel",
}, { type: "excel" }).then(() => this.isExport = false).catch(error => { {
idList: this.selection,
},
{ type: "excel" }
)
.then(() => (this.isExport = false))
.catch((error) => {
this.isExport = false; this.isExport = false;
this.$message.error(error.message); this.$message.error(error.message);
}); });
...@@ -130,7 +142,6 @@ ...@@ -130,7 +142,6 @@
toView(row) { toView(row) {
this.$refs.drawerform.view(row); this.$refs.drawerform.view(row);
}, },
}, },
data() { data() {
return { return {
...@@ -149,60 +160,108 @@ ...@@ -149,60 +160,108 @@
}, },
isExport: false, isExport: false,
config: { config: {
isshowTabPane:true, isshowTabPane: true,
search: [ search: [
{
name: "status",
type: "select",
label: "全部状态",
fuzzy: false,
},
{
name: "deptId",
type: "select",
label: "全部部门",
fuzzy: false,
},
{
name: "date",
type: "date",
label: "请选择日期",
fuzzy: false,
},
{
name: "staffName",
type: "text",
label: "请输入员工姓名搜索",
fuzzy: false,
},
], ],
columns: [ columns: [
{type: "selection", width: 60}, { type: "selection", width: 60 },
{type: "index",label: "序号",width: 50}, { type: "index", label: "序号", width: 50 },
{label: "员工姓名", prop: "staffName"},
{label: "工号", prop: "workNum"},
{label: "窗口编号", prop: "windowNum"}, { label: "姓名", prop: "staffName" },
{label: "所属部门", prop: "deptId", formatter: this.formatter}, { label: "窗口编号", prop: "windowNum" },
{label: "所属部门名称", prop: "deptName"}, { label: "所属部门", prop: "deptName" },
{label: "违规类型", prop: "irregularType",formatter: this.formatter}, {
label: "违规类型",
{label: "发生时间", prop: "happenTime", formatter: this.formatterDate}, prop: "irregularType",
formatter: this.formatter,
},
{label: "持续时间,秒", prop: "duration",formatter: this.formatter}, {
label: "发生时间",
prop: "happenTime",
formatter: this.formatterDate,
},
{label: "报警时间", prop: "alarmTime", formatter: this.formatterDate}, {
label: "时长",
prop: "duration",
formatter: this.formatter,
},
{label: "图片凭证地址", prop: "snapPath"}, {
label: "报警时间",
prop: "alarmTime",
formatter: this.formatterDate,
},
{label: "绩效规则id", prop: "ruleId", formatter: this.formatter}, { label: "图片凭证", prop: "snapPath" },
{label: "规则名称", prop: "ruleName"}, { label: "绩效规则", prop: "ruleName" },
{label: "扣分方式", prop: "subMethod",formatter: this.formatter}, { label: "扣分方式", prop: "subMethod", formatter: this.formatter },
{label: "扣分人员", prop: "deductPerson"}, {
label: "扣分时间",
prop: "deductTime",
formatter: this.formatterDate,
},
{label: "扣分时间", prop: "deductTime", formatter: this.formatterDate}, { label: "扣分人员", prop: "deductPerson" },
{label: "扣分或增加分值", prop: "score", formatter: this.formatter}, { label: "扣分分值", prop: "score", formatter: this.formatter },
{label: "处理状态", prop: "processStatus",formatter: this.formatter}, {
label: "处理状态",
prop: "processStatus",
formatter: this.formatter,
},
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{ {
label: "操作", label: "操作",
width: 240, width: 240,
formatter: row => { formatter: (row) => {
return ( return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} /> <table-buttons
noAdd
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
); );
} },
} },
] ],
} },
};
}
}; };
},
};
</script> </script>
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
<el-button
slot="table-head-left2"
style="margin-left: 10px"
icon="el-icon-tickets"
size="mini"
@click="handleImport"
>导入</el-button
>
<el-button
slot="table-head-left2"
style="margin-left: 10px"
icon="el-icon-tickets"
size="mini"
@click="doExport"
:disabled="isExport"
>导出</el-button
>
</LayoutTable>
<!-- 效能绩效记录信息导入对话框 -->
<el-dialog
:title="upload.title"
:visible.sync="upload.open"
width="400px"
append-to-body
>
<el-upload
ref="upload"
:limit="1"
accept=".xlsx, .xls"
:headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport"
:disabled="upload.isUploading"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
:auto-upload="false"
drag
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
将文件拖到此处,或
<em>点击上传</em>
</div>
<div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" />是否更新已经存在的数据
<el-link
type="primary"
style="font-size: 14px"
@click="downloadTemplate"
>下载模板</el-link
>
</div>
<div class="el-upload__tip" style="color: red" slot="tip">
提示:仅允许导入“xls”或“xlsx”格式文件!
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm">确 定</el-button>
<el-button @click="upload.open = false">取 消</el-button>
</div>
</el-dialog>
<drawer-show ref="drawerform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "PerformEffectRecordList",
components: {
drawerShow,
},
mixins: [table],
created() {},
methods: {
/** 导入 */
handleImport() {
this.upload.title = "效能绩效记录信息导入";
this.upload.open = true;
},
/** 下载模板操作 */
downloadTemplate() {
this.isExport = true;
this.$download(
"/perform/effect/record/downloadTemplate",
{},
{ type: "excel" }
)
.then(() => (this.isExport = false))
.catch((error) => {
this.isExport = false;
this.$message.error(error.message);
});
},
/** 文件上传中处理 */
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
/** 文件上传成功处理 */
handleFileSuccess(response, file, fileList) {
this.upload.open = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
this.getData();
},
/** 提交上传文件 */
submitFileForm() {
this.$refs.upload.submit();
},
/** 导出Excel */
doExport() {
this.isExport = true;
this.$download(
"/perform/effect/record/exportExcel",
{
idList: this.selection,
},
{ type: "excel" }
)
.then(() => (this.isExport = false))
.catch((error) => {
this.isExport = false;
this.$message.error(error.message);
});
},
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
},
data() {
return {
// 用户导入参数
upload: {
// 是否显示弹出层(效能绩效记录信息导入)
open: false,
// 弹出层标题(效能绩效记录信息导入)
title: "导入效能绩效记录信息数据",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的数据
updateSupport: 0,
// 上传的地址
url: "/m/perform/effect/record/importData",
},
isExport: false,
config: {
isshowTabPane: true,
search: [],
columns: [
{ type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 },
{ label: "员工姓名", prop: "staffName" },
{ label: "工号", prop: "workNum" },
{ label: "窗口编号", prop: "windowNum" },
{ label: "所属部门", prop: "deptId", formatter: this.formatter },
{ label: "所属部门名称", prop: "deptName" },
{
label: "违规类型",
prop: "irregularType",
formatter: this.formatter,
},
{
label: "发生时间",
prop: "happenTime",
formatter: this.formatterDate,
},
{
label: "持续时间,秒",
prop: "duration",
formatter: this.formatter,
},
{
label: "报警时间",
prop: "alarmTime",
formatter: this.formatterDate,
},
{ label: "图片凭证地址", prop: "snapPath" },
{ label: "绩效规则id", prop: "ruleId", formatter: this.formatter },
{ label: "规则名称", prop: "ruleName" },
{ label: "扣分方式", prop: "subMethod", formatter: this.formatter },
{ label: "扣分人员", prop: "deductPerson" },
{
label: "扣分时间",
prop: "deductTime",
formatter: this.formatterDate,
},
{ label: "扣分或增加分值", prop: "score", formatter: this.formatter },
{
label: "处理状态",
prop: "processStatus",
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>
...@@ -4,46 +4,328 @@ ...@@ -4,46 +4,328 @@
:title="title" :title="title"
:visible.sync="open" :visible.sync="open"
:direction="direction" :direction="direction"
size="50%"> size="50%"
>
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row> <el-row>
<Field label="员工ID" prop="staffId" v-model="form.staffId" placeholder="请输入员工ID"/> <el-col :span="22">
<Field label="员工姓名" prop="staffName" v-model="form.staffName" placeholder="请输入员工姓名"/> <el-form-item label="姓名:">
<Field label="工号" prop="workNum" v-model="form.workNum" placeholder="请输入工号"/> <el-select v-model="form.staffId" style="width: 100%;">
<Field label="窗口编号" prop="windowNum" v-model="form.windowNum" placeholder="请输入窗口编号"/> <el-option
<Field label="所属部门" prop="deptId" v-model="form.deptId" placeholder="请输入所属部门"/> v-for="item in staffArr"
<Field label="所属部门名称" prop="deptName" v-model="form.deptName" placeholder="请输入所属部门名称"/> :key="item.value"
<Field label="办件编码" prop="goworkCode" v-model="form.goworkCode" placeholder="请输入办件编码"/> :label="item.label"
<Field label="办件所属部门" prop="goworkDepts" v-model="form.goworkDepts" type="textarea" placeholder="请输入办件所属部门"/> :value="item.value"
<Field label="事项名称" prop="matterlName" v-model="form.matterlName" type="textarea" placeholder="请输入事项名称"/> >
<Field label="办理时间" prop="goworkTime" v-model="form.goworkTime" type="date" /> </el-option
<Field label="绩效规则id" prop="ruleId" v-model="form.ruleId" placeholder="请输入绩效规则id"/> ></el-select>
<Field label="规则名称" prop="ruleName" v-model="form.ruleName" placeholder="请输入规则名称"/> </el-form-item>
<Field label="扣分方式" prop="subMethod" v-model="form.subMethod" type="select" :enumData="dict.subMethod" placeholder="请选择扣分方式"/> </el-col>
<Field label="扣分人员" prop="deductPerson" v-model="form.deductPerson" placeholder="请输入扣分人员"/> </el-row>
<Field label="扣分时间" prop="deductTime" v-model="form.deductTime" type="date" /> <el-row>
<Field label="扣分或增加分值" prop="score" v-model="form.score" placeholder="请输入扣分或增加分值"/> <el-col :span="22">
<Field label="处理状态" prop="processStatus" v-model="form.processStatus" type="select" :enumData="dict.processStatus" placeholder="请选择处理状态"/> <el-form-item label="所属部门:">
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/> <el-select v-model="form.deptId" style="width: 100%;">
<el-option
v-for="item in deptArr"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option
></el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="22">
<el-form-item label="窗口编号:">
<el-input
v-model="form.windowNum"
placeholder="请输入窗口编号"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="22">
<el-form-item label="办件编码:">
<el-input
v-model="form.windowNum"
placeholder="请输入办件编码"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="22">
<el-form-item label="办件所属部门:">
<el-select v-model="form.goworkDepts" style="width: 100%;">
<el-option
v-for="item in kaoqinArr"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option
></el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="22">
<el-form-item label="事项名称:">
<el-input
v-model="form.windowNum"
placeholder="请输入事项名称"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="22">
<el-form-item label="异常时间:">
<el-date-picker
v-model="form.errorTime"
type="date"
placeholder="选择日期"
style="width: 100%;"
>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="22">
<el-form-item label="办件时间:">
<el-col :span="11">
<el-date-picker
v-model="dateValue"
type="date"
placeholder="选择日期"
style="width: 100%;"
>
</el-date-picker>
</el-col>
<el-col :span="11">
<el-time-select
v-model="timeValue"
:picker-options="{
start: '06:00',
step: '00:15',
end: '18:30',
}"
placeholder="选择时间"
style="width: 100%;margin-left: 10px;"
>
</el-time-select
></el-col>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="22">
<el-form-item label="图片凭证:">
<el-upload
class="upload-demo"
action="https://jsonplaceholder.typicode.com/posts/"
:on-preview="handlePreview"
:on-remove="handleRemove"
:before-remove="beforeRemove"
multiple
:limit="3"
:on-exceed="handleExceed"
:file-list="fileList"
>
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">
只能上传jpg/png等图片文件
</div>
</el-upload>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="22">
<el-form-item label="绩效规则:">
<el-col :span="22">
<el-select v-model="form.attendanceGroupId" style="width: 100%;">
<el-option
v-for="item in kaoqinArr"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option
></el-select>
</el-col>
<el-col :span="22">
<el-select
v-model="form.attendanceGroupId"
style="width: 100%;margin-top: 10px;"
>
<el-option
v-for="item in kaoqinArr"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option></el-select
></el-col>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="22">
<el-form-item label="扣分分值:">
<p>{{ form.score }}</p>
</el-form-item>
</el-col>
</el-row> </el-row>
<form-buttons @submit='submitForm' v-if="pageInfo.type!='view'" noCancelBtn /> <form-buttons
@submit="submitForm"
v-if="pageInfo.type != 'view'"
noCancelBtn
/>
</el-form> </el-form>
<!-- <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="windowNum"
v-model="form.windowNum"
placeholder="请输入窗口编号"
/>
<Field
label="所属部门"
prop="deptId"
v-model="form.deptId"
placeholder="请输入所属部门"
/>
<Field
label="所属部门名称"
prop="deptName"
v-model="form.deptName"
placeholder="请输入所属部门名称"
/>
<Field
label="办件编码"
prop="goworkCode"
v-model="form.goworkCode"
placeholder="请输入办件编码"
/>
<Field
label="办件所属部门"
prop="goworkDepts"
v-model="form.goworkDepts"
type="textarea"
placeholder="请输入办件所属部门"
/>
<Field
label="事项名称"
prop="matterlName"
v-model="form.matterlName"
type="textarea"
placeholder="请输入事项名称"
/>
<Field
label="办理时间"
prop="goworkTime"
v-model="form.goworkTime"
type="date"
/>
<Field
label="绩效规则id"
prop="ruleId"
v-model="form.ruleId"
placeholder="请输入绩效规则id"
/>
<Field
label="规则名称"
prop="ruleName"
v-model="form.ruleName"
placeholder="请输入规则名称"
/>
<Field
label="扣分方式"
prop="subMethod"
v-model="form.subMethod"
type="select"
:enumData="dict.subMethod"
placeholder="请选择扣分方式"
/>
<Field
label="扣分人员"
prop="deductPerson"
v-model="form.deductPerson"
placeholder="请输入扣分人员"
/>
<Field
label="扣分时间"
prop="deductTime"
v-model="form.deductTime"
type="date"
/>
<Field
label="扣分或增加分值"
prop="score"
v-model="form.score"
placeholder="请输入扣分或增加分值"
/>
<Field
label="处理状态"
prop="processStatus"
v-model="form.processStatus"
type="select"
:enumData="dict.processStatus"
placeholder="请选择处理状态"
/>
<Field
label="备注"
prop="remark"
v-model="form.remark"
type="textarea"
placeholder="请输入备注"
/>
</el-row>
<form-buttons
@submit="submitForm"
v-if="pageInfo.type != 'view'"
noCancelBtn
/>
</el-form> -->
</el-drawer> </el-drawer>
</template> </template>
<script> <script>
import form from "@/assets/mixins/formdialog"; import form from "@/assets/mixins/formdialog";
export default { export default {
name: "PerformGoworkRecordDetail", name: "PerformGoworkRecordDetail",
mixins: [form], mixins: [form],
components: { components: {},
},
created() { created() {
this.changePath("perform/gowork/record") this.changePath("perform/gowork/record");
}, },
data() { data() {
return { return {
...@@ -53,53 +335,56 @@ ...@@ -53,53 +335,56 @@
title: "办件绩效记录信息", title: "办件绩效记录信息",
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
direction:"rtl", direction: "rtl",
toString:[ toString: ["subMethod", "processStatus"],
"subMethod", toDate: ["goworkTime", "deductTime"],
"processStatus",
],
toDate:[
"goworkTime",
"deductTime",
],
// 表单校验 // 表单校验
rules: { rules: {
staffName: [ staffName: [
{required: true,message: "请输入员工姓名", trigger: "blur" }, { required: true, message: "请输入员工姓名", trigger: "blur" },
{max: 64,message: "最多只能录入64个字符",trigger: "blur",}, { max: 64, message: "最多只能录入64个字符", trigger: "blur" },
], ],
createTime: [ createTime: [{ required: true, message: "请选择创建时间" }],
{required: true,message: "请选择创建时间" }, },
staffArr: [
{
label: "员工1",
value: "1",
},
], ],
} deptArr: [],
kaoqinArr: [],
fileList: [],
dateValue: "",
timeValue: "",
}; };
}, },
methods: { methods: {
/** 编辑 */ /** 编辑 */
edit(row) { edit(row) {
this.reset() this.reset();
this.query = { id: row.id }; this.query = { id: row.id };
this.urls.currUrl ="perform/gowork/record/edit"; this.urls.currUrl = "perform/gowork/record/edit";
this.getData(); this.getData();
this.pageInfo.type="edit" this.pageInfo.type = "edit";
this.title = "修改办件绩效记录信息"; this.title = "修改办件绩效记录信息";
}, },
/** 新增 */ /** 新增 */
add(row) { add(row) {
this.reset() this.reset();
this.urls.currUrl = "perform/gowork/record/add"; this.urls.currUrl = "perform/gowork/record/add";
this.getData(); this.getData();
this.pageInfo.type="add" this.pageInfo.type = "add";
this.title = "新增办件绩效记录信息"; this.title = "新增办件绩效记录信息";
}, },
/** 查看*/ /** 查看*/
view(row) { view(row) {
this.reset() this.reset();
this.query = { id: row.id }; this.query = { id: row.id };
this.urls.currUrl ="perform/gowork/record/view"; this.urls.currUrl = "perform/gowork/record/view";
this.getData(); this.getData();
this.pageInfo.type="view" this.pageInfo.type = "view";
this.title = "办件绩效记录信息详细"; this.title = "办件绩效记录信息详细";
}, },
/**取消按钮 */ /**取消按钮 */
...@@ -119,24 +404,24 @@ ...@@ -119,24 +404,24 @@
// 表单重置 // 表单重置
reset() { reset() {
this.form = { this.form = {
staffId : null, staffId: null,
staffName : "", staffName: "",
workNum : "", workNum: "",
windowNum : "", windowNum: "",
deptId : null, deptId: null,
deptName : "", deptName: "",
goworkCode : "", goworkCode: "",
goworkDepts : "", goworkDepts: "",
matterlName : "", matterlName: "",
goworkTime : null, goworkTime: null,
ruleId : null, ruleId: null,
ruleName : "", ruleName: "",
subMethod : 1, subMethod: 1,
deductPerson : "", deductPerson: "",
deductTime : null, deductTime: null,
score : 0.00, score: 0.0,
processStatus : 1, processStatus: 1,
remark : "", remark: "",
}; };
this.resetForm("form"); this.resetForm("form");
}, },
...@@ -145,6 +430,22 @@ ...@@ -145,6 +430,22 @@
this.$refs[refName].resetFields(); this.$refs[refName].resetFields();
} }
}, },
handleRemove(file, fileList) {
console.log(file, fileList);
}, },
}; handlePreview(file) {
console.log(file);
},
handleExceed(files, fileList) {
this.$message.warning(
`当前限制选择 3 个文件,本次选择了 ${
files.length
} 个文件,共选择了 ${files.length + fileList.length} 个文件`
);
},
beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${file.name}?`);
},
},
};
</script> </script>
...@@ -7,7 +7,8 @@ ...@@ -7,7 +7,8 @@
icon="el-icon-tickets" icon="el-icon-tickets"
size="mini" size="mini"
@click="handleImport" @click="handleImport"
>导入</el-button> >导入</el-button
>
<el-button <el-button
slot="table-head-left2" slot="table-head-left2"
style="margin-left: 10px" style="margin-left: 10px"
...@@ -15,7 +16,8 @@ ...@@ -15,7 +16,8 @@
size="mini" size="mini"
@click="doExport" @click="doExport"
:disabled="isExport" :disabled="isExport"
>导出</el-button> >导出</el-button
>
</LayoutTable> </LayoutTable>
<!-- 办件绩效记录信息导入对话框 --> <!-- 办件绩效记录信息导入对话框 -->
...@@ -43,10 +45,11 @@ ...@@ -43,10 +45,11 @@
<em>点击上传</em> <em>点击上传</em>
</div> </div>
<div class="el-upload__tip" slot="tip"> <div class="el-upload__tip" slot="tip">
<el-checkbox <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的数据
v-model="upload.updateSupport" <el-link
/>是否更新已经存在的数据 type="primary"
<el-link type="primary" style="font-size: 14px" @click="downloadTemplate" style="font-size: 14px"
@click="downloadTemplate"
>下载模板</el-link >下载模板</el-link
> >
</div> </div>
...@@ -65,17 +68,16 @@ ...@@ -65,17 +68,16 @@
</template> </template>
<script> <script>
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import drawerShow from "./drawershow"; import drawerShow from "./drawershow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
export default { export default {
name: "PerformGoworkRecordList", name: "PerformGoworkRecordList",
components: { components: {
drawerShow drawerShow,
},
mixins: [table],
created() {
}, },
mixins: [table],
created() {},
methods: { methods: {
/** 导入 */ /** 导入 */
handleImport() { handleImport() {
...@@ -85,7 +87,11 @@ ...@@ -85,7 +87,11 @@
/** 下载模板操作 */ /** 下载模板操作 */
downloadTemplate() { downloadTemplate() {
this.isExport = true; this.isExport = true;
this.$download("/perform/gowork/record/downloadTemplate", {}, { type: "excel" }) this.$download(
"/perform/gowork/record/downloadTemplate",
{},
{ type: "excel" }
)
.then(() => (this.isExport = false)) .then(() => (this.isExport = false))
.catch((error) => { .catch((error) => {
this.isExport = false; this.isExport = false;
...@@ -111,9 +117,15 @@ ...@@ -111,9 +117,15 @@
/** 导出Excel */ /** 导出Excel */
doExport() { doExport() {
this.isExport = true; this.isExport = true;
this.$download("/perform/gowork/record/exportExcel", { this.$download(
"idList": this.selection, "/perform/gowork/record/exportExcel",
}, { type: "excel" }).then(() => this.isExport = false).catch(error => { {
idList: this.selection,
},
{ type: "excel" }
)
.then(() => (this.isExport = false))
.catch((error) => {
this.isExport = false; this.isExport = false;
this.$message.error(error.message); this.$message.error(error.message);
}); });
...@@ -130,7 +142,6 @@ ...@@ -130,7 +142,6 @@
toView(row) { toView(row) {
this.$refs.drawerform.view(row); this.$refs.drawerform.view(row);
}, },
}, },
data() { data() {
return { return {
...@@ -149,54 +160,95 @@ ...@@ -149,54 +160,95 @@
}, },
isExport: false, isExport: false,
config: { config: {
isshowTabPane:true, isshowTabPane: true,
search: [ search: [
{
name: "status",
type: "select",
label: "全部状态",
fuzzy: false,
},
{
name: "deptId",
type: "select",
label: "全部部门",
fuzzy: false,
},
{
name: "date",
type: "date",
label: "请选择日期",
fuzzy: false,
},
{
name: "staffName",
type: "text",
label: "请输入员工姓名搜索",
fuzzy: false,
},
], ],
columns: [ columns: [
{type: "selection", width: 60}, { type: "selection", width: 50 },
{type: "index",label: "序号",width: 50}, { type: "index", label: "序号", width: 50 },
{label: "员工姓名", prop: "staffName"}, { label: "姓名", prop: "staffName" },
{label: "工号", prop: "workNum"}, { label: "窗口编号", prop: "windowNum" },
{label: "窗口编号", prop: "windowNum"}, { label: "所属部门", prop: "deptName" },
{label: "所属部门名称", prop: "deptName"}, { label: "办件编码", prop: "goworkCode" },
{label: "办件编码", prop: "goworkCode"}, { label: "办件所属部门", prop: "goworkDepts" },
{label: "办件所属部门", prop: "goworkDepts"}, { label: "事项名称", prop: "matterlName" },
{label: "事项名称", prop: "matterlName"}, {
label: "办理时间",
prop: "goworkTime",
formatter: this.formatterDate,
},
{label: "办理时间", prop: "goworkTime", formatter: this.formatterDate}, { label: "图片凭证", prop: "snapPath" },
{label: "规则名称", prop: "ruleName"}, { label: "绩效规则", prop: "ruleName" },
{label: "扣分方式", prop: "subMethod",formatter: this.formatter}, { label: "扣分方式", prop: "subMethod", formatter: this.formatter },
{label: "扣分人员", prop: "deductPerson"}, {
label: "扣分时间",
prop: "deductTime",
formatter: this.formatterDate,
},
{label: "扣分时间", prop: "deductTime", formatter: this.formatterDate}, { label: "扣分人员", prop: "deductPerson" },
{label: "扣分或增加分值", prop: "score", formatter: this.formatter}, { label: "扣分分值", prop: "score", formatter: this.formatter },
{label: "处理状态", prop: "processStatus",formatter: this.formatter}, {
label: "处理状态",
prop: "processStatus",
formatter: this.formatter,
},
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{ {
label: "操作", label: "操作",
width: 240, width: 240,
formatter: row => { formatter: (row) => {
return ( return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} /> <table-buttons
noAdd
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
); );
} },
} },
] ],
} },
};
}
}; };
},
};
</script> </script>
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
<el-button
slot="table-head-left2"
style="margin-left: 10px"
icon="el-icon-tickets"
size="mini"
@click="handleImport"
>导入</el-button
>
<el-button
slot="table-head-left2"
style="margin-left: 10px"
icon="el-icon-tickets"
size="mini"
@click="doExport"
:disabled="isExport"
>导出</el-button
>
</LayoutTable>
<!-- 办件绩效记录信息导入对话框 -->
<el-dialog
:title="upload.title"
:visible.sync="upload.open"
width="400px"
append-to-body
>
<el-upload
ref="upload"
:limit="1"
accept=".xlsx, .xls"
:headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport"
:disabled="upload.isUploading"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
:auto-upload="false"
drag
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
将文件拖到此处,或
<em>点击上传</em>
</div>
<div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" />是否更新已经存在的数据
<el-link
type="primary"
style="font-size: 14px"
@click="downloadTemplate"
>下载模板</el-link
>
</div>
<div class="el-upload__tip" style="color: red" slot="tip">
提示:仅允许导入“xls”或“xlsx”格式文件!
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm">确 定</el-button>
<el-button @click="upload.open = false">取 消</el-button>
</div>
</el-dialog>
<drawer-show ref="drawerform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "PerformGoworkRecordList",
components: {
drawerShow,
},
mixins: [table],
created() {},
methods: {
/** 导入 */
handleImport() {
this.upload.title = "办件绩效记录信息导入";
this.upload.open = true;
},
/** 下载模板操作 */
downloadTemplate() {
this.isExport = true;
this.$download(
"/perform/gowork/record/downloadTemplate",
{},
{ type: "excel" }
)
.then(() => (this.isExport = false))
.catch((error) => {
this.isExport = false;
this.$message.error(error.message);
});
},
/** 文件上传中处理 */
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
/** 文件上传成功处理 */
handleFileSuccess(response, file, fileList) {
this.upload.open = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
this.getData();
},
/** 提交上传文件 */
submitFileForm() {
this.$refs.upload.submit();
},
/** 导出Excel */
doExport() {
this.isExport = true;
this.$download(
"/perform/gowork/record/exportExcel",
{
idList: this.selection,
},
{ type: "excel" }
)
.then(() => (this.isExport = false))
.catch((error) => {
this.isExport = false;
this.$message.error(error.message);
});
},
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
},
data() {
return {
// 用户导入参数
upload: {
// 是否显示弹出层(办件绩效记录信息导入)
open: false,
// 弹出层标题(办件绩效记录信息导入)
title: "导入办件绩效记录信息数据",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的数据
updateSupport: 0,
// 上传的地址
url: "/m/perform/gowork/record/importData",
},
isExport: false,
config: {
isshowTabPane: true,
search: [],
columns: [
{ type: "selection", width: 50 },
{ type: "index", label: "序号", width: 50 },
{ label: "姓名", prop: "staffName" },
{ label: "窗口编号", prop: "windowNum" },
{ label: "所属部门", prop: "deptName" },
{ label: "办件编码", prop: "goworkCode" },
{ label: "办件所属部门", prop: "goworkDepts" },
{ label: "事项名称", prop: "matterlName" },
{
label: "办理时间",
prop: "goworkTime",
formatter: this.formatterDate,
},
{ label: "规则名称", prop: "ruleName" },
{ label: "扣分方式", prop: "subMethod", formatter: this.formatter },
{ label: "扣分人员", prop: "deductPerson" },
{
label: "扣分时间",
prop: "deductTime",
formatter: this.formatterDate,
},
{ label: "扣分或增加分值", prop: "score", formatter: this.formatter },
{
label: "处理状态",
prop: "processStatus",
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>
...@@ -4,46 +4,283 @@ ...@@ -4,46 +4,283 @@
:title="title" :title="title"
:visible.sync="open" :visible.sync="open"
:direction="direction" :direction="direction"
size="50%"> size="50%"
>
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row> <el-row>
<Field label="员工ID" prop="staffId" v-model="form.staffId" placeholder="请输入员工ID"/> <el-col :span="22">
<Field label="员工姓名" prop="staffName" v-model="form.staffName" placeholder="请输入员工姓名"/> <el-form-item label="姓名:">
<Field label="工号" prop="workNum" v-model="form.workNum" placeholder="请输入工号"/> <el-select v-model="form.staffId" style="width: 100%;">
<Field label="窗口编号" prop="windowNum" v-model="form.windowNum" placeholder="请输入窗口编号"/> <el-option
<Field label="所属部门" prop="deptId" v-model="form.deptId" placeholder="请输入所属部门"/> v-for="item in staffArr"
<Field label="所属部门名称" prop="deptName" v-model="form.deptName" placeholder="请输入所属部门名称"/> :key="item.value"
<Field label="违规类型" prop="irregularOtherType" v-model="form.irregularOtherType" type="select" :enumData="dict.irregularOtherType" placeholder="请选择违规类型"/> :label="item.label"
<Field label="发生时间" prop="happenTime" v-model="form.happenTime" type="date" /> :value="item.value"
<Field label="持续时间,秒" prop="duration" v-model="form.duration" placeholder="请输入持续时间,秒"/> >
<Field label="绩效规则id" prop="ruleId" v-model="form.ruleId" placeholder="请输入绩效规则id"/> </el-option
<Field label="规则名称" prop="ruleName" v-model="form.ruleName" placeholder="请输入规则名称"/> ></el-select>
<Field label="评分标准" prop="ruleDesc" v-model="form.ruleDesc" type="textarea" placeholder="请输入评分标准"/> </el-form-item>
<Field label="扣分方式" prop="subMethod" v-model="form.subMethod" type="select" :enumData="dict.subMethod" placeholder="请选择扣分方式"/> </el-col>
<Field label="扣分人员" prop="deductPerson" v-model="form.deductPerson" placeholder="请输入扣分人员"/> </el-row>
<Field label="扣分时间" prop="deductTime" v-model="form.deductTime" type="date" /> <el-row>
<Field label="扣分或增加分值" prop="score" v-model="form.score" placeholder="请输入扣分或增加分值"/> <el-col :span="22">
<Field label="处理状态" prop="processStatus" v-model="form.processStatus" type="select" :enumData="dict.processStatus" placeholder="请选择处理状态"/> <el-form-item label="所属部门:">
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/> <el-select v-model="form.deptId" style="width: 100%;">
<el-option
v-for="item in deptArr"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option
></el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="22">
<el-form-item label="窗口编号:">
<el-input
v-model="form.windowNum"
placeholder="请输入窗口编号"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="22">
<el-form-item label="发生时间:">
<el-col :span="11">
<el-date-picker
v-model="dateValue"
type="date"
placeholder="选择日期"
style="width: 100%;"
>
</el-date-picker>
</el-col>
<el-col :span="11">
<el-time-select
v-model="timeValue"
:picker-options="{
start: '06:00',
step: '00:15',
end: '18:30',
}"
placeholder="选择时间"
style="width: 100%;margin-left: 10px;"
>
</el-time-select
></el-col>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="22">
<el-form-item label="图片凭证:">
<el-upload
class="upload-demo"
action="https://jsonplaceholder.typicode.com/posts/"
:on-preview="handlePreview"
:on-remove="handleRemove"
:before-remove="beforeRemove"
multiple
:limit="3"
:on-exceed="handleExceed"
:file-list="fileList"
>
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">
只能上传jpg/png等图片文件
</div>
</el-upload>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="22">
<el-form-item label="绩效规则:">
<el-col :span="22">
<el-select v-model="form.attendanceGroupId" style="width: 100%;">
<el-option
v-for="item in kaoqinArr"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option
></el-select>
</el-col>
<el-col :span="22">
<el-select
v-model="form.attendanceGroupId"
style="width: 100%;margin-top: 10px;"
>
<el-option
v-for="item in kaoqinArr"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option></el-select
></el-col>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="22">
<el-form-item label="扣分分值:">
<p>{{ form.score }}</p>
</el-form-item>
</el-col>
</el-row> </el-row>
<form-buttons @submit='submitForm' v-if="pageInfo.type!='view'" noCancelBtn /> <form-buttons
@submit="submitForm"
v-if="pageInfo.type != 'view'"
noCancelBtn
/>
</el-form> </el-form>
<!-- <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="windowNum"
v-model="form.windowNum"
placeholder="请输入窗口编号"
/>
<Field
label="所属部门"
prop="deptId"
v-model="form.deptId"
placeholder="请输入所属部门"
/>
<Field
label="所属部门名称"
prop="deptName"
v-model="form.deptName"
placeholder="请输入所属部门名称"
/>
<Field
label="违规类型"
prop="irregularOtherType"
v-model="form.irregularOtherType"
type="select"
:enumData="dict.irregularOtherType"
placeholder="请选择违规类型"
/>
<Field
label="发生时间"
prop="happenTime"
v-model="form.happenTime"
type="date"
/>
<Field
label="持续时间,秒"
prop="duration"
v-model="form.duration"
placeholder="请输入持续时间,秒"
/>
<Field
label="绩效规则id"
prop="ruleId"
v-model="form.ruleId"
placeholder="请输入绩效规则id"
/>
<Field
label="规则名称"
prop="ruleName"
v-model="form.ruleName"
placeholder="请输入规则名称"
/>
<Field
label="评分标准"
prop="ruleDesc"
v-model="form.ruleDesc"
type="textarea"
placeholder="请输入评分标准"
/>
<Field
label="扣分方式"
prop="subMethod"
v-model="form.subMethod"
type="select"
:enumData="dict.subMethod"
placeholder="请选择扣分方式"
/>
<Field
label="扣分人员"
prop="deductPerson"
v-model="form.deductPerson"
placeholder="请输入扣分人员"
/>
<Field
label="扣分时间"
prop="deductTime"
v-model="form.deductTime"
type="date"
/>
<Field
label="扣分或增加分值"
prop="score"
v-model="form.score"
placeholder="请输入扣分或增加分值"
/>
<Field
label="处理状态"
prop="processStatus"
v-model="form.processStatus"
type="select"
:enumData="dict.processStatus"
placeholder="请选择处理状态"
/>
<Field
label="备注"
prop="remark"
v-model="form.remark"
type="textarea"
placeholder="请输入备注"
/>
</el-row>
<form-buttons
@submit="submitForm"
v-if="pageInfo.type != 'view'"
noCancelBtn
/>
</el-form> -->
</el-drawer> </el-drawer>
</template> </template>
<script> <script>
import form from "@/assets/mixins/formdialog"; import form from "@/assets/mixins/formdialog";
export default { export default {
name: "PerformOtherRecordDetail", name: "PerformOtherRecordDetail",
mixins: [form], mixins: [form],
components: { components: {},
},
created() { created() {
this.changePath("perform/other/record") this.changePath("perform/other/record");
}, },
data() { data() {
return { return {
...@@ -53,54 +290,56 @@ ...@@ -53,54 +290,56 @@
title: "其它绩效记录信息", title: "其它绩效记录信息",
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
direction:"rtl", direction: "rtl",
toString:[ toString: ["irregularOtherType", "subMethod", "processStatus"],
"irregularOtherType", toDate: ["happenTime", "deductTime"],
"subMethod",
"processStatus",
],
toDate:[
"happenTime",
"deductTime",
],
// 表单校验 // 表单校验
rules: { rules: {
staffName: [ staffName: [
{required: true,message: "请输入员工姓名", trigger: "blur" }, { required: true, message: "请输入员工姓名", trigger: "blur" },
{max: 64,message: "最多只能录入64个字符",trigger: "blur",}, { max: 64, message: "最多只能录入64个字符", trigger: "blur" },
], ],
createTime: [ createTime: [{ required: true, message: "请选择创建时间" }],
{required: true,message: "请选择创建时间" }, },
staffArr: [
{
label: "员工1",
value: "1",
},
], ],
} deptArr: [],
kaoqinArr: [],
fileList: [],
dateValue: "",
timeValue: "",
}; };
}, },
methods: { methods: {
/** 编辑 */ /** 编辑 */
edit(row) { edit(row) {
this.reset() this.reset();
this.query = { id: row.id }; this.query = { id: row.id };
this.urls.currUrl ="perform/other/record/edit"; this.urls.currUrl = "perform/other/record/edit";
this.getData(); this.getData();
this.pageInfo.type="edit" this.pageInfo.type = "edit";
this.title = "修改其它绩效记录信息"; this.title = "修改其它绩效记录信息";
}, },
/** 新增 */ /** 新增 */
add(row) { add(row) {
this.reset() this.reset();
this.urls.currUrl = "perform/other/record/add"; this.urls.currUrl = "perform/other/record/add";
this.getData(); this.getData();
this.pageInfo.type="add" this.pageInfo.type = "add";
this.title = "新增其它绩效记录信息"; this.title = "新增其它绩效记录信息";
}, },
/** 查看*/ /** 查看*/
view(row) { view(row) {
this.reset() this.reset();
this.query = { id: row.id }; this.query = { id: row.id };
this.urls.currUrl ="perform/other/record/view"; this.urls.currUrl = "perform/other/record/view";
this.getData(); this.getData();
this.pageInfo.type="view" this.pageInfo.type = "view";
this.title = "其它绩效记录信息详细"; this.title = "其它绩效记录信息详细";
}, },
/**取消按钮 */ /**取消按钮 */
...@@ -120,24 +359,24 @@ ...@@ -120,24 +359,24 @@
// 表单重置 // 表单重置
reset() { reset() {
this.form = { this.form = {
staffId : null, staffId: null,
staffName : "", staffName: "",
workNum : "", workNum: "",
windowNum : "", windowNum: "",
deptId : null, deptId: null,
deptName : "", deptName: "",
irregularOtherType : null, irregularOtherType: null,
happenTime : null, happenTime: null,
duration : 0, duration: 0,
ruleId : null, ruleId: null,
ruleName : "", ruleName: "",
ruleDesc : "", ruleDesc: "",
subMethod : 1, subMethod: 1,
deductPerson : "", deductPerson: "",
deductTime : null, deductTime: null,
score : 0.00, score: 0.0,
processStatus : 1, processStatus: 1,
remark : "", remark: "",
}; };
this.resetForm("form"); this.resetForm("form");
}, },
...@@ -146,6 +385,22 @@ ...@@ -146,6 +385,22 @@
this.$refs[refName].resetFields(); this.$refs[refName].resetFields();
} }
}, },
handleRemove(file, fileList) {
console.log(file, fileList);
}, },
}; handlePreview(file) {
console.log(file);
},
handleExceed(files, fileList) {
this.$message.warning(
`当前限制选择 3 个文件,本次选择了 ${
files.length
} 个文件,共选择了 ${files.length + fileList.length} 个文件`
);
},
beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${file.name}?`);
},
},
};
</script> </script>
...@@ -7,7 +7,8 @@ ...@@ -7,7 +7,8 @@
icon="el-icon-tickets" icon="el-icon-tickets"
size="mini" size="mini"
@click="handleImport" @click="handleImport"
>导入</el-button> >导入</el-button
>
<el-button <el-button
slot="table-head-left2" slot="table-head-left2"
style="margin-left: 10px" style="margin-left: 10px"
...@@ -15,7 +16,8 @@ ...@@ -15,7 +16,8 @@
size="mini" size="mini"
@click="doExport" @click="doExport"
:disabled="isExport" :disabled="isExport"
>导出</el-button> >导出</el-button
>
</LayoutTable> </LayoutTable>
<!-- 其它绩效记录信息导入对话框 --> <!-- 其它绩效记录信息导入对话框 -->
...@@ -43,10 +45,11 @@ ...@@ -43,10 +45,11 @@
<em>点击上传</em> <em>点击上传</em>
</div> </div>
<div class="el-upload__tip" slot="tip"> <div class="el-upload__tip" slot="tip">
<el-checkbox <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的数据
v-model="upload.updateSupport" <el-link
/>是否更新已经存在的数据 type="primary"
<el-link type="primary" style="font-size: 14px" @click="downloadTemplate" style="font-size: 14px"
@click="downloadTemplate"
>下载模板</el-link >下载模板</el-link
> >
</div> </div>
...@@ -65,17 +68,16 @@ ...@@ -65,17 +68,16 @@
</template> </template>
<script> <script>
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import drawerShow from "./drawershow"; import drawerShow from "./drawershow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
export default { export default {
name: "PerformOtherRecordList", name: "PerformOtherRecordList",
components: { components: {
drawerShow drawerShow,
},
mixins: [table],
created() {
}, },
mixins: [table],
created() {},
methods: { methods: {
/** 导入 */ /** 导入 */
handleImport() { handleImport() {
...@@ -85,7 +87,11 @@ ...@@ -85,7 +87,11 @@
/** 下载模板操作 */ /** 下载模板操作 */
downloadTemplate() { downloadTemplate() {
this.isExport = true; this.isExport = true;
this.$download("/perform/other/record/downloadTemplate", {}, { type: "excel" }) this.$download(
"/perform/other/record/downloadTemplate",
{},
{ type: "excel" }
)
.then(() => (this.isExport = false)) .then(() => (this.isExport = false))
.catch((error) => { .catch((error) => {
this.isExport = false; this.isExport = false;
...@@ -111,9 +117,15 @@ ...@@ -111,9 +117,15 @@
/** 导出Excel */ /** 导出Excel */
doExport() { doExport() {
this.isExport = true; this.isExport = true;
this.$download("/perform/other/record/exportExcel", { this.$download(
"idList": this.selection, "/perform/other/record/exportExcel",
}, { type: "excel" }).then(() => this.isExport = false).catch(error => { {
idList: this.selection,
},
{ type: "excel" }
)
.then(() => (this.isExport = false))
.catch((error) => {
this.isExport = false; this.isExport = false;
this.$message.error(error.message); this.$message.error(error.message);
}); });
...@@ -130,7 +142,6 @@ ...@@ -130,7 +142,6 @@
toView(row) { toView(row) {
this.$refs.drawerform.view(row); this.$refs.drawerform.view(row);
}, },
}, },
data() { data() {
return { return {
...@@ -149,58 +160,104 @@ ...@@ -149,58 +160,104 @@
}, },
isExport: false, isExport: false,
config: { config: {
isshowTabPane:true, isshowTabPane: true,
search: [ search: [
{
name: "status",
type: "select",
label: "全部状态",
fuzzy: false,
},
{
name: "deptId",
type: "select",
label: "全部部门",
fuzzy: false,
},
{
name: "date",
type: "date",
label: "请选择日期",
fuzzy: false,
},
{
name: "staffName",
type: "text",
label: "请输入员工姓名搜索",
fuzzy: false,
},
], ],
columns: [ columns: [
{type: "selection", width: 60}, { type: "selection", width: 60 },
{type: "index",label: "序号",width: 50}, { type: "index", label: "序号", width: 50 },
{label: "员工姓名", prop: "staffName"}, { label: "姓名", prop: "staffName" },
{label: "工号", prop: "workNum"}, { label: "窗口编号", prop: "windowNum" },
{label: "窗口编号", prop: "windowNum"}, { label: "所属部门", prop: "deptName" },
{label: "所属部门", prop: "deptId", formatter: this.formatter}, {
label: "违规类型",
{label: "所属部门名称", prop: "deptName"}, prop: "irregularOtherType",
formatter: this.formatter,
{label: "违规类型", prop: "irregularOtherType",formatter: this.formatter}, },
{label: "发生时间", prop: "happenTime", formatter: this.formatterDate}, {
label: "发生时间",
prop: "happenTime",
formatter: this.formatterDate,
},
{label: "持续时间,秒", prop: "duration",formatter: this.formatter}, { label: "评分标准", prop: "ruleDesc" },
{label: "绩效规则id", prop: "ruleId", formatter: this.formatter}, // {
// label: "持续时间,秒",
// prop: "duration",
// formatter: this.formatter,
// },
{label: "规则名称", prop: "ruleName"}, // { label: "绩效规则id", prop: "ruleId", formatter: this.formatter },
{ label: "图片凭证", prop: "snapPath" },
{label: "评分标准", prop: "ruleDesc"}, { label: "绩效规则", prop: "ruleName" },
{label: "扣分方式", prop: "subMethod",formatter: this.formatter}, { label: "扣分方式", prop: "subMethod", formatter: this.formatter },
{label: "扣分人员", prop: "deductPerson"}, {
label: "扣分时间",
prop: "deductTime",
formatter: this.formatterDate,
},
{label: "扣分时间", prop: "deductTime", formatter: this.formatterDate}, { label: "扣分人员", prop: "deductPerson" },
{label: "扣分或增加分值", prop: "score", formatter: this.formatter}, { label: "扣分分值", prop: "score", formatter: this.formatter },
{label: "处理状态", prop: "processStatus",formatter: this.formatter}, {
label: "处理状态",
prop: "processStatus",
formatter: this.formatter,
},
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{ {
label: "操作", label: "操作",
width: 240, width: 240,
formatter: row => { formatter: (row) => {
return ( return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} /> <table-buttons
noAdd
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
); );
} },
} },
] ],
} },
};
}
}; };
},
};
</script> </script>
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
<el-button
slot="table-head-left2"
style="margin-left: 10px"
icon="el-icon-tickets"
size="mini"
@click="handleImport"
>导入</el-button
>
<el-button
slot="table-head-left2"
style="margin-left: 10px"
icon="el-icon-tickets"
size="mini"
@click="doExport"
:disabled="isExport"
>导出</el-button
>
</LayoutTable>
<!-- 其它绩效记录信息导入对话框 -->
<el-dialog
:title="upload.title"
:visible.sync="upload.open"
width="400px"
append-to-body
>
<el-upload
ref="upload"
:limit="1"
accept=".xlsx, .xls"
:headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport"
:disabled="upload.isUploading"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
:auto-upload="false"
drag
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
将文件拖到此处,或
<em>点击上传</em>
</div>
<div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" />是否更新已经存在的数据
<el-link
type="primary"
style="font-size: 14px"
@click="downloadTemplate"
>下载模板</el-link
>
</div>
<div class="el-upload__tip" style="color: red" slot="tip">
提示:仅允许导入“xls”或“xlsx”格式文件!
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm">确 定</el-button>
<el-button @click="upload.open = false">取 消</el-button>
</div>
</el-dialog>
<drawer-show ref="drawerform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "PerformOtherRecordList",
components: {
drawerShow,
},
mixins: [table],
created() {},
methods: {
/** 导入 */
handleImport() {
this.upload.title = "其它绩效记录信息导入";
this.upload.open = true;
},
/** 下载模板操作 */
downloadTemplate() {
this.isExport = true;
this.$download(
"/perform/other/record/downloadTemplate",
{},
{ type: "excel" }
)
.then(() => (this.isExport = false))
.catch((error) => {
this.isExport = false;
this.$message.error(error.message);
});
},
/** 文件上传中处理 */
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
/** 文件上传成功处理 */
handleFileSuccess(response, file, fileList) {
this.upload.open = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
this.getData();
},
/** 提交上传文件 */
submitFileForm() {
this.$refs.upload.submit();
},
/** 导出Excel */
doExport() {
this.isExport = true;
this.$download(
"/perform/other/record/exportExcel",
{
idList: this.selection,
},
{ type: "excel" }
)
.then(() => (this.isExport = false))
.catch((error) => {
this.isExport = false;
this.$message.error(error.message);
});
},
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
},
data() {
return {
// 用户导入参数
upload: {
// 是否显示弹出层(其它绩效记录信息导入)
open: false,
// 弹出层标题(其它绩效记录信息导入)
title: "导入其它绩效记录信息数据",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的数据
updateSupport: 0,
// 上传的地址
url: "/m/perform/other/record/importData",
},
isExport: false,
config: {
isshowTabPane: true,
search: [],
columns: [
{ type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 },
{ label: "员工姓名", prop: "staffName" },
{ label: "工号", prop: "workNum" },
{ label: "窗口编号", prop: "windowNum" },
{ label: "所属部门", prop: "deptId", formatter: this.formatter },
{ label: "所属部门名称", prop: "deptName" },
{
label: "违规类型",
prop: "irregularOtherType",
formatter: this.formatter,
},
{
label: "发生时间",
prop: "happenTime",
formatter: this.formatterDate,
},
{
label: "持续时间,秒",
prop: "duration",
formatter: this.formatter,
},
{ label: "绩效规则id", prop: "ruleId", formatter: this.formatter },
{ label: "规则名称", prop: "ruleName" },
{ label: "评分标准", prop: "ruleDesc" },
{ label: "扣分方式", prop: "subMethod", formatter: this.formatter },
{ label: "扣分人员", prop: "deductPerson" },
{
label: "扣分时间",
prop: "deductTime",
formatter: this.formatterDate,
},
{ label: "扣分或增加分值", prop: "score", formatter: this.formatter },
{
label: "处理状态",
prop: "processStatus",
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>
...@@ -7,7 +7,8 @@ ...@@ -7,7 +7,8 @@
icon="el-icon-tickets" icon="el-icon-tickets"
size="mini" size="mini"
@click="handleImport" @click="handleImport"
>导入</el-button> >导入</el-button
>
<el-button <el-button
slot="table-head-left2" slot="table-head-left2"
style="margin-left: 10px" style="margin-left: 10px"
...@@ -15,7 +16,8 @@ ...@@ -15,7 +16,8 @@
size="mini" size="mini"
@click="doExport" @click="doExport"
:disabled="isExport" :disabled="isExport"
>导出</el-button> >导出</el-button
>
</LayoutTable> </LayoutTable>
<!-- 评价差评绩效记录信息导入对话框 --> <!-- 评价差评绩效记录信息导入对话框 -->
...@@ -43,10 +45,11 @@ ...@@ -43,10 +45,11 @@
<em>点击上传</em> <em>点击上传</em>
</div> </div>
<div class="el-upload__tip" slot="tip"> <div class="el-upload__tip" slot="tip">
<el-checkbox <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的数据
v-model="upload.updateSupport" <el-link
/>是否更新已经存在的数据 type="primary"
<el-link type="primary" style="font-size: 14px" @click="downloadTemplate" style="font-size: 14px"
@click="downloadTemplate"
>下载模板</el-link >下载模板</el-link
> >
</div> </div>
...@@ -65,17 +68,16 @@ ...@@ -65,17 +68,16 @@
</template> </template>
<script> <script>
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import drawerShow from "./drawershow"; import drawerShow from "./drawershow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
export default { export default {
name: "PerformReviewRecordList", name: "PerformReviewRecordList",
components: { components: {
drawerShow drawerShow,
},
mixins: [table],
created() {
}, },
mixins: [table],
created() {},
methods: { methods: {
/** 导入 */ /** 导入 */
handleImport() { handleImport() {
...@@ -85,7 +87,11 @@ ...@@ -85,7 +87,11 @@
/** 下载模板操作 */ /** 下载模板操作 */
downloadTemplate() { downloadTemplate() {
this.isExport = true; this.isExport = true;
this.$download("/perform/review/record/downloadTemplate", {}, { type: "excel" }) this.$download(
"/perform/review/record/downloadTemplate",
{},
{ type: "excel" }
)
.then(() => (this.isExport = false)) .then(() => (this.isExport = false))
.catch((error) => { .catch((error) => {
this.isExport = false; this.isExport = false;
...@@ -111,9 +117,15 @@ ...@@ -111,9 +117,15 @@
/** 导出Excel */ /** 导出Excel */
doExport() { doExport() {
this.isExport = true; this.isExport = true;
this.$download("/perform/review/record/exportExcel", { this.$download(
"idList": this.selection, "/perform/review/record/exportExcel",
}, { type: "excel" }).then(() => this.isExport = false).catch(error => { {
idList: this.selection,
},
{ type: "excel" }
)
.then(() => (this.isExport = false))
.catch((error) => {
this.isExport = false; this.isExport = false;
this.$message.error(error.message); this.$message.error(error.message);
}); });
...@@ -130,7 +142,6 @@ ...@@ -130,7 +142,6 @@
toView(row) { toView(row) {
this.$refs.drawerform.view(row); this.$refs.drawerform.view(row);
}, },
}, },
data() { data() {
return { return {
...@@ -149,54 +160,105 @@ ...@@ -149,54 +160,105 @@
}, },
isExport: false, isExport: false,
config: { config: {
isshowTabPane:true, isshowTabPane: true,
search: [ search: [
{
name: "status",
type: "select",
label: "全部状态",
fuzzy: false,
},
{
name: "deptId",
type: "select",
label: "全部部门",
fuzzy: false,
},
{
name: "source",
type: "select",
label: "全部来源",
fuzzy: false,
},
{
name: "date",
type: "date",
label: "请选择日期",
fuzzy: false,
},
{
name: "staffName",
type: "text",
label: "请输入员工姓名搜索",
fuzzy: false,
},
], ],
columns: [ columns: [
{type: "selection", width: 60}, { type: "selection", width: 50 },
{type: "index",label: "序号",width: 50}, { type: "index", label: "序号", width: 50 },
{label: "员工姓名", prop: "staffName"}, { label: "姓名", prop: "staffName" },
{label: "工号", prop: "workNum"}, { label: "窗口编号", prop: "windowNum" },
{label: "窗口编号", prop: "windowNum"}, { label: "所属部门", prop: "deptName" },
{label: "所属部门", prop: "deptId", formatter: this.formatter}, {
label: "评价结果",
prop: "reviewResult",
formatter: this.formatter,
},
{label: "所属部门名称", prop: "deptName"}, { label: "评价来源", prop: "reviewSource" },
{label: "评价结果", prop: "reviewResult",formatter: this.formatter}, { label: "评价设备", prop: "reviewDevice" },
{label: "评价时间", prop: "reviewTime", formatter: this.formatterDate}, {
label: "评价时间",
prop: "reviewTime",
formatter: this.formatterDate,
},
{label: "评价来源", prop: "reviewSource"}, { label: "图片凭证", prop: "snapPath" },
{label: "评价设备", prop: "reviewDevice"}, { label: "绩效规则", prop: "ruleNme" },
{label: "规则名称", prop: "ruleName"}, { label: "扣分方式", prop: "subMethod", formatter: this.formatter },
{label: "扣分方式", prop: "subMethod",formatter: this.formatter}, {
label: "扣分时间",
prop: "deductTime",
formatter: this.formatterDate,
},
{label: "扣分时间", prop: "deductTime", formatter: this.formatterDate}, { label: "扣分人员", prop: "deductPerson" },
{label: "扣分或增加分值", prop: "score", formatter: this.formatter}, { label: "扣分分值", prop: "score", formatter: this.formatter },
{label: "处理状态", prop: "processStatus",formatter: this.formatter}, {
label: "处理状态",
prop: "processStatus",
formatter: this.formatter,
},
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{ {
label: "操作", label: "操作",
width: 240, width: 200,
formatter: row => { formatter: (row) => {
return ( return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} /> <table-buttons
noAdd
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
); );
} },
} },
] ],
} },
};
}
}; };
},
};
</script> </script>
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
<el-button
slot="table-head-left2"
style="margin-left: 10px"
icon="el-icon-tickets"
size="mini"
@click="handleImport"
>导入</el-button
>
<el-button
slot="table-head-left2"
style="margin-left: 10px"
icon="el-icon-tickets"
size="mini"
@click="doExport"
:disabled="isExport"
>导出</el-button
>
</LayoutTable>
<!-- 评价差评绩效记录信息导入对话框 -->
<el-dialog
:title="upload.title"
:visible.sync="upload.open"
width="400px"
append-to-body
>
<el-upload
ref="upload"
:limit="1"
accept=".xlsx, .xls"
:headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport"
:disabled="upload.isUploading"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
:auto-upload="false"
drag
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
将文件拖到此处,或
<em>点击上传</em>
</div>
<div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" />是否更新已经存在的数据
<el-link
type="primary"
style="font-size: 14px"
@click="downloadTemplate"
>下载模板</el-link
>
</div>
<div class="el-upload__tip" style="color: red" slot="tip">
提示:仅允许导入“xls”或“xlsx”格式文件!
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm">确 定</el-button>
<el-button @click="upload.open = false">取 消</el-button>
</div>
</el-dialog>
<drawer-show ref="drawerform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "PerformReviewRecordList",
components: {
drawerShow,
},
mixins: [table],
created() {},
methods: {
/** 导入 */
handleImport() {
this.upload.title = "评价差评绩效记录信息导入";
this.upload.open = true;
},
/** 下载模板操作 */
downloadTemplate() {
this.isExport = true;
this.$download(
"/perform/review/record/downloadTemplate",
{},
{ type: "excel" }
)
.then(() => (this.isExport = false))
.catch((error) => {
this.isExport = false;
this.$message.error(error.message);
});
},
/** 文件上传中处理 */
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
/** 文件上传成功处理 */
handleFileSuccess(response, file, fileList) {
this.upload.open = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
this.getData();
},
/** 提交上传文件 */
submitFileForm() {
this.$refs.upload.submit();
},
/** 导出Excel */
doExport() {
this.isExport = true;
this.$download(
"/perform/review/record/exportExcel",
{
idList: this.selection,
},
{ type: "excel" }
)
.then(() => (this.isExport = false))
.catch((error) => {
this.isExport = false;
this.$message.error(error.message);
});
},
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
},
data() {
return {
// 用户导入参数
upload: {
// 是否显示弹出层(评价差评绩效记录信息导入)
open: false,
// 弹出层标题(评价差评绩效记录信息导入)
title: "导入评价差评绩效记录信息数据",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的数据
updateSupport: 0,
// 上传的地址
url: "/m/perform/review/record/importData",
},
isExport: false,
config: {
isshowTabPane: true,
search: [],
columns: [
{ type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 },
{ label: "员工姓名", prop: "staffName" },
{ label: "工号", prop: "workNum" },
{ label: "窗口编号", prop: "windowNum" },
{ label: "所属部门", prop: "deptId", formatter: this.formatter },
{ label: "所属部门名称", prop: "deptName" },
{
label: "评价结果",
prop: "reviewResult",
formatter: this.formatter,
},
{
label: "评价时间",
prop: "reviewTime",
formatter: this.formatterDate,
},
{ label: "评价来源", prop: "reviewSource" },
{ label: "评价设备", prop: "reviewDevice" },
{ label: "规则名称", prop: "ruleName" },
{ label: "扣分方式", prop: "subMethod", formatter: this.formatter },
{
label: "扣分时间",
prop: "deductTime",
formatter: this.formatterDate,
},
{ label: "扣分或增加分值", prop: "score", formatter: this.formatter },
{
label: "处理状态",
prop: "processStatus",
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>
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