Commit 958ccc1b authored by 姬鋆屾's avatar 姬鋆屾

提交

parent ac50b413
...@@ -25,6 +25,9 @@ export default { ...@@ -25,6 +25,9 @@ export default {
: (data.entity.remark = : (data.entity.remark =
"迟到:0 次,\n早退:0 次,\n缺卡:0 次,\n请假:0 次") "迟到:0 次,\n早退:0 次,\n缺卡:0 次,\n请假:0 次")
: ""; : "";
data.entity.remarkAdd && data.entity.remarkAdd != ""
? (data.entity.remarkAdd = JSON.parse(data.entity.remarkAdd))
: "";
return data; return data;
}, },
// 渲染后置处理 // 渲染后置处理
...@@ -73,6 +76,9 @@ export default { ...@@ -73,6 +76,9 @@ export default {
this.urls.currUrl.indexOf("attendance/leave/record") == 0 this.urls.currUrl.indexOf("attendance/leave/record") == 0
? (data.processStatus = 2) ? (data.processStatus = 2)
: ""; : "";
if (data.remarkAdd && data.remarkAdd.length > 0) {
data.remarkAdd = JSON.stringify(data.remarkAdd);
}
return data; return data;
}, },
// 提交表单的后置处理, 会阻断默认的回退行为 // 提交表单的后置处理, 会阻断默认的回退行为
......
...@@ -59,7 +59,7 @@ ...@@ -59,7 +59,7 @@
</div> </div>
<div class="user-info"> <div class="user-info">
<span class="user-i" <span class="user-i"
>核查时间:{{ momentVal(item.updateTime) }}</span >核查时间:{{ momentVal(item.checkTime) }}</span
> >
</div> </div>
<div class="user-info" v-if="item.auditStatus == 2"> <div class="user-info" v-if="item.auditStatus == 2">
...@@ -79,7 +79,7 @@ ...@@ -79,7 +79,7 @@
</div> </div>
<div class="dialog_box" v-else style="margin-top: 20px;"> <div class="dialog_box" v-else style="margin-top: 20px;">
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row> <el-row v-if="form.label == '备注1'">
<el-col :span="2"> <el-col :span="2">
<div style="text-align: right;">备注:</div></el-col <div style="text-align: right;">备注:</div></el-col
> >
...@@ -95,9 +95,74 @@ ...@@ -95,9 +95,74 @@
</span> </span>
</el-col> </el-col>
</el-row> </el-row>
<el-row v-if="form.label == '备注2'">
<el-col :span="2">
<div style="text-align: right;">备注:</div></el-col
>
<el-col :span="22">
<template v-if="typeof form.remarkAdd != 'string'">
<div
class="attend_box"
v-for="(val, i) in form.remarkAdd"
:key="i"
>
<div class="text_box" style="width: 50%;">
<el-autocomplete
class="inline-input"
v-model="val.name"
:fetch-suggestions="querySearch"
placeholder="请输入内容"
@select="handleSelect"
style="width: 100%;"
clearable
@clear="handleClear(val)"
@blur="handleBlur"
></el-autocomplete>
</div>
<div class="score_box">
<el-input-number
v-model="val.score"
@blur="handleBlur"
@change="handleBlur"
controls-position="right"
></el-input-number>
</div>
<div class="icon_box">
<i
class="el-icon-circle-plus-outline"
style="width: 100%;height: 100%;font-size: 30px;color: #409eff;margin-right: 10px;"
@click="handlePlus"
v-if="i + 1 == form.remarkAdd.length"
></i>
<i
class="el-icon-remove-outline"
@click="handleRemove(i)"
v-if="form.remarkAdd.length > 1 && i != 0"
style="width: 100%;height: 100%;font-size: 30px;color: #F56C6C;"
></i>
</div>
</div>
</template>
</el-col>
</el-row>
</el-form> </el-form>
</div> </div>
<div slot="footer" class="dialog-footer"> <div
slot="footer"
class="dialog-footer"
style="display: flex;align-items: center;"
>
<el-col :span="20">
<el-col :span="6" v-if="form.label == '备注2'">
<div style="text-align: right;">当前累计加分:</div></el-col
>
<el-col :span="1" v-if="form.label == '备注2'">
<span style="color:#F56C6C;font-weight: 600;">
{{ form.addTotalScore ? form.addTotalScore : 0 }}
</span>
</el-col>
</el-col>
<el-button <el-button
type="primary" type="primary"
v-if="pageInfo.type !== 'view'" v-if="pageInfo.type !== 'view'"
...@@ -131,10 +196,62 @@ export default { ...@@ -131,10 +196,62 @@ export default {
rules: {}, rules: {},
list: [], list: [],
dict: {}, dict: {},
rulesList: [],
}; };
}, },
methods: { methods: {
handleBlur() {
this.form.addTotalScore = 0;
this.form.remarkAdd && this.form.remarkAdd.length > 0
? this.form.remarkAdd.forEach((v) => {
this.form.addTotalScore += v.score;
})
: "";
},
handlePlus() {
this.form.remarkAdd.push({
name: "",
score: 0,
});
},
handleRemove(i) {
this.form.remarkAdd = this.form.remarkAdd.filter(
(v, index) => index != i
);
this.handleBlur();
},
handleClear(val) {
val.name = "";
val.score = 0;
},
handleSelect(item) {
this.form.remarkAdd.forEach((val) => {
this.rulesList.forEach((v) => {
if (val.name == v.value) {
v.subAddType == 2
? (val.score = Number("-" + v.score))
: (val.score = Number("+" + v.score));
}
});
});
this.handleBlur();
},
querySearch(queryString, cb) {
let rulesList = this.rulesList;
let results = queryString
? rulesList.filter(this.createFilter(queryString))
: rulesList;
// 调用 callback 返回建议列表的数据
cb(results);
},
createFilter(queryString) {
return (rule) => {
return (
rule.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0
);
};
},
// 日期 // 日期
momentVal(v) { momentVal(v) {
return moment(v).format("YYYY-MM-DD HH:SS"); return moment(v).format("YYYY-MM-DD HH:SS");
...@@ -165,14 +282,37 @@ export default { ...@@ -165,14 +282,37 @@ export default {
}); });
}, },
/** 编辑 */ /** 编辑 */
edit(row) { async edit(row) {
this.reset(); this.reset();
this.query = { id: row.id }; this.query = { id: row.id };
this.urls.currUrl = "staff/perform/summary/edit"; this.urls.currUrl = "staff/perform/summary/edit";
this.getData(); await this.getData();
this.pageInfo.type = "edit"; this.pageInfo.type = "edit";
this.title = "员工绩效统计"; this.title = "员工绩效统计";
console.log(this.form);
row.label && row.label != "" ? (this.form.label = row.label) : "";
this.$nextTick(async () => {
if (row.label == "备注2") {
await this.$post("/perform/rules/list", { size: -1 }).then((res) => {
if (res.code == 1) {
this.rulesList = res.data.data;
this.rulesList && this.rulesList.length > 0
? this.rulesList.forEach((v) => {
v.value = v.name + "--" + v.content;
})
: "";
if (!this.form.remarkAdd || this.form.remarkAdd.length == 0) {
this.form.remarkAdd = [];
this.form.remarkAdd.push({
name: "",
score: 0,
});
}
this.$forceUpdate();
}
});
}
});
}, },
/** 新增 */ /** 新增 */
add(row) { add(row) {
...@@ -226,6 +366,8 @@ export default { ...@@ -226,6 +366,8 @@ export default {
remark: "", remark: "",
year: null, year: null,
month: null, month: null,
remarkAdd: [],
addTotalScore: 0,
}; };
this.resetForm("form"); this.resetForm("form");
}, },
...@@ -304,7 +446,26 @@ export default { ...@@ -304,7 +446,26 @@ export default {
.dialog_box { .dialog_box {
height: 85%; height: 85%;
overflow-y: auto; overflow-y: auto;
.attend_box {
display: flex;
align-items: center;
margin-bottom: 20px;
.score_box {
margin: 0 15px;
}
.icon_box {
display: flex;
} }
/deep/.el-input__inner {
width: 100%;
}
}
/deep/.el-autocomplete {
width: 100% !important;
}
}
/deep/.el-textarea input::-moz-input-placeholder { /deep/.el-textarea input::-moz-input-placeholder {
font-family: "Microsoft Yahei", "Helvetica Neue", Helvetica, STHeiTi, Arial, font-family: "Microsoft Yahei", "Helvetica Neue", Helvetica, STHeiTi, Arial,
sans-serif !important; sans-serif !important;
......
...@@ -166,7 +166,6 @@ export default { ...@@ -166,7 +166,6 @@ export default {
2: "正序", 2: "正序",
1: "倒序", 1: "倒序",
}; };
console.log(data);
this.config.columns.forEach((v) => { this.config.columns.forEach((v) => {
v.label == "服务规范" v.label == "服务规范"
? (v.label = ( ? (v.label = (
...@@ -211,10 +210,10 @@ export default { ...@@ -211,10 +210,10 @@ export default {
<p>{"(自评绩效 *" + data.dict.weightPdu.selfWeight + "%)"}</p> <p>{"(自评绩效 *" + data.dict.weightPdu.selfWeight + "%)"}</p>
</p> </p>
)) ))
: v.label == "加分" : v.label == "其他绩效"
? (v.label = ( ? (v.label = (
<p> <p>
<span>加分</span> <span>其他绩效</span>
<p>{"(其他绩效)"}</p> <p>{"(其他绩效)"}</p>
</p> </p>
)) ))
...@@ -296,6 +295,12 @@ export default { ...@@ -296,6 +295,12 @@ export default {
}, 1000); }, 1000);
} }
}, },
handleCellClick(row, column, event, cell) {
if (column.label == "备注1" || column.label == "备注2") {
row.label = column.label;
this.toEdit(row);
}
},
}, },
data() { data() {
return { return {
...@@ -349,8 +354,8 @@ export default { ...@@ -349,8 +354,8 @@ export default {
}, },
], ],
columns: [ columns: [
{ type: "selection", width: 60 }, { type: "selection", width: 60, fixed: "left" },
{ type: "index", label: "序号", width: 50 }, { type: "index", label: "序号", width: 50, fixed: "left" },
{ {
label: "姓名", label: "姓名",
...@@ -366,7 +371,18 @@ export default { ...@@ -366,7 +371,18 @@ export default {
width: 80, width: 80,
fixed: "left", fixed: "left",
}, },
{
label: "",
prop: "year",
formatter: this.formatter,
fixed: "left",
},
{
label: "",
prop: "month",
formatter: this.formatter,
fixed: "left",
},
{ {
label: "手机号", label: "手机号",
prop: "phoneNumber", prop: "phoneNumber",
...@@ -583,7 +599,7 @@ export default { ...@@ -583,7 +599,7 @@ export default {
}, },
{ {
label: `加分`, label: `其他绩效`,
prop: "otherScore", prop: "otherScore",
width: 150, width: 150,
formatter: this.formatter, formatter: this.formatter,
...@@ -595,27 +611,58 @@ export default { ...@@ -595,27 +611,58 @@ export default {
// }, // },
{ {
label: "本月得分", label: "绩效分数",
prop: "totalScore", prop: "totalScore",
sortable: true, sortable: true,
width: 120, width: 120,
}, },
{ label: "", prop: "year", formatter: this.formatter },
{ label: "", prop: "month", formatter: this.formatter },
{ {
label: "备注", label: "备注1",
prop: "remark", prop: "remark",
formatter: this.formatter, formatter: (row) => {
return row.remark && row.remark != "" ? (
row.remark
) : (
<span style="color:#409eff">添加备注1</span>
);
},
width: 240,
},
{
label: "备注2",
prop: "remarkAddDesc",
formatter: (row) => {
return row.remarkAddDesc && row.remarkAddDesc != "" ? (
row.remarkAddDesc
) : (
<span style="color:#409eff">添加备注2</span>
);
},
width: 240, width: 240,
}, },
{
label: "加分",
prop: "addTotalScore",
width: 120,
},
{
label: "本月得分",
prop: "sumScore",
sortable: true,
width: 120,
fixed: "right",
},
{ {
label: "操作", label: "操作",
width: 120, width: 120,
fixed: "right",
formatter: (row) => { formatter: (row) => {
return ( return (
<table-buttons <table-buttons
noAdd noAdd
noDel noDel
noEdit
row={row} row={row}
onEdit={this.toEdit} onEdit={this.toEdit}
onView={this.toView} onView={this.toView}
......
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