Commit cd6f6438 authored by 姬鋆屾's avatar 姬鋆屾

tui

parent ae5f9748
......@@ -64,7 +64,7 @@
>
<el-col :span="12"
>图片凭证:{{
form.filePaths ? picMatter(form.filePaths) : "--"
form.snapPath ? picMatter(form.snapPath) : "--"
}}</el-col
>
</el-row>
......@@ -378,7 +378,7 @@ export default {
this.$forceUpdate(this.form);
},
picMatter(val) {
if (val !== "--") {
if (val || val !== "--") {
return (
<el-image
src={val.indexOf("http") == -1 ? this.baseUrl + val : val}
......
......@@ -212,7 +212,7 @@ export default {
{
label: "图片凭证",
prop: "filePaths",
prop: "snapPath",
formatter: this.formatterPic,
},
......
......@@ -80,7 +80,7 @@
>
<el-col :span="12"
>图片凭证:{{
form.filePaths ? picMatter(form.filePaths) : "--"
form.snapPath ? picMatter(form.snapPath) : "--"
}}</el-col
>
</el-row>
......@@ -413,7 +413,7 @@ export default {
this.$forceUpdate(this.form);
},
picMatter(val) {
if (val !== "--") {
if (val || val !== "--") {
return (
<el-image
src={val.indexOf("http") == -1 ? this.baseUrl + val : val}
......
......@@ -217,7 +217,7 @@ export default {
{
label: "图片凭证",
prop: "filePaths",
prop: "snapPath",
formatter: this.formatterPic,
},
......
......@@ -59,7 +59,7 @@
<el-row>
<el-col :span="24">
图片凭证:{{
form.filePaths ? picMatter(form.filePaths) : "--"
form.snapPath ? picMatter(form.snapPath) : "--"
}}</el-col
>
</el-row>
......@@ -386,7 +386,7 @@ export default {
this.$forceUpdate(this.form);
},
picMatter(val) {
if (val !== "--") {
if (val || val !== "--") {
return (
<el-image
src={val.indexOf("http") == -1 ? this.baseUrl + val : val}
......
......@@ -219,7 +219,7 @@ export default {
{
label: "图片凭证",
prop: "filePaths",
prop: "snapPath",
formatter: this.formatterPic,
},
......
......@@ -61,7 +61,7 @@
<el-row>
<el-col :span="24">
图片凭证:{{
form.filePaths ? picMatter(form.filePaths) : "--"
form.snapPath ? picMatter(form.snapPath) : "--"
}}</el-col
>
</el-row>
......@@ -381,7 +381,7 @@ export default {
this.$forceUpdate(this.form);
},
picMatter(val) {
if (val !== "--") {
if (val || val !== "--") {
return (
<el-image
src={val.c == -1 ? this.baseUrl + val : val}
......
......@@ -207,7 +207,7 @@ export default {
{
label: "图片凭证",
prop: "filePaths",
prop: "snapPath",
formatter: this.formatterPic,
},
......
......@@ -55,7 +55,7 @@
<el-row>
<el-col :span="24"
>图片凭证:{{
form.filePaths ? picMatter(form.filePaths) : "--"
form.snapPath ? picMatter(form.snapPath) : "--"
}}</el-col
>
</el-row>
......@@ -376,7 +376,7 @@ export default {
this.$forceUpdate(this.form);
},
picMatter(val) {
if (val !== "--") {
if (val || val !== "--") {
return (
<el-image
src={val.indexOf("http") == -1 ? this.baseUrl + val : val}
......
......@@ -215,7 +215,7 @@ export default {
// { label: "绩效规则id", prop: "ruleId", formatter: this.formatter },
{
label: "图片凭证",
prop: "filePaths",
prop: "snapPath",
formatter: this.formatterPic,
},
......
......@@ -62,7 +62,7 @@
<el-row>
<el-col :span="12"
>图片凭证:{{
form.filePaths ? picMatter(form.filePaths) : "--"
form.snapPath ? picMatter(form.snapPath) : "--"
}}</el-col
>
</el-row>
......@@ -383,7 +383,7 @@ export default {
this.$forceUpdate(this.form);
},
picMatter(val) {
if (val !== "--") {
if (val || val !== "--") {
return (
<el-image
src={val.indexOf("http") == -1 ? baseUrl + val : val}
......
......@@ -216,7 +216,7 @@ export default {
{
label: "图片凭证",
prop: "filePaths",
prop: "snapPath",
formatter: this.formatterPic,
},
......
......@@ -123,11 +123,11 @@
<el-col :span="22">
<el-form-item label="图片凭证:">
<div v-if="form.view == '查看'">
{{ form.filePaths ? picMatter(form.filePaths) : "--" }}
{{ form.snapPath ? picMatter(form.snapPath) : "--" }}
</div>
<ImageUpload
v-else
:value="form.filePaths"
:value="form.snapPath"
@input="replaceImage"
></ImageUpload>
</el-form-item>
......@@ -410,7 +410,7 @@ export default {
methods: {
picMatter(val) {
if (val !== "--") {
if (val || val !== "--") {
return (
<el-image
src={val.indexOf("http") == -1 ? this.baseUrl + val : val}
......@@ -440,7 +440,7 @@ export default {
});
},
replaceImage(val) {
this.form.filePaths = val;
this.form.snapPath = val;
},
staffChange(val) {
console.log(val);
......@@ -481,6 +481,8 @@ export default {
}
this.form.processStatus = 2;
this.form.view = "核查";
this.staffChange(this.form.staffId);
this.open = true;
});
this.pageInfo.type = "edit";
......@@ -565,7 +567,7 @@ export default {
errorResult: "",
errorTime: "",
fileNames: "",
filePaths: "",
snapPath: "",
goOffTimeStr: "",
processStatus: 1,
remark: "",
......
......@@ -220,7 +220,7 @@ export default {
{
label: "图片凭证",
prop: "filePaths",
prop: "snapPath",
formatter: this.formatterPic,
},
......@@ -251,6 +251,9 @@ export default {
return row.processStatus == 1 ? (
<table-buttons
noAdd
noView
noEdit
reCheck
row={row}
onEdit={this.toEdit}
onView={this.toView}
......
......@@ -10,12 +10,19 @@
<el-row>
<el-col :span="22">
<el-form-item label="姓名:">
<el-select v-model="form.staffId" style="width: 100%;">
<p v-if="form.view == '查看'">{{ form.staffName }}</p>
<el-select
v-model="form.staffName"
filterable
@change="staffChange"
style="width: 100%;"
v-else
>
<el-option
v-for="item in staffArr"
:key="item.value"
:label="item.label"
:value="item.value"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option
></el-select>
......@@ -25,12 +32,19 @@
<el-row>
<el-col :span="22">
<el-form-item label="所属部门:">
<el-select v-model="form.deptId" style="width: 100%;">
<p v-if="form.view == '查看'">{{ form.deptName }}</p>
<el-select
v-else
v-model="form.deptId"
style="width: 100%;"
disabled
>
<el-option
v-for="item in deptArr"
:key="item.value"
:label="item.label"
:value="item.value"
:key="item.id"
:label="item.deptName"
:value="item.id"
>
</el-option
></el-select>
......@@ -40,7 +54,10 @@
<el-row>
<el-col :span="22">
<el-form-item label="窗口编号:">
<p v-if="form.view == '查看'">{{ form.windowNum }}</p>
<el-input
v-else
v-model="form.windowNum"
placeholder="请输入窗口编号"
></el-input>
......@@ -50,13 +67,15 @@
<el-row>
<el-col :span="22">
<el-form-item label="投诉来源:">
<p v-if="form.view == '查看'">{{ form.complainSource }}</p>
<el-select
v-model="form.deptId"
v-else
v-model="form.complainSource"
style="width: 100%;"
placeholder="请选择投诉来源"
placeholder="请选择评价来源"
>
<el-option
v-for="item in deptArr"
v-for="item in sourceArr"
:key="item.value"
:label="item.label"
:value="item.value"
......@@ -69,8 +88,11 @@
<el-row>
<el-col :span="22">
<el-form-item label="投诉设备:">
<p v-if="form.view == '查看'">{{ form.complainDevice }}</p>
<el-input
v-model="form.windowNum"
v-else
v-model="form.complainDevice"
placeholder="请输入投诉设备"
></el-input>
</el-form-item>
......@@ -79,8 +101,11 @@
<el-row>
<el-col :span="22">
<el-form-item label="投诉标题:">
<p v-if="form.view == '查看'">{{ form.complainTitle }}</p>
<el-input
v-model="form.windowNum"
v-else
v-model="form.complainTitle"
placeholder="请输入投诉标题"
></el-input>
</el-form-item>
......@@ -89,8 +114,11 @@
<el-row>
<el-col :span="22">
<el-form-item label="投诉内容:">
<p v-if="form.view == '查看'">{{ form.complainContent }}</p>
<el-input
v-model="form.windowNum"
v-else
v-model="form.complainContent"
placeholder="请输入投诉内容"
type="textarea"
style="width: 100%;"
......@@ -101,10 +129,12 @@
<el-row>
<el-col :span="22">
<el-form-item label="真实姓名:">
<p v-if="form.view == '查看'">{{ form.complainRealName }}</p>
<el-input
v-model="form.windowNum"
v-else
v-model="form.complainRealName"
placeholder="请输入真实姓名"
type="textarea"
style="width: 100%;"
></el-input>
</el-form-item>
......@@ -113,10 +143,11 @@
<el-row>
<el-col :span="22">
<el-form-item label="联系电话:">
<p v-if="form.view == '查看'">{{ form.contact }}</p>
<el-input
v-model="form.windowNum"
v-else
v-model="form.contact"
placeholder="请输入联系电话"
type="textarea"
style="width: 100%;"
></el-input>
</el-form-item>
......@@ -125,28 +156,16 @@
<el-row>
<el-col :span="22">
<el-form-item label="投诉时间:">
<el-col :span="11">
<p v-if="form.view == '查看'">{{ form.complainTime }}</p>
<el-date-picker
v-model="dateValue"
type="date"
placeholder="选择日期"
v-else
v-model="form.complainTime"
type="datetime"
placeholder="选择日期时间"
style="width: 100%;"
>
</el-date-picker>
</el-col>
<el-col :span="11">
<el-time-select
v-model="timeValue"
:picker-options="{
start: '06:00',
step: '00:15',
end: '18:30',
}"
placeholder="选择时间"
style="width: 100%;margin-left: 10px;"
>
</el-time-select
></el-col>
</el-form-item>
</el-col>
</el-row>
......@@ -154,22 +173,14 @@
<el-row>
<el-col :span="22">
<el-form-item label="图片凭证:">
<el-upload
class="upload-demo"
action="https://jsonplaceholder.typicode.com/posts/"
:on-preview="handlePreview"
:on-remove="handleRemove"
:before-remove="beforeRemove"
multiple
:limit="3"
:on-exceed="handleExceed"
:file-list="fileList"
>
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">
只能上传jpg/png等图片文件
<div v-if="form.view == '查看'">
{{ form.snapPath ? picMatter(form.snapPath) : "--" }}
</div>
</el-upload>
<ImageUpload
v-else
:value="form.snapPath"
@input="replaceImage"
></ImageUpload>
</el-form-item>
</el-col>
</el-row>
......@@ -177,30 +188,38 @@
<el-row>
<el-col :span="22">
<el-form-item label="绩效规则:">
<p v-if="form.view == '查看'">{{ form.ruleNme }}</p>
<div v-else>
<el-col :span="22">
<el-select v-model="form.attendanceGroupId" style="width: 100%;">
<el-select
v-model="form.categoryId"
style="width: 100%;"
@change="cateChange"
>
<el-option
v-for="item in kaoqinArr"
:key="item.value"
:label="item.label"
:value="item.value"
v-for="item in kaoqinCateArr"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option
></el-select>
</el-col>
<el-col :span="22">
<el-select
v-model="form.attendanceGroupId"
v-model="form.ruleId"
style="width: 100%;margin-top: 10px;"
@change="ruleChange"
>
<el-option
v-for="item in kaoqinArr"
:key="item.value"
:label="item.label"
:value="item.value"
v-for="item in ruleArr"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option></el-select
></el-col>
</div>
</el-form-item>
</el-col>
</el-row>
......@@ -211,9 +230,9 @@
</el-form-item>
</el-col>
</el-row>
<form-buttons
@submit="submitForm"
v-show="form.view != '查看'"
v-if="pageInfo.type != 'view'"
noCancelBtn
/>
......@@ -361,12 +380,41 @@
<script>
import form from "@/assets/mixins/formdialog";
import { timestampToTime } from "@/assets/utils/dateFormat.js";
export default {
name: "PerformComplainRecordDetail",
mixins: [form],
components: {},
created() {
this.changePath("perform/complain/record");
// 获取工作人员列表
this.$post("/staff/list", { page: 1, size: -1 }).then((res) => {
if (res.code == 1) {
this.staffArr = res.data.data;
} else {
this.staffArr = [];
}
});
// 获取部门列表
this.$post("/dept/list", { page: 1, size: -1 }).then((res) => {
if (res.code == 1) {
this.deptArr = res.data.data;
} else {
this.deptArr = [];
}
});
// 获取规则分类
this.$post("/perform/rules/category/list", { page: 1, size: -1 }).then(
(res) => {
if (res.code == 1) {
this.kaoqinCateArr = res.data.data;
} else {
this.kaoqinCateArr = [];
}
}
);
},
data() {
return {
......@@ -387,24 +435,152 @@ export default {
],
createTime: [{ required: true, message: "请选择创建时间" }],
},
staffArr: [],
deptArr: [],
kaoqinArr: [],
fileList: [],
kaoqinCateArr: [],
ruleArr: [],
sourceArr: [
{
label: "窗口评价系统",
value: "窗口评价系统",
},
{
label: "导视系统",
value: "导视系统",
},
{
label: "自助服务系统",
value: "自助服务系统",
},
{
label: "微官网",
value: "微官网",
},
{
label: "其它",
value: "其它",
},
],
form: {},
baseUrl: process.env.VUE_APP_API_BASE_URL + "/",
dateValue: "",
timeValue: "",
};
},
methods: {
picMatter(val) {
if (val || val !== "--") {
return (
<el-image
src={val.indexOf("http") == -1 ? this.baseUrl + val : val}
preview-src-list={
val.indexOf("http") == -1 ? this.baseUrl + val : val
}
style="width: 100px"
></el-image>
);
} else {
return val;
}
},
ruleChange(val) {
let arr = this.ruleArr.filter((v) => v.id == val);
this.form.score = arr && arr[0].score;
this.form.checkStatus == 1 ? (this.form.checkStatus = 2) : "";
},
cateChange() {
this.$post("/perform/rules/list", {
page: 1,
size: -1,
categoryId: this.form.categoryId,
}).then((res) => {
this.ruleArr = res.data.data;
this.form.ruleId = "";
});
},
replaceImage(val) {
this.form.snapPath = val;
},
staffChange(val) {
let arr = this.staffArr.filter((v) => v.id == val);
this.form.deptId = arr && arr.length > 0 ? arr[0].deptId : "";
},
/** 编辑 */
edit(row) {
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "perform/complain/record/edit";
this.getData();
// this.urls.currUrl = "perform/complain/record/edit";
// this.getData();
this.$get("/perform/complain/record/info", { id: row.id }).then((res) => {
if (res.code == 1) {
this.form = res.data;
} else {
this.form = row;
}
for (let key in this.form) {
key == "actualAttendTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "attendanceDate"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "createTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "errorTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "updateTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "checkTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "deductTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "goOffTimeStr"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "complainTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: "";
}
this.form.processStatus = 2;
this.form.view = "核查";
this.staffChange(this.form.staffId);
this.open = true;
});
this.pageInfo.type = "edit";
this.title = "修改评价绩效投诉记录信息";
},
/** 新增 */
add(row) {
this.reset();
this.urls.currUrl = "perform/complain/record/add";
this.getData();
// this.urls.currUrl = "perform/complain/record/add";
// this.getData();
this.form = {
staffId: null,
staffName: "",
workNum: "",
windowNum: "",
deptId: null,
deptName: "",
complainTitle: "",
complainContent: "",
complainRealName: "",
contact: "",
complainTime: null,
complainSource: "",
complainDevice: "",
ruleId: null,
ruleName: "",
subMethod: "",
deductPerson: "",
deductTime: null,
score: "",
processStatus: 1,
remark: "",
snapPath: "",
fileNames: "",
};
this.open = true;
this.pageInfo.type = "add";
this.title = "新增评价绩效投诉记录信息";
},
......@@ -412,8 +588,39 @@ export default {
view(row) {
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "perform/complain/record/view";
this.getData();
// this.urls.currUrl = "perform/complain/record/view";
// this.getData();
this.$get("/perform/complain/record/info", { id: row.id }).then((res) => {
if (res.code == 1) {
this.form = res.data;
} else {
this.form = row;
}
for (let key in this.form) {
key == "actualAttendTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "attendanceDate"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "createTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "errorTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "updateTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "checkTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "deductTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "goOffTimeStr"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "complainTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: "";
}
this.form.processStatus = 1;
this.form.view = "查看";
this.open = true;
});
this.pageInfo.type = "view";
this.title = "评价绩效投诉记录信息详细";
},
......@@ -449,10 +656,10 @@ export default {
complainDevice: "",
ruleId: null,
ruleName: "",
subMethod: 1,
subMethod: "",
deductPerson: "",
deductTime: null,
score: 0.0,
score: "",
processStatus: 1,
remark: "",
};
......
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
<LayoutTable :data="tableData" notDel :config="tableConfig">
<el-button
slot="table-head-left2"
style="margin-left: 10px"
......@@ -120,7 +120,8 @@ export default {
this.$download(
"/perform/complain/record/exportExcel",
{
idList: this.selection,
page: 1,
size: -1,
},
{ type: "excel" }
)
......@@ -136,10 +137,12 @@ export default {
},
/** 重写编辑方法 */
toEdit(row) {
row.view = "核查";
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
row.view = "查看";
this.$refs.drawerform.view(row);
},
},
......@@ -163,7 +166,7 @@ export default {
isshowTabPane: true,
search: [
{
name: "status",
name: "processStatus",
type: "select",
label: "全部状态",
fuzzy: false,
......@@ -175,7 +178,7 @@ export default {
fuzzy: false,
},
{
name: "source",
name: "complainSource",
type: "select",
label: "全部来源",
fuzzy: false,
......@@ -221,7 +224,7 @@ export default {
{
label: "图片凭证",
prop: "filePaths",
prop: "snapPath",
formatter: this.formatterPic,
},
......@@ -251,9 +254,22 @@ export default {
label: "操作",
width: 200,
formatter: (row) => {
return (
return row.processStatus == 1 ? (
<table-buttons
noAdd
noView
noEdit
reCheck
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
) : (
<table-buttons
noAdd
noEdit
noDel
row={row}
onEdit={this.toEdit}
onView={this.toView}
......
......@@ -10,12 +10,19 @@
<el-row>
<el-col :span="22">
<el-form-item label="姓名:">
<el-select v-model="form.staffId" style="width: 100%;">
<p v-if="form.view == '查看'">{{ form.staffName }}</p>
<el-select
v-model="form.staffName"
filterable
@change="staffChange"
style="width: 100%;"
v-else
>
<el-option
v-for="item in staffArr"
:key="item.value"
:label="item.label"
:value="item.value"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option
></el-select>
......@@ -25,12 +32,19 @@
<el-row>
<el-col :span="22">
<el-form-item label="所属部门:">
<el-select v-model="form.deptId" style="width: 100%;">
<p v-if="form.view == '查看'">{{ form.deptName }}</p>
<el-select
v-else
v-model="form.deptId"
style="width: 100%;"
disabled
>
<el-option
v-for="item in deptArr"
:key="item.value"
:label="item.label"
:value="item.value"
:key="item.id"
:label="item.deptName"
:value="item.id"
>
</el-option
></el-select>
......@@ -40,7 +54,10 @@
<el-row>
<el-col :span="22">
<el-form-item label="窗口编号:">
<p v-if="form.view == '查看'">{{ form.windowNum }}</p>
<el-input
v-else
v-model="form.windowNum"
placeholder="请输入窗口编号"
></el-input>
......@@ -50,9 +67,28 @@
<el-row>
<el-col :span="22">
<el-form-item label="违规类型:">
<el-select v-model="form.goworkDepts" style="width: 100%;">
<p v-if="form.view == '查看'">
{{
form.irregularType == 1
? "脱岗"
: form.irregularType == 2
? "离岗"
: form.irregularType == 3
? "玩手机"
: form.irregularType == 4
? "睡觉"
: "--"
}}
</p>
<el-select
v-model="form.irregularType"
v-else
placeholder="请选择违规类型"
style="width: 100%;"
>
<el-option
v-for="item in kaoqinArr"
v-for="item in sourceArr"
:key="item.value"
:label="item.label"
:value="item.value"
......@@ -66,36 +102,27 @@
<el-row>
<el-col :span="22">
<el-form-item label="发生时间:">
<el-col :span="11">
<p v-if="form.view == '查看'">{{ form.happenTime }}</p>
<el-date-picker
v-model="dateValue"
type="date"
placeholder="选择日期"
v-else
v-model="form.happenTime"
type="datetime"
placeholder="选择日期时间"
style="width: 100%;"
>
</el-date-picker>
</el-col>
<el-col :span="11">
<el-time-select
v-model="timeValue"
:picker-options="{
start: '06:00',
step: '00:15',
end: '18:30',
}"
placeholder="选择时间"
style="width: 100%;margin-left: 10px;"
>
</el-time-select
></el-col>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="22">
<el-form-item label="时长:">
<p v-if="form.view == '查看'">{{ form.duration }}</p>
<el-input
v-model="form.windowNum"
v-else
v-model="form.duration"
placeholder="请输入时长(xx分xx秒)"
></el-input>
</el-form-item>
......@@ -104,50 +131,30 @@
<el-row>
<el-col :span="22">
<el-form-item label="报警时间:">
<el-col :span="11">
<p v-if="form.view == '查看'">{{ form.alarmTime }}</p>
<el-date-picker
v-model="dateValue1"
type="date"
placeholder="选择日期"
v-else
v-model="form.alarmTime"
type="datetime"
placeholder="选择日期时间"
style="width: 100%;"
>
</el-date-picker>
</el-col>
<el-col :span="11">
<el-time-select
v-model="timeValue1"
:picker-options="{
start: '06:00',
step: '00:15',
end: '18:30',
}"
placeholder="选择时间"
style="width: 100%;margin-left: 10px;"
>
</el-time-select
></el-col>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="22">
<el-form-item label="图片凭证:">
<el-upload
class="upload-demo"
action="https://jsonplaceholder.typicode.com/posts/"
:on-preview="handlePreview"
:on-remove="handleRemove"
:before-remove="beforeRemove"
multiple
:limit="3"
:on-exceed="handleExceed"
:file-list="fileList"
>
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">
只能上传jpg/png等图片文件
<div v-if="form.view == '查看'">
{{ form.snapPath ? picMatter(form.snapPath) : "--" }}
</div>
</el-upload>
<ImageUpload
v-else
:value="form.snapPath"
@input="replaceImage"
></ImageUpload>
</el-form-item>
</el-col>
</el-row>
......@@ -155,30 +162,38 @@
<el-row>
<el-col :span="22">
<el-form-item label="绩效规则:">
<p v-if="form.view == '查看'">{{ form.ruleNme }}</p>
<div v-else>
<el-col :span="22">
<el-select v-model="form.attendanceGroupId" style="width: 100%;">
<el-select
v-model="form.categoryId"
style="width: 100%;"
@change="cateChange"
>
<el-option
v-for="item in kaoqinArr"
:key="item.value"
:label="item.label"
:value="item.value"
v-for="item in kaoqinCateArr"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option
></el-select>
</el-col>
<el-col :span="22">
<el-select
v-model="form.attendanceGroupId"
v-model="form.ruleId"
style="width: 100%;margin-top: 10px;"
@change="ruleChange"
>
<el-option
v-for="item in kaoqinArr"
:key="item.value"
:label="item.label"
:value="item.value"
v-for="item in ruleArr"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option></el-select
></el-col>
</div>
</el-form-item>
</el-col>
</el-row>
......@@ -192,6 +207,7 @@
<form-buttons
@submit="submitForm"
v-show="form.view != '查看'"
v-if="pageInfo.type != 'view'"
noCancelBtn
/>
......@@ -333,12 +349,41 @@
<script>
import form from "@/assets/mixins/formdialog";
import { timestampToTime } from "@/assets/utils/dateFormat.js";
export default {
name: "PerformEffectRecordDetail",
mixins: [form],
components: {},
created() {
this.changePath("perform/effect/record");
// 获取工作人员列表
this.$post("/staff/list", { page: 1, size: -1 }).then((res) => {
if (res.code == 1) {
this.staffArr = res.data.data;
} else {
this.staffArr = [];
}
});
// 获取部门列表
this.$post("/dept/list", { page: 1, size: -1 }).then((res) => {
if (res.code == 1) {
this.deptArr = res.data.data;
} else {
this.deptArr = [];
}
});
// 获取规则分类
this.$post("/perform/rules/category/list", { page: 1, size: -1 }).then(
(res) => {
if (res.code == 1) {
this.kaoqinCateArr = res.data.data;
} else {
this.kaoqinCateArr = [];
}
}
);
},
data() {
return {
......@@ -365,31 +410,126 @@ export default {
value: "1",
},
],
staffArr: [],
deptArr: [],
kaoqinArr: [],
fileList: [],
kaoqinCateArr: [],
ruleArr: [],
sourceArr: [
{
label: "脱岗",
value: "1",
},
{
label: "离岗",
value: "2",
},
{
label: "玩手机",
value: "3",
},
{
label: "睡觉",
value: "4",
},
],
form: {},
baseUrl: process.env.VUE_APP_API_BASE_URL + "/",
dateValue: "",
timeValue: "",
dateValue1: "",
timeValue1: "",
};
},
methods: {
picMatter(val) {
if (val) {
return (
<el-image
src={val.indexOf("http") == -1 ? this.baseUrl + val : val}
preview-src-list={
val.indexOf("http") == -1 ? this.baseUrl + val : val
}
style="width: 100px"
></el-image>
);
} else {
return val;
}
},
ruleChange(val) {
let arr = this.ruleArr.filter((v) => v.id == val);
this.form.score = arr && arr[0].score;
this.form.checkStatus == 1 ? (this.form.checkStatus = 2) : "";
},
cateChange() {
this.$post("/perform/rules/list", {
page: 1,
size: -1,
categoryId: this.form.categoryId,
}).then((res) => {
this.ruleArr = res.data.data;
this.form.ruleId = "";
});
},
replaceImage(val) {
this.form.snapPath = val;
},
staffChange(val) {
console.log(val);
let arr = this.staffArr.filter((v) => v.id == val);
this.form.deptId = arr && arr.length > 0 ? arr[0].deptId : "";
},
/** 编辑 */
edit(row) {
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "perform/effect/record/edit";
this.getData();
// this.urls.currUrl = "perform/effect/record/edit";
// this.getData();
this.$get("/perform/effect/record/info", { id: row.id }).then((res) => {
if (res.code == 1) {
this.form = res.data;
} else {
this.form = row;
}
for (let key in this.form) {
key == "actualAttendTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "attendanceDate"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "createTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "errorTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "updateTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "checkTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "deductTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "goOffTimeStr"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "happenTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "alarmTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: "";
}
this.form.processStatus = 2;
this.form.view = "核查";
this.staffChange(this.form.staffId);
this.open = true;
});
this.pageInfo.type = "edit";
this.title = "修改效能绩效记录信息";
},
/** 新增 */
add(row) {
this.reset();
this.urls.currUrl = "perform/effect/record/add";
this.getData();
// this.urls.currUrl = "perform/effect/record/add";
// this.getData();
this.open = true;
this.pageInfo.type = "add";
this.title = "新增效能绩效记录信息";
},
......@@ -397,8 +537,41 @@ export default {
view(row) {
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "perform/effect/record/view";
this.getData();
// this.urls.currUrl = "perform/effect/record/view";
// this.getData();
this.$get("/perform/effect/record/info", { id: row.id }).then((res) => {
if (res.code == 1) {
this.form = res.data;
} else {
this.form = row;
}
for (let key in this.form) {
key == "actualAttendTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "attendanceDate"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "createTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "errorTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "updateTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "checkTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "deductTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "goOffTimeStr"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "happenTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "alarmTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: "";
}
this.form.processStatus = 1;
this.form.view = "查看";
this.open = true;
});
this.pageInfo.type = "view";
this.title = "效能绩效记录信息详细";
},
......@@ -432,12 +605,13 @@ export default {
snapPath: "",
ruleId: null,
ruleName: "",
subMethod: 1,
subMethod: "",
deductPerson: "",
deductTime: null,
score: 0.0,
score: "",
processStatus: 1,
remark: "",
categoryId: "",
};
this.resetForm("form");
},
......
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
<LayoutTable :data="tableData" notDel :config="tableConfig">
<el-button
slot="table-head-left2"
style="margin-left: 10px"
......@@ -120,7 +120,8 @@ export default {
this.$download(
"/perform/effect/record/exportExcel",
{
idList: this.selection,
page: 1,
size: -1,
},
{ type: "excel" }
)
......@@ -136,10 +137,12 @@ export default {
},
/** 重写编辑方法 */
toEdit(row) {
row.view = "核查";
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
row.view = "查看";
this.$refs.drawerform.view(row);
},
},
......@@ -163,7 +166,7 @@ export default {
isshowTabPane: true,
search: [
{
name: "status",
name: "processStatus",
type: "select",
label: "全部状态",
fuzzy: false,
......@@ -224,7 +227,7 @@ export default {
{
label: "图片凭证",
prop: "filePaths",
prop: "snapPath",
formatter: this.formatterPic,
},
{ label: "绩效规则", prop: "ruleName" },
......@@ -251,9 +254,22 @@ export default {
label: "操作",
width: 240,
formatter: (row) => {
return (
return row.processStatus == 1 ? (
<table-buttons
noAdd
noView
noEdit
reCheck
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
) : (
<table-buttons
noAdd
noEdit
noDel
row={row}
onEdit={this.toEdit}
onView={this.toView}
......
......@@ -10,12 +10,19 @@
<el-row>
<el-col :span="22">
<el-form-item label="姓名:">
<el-select v-model="form.staffId" style="width: 100%;">
<p v-if="form.view == '查看'">{{ form.staffName }}</p>
<el-select
v-model="form.staffName"
filterable
@change="staffChange"
style="width: 100%;"
v-else
>
<el-option
v-for="item in staffArr"
:key="item.value"
:label="item.label"
:value="item.value"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option
></el-select>
......@@ -25,12 +32,19 @@
<el-row>
<el-col :span="22">
<el-form-item label="所属部门:">
<el-select v-model="form.deptId" style="width: 100%;">
<p v-if="form.view == '查看'">{{ form.deptName }}</p>
<el-select
v-else
v-model="form.deptId"
style="width: 100%;"
disabled
>
<el-option
v-for="item in deptArr"
:key="item.value"
:label="item.label"
:value="item.value"
:key="item.id"
:label="item.deptName"
:value="item.id"
>
</el-option
></el-select>
......@@ -40,7 +54,10 @@
<el-row>
<el-col :span="22">
<el-form-item label="窗口编号:">
<p v-if="form.view == '查看'">{{ form.windowNum }}</p>
<el-input
v-else
v-model="form.windowNum"
placeholder="请输入窗口编号"
></el-input>
......@@ -50,8 +67,10 @@
<el-row>
<el-col :span="22">
<el-form-item label="办件编码:">
<p v-if="form.view == '查看'">{{ form.goworkCode }}</p>
<el-input
v-model="form.windowNum"
v-model="form.goworkCode"
placeholder="请输入办件编码"
></el-input>
</el-form-item>
......@@ -60,12 +79,14 @@
<el-row>
<el-col :span="22">
<el-form-item label="办件所属部门:">
<el-select v-model="form.goworkDepts" style="width: 100%;">
<p v-if="form.view == '查看'">{{ form.goworkDepts }}</p>
<el-select v-else v-model="form.goworkDepts" style="width: 100%;">
<el-option
v-for="item in kaoqinArr"
:key="item.value"
:label="item.label"
:value="item.value"
v-for="item in deptArr"
:key="item.id"
:label="item.deptName"
:value="item.deptName"
>
</el-option
></el-select>
......@@ -75,8 +96,11 @@
<el-row>
<el-col :span="22">
<el-form-item label="事项名称:">
<p v-if="form.view == '查看'">{{ form.matterlName }}</p>
<el-input
v-model="form.windowNum"
v-else
v-model="form.matterlName"
placeholder="请输入事项名称"
></el-input>
</el-form-item>
......@@ -85,50 +109,30 @@
<el-row>
<el-col :span="22">
<el-form-item label="办件时间:">
<el-col :span="11">
<p v-if="form.view == '查看'">{{ form.goworkTime }}</p>
<el-date-picker
v-model="dateValue"
type="date"
placeholder="选择日期"
v-else
v-model="form.goworkTime"
type="datetime"
placeholder="选择日期时间"
style="width: 100%;"
>
</el-date-picker>
</el-col>
<el-col :span="11">
<el-time-select
v-model="timeValue"
:picker-options="{
start: '06:00',
step: '00:15',
end: '18:30',
}"
placeholder="选择时间"
style="width: 100%;margin-left: 10px;"
>
</el-time-select
></el-col>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="22">
<el-form-item label="图片凭证:">
<el-upload
class="upload-demo"
action="https://jsonplaceholder.typicode.com/posts/"
:on-preview="handlePreview"
:on-remove="handleRemove"
:before-remove="beforeRemove"
multiple
:limit="3"
:on-exceed="handleExceed"
:file-list="fileList"
>
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">
只能上传jpg/png等图片文件
<div v-if="form.view == '查看'">
{{ form.snapPath ? picMatter(form.snapPath) : "--" }}
</div>
</el-upload>
<ImageUpload
v-else
:value="form.snapPath"
@input="replaceImage"
></ImageUpload>
</el-form-item>
</el-col>
</el-row>
......@@ -136,30 +140,38 @@
<el-row>
<el-col :span="22">
<el-form-item label="绩效规则:">
<p v-if="form.view == '查看'">{{ form.ruleNme }}</p>
<div v-else>
<el-col :span="22">
<el-select v-model="form.attendanceGroupId" style="width: 100%;">
<el-select
v-model="form.categoryId"
style="width: 100%;"
@change="cateChange"
>
<el-option
v-for="item in kaoqinArr"
:key="item.value"
:label="item.label"
:value="item.value"
v-for="item in kaoqinCateArr"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option
></el-select>
</el-col>
<el-col :span="22">
<el-select
v-model="form.attendanceGroupId"
v-model="form.ruleId"
style="width: 100%;margin-top: 10px;"
@change="ruleChange"
>
<el-option
v-for="item in kaoqinArr"
:key="item.value"
:label="item.label"
:value="item.value"
v-for="item in ruleArr"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option></el-select
></el-col>
</div>
</el-form-item>
</el-col>
</el-row>
......@@ -173,6 +185,7 @@
<form-buttons
@submit="submitForm"
v-show="form.view != '查看'"
v-if="pageInfo.type != 'view'"
noCancelBtn
/>
......@@ -307,12 +320,41 @@
<script>
import form from "@/assets/mixins/formdialog";
import { timestampToTime } from "@/assets/utils/dateFormat.js";
export default {
name: "PerformGoworkRecordDetail",
mixins: [form],
components: {},
created() {
this.changePath("perform/gowork/record");
// 获取工作人员列表
this.$post("/staff/list", { page: 1, size: -1 }).then((res) => {
if (res.code == 1) {
this.staffArr = res.data.data;
} else {
this.staffArr = [];
}
});
// 获取部门列表
this.$post("/dept/list", { page: 1, size: -1 }).then((res) => {
if (res.code == 1) {
this.deptArr = res.data.data;
} else {
this.deptArr = [];
}
});
// 获取规则分类
this.$post("/perform/rules/category/list", { page: 1, size: -1 }).then(
(res) => {
if (res.code == 1) {
this.kaoqinCateArr = res.data.data;
} else {
this.kaoqinCateArr = [];
}
}
);
},
data() {
return {
......@@ -333,35 +375,129 @@ export default {
],
createTime: [{ required: true, message: "请选择创建时间" }],
},
staffArr: [
{
label: "员工1",
value: "1",
},
],
staffArr: [],
deptArr: [],
kaoqinArr: [],
fileList: [],
kaoqinCateArr: [],
ruleArr: [],
sourceArr: [
{
label: "窗口评价系统",
value: "窗口评价系统",
},
{
label: "导视系统",
value: "导视系统",
},
{
label: "自助服务系统",
value: "自助服务系统",
},
{
label: "微官网",
value: "微官网",
},
{
label: "其它",
value: "其它",
},
],
form: {},
baseUrl: process.env.VUE_APP_API_BASE_URL + "/",
dateValue: "",
timeValue: "",
};
},
methods: {
picMatter(val) {
if (val || val !== "--") {
return (
<el-image
src={val.indexOf("http") == -1 ? this.baseUrl + val : val}
preview-src-list={
val.indexOf("http") == -1 ? this.baseUrl + val : val
}
style="width: 100px"
></el-image>
);
} else {
return val;
}
},
ruleChange(val) {
let arr = this.ruleArr.filter((v) => v.id == val);
this.form.score = arr && arr[0].score;
this.form.checkStatus == 1 ? (this.form.checkStatus = 2) : "";
},
cateChange() {
this.$post("/perform/rules/list", {
page: 1,
size: -1,
categoryId: this.form.categoryId,
}).then((res) => {
this.ruleArr = res.data.data;
this.form.ruleId = "";
});
},
replaceImage(val) {
this.form.snapPath = val;
},
staffChange(val) {
console.log(val);
let arr = this.staffArr.filter((v) => v.id == val);
this.form.deptId = arr && arr.length > 0 ? arr[0].deptId : "";
},
/** 编辑 */
edit(row) {
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "perform/gowork/record/edit";
this.getData();
// this.urls.currUrl = "perform/gowork/record/edit";
// this.getData();
this.$get("/perform/review/record/info", { id: row.id }).then((res) => {
console.log(res.data);
if (res.code == 1) {
this.form = res.data;
} else {
this.form = row;
}
for (let key in this.form) {
key == "actualAttendTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "attendanceDate"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "createTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "errorTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "updateTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "checkTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "deductTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "goOffTimeStr"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "reviewTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: "";
}
this.form.processStatus = 2;
this.form.view = "核查";
this.staffChange(this.form.staffId);
this.open = true;
});
this.pageInfo.type = "edit";
this.title = "修改办件绩效记录信息";
},
/** 新增 */
add(row) {
this.reset();
this.urls.currUrl = "perform/gowork/record/add";
this.getData();
// this.urls.currUrl = "perform/gowork/record/add";
// this.getData();
this.open = true;
this.pageInfo.type = "add";
this.title = "新增办件绩效记录信息";
},
......@@ -369,8 +505,39 @@ export default {
view(row) {
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "perform/gowork/record/view";
this.getData();
// this.urls.currUrl = "perform/gowork/record/view";
// this.getData();
this.$get("/perform/review/record/info", { id: row.id }).then((res) => {
if (res.code == 1) {
this.form = res.data;
} else {
this.form = row;
}
for (let key in this.form) {
key == "actualAttendTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "attendanceDate"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "createTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "errorTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "updateTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "checkTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "deductTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "goOffTimeStr"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "goworkTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: "";
}
this.form.processStatus = 1;
this.form.view = "查看";
this.open = true;
});
this.pageInfo.type = "view";
this.title = "办件绩效记录信息详细";
},
......@@ -406,7 +573,7 @@ export default {
subMethod: 1,
deductPerson: "",
deductTime: null,
score: 0.0,
score: "",
processStatus: 1,
remark: "",
};
......
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
<LayoutTable :data="tableData" notDel :config="tableConfig">
<el-button
slot="table-head-left2"
style="margin-left: 10px"
......@@ -120,7 +120,8 @@ export default {
this.$download(
"/perform/gowork/record/exportExcel",
{
idList: this.selection,
page: 1,
size: -1,
},
{ type: "excel" }
)
......@@ -136,10 +137,12 @@ export default {
},
/** 重写编辑方法 */
toEdit(row) {
row.view = "核查";
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
row.view = "查看";
this.$refs.drawerform.view(row);
},
},
......@@ -163,7 +166,7 @@ export default {
isshowTabPane: true,
search: [
{
name: "status",
name: "processStatus",
type: "select",
label: "全部状态",
fuzzy: false,
......@@ -211,7 +214,7 @@ export default {
{
label: "图片凭证",
prop: "filePaths",
prop: "snapPath",
formatter: this.formatterPic,
},
{ label: "绩效规则", prop: "ruleName" },
......@@ -238,9 +241,22 @@ export default {
label: "操作",
width: 240,
formatter: (row) => {
return (
return row.processStatus == 1 ? (
<table-buttons
noAdd
noView
noEdit
reCheck
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
) : (
<table-buttons
noAdd
noEdit
noDel
row={row}
onEdit={this.toEdit}
onView={this.toView}
......
......@@ -10,12 +10,19 @@
<el-row>
<el-col :span="22">
<el-form-item label="姓名:">
<el-select v-model="form.staffId" style="width: 100%;">
<p v-if="form.view == '查看'">{{ form.staffName }}</p>
<el-select
v-model="form.staffName"
filterable
@change="staffChange"
style="width: 100%;"
v-else
>
<el-option
v-for="item in staffArr"
:key="item.value"
:label="item.label"
:value="item.value"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option
></el-select>
......@@ -25,12 +32,19 @@
<el-row>
<el-col :span="22">
<el-form-item label="所属部门:">
<el-select v-model="form.deptId" style="width: 100%;">
<p v-if="form.view == '查看'">{{ form.deptName }}</p>
<el-select
v-else
v-model="form.deptId"
style="width: 100%;"
disabled
>
<el-option
v-for="item in deptArr"
:key="item.value"
:label="item.label"
:value="item.value"
:key="item.id"
:label="item.deptName"
:value="item.id"
>
</el-option
></el-select>
......@@ -40,7 +54,10 @@
<el-row>
<el-col :span="22">
<el-form-item label="窗口编号:">
<p v-if="form.view == '查看'">{{ form.windowNum }}</p>
<el-input
v-else
v-model="form.windowNum"
placeholder="请输入窗口编号"
></el-input>
......@@ -51,28 +68,16 @@
<el-row>
<el-col :span="22">
<el-form-item label="发生时间:">
<el-col :span="11">
<p v-if="form.view == '查看'">{{ form.happenTime }}</p>
<el-date-picker
v-model="dateValue"
type="date"
placeholder="选择日期"
v-else
v-model="form.happenTime"
type="datetime"
placeholder="选择日期时间"
style="width: 100%;"
>
</el-date-picker>
</el-col>
<el-col :span="11">
<el-time-select
v-model="timeValue"
:picker-options="{
start: '06:00',
step: '00:15',
end: '18:30',
}"
placeholder="选择时间"
style="width: 100%;margin-left: 10px;"
>
</el-time-select
></el-col>
</el-form-item>
</el-col>
</el-row>
......@@ -80,22 +85,14 @@
<el-row>
<el-col :span="22">
<el-form-item label="图片凭证:">
<el-upload
class="upload-demo"
action="https://jsonplaceholder.typicode.com/posts/"
:on-preview="handlePreview"
:on-remove="handleRemove"
:before-remove="beforeRemove"
multiple
:limit="3"
:on-exceed="handleExceed"
:file-list="fileList"
>
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">
只能上传jpg/png等图片文件
<div v-if="form.view == '查看'">
{{ form.snapPath ? picMatter(form.snapPath) : "--" }}
</div>
</el-upload>
<ImageUpload
v-else
:value="form.snapPath"
@input="replaceImage"
></ImageUpload>
</el-form-item>
</el-col>
</el-row>
......@@ -103,30 +100,38 @@
<el-row>
<el-col :span="22">
<el-form-item label="绩效规则:">
<p v-if="form.view == '查看'">{{ form.ruleNme }}</p>
<div v-else>
<el-col :span="22">
<el-select v-model="form.attendanceGroupId" style="width: 100%;">
<el-select
v-model="form.categoryId"
style="width: 100%;"
@change="cateChange"
>
<el-option
v-for="item in kaoqinArr"
:key="item.value"
:label="item.label"
:value="item.value"
v-for="item in kaoqinCateArr"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option
></el-select>
</el-col>
<el-col :span="22">
<el-select
v-model="form.attendanceGroupId"
v-model="form.ruleId"
style="width: 100%;margin-top: 10px;"
@change="ruleChange"
>
<el-option
v-for="item in kaoqinArr"
:key="item.value"
:label="item.label"
:value="item.value"
v-for="item in ruleArr"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option></el-select
></el-col>
</div>
</el-form-item>
</el-col>
</el-row>
......@@ -140,6 +145,7 @@
<form-buttons
@submit="submitForm"
v-show="form.view != '查看'"
v-if="pageInfo.type != 'view'"
noCancelBtn
/>
......@@ -275,12 +281,41 @@
<script>
import form from "@/assets/mixins/formdialog";
import { timestampToTime } from "@/assets/utils/dateFormat.js";
export default {
name: "PerformOtherRecordDetail",
mixins: [form],
components: {},
created() {
this.changePath("perform/other/record");
// 获取工作人员列表
this.$post("/staff/list", { page: 1, size: -1 }).then((res) => {
if (res.code == 1) {
this.staffArr = res.data.data;
} else {
this.staffArr = [];
}
});
// 获取部门列表
this.$post("/dept/list", { page: 1, size: -1 }).then((res) => {
if (res.code == 1) {
this.deptArr = res.data.data;
} else {
this.deptArr = [];
}
});
// 获取规则分类
this.$post("/perform/rules/category/list", { page: 1, size: -1 }).then(
(res) => {
if (res.code == 1) {
this.kaoqinCateArr = res.data.data;
} else {
this.kaoqinCateArr = [];
}
}
);
},
data() {
return {
......@@ -301,35 +336,130 @@ export default {
],
createTime: [{ required: true, message: "请选择创建时间" }],
},
staffArr: [
{
label: "员工1",
value: "1",
},
],
staffArr: [],
deptArr: [],
kaoqinArr: [],
fileList: [],
kaoqinCateArr: [],
ruleArr: [],
sourceArr: [
{
label: "窗口评价系统",
value: "窗口评价系统",
},
{
label: "导视系统",
value: "导视系统",
},
{
label: "自助服务系统",
value: "自助服务系统",
},
{
label: "微官网",
value: "微官网",
},
{
label: "其它",
value: "其它",
},
],
form: {},
baseUrl: process.env.VUE_APP_API_BASE_URL + "/",
dateValue: "",
timeValue: "",
};
},
methods: {
picMatter(val) {
if (val || val !== "--") {
return (
<el-image
src={val.indexOf("http") == -1 ? this.baseUrl + val : val}
preview-src-list={
val.indexOf("http") == -1 ? this.baseUrl + val : val
}
style="width: 100px"
></el-image>
);
} else {
return val;
}
},
ruleChange(val) {
let arr = this.ruleArr.filter((v) => v.id == val);
this.form.score = arr && arr[0].score;
this.form.checkStatus == 1 ? (this.form.checkStatus = 2) : "";
},
cateChange() {
this.$post("/perform/rules/list", {
page: 1,
size: -1,
categoryId: this.form.categoryId,
}).then((res) => {
this.ruleArr = res.data.data;
this.form.ruleId = "";
});
},
replaceImage(val) {
this.form.snapPath = val;
this.$forceUpdate(this.form.snapPath);
},
staffChange(val) {
console.log(val);
let arr = this.staffArr.filter((v) => v.id == val);
this.form.deptId = arr && arr.length > 0 ? arr[0].deptId : "";
},
/** 编辑 */
edit(row) {
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "perform/other/record/edit";
this.getData();
// this.urls.currUrl = "perform/other/record/edit";
// this.getData();
this.$get("/perform/other/record/info", { id: row.id }).then((res) => {
if (res.code == 1) {
this.form = res.data;
} else {
this.form = row;
}
for (let key in this.form) {
key == "actualAttendTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "attendanceDate"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "createTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "errorTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "updateTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "checkTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "deductTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "goOffTimeStr"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "reviewTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: "";
}
this.form.processStatus = 2;
this.form.snapPath ? "" : (this.form.snapPath = "");
this.form.view = "核查";
this.staffChange(this.form.staffId);
this.open = true;
});
this.pageInfo.type = "edit";
this.title = "修改其它绩效记录信息";
},
/** 新增 */
add(row) {
this.reset();
this.urls.currUrl = "perform/other/record/add";
this.getData();
// this.urls.currUrl = "perform/other/record/add";
// this.getData();
this.open = true;
this.pageInfo.type = "add";
this.title = "新增其它绩效记录信息";
},
......@@ -337,8 +467,39 @@ export default {
view(row) {
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "perform/other/record/view";
this.getData();
// this.urls.currUrl = "perform/other/record/view";
// this.getData();
this.$get("/perform/other/record/info", { id: row.id }).then((res) => {
if (res.code == 1) {
this.form = res.data;
} else {
this.form = row;
}
for (let key in this.form) {
key == "actualAttendTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "attendanceDate"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "createTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "errorTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "updateTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "checkTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "deductTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "goOffTimeStr"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "reviewTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: "";
}
this.form.processStatus = 1;
this.form.view = "查看";
this.open = true;
});
this.pageInfo.type = "view";
this.title = "其它绩效记录信息详细";
},
......@@ -367,16 +528,19 @@ export default {
deptName: "",
irregularOtherType: null,
happenTime: null,
duration: 0,
duration: "",
ruleId: null,
ruleName: "",
ruleDesc: "",
subMethod: 1,
subMethod: "",
deductPerson: "",
deductTime: null,
score: 0.0,
score: "",
processStatus: 1,
remark: "",
categoryId: "",
happenTime: "",
snapPath: "",
};
this.resetForm("form");
},
......
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
<LayoutTable :data="tableData" notDel :config="tableConfig">
<el-button
slot="table-head-left2"
style="margin-left: 10px"
......@@ -120,7 +120,8 @@ export default {
this.$download(
"/perform/other/record/exportExcel",
{
idList: this.selection,
page: 1,
size: -1,
},
{ type: "excel" }
)
......@@ -136,10 +137,12 @@ export default {
},
/** 重写编辑方法 */
toEdit(row) {
row.view = "核查";
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
row.view = "查看";
this.$refs.drawerform.view(row);
},
},
......@@ -163,7 +166,7 @@ export default {
isshowTabPane: true,
search: [
{
name: "status",
name: "processStatus",
type: "select",
label: "全部状态",
fuzzy: false,
......@@ -220,7 +223,7 @@ export default {
// { label: "绩效规则id", prop: "ruleId", formatter: this.formatter },
{
label: "图片凭证",
prop: "filePaths",
prop: "snapPath",
formatter: this.formatterPic,
},
{ label: "绩效规则", prop: "ruleName" },
......@@ -247,9 +250,22 @@ export default {
label: "操作",
width: 240,
formatter: (row) => {
return (
return row.processStatus == 1 ? (
<table-buttons
noAdd
noView
noEdit
reCheck
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
) : (
<table-buttons
noAdd
noEdit
noDel
row={row}
onEdit={this.toEdit}
onView={this.toView}
......
......@@ -139,11 +139,11 @@
<el-col :span="22">
<el-form-item label="图片凭证:">
<div v-if="form.view == '查看'">
{{ form.filePaths ? picMatter(form.filePaths) : "--" }}
{{ form.snapPath ? picMatter(form.snapPath) : "--" }}
</div>
<ImageUpload
v-else
:value="form.filePaths"
:value="form.snapPath"
@input="replaceImage"
></ImageUpload>
</el-form-item>
......@@ -198,6 +198,7 @@
<form-buttons
@submit="submitForm"
v-show="form.view != '查看'"
v-if="pageInfo.type != 'view'"
noCancelBtn
/>
......@@ -389,7 +390,6 @@ export default {
],
createTime: [{ required: true, message: "请选择创建时间" }],
},
staffArr: [],
deptArr: [],
kaoqinArr: [],
......@@ -427,7 +427,7 @@ export default {
methods: {
picMatter(val) {
if (val !== "--") {
if (val || val !== "--") {
return (
<el-image
src={val.indexOf("http") == -1 ? this.baseUrl + val : val}
......@@ -457,7 +457,7 @@ export default {
});
},
replaceImage(val) {
this.form.filePaths = val;
this.form.snapPath = val;
},
staffChange(val) {
console.log(val);
......@@ -500,6 +500,8 @@ export default {
}
this.form.processStatus = 2;
this.form.view = "核查";
this.staffChange(this.form.staffId);
this.open = true;
});
this.pageInfo.type = "edit";
......@@ -579,7 +581,7 @@ export default {
deptId: "",
deptName: "",
fileNames: "",
filePaths: "",
snapPath: "",
processStatus: 1,
remark: "",
reviewDevice: "",
......@@ -594,6 +596,7 @@ export default {
subMethod: "",
windowNum: "",
workNum: "",
categoryId: "",
};
this.resetForm("form");
},
......
......@@ -166,7 +166,7 @@ export default {
isshowTabPane: true,
search: [
{
name: "status",
name: "processStatus",
type: "select",
label: "全部状态",
fuzzy: false,
......@@ -178,7 +178,7 @@ export default {
fuzzy: false,
},
{
name: "source",
name: "reviewSource",
type: "select",
label: "全部来源",
fuzzy: false,
......@@ -222,7 +222,11 @@ export default {
formatter: this.formatterDate,
},
{ label: "图片凭证", prop: "snapPath" },
{
label: "图片凭证",
prop: "snapPath",
formatter: this.formatterPic,
},
{ label: "绩效规则", prop: "ruleNme" },
......@@ -251,6 +255,9 @@ export default {
return row.processStatus == 1 ? (
<table-buttons
noAdd
noView
noEdit
reCheck
row={row}
onEdit={this.toEdit}
onView={this.toView}
......
......@@ -31,11 +31,12 @@
v-model="switchValue"
active-color="#13ce66"
inactive-color="#1890ff"
active-value="100"
active-value="1"
inactive-value="0"
inactive-text="按分值排序"
active-text="按更新时间排序"
style="margin-left: 10px;"
@change="switchChange"
>
</el-switch>
</div>
......@@ -43,8 +44,14 @@
<el-input
placeholder="请输入考核内容关键字搜索"
style="width: 300px;margin-right: 10px;"
v-model="searchValue"
></el-input>
<el-button type="primary"> 搜索 </el-button>
<el-button
type="primary"
@click="getKaoQin(cateObj.id ? cateObj.id : '')"
>
搜索
</el-button>
</div>
</div>
<div class="table_box">
......@@ -74,7 +81,6 @@ export default {
dialogShow,
},
mixins: [table],
props: {
activeName: {
type: String,
......@@ -84,8 +90,17 @@ export default {
data() {
return {
switchValue: "0",
searchValue: "",
index: -1,
dataArr: [],
typeArr: [
{
colName: "score",
sortKind: "desc",
},
],
cateObj: {},
config: {
isshowTabPane: false,
search: [],
......@@ -131,26 +146,48 @@ export default {
created() {
// this.getData();
console.log(123);
this.cateObj = {};
},
methods: {
switchChange() {
console.log(this.switchValue);
this.switchValue == 0
? (this.typeArr = [
{
colName: "score",
sortKind: "desc",
},
])
: (this.typeArr = [
{
colName: "updateTime",
sortKind: "desc",
},
]);
this.getKaoQin(this.cateObj.id);
},
handleClick(val, i) {
this.index = i;
this.cateObj = val;
this.getKaoQin(val.id);
},
addRules() {
this.$refs.drawerform.add();
this.$refs.drawerform.add(this.dataArr, this.cateObj);
},
eddRules(row) {
this.$refs.drawerform.edit(row);
this.$refs.drawerform.edit(row, this.dataArr, this.cateObj);
},
addCate() {
this.$refs.dialogform.add();
this.$refs.dialogform.add(this.activeName);
},
toDelRules(val) {
console.log(val);
this.$get("/perform/rules/delete", { id: val }).then((res) => {
this.$message.success(res.msg);
this.getKaoQin();
this.getKaoQin(this.cateObj.id ? this.cateObj.id : "");
// this.tableData = [];
// this.index = -1;
});
},
/** 重写编辑方法 */
......@@ -162,12 +199,15 @@ export default {
(res) => {
this.$message.success(res.msg);
this.getData();
this.index = -1;
}
);
},
async getData() {
await this.$post("/perform/rules/category/list").then((res) => {
this.getKaoQin();
await this.$post("/perform/rules/category/list", {
type: this.activeName,
}).then((res) => {
this.getKaoQin(this.cateObj ? this.cateObj.id : "");
if (res.code == 1) {
this.dataArr = res.data.data;
} else {
......@@ -175,18 +215,20 @@ export default {
}
});
},
async getKaoQin() {
await this.$post("/perform/rules/list", { type: this.activeName }).then(
(res) => {
async getKaoQin(categoryId) {
await this.$post("/perform/rules/list", {
categoryId,
page: this.query.page,
orderColList: this.typeArr,
name: this.searchValue,
}).then((res) => {
if (res.code == 1) {
this.tableData = res.data;
console.log(res.data);
this.$forceUpdate(this.tableData);
} else {
this.tableData = {};
}
}
);
});
},
},
};
......
......@@ -3,7 +3,7 @@
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field
<!-- <Field
label="绩效规则id"
prop="ruleId"
v-model="form.ruleId"
......@@ -15,12 +15,7 @@
v-model="form.ruleBrief"
placeholder="请输入规则简称"
/>
<Field
label="分类名称"
prop="name"
v-model="form.name"
placeholder="请输入分类名称"
/>
<Field
label="规则类型"
prop="type"
......@@ -28,7 +23,15 @@
type="select"
:enumData="dict.type"
placeholder="请选择规则类型"
/> -->
<el-row style="width: 100%;">
<Field
label="分类名称"
prop="name"
v-model="form.name"
placeholder="请输入分类名称"
/>
</el-row>
<Field
label="备注"
prop="remark"
......@@ -77,16 +80,27 @@ export default {
edit(row) {
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "perform/rules/category/edit";
this.getData();
// this.urls.currUrl = "perform/rules/category/edit";
// this.getData();
this.$get("/perform/rules/category/info", { id: row.id }).then((res) => {
console.log(res);
if (res.code == 1) {
this.form = res.data;
} else {
this.form = {};
}
this.open = true;
});
this.pageInfo.type = "edit";
this.title = "修改绩效规则分类信息";
},
/** 新增 */
add(row) {
this.reset();
this.urls.currUrl = "perform/rules/category/add";
this.getData();
// this.urls.currUrl = "perform/rules/category/save";
// this.getData();
this.form.type = row;
this.open = true;
this.pageInfo.type = "add";
this.title = "新增绩效规则分类信息";
},
......
......@@ -8,16 +8,23 @@
>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field
:span="20"
label="分类"
prop="categoryId"
<el-col :span="20">
<el-form-item label="分类:">
<el-select
v-model="form.categoryId"
:enumData="dict.categoryId"
type="select"
placeholder="请选择分类"
/>
style="width: 100%;"
@change="cateChange"
>
<el-option
v-for="item in kaoqinCateArr"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option
></el-select>
</el-form-item>
</el-col>
<Field
:span="20"
label="考核内容简称"
......@@ -44,7 +51,7 @@
/>
<Field
:span="20"
label="扣分"
label="加分/扣分"
prop="score"
v-model="form.score"
placeholder="请输入扣分或增加分值"
......@@ -110,24 +117,72 @@ export default {
editUrl: "/perform/rules/edit",
saveUrl: "/perform/rules/save",
},
kaoqinCateArr: [],
};
},
methods: {
/** 编辑 */
edit(row) {
edit(row, arr, obj) {
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "perform/rules/edit";
this.getData();
// this.urls.currUrl = "perform/rules/edit";
// this.getData();
this.$get("/perform/rules/info", { id: row.id }).then((res) => {
console.log(res);
if (res.code == 1) {
this.dict = res.dict;
this.form = res.data;
} else {
this.form = {};
}
// this.form.categoryId = obj ? obj.id : "";
this.form.assoOwner =
this.form.assoOwner == 0 || this.form.assoOwner == 1
? JSON.stringify(this.form.assoOwner)
: "";
this.form.subAddType = this.form.subAddType
? JSON.stringify(this.form.subAddType)
: "";
this.open = true;
console.log(this.form);
});
this.kaoqinCateArr = arr;
this.pageInfo.type = "edit";
this.title = "修改规则";
},
/** 新增 */
add(row) {
add(row, obj) {
this.reset();
this.urls.currUrl = "perform/rules/add";
this.getData();
// this.urls.currUrl = "perform/rules/add";
// this.getData();
this.dict = {
subAddType: {
"1": "增加",
"2": "扣除",
},
assoOwner: {
"0": "",
"1": "",
},
type: {
"1": "考勤绩效",
"2": "评价绩效指标",
"3": "办件绩效指标",
"4": "效能绩效指标",
"5": "其它绩效指标",
},
categoryId: {
"11": "种类2",
"9": "评价分类",
"10": "种类1",
},
};
this.form.assoOwner = "";
this.form.subAddType = "";
this.kaoqinCateArr = row;
this.form.categoryId = obj ? obj.id : "";
this.open = true;
this.pageInfo.type = "add";
this.title = "新增规则";
},
......@@ -158,16 +213,16 @@ export default {
// 表单重置
reset() {
this.form = {
categoryId: null,
categoryId: "",
categoryName: "",
name: "",
content: "",
subAddType: 1,
subAddType: "",
score: 0.0,
assoOwner: 0,
assoOwner: "",
ownerScore: 0.0,
remark: "",
type: 1,
type: "",
};
this.resetForm("form");
},
......
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