Commit 4b5f92de authored by 赵啸非's avatar 赵啸非

绩效核查

parent 8cdf294b
...@@ -41,9 +41,6 @@ export default { ...@@ -41,9 +41,6 @@ export default {
return false return false
} }
}, },
test() {
console.log("test")
},
// 开启、关闭 // 开启、关闭
changePath(path) { changePath(path) {
this.pageInfo.list = path + "/list"; this.pageInfo.list = path + "/list";
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
</div> </div>
<label slot="reference" class="my-compontent-switch" <label slot="reference" class="my-compontent-switch"
:checked='checked'> :checked='checked'>
<span>{{text}}</span> <span>{{ text }}</span>
</label> </label>
</el-popover> </el-popover>
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
:checked='checked' :checked='checked'
@click='statusClick' @click='statusClick'
> >
<span>{{text}}</span> <span>{{ text }}</span>
</label> </label>
</span> </span>
</template> </template>
...@@ -37,11 +37,15 @@ export default { ...@@ -37,11 +37,15 @@ export default {
confirm: Boolean, confirm: Boolean,
on: { on: {
type: Object, type: Object,
default: ()=> {return {value: 1, text: ''}} default: () => {
return {value: 1, text: ''}
}
}, },
off: { off: {
type: Object, type: Object,
default: ()=> {return {value: 0, text: ''}} default: () => {
return {value: 0, text: ''}
}
}, },
url: String, url: String,
}, },
...@@ -53,37 +57,71 @@ export default { ...@@ -53,37 +57,71 @@ export default {
status, status,
id, id,
}) })
.then(res=>{ .then(res => {
// 更新数据 // 更新数据
console.log("table",this.value)
console.log("id",id)
let table = JSON.parse(JSON.stringify(this.value)) let table = JSON.parse(JSON.stringify(this.value))
let {index, data} = this.find(table, id); let {index, data} = this.find(table, id);
console.log("data", data)
console.log("data",data) if(data){
data.status = res.data.entity.status; data.status = res.data.entity.status;
//树表结构 需要替换子节点
table.splice(index, 1, data); table.splice(index, 1, data);
}
this.$emit("input", table); this.$emit("input", table);
this.$emit("change"); this.$emit("change");
}) })
.catch(error=>{ .catch(error => {
this.$message.error(error.message); this.$message.error(error.message);
}) })
.then(data=>{ .then(data => {
this.visible = false; this.visible = false;
}) })
}, },
recursionGet(list, valueId,status) {
let index = -1;
let data = null;
for (let i = 0; i < list.length; i++) {
if (list[i].children instanceof Array && list[i].children.length > 0) {
let {index, data} =this.recursionGet(list[i].children, valueId);
console.log("index:"+index+"data:",data)
if(data){
return {
index,
data,
}
}
}
if (list[i].id === valueId) {
index = i;
list[i].status ===status
data=list[i]
//data = Object.assign({}, list[i]);
break;
}
}
return {
index,
data,
}
},
find(list, id) { find(list, id) {
let index = -1; let index = -1;
let data = null; let data = null;
list.forEach((item, i)=>{ //嵌套查询
if(item.id === id){
list.forEach((item, i) => {
if (item.children && item.children.length > 0) {
console.log("size" + item.children.length)
this.find(item.children, id, data)
}
if (item.id === id) {
index = i; index = i;
data = Object.assign({}, item); data = Object.assign({}, item);
console.log("data", data)
return; return;
} }
}) })
...@@ -110,7 +148,7 @@ export default { ...@@ -110,7 +148,7 @@ export default {
</script> </script>
<style lang="less"> <style lang="less">
.my-compontent-switch{ .my-compontent-switch {
display: inline-flex; display: inline-flex;
align-items: center; align-items: center;
position: relative; position: relative;
...@@ -118,16 +156,19 @@ export default { ...@@ -118,16 +156,19 @@ export default {
line-height: 19px; line-height: 19px;
height: 20px; height: 20px;
vertical-align: middle; vertical-align: middle;
&[checked] span{
&[checked] span {
border-color: #409eff; border-color: #409eff;
background-color: #409eff; background-color: #409eff;
padding:0 23px 0 10px; padding: 0 23px 0 10px;
&::after{
&::after {
left: 100%; left: 100%;
margin-left: -17px; margin-left: -17px;
} }
} }
span{
span {
margin: 0; margin: 0;
display: inline-block; display: inline-block;
position: relative; position: relative;
...@@ -135,14 +176,15 @@ export default { ...@@ -135,14 +176,15 @@ export default {
border: 1px solid #dcdfe6; border: 1px solid #dcdfe6;
outline: none; outline: none;
color: #fff; color: #fff;
padding:0 10px 0 23px; padding: 0 10px 0 23px;
border-radius: 10px; border-radius: 10px;
box-sizing: border-box; box-sizing: border-box;
background: #dcdfe6; background: #dcdfe6;
cursor: pointer; cursor: pointer;
transition: border-color .3s,background-color .3s; transition: border-color .3s, background-color .3s;
vertical-align: middle; vertical-align: middle;
&::after{
&::after {
content: ""; content: "";
position: absolute; position: absolute;
top: 1px; top: 1px;
......
...@@ -85,6 +85,12 @@ const router = new Router({ ...@@ -85,6 +85,12 @@ const router = new Router({
...restBuilder('perform/rules/category', 'perform/rules/category'),//绩效规则分类信息表 ...restBuilder('perform/rules/category', 'perform/rules/category'),//绩效规则分类信息表
...restBuilder('perform/rules', 'perform/rules'),//绩效规则信息表 ...restBuilder('perform/rules', 'perform/rules'),//绩效规则信息表
...restBuilder('perform/rules/attend', 'perform/rules/attend'),//考勤绩效规则信息表
...restBuilder('perform/rules/review', 'perform/rules/review'),//评价绩效规则信息表
...restBuilder('perform/rules/gowork', 'perform/rules/gowork'),//办件绩效规则信息表
...restBuilder('perform/rules/effect', 'perform/rules/effect'),//效能绩效规则信息表
...restBuilder('perform/rules/other', 'perform/rules/other'),//其它绩效规则信息表
...restBuilder('perform/attend/record', 'perform/attend/record'),//考勤绩效记录信息 ...restBuilder('perform/attend/record', 'perform/attend/record'),//考勤绩效记录信息
...restBuilder('perform/review/record', 'perform/review/record'),//评价绩效记录信息 ...restBuilder('perform/review/record', 'perform/review/record'),//评价绩效记录信息
...restBuilder('perform/complain/record', 'perform/complain/record'),//投诉绩效记录信息 ...restBuilder('perform/complain/record', 'perform/complain/record'),//投诉绩效记录信息
...@@ -92,6 +98,14 @@ const router = new Router({ ...@@ -92,6 +98,14 @@ const router = new Router({
...restBuilder('perform/effect/record', 'perform/effect/record'),//效能绩效记录信息 ...restBuilder('perform/effect/record', 'perform/effect/record'),//效能绩效记录信息
...restBuilder('perform/other/record', 'perform/other/record'),//其它绩效记录信息 ...restBuilder('perform/other/record', 'perform/other/record'),//其它绩效记录信息
...restBuilder('check/attend/record', 'check/attend/record'),//考勤绩效核查信息
...restBuilder('check/review/record', 'check/review/record'),//评价绩效核查信息
...restBuilder('check/complain/record', 'check/complain/record'),//投诉绩效核查信息
...restBuilder('check/gowork/record', 'check/gowork/record'),//办件绩效核查信息
...restBuilder('check/effect/record', 'check/effect/record'),//效能绩效核查信息
...restBuilder('check/other/record', 'check/other/record'),//其它绩效核查信息
//以下为基础路由配置 //以下为基础路由配置
......
<template>
<!-- 弹出框表单 -->
<el-drawer
:title="title"
:visible.sync="open"
:direction="direction"
size="50%">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="记录ID" prop="recordId" v-model="form.recordId" placeholder="请输入记录ID"/>
<Field label="员工ID" prop="staffId" v-model="form.staffId" placeholder="请输入员工ID"/>
<Field label="员工姓名" prop="staffName" v-model="form.staffName" placeholder="请输入员工姓名"/>
<Field label="工号" prop="workNum" v-model="form.workNum" placeholder="请输入工号"/>
<Field label="所属部门" prop="deptId" v-model="form.deptId" placeholder="请输入所属部门"/>
<Field label="所属部门名称" prop="deptName" v-model="form.deptName" placeholder="请输入所属部门名称"/>
<Field label="职位ID" prop="positionId" v-model="form.positionId" placeholder="请输入职位ID"/>
<Field label="职位名称" prop="positionName" v-model="form.positionName" placeholder="请输入职位名称"/>
<Field label="所属考勤组ID" prop="attendanceGroupId" v-model="form.attendanceGroupId" placeholder="请输入所属考勤组ID"/>
<Field label="所属考勤组名称" prop="attendanceGroupName" v-model="form.attendanceGroupName" placeholder="请输入所属考勤组名称"/>
<Field label="班次ID" prop="shiftsId" v-model="form.shiftsId" placeholder="请输入班次ID"/>
<Field label="班次名称" prop="shiftsName" v-model="form.shiftsName" placeholder="请输入班次名称"/>
<Field label="考勤时间" prop="attendanceDate" v-model="form.attendanceDate" type="date" />
<Field label="绩效规则id" prop="ruleId" v-model="form.ruleId" placeholder="请输入绩效规则id"/>
<Field label="规则名称" prop="ruleName" v-model="form.ruleName" placeholder="请输入规则名称"/>
<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="goOffTime" v-model="form.goOffTime" type="date" />
<Field label="异常时间" prop="errorTime" v-model="form.errorTime" type="date" />
<Field label="实际打卡时间" prop="actualAttendTime" v-model="form.actualAttendTime" type="date" />
<Field label="异常处理结果" prop="errorResult" v-model="form.errorResult" placeholder="请输入异常处理结果"/>
<Field label="处理状态" prop="checkStatus" v-model="form.checkStatus" type="select" :enumData="dict.checkStatus" placeholder="请选择处理状态"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
<form-buttons @submit='submitForm' noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "CheckAttendRecordDetail",
mixins: [form],
components: {
},
created() {
this.changePath("check/attend/record")
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "考勤绩效记录核查信息",
// 是否显示弹出层
open: false,
direction:"rtl",
toString:[
"subAddType",
"checkStatus",
],
toDate:[
"attendanceDate",
"goOffTime",
"errorTime",
"actualAttendTime",
],
// 表单校验
rules: {
staffName: [
{required: true,message: "请输入员工姓名", trigger: "blur" },
{max: 64,message: "最多只能录入64个字符",trigger: "blur",},
],
createTime: [
{required: true,message: "请选择创建时间" },
],
}
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="check/attend/record/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改考勤绩效记录核查信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "check/attend/record/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增考勤绩效记录核查信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="check/attend/record/view";
this.getData();
this.pageInfo.type="view"
this.title = "考勤绩效记录核查信息详细";
},
/**取消按钮 */
cancel() {
this.open = false;
},
/**获取数据后弹框 */
afterRender(data) {
this.open = true;
},
afterSubmit(data) {
this.open = false;
this.$emit("ok");
},
// 表单重置
reset() {
this.form = {
recordId : null,
staffId : null,
staffName : "",
workNum : "",
deptId : null,
deptName : "",
positionId : null,
positionName : "",
attendanceGroupId : null,
attendanceGroupName : "",
shiftsId : null,
shiftsName : "",
attendanceDate : null,
ruleId : null,
ruleName : "",
subAddType : 1,
score : 0.00,
goOffTime : null,
errorTime : null,
actualAttendTime : null,
errorResult : "",
checkStatus : 1,
remark : "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<template>
<div class="page">
<LayoutTable :data="tableData" notAdd notDel :config="tableConfig">
<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: "CheckAttendRecordList",
components: {
drawerShow
},
mixins: [table],
created() {
},
methods: {
/** 导入 */
handleImport() {
this.upload.title = "考勤绩效记录核查信息导入";
this.upload.open = true;
},
/** 下载模板操作 */
downloadTemplate() {
this.isExport = true;
this.$download("/check/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("/check/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);
},
toProcess(row) {
//todo
this.$refs.drawerform.edit(row);
},
},
data() {
return {
// 用户导入参数
upload: {
// 是否显示弹出层(考勤绩效记录核查信息导入)
open: false,
// 弹出层标题(考勤绩效记录核查信息导入)
title: "导入考勤绩效记录核查信息数据",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的数据
updateSupport: 0,
// 上传的地址
url: "/attendance/check/attend/record/importData",
},
isExport: false,
config: {
isshowTabPane:true,
search: [
{
name: "checkStatus",
type: "select",
},
{
name: "deptId",
type: "select",
},
{
name: "checkTime",
type: "date",
label: "核查时间"
},
{
name: "staffName",
type: "text",
label: "员工名称",
fuzzy: true
},
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "员工姓名", prop: "staffName"},
{label: "考勤时间", prop: "attendanceDate", formatter: this.formatterDate},
{label: "增减类型", prop: "subAddType",formatter: this.formatter},
{label: "扣分或增加分值", prop: "score", formatter: this.formatter},
{label: "上下班时间", prop: "goOffTime", formatter: this.formatterDate},
{label: "异常时间", prop: "errorTime", formatter: this.formatterDate},
{label: "实际打卡时间", prop: "actualAttendTime", formatter: this.formatterDate},
{label: "处理状态", prop: "checkStatus",formatter: this.formatter},
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{
label: "操作",
width: 240,
formatter: row => {
return (
<div>
<table-buttons noAdd noEdit noDel row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
<span> </span>
{row.deviceStatus === 0 ? (
<el-button
size="mini"
type="text"
icon="el-icon-open"
onClick={() => {
this.toProcess(row);
}}
>
处理
</el-button>
) : (
""
)}
</div>
);
}
}
]
}
};
}
};
</script>
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="记录ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.recordId}}
</el-descriptions-item>
<el-descriptions-item label="员工ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.staffId}}
</el-descriptions-item>
<el-descriptions-item label="员工姓名" label-class-name="labelClass" content-class-name="contentClass">
{{form.staffName}}
</el-descriptions-item>
<el-descriptions-item label="工号" label-class-name="labelClass" content-class-name="contentClass">
{{form.workNum}}
</el-descriptions-item>
<el-descriptions-item label="所属部门" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptId}}
</el-descriptions-item>
<el-descriptions-item label="所属部门名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptName}}
</el-descriptions-item>
<el-descriptions-item label="职位ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.positionId}}
</el-descriptions-item>
<el-descriptions-item label="职位名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.positionName}}
</el-descriptions-item>
<el-descriptions-item label="所属考勤组ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.attendanceGroupId}}
</el-descriptions-item>
<el-descriptions-item label="所属考勤组名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.attendanceGroupName}}
</el-descriptions-item>
<el-descriptions-item label="班次ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.shiftsId}}
</el-descriptions-item>
<el-descriptions-item label="班次名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.shiftsName}}
</el-descriptions-item>
<el-descriptions-item label="考勤时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.attendanceDate)}}
</el-descriptions-item>
<el-descriptions-item label="绩效规则id" label-class-name="labelClass" content-class-name="contentClass">
{{form.ruleId}}
</el-descriptions-item>
<el-descriptions-item label="规则名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.ruleName}}
</el-descriptions-item>
<el-descriptions-item label="增减类型" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("subAddType", form.subAddType) }}
</el-descriptions-item>
<el-descriptions-item label="扣分或增加分值" label-class-name="labelClass" content-class-name="contentClass">
{{form.score}}
</el-descriptions-item>
<el-descriptions-item label="上下班时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.goOffTime)}}
</el-descriptions-item>
<el-descriptions-item label="异常时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.errorTime)}}
</el-descriptions-item>
<el-descriptions-item label="实际打卡时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.actualAttendTime)}}
</el-descriptions-item>
<el-descriptions-item label="异常处理结果" label-class-name="labelClass" content-class-name="contentClass">
{{form.errorResult}}
</el-descriptions-item>
<el-descriptions-item label="处理状态" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("checkStatus", form.checkStatus) }}
</el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass">
{{form.remark}}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
"subAddType",
"checkStatus",
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
<template>
<!-- 弹出框表单 -->
<el-drawer
:title="title"
:visible.sync="open"
:direction="direction"
size="50%">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="记录ID" prop="recordId" v-model="form.recordId" placeholder="请输入记录ID"/>
<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="complainTitle" v-model="form.complainTitle" placeholder="请输入投诉标题"/>
<Field label="投诉内容"><editor v-model="form.complainContent" :min-height="256"/></Field>
<Field label="投诉人真实姓名" prop="complainRealName" v-model="form.complainRealName" placeholder="请输入投诉人真实姓名"/>
<Field label="联系电话" prop="contact" v-model="form.contact" placeholder="请输入联系电话"/>
<Field label="投诉时间" prop="complainTime" v-model="form.complainTime" type="date" />
<Field label="投诉来源" prop="complainSource" v-model="form.complainSource" placeholder="请输入投诉来源"/>
<Field label="投诉设备" prop="complainDevice" v-model="form.complainDevice" placeholder="请输入投诉设备"/>
<Field label="绩效规则id" prop="ruleId" v-model="form.ruleId" placeholder="请输入绩效规则id"/>
<Field label="规则名称" prop="ruleName" v-model="form.ruleName" placeholder="请输入规则名称"/>
<Field label="所属部门" prop="deptId" v-model="form.deptId" placeholder="请输入所属部门"/>
<Field label="所属部门名称" prop="deptName" v-model="form.deptName" 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="checkPerson" v-model="form.checkPerson" placeholder="请输入核查人员"/>
<Field label="核查时间" prop="checkTime" v-model="form.checkTime" type="date" />
<Field label="核查说明" prop="checkDesc" v-model="form.checkDesc" type="textarea" placeholder="请输入核查说明"/>
<Field label="核查结果" prop="checkResult" v-model="form.checkResult" placeholder="请输入核查结果"/>
<Field label="处理状态" prop="checkStatus" v-model="form.checkStatus" type="select" :enumData="dict.checkStatus" placeholder="请选择处理状态"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
<form-buttons @submit='submitForm' noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "CheckComplainRecordDetail",
mixins: [form],
components: {
},
created() {
this.changePath("check/complain/record")
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "评价绩效投诉核查信息",
// 是否显示弹出层
open: false,
direction:"rtl",
toString:[
"subMethod",
"checkStatus",
],
toDate:[
"complainTime",
"deductTime",
"checkTime",
],
// 表单校验
rules: {
staffName: [
{required: true,message: "请输入员工姓名", trigger: "blur" },
{max: 64,message: "最多只能录入64个字符",trigger: "blur",},
],
createTime: [
{required: true,message: "请选择创建时间" },
],
}
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="check/complain/record/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改评价绩效投诉核查信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "check/complain/record/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增评价绩效投诉核查信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="check/complain/record/view";
this.getData();
this.pageInfo.type="view"
this.title = "评价绩效投诉核查信息详细";
},
/**取消按钮 */
cancel() {
this.open = false;
},
/**获取数据后弹框 */
afterRender(data) {
this.open = true;
},
afterSubmit(data) {
this.open = false;
this.$emit("ok");
},
// 表单重置
reset() {
this.form = {
recordId : null,
staffId : null,
staffName : "",
workNum : "",
windowNum : "",
complainTitle : "",
complainContent : "",
complainRealName : "",
contact : "",
complainTime : null,
complainSource : "",
complainDevice : "",
ruleId : null,
ruleName : "",
deptId : null,
deptName : "",
subMethod : 1,
deductPerson : "",
deductTime : null,
score : 0.00,
checkPerson : "",
checkTime : null,
checkDesc : "",
checkResult : "",
checkStatus : 1,
remark : "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<template>
<div class="page">
<LayoutTable :data="tableData" notAdd notDel :config="tableConfig">
<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: "CheckComplainRecordList",
components: {
drawerShow
},
mixins: [table],
created() {
},
methods: {
/** 导入 */
handleImport() {
this.upload.title = "评价绩效投诉核查信息导入";
this.upload.open = true;
},
/** 下载模板操作 */
downloadTemplate() {
this.isExport = true;
this.$download("/check/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("/check/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);
},
toProcess(row) {
//todo
this.$refs.drawerform.edit(row);
},
},
data() {
return {
// 用户导入参数
upload: {
// 是否显示弹出层(评价绩效投诉核查信息导入)
open: false,
// 弹出层标题(评价绩效投诉核查信息导入)
title: "导入评价绩效投诉核查信息数据",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的数据
updateSupport: 0,
// 上传的地址
url: "/attendance/check/complain/record/importData",
},
isExport: false,
config: {
isshowTabPane:true,
search: [
{
name: "checkStatus",
type: "select",
},
{
name: "deptId",
type: "select",
},
{
name: "checkTime",
type: "date",
label: "核查时间"
},
{
name: "staffName",
type: "text",
label: "员工名称",
fuzzy: true
},
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "员工姓名", prop: "staffName"},
{label: "投诉时间", prop: "complainTime", formatter: this.formatterDate},
{label: "所属部门名称", prop: "deptName"},
{label: "扣分方式", prop: "subMethod",formatter: this.formatter},
{label: "扣分时间", prop: "deductTime", formatter: this.formatterDate},
{label: "扣分或增加分值", prop: "score", formatter: this.formatter},
{label: "核查时间", prop: "checkTime", formatter: this.formatterDate},
{label: "处理状态", prop: "checkStatus",formatter: this.formatter},
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{
label: "操作",
width: 240,
formatter: row => {
return (
<div>
<table-buttons noAdd noEdit noDel row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
<span> </span>
{row.deviceStatus === 0 ? (
<el-button
size="mini"
type="text"
icon="el-icon-open"
onClick={() => {
this.toProcess(row);
}}
>
处理
</el-button>
) : (
""
)}
</div>
);
}
}
]
}
};
}
};
</script>
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="记录ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.recordId}}
</el-descriptions-item>
<el-descriptions-item label="员工ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.staffId}}
</el-descriptions-item>
<el-descriptions-item label="员工姓名" label-class-name="labelClass" content-class-name="contentClass">
{{form.staffName}}
</el-descriptions-item>
<el-descriptions-item label="工号" label-class-name="labelClass" content-class-name="contentClass">
{{form.workNum}}
</el-descriptions-item>
<el-descriptions-item label="窗口编号" label-class-name="labelClass" content-class-name="contentClass">
{{form.windowNum}}
</el-descriptions-item>
<el-descriptions-item label="投诉标题" label-class-name="labelClass" content-class-name="contentClass">
{{form.complainTitle}}
</el-descriptions-item>
<el-descriptions-item label="投诉内容" label-class-name="labelClass" content-class-name="contentClass">
<editor v-model="form.complainContent" :min-height="256"/>
</el-descriptions-item>
<el-descriptions-item label="投诉人真实姓名" label-class-name="labelClass" content-class-name="contentClass">
{{form.complainRealName}}
</el-descriptions-item>
<el-descriptions-item label="联系电话" label-class-name="labelClass" content-class-name="contentClass">
{{form.contact}}
</el-descriptions-item>
<el-descriptions-item label="投诉时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.complainTime)}}
</el-descriptions-item>
<el-descriptions-item label="投诉来源" label-class-name="labelClass" content-class-name="contentClass">
{{form.complainSource}}
</el-descriptions-item>
<el-descriptions-item label="投诉设备" label-class-name="labelClass" content-class-name="contentClass">
{{form.complainDevice}}
</el-descriptions-item>
<el-descriptions-item label="绩效规则id" label-class-name="labelClass" content-class-name="contentClass">
{{form.ruleId}}
</el-descriptions-item>
<el-descriptions-item label="规则名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.ruleName}}
</el-descriptions-item>
<el-descriptions-item label="所属部门" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptId}}
</el-descriptions-item>
<el-descriptions-item label="所属部门名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptName}}
</el-descriptions-item>
<el-descriptions-item label="扣分方式" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("subMethod", form.subMethod) }}
</el-descriptions-item>
<el-descriptions-item label="扣分人员" label-class-name="labelClass" content-class-name="contentClass">
{{form.deductPerson}}
</el-descriptions-item>
<el-descriptions-item label="扣分时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.deductTime)}}
</el-descriptions-item>
<el-descriptions-item label="扣分或增加分值" label-class-name="labelClass" content-class-name="contentClass">
{{form.score}}
</el-descriptions-item>
<el-descriptions-item label="核查人员" label-class-name="labelClass" content-class-name="contentClass">
{{form.checkPerson}}
</el-descriptions-item>
<el-descriptions-item label="核查时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.checkTime)}}
</el-descriptions-item>
<el-descriptions-item label="核查说明" label-class-name="labelClass" content-class-name="contentClass">
{{form.checkDesc}}
</el-descriptions-item>
<el-descriptions-item label="核查结果" label-class-name="labelClass" content-class-name="contentClass">
{{form.checkResult}}
</el-descriptions-item>
<el-descriptions-item label="处理状态" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("checkStatus", form.checkStatus) }}
</el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass">
{{form.remark}}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
import Editor from '@/components/Editor';
export default {
mixins: [view],
components: {
Editor,
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
"subMethod",
"checkStatus",
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
<template>
<!-- 弹出框表单 -->
<el-drawer
:title="title"
:visible.sync="open"
:direction="direction"
size="50%">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="记录ID" prop="recordId" v-model="form.recordId" placeholder="请输入记录ID"/>
<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="irregularType" v-model="form.irregularType" type="select" :enumData="dict.irregularType" placeholder="请选择违规类型"/>
<Field label="发生时间" prop="happenTime" v-model="form.happenTime" type="date" />
<Field label="持续时间,秒" prop="duration" v-model="form.duration" placeholder="请输入持续时间,秒"/>
<Field label="报警时间" prop="alarmTime" v-model="form.alarmTime" type="date" />
<Field label="图片凭证地址" prop="snapPath" v-model="form.snapPath" type="textarea" placeholder="请输入图片凭证地址"/>
<Field label="绩效规则id" prop="ruleId" v-model="form.ruleId" placeholder="请输入绩效规则id"/>
<Field label="规则名称" prop="ruleName" v-model="form.ruleName" placeholder="请输入规则名称"/>
<Field label="所属部门" prop="deptId" v-model="form.deptId" placeholder="请输入所属部门"/>
<Field label="所属部门名称" prop="deptName" v-model="form.deptName" 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="checkPerson" v-model="form.checkPerson" placeholder="请输入核查人员"/>
<Field label="核查时间" prop="checkTime" v-model="form.checkTime" type="date" />
<Field label="核查说明" prop="checkDesc" v-model="form.checkDesc" type="textarea" placeholder="请输入核查说明"/>
<Field label="核查结果" prop="checkResult" v-model="form.checkResult" placeholder="请输入核查结果"/>
<Field label="处理状态" prop="checkStatus" v-model="form.checkStatus" type="select" :enumData="dict.checkStatus" placeholder="请选择处理状态"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
<form-buttons @submit='submitForm' noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "CheckEffectRecordDetail",
mixins: [form],
components: {
},
created() {
this.changePath("check/effect/record")
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "效能绩效核查信息",
// 是否显示弹出层
open: false,
direction:"rtl",
toString:[
"irregularType",
"subMethod",
"checkStatus",
],
toDate:[
"happenTime",
"alarmTime",
"deductTime",
"checkTime",
],
// 表单校验
rules: {
staffName: [
{required: true,message: "请输入员工姓名", trigger: "blur" },
{max: 64,message: "最多只能录入64个字符",trigger: "blur",},
],
createTime: [
{required: true,message: "请选择创建时间" },
],
}
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="check/effect/record/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改效能绩效核查信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "check/effect/record/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增效能绩效核查信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="check/effect/record/view";
this.getData();
this.pageInfo.type="view"
this.title = "效能绩效核查信息详细";
},
/**取消按钮 */
cancel() {
this.open = false;
},
/**获取数据后弹框 */
afterRender(data) {
this.open = true;
},
afterSubmit(data) {
this.open = false;
this.$emit("ok");
},
// 表单重置
reset() {
this.form = {
recordId : null,
staffId : null,
staffName : "",
workNum : "",
windowNum : "",
irregularType : null,
happenTime : null,
duration : 0,
alarmTime : null,
snapPath : "",
ruleId : null,
ruleName : "",
deptId : null,
deptName : "",
subMethod : 1,
deductPerson : "",
deductTime : null,
score : 0.00,
checkPerson : "",
checkTime : null,
checkDesc : "",
checkResult : "",
checkStatus : 1,
remark : "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<template>
<div class="page">
<LayoutTable :data="tableData" notAdd notDel :config="tableConfig">
<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: "CheckEffectRecordList",
components: {
drawerShow
},
mixins: [table],
created() {
},
methods: {
/** 导入 */
handleImport() {
this.upload.title = "效能绩效核查信息导入";
this.upload.open = true;
},
/** 下载模板操作 */
downloadTemplate() {
this.isExport = true;
this.$download("/check/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("/check/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);
},
toProcess(row) {
//todo
this.$refs.drawerform.edit(row);
},
},
data() {
return {
// 用户导入参数
upload: {
// 是否显示弹出层(效能绩效核查信息导入)
open: false,
// 弹出层标题(效能绩效核查信息导入)
title: "导入效能绩效核查信息数据",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的数据
updateSupport: 0,
// 上传的地址
url: "/attendance/check/effect/record/importData",
},
isExport: false,
config: {
isshowTabPane:true,
search: [
{
name: "checkStatus",
type: "select",
},
{
name: "deptId",
type: "select",
},
{
name: "checkTime",
type: "date",
label: "核查时间"
},
{
name: "staffName",
type: "text",
label: "员工名称",
fuzzy: true
},
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "员工姓名", prop: "staffName"},
{label: "发生时间", prop: "happenTime", formatter: this.formatterDate},
{label: "报警时间", prop: "alarmTime", formatter: this.formatterDate},
{label: "扣分方式", prop: "subMethod",formatter: this.formatter},
{label: "扣分时间", prop: "deductTime", formatter: this.formatterDate},
{label: "扣分或增加分值", prop: "score", formatter: this.formatter},
{label: "核查时间", prop: "checkTime", formatter: this.formatterDate},
{label: "处理状态", prop: "checkStatus",formatter: this.formatter},
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{
label: "操作",
width: 240,
formatter: row => {
return (
<div>
<table-buttons noAdd noEdit noDel row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
<span> </span>
{row.deviceStatus === 0 ? (
<el-button
size="mini"
type="text"
icon="el-icon-open"
onClick={() => {
this.toProcess(row);
}}
>
处理
</el-button>
) : (
""
)}
</div>
);
}
}
]
}
};
}
};
</script>
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="记录ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.recordId}}
</el-descriptions-item>
<el-descriptions-item label="员工ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.staffId}}
</el-descriptions-item>
<el-descriptions-item label="员工姓名" label-class-name="labelClass" content-class-name="contentClass">
{{form.staffName}}
</el-descriptions-item>
<el-descriptions-item label="工号" label-class-name="labelClass" content-class-name="contentClass">
{{form.workNum}}
</el-descriptions-item>
<el-descriptions-item label="窗口编号" label-class-name="labelClass" content-class-name="contentClass">
{{form.windowNum}}
</el-descriptions-item>
<el-descriptions-item label="违规类型" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("irregularType", form.irregularType) }}
</el-descriptions-item>
<el-descriptions-item label="发生时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.happenTime)}}
</el-descriptions-item>
<el-descriptions-item label="持续时间,秒" label-class-name="labelClass" content-class-name="contentClass">
{{form.duration}}
</el-descriptions-item>
<el-descriptions-item label="报警时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.alarmTime)}}
</el-descriptions-item>
<el-descriptions-item label="图片凭证地址" label-class-name="labelClass" content-class-name="contentClass">
{{form.snapPath}}
</el-descriptions-item>
<el-descriptions-item label="绩效规则id" label-class-name="labelClass" content-class-name="contentClass">
{{form.ruleId}}
</el-descriptions-item>
<el-descriptions-item label="规则名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.ruleName}}
</el-descriptions-item>
<el-descriptions-item label="所属部门" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptId}}
</el-descriptions-item>
<el-descriptions-item label="所属部门名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptName}}
</el-descriptions-item>
<el-descriptions-item label="扣分方式" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("subMethod", form.subMethod) }}
</el-descriptions-item>
<el-descriptions-item label="扣分人员" label-class-name="labelClass" content-class-name="contentClass">
{{form.deductPerson}}
</el-descriptions-item>
<el-descriptions-item label="扣分时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.deductTime)}}
</el-descriptions-item>
<el-descriptions-item label="扣分或增加分值" label-class-name="labelClass" content-class-name="contentClass">
{{form.score}}
</el-descriptions-item>
<el-descriptions-item label="核查人员" label-class-name="labelClass" content-class-name="contentClass">
{{form.checkPerson}}
</el-descriptions-item>
<el-descriptions-item label="核查时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.checkTime)}}
</el-descriptions-item>
<el-descriptions-item label="核查说明" label-class-name="labelClass" content-class-name="contentClass">
{{form.checkDesc}}
</el-descriptions-item>
<el-descriptions-item label="核查结果" label-class-name="labelClass" content-class-name="contentClass">
{{form.checkResult}}
</el-descriptions-item>
<el-descriptions-item label="处理状态" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("checkStatus", form.checkStatus) }}
</el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass">
{{form.remark}}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
"irregularType",
"subMethod",
"checkStatus",
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
<template>
<!-- 弹出框表单 -->
<el-drawer
:title="title"
:visible.sync="open"
:direction="direction"
size="50%">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="记录ID" prop="recordId" v-model="form.recordId" placeholder="请输入记录ID"/>
<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="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="deptId" v-model="form.deptId" placeholder="请输入所属部门"/>
<Field label="所属部门名称" prop="deptName" v-model="form.deptName" 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="checkPerson" v-model="form.checkPerson" placeholder="请输入核查人员"/>
<Field label="核查时间" prop="checkTime" v-model="form.checkTime" type="date" />
<Field label="核查说明" prop="checkDesc" v-model="form.checkDesc" type="textarea" placeholder="请输入核查说明"/>
<Field label="核查结果" prop="checkResult" v-model="form.checkResult" placeholder="请输入核查结果"/>
<Field label="处理状态" prop="checkStatus" v-model="form.checkStatus" type="select" :enumData="dict.checkStatus" placeholder="请选择处理状态"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
<form-buttons @submit='submitForm' noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "CheckGoworkRecordDetail",
mixins: [form],
components: {
},
created() {
this.changePath("check/gowork/record")
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "办件绩效核查信息",
// 是否显示弹出层
open: false,
direction:"rtl",
toString:[
"subMethod",
"checkStatus",
],
toDate:[
"goworkTime",
"deductTime",
"checkTime",
],
// 表单校验
rules: {
staffName: [
{required: true,message: "请输入员工姓名", trigger: "blur" },
{max: 64,message: "最多只能录入64个字符",trigger: "blur",},
],
createTime: [
{required: true,message: "请选择创建时间" },
],
}
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="check/gowork/record/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改办件绩效核查信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "check/gowork/record/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增办件绩效核查信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="check/gowork/record/view";
this.getData();
this.pageInfo.type="view"
this.title = "办件绩效核查信息详细";
},
/**取消按钮 */
cancel() {
this.open = false;
},
/**获取数据后弹框 */
afterRender(data) {
this.open = true;
},
afterSubmit(data) {
this.open = false;
this.$emit("ok");
},
// 表单重置
reset() {
this.form = {
recordId : null,
staffId : null,
staffName : "",
workNum : "",
windowNum : "",
goworkCode : "",
goworkDepts : "",
matterlName : "",
goworkTime : null,
ruleId : null,
ruleName : "",
deptId : null,
deptName : "",
subMethod : 1,
deductPerson : "",
deductTime : null,
score : 0.00,
checkPerson : "",
checkTime : null,
checkDesc : "",
checkResult : "",
checkStatus : 1,
remark : "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<template>
<div class="page">
<LayoutTable :data="tableData" notAdd notDel :config="tableConfig">
<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: "CheckGoworkRecordList",
components: {
drawerShow
},
mixins: [table],
created() {
},
methods: {
/** 导入 */
handleImport() {
this.upload.title = "办件绩效核查信息导入";
this.upload.open = true;
},
/** 下载模板操作 */
downloadTemplate() {
this.isExport = true;
this.$download("/check/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("/check/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);
},
toProcess(row) {
//todo
this.$refs.drawerform.edit(row);
},
},
data() {
return {
// 用户导入参数
upload: {
// 是否显示弹出层(办件绩效核查信息导入)
open: false,
// 弹出层标题(办件绩效核查信息导入)
title: "导入办件绩效核查信息数据",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的数据
updateSupport: 0,
// 上传的地址
url: "/attendance/check/gowork/record/importData",
},
isExport: false,
config: {
isshowTabPane:true,
search: [
{
name: "checkStatus",
type: "select",
},
{
name: "deptId",
type: "select",
},
{
name: "checkTime",
type: "date",
label: "核查时间"
},
{
name: "staffName",
type: "text",
label: "员工名称",
fuzzy: true
},
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "员工姓名", prop: "staffName"},
{label: "办理时间", prop: "goworkTime", formatter: this.formatterDate},
{label: "扣分方式", prop: "subMethod",formatter: this.formatter},
{label: "扣分时间", prop: "deductTime", formatter: this.formatterDate},
{label: "扣分或增加分值", prop: "score", formatter: this.formatter},
{label: "核查时间", prop: "checkTime", formatter: this.formatterDate},
{label: "处理状态", prop: "checkStatus",formatter: this.formatter},
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{
label: "操作",
width: 240,
formatter: row => {
return (
<div>
<table-buttons noAdd noEdit noDel row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
<span> </span>
{row.deviceStatus === 0 ? (
<el-button
size="mini"
type="text"
icon="el-icon-open"
onClick={() => {
this.toProcess(row);
}}
>
处理
</el-button>
) : (
""
)}
</div>
);
}
}
]
}
};
}
};
</script>
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="记录ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.recordId}}
</el-descriptions-item>
<el-descriptions-item label="员工ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.staffId}}
</el-descriptions-item>
<el-descriptions-item label="员工姓名" label-class-name="labelClass" content-class-name="contentClass">
{{form.staffName}}
</el-descriptions-item>
<el-descriptions-item label="工号" label-class-name="labelClass" content-class-name="contentClass">
{{form.workNum}}
</el-descriptions-item>
<el-descriptions-item label="窗口编号" label-class-name="labelClass" content-class-name="contentClass">
{{form.windowNum}}
</el-descriptions-item>
<el-descriptions-item label="办件编码" label-class-name="labelClass" content-class-name="contentClass">
{{form.goworkCode}}
</el-descriptions-item>
<el-descriptions-item label="办件所属部门" label-class-name="labelClass" content-class-name="contentClass">
{{form.goworkDepts}}
</el-descriptions-item>
<el-descriptions-item label="事项名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.matterlName}}
</el-descriptions-item>
<el-descriptions-item label="办理时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.goworkTime)}}
</el-descriptions-item>
<el-descriptions-item label="绩效规则id" label-class-name="labelClass" content-class-name="contentClass">
{{form.ruleId}}
</el-descriptions-item>
<el-descriptions-item label="规则名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.ruleName}}
</el-descriptions-item>
<el-descriptions-item label="所属部门" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptId}}
</el-descriptions-item>
<el-descriptions-item label="所属部门名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptName}}
</el-descriptions-item>
<el-descriptions-item label="扣分方式" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("subMethod", form.subMethod) }}
</el-descriptions-item>
<el-descriptions-item label="扣分人员" label-class-name="labelClass" content-class-name="contentClass">
{{form.deductPerson}}
</el-descriptions-item>
<el-descriptions-item label="扣分时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.deductTime)}}
</el-descriptions-item>
<el-descriptions-item label="扣分或增加分值" label-class-name="labelClass" content-class-name="contentClass">
{{form.score}}
</el-descriptions-item>
<el-descriptions-item label="核查人员" label-class-name="labelClass" content-class-name="contentClass">
{{form.checkPerson}}
</el-descriptions-item>
<el-descriptions-item label="核查时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.checkTime)}}
</el-descriptions-item>
<el-descriptions-item label="核查说明" label-class-name="labelClass" content-class-name="contentClass">
{{form.checkDesc}}
</el-descriptions-item>
<el-descriptions-item label="核查结果" label-class-name="labelClass" content-class-name="contentClass">
{{form.checkResult}}
</el-descriptions-item>
<el-descriptions-item label="处理状态" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("checkStatus", form.checkStatus) }}
</el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass">
{{form.remark}}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
"subMethod",
"checkStatus",
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
<template>
<!-- 弹出框表单 -->
<el-drawer
:title="title"
:visible.sync="open"
:direction="direction"
size="50%">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="记录ID" prop="recordId" v-model="form.recordId" placeholder="请输入记录ID"/>
<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="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="deptId" v-model="form.deptId" placeholder="请输入所属部门"/>
<Field label="所属部门名称" prop="deptName" v-model="form.deptName" 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="checkPerson" v-model="form.checkPerson" placeholder="请输入核查人员"/>
<Field label="核查时间" prop="checkTime" v-model="form.checkTime" type="date" />
<Field label="核查说明" prop="checkDesc" v-model="form.checkDesc" type="textarea" placeholder="请输入核查说明"/>
<Field label="核查结果" prop="checkResult" v-model="form.checkResult" placeholder="请输入核查结果"/>
<Field label="处理状态" prop="checkStatus" v-model="form.checkStatus" type="select" :enumData="dict.checkStatus" placeholder="请选择处理状态"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
<form-buttons @submit='submitForm' noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "CheckOtherRecordDetail",
mixins: [form],
components: {
},
created() {
this.changePath("check/other/record")
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "其它绩效核查信息",
// 是否显示弹出层
open: false,
direction:"rtl",
toString:[
"irregularOtherType",
"subMethod",
"checkStatus",
],
toDate:[
"happenTime",
"deductTime",
"checkTime",
],
// 表单校验
rules: {
staffName: [
{required: true,message: "请输入员工姓名", trigger: "blur" },
{max: 64,message: "最多只能录入64个字符",trigger: "blur",},
],
createTime: [
{required: true,message: "请选择创建时间" },
],
}
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="check/other/record/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改其它绩效核查信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "check/other/record/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增其它绩效核查信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="check/other/record/view";
this.getData();
this.pageInfo.type="view"
this.title = "其它绩效核查信息详细";
},
/**取消按钮 */
cancel() {
this.open = false;
},
/**获取数据后弹框 */
afterRender(data) {
this.open = true;
},
afterSubmit(data) {
this.open = false;
this.$emit("ok");
},
// 表单重置
reset() {
this.form = {
recordId : null,
staffId : null,
staffName : "",
workNum : "",
windowNum : "",
irregularOtherType : null,
happenTime : null,
duration : 0,
ruleId : null,
ruleName : "",
ruleDesc : "",
deptId : null,
deptName : "",
subMethod : 1,
deductPerson : "",
deductTime : null,
score : 0.00,
checkPerson : "",
checkTime : null,
checkDesc : "",
checkResult : "",
checkStatus : 1,
remark : "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<template>
<div class="page">
<LayoutTable :data="tableData" notAdd notDel :config="tableConfig">
<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: "CheckOtherRecordList",
components: {
drawerShow
},
mixins: [table],
created() {
},
methods: {
/** 导入 */
handleImport() {
this.upload.title = "其它绩效核查信息导入";
this.upload.open = true;
},
/** 下载模板操作 */
downloadTemplate() {
this.isExport = true;
this.$download("/check/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("/check/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);
},
toProcess(row) {
//todo
this.$refs.drawerform.edit(row);
},
},
data() {
return {
// 用户导入参数
upload: {
// 是否显示弹出层(其它绩效核查信息导入)
open: false,
// 弹出层标题(其它绩效核查信息导入)
title: "导入其它绩效核查信息数据",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的数据
updateSupport: 0,
// 上传的地址
url: "/attendance/check/other/record/importData",
},
isExport: false,
config: {
isshowTabPane:true,
search: [
{
name: "checkStatus",
type: "select",
},
{
name: "deptId",
type: "select",
},
{
name: "checkTime",
type: "date",
label: "核查时间"
},
{
name: "staffName",
type: "text",
label: "员工名称",
fuzzy: true
},
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "员工姓名", prop: "staffName"},
{label: "发生时间", prop: "happenTime", formatter: this.formatterDate},
{label: "扣分方式", prop: "subMethod",formatter: this.formatter},
{label: "扣分时间", prop: "deductTime", formatter: this.formatterDate},
{label: "扣分或增加分值", prop: "score", formatter: this.formatter},
{label: "核查时间", prop: "checkTime", formatter: this.formatterDate},
{label: "处理状态", prop: "checkStatus",formatter: this.formatter},
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{
label: "操作",
width: 240,
formatter: row => {
return (
<div>
<table-buttons noAdd noEdit noDel row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
<span> </span>
{row.deviceStatus === 0 ? (
<el-button
size="mini"
type="text"
icon="el-icon-open"
onClick={() => {
this.toProcess(row);
}}
>
处理
</el-button>
) : (
""
)}
</div>
);
}
}
]
}
};
}
};
</script>
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="记录ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.recordId}}
</el-descriptions-item>
<el-descriptions-item label="员工ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.staffId}}
</el-descriptions-item>
<el-descriptions-item label="员工姓名" label-class-name="labelClass" content-class-name="contentClass">
{{form.staffName}}
</el-descriptions-item>
<el-descriptions-item label="工号" label-class-name="labelClass" content-class-name="contentClass">
{{form.workNum}}
</el-descriptions-item>
<el-descriptions-item label="窗口编号" label-class-name="labelClass" content-class-name="contentClass">
{{form.windowNum}}
</el-descriptions-item>
<el-descriptions-item label="违规类型" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("irregularOtherType", form.irregularOtherType) }}
</el-descriptions-item>
<el-descriptions-item label="发生时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.happenTime)}}
</el-descriptions-item>
<el-descriptions-item label="持续时间,秒" label-class-name="labelClass" content-class-name="contentClass">
{{form.duration}}
</el-descriptions-item>
<el-descriptions-item label="绩效规则id" label-class-name="labelClass" content-class-name="contentClass">
{{form.ruleId}}
</el-descriptions-item>
<el-descriptions-item label="规则名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.ruleName}}
</el-descriptions-item>
<el-descriptions-item label="评分标准" label-class-name="labelClass" content-class-name="contentClass">
{{form.ruleDesc}}
</el-descriptions-item>
<el-descriptions-item label="所属部门" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptId}}
</el-descriptions-item>
<el-descriptions-item label="所属部门名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptName}}
</el-descriptions-item>
<el-descriptions-item label="扣分方式" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("subMethod", form.subMethod) }}
</el-descriptions-item>
<el-descriptions-item label="扣分人员" label-class-name="labelClass" content-class-name="contentClass">
{{form.deductPerson}}
</el-descriptions-item>
<el-descriptions-item label="扣分时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.deductTime)}}
</el-descriptions-item>
<el-descriptions-item label="扣分或增加分值" label-class-name="labelClass" content-class-name="contentClass">
{{form.score}}
</el-descriptions-item>
<el-descriptions-item label="核查人员" label-class-name="labelClass" content-class-name="contentClass">
{{form.checkPerson}}
</el-descriptions-item>
<el-descriptions-item label="核查时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.checkTime)}}
</el-descriptions-item>
<el-descriptions-item label="核查说明" label-class-name="labelClass" content-class-name="contentClass">
{{form.checkDesc}}
</el-descriptions-item>
<el-descriptions-item label="核查结果" label-class-name="labelClass" content-class-name="contentClass">
{{form.checkResult}}
</el-descriptions-item>
<el-descriptions-item label="处理状态" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("checkStatus", form.checkStatus) }}
</el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass">
{{form.remark}}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
"irregularOtherType",
"subMethod",
"checkStatus",
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
<template>
<!-- 弹出框表单 -->
<el-drawer
:title="title"
:visible.sync="open"
:direction="direction"
size="50%">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="记录ID" prop="recordId" v-model="form.recordId" placeholder="请输入记录ID"/>
<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="reviewResult" v-model="form.reviewResult" type="select" :enumData="dict.reviewResult" placeholder="请选择评价结果"/>
<Field label="评价时间" prop="reviewTime" v-model="form.reviewTime" type="date" />
<Field label="评价来源" prop="reviewSource" v-model="form.reviewSource" type="select" :enumData="dict.reviewSource" placeholder="请选择评价来源"/>
<Field label="评价设备" prop="reviewDevice" v-model="form.reviewDevice" placeholder="请输入评价设备"/>
<Field label="绩效规则id" prop="ruleId" v-model="form.ruleId" placeholder="请输入绩效规则id"/>
<Field label="规则名称" prop="ruleName" v-model="form.ruleName" placeholder="请输入规则名称"/>
<Field label="所属部门" prop="deptId" v-model="form.deptId" placeholder="请输入所属部门"/>
<Field label="所属部门名称" prop="deptName" v-model="form.deptName" 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="checkPerson" v-model="form.checkPerson" placeholder="请输入核查人员"/>
<Field label="核查时间" prop="checkTime" v-model="form.checkTime" type="date" />
<Field label="核查说明" prop="checkDesc" v-model="form.checkDesc" type="textarea" placeholder="请输入核查说明"/>
<Field label="核查结果" prop="checkResult" v-model="form.checkResult" placeholder="请输入核查结果"/>
<Field label="处理状态" prop="checkStatus" v-model="form.checkStatus" type="select" :enumData="dict.checkStatus" placeholder="请选择处理状态"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
<form-buttons @submit='submitForm' noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "CheckReviewRecordDetail",
mixins: [form],
components: {
},
created() {
this.changePath("check/review/record")
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "评价差评绩效核查信息",
// 是否显示弹出层
open: false,
direction:"rtl",
toString:[
"reviewResult",
"subMethod",
"checkStatus",
],
toDate:[
"reviewTime",
"deductTime",
"checkTime",
],
// 表单校验
rules: {
staffName: [
{required: true,message: "请输入员工姓名", trigger: "blur" },
{max: 64,message: "最多只能录入64个字符",trigger: "blur",},
],
createTime: [
{required: true,message: "请选择创建时间" },
],
}
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="check/review/record/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改评价差评绩效核查信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "check/review/record/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增评价差评绩效核查信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="check/review/record/view";
this.getData();
this.pageInfo.type="view"
this.title = "评价差评绩效核查信息详细";
},
/**取消按钮 */
cancel() {
this.open = false;
},
/**获取数据后弹框 */
afterRender(data) {
this.open = true;
},
afterSubmit(data) {
this.open = false;
this.$emit("ok");
},
// 表单重置
reset() {
this.form = {
recordId : null,
staffId : null,
staffName : "",
workNum : "",
windowNum : "",
reviewResult : null,
reviewTime : null,
reviewSource : "",
reviewDevice : "",
ruleId : null,
ruleName : "",
deptId : null,
deptName : "",
subMethod : 1,
deductPerson : "",
deductTime : null,
score : 0.00,
checkPerson : "",
checkTime : null,
checkDesc : "",
checkResult : "",
checkStatus : 1,
remark : "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<template>
<div class="page">
<LayoutTable :data="tableData" notAdd notDel :config="tableConfig">
<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: "CheckReviewRecordList",
components: {
drawerShow
},
mixins: [table],
created() {
},
methods: {
/** 导入 */
handleImport() {
this.upload.title = "评价差评绩效核查信息导入";
this.upload.open = true;
},
/** 下载模板操作 */
downloadTemplate() {
this.isExport = true;
this.$download("/check/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("/check/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);
},
toProcess(row) {
//todo
this.$refs.drawerform.edit(row);
},
},
data() {
return {
// 用户导入参数
upload: {
// 是否显示弹出层(评价差评绩效核查信息导入)
open: false,
// 弹出层标题(评价差评绩效核查信息导入)
title: "导入评价差评绩效核查信息数据",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的数据
updateSupport: 0,
// 上传的地址
url: "/attendance/check/review/record/importData",
},
isExport: false,
config: {
isshowTabPane:true,
search: [
{
name: "checkStatus",
type: "select",
},
{
name: "deptId",
type: "select",
},
{
name: "checkTime",
type: "date",
label: "核查时间"
},
{
name: "staffName",
type: "text",
label: "员工名称",
fuzzy: true
},
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "员工姓名", prop: "staffName"},
{label: "评价时间", prop: "reviewTime", formatter: this.formatterDate},
{label: "扣分方式", prop: "subMethod",formatter: this.formatter},
{label: "扣分时间", prop: "deductTime", formatter: this.formatterDate},
{label: "扣分或增加分值", prop: "score", formatter: this.formatter},
{label: "核查时间", prop: "checkTime", formatter: this.formatterDate},
{label: "处理状态", prop: "checkStatus",formatter: this.formatter},
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{
label: "操作",
width: 240,
formatter: row => {
return (
<div>
<table-buttons noAdd noEdit noDel row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
<span> </span>
{row.deviceStatus === 0 ? (
<el-button
size="mini"
type="text"
icon="el-icon-open"
onClick={() => {
this.toProcess(row);
}}
>
处理
</el-button>
) : (
""
)}
</div>
);
}
}
]
}
};
}
};
</script>
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="记录ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.recordId}}
</el-descriptions-item>
<el-descriptions-item label="员工ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.staffId}}
</el-descriptions-item>
<el-descriptions-item label="员工姓名" label-class-name="labelClass" content-class-name="contentClass">
{{form.staffName}}
</el-descriptions-item>
<el-descriptions-item label="工号" label-class-name="labelClass" content-class-name="contentClass">
{{form.workNum}}
</el-descriptions-item>
<el-descriptions-item label="窗口编号" label-class-name="labelClass" content-class-name="contentClass">
{{form.windowNum}}
</el-descriptions-item>
<el-descriptions-item label="评价结果" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("reviewResult", form.reviewResult) }}
</el-descriptions-item>
<el-descriptions-item label="评价时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.reviewTime)}}
</el-descriptions-item>
<el-descriptions-item label="评价来源" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("reviewSource", form.reviewSource) }}
</el-descriptions-item>
<el-descriptions-item label="评价设备" label-class-name="labelClass" content-class-name="contentClass">
{{form.reviewDevice}}
</el-descriptions-item>
<el-descriptions-item label="绩效规则id" label-class-name="labelClass" content-class-name="contentClass">
{{form.ruleId}}
</el-descriptions-item>
<el-descriptions-item label="规则名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.ruleName}}
</el-descriptions-item>
<el-descriptions-item label="所属部门" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptId}}
</el-descriptions-item>
<el-descriptions-item label="所属部门名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptName}}
</el-descriptions-item>
<el-descriptions-item label="扣分方式" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("subMethod", form.subMethod) }}
</el-descriptions-item>
<el-descriptions-item label="扣分人员" label-class-name="labelClass" content-class-name="contentClass">
{{form.deductPerson}}
</el-descriptions-item>
<el-descriptions-item label="扣分时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.deductTime)}}
</el-descriptions-item>
<el-descriptions-item label="扣分或增加分值" label-class-name="labelClass" content-class-name="contentClass">
{{form.score}}
</el-descriptions-item>
<el-descriptions-item label="核查人员" label-class-name="labelClass" content-class-name="contentClass">
{{form.checkPerson}}
</el-descriptions-item>
<el-descriptions-item label="核查时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.checkTime)}}
</el-descriptions-item>
<el-descriptions-item label="核查说明" label-class-name="labelClass" content-class-name="contentClass">
{{form.checkDesc}}
</el-descriptions-item>
<el-descriptions-item label="核查结果" label-class-name="labelClass" content-class-name="contentClass">
{{form.checkResult}}
</el-descriptions-item>
<el-descriptions-item label="处理状态" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("checkStatus", form.checkStatus) }}
</el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass">
{{form.remark}}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
"reviewResult",
"subMethod",
"checkStatus",
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
...@@ -145,7 +145,7 @@ ...@@ -145,7 +145,7 @@
// 是否更新已经存在的数据 // 是否更新已经存在的数据
updateSupport: 0, updateSupport: 0,
// 上传的地址 // 上传的地址
url: "/m/perform/attend/record/importData", url: "/attendance/perform/attend/record/importData",
}, },
isExport: false, isExport: false,
config: { config: {
......
...@@ -145,7 +145,7 @@ ...@@ -145,7 +145,7 @@
// 是否更新已经存在的数据 // 是否更新已经存在的数据
updateSupport: 0, updateSupport: 0,
// 上传的地址 // 上传的地址
url: "/m/perform/complain/record/importData", url: "/attendance/perform/complain/record/importData",
}, },
isExport: false, isExport: false,
config: { config: {
......
...@@ -145,7 +145,7 @@ ...@@ -145,7 +145,7 @@
// 是否更新已经存在的数据 // 是否更新已经存在的数据
updateSupport: 0, updateSupport: 0,
// 上传的地址 // 上传的地址
url: "/m/perform/effect/record/importData", url: "/attendance/perform/effect/record/importData",
}, },
isExport: false, isExport: false,
config: { config: {
......
...@@ -145,7 +145,7 @@ ...@@ -145,7 +145,7 @@
// 是否更新已经存在的数据 // 是否更新已经存在的数据
updateSupport: 0, updateSupport: 0,
// 上传的地址 // 上传的地址
url: "/m/perform/gowork/record/importData", url: "/attendance/perform/gowork/record/importData",
}, },
isExport: false, isExport: false,
config: { config: {
......
...@@ -145,7 +145,7 @@ ...@@ -145,7 +145,7 @@
// 是否更新已经存在的数据 // 是否更新已经存在的数据
updateSupport: 0, updateSupport: 0,
// 上传的地址 // 上传的地址
url: "/m/perform/other/record/importData", url: "/attendance/perform/other/record/importData",
}, },
isExport: false, isExport: false,
config: { config: {
......
...@@ -145,7 +145,7 @@ ...@@ -145,7 +145,7 @@
// 是否更新已经存在的数据 // 是否更新已经存在的数据
updateSupport: 0, updateSupport: 0,
// 上传的地址 // 上传的地址
url: "/m/perform/review/record/importData", url: "/attendance/perform/review/record/importData",
}, },
isExport: false, isExport: false,
config: { config: {
......
<template>
<!-- 弹出框表单 -->
<el-drawer
:title="title"
:visible.sync="open"
:direction="direction"
size="50%">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field :span="20" label="分类" prop="categoryId" v-model="form.categoryId" :enumData="dict.categoryId" type="select" placeholder="请选择分类"/>
<Field :span="20" label="考核内容简称" prop="name" v-model="form.name" placeholder="请输入考核内容简称"/>
<Field :span="20" label="评分标准" prop="content" v-model="form.content" type="textarea" placeholder="请输入评分标准"/>
<Field :span="20" label="增减类型" prop="subAddType" v-model="form.subAddType" type="select" :enumData="dict.subAddType" placeholder="请选择增减类型"/>
<Field :span="20" label="扣分" prop="score" v-model="form.score" placeholder="请输入扣分或增加分值"/>
<Field :span="20" label="关联负责人" prop="assoOwner" v-model="form.assoOwner" type="radio" :enumData="dict.assoOwner" placeholder="请选择是否关联负责人"/>
<Field :span="20" v-if="form.assoOwner==1" label="负责人扣分" prop="ownerScore" v-model="form.ownerScore" placeholder="请输入负责人扣分或增加分值"/>
<Field :span="20" label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
<form-buttons v-if="pageInfo.type!='view'" @submit='submitForm' noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "PerformRulesDetail",
mixins: [form],
components: {
},
created() {
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "绩效规则信息",
// 是否显示弹出层
open: false,
direction:"rtl",
toString:[
"subAddType",
"assoOwner",
"type",
"categoryId"
],
toDate:[
],
// 表单校验
rules: {
},
urls: {
currUrl: "/perform/rules/list",
editUrl: "/perform/rules/edit",
saveUrl: "/perform/rules/save",
},
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="perform/rules/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改绩效规则信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "perform/rules/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增绩效规则信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="perform/rules/view";
this.getData();
this.pageInfo.type="view"
this.title = "绩效规则信息详细";
},
/**取消按钮 */
cancel() {
this.open = false;
},
/**获取数据后弹框 */
afterRender(data) {
this.form.type=1
this.open = true;
},
afterSubmit(data) {
this.open = false;
this.$emit("ok");
},
// 表单重置
reset() {
this.form = {
categoryId : null,
categoryName : "",
name : "",
content : "",
subAddType : 1,
score : 0.00,
assoOwner : 0,
ownerScore : 0.00,
remark : "",
type : 1,
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
</LayoutTable>
<drawer-show ref="drawerform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "PerformRulesList",
components: {
drawerShow
},
mixins: [table],
created() {
console.log("route",this.$route)
this.changePath("/perform/rules")
this.query = Object.assign({}, this.query, {type:1});
},
methods: {
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
},
data() {
return {
config: {
isshowTabPane:true,
search: [
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "分类", prop: "categoryId", formatter: this.formatter},
{label: "考核名称", prop: "name"},
{label: "评分标准", prop: "content"},
{label: "增减类型", prop: "subAddType",formatter: this.formatter},
{label: "分值", prop: "score"},
{label: "负责人分值", prop: "ownerScore"},
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{
label: "操作",
width: 240,
formatter: row => {
return (
<table-buttons noAdd noDel row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
);
}
}
]
}
};
}
};
</script>
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="分类id" label-class-name="labelClass" content-class-name="contentClass">
{{form.categoryId}}
</el-descriptions-item>
<el-descriptions-item label="分类名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.categoryName}}
</el-descriptions-item>
<el-descriptions-item label="考核内容简称" label-class-name="labelClass" content-class-name="contentClass">
{{form.name}}
</el-descriptions-item>
<el-descriptions-item label="评分标准" label-class-name="labelClass" content-class-name="contentClass">
{{form.content}}
</el-descriptions-item>
<el-descriptions-item label="增减类型" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("subAddType", form.subAddType) }}
</el-descriptions-item>
<el-descriptions-item label="扣分或增加分值" label-class-name="labelClass" content-class-name="contentClass">
{{form.score}}
</el-descriptions-item>
<el-descriptions-item label="是否关联负责人" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("assoOwner", form.assoOwner) }}
</el-descriptions-item>
<el-descriptions-item label="负责人扣分或增加分值" label-class-name="labelClass" content-class-name="contentClass">
{{form.ownerScore}}
</el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass">
{{form.remark}}
</el-descriptions-item>
<el-descriptions-item label="规则类型" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("type", form.type) }}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
"subAddType",
"assoOwner",
"type",
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
...@@ -44,11 +44,6 @@ ...@@ -44,11 +44,6 @@
columns: [ columns: [
{type: "selection", width: 60}, {type: "selection", width: 60},
{type: "index",label: "序号",width: 50}, {type: "index",label: "序号",width: 50},
{label: "绩效规则id", prop: "ruleId", formatter: this.formatter},
{label: "规则简称", prop: "ruleBrief"},
{label: "分类名称", prop: "name"}, {label: "分类名称", prop: "name"},
{label: "规则类型", prop: "type",formatter: this.formatter}, {label: "规则类型", prop: "type",formatter: this.formatter},
......
<template>
<!-- 弹出框表单 -->
<el-drawer
:title="title"
:visible.sync="open"
:direction="direction"
size="50%">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field :span="20" label="分类" prop="categoryId" v-model="form.categoryId" :enumData="dict.categoryId" type="select" placeholder="请选择分类"/>
<Field :span="20" label="考核内容简称" prop="name" v-model="form.name" placeholder="请输入考核内容简称"/>
<Field :span="20" label="评分标准" prop="content" v-model="form.content" type="textarea" placeholder="请输入评分标准"/>
<Field :span="20" label="增减类型" prop="subAddType" v-model="form.subAddType" type="select" :enumData="dict.subAddType" placeholder="请选择增减类型"/>
<Field :span="20" label="扣分" prop="score" v-model="form.score" placeholder="请输入扣分或增加分值"/>
<Field :span="20" label="关联负责人" prop="assoOwner" v-model="form.assoOwner" type="radio" :enumData="dict.assoOwner" placeholder="请选择是否关联负责人"/>
<Field :span="20" v-if="form.assoOwner==1" label="负责人扣分" prop="ownerScore" v-model="form.ownerScore" placeholder="请输入负责人扣分或增加分值"/>
<Field :span="20" label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
<form-buttons v-if="pageInfo.type!='view'" @submit='submitForm' noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "PerformRulesDetail",
mixins: [form],
components: {
},
created() {
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "绩效规则信息",
// 是否显示弹出层
open: false,
direction:"rtl",
toString:[
"subAddType",
"assoOwner",
"type",
"categoryId"
],
toDate:[
],
// 表单校验
rules: {
},
urls: {
currUrl: "/perform/rules/list",
editUrl: "/perform/rules/edit",
saveUrl: "/perform/rules/save",
},
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="perform/rules/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改绩效规则信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "perform/rules/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增绩效规则信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="perform/rules/view";
this.getData();
this.pageInfo.type="view"
this.title = "绩效规则信息详细";
},
/**取消按钮 */
cancel() {
this.open = false;
},
/**获取数据后弹框 */
afterRender(data) {
this.form.type=4
this.open = true;
},
afterSubmit(data) {
this.open = false;
this.$emit("ok");
},
// 表单重置
reset() {
this.form = {
categoryId : null,
categoryName : "",
name : "",
content : "",
subAddType : 1,
score : 0.00,
assoOwner : 0,
ownerScore : 0.00,
remark : "",
type : 1,
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
</LayoutTable>
<drawer-show ref="drawerform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "PerformRulesList",
components: {
drawerShow
},
mixins: [table],
created() {
console.log("route",this.$route)
this.changePath("/perform/rules")
this.query = Object.assign({}, this.query, {type:4});
this.config.addQuery ={type:4};
},
methods: {
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
},
data() {
return {
config: {
isshowTabPane:true,
search: [
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "分类", prop: "categoryId", formatter: this.formatter},
{label: "考核名称", prop: "name"},
{label: "评分标准", prop: "content"},
{label: "增减类型", prop: "subAddType",formatter: this.formatter},
{label: "分值", prop: "score"},
{label: "负责人分值", prop: "ownerScore"},
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{
label: "操作",
width: 240,
formatter: row => {
return (
<table-buttons noAdd noDel row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
);
}
}
]
}
};
}
};
</script>
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="分类id" label-class-name="labelClass" content-class-name="contentClass">
{{form.categoryId}}
</el-descriptions-item>
<el-descriptions-item label="分类名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.categoryName}}
</el-descriptions-item>
<el-descriptions-item label="考核内容简称" label-class-name="labelClass" content-class-name="contentClass">
{{form.name}}
</el-descriptions-item>
<el-descriptions-item label="评分标准" label-class-name="labelClass" content-class-name="contentClass">
{{form.content}}
</el-descriptions-item>
<el-descriptions-item label="增减类型" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("subAddType", form.subAddType) }}
</el-descriptions-item>
<el-descriptions-item label="扣分或增加分值" label-class-name="labelClass" content-class-name="contentClass">
{{form.score}}
</el-descriptions-item>
<el-descriptions-item label="是否关联负责人" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("assoOwner", form.assoOwner) }}
</el-descriptions-item>
<el-descriptions-item label="负责人扣分或增加分值" label-class-name="labelClass" content-class-name="contentClass">
{{form.ownerScore}}
</el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass">
{{form.remark}}
</el-descriptions-item>
<el-descriptions-item label="规则类型" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("type", form.type) }}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
"subAddType",
"assoOwner",
"type",
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
<template>
<!-- 弹出框表单 -->
<el-drawer
:title="title"
:visible.sync="open"
:direction="direction"
size="50%">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field :span="20" label="分类" prop="categoryId" v-model="form.categoryId" :enumData="dict.categoryId" type="select" placeholder="请选择分类"/>
<Field :span="20" label="考核内容简称" prop="name" v-model="form.name" placeholder="请输入考核内容简称"/>
<Field :span="20" label="评分标准" prop="content" v-model="form.content" type="textarea" placeholder="请输入评分标准"/>
<Field :span="20" label="增减类型" prop="subAddType" v-model="form.subAddType" type="select" :enumData="dict.subAddType" placeholder="请选择增减类型"/>
<Field :span="20" label="扣分" prop="score" v-model="form.score" placeholder="请输入扣分或增加分值"/>
<Field :span="20" label="关联负责人" prop="assoOwner" v-model="form.assoOwner" type="radio" :enumData="dict.assoOwner" placeholder="请选择是否关联负责人"/>
<Field :span="20" v-if="form.assoOwner==1" label="负责人扣分" prop="ownerScore" v-model="form.ownerScore" placeholder="请输入负责人扣分或增加分值"/>
<Field :span="20" label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
<form-buttons v-if="pageInfo.type!='view'" @submit='submitForm' noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "PerformRulesDetail",
mixins: [form],
components: {
},
created() {
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "绩效规则信息",
// 是否显示弹出层
open: false,
direction:"rtl",
toString:[
"subAddType",
"assoOwner",
"type",
"categoryId"
],
toDate:[
],
// 表单校验
rules: {
},
urls: {
currUrl: "/perform/rules/list",
editUrl: "/perform/rules/edit",
saveUrl: "/perform/rules/save",
},
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="perform/rules/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改绩效规则信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "perform/rules/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增绩效规则信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="perform/rules/view";
this.getData();
this.pageInfo.type="view"
this.title = "绩效规则信息详细";
},
/**取消按钮 */
cancel() {
this.open = false;
},
/**获取数据后弹框 */
afterRender(data) {
this.form.type=3
this.open = true;
},
afterSubmit(data) {
this.open = false;
this.$emit("ok");
},
// 表单重置
reset() {
this.form = {
categoryId : null,
categoryName : "",
name : "",
content : "",
subAddType : 1,
score : 0.00,
assoOwner : 0,
ownerScore : 0.00,
remark : "",
type : 1,
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
</LayoutTable>
<drawer-show ref="drawerform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "PerformRulesList",
components: {
drawerShow
},
mixins: [table],
created() {
console.log("route",this.$route)
this.changePath("/perform/rules")
this.query = Object.assign({}, this.query, {type:3});
},
methods: {
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
},
data() {
return {
config: {
isshowTabPane:true,
search: [
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "分类", prop: "categoryId", formatter: this.formatter},
{label: "考核名称", prop: "name"},
{label: "评分标准", prop: "content"},
{label: "增减类型", prop: "subAddType",formatter: this.formatter},
{label: "分值", prop: "score"},
{label: "负责人分值", prop: "ownerScore"},
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{
label: "操作",
width: 240,
formatter: row => {
return (
<table-buttons noAdd noDel row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
);
}
}
]
}
};
}
};
</script>
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="分类id" label-class-name="labelClass" content-class-name="contentClass">
{{form.categoryId}}
</el-descriptions-item>
<el-descriptions-item label="分类名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.categoryName}}
</el-descriptions-item>
<el-descriptions-item label="考核内容简称" label-class-name="labelClass" content-class-name="contentClass">
{{form.name}}
</el-descriptions-item>
<el-descriptions-item label="评分标准" label-class-name="labelClass" content-class-name="contentClass">
{{form.content}}
</el-descriptions-item>
<el-descriptions-item label="增减类型" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("subAddType", form.subAddType) }}
</el-descriptions-item>
<el-descriptions-item label="扣分或增加分值" label-class-name="labelClass" content-class-name="contentClass">
{{form.score}}
</el-descriptions-item>
<el-descriptions-item label="是否关联负责人" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("assoOwner", form.assoOwner) }}
</el-descriptions-item>
<el-descriptions-item label="负责人扣分或增加分值" label-class-name="labelClass" content-class-name="contentClass">
{{form.ownerScore}}
</el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass">
{{form.remark}}
</el-descriptions-item>
<el-descriptions-item label="规则类型" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("type", form.type) }}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
"subAddType",
"assoOwner",
"type",
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
}, },
mixins: [table], mixins: [table],
created() { created() {
}, },
methods: { methods: {
/** 重写新增方法 */ /** 重写新增方法 */
......
<template>
<!-- 弹出框表单 -->
<el-drawer
:title="title"
:visible.sync="open"
:direction="direction"
size="50%">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field :span="20" label="分类" prop="categoryId" v-model="form.categoryId" :enumData="dict.categoryId" type="select" placeholder="请选择分类"/>
<Field :span="20" label="考核内容简称" prop="name" v-model="form.name" placeholder="请输入考核内容简称"/>
<Field :span="20" label="评分标准" prop="content" v-model="form.content" type="textarea" placeholder="请输入评分标准"/>
<Field :span="20" label="增减类型" prop="subAddType" v-model="form.subAddType" type="select" :enumData="dict.subAddType" placeholder="请选择增减类型"/>
<Field :span="20" label="扣分" prop="score" v-model="form.score" placeholder="请输入扣分或增加分值"/>
<Field :span="20" label="关联负责人" prop="assoOwner" v-model="form.assoOwner" type="radio" :enumData="dict.assoOwner" placeholder="请选择是否关联负责人"/>
<Field :span="20" v-if="form.assoOwner==1" label="负责人扣分" prop="ownerScore" v-model="form.ownerScore" placeholder="请输入负责人扣分或增加分值"/>
<Field :span="20" label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
<form-buttons v-if="pageInfo.type!='view'" @submit='submitForm' noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "PerformRulesDetail",
mixins: [form],
components: {
},
created() {
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "绩效规则信息",
// 是否显示弹出层
open: false,
direction:"rtl",
toString:[
"subAddType",
"assoOwner",
"type",
"categoryId"
],
toDate:[
],
// 表单校验
rules: {
},
urls: {
currUrl: "/perform/rules/list",
editUrl: "/perform/rules/edit",
saveUrl: "/perform/rules/save",
},
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="perform/rules/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改绩效规则信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "perform/rules/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增绩效规则信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="perform/rules/view";
this.getData();
this.pageInfo.type="view"
this.title = "绩效规则信息详细";
},
/**取消按钮 */
cancel() {
this.open = false;
},
/**获取数据后弹框 */
afterRender(data) {
this.form.type=5
this.open = true;
},
afterSubmit(data) {
this.open = false;
this.$emit("ok");
},
// 表单重置
reset() {
this.form = {
categoryId : null,
categoryName : "",
name : "",
content : "",
subAddType : 1,
score : 0.00,
assoOwner : 0,
ownerScore : 0.00,
remark : "",
type : 1,
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
</LayoutTable>
<drawer-show ref="drawerform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "PerformRulesList",
components: {
drawerShow
},
mixins: [table],
created() {
console.log("route",this.$route)
this.changePath("/perform/rules")
this.query = Object.assign({}, this.query, {type:5});
},
methods: {
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
},
data() {
return {
config: {
isshowTabPane:true,
search: [
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "分类", prop: "categoryId", formatter: this.formatter},
{label: "考核名称", prop: "name"},
{label: "评分标准", prop: "content"},
{label: "增减类型", prop: "subAddType",formatter: this.formatter},
{label: "分值", prop: "score"},
{label: "负责人分值", prop: "ownerScore"},
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{
label: "操作",
width: 240,
formatter: row => {
return (
<table-buttons noAdd noDel row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
);
}
}
]
}
};
}
};
</script>
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="分类id" label-class-name="labelClass" content-class-name="contentClass">
{{form.categoryId}}
</el-descriptions-item>
<el-descriptions-item label="分类名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.categoryName}}
</el-descriptions-item>
<el-descriptions-item label="考核内容简称" label-class-name="labelClass" content-class-name="contentClass">
{{form.name}}
</el-descriptions-item>
<el-descriptions-item label="评分标准" label-class-name="labelClass" content-class-name="contentClass">
{{form.content}}
</el-descriptions-item>
<el-descriptions-item label="增减类型" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("subAddType", form.subAddType) }}
</el-descriptions-item>
<el-descriptions-item label="扣分或增加分值" label-class-name="labelClass" content-class-name="contentClass">
{{form.score}}
</el-descriptions-item>
<el-descriptions-item label="是否关联负责人" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("assoOwner", form.assoOwner) }}
</el-descriptions-item>
<el-descriptions-item label="负责人扣分或增加分值" label-class-name="labelClass" content-class-name="contentClass">
{{form.ownerScore}}
</el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass">
{{form.remark}}
</el-descriptions-item>
<el-descriptions-item label="规则类型" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("type", form.type) }}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
"subAddType",
"assoOwner",
"type",
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
<template>
<!-- 弹出框表单 -->
<el-drawer
:title="title"
:visible.sync="open"
:direction="direction"
size="50%">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field :span="20" label="分类" prop="categoryId" v-model="form.categoryId" :enumData="dict.categoryId" type="select" placeholder="请选择分类"/>
<Field :span="20" label="考核内容简称" prop="name" v-model="form.name" placeholder="请输入考核内容简称"/>
<Field :span="20" label="评分标准" prop="content" v-model="form.content" type="textarea" placeholder="请输入评分标准"/>
<Field :span="20" label="增减类型" prop="subAddType" v-model="form.subAddType" type="select" :enumData="dict.subAddType" placeholder="请选择增减类型"/>
<Field :span="20" label="扣分" prop="score" v-model="form.score" placeholder="请输入扣分或增加分值"/>
<Field :span="20" label="关联负责人" prop="assoOwner" v-model="form.assoOwner" type="radio" :enumData="dict.assoOwner" placeholder="请选择是否关联负责人"/>
<Field :span="20" v-if="form.assoOwner==1" label="负责人扣分" prop="ownerScore" v-model="form.ownerScore" placeholder="请输入负责人扣分或增加分值"/>
<Field :span="20" label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
<form-buttons v-if="pageInfo.type!='view'" @submit='submitForm' noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "PerformRulesDetail",
mixins: [form],
components: {
},
created() {
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "绩效规则信息",
// 是否显示弹出层
open: false,
direction:"rtl",
toString:[
"subAddType",
"assoOwner",
"type",
"categoryId"
],
toDate:[
],
// 表单校验
rules: {
},
urls: {
currUrl: "/perform/rules/list",
editUrl: "/perform/rules/edit",
saveUrl: "/perform/rules/save",
},
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="perform/rules/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改绩效规则信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "perform/rules/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增绩效规则信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="perform/rules/view";
this.getData();
this.pageInfo.type="view"
this.title = "绩效规则信息详细";
},
/**取消按钮 */
cancel() {
this.open = false;
},
/**获取数据后弹框 */
afterRender(data) {
this.form.type=2
this.open = true;
},
afterSubmit(data) {
this.open = false;
this.$emit("ok");
},
// 表单重置
reset() {
this.form = {
categoryId : null,
categoryName : "",
name : "",
content : "",
subAddType : 1,
score : 0.00,
assoOwner : 0,
ownerScore : 0.00,
remark : "",
type : 1,
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
</LayoutTable>
<drawer-show ref="drawerform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "PerformRulesList",
components: {
drawerShow
},
mixins: [table],
created() {
this.changePath("/perform/rules")
this.query = Object.assign({}, this.query, {type:2});
},
methods: {
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
},
data() {
return {
config: {
isshowTabPane:true,
search: [
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "分类", prop: "categoryId", formatter: this.formatter},
{label: "考核名称", prop: "name"},
{label: "评分标准", prop: "content"},
{label: "增减类型", prop: "subAddType",formatter: this.formatter},
{label: "分值", prop: "score"},
{label: "负责人分值", prop: "ownerScore"},
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{
label: "操作",
width: 240,
formatter: row => {
return (
<table-buttons noAdd noDel row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
);
}
}
]
}
};
}
};
</script>
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="分类id" label-class-name="labelClass" content-class-name="contentClass">
{{form.categoryId}}
</el-descriptions-item>
<el-descriptions-item label="分类名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.categoryName}}
</el-descriptions-item>
<el-descriptions-item label="考核内容简称" label-class-name="labelClass" content-class-name="contentClass">
{{form.name}}
</el-descriptions-item>
<el-descriptions-item label="评分标准" label-class-name="labelClass" content-class-name="contentClass">
{{form.content}}
</el-descriptions-item>
<el-descriptions-item label="增减类型" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("subAddType", form.subAddType) }}
</el-descriptions-item>
<el-descriptions-item label="扣分或增加分值" label-class-name="labelClass" content-class-name="contentClass">
{{form.score}}
</el-descriptions-item>
<el-descriptions-item label="是否关联负责人" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("assoOwner", form.assoOwner) }}
</el-descriptions-item>
<el-descriptions-item label="负责人扣分或增加分值" label-class-name="labelClass" content-class-name="contentClass">
{{form.ownerScore}}
</el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass">
{{form.remark}}
</el-descriptions-item>
<el-descriptions-item label="规则类型" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("type", form.type) }}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
"subAddType",
"assoOwner",
"type",
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
package com.mortals.xhx.common.code;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 处理状态(1.未处理,2.已处理)枚举类
*
* @author zxfei
*/
public enum CheckStatusEnum {
未处理(1, "未处理"),
已处理(2, "已处理");
private Integer value;
private String desc;
CheckStatusEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
public Integer getValue() {
return this.value;
}
public String getDesc() {
return this.desc;
}
public static CheckStatusEnum getByValue(Integer value) {
for (CheckStatusEnum checkStatusEnum : CheckStatusEnum.values()) {
if (checkStatusEnum.getValue() == value) {
return checkStatusEnum;
}
}
return null;
}
/**
* 获取Map集合
*
* @param eItem 不包含项
* @return
*/
public static Map<String, String> getEnumMap(Integer... eItem) {
Map<String, String> resultMap = new LinkedHashMap<>();
for (CheckStatusEnum item : CheckStatusEnum.values()) {
try {
boolean hasE = false;
for (Integer e : eItem) {
if (item.getValue() == e) {
hasE = true;
break;
}
}
if (!hasE) {
resultMap.put(item.getValue() + "", item.getDesc());
}
} catch (Exception ex) {
}
}
return resultMap;
}
}
\ No newline at end of file
package com.mortals.xhx.module.check.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.check.model.CheckAttendRecordEntity;
import java.util.List;
/**
* 考勤绩效记录核查信息Dao
* 考勤绩效记录核查信息 DAO接口
*
* @author zxfei
* @date 2023-05-18
*/
public interface CheckAttendRecordDao extends ICRUDDao<CheckAttendRecordEntity,Long>{
}
package com.mortals.xhx.module.check.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.check.model.CheckComplainRecordEntity;
import java.util.List;
/**
* 评价绩效投诉核查信息Dao
* 评价绩效投诉核查信息 DAO接口
*
* @author zxfei
* @date 2023-05-18
*/
public interface CheckComplainRecordDao extends ICRUDDao<CheckComplainRecordEntity,Long>{
}
package com.mortals.xhx.module.check.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.check.model.CheckEffectRecordEntity;
import java.util.List;
/**
* 效能绩效核查信息Dao
* 效能绩效核查信息 DAO接口
*
* @author zxfei
* @date 2023-05-18
*/
public interface CheckEffectRecordDao extends ICRUDDao<CheckEffectRecordEntity,Long>{
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment