Commit 11e8a113 authored by 赵啸非's avatar 赵啸非

Merge remote-tracking branch 'origin/master'

parents 753c5c05 703a4781
...@@ -16,6 +16,9 @@ export default { ...@@ -16,6 +16,9 @@ export default {
}, },
]; ];
} }
data.entity.inspect && data.entity.inspect == 0
? (data.entity.inspect = false)
: (data.entity.inspect = true);
return data; return data;
}, },
// 渲染后置处理 // 渲染后置处理
...@@ -25,6 +28,30 @@ export default { ...@@ -25,6 +28,30 @@ export default {
data.attachmentPathList && data.attachmentPathList.length > 0 data.attachmentPathList && data.attachmentPathList.length > 0
? (data.attachmentPath = data.attachmentPathList[0].url) ? (data.attachmentPath = data.attachmentPathList[0].url)
: (data.attachmentPath = ""); : (data.attachmentPath = "");
if (data.leavePerson == 0 || data.leavePerson) {
if (this.dict.staffList) {
data.leavePerson = this.dict.staffList[this.form.leavePerson];
for (let key in this.dict.staffList) {
if (this.dict.staffList[key] == data.leavePerson) {
data.leavePersonId = Number(key);
}
}
}
}
data.windowWorkmanPerformDetailList &&
data.windowWorkmanPerformDetailList.length > 0
? (data.windowWorkmanPerformDetailList = data.windowWorkmanPerformDetailList.map(
(v) => {
v.bonusScore = Number(v.bonusScore);
v.discipline = Number(v.discipline);
v.specification = Number(v.specification);
v.management = Number(v.management);
v.efficiency = Number(v.efficiency);
v.sumScore = Number(v.sumScore);
return v;
}
))
: "";
return data; return data;
}, },
...@@ -45,7 +72,6 @@ export default { ...@@ -45,7 +72,6 @@ export default {
// 默认拉取数据 // 默认拉取数据
getData() { getData() {
this.loading = true; this.loading = true;
this.$get(this.urls.currUrl || this.pageInfo.currUrl, this.query) this.$get(this.urls.currUrl || this.pageInfo.currUrl, this.query)
.then(({ data }) => { .then(({ data }) => {
const res = this.beforeRender(data); const res = this.beforeRender(data);
...@@ -57,7 +83,14 @@ export default { ...@@ -57,7 +83,14 @@ export default {
res.entity = this.util_toDateStr(res.entity, this.toDate); res.entity = this.util_toDateStr(res.entity, this.toDate);
this.form = Object.assign({}, this.form, res.entity); this.form = Object.assign({}, this.form, res.entity);
this.dict = Object.assign({}, this.dict, res.dict); this.dict = Object.assign({}, this.dict, res.dict);
this.$route.name == "window/owner/list"
? this.$post("/staff/list", { page: 1, size: -1 }).then((res) => {
if (res.code == 1) {
this.dict.staffList = res.data.data;
this.afterRender(res); this.afterRender(res);
}
})
: this.afterRender(res);
}) })
.catch((error) => { .catch((error) => {
this.$message.error(error.message); this.$message.error(error.message);
...@@ -91,6 +124,7 @@ export default { ...@@ -91,6 +124,7 @@ export default {
this.form.leaveType this.form.leaveType
? (this.form.leaveType = this.form.leaveType.toString()) ? (this.form.leaveType = this.form.leaveType.toString())
: ""; : "";
this.form.inspect ? (this.form.inspect = 1) : (this.form.inspect = 0);
this.$post(url, this.beforeSubmit(this.form)) this.$post(url, this.beforeSubmit(this.form))
.then((res) => { .then((res) => {
this.$message.success(res.msg); this.$message.success(res.msg);
......
...@@ -46,6 +46,7 @@ export default { ...@@ -46,6 +46,7 @@ export default {
delete this.query.errorTimeEnd; delete this.query.errorTimeEnd;
} }
} }
this.getData(); this.getData();
}, },
}, },
...@@ -693,8 +694,9 @@ export default { ...@@ -693,8 +694,9 @@ export default {
? "/check/window/perform/list" ? "/check/window/perform/list"
: this.$route.path.indexOf("/window/workman/perform/list") == 0 : this.$route.path.indexOf("/window/workman/perform/list") == 0
? "/check/window/workman/perform/list" ? "/check/window/workman/perform/list"
: this.$route.path.indexOf("/window/workman/perform/detail/list") == : this.$route.path.indexOf(
0 "/check/window/workman/perform/detail/list"
) == 0
? "/window/workman/perform/detail/list" ? "/window/workman/perform/detail/list"
: this.$route.path, : this.$route.path,
edit: this.$route.path.replace("/list", "/edit"), edit: this.$route.path.replace("/list", "/edit"),
......
...@@ -9,10 +9,11 @@ export const timestampToTime = (timestamp, transLength) => { ...@@ -9,10 +9,11 @@ export const timestampToTime = (timestamp, transLength) => {
} }
let Y = date.getFullYear() + "-"; let Y = date.getFullYear() + "-";
let M = let M =
(date.getMonth() + 1 < 10 date.getMonth() + 1 < 10
? "0" + (date.getMonth() + 1) ? "0" + (date.getMonth() + 1)
: date.getMonth() + 1) + "-"; : date.getMonth() + 1;
let D = date.getDate() < 10 ? "0" + date.getDate() : date.getDate(); let D =
date.getDate() < 10 ? "-" + "0" + date.getDate() : "-" + date.getDate();
let h = let h =
" " + " " +
(date.getHours() < 10 ? "0" + date.getHours() : date.getHours()) + (date.getHours() < 10 ? "0" + date.getHours() : date.getHours()) +
...@@ -23,6 +24,8 @@ export const timestampToTime = (timestamp, transLength) => { ...@@ -23,6 +24,8 @@ export const timestampToTime = (timestamp, transLength) => {
let s = let s =
date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds(); date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
switch (transLength) { switch (transLength) {
case 2:
return Y + M;
case 3: case 3:
return Y + M + D; return Y + M + D;
case 6: case 6:
......
...@@ -133,7 +133,6 @@ export default { ...@@ -133,7 +133,6 @@ export default {
val.length == 0 || val.length > 0 val.length == 0 || val.length > 0
? (this.emptytxt = "暂无数据") ? (this.emptytxt = "暂无数据")
: (this.emptytxt = "加载中..."); : (this.emptytxt = "加载中...");
// if (val.length > 0) { // if (val.length > 0) {
// val.forEach((v) => { // val.forEach((v) => {
// for (let key in v) { // for (let key in v) {
......
...@@ -254,6 +254,11 @@ export default { ...@@ -254,6 +254,11 @@ export default {
computed: { computed: {
field: { field: {
get() { get() {
if (Array.isArray(this.value)) {
this.value = this.value.map((v) => {
return typeof v == 'number' ? v + "" : v;
});
}
return this.value; return this.value;
}, },
set(val) { set(val) {
......
...@@ -256,11 +256,13 @@ export default { ...@@ -256,11 +256,13 @@ export default {
this.$route.name == "attendance/stat/list" || this.$route.name == "attendance/stat/list" ||
this.$route.name == "check/window/perform/list" || this.$route.name == "check/window/perform/list" ||
this.$route.name == "check/window/workman/perform/list" || this.$route.name == "check/window/workman/perform/list" ||
this.$route.name == "check/window/workman/perform/detail/list" ||
this.$route.name == "check/attend/record/list" || this.$route.name == "check/attend/record/list" ||
this.$route.name == "check/review/record/list" || this.$route.name == "check/review/record/list" ||
this.$route.name == "check/complain/record/list" || this.$route.name == "check/complain/record/list" ||
this.$route.name == "check/gowork/record/list" || this.$route.name == "check/gowork/record/list" ||
this.$route.name == "check/effect/record/list" || this.$route.name == "check/effect/record/list" ||
this.$route.name == "check/other/record/list" ||
this.$route.name == "window/perform/list" || this.$route.name == "window/perform/list" ||
this.$route.name == "window/workman/perform/list" || this.$route.name == "window/workman/perform/list" ||
this.$route.name == "perform/attend/record/list" || this.$route.name == "perform/attend/record/list" ||
...@@ -268,6 +270,9 @@ export default { ...@@ -268,6 +270,9 @@ export default {
this.$route.name == "perform/complain/record/list" || this.$route.name == "perform/complain/record/list" ||
this.$route.name == "perform/gowork/record/list" || this.$route.name == "perform/gowork/record/list" ||
this.$route.name == "perform/effect/record/list" || this.$route.name == "perform/effect/record/list" ||
this.$route.name == "perform/other/record/list" ||
this.$route.name == "perform/attend/appeal/list" ||
this.$route.name == "window/owner/list" ||
this.$route.name == "staff/perform/summary/list" this.$route.name == "staff/perform/summary/list"
) { ) {
this.getArr(); this.getArr();
...@@ -277,6 +282,7 @@ export default { ...@@ -277,6 +282,7 @@ export default {
}, },
methods: { methods: {
salaChange() { salaChange() {
this.form.deptId = "";
this.$get("/dept/getDeptBySalaId", { salaId: this.form.salaId }) this.$get("/dept/getDeptBySalaId", { salaId: this.form.salaId })
.then((res) => { .then((res) => {
if (res.code == 1) { if (res.code == 1) {
...@@ -423,6 +429,7 @@ export default { ...@@ -423,6 +429,7 @@ export default {
} }
} }
}); });
this.form = Object.assign({}, this.form, newFormData); this.form = Object.assign({}, this.form, newFormData);
// this.form = Object.assign({}, this.form, data); // this.form = Object.assign({}, this.form, data);
// console.log("after form",this.form) // console.log("after form",this.form)
...@@ -444,6 +451,7 @@ export default { ...@@ -444,6 +451,7 @@ export default {
delete this.$route.query.yearmonth; delete this.$route.query.yearmonth;
delete this.$route.query.createTimeMonth; delete this.$route.query.createTimeMonth;
delete this.$route.query.orderColList; delete this.$route.query.orderColList;
this.form = Object.assign({}, this.form, newData); this.form = Object.assign({}, this.form, newData);
this.onSubmit(); this.onSubmit();
}, },
...@@ -457,16 +465,7 @@ export default { ...@@ -457,16 +465,7 @@ export default {
this.form.year = undefined; this.form.year = undefined;
this.form.month = undefined; this.form.month = undefined;
} }
if (this.form.orderCols1) {
this.form.orderColList = [
{
colName: "totalScore",
sortKind: this.form.orderCols1,
},
];
} else {
this.form.orderColList = "";
}
if (this.form.createTimeMonth) { if (this.form.createTimeMonth) {
// this.form.createTimeStart = this.form.createTimeMonth + "-01"; // this.form.createTimeStart = this.form.createTimeMonth + "-01";
// this.form.createTimeEnd = this.form.createTimeMonth + "-31"; // this.form.createTimeEnd = this.form.createTimeMonth + "-31";
...@@ -538,6 +537,10 @@ export default { ...@@ -538,6 +537,10 @@ export default {
this.form.attendanceDateEnd = timestampToTime(new Date(), 3); this.form.attendanceDateEnd = timestampToTime(new Date(), 3);
} }
} }
if (this.$route.name == "perform/effect/record/list") {
this.form.subMethod ? "" : (this.form.subMethod = "1");
console.log(this.form.subMethod);
}
let params = JSON.parse(JSON.stringify(this.form)); //不更改原始数据 let params = JSON.parse(JSON.stringify(this.form)); //不更改原始数据
let data = this.decode(params); let data = this.decode(params);
...@@ -558,6 +561,11 @@ export default { ...@@ -558,6 +561,11 @@ export default {
query.errorTimeEnd = undefined; query.errorTimeEnd = undefined;
} }
} }
if (this.$route.name == "check/window/workman/perform/detail/list") {
query.yearmonth = timestampToTime(new Date(), 2);
query.year = timestampToTime(new Date(), 2).slice(0, 4);
query.month = timestampToTime(new Date(), 2).slice(5);
}
console.log({ console.log({
...query, ...query,
...data, ...data,
......
This diff is collapsed.
...@@ -242,6 +242,7 @@ ...@@ -242,6 +242,7 @@
:prePageResult="data.pageInfo.prePageResult" :prePageResult="data.pageInfo.prePageResult"
/> />
</div> </div>
<slot name="table-foot" class="table-foot"></slot>
</div> </div>
</template> </template>
......
...@@ -130,8 +130,8 @@ const router = new Router({ ...@@ -130,8 +130,8 @@ const router = new Router({
"check/window/workman/perform" "check/window/workman/perform"
), //自评绩效核查信息(工作人员) ), //自评绩效核查信息(工作人员)
...restBuilder( ...restBuilder(
"window/workman/perform/detail", "check/window/workman/perform/detail",
"window/workman/perform/detail" "check/window/workman/perform/detail"
), //自评绩效核查信息(工作人员一张表) ), //自评绩效核查信息(工作人员一张表)
...restBuilder("perform/attend/appeal", "perform/attend/appeal"), //绩效记录申诉信息 ...restBuilder("perform/attend/appeal", "perform/attend/appeal"), //绩效记录申诉信息
......
...@@ -10,12 +10,24 @@ ...@@ -10,12 +10,24 @@
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row> <el-row>
<!-- <Field label="请假人" prop="leavePersonId" v-model="form.leavePersonId" placeholder="请输入请假人"/> --> <!-- <Field label="请假人" prop="leavePersonId" v-model="form.leavePersonId" placeholder="请输入请假人"/> -->
<!-- <Field
label="请假人"
prop="leavePerson"
v-model="form.leavePerson"
placeholder="请输入请假人"
:maxLength="10"
:disabled="pageInfo.type == 'view'"
/> -->
<Field <Field
label="请假人" label="请假人"
prop="leavePerson" prop="leavePerson"
type="select"
filterable
remote
v-model="form.leavePerson" v-model="form.leavePerson"
placeholder="请输入请假人" placeholder="请输入请假人"
:maxLength="10" :maxLength="10"
:enumData="staffList"
:disabled="pageInfo.type == 'view'" :disabled="pageInfo.type == 'view'"
/> />
<Field <Field
...@@ -163,6 +175,7 @@ export default { ...@@ -163,6 +175,7 @@ export default {
loading: true, loading: true,
// 弹出层标题 // 弹出层标题
title: "请假记录信息", title: "请假记录信息",
staffList: {},
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
direction: "rtl", direction: "rtl",
...@@ -210,7 +223,25 @@ export default { ...@@ -210,7 +223,25 @@ export default {
}; };
}, },
watch: {}, watch: {},
mounted() {
this.remoteMethod();
},
methods: { methods: {
async remoteMethod() {
await this.$post(`/staff/list`, {
page: 1,
size: -1,
}).then((res) => {
let data = res.data.data;
let obj = {};
console.log(data);
for (let key in data) {
obj[data[key].id] = data[key].name;
}
this.staffList = obj;
this.dict.staffList = this.staffList;
});
},
// beforeSubmit() { // beforeSubmit() {
// if (this.form.endTime.valueOf() > this.form.startTime.valueOf()) { // if (this.form.endTime.valueOf() > this.form.startTime.valueOf()) {
// // this.submitForm(); // // this.submitForm();
...@@ -283,6 +314,7 @@ export default { ...@@ -283,6 +314,7 @@ export default {
this.open = false; this.open = false;
this.$emit("ok"); this.$emit("ok");
}, },
changedate(val) { changedate(val) {
if (this.form.startTime && this.form.endTime) { if (this.form.startTime && this.form.endTime) {
if (this.form.endTime.valueOf() > this.form.startTime.valueOf()) { if (this.form.endTime.valueOf() > this.form.startTime.valueOf()) {
......
...@@ -466,7 +466,9 @@ export default { ...@@ -466,7 +466,9 @@ export default {
{ {
label: "实到", label: "实到",
prop: "goTimes", prop: "goTimes",
formatter: this.formatter, formatter: (row) => {
return row.goTimes == 0 ? 0 : row.goTimes ? row.goTimes : "--";
},
show: true, show: true,
}, },
{ {
......
...@@ -101,14 +101,37 @@ ...@@ -101,14 +101,37 @@
label="工作纪律" label="工作纪律"
align="center" align="center"
> >
<template slot-scope="scope">
<el-input
v-if="form.view !== '查看'"
class="item"
v-model="scope.row.discipline"
@input="handleInput(scope.row)"
placeholder="请输入内容"
></el-input>
<div v-else class="txt">{{ scope.row.discipline }}</div>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="specification" prop="specification"
label="服务规范" label="服务规范"
align="center" align="center"
> >
<template slot-scope="scope">
<el-input
v-if="form.view !== '查看'"
class="item"
@input="handleInput(scope.row)"
v-model="scope.row.specification"
placeholder="请输入内容"
></el-input>
<div v-else class="txt">{{ scope.row.specification }}</div>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="bonusScore" label="加分" align="center"> <el-table-column prop="bonusScore" label="加分" align="center">
<template slot-scope="scope">
<div class="txt">{{ scope.row.bonusScore }}</div>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="sumScore" label="合计得分" align="center"> <el-table-column prop="sumScore" label="合计得分" align="center">
</el-table-column> </el-table-column>
...@@ -412,6 +435,15 @@ export default { ...@@ -412,6 +435,15 @@ export default {
}, },
methods: { methods: {
handleInput(val) {
val.sumScore =
Number(val.bonusScore) +
Number(val.discipline) +
Number(val.specification);
this.form.discipline = Number(val.discipline);
this.form.specification = Number(val.specification);
this.form.sumScore = Number(val.sumScore);
},
functionTime(val) { functionTime(val) {
let time = timestampToTime(val, 6); let time = timestampToTime(val, 6);
return time; return time;
......
...@@ -72,7 +72,7 @@ export default { ...@@ -72,7 +72,7 @@ export default {
: this.radio1 == 2 : this.radio1 == 2
? this.$router.push("/check/window/workman/perform/list?page=1") ? this.$router.push("/check/window/workman/perform/list?page=1")
: this.radio1 == 3 : this.radio1 == 3
? this.$router.push("/window/workman/perform/detail/list?page=1") ? this.$router.push("/check/window/workman/perform/detail/list?page=1")
: ""; : "";
}, },
}, },
...@@ -115,7 +115,103 @@ export default { ...@@ -115,7 +115,103 @@ export default {
fuzzy: false, fuzzy: false,
}, },
], ],
columns: [ columns:
JSON.parse(sessionStorage.getItem("userData")).id == 1
? [
{ type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 },
{ label: "窗口首席代表", prop: "ownerName" },
{
label: "登记年月",
formatter: (row) => {
return `${row.year ? row.year : "--"}-${
row.month
? [1, 2, 3, 4, 5, 6, 7, 8, 9].includes(row.month)
? "0" + row.month
: row.month
: "--"
}`;
},
},
{
label: "所属大厅",
prop: "salaName",
formatter: this.formatter,
},
{
label: "所属部门",
prop: "deptName",
},
{
label: "考核窗口",
formatter: (row) => {
return `${row.windowName ? row.windowName : "--"}`;
},
},
{ label: "表单名称", prop: "fromName" },
{
label: "总分分值",
prop: "sumScore",
formatter: this.formatter,
},
{
label: "提交时间",
prop: "submitDate",
formatter: this.formatterDate,
},
{
label: "核查人",
prop: "leaderCheckPerson",
formatter: this.formatter,
},
{
label: "最新核查时间",
prop: "leaderCheckTime",
formatter: this.formatterDate,
},
{
label: "处理状态",
prop: "checkStatus",
formatter: this.formatter,
},
{
label: "操作",
width: 240,
formatter: (row) => {
return row.checkStatus == 1 ? (
<table-buttons
noAdd
noEdit
noView
reCheck
text={"自评核查"}
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
) : (
<table-buttons
noAdd
noEdit
text={"自评核查"}
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
);
},
},
]
: [
{ type: "selection", width: 60 }, { type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 }, { type: "index", label: "序号", width: 50 },
{ label: "窗口负责人", prop: "ownerName" }, { label: "窗口负责人", prop: "ownerName" },
...@@ -133,7 +229,11 @@ export default { ...@@ -133,7 +229,11 @@ export default {
}, },
}, },
{ label: "所属大厅", prop: "salaName", formatter: this.formatter }, {
label: "所属大厅",
prop: "salaName",
formatter: this.formatter,
},
{ {
label: "所属部门", label: "所属部门",
...@@ -149,13 +249,21 @@ export default { ...@@ -149,13 +249,21 @@ export default {
{ label: "表单名称", prop: "fromName" }, { label: "表单名称", prop: "fromName" },
{ label: "总分分值", prop: "sumScore", formatter: this.formatter }, {
label: "总分分值",
prop: "sumScore",
formatter: this.formatter,
},
{ {
label: "提交时间", label: "提交时间",
prop: "submitDate", prop: "submitDate",
formatter: this.formatterDate, formatter: this.formatterDate,
}, },
{ label: "处理状态", prop: "checkStatus", formatter: this.formatter }, {
label: "处理状态",
prop: "checkStatus",
formatter: this.formatter,
},
{ {
label: "操作", label: "操作",
......
...@@ -16,33 +16,30 @@ ...@@ -16,33 +16,30 @@
>导出</el-button >导出</el-button
> >
</div> </div>
<LayoutTable :data="tableData" :config="tableConfig"> </LayoutTable> <LayoutTable :data="tableData" notAdd notDel :config="tableConfig">
</LayoutTable>
</div> </div>
</template> </template>
<script> <script>
import {
timestampToTime,
getFirstDay,
getLastDay,
} from "@/assets/utils/dateFormat";
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
export default { export default {
name: "WindowWorkmanPerformDetailList", name: "WindowWorkmanPerformDetailList",
components: {
drawerShow,
},
mixins: [table], mixins: [table],
created() {}, created() {
methods: { this.query.yearmonth = timestampToTime(new Date(), 2);
/** 重写新增方法 */ this.query.year = timestampToTime(new Date(), 2).slice(0, 4);
toAdd(row) { this.query.month = timestampToTime(new Date(), 2).slice(5);
this.$refs.drawerform.add(row); console.log(this.query);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
}, },
methods: {
/** 导出Excel */ /** 导出Excel */
doExport() { doExport() {
this.isExport = true; this.isExport = true;
...@@ -67,61 +64,116 @@ export default { ...@@ -67,61 +64,116 @@ export default {
: this.radio1 == 2 : this.radio1 == 2
? this.$router.push("/check/window/workman/perform/list?page=1") ? this.$router.push("/check/window/workman/perform/list?page=1")
: this.radio1 == 3 : this.radio1 == 3
? this.$router.push("/window/workman/perform/detail/list?page=1") ? this.$router.push("/check/window/workman/perform/detail/list?page=1")
: ""; : "";
}, },
}, },
data() { data() {
return { return {
config: {
radio1: "3", radio1: "3",
isExport: false, isExport: false,
search: [], config: {
isshowTabPane: true,
search: [
{
name: "salaId",
type: "selectSalaId",
label: "大厅",
fuzzy: false,
},
{
name: "deptId",
type: "selectDeptId",
label: "部门",
fuzzy: false,
},
{
name: "yearmonth",
type: "month",
label: "请选择考评年月",
fuzzy: false,
},
{
name: "staffName",
type: "text",
width: 200,
label: "工作人员姓名搜索",
fuzzy: false,
},
],
columns: [ columns: [
{ type: "selection", width: 60 }, { type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 }, { type: "index", label: "序号", width: 50 },
{ label: "工作人员名称", prop: "staffName" }, { label: "工作人员名称", prop: "staffName" },
{ label: "所属部门名称", prop: "deptName" }, {
label: "考评年月",
{ label: "所属大厅名称", prop: "salaName" }, formatter: (row) => {
return `${row.year ? row.year : "--"}-${
row.month
? [1, 2, 3, 4, 5, 6, 7, 8, 9].includes(row.month)
? "0" + row.month
: row.month
: "--"
}`;
},
},
{ {
label: "工作纪律得分", label: "所属大厅",
prop: "salaName",
formatter: this.formatter,
},
{
label: "部门(单位)名称",
prop: "deptName",
formatter: this.formatter,
},
{
label: "工作纪律",
prop: "discipline", prop: "discipline",
formatter: this.formatter, formatter: this.formatter,
}, },
{ {
label: "服务规范得分", label: "服务规范",
prop: "specification", prop: "specification",
formatter: this.formatter, formatter: this.formatter,
}, },
{ {
label: "综合管理得分", label: "综合管理",
prop: "management", prop: "management",
formatter: this.formatter, formatter: this.formatter,
}, },
{ {
label: "群众评议得分", label: "群众评议",
prop: "evaluation", prop: "evaluation",
formatter: this.formatter, formatter: this.formatter,
}, },
{ {
label: "工作效能得分", label: "工作效能",
prop: "efficiency", prop: "efficiency",
formatter: this.formatter, formatter: this.formatter,
}, },
{ label: "加分", prop: "bonusScore", formatter: this.formatter }, {
label: "加分",
prop: "bonusScore",
formatter: this.formatter,
},
{ label: "合计得分", prop: "sumScore", formatter: this.formatter }, {
label: "合计得分",
prop: "sumScore",
formatter: this.formatter,
},
{ {
label: "考核等级1好2较好3一般4较差", label: "考核等级",
prop: "examineLevel", prop: "examineLevel",
formatter: this.formatter, formatter: this.formatter,
}, },
...@@ -131,3 +183,16 @@ export default { ...@@ -131,3 +183,16 @@ export default {
}, },
}; };
</script> </script>
<style lang="less" scoped>
/deep/.el-radio-button__inner {
border: 1px solid #eee !important;
height: 28px;
line-height: 3px;
}
/deep/.el-radio-button__orig-radio:checked + .el-radio-button__inner {
background: #00b565;
border: none !important;
color: #fff !important;
line-height: 3px;
}
</style>
...@@ -44,32 +44,82 @@ ...@@ -44,32 +44,82 @@
label="工作纪律" label="工作纪律"
align="center" align="center"
> >
<template slot-scope="scope">
<el-input
v-if="form.view !== '查看'"
class="item"
v-model="scope.row.discipline"
@input="handleInput(scope.row)"
placeholder="请输入内容"
></el-input>
<div v-else class="txt">{{ scope.row.discipline }}</div>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="specification" prop="specification"
label="服务规范" label="服务规范"
align="center" align="center"
> >
<template slot-scope="scope">
<el-input
v-if="form.view !== '查看'"
class="item"
v-model="scope.row.specification"
placeholder="请输入内容"
@input="handleInput(scope.row)"
></el-input>
<div v-else class="txt">{{ scope.row.specification }}</div>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="management" prop="management"
label="综合管理" label="综合管理"
align="center" align="center"
> >
<template slot-scope="scope">
<el-input
v-if="form.view !== '查看'"
class="item"
@input="handleInput(scope.row)"
v-model="scope.row.management"
placeholder="请输入内容"
></el-input>
<div v-else class="txt">{{ scope.row.management }}</div>
</template>
</el-table-column> </el-table-column>
<el-table-column <!-- <el-table-column
prop="evaluation" prop="evaluation"
label="群众评议" label="群众评议"
align="center" align="center"
> >
</el-table-column> </el-table-column> -->
<el-table-column <el-table-column
prop="efficiency" prop="efficiency"
label="工作效能" label="工作效能"
align="center" align="center"
> >
<template slot-scope="scope">
<el-input
v-if="form.view !== '查看'"
class="item"
@input="handleInput(scope.row)"
v-model="scope.row.efficiency"
placeholder="请输入内容"
></el-input>
<div v-else class="txt">{{ scope.row.efficiency }}</div>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="bonusScore" label="加分" align="center"> <el-table-column prop="bonusScore" label="加分" align="center">
<template slot-scope="scope">
<el-input
v-if="form.view !== '查看'"
class="item"
@input="handleInput(scope.row)"
v-model="scope.row.bonusScore"
placeholder="请输入内容"
></el-input>
<div v-else class="txt">{{ scope.row.bonusScore }}</div>
</template>
</el-table-column> </el-table-column>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
...@@ -77,6 +127,9 @@ ...@@ -77,6 +127,9 @@
label="综合评定打分" label="综合评定打分"
align="center" align="center"
> >
<template slot-scope="scope">
<div class="txt">{{ scope.row.sumScore }}</div>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="examineLevel" prop="examineLevel"
...@@ -85,7 +138,23 @@ ...@@ -85,7 +138,23 @@
width="200" width="200"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-select
v-model="scope.row.examineLevel"
v-if="form.view !== '查看'"
placeholder="请选择"
>
<el-option
v-for="($label, $value) in dict.examineLevel"
:key="$value"
:label="$label"
:value="Number($value)"
>
<!-- {{ dict.examineLevel }} -->
</el-option>
</el-select>
<div v-else class="txt">
{{ dict.examineLevel[scope.row.examineLevel] }} {{ dict.examineLevel[scope.row.examineLevel] }}
</div>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -319,6 +388,16 @@ export default { ...@@ -319,6 +388,16 @@ export default {
}, },
methods: { methods: {
handleInput(val) {
val.sumScore =
Number(val.bonusScore) +
Number(val.discipline) +
Number(val.efficiency) +
Number(val.evaluation) +
Number(val.management) +
Number(val.specification);
console.log(val);
},
functionTime(val) { functionTime(val) {
let time = timestampToTime(val, 6); let time = timestampToTime(val, 6);
return time; return time;
......
...@@ -73,7 +73,7 @@ export default { ...@@ -73,7 +73,7 @@ export default {
: this.radio1 == 2 : this.radio1 == 2
? this.$router.push("/check/window/workman/perform/list?page=1") ? this.$router.push("/check/window/workman/perform/list?page=1")
: this.radio1 == 3 : this.radio1 == 3
? this.$router.push("/window/workman/perform/detail/list?page=1") ? this.$router.push("/check/window/workman/perform/detail/list?page=1")
: ""; : "";
}, },
}, },
...@@ -116,7 +116,108 @@ export default { ...@@ -116,7 +116,108 @@ export default {
fuzzy: false, fuzzy: false,
}, },
], ],
columns: [ columns:
JSON.parse(sessionStorage.getItem("userData")).id == 1
? [
{ type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 },
{ label: "窗口首席代表", prop: "ownerName" },
{
label: "登记年月",
formatter: (row) => {
return `${row.year ? row.year : "--"}-${
row.month
? [1, 2, 3, 4, 5, 6, 7, 8, 9].includes(row.month)
? "0" + row.month
: row.month
: "--"
}`;
},
},
{
label: "所属大厅",
prop: "salaName",
formatter: this.formatter,
},
{
label: "所属部门",
prop: "deptName",
},
{
label: "窗口(单位)名称",
formatter: (row) => {
return `${row.windowName ? row.windowName : "--"}`;
},
},
{ label: "表单名称", prop: "fromName" },
// { label: "总分分值", prop: "sumScore", formatter: this.formatter },
{
label: "提交时间",
prop: "submitDate",
width: 110,
formatter: this.formatterDate,
},
{
label: "核查人",
formatter: (row) => {
return `${
row.leaderCheckPerson
? row.leaderCheckPerson
: row.manageCheckPerson
? row.manageCheckPerson
: "--"
}`;
},
},
{
label: "最新核查时间",
prop: "manageCheckTime",
width: 150,
formatter: this.formatterDate,
},
{
label: "处理状态",
prop: "checkStatus",
formatter: this.formatter,
},
{
label: "操作",
width: 240,
formatter: (row) => {
return row.checkStatus == 1 ? (
<table-buttons
noAdd
noEdit
reCheck
noView
text={"自评核查"}
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
) : (
<table-buttons
noAdd
noEdit
text={"自评核查"}
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
);
},
},
]
: [
{ type: "selection", width: 60 }, { type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 }, { type: "index", label: "序号", width: 50 },
{ label: "窗口负责人", prop: "ownerName" }, { label: "窗口负责人", prop: "ownerName" },
...@@ -134,7 +235,11 @@ export default { ...@@ -134,7 +235,11 @@ export default {
}, },
}, },
{ label: "所属大厅", prop: "salaName", formatter: this.formatter }, {
label: "所属大厅",
prop: "salaName",
formatter: this.formatter,
},
{ {
label: "所属部门", label: "所属部门",
...@@ -163,7 +268,11 @@ export default { ...@@ -163,7 +268,11 @@ export default {
width: 150, width: 150,
formatter: this.formatterDate, formatter: this.formatterDate,
}, },
{ label: "处理状态", prop: "checkStatus", formatter: this.formatter }, {
label: "处理状态",
prop: "checkStatus",
formatter: this.formatter,
},
{ {
label: "操作", label: "操作",
...@@ -172,10 +281,10 @@ export default { ...@@ -172,10 +281,10 @@ export default {
return row.checkStatus == 1 ? ( return row.checkStatus == 1 ? (
<table-buttons <table-buttons
noAdd noAdd
noDel
noEdit noEdit
reCheck reCheck
noView noView
noDel
text={"自评核查"} text={"自评核查"}
row={row} row={row}
onEdit={this.toEdit} onEdit={this.toEdit}
...@@ -185,8 +294,8 @@ export default { ...@@ -185,8 +294,8 @@ export default {
) : ( ) : (
<table-buttons <table-buttons
noAdd noAdd
noDel
noEdit noEdit
noDel
text={"自评核查"} text={"自评核查"}
row={row} row={row}
onEdit={this.toEdit} onEdit={this.toEdit}
......
...@@ -5,7 +5,11 @@ ...@@ -5,7 +5,11 @@
<LayoutTable :data="tableData" notAdd notDel :config="tableConfig"> <LayoutTable :data="tableData" notAdd notDel :config="tableConfig">
</LayoutTable> </LayoutTable>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="已处理" name="2"> <el-tab-pane label="申诉通过" name="2">
<LayoutTable :data="tableData" notAdd notDel :config="tableConfig">
</LayoutTable>
</el-tab-pane>
<el-tab-pane label="申诉不通过" name="3">
<LayoutTable :data="tableData" notAdd notDel :config="tableConfig"> <LayoutTable :data="tableData" notAdd notDel :config="tableConfig">
</LayoutTable> </LayoutTable>
</el-tab-pane> </el-tab-pane>
...@@ -104,21 +108,160 @@ export default { ...@@ -104,21 +108,160 @@ export default {
handleClick() { handleClick() {
this.query.page = 1; this.query.page = 1;
this.query.size = 10; this.query.size = 10;
console.log(this.tableConfig);
this.activeName == 1
? ""
: (this.tableConfig.columns = [
{ type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 },
{
label: "窗口首席代表",
prop: "appealPerson",
},
{ label: "姓名", prop: "staffName", formatter: this.formatter },
{
label: "所属大厅",
prop: "salaName",
formatter: this.formatter,
},
{
label: "所属部门",
prop: "deptName",
formatter: this.formatter,
},
{
label: "违规类型",
prop: "irregularType",
formatter: this.formatter,
},
{
label: "绩效规则",
prop: "ruleId",
formatter: this.formatter,
},
{
label: "加分/扣分方式",
prop: "subMethod",
formatter: this.formatter,
},
// {
// label: "加分/扣分方式",
// prop: "subAddType",
// formatter: this.formatter,
// },
{
label: "加分/扣分时间",
prop: "deductTime",
formatter: this.formatterDate,
},
{ label: "分值", prop: "score", formatter: this.formatter },
{
label: "申诉时间",
prop: "appealTime",
formatter: this.formatterDate,
},
{
label: "申诉人",
prop: "appealPerson",
formatter: this.formatter,
},
{
label: "处理时间",
prop: "processTime",
formatter: this.formatterDate,
},
{
label: "处理人员",
prop: "processPerson",
formatter: this.formatter,
},
{
label: "是否核查",
prop: "checkStatus",
formatter: this.formatter,
},
{
label: "处理状态",
prop: "processStatus",
formatter: this.formatter,
},
/* {label: "绩效记录申诉附件信息",
width: 120,
prop: "subColumns",
formatter: (row) => {
let widthsize = this.columnSet.reduce((pre, cur) => {
return pre + Number(cur.width);
}, 50);
return (
<el-popover placement="right" width={widthsize} trigger="click">
{this.renderTable(row.performAttendAppealFilesList)}
<el-button type="text" slot="reference">详细</el-button>
</el-popover>
);
},
},*/
{
label: "操作",
formatter: (row) => {
return row.processStatus == 2 ? (
<table-buttons
noAdd
noDel
noEdit
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
) : (
<table-buttons
noAdd
noDel
noView
noEdit
chuli
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
);
},
},
]);
this.getData(); this.getData();
}, },
getData() { getData() {
this.activeName == 1 || this.activeName == 2 let obj = {
? this.$post("/perform/attend/appeal/list", { processStatus: this.activeName == 1 ? "1" : "2",
processStatus: this.activeName,
page: this.query.page, page: this.query.page,
size: this.query.size, size: this.query.size,
appealTimeStart: this.query.yearmonth appealTimeStart: this.query.yearmonth
? this.query.yearmonth + "-01" ? this.query.yearmonth + "-01"
: "", : "",
appealTimeEnd: this.query.yearmonth appealTimeEnd: this.query.yearmonth ? this.query.yearmonth + "-31" : "",
? this.query.yearmonth + "-31" staffName: this.query.staffName,
: "", salaId:this.query.salaId,
}).then((res) => { deptId:this.query.deptId,
checkStatus: this.query.checkStatus,
irregularOtherType: this.query.irregularOtherType,
};
this.activeName == 2
? (obj.appealResult = 1)
: this.activeName == 3
? (obj.appealResult = 2)
: "";
this.activeName == 1 || this.activeName == 2 || this.activeName == 3
? this.$post("/perform/attend/appeal/list", obj).then((res) => {
if (res.code == 1) { if (res.code == 1) {
this.tableData = res.data; this.tableData = res.data;
this.dict = res.dict; this.dict = res.dict;
...@@ -193,16 +336,28 @@ export default { ...@@ -193,16 +336,28 @@ export default {
config: { config: {
isshowTabPane: false, isshowTabPane: false,
search: [ search: [
{
name: "checkStatus",
type: "select",
label: "核查情况",
fuzzy: false,
},
{ {
name: "irregularOtherType", name: "irregularOtherType",
type: "select", type: "select",
label: "全部类型", label: "全部类型",
fuzzy: false, fuzzy: false,
}, },
{
name: "salaId",
type: "selectSalaId",
label: "大厅",
fuzzy: false,
},
{ {
name: "deptId", name: "deptId",
type: "select", type: "selectDeptId",
label: "全部部门", label: "部门",
fuzzy: false, fuzzy: false,
}, },
{ {
...@@ -222,9 +377,22 @@ export default { ...@@ -222,9 +377,22 @@ export default {
{ type: "selection", width: 60 }, { type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 }, { type: "index", label: "序号", width: 50 },
{
label: "窗口首席代表",
prop: "appealPerson",
formatter: this.formatter,
},
{ label: "姓名", prop: "staffName", formatter: this.formatter }, { label: "姓名", prop: "staffName", formatter: this.formatter },
{
{ label: "所属部门", prop: "deptName", formatter: this.formatter }, label: "所属大厅",
prop: "salaName",
formatter: this.formatter,
},
{
label: "所属部门",
prop: "deptName",
formatter: this.formatter,
},
{ {
label: "违规类型", label: "违规类型",
...@@ -232,13 +400,22 @@ export default { ...@@ -232,13 +400,22 @@ export default {
formatter: this.formatter, formatter: this.formatter,
}, },
{ label: "绩效规则", prop: "ruleId", formatter: this.formatter }, {
label: "绩效规则",
prop: "ruleId",
formatter: this.formatter,
},
{ {
label: "加分/扣分方式", label: "加分/扣分方式",
prop: "subAddType", prop: "subMethod",
formatter: this.formatter, formatter: this.formatter,
}, },
// {
// label: "加分/扣分方式",
// prop: "subAddType",
// formatter: this.formatter,
// },
{ {
label: "加分/扣分时间", label: "加分/扣分时间",
...@@ -253,7 +430,26 @@ export default { ...@@ -253,7 +430,26 @@ export default {
prop: "appealTime", prop: "appealTime",
formatter: this.formatterDate, formatter: this.formatterDate,
}, },
{
label: "申诉人",
prop: "appealPerson",
formatter: this.formatter,
},
// {
// label: "处理时间",
// prop: "processTime",
// formatter: this.formatterDate,
// },
// {
// label: "处理人员",
// prop: "processPerson",
// formatter: this.formatter,
// },
{
label: "是否核查",
prop: "checkStatus",
formatter: this.formatter,
},
{ {
label: "处理状态", label: "处理状态",
prop: "processStatus", prop: "processStatus",
......
...@@ -204,7 +204,7 @@ export default { ...@@ -204,7 +204,7 @@ export default {
{ {
name: "staffName", name: "staffName",
type: "text", type: "text",
label: "请输入员工姓名搜索", label: "员工姓名搜索",
fuzzy: false, fuzzy: false,
}, },
], ],
......
...@@ -210,7 +210,7 @@ export default { ...@@ -210,7 +210,7 @@ export default {
{ {
name: "staffName", name: "staffName",
type: "text", type: "text",
label: "请输入员工姓名搜索", label: "员工姓名搜索",
fuzzy: false, fuzzy: false,
}, },
], ],
......
...@@ -98,6 +98,8 @@ ...@@ -98,6 +98,8 @@
? "玩手机" ? "玩手机"
: form.irregularType == 4 : form.irregularType == 4
? "睡觉" ? "睡觉"
: form.irregularType == 4
? "其他"
: "--" : "--"
}} }}
</p> </p>
...@@ -188,7 +190,16 @@ ...@@ -188,7 +190,16 @@
" "
> >
</el-image> --> </el-image> -->
<filepReview v-if="form.filePaths" :src="form.filePaths" /> <filepReview
v-if="form.filePaths || form.snapPath"
:src="
form.filePaths
? form.filePaths
: form.snapPath
? form.snapPath
: []
"
/>
<span v-else>--</span> <span v-else>--</span>
</div> </div>
<ImageUpload <ImageUpload
...@@ -240,7 +251,9 @@ ...@@ -240,7 +251,9 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="22"> <el-col :span="22">
<el-form-item :label="form.subAddType == 1 ? '加分分值:' : '扣分分值:'"> <el-form-item
:label="form.subAddType == 1 ? '加分分值:' : '扣分分值:'"
>
<p>{{ form.subAddType == 1 ? "+" : "-" }} {{ form.score }}</p> <p>{{ form.subAddType == 1 ? "+" : "-" }} {{ form.score }}</p>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -489,6 +502,10 @@ export default { ...@@ -489,6 +502,10 @@ export default {
label: "睡觉", label: "睡觉",
value: 4, value: 4,
}, },
{
label: "其他",
value: 5,
},
], ],
form: {}, form: {},
baseUrl: process.env.VUE_APP_API_BASE_URL + "/", baseUrl: process.env.VUE_APP_API_BASE_URL + "/",
......
...@@ -178,6 +178,12 @@ export default { ...@@ -178,6 +178,12 @@ export default {
config: { config: {
isshowTabPane: true, isshowTabPane: true,
search: [ search: [
{
name: "subMethod",
type: "select",
label: "效能分类",
fuzzy: false,
},
{ {
name: "processStatus", name: "processStatus",
type: "select", type: "select",
...@@ -206,7 +212,7 @@ export default { ...@@ -206,7 +212,7 @@ export default {
{ {
name: "staffName", name: "staffName",
type: "text", type: "text",
label: "请输入员工姓名搜索", label: "员工姓名搜索",
fuzzy: false, fuzzy: false,
}, },
], ],
...@@ -316,9 +322,28 @@ export default { ...@@ -316,9 +322,28 @@ export default {
width: 200, width: 200,
fixed: "right", fixed: "right",
formatter: (row) => { formatter: (row) => {
return row.processStatus == 1 ? ( return row.subMethod == 1 && row.processStatus == 1 ? (
<table-buttons <table-buttons
noAdd noAdd
noEdit
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
) : row.subMethod == 2 && row.processStatus == 1 ? (
<table-buttons
noAdd
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
) : row.subMethod == 1 && row.processStatus == 2 ? (
<table-buttons
noAdd
noEdit
noDel
row={row} row={row}
onEdit={this.toEdit} onEdit={this.toEdit}
onView={this.toView} onView={this.toView}
......
<template> <template>
<div class="page"> <div class="page">
<LayoutTable :data="tableData" :config="tableConfig"> <LayoutTable :data="tableData" :config="tableConfig"> </LayoutTable>
</LayoutTable>
<drawer-show ref="drawerform" @ok="getData" /> <drawer-show ref="drawerform" @ok="getData" />
</div> </div>
</template> </template>
<script> <script>
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import drawerShow from "./drawershow"; import drawerShow from "./drawershow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
export default { export default {
name: "PerformErrorRecordList", name: "PerformErrorRecordList",
components: { components: {
drawerShow drawerShow,
},
mixins: [table],
created() {
}, },
mixins: [table],
created() {},
methods: { methods: {
/** 重写新增方法 */ /** 重写新增方法 */
toAdd(row) { toAdd(row) {
...@@ -33,7 +30,6 @@ ...@@ -33,7 +30,6 @@
toView(row) { toView(row) {
this.$refs.drawerform.view(row); this.$refs.drawerform.view(row);
}, },
}, },
data() { data() {
return { return {
...@@ -43,118 +39,152 @@ ...@@ -43,118 +39,152 @@
name: "staffName", name: "staffName",
type: "text", type: "text",
label: "员工姓名", label: "员工姓名",
fuzzy: true fuzzy: true,
}, },
{ {
name: "workNum", name: "workNum",
type: "text", type: "text",
label: "工号", label: "工号",
fuzzy: true fuzzy: true,
}, },
{ {
name: "windowNum", name: "windowNum",
type: "text", type: "text",
label: "窗口编号", label: "窗口编号",
fuzzy: true fuzzy: true,
}, },
{ {
name: "deptName", name: "deptName",
type: "text", type: "text",
label: "所属部门名称", label: "所属部门名称",
fuzzy: true fuzzy: true,
}, },
{ {
name: "irregularType", name: "irregularType",
type: "select", type: "select",
label: "违规类型", label: "违规类型",
fuzzy: true fuzzy: true,
}, },
{ {
name: "happenTime", name: "happenTime",
type: "date", type: "date",
label: "发生时间", label: "发生时间",
fuzzy: true fuzzy: true,
}, },
{ {
name: "duration", name: "duration",
type: "text", type: "text",
label: "持续时间,秒", label: "持续时间,秒",
fuzzy: true fuzzy: true,
}, },
{ {
name: "ruleName", name: "ruleName",
type: "text", type: "text",
label: "规则名称", label: "规则名称",
fuzzy: true fuzzy: true,
}, },
{ {
name: "deductPerson", name: "deductPerson",
type: "text", type: "text",
label: "扣分人员", label: "扣分人员",
fuzzy: true fuzzy: true,
}, },
{ {
name: "score", name: "score",
type: "text", type: "text",
label: "扣分或增加分值", label: "扣分或增加分值",
fuzzy: true fuzzy: true,
}, },
], ],
columns: [ columns: [
{type: "selection", width: 60}, { type: "selection", width: 60 },
{type: "index",label: "序号",width: 50}, { type: "index", label: "序号", width: 50 },
{label: "员工姓名", prop: "staffName"}, { label: "员工姓名", prop: "staffName" },
{label: "工号", prop: "workNum"}, { label: "工号", prop: "workNum" },
{label: "窗口编号", prop: "windowNum"}, { label: "窗口编号", prop: "windowNum" },
{label: "所属部门", prop: "deptId", formatter: this.formatter}, { label: "所属部门", prop: "deptId", formatter: this.formatter },
{label: "所属部门名称", prop: "deptName"}, { label: "所属部门名称", prop: "deptName" },
{label: "违规类型", prop: "irregularType",formatter: this.formatter}, {
label: "违规类型",
prop: "irregularType",
formatter: this.formatter,
},
{label: "发生时间", prop: "happenTime", formatter: this.formatterDate}, {
label: "发生时间",
prop: "happenTime",
formatter: this.formatterDate,
},
{label: "持续时间,秒", prop: "duration",formatter: this.formatter}, {
label: "持续时间,秒",
prop: "duration",
formatter: this.formatter,
},
{label: "报警时间", prop: "alarmTime", formatter: this.formatterDate}, {
label: "报警时间",
prop: "alarmTime",
formatter: this.formatterDate,
},
{label: "图片凭证地址", prop: "snapPath"}, { label: "图片凭证地址", prop: "snapPath" },
{label: "规则名称", prop: "categoryName"}, { label: "规则名称", prop: "categoryName" },
{label: "绩效规则id", prop: "ruleId", formatter: this.formatter}, { label: "绩效规则id", prop: "ruleId", formatter: this.formatter },
{label: "规则名称", prop: "ruleName"}, { label: "规则名称", prop: "ruleName" },
{label: "扣分方式", prop: "subMethod",formatter: this.formatter}, { label: "扣分方式", prop: "subMethod", formatter: this.formatter },
{label: "扣分人员", prop: "deductPerson"}, { label: "扣分人员", prop: "deductPerson" },
{label: "扣分时间", prop: "deductTime", formatter: this.formatterDate}, {
label: "扣分时间",
prop: "deductTime",
formatter: this.formatterDate,
},
{label: "增减类型", prop: "subAddType",formatter: this.formatter}, { label: "增减类型", prop: "subAddType", formatter: this.formatter },
{label: "扣分或增加分值", prop: "score", formatter: this.formatter}, { label: "扣分或增加分值", prop: "score", formatter: this.formatter },
{label: "处理状态", prop: "processStatus",formatter: this.formatter}, {
label: "处理状态",
prop: "processStatus",
formatter: this.formatter,
},
{label: "创建用户", prop: "createUserId", formatter: this.formatter}, {
label: "创建用户",
prop: "createUserId",
formatter: this.formatter,
},
{ {
label: "操作", label: "操作",
width: 240, width: 240,
formatter: row => { formatter: (row) => {
return ( return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} /> <table-buttons
noAdd
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
); );
} },
} },
] ],
} },
};
}
}; };
},
};
</script> </script>
...@@ -204,7 +204,7 @@ export default { ...@@ -204,7 +204,7 @@ export default {
{ {
name: "staffName", name: "staffName",
type: "text", type: "text",
label: "请输入员工姓名搜索", label: "员工姓名搜索",
fuzzy: false, fuzzy: false,
}, },
], ],
......
...@@ -204,7 +204,7 @@ export default { ...@@ -204,7 +204,7 @@ export default {
{ {
name: "staffName", name: "staffName",
type: "text", type: "text",
label: "请输入员工姓名搜索", label: "员工姓名搜索",
fuzzy: false, fuzzy: false,
}, },
], ],
......
...@@ -191,8 +191,8 @@ export default { ...@@ -191,8 +191,8 @@ export default {
}, },
{ {
name: "deptId", name: "deptId",
type: "select", type: "selectDeptId",
label: "所属部门", label: "部门",
fuzzy: false, fuzzy: false,
}, },
{ {
...@@ -210,7 +210,7 @@ export default { ...@@ -210,7 +210,7 @@ export default {
{ {
name: "staffName", name: "staffName",
type: "text", type: "text",
label: "请输入员工姓名搜索", label: "员工姓名搜索",
fuzzy: false, fuzzy: false,
}, },
], ],
...@@ -222,7 +222,7 @@ export default { ...@@ -222,7 +222,7 @@ export default {
{ label: "窗口编号", prop: "windowNum", formatter: this.formatter }, { label: "窗口编号", prop: "windowNum", formatter: this.formatter },
{ label: "所属大厅", prop: "salaName",formatter: this.formatter }, { label: "所属大厅", prop: "salaName", formatter: this.formatter },
{ label: "所属部门", prop: "deptName", formatter: this.formatter }, { label: "所属部门", prop: "deptName", formatter: this.formatter },
......
...@@ -153,7 +153,8 @@ export default { ...@@ -153,7 +153,8 @@ export default {
}, },
async getData() { async getData() {
await this.$post( await this.$post(
this.type == 1 ? "/perform/dept/conf/list" : "/perform/staff/conf/list" this.type == 1 ? "/perform/dept/conf/list" : "/perform/staff/conf/list",
{ page: 1, size: -1 }
).then((res) => { ).then((res) => {
if (res.code == 1) { if (res.code == 1) {
this.dataList = res.data.data; this.dataList = res.data.data;
...@@ -165,7 +166,6 @@ export default { ...@@ -165,7 +166,6 @@ export default {
}); });
this.activeName == 2 this.activeName == 2
? await this.$post("/window/owner/list").then((res) => { ? await this.$post("/window/owner/list").then((res) => {
console.log(res);
if (res.code == 1) { if (res.code == 1) {
this.tableData = res.data; this.tableData = res.data;
} }
......
This diff is collapsed.
...@@ -46,8 +46,14 @@ ...@@ -46,8 +46,14 @@
v-model="form.mobile" v-model="form.mobile"
:maxLength="11" :maxLength="11"
/> />
<Field label="用户类型" prop="userType" v-model="form.userType" :enumData='dict.userType' type='select' /> <Field
<!-- <Field label="用户状态" prop="status" v-model="form.status" :enumData='dict.status' type='select' />--> label="用户类型"
prop="userType"
v-model="form.userType"
:enumData="dict.userType"
type="select"
/>
<!-- <Field label="用户状态" prop="status" v-model="form.status" :enumData='dict.status' type='select' />-->
<Field <Field
label="角色分配" label="角色分配"
:span="24" :span="24"
...@@ -93,7 +99,7 @@ export default { ...@@ -93,7 +99,7 @@ export default {
loginName: [ loginName: [
{ required: true, message: "请输入英文的用户名", trigger: "blur" }, { required: true, message: "请输入英文的用户名", trigger: "blur" },
{ {
validator: function (rule, value, callback) { validator: function(rule, value, callback) {
// 校验英文的正则 // 校验英文的正则
if (/[A-Za-z0-9]$/.test(value) == false) { if (/[A-Za-z0-9]$/.test(value) == false) {
callback(new Error("请输入英文")); callback(new Error("请输入英文"));
...@@ -145,24 +151,39 @@ export default { ...@@ -145,24 +151,39 @@ export default {
}, },
/**获取数据后弹框 */ /**获取数据后弹框 */
afterRender(data) { afterRender(data) {
let arr = [];
// for (let key in data.dict.roleIds) {
// let obj = {};
// obj["value"] = key;
// obj["label"] = data.dict.roleIds[key];
// arr.push(obj);
// }
// data.dict.roleIds = arr;
if (data.entity.roleIds && data.entity.roleIds.length) {
data.entity.roleIds = data.entity.roleIds.map((v) => {
return v + "";
});
}
console.log(data.entity.roleIds, "1111");
this.$forceUpdate();
this.open = true; this.open = true;
}, },
beforeSubmit(data) { // beforeSubmit(data) {
data.roleIds = data.roleIds // data.roleIds = data.roleIds
.filter((item) => { // .filter((item) => {
return item !== ""; // return item !== "";
}) // })
.join(","); // .join(",");
return data; // return data;
}, // },
afterSubmit(data) { afterSubmit(data) {
this.open = false; this.open = false;
this.$emit("ok"); this.$emit("ok");
}, },
// 表单重置 // 表单重置
reset() { reset() {
this.form = {roleIds:""}; this.form = { roleIds: "" };
this.resetForm("form"); this.resetForm("form");
}, },
...@@ -193,5 +214,3 @@ export default { ...@@ -193,5 +214,3 @@ export default {
}, },
}; };
</script> </script>
<template> <template>
<div class="page"> <div class="page">
<LayoutTable :data="tableData" :config="tableConfig" notDel/> <LayoutTable :data="tableData" :config="tableConfig" notAdd notDel />
<dialog-show ref="dialogform" @ok="getData"/> <dialog-show ref="dialogform" @ok="getData" />
<el-dialog title="用户已分配的角色" :visible.sync="role.visible"> <el-dialog title="用户已分配的角色" :visible.sync="role.visible">
<el-form :model="role.form"> <el-form :model="role.form">
<el-checkbox-group v-model="role.checkList" :min="500"> <el-checkbox-group v-model="role.checkList" :min="500">
<el-checkbox <el-checkbox v-for="item in allRoles" :key="item.id" :label="item.id"
v-for="item in allRoles"
:key="item.id"
:label="item.id"
>{{ item.name }} >{{ item.name }}
</el-checkbox </el-checkbox>
>
</el-checkbox-group> </el-checkbox-group>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
...@@ -70,18 +66,13 @@ ...@@ -70,18 +66,13 @@
</div> </div>
</el-dialog> </el-dialog>
<el-dialog <el-dialog
:title="userPasswordDialog.title" :title="userPasswordDialog.title"
hei hei
:visible.sync="userPasswordDialog.open" :visible.sync="userPasswordDialog.open"
width="40%" width="40%"
> >
<el-form <el-form ref="form" label-width="110px" label-position="right">
ref="form"
label-width="110px"
label-position="right"
>
<el-row> <el-row>
<Field <Field
:span="20" :span="20"
...@@ -91,7 +82,6 @@ ...@@ -91,7 +82,6 @@
v-model="userPasswordDialog.data.loginName" v-model="userPasswordDialog.data.loginName"
/> />
<Field <Field
:span="20" :span="20"
label="重置密码" label="重置密码"
...@@ -101,25 +91,20 @@ ...@@ -101,25 +91,20 @@
</el-row> </el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="updatePasswordConfirm">确 定</el-button> <el-button type="primary" @click="updatePasswordConfirm"
>确 定</el-button
>
<el-button @click="userPasswordDialog.open = false">取 消</el-button> <el-button @click="userPasswordDialog.open = false">取 消</el-button>
</div> </div>
</el-dialog> </el-dialog>
<el-dialog <el-dialog
:title="userLoginDialog.title" :title="userLoginDialog.title"
:visible.sync="userLoginDialog.open" :visible.sync="userLoginDialog.open"
width="40%" width="40%"
> >
<el-form <el-form ref="form" label-width="110px" label-position="right">
ref="form"
label-width="110px"
label-position="right"
>
<el-row> <el-row>
<Field <Field
:span="20" :span="20"
label="登录名称" label="登录名称"
...@@ -139,9 +124,7 @@ ...@@ -139,9 +124,7 @@
<el-button type="primary" @click="updateLoginConfirm">确 定</el-button> <el-button type="primary" @click="updateLoginConfirm">确 定</el-button>
<el-button @click="userLoginDialog.open = false">取 消</el-button> <el-button @click="userLoginDialog.open = false">取 消</el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
...@@ -151,10 +134,10 @@ import table from "@/assets/mixins/table"; ...@@ -151,10 +134,10 @@ import table from "@/assets/mixins/table";
export default { export default {
mixins: [table], mixins: [table],
components: {dialogShow}, components: { dialogShow },
methods: { methods: {
// 打开弹窗 // 打开弹窗
async findRole({id}) { async findRole({ id }) {
try { try {
this.tableData.loading = true; this.tableData.loading = true;
this.allRoles = await this.getUserRoles(id); this.allRoles = await this.getUserRoles(id);
...@@ -167,7 +150,7 @@ export default { ...@@ -167,7 +150,7 @@ export default {
this.tableData.loading = false; this.tableData.loading = false;
}, },
renderContent: function (h, {node, data, store}) { renderContent: function(h, { node, data, store }) {
return ( return (
<span> <span>
<i style="font-size:16px;color:#409EFF" class={data.icon}></i> <i style="font-size:16px;color:#409EFF" class={data.icon}></i>
...@@ -181,7 +164,7 @@ export default { ...@@ -181,7 +164,7 @@ export default {
} }
this.$get("/dept/getListByParentId", { this.$get("/dept/getListByParentId", {
parentId: node.data.id, parentId: node.data.id,
}).then(({data}) => { }).then(({ data }) => {
resolve(data.result); resolve(data.result);
}); });
}, },
...@@ -250,14 +233,14 @@ export default { ...@@ -250,14 +233,14 @@ export default {
this.$nextTick(() => { this.$nextTick(() => {
this.$get("/dept/getListByParentId", { this.$get("/dept/getListByParentId", {
parentId: 0, parentId: 0,
}).then(({data}) => { }).then(({ data }) => {
this.data = data.result; this.data = data.result;
this.node = {}; this.node = {};
}); });
this.userDeptDialog.open = true; this.userDeptDialog.open = true;
}).catch(error => { }).catch((error) => {
this.$message.error(error.message); this.$message.error(error.message);
}) });
this.tableData.loading = false; this.tableData.loading = false;
}, },
...@@ -279,9 +262,10 @@ export default { ...@@ -279,9 +262,10 @@ export default {
this.tableData.loading = true; this.tableData.loading = true;
this.$post("/user/save", { this.$post("/user/save", {
"id": this.userPasswordDialog.data.id, id: this.userPasswordDialog.data.id,
"loginPwd": this.userPasswordDialog.data.loginPwd, loginPwd: this.userPasswordDialog.data.loginPwd,
}).then((res) => { })
.then((res) => {
if (res && res.code == 1) { if (res && res.code == 1) {
this.userPasswordDialog.data = {}; this.userPasswordDialog.data = {};
this.$message.success("修改密码成功!"); this.$message.success("修改密码成功!");
...@@ -291,9 +275,10 @@ export default { ...@@ -291,9 +275,10 @@ export default {
this.$message.error(res.msg); this.$message.error(res.msg);
} }
this.tableData.loading = false; this.tableData.loading = false;
}).catch(error => {
this.$message.error(error.message);
}) })
.catch((error) => {
this.$message.error(error.message);
});
}, },
updateLoginName(row) { updateLoginName(row) {
...@@ -313,10 +298,11 @@ export default { ...@@ -313,10 +298,11 @@ export default {
console.log("修改登录名"); console.log("修改登录名");
this.tableData.loading = true; this.tableData.loading = true;
this.$post("/login/reLoginName", { this.$post("/login/reLoginName", {
"id": this.userLoginDialog.data.id, id: this.userLoginDialog.data.id,
"loginName": this.userLoginDialog.data.loginName, loginName: this.userLoginDialog.data.loginName,
"userType": this.userLoginDialog.data.userType userType: this.userLoginDialog.data.userType,
}).then((res) => { })
.then((res) => {
if (res && res.code == 1) { if (res && res.code == 1) {
this.userLoginDialog.data = {}; this.userLoginDialog.data = {};
this.$message.success("修改登录名成功!"); this.$message.success("修改登录名成功!");
...@@ -326,16 +312,17 @@ export default { ...@@ -326,16 +312,17 @@ export default {
this.$message.error(res.msg); this.$message.error(res.msg);
} }
this.tableData.loading = false; this.tableData.loading = false;
}).catch(error => {
this.$message.error(error.message);
}) })
.catch((error) => {
this.$message.error(error.message);
});
}, },
// 获取用户角色列表 // 获取用户角色列表
getUserRoles(id) { getUserRoles(id) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
this.$post("/role/roleNameByUserId", {userId: id}) this.$post("/role/roleNameByUserId", { userId: id })
.then(({data}) => { .then(({ data }) => {
resolve(data); resolve(data);
}) })
.catch(reject); .catch(reject);
...@@ -347,7 +334,7 @@ export default { ...@@ -347,7 +334,7 @@ export default {
userId: id, userId: id,
size: -1, size: -1,
}) })
.then(({data}) => { .then(({ data }) => {
const result = data.data const result = data.data
.filter((i) => i.roleId + "") .filter((i) => i.roleId + "")
.map((i) => i.roleId + ""); .map((i) => i.roleId + "");
...@@ -420,8 +407,8 @@ export default { ...@@ -420,8 +407,8 @@ export default {
config: { config: {
isshowTabPane: true, isshowTabPane: true,
columns: [ columns: [
{type: "selection", reserveSelection: true, width: 60}, { type: "selection", reserveSelection: true, width: 60 },
{type: "index", label: "序号", align: "center", width: 50}, { type: "index", label: "序号", align: "center", width: 50 },
{ {
prop: "loginName", prop: "loginName",
label: "登录名称", label: "登录名称",
......
...@@ -6,14 +6,20 @@ ...@@ -6,14 +6,20 @@
:direction="direction" :direction="direction"
size="50%" size="50%"
> >
<el-form ref="form" :model="form" :rules="rules" label-width="100px" style="padding: 20px;"> <el-form
ref="form"
:model="form"
:rules="rules"
label-width="100px"
style="padding: 20px;"
>
<el-row> <el-row>
<Field <Field
type="select" type="select"
label="负责人姓名" label="负责人姓名"
prop="staffId" prop="staffId"
filterable filterable
:disabled="editId?true:false" :disabled="editId ? true : false"
v-model="form.staffId" v-model="form.staffId"
:enumData="userList" :enumData="userList"
placeholder="请输入负责人姓名" placeholder="请输入负责人姓名"
...@@ -24,6 +30,14 @@ ...@@ -24,6 +30,14 @@
v-model="form.phone" v-model="form.phone"
placeholder="请输入联系电话" placeholder="请输入联系电话"
/> />
<Field
label="角色"
prop="roleType"
type="select"
v-model="form.roleType"
:enumData="dict.roleType"
placeholder="请选择角色"
/>
<Field <Field
label="大厅" label="大厅"
prop="salaId" prop="salaId"
...@@ -40,6 +54,17 @@ ...@@ -40,6 +54,17 @@
:enumData="dict.deptId" :enumData="dict.deptId"
placeholder="请选择部门" placeholder="请选择部门"
/> />
<Field
label="是否允许巡查"
prop="inspect"
type="checkbox"
v-model="form.inspect"
:enumData="inspectObj"
/>
<!-- <el-form-item label="是否允许巡查" prop="inspect">
<el-checkbox v-model="form.inspect">允许</el-checkbox>
</el-form-item> -->
<!-- <Field <!-- <Field
label="工号" label="工号"
prop="number" prop="number"
...@@ -62,12 +87,19 @@ ...@@ -62,12 +87,19 @@
/> --> /> -->
</el-row> </el-row>
<div style="background-color: rgba(242, 246, 252, 1);padding: 20px;"> <div style="background-color: rgba(242, 246, 252, 1);padding: 20px;">
<wintable
<wintable :editId="editId" ref="wintable" :hallId="dict.hallId" class="wintabel" @selection-change="selectionChange"/> :editId="editId"
ref="wintable"
:hallId="dict.hallId"
class="wintabel"
:checkPeopleArr="checkPeopleArr"
@selection-change="selectionChange"
:staffList="dict.staffList"
v-if="refresh"
/>
</div> </div>
<div style="padding: 20px;"> <div style="padding: 20px;">
<el-button type="primary" @click="submitForm" >提交</el-button> <el-button type="primary" @click="submitForm">提交</el-button>
</div> </div>
</el-form> </el-form>
</el-drawer> </el-drawer>
...@@ -80,18 +112,22 @@ export default { ...@@ -80,18 +112,22 @@ export default {
name: "WindowOwnerDetail", name: "WindowOwnerDetail",
mixins: [form], mixins: [form],
components: { components: {
wintable wintable,
}, },
created() { created() {
this.changePath("window/owner"); this.changePath("window/owner");
this.getUser() this.getUser();
}, },
data() { data() {
return { return {
refresh: true,
inspectObj: {
1: "允许",
},
// 大厅 // 大厅
options:[], options: [],
//窗口 //窗口
tableData:[], tableData: [],
// 遮罩层 // 遮罩层
loading: true, loading: true,
// 弹出层标题 // 弹出层标题
...@@ -103,45 +139,48 @@ export default { ...@@ -103,45 +139,48 @@ export default {
toDate: [], toDate: [],
// 表单校验 // 表单校验
rules: { rules: {
name: [ staffId: [{ required: true, message: "请选择负责人", trigger: "blur" }],
{ required: true, message: "请输入姓名", trigger: "blur" }, },
{ max: 20, message: "最多只能录入20个字符", trigger: "blur" }, userList: {},
] userarr: [], //人员数组
}, checkArr: [], //选中窗口
userList:{}, checkPeopleArr: [], //选中窗口
userarr:[],//人员数组 editId: "", //编辑id
checkArr:[],//选中窗口
editId:''//编辑id
}; };
}, },
methods: { methods: {
//重写表单 //重写表单
beforeSubmit(data){ beforeSubmit(data) {
data['deptName'] = this.dict.deptId[data.deptId] data["deptName"] = this.dict.deptId[data.deptId];
data['salaName'] = this.dict.salaId[data.salaId] data["salaName"] = this.dict.salaId[data.salaId];
data['staffName'] = this.userList[data.staffId] data["staffName"] = this.userList[data.staffId];
try { try {
const userObj = this.userarr.find(v=>v.id == data.staffId) //工号 const userObj = this.userarr.find((v) => v.id == data.staffId); //工号
data['number'] = userObj.workNum data["number"] = userObj.workNum;
// 窗口列表 // 窗口列表
const checkArr = [] const checkArr = [];
this.checkArr.forEach(v=>{ this.checkArr.forEach((v) => {
checkArr.push({ checkArr.push({
windowId:v.id, windowId: v.id,
windowName:v.name, windowName: v.name,
windowCode:v.fromnum, windowCode: v.fromnum,
building:v.building, building: v.building,
level:v.level level: v.level,
}) });
}) });
data['windowOwnerDetailList'] = checkArr data["windowOwnerDetailList"] = checkArr;
} catch (error) {} } catch (error) {}
return data let arr = Array.from(new Set(this.$refs.wintable.checkAllList));
console.log(this.checkAllList);
data.staffIdList = arr ? arr : [];
return data;
}, },
// 选中窗口 // 选中窗口
selectionChange(v){ selectionChange(v) {
this.checkArr = v // this.checkArr = v;
// this.checkPeopleArr = v;
console.log(v, "vvvvvv");
}, },
cascaderChange(val) { cascaderChange(val) {
if (this.deptList.length > 0) { if (this.deptList.length > 0) {
...@@ -152,44 +191,47 @@ export default { ...@@ -152,44 +191,47 @@ export default {
console.log(this.form.deptId, "当前选择"); console.log(this.form.deptId, "当前选择");
}, },
// 查询人员 // 查询人员
getUser(){ getUser() {
this.$post("/staff/list",{page:1,size:-1}).then(res=>{ this.$post("/staff/list", { page: 1, size: -1 }).then((res) => {
const {code,data} = res const { code, data } = res;
if(code == 1){ if (code == 1) {
this.userarr = data.data this.userarr = data.data;
const arr = {} const arr = {};
data.data.forEach(element => { data.data.forEach((element) => {
arr[element.id] = element.name arr[element.id] = element.name + "-" + element.deptName;
}); });
this.userList = arr this.userList = arr;
} }
}) });
},
onSubmitSearch(){
}, },
/** 编辑 */ /** 编辑 */
edit(row) { edit(row) {
this.editId = row.staffId this.refresh = false;
this.editId = row.staffId;
this.reset(); this.reset();
this.query = { id: row.id }; this.query = { id: row.id };
this.urls.currUrl = "window/owner/edit"; this.urls.currUrl = "window/owner/edit";
this.getData(); this.getData();
this.checkPeopleArr = [];
this.checkPeopleArr = row.staffIdList;
this.pageInfo.type = "edit"; this.pageInfo.type = "edit";
this.title = "修改窗口负责人"; this.title = "修改窗口负责人";
}, },
/** 新增 */ /** 新增 */
add(row) { add(row) {
this.editId = '' this.refresh = false;
this.editId = "";
this.reset(); this.reset();
this.urls.currUrl = "window/owner/add"; this.urls.currUrl = "window/owner/add";
this.getData(); this.getData();
this.checkPeopleArr = [];
this.checkPeopleArr = row.staffIdList;
this.pageInfo.type = "add"; this.pageInfo.type = "add";
this.title = "新增窗口负责人"; this.title = "新增窗口负责人";
}, },
/** 查看*/ /** 查看*/
view(row) { view(row) {
this.editId = row.staffId this.editId = row.staffId;
this.reset(); this.reset();
this.query = { id: row.id }; this.query = { id: row.id };
this.urls.currUrl = "window/owner/view"; this.urls.currUrl = "window/owner/view";
...@@ -203,6 +245,7 @@ export default { ...@@ -203,6 +245,7 @@ export default {
}, },
/**获取数据后弹框 */ /**获取数据后弹框 */
afterRender(data) { afterRender(data) {
this.refresh = true;
this.open = true; this.open = true;
}, },
...@@ -214,13 +257,18 @@ export default { ...@@ -214,13 +257,18 @@ export default {
// 表单重置 // 表单重置
reset() { reset() {
this.form = { this.form = {
deptId: 0,
deptName: "", deptName: "",
name: "", inspect: 0,
number: "", number: "",
phone: "", phone: "",
windowCount: null,
remark: "", remark: "",
roleType: 0,
salaName: "",
staffIds: "",
staffName: "",
windowCount: 0,
staffIdList: [],
windowOwnerDetailList: [],
}; };
this.resetForm("form"); this.resetForm("form");
}, },
...@@ -233,7 +281,7 @@ export default { ...@@ -233,7 +281,7 @@ export default {
}; };
</script> </script>
<style lang="less"> <style lang="less">
.wintabel .table-body{ .wintabel .table-body {
height: 500px; height: 500px;
overflow-y: auto; overflow-y: auto;
} }
......
<template> <template>
<div class="page"> <div class="page">
<LayoutTable :data="tableData" :config="tableConfig"> </LayoutTable> <LayoutTable
:data="tableData"
:config="tableConfig"
@cell-click="handleCellClick"
>
</LayoutTable>
<drawer-show ref="drawerform" @ok="getData" /> <drawer-show ref="drawerform" @ok="getData" />
</div> </div>
...@@ -18,6 +23,12 @@ export default { ...@@ -18,6 +23,12 @@ export default {
mixins: [table], mixins: [table],
created() {}, created() {},
methods: { methods: {
handleCellClick(row, column, cell, event) {
console.log(row, cell, column);
if (column.label == "关联人数") {
this.toEdit(row);
}
},
/** 重写新增方法 */ /** 重写新增方法 */
toAdd(row) { toAdd(row) {
this.$refs.drawerform.add(row); this.$refs.drawerform.add(row);
...@@ -36,6 +47,24 @@ export default { ...@@ -36,6 +47,24 @@ export default {
config: { config: {
isshowTabPane: true, isshowTabPane: true,
search: [ search: [
{
name: "salaId",
type: "selectSalaId",
label: "大厅",
fuzzy: false,
},
{
name: "deptId",
type: "selectDeptId",
label: "部门",
fuzzy: false,
},
{
name: "roleType",
type: "select",
label: "角色",
fuzzy: false,
},
{ {
name: "staffName", name: "staffName",
type: "text", type: "text",
...@@ -47,25 +76,31 @@ export default { ...@@ -47,25 +76,31 @@ export default {
{ type: "selection", width: 60 }, { type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 }, { type: "index", label: "序号", width: 50 },
{ label: "部门名称", prop: "deptName" }, { label: "负责人姓名", prop: "staffName" },
{ label: "角色", prop: "roleType", formatter: this.formatter },
{ label: "姓名", prop: "staffName" }, { label: "所属大厅", prop: "salaName" },
{ label: "所属部门", prop: "deptName" },
{ label: "工号", prop: "number" }, { label: "联系电话", prop: "phone", formatter: this.formatter },
{ label: "电话号码", prop: "phone" },
{ {
label: "负责窗口数量", label: "关联人数",
prop: "windowCount", prop: "staffCount",
formatter: this.formatter, formatter: (row) => {
return <a>{row.staffCount}</a>;
},
}, },
{ {
label: "创建时间", label: "更新时间",
prop: "createTime", prop: "updateTime",
formatter: this.formatterDate, formatter: this.formatterDate,
}, },
{
label: "更新人员",
prop: "updateUserId",
formatter: this.formatter,
},
{ {
label: "操作", label: "操作",
width: 240, width: 240,
...@@ -88,3 +123,8 @@ export default { ...@@ -88,3 +123,8 @@ export default {
}, },
}; };
</script> </script>
<style lang="less" scoped>
a {
color: rgb(103, 116, 223);
}
</style>
<template> <template>
<LayoutTable :toggleRowSelection="toggleRowSelection" ref="LayoutTable" :data="tableData" :config="tableConfig" @selection-change="handleSelectionChange"> <div>
<div slot="table-head-left"><div>请选择窗口</div></div> <div class="search_box">
<div slot="table-head-center"></div> <SearchForm
</LayoutTable> :search="config.search"
:page="baseInfo.current_page"
@getData="onSubmit"
ref="search"
/>
</div>
<el-table
ref="multipleTable"
:data="baseInfo.data ? baseInfo.data : []"
tooltip-effect="dark"
style="width: 100%"
@select="handleSelectionChange"
@select-all="handleAllChange"
>
<el-table-column
v-for="(val, i) in config.columns"
:key="i"
:type="val.type"
:width="val.width"
:label="val.label"
:prop="val.prop"
:formatter="val.formatter"
:align="val.align ? val.align : 'center'"
>
</el-table-column>
</el-table>
<el-pagination
@current-change="handleCurrentChange"
:current-page.sync="baseInfo.current_page"
layout="total, prev, pager, next"
:total="baseInfo.total"
style="margin-top: 10px;width: 100%;text-align: end;"
>
</el-pagination>
</div>
</template> </template>
<script> <script>
import table from "@/assets/mixins/table"; import SearchForm from "@/components/SearchFormDrawer.vue";
export default { export default {
props:['hallId','checkId','editId'], components: { SearchForm },
mixins: [table], props: ["hallId", "checkId", "editId", "checkPeopleArr", "staffList"],
methods:{
handleSelectionChange(v){ methods: {
this.$emit("selection-change",v) handleSelectionChange(selecteds, row) {
}, if (!this.checkAllList.includes(row.id)) {
beforeFecth(){ // 回显数据里没有本条,把这条加进来(选中)
this.pageInfo.list = '/window/owner/subWindowList' this.checkAllList.push(row.id);
} else {
// 回显数据里有本条,把这条删除(取消选中)
this.checkAllList.forEach((id, index) => {
if (id === row.id) {
this.checkAllList = this.checkAllList.filter((v) => id !== v);
}
});
this.checkPeopleArr.forEach((id) => {
if (id == row.id) {
this.checkPeopleArr = this.checkPeopleArr.filter((v) => id !== v);
}
});
}
let arr = Array.from(new Set(this.checkAllList));
this.checkAllList = arr;
console.log(this.checkAllList);
}, },
//重写 // 全选、取消全选
afterRender(info){ handleAllChange(selecteds) {
const {data} = info selecteds = selecteds.filter((v) => (v ? v : ""));
if(this.editId){ console.log(selecteds);
// 编辑的时候回显 if (selecteds.length > 0) {
const toggleRowSelection = [] selecteds.forEach((item) => {
data.forEach(element => { if (!this.checkAllList.includes(item.id)) {
if(element.selected == 1){ this.checkAllList.push(item.id);
toggleRowSelection.push(element)
} }
}); });
setTimeout(()=>{ let arr = Array.from(new Set(this.checkAllList));
this.toggleRowSelection = toggleRowSelection this.checkAllList = arr;
}) } else {
this.baseInfo.data.forEach((item) => {
this.checkAllList.forEach((id, index) => {
if (id === item.id) {
this.checkAllList.splice(index, 1);
} }
});
});
let arr = Array.from(new Set(this.checkAllList));
this.checkAllList = arr;
this.baseInfo.data.forEach((item) => {
this.checkPeopleArr.forEach((id, index) => {
if (id === item.id) {
this.checkPeopleArr.splice(index, 1);
}
});
});
} }
}, },
created(){
this.config.search[0].enumData = this.hallId
console.log(this.editId,"editId")
handleCurrentChange(val) {
this.baseInfo.current_page = val;
this.$refs.search.onSubmit();
}, },
watch: { onSubmit(val) {
editId:{ this.baseInfo = val;
handler:function(v){ this.checkAllList = [...this.checkAllList, ...this.checkPeopleArr];
if(v){ if (this.staffList && this.staffList.length) {
this.query = {staffId:v} this.$nextTick(() => {
}else{ this.staffList
this.query = {} ? this.staffList.forEach((v) => {
this.checkAllList.forEach((val, i) => {
if (v.id == val) {
this.checkAllList[i] = v.id;
} }
this.getData() });
}, })
immediate:true : "";
this.baseInfo.data
? this.checkAllList.forEach((key) => {
this.$refs.multipleTable.toggleRowSelection(
this.baseInfo.data.find((row) => {
if (row.id == key) {
return row;
} }
}),
true
);
})
: "";
});
}
},
}, },
data(){ created() {
this.config.search[0].enumData = this.hallId;
},
mounted() {},
watch: {},
data() {
return { return {
toggleRowSelection:[], checkAllList: [],
checkList: [],
baseInfo: {},
total: 0,
currentPage: 1,
toggleRowSelection: [],
config: { config: {
downloadUrl:"", downloadUrl: "",
isshowTabPane: false, isshowTabPane: false,
search: [ search: [
{ {
name: "hallId", name: "salaId",
type: "select", type: "selectSalaId",
label: "大厅", label: "大厅",
enumData:{} fuzzy: false,
},
{
name: "deptId",
type: "selectDeptId",
label: "部门",
fuzzy: false,
}, },
{ {
name: "deptName", name: "name",
type: "text", type: "text",
label: "窗口名称", label: "工作人员姓名",
fuzzy: true, fuzzy: true,
}, },
], ],
columns: [ columns: [
{ type: "selection", width: 60 }, { type: "selection", width: 60 },
// { type: "index", label: "序号", width: 50 }, {
label: "序号",
width: 50,
formatter: (row, column, cellValue, index) => {
return index + 1;
},
},
{ label: "窗口名称", prop: "name" }, { label: "工作人员姓名", prop: "name" },
{ label: "编号", prop: "fromnum" }, { label: "工号", prop: "workNum" },
{ label: "所属楼栋", prop: "building" }, { label: "手机号码", prop: "phoneNumber" },
{ label: "所属楼层", prop: "level" }, { label: "所属大厅", prop: "salaName" },
{ label: "所属部门", prop: "deptName" },
// { // {
// label: "操作", // label: "操作",
// width: 240, // width: 100,
// formatter: (row) => { // formatter: (row) => {
// return ( // if (row.check) {
// <table-buttons // return <span style="cursor:pointer;color:#ff0000">已选中</span>;
// noAdd // } else {
// row={row} // return <span style="cursor:pointer;color:#1890ff">选择</span>;
// onEdit={this.toEdit} // }
// onView={this.toView}
// onDel={this.toDel}
// />
// );
// }, // },
// }, // },
], ],
}, },
} };
}, },
} };
</script> </script>
...@@ -108,14 +108,14 @@ export default { ...@@ -108,14 +108,14 @@ export default {
name: "ownerName", name: "ownerName",
type: "text", type: "text",
width: 200, width: 200,
label: "窗口负责人姓名搜索", label: "窗口首席代表’姓名搜索",
fuzzy: false, fuzzy: false,
}, },
], ],
columns: [ columns: [
{ type: "selection", width: 60 }, { type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 }, { type: "index", label: "序号", width: 50 },
{ label: "窗口负责人", prop: "ownerName" }, { label: "窗口首席代表", prop: "ownerName" },
{ {
label: "登记年月", label: "登记年月",
...@@ -130,7 +130,7 @@ export default { ...@@ -130,7 +130,7 @@ export default {
}, },
}, },
{ label: "所属大厅", prop: "salaName",formatter: this.formatter }, { label: "所属大厅", prop: "salaName", formatter: this.formatter },
{ {
label: "所属部门", label: "所属部门",
...@@ -152,6 +152,16 @@ export default { ...@@ -152,6 +152,16 @@ export default {
prop: "submitDate", prop: "submitDate",
formatter: this.formatterDate, formatter: this.formatterDate,
}, },
{
label: "核查人",
prop: "leaderCheckPerson",
formatter: this.formatter,
},
{
label: "最新核查时间",
prop: "leaderCheckTime",
formatter: this.formatterDate,
},
{ label: "处理状态", prop: "checkStatus", formatter: this.formatter }, { label: "处理状态", prop: "checkStatus", formatter: this.formatter },
{ {
......
...@@ -16,7 +16,8 @@ ...@@ -16,7 +16,8 @@
>导出</el-button >导出</el-button
> >
</div> </div>
<LayoutTable :data="tableData" :config="tableConfig"> </LayoutTable> <LayoutTable :data="tableData" notAdd notDel :config="tableConfig">
</LayoutTable>
</div> </div>
</template> </template>
...@@ -25,9 +26,7 @@ ...@@ -25,9 +26,7 @@
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
export default { export default {
name: "WindowWorkmanPerformDetailList", name: "WindowWorkmanPerformDetailList",
components: {
drawerShow,
},
mixins: [table], mixins: [table],
created() {}, created() {},
methods: { methods: {
...@@ -61,9 +60,9 @@ export default { ...@@ -61,9 +60,9 @@ export default {
}, },
data() { data() {
return { return {
config: {
radio1: "3", radio1: "3",
isExport: false, isExport: false,
config: {
search: [], search: [],
columns: [ columns: [
{ type: "selection", width: 60 }, { type: "selection", width: 60 },
...@@ -119,3 +118,16 @@ export default { ...@@ -119,3 +118,16 @@ export default {
}, },
}; };
</script> </script>
<style lang="less" scoped>
/deep/.el-radio-button__inner {
border: 1px solid #eee !important;
height: 28px;
line-height: 3px;
}
/deep/.el-radio-button__orig-radio:checked + .el-radio-button__inner {
background: #00b565;
border: none !important;
color: #fff !important;
line-height: 3px;
}
</style>
...@@ -106,14 +106,14 @@ export default { ...@@ -106,14 +106,14 @@ export default {
name: "ownerName", name: "ownerName",
type: "text", type: "text",
width: 200, width: 200,
label: "窗口负责人姓名搜索", label: "窗口首席代表’姓名搜索",
fuzzy: false, fuzzy: false,
}, },
], ],
columns: [ columns: [
{ type: "selection", width: 60 }, { type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 }, { type: "index", label: "序号", width: 50 },
{ label: "窗口负责人", prop: "ownerName" }, { label: "窗口首席代表", prop: "ownerName" },
{ {
label: "登记年月", label: "登记年月",
...@@ -151,9 +151,21 @@ export default { ...@@ -151,9 +151,21 @@ export default {
width: 110, width: 110,
formatter: this.formatterDate, formatter: this.formatterDate,
}, },
{
label: "核查人",
formatter: (row) => {
return `${
row.leaderCheckPerson
? row.leaderCheckPerson
: row.manageCheckPerson
? row.manageCheckPerson
: "--"
}`;
},
},
{ {
label: "最新核查时间", label: "最新核查时间",
prop: "updateTime", prop: "manageCheckTime",
width: 150, width: 150,
formatter: this.formatterDate, formatter: this.formatterDate,
}, },
......
module.exports = { module.exports = {
productionSourceMap: false, productionSourceMap: false,
lintOnSave:false, lintOnSave: false,
devServer: { devServer: {
inline: true, inline: true,
disableHostCheck: true, disableHostCheck: true,
port: 8087, port: 8087,
hot: true,//自动保存 hot: true, //自动保存
proxy: { proxy: {
'/attendance': { "/attendance": {
target: 'http://192.168.0.98:11039', target: 'http://192.168.0.98:11039',
// target: 'http://112.19.80.237:11039', // target: "http://112.19.80.237:11039",
// target: 'http://localhost:17500', // target: 'http://localhost:17500',
// target: 'http://118.122.189.109:11039', // target: "http://118.122.189.109:11039",
// target: 'http://10.102.252.13:11039', // target: 'http://10.102.252.13:11039',
changeOrigin: true, changeOrigin: true,
secure: false, secure: false,
cookieDomainRewrite: 'localhost', cookieDomainRewrite: "localhost",
}, },
'/zwfw_api_xnjc': { "/zwfw_api_xnjc": {
target: 'http://112.19.80.237:11031', target: "http://112.19.80.237:11031",
changeOrigin: true, changeOrigin: true,
secure: false, secure: false,
cookieDomainRewrite: 'localhost', cookieDomainRewrite: "localhost",
} },
} },
} },
} };
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