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

parent bfbd457c
......@@ -64,7 +64,7 @@ export default {
url = "/perform/perpose/save";
} else if (url == "/perform/rules/attend/save") {
url = "/perform/rules/category/save";
} else if ((url == "/perform/staff/conf/save")) {
} else if (url == "/perform/staff/conf/save") {
sessionStorage.getItem("type") == 1
? (url = "/perform/dept/conf/save")
: sessionStorage.getItem("type") == 2
......
......@@ -35,7 +35,7 @@
clearable="true"
@change="item.change"
@clear="item.clear"
:placeholder="item.label?item.label:'请选择'"
:placeholder="item.label ? item.label : '请选择'"
v-if="item.type === 'select'"
>
<el-option
......@@ -111,7 +111,7 @@
v-if="item.type === 'date' && !item.valueFormat"
type="date"
value-format="yyyy-MM-dd"
:placeholder="item.label?item.label:'选择日期'"
:placeholder="item.label ? item.label : '选择日期'"
>
</el-date-picker>
......@@ -120,7 +120,7 @@
v-if="item.type === 'date' && item.valueFormat"
type="date"
:value-format="item.valueFormat"
:placeholder="item.label?item.label:'选择日期'"
:placeholder="item.label ? item.label : '选择日期'"
>
</el-date-picker>
......@@ -129,7 +129,7 @@
v-if="item.type === 'month' && !item.valueFormat"
type="month"
value-format="yyyy-MM"
:placeholder="item.label?item.label:'选择月份'"
:placeholder="item.label ? item.label : '选择月份'"
>
</el-date-picker>
......@@ -138,7 +138,7 @@
v-if="item.type === 'month' && item.valueFormat"
type="month"
:value-format="item.valueFormat"
:placeholder="item.label?item.label:'选择月份'"
:placeholder="item.label ? item.label : '选择月份'"
>
</el-date-picker>
......@@ -259,7 +259,6 @@ export default {
},
cleanForm() {
this.clean();
this.onSubmit();
},
// 清空表单值
clean() {
......@@ -268,34 +267,35 @@ export default {
if (item.name === "groupList") {
newData[item.name] = [];
} else {
newData[item.name] = item.multiple ? [] : undefined;
newData[item.name] = item.multiple ? [] : "";
}
});
this.form = Object.assign({}, this.form, newData);
this.onSubmit();
},
onSubmit() {
let { path, query } = this.$route;
if(this.form.attendanceDateStart && this.form.attendanceDateEnd){
let startValue = Date.parse(this.form.attendanceDateStart)
let endValue = Date.parse(this.form.attendanceDateEnd)
if(startValue>endValue){
this.$message.error('查询-结束的日期需大于开始日期')
this.form.attendanceDateEnd = ''
return false
if (this.form.attendanceDateStart && this.form.attendanceDateEnd) {
let startValue = Date.parse(this.form.attendanceDateStart);
let endValue = Date.parse(this.form.attendanceDateEnd);
if (startValue > endValue) {
this.$message.error("查询-结束的日期需大于开始日期");
this.form.attendanceDateEnd = "";
return false;
}
}
if(this.form.startTime && this.form.endTime){
let startValue = Date.parse(this.form.startTime)
let endValue = Date.parse(this.form.endTime)
if(startValue>endValue){
this.$message.error('查询-结束的日期需大于开始日期')
this.form.endTime = ''
return false
if (this.form.startTime && this.form.endTime) {
let startValue = Date.parse(this.form.startTime);
let endValue = Date.parse(this.form.endTime);
if (startValue > endValue) {
this.$message.error("查询-结束的日期需大于开始日期");
this.form.endTime = "";
return false;
}
}
let params = JSON.parse(JSON.stringify(this.form)) //不更改原始数据
let params = JSON.parse(JSON.stringify(this.form)); //不更改原始数据
// console.log(this.form,'form参数')
let data = this.decode(params);
// Object.assign({}, query, data)
......@@ -303,9 +303,9 @@ export default {
path: path,
query: {
...query,
...data
...data,
},
})
});
},
// 解析url字符串,去除query字段
encode(data, formTemp) {
......@@ -352,17 +352,17 @@ export default {
val.length > 0
) {
//支持模糊查询,收尾增加百分号
val = val.trim()
if(val.charAt(0)!='%'){
val = "%" + val
val = val.trim();
if (val.charAt(0) != "%") {
val = "%" + val;
}
if(val.charAt(val.length-1)!='%'){
val =val + "%";
if (val.charAt(val.length - 1) != "%") {
val = val + "%";
}
}
})
});
newData[item] = this.decodeVal(val);
})
});
return newData;
},
decodeVal(val) {
......@@ -389,8 +389,8 @@ export default {
// groupList: [],
},
remoteOptions: {},
}
}
};
},
};
</script>
......@@ -424,4 +424,3 @@ export default {
}
}
</style>
<template>
<div class="page">
<div style="margin:10px 0">
<tab-pane :thirdList="thirdList" :activeName="activeName" @handleClick="handleClick"></tab-pane>
<div class="page">
<div style="margin:10px 0">
<tab-pane
:thirdList="thirdList"
:activeName="activeName"
@handleClick="handleClick"
></tab-pane>
</div>
<div class="totalNum flex">
<div class="item flex">
<div>
需要打卡人数
<span class="num">{{ tableData.attendanceStatus.needAttNum }}</span>
</div>
<div class="totalNum flex">
<div class="item flex">
<div>需要打卡人数 <span class="num">{{tableData.attendanceStatus.needAttNum}}</span></div>
<div>未出勤 <span class="num">{{tableData.attendanceStatus.noAtt}}</span></div>
<div>出勤率 <span class="num">{{tableData.attendanceStatus.attPercentage}}</span></div>
</div>
<div class="item flex">
<div>迟到 <span class="num">{{tableData.attendanceStatus.beLate}}</span></div>
<div>早退 <span class="num">{{tableData.attendanceStatus.leaveEarly}}</span></div>
<div>缺卡 <span class="num">{{tableData.attendanceStatus.lackOfCards}}</span></div>
</div>
<div>
未出勤 <span class="num">{{ tableData.attendanceStatus.noAtt }}</span>
</div>
<LayoutTable :data="tableData" :config="tableConfig" notDel notAdd>
<el-button
slot="table-head-left2"
style="margin-left: 10px"
icon="el-icon-tickets"
size="mini"
@click="handleImport"
>导入</el-button>
<el-button
slot="table-head-left2"
style="margin-left: 10px"
icon="el-icon-tickets"
size="mini"
type="primary"
@click="doExport"
:disabled="isExport"
>导出</el-button>
<el-button
slot="table-head-left2"
style="margin-left: 10px"
icon="el-icon-tickets"
size="mini"
type="success"
@click="lookexportHis"
>导出记录</el-button>
<el-button
slot="table-head-left2"
style="margin-left: 10px"
icon="el-icon-tickets"
size="mini"
@click="setdialog"
>表格设置</el-button>
</LayoutTable>
<drawer-show ref="drawerform" @ok="getData" />
<!-- 导出记录查看 -->
<el-drawer
title="导出记录"
:visible.sync="drawerhistory"
:direction="direction">
<div class="hisList">
<div class="list mt10" v-for="(item,index) in exportList" :key="index" @click="changeStatus(item)">
<div class="flex flex-align-center flex-pack-justify">
<div>每日打卡记录</div>
<el-button type="text">导出成功</el-button>
</div>
<div class="details" v-if="item.islook">
<div class="mt10" v-if="item.recordIdList">
选择列表id: {{item.recordIdList}}
</div>
<div class="mt10" v-if="item.deptName">
选择部门:{{item.deptName}}
</div>
<div class="mt10" v-if="item.groupName">
选择考勤组:{{item.groupName}}
</div>
<div class="mt10" v-if="item.className">
选择班次:{{item.className}}
</div>
<div>
出勤率
<span class="num">{{
tableData.attendanceStatus.attPercentage
}}</span>
</div>
</div>
<div class="mt10">
<el-link :href="baseUrl+item.filePath" target="_blank" type="primary">重新下载</el-link>
</div>
</div>
<div class="times">
导出时间:{{item.createTime}}
</div>
</div>
<div class="item flex">
<div>
迟到 <span class="num">{{ tableData.attendanceStatus.beLate }}</span>
</div>
<div>
早退
<span class="num">{{ tableData.attendanceStatus.leaveEarly }}</span>
</div>
<div>
缺卡
<span class="num">{{ tableData.attendanceStatus.lackOfCards }}</span>
</div>
</div>
</div>
<LayoutTable :data="tableData" :config="tableConfig" notDel notAdd>
<el-button
slot="table-head-left2"
style="margin-left: 10px"
icon="el-icon-tickets"
size="mini"
@click="handleImport"
>导入</el-button
>
<el-button
slot="table-head-left2"
style="margin-left: 10px"
icon="el-icon-tickets"
size="mini"
type="primary"
@click="doExport"
:disabled="isExport"
>导出</el-button
>
<el-button
slot="table-head-left2"
style="margin-left: 10px"
icon="el-icon-tickets"
size="mini"
type="success"
@click="lookexportHis"
>导出记录</el-button
>
<el-button
slot="table-head-left2"
style="margin-left: 10px"
icon="el-icon-tickets"
size="mini"
@click="setdialog"
>表格设置</el-button
>
</LayoutTable>
<drawer-show ref="drawerform" @ok="getData" />
<!-- 导出记录查看 -->
<el-drawer
title="导出记录"
:visible.sync="drawerhistory"
:direction="direction"
>
<div class="hisList">
<div
class="list mt10"
v-for="(item, index) in exportList"
:key="index"
@click="changeStatus(item)"
>
<div class="flex flex-align-center flex-pack-justify">
<div>每日打卡记录</div>
<el-button type="text">导出成功</el-button>
</div>
<div class="details" v-if="item.islook">
<div class="mt10" v-if="item.recordIdList">
选择列表id: {{ item.recordIdList }}
</div>
</el-drawer>
<!-- 表格设置 -->
<el-dialog :visible.sync="isdialog" title="导出表格设置">
<div class="tipsword">请选择表格展示字段,导出的表格中的内容选中的字段将保持一致。</div>
<el-checkbox-group v-model="checkList">
<el-checkbox v-for="(item,index) in setcolum" :key="index" :label="item.label">
</el-checkbox>
</el-checkbox-group>
<div class="mt20" style="text-align:right">
<el-button>取消</el-button>
<el-button type="primary">确定</el-button>
<div class="mt10" v-if="item.deptName">
选择部门:{{ item.deptName }}
</div>
</el-dialog>
<!-- 上传 -->
<el-dialog
:title="upload.title"
:visible.sync="upload.open"
width="400px"
append-to-body
>
<el-upload
ref="upload"
:limit="1"
accept=".xlsx, .xls"
:headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport"
:disabled="upload.isUploading"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
:auto-upload="false"
drag
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
将文件拖到此处,或
<em>点击上传</em>
<div class="mt10" v-if="item.groupName">
选择考勤组:{{ item.groupName }}
</div>
<div class="el-upload__tip" slot="tip">
<el-checkbox
v-model="upload.updateSupport"
/>是否更新已经存在的数据
<el-link type="primary" style="font-size: 14px" @click="downloadTemplate"
>下载模板</el-link
>
<div class="mt10" v-if="item.className">
选择班次:{{ item.className }}
</div>
<div class="el-upload__tip" style="color: red" slot="tip">
提示:仅允许导入“xls”或“xlsx”格式文件!
<div class="mt10">
<el-link
:href="baseUrl + item.filePath"
target="_blank"
type="primary"
>重新下载</el-link
>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm">确 定</el-button>
<el-button @click="upload.open = false">取 消</el-button>
</div>
<div class="times">导出时间:{{ item.createTime }}</div>
</div>
</el-dialog>
</div>
</div>
</el-drawer>
<!-- 表格设置 -->
<el-dialog :visible.sync="isdialog" title="导出表格设置">
<div class="tipsword">
请选择表格展示字段,导出的表格中的内容选中的字段将保持一致。
</div>
<el-checkbox-group v-model="checkList">
<el-checkbox
v-for="(item, index) in setcolum"
:key="index"
:label="item.label"
>
</el-checkbox>
</el-checkbox-group>
<div class="mt20" style="text-align:right">
<el-button>取消</el-button>
<el-button type="primary">确定</el-button>
</div>
</el-dialog>
<!-- 上传 -->
<el-dialog
:title="upload.title"
:visible.sync="upload.open"
width="400px"
append-to-body
>
<el-upload
ref="upload"
:limit="1"
accept=".xlsx, .xls"
:headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport"
:disabled="upload.isUploading"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
:auto-upload="false"
drag
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
将文件拖到此处,或
<em>点击上传</em>
</div>
<div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" />是否更新已经存在的数据
<el-link
type="primary"
style="font-size: 14px"
@click="downloadTemplate"
>下载模板</el-link
>
</div>
<div class="el-upload__tip" style="color: red" slot="tip">
提示:仅允许导入“xls”或“xlsx”格式文件!
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm">确 定</el-button>
<el-button @click="upload.open = false">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
import TabPane from "@/components/tabPane.vue"
import {timestampToTime} from '@/assets/utils/dateFormat'
export default {
name: "AttendanceRecordList",
components: {
drawerShow,
TabPane,
},
mixins: [table],
computed:{
thirdList(){
if(!this.$store.state.CurrentThirdArr) return []
return this.$store.state.CurrentThirdArr
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
import TabPane from "@/components/tabPane.vue";
import { timestampToTime } from "@/assets/utils/dateFormat";
export default {
name: "AttendanceRecordList",
components: {
drawerShow,
TabPane,
},
mixins: [table],
computed: {
thirdList() {
if (!this.$store.state.CurrentThirdArr) return [];
return this.$store.state.CurrentThirdArr;
},
activeName() {
return this.$store.state.ThirdPath;
},
},
created() {
this.initalArr = this.config.columns;
},
methods: {
// 表格接收数据后
afterRender(data) {
let addobjArr = [];
data.dyncColumns.map((item) => {
let obj = {
label: item.name,
prop: "",
formatter: (row) => {
if (row.attendanceRecordDetailList.length < 1) {
return "-";
} else {
return this.handleArr(
row.attendanceRecordDetailList,
item.orderNum,
item.property
);
}
},
activeName(){
return this.$store.state.ThirdPath
}
},
created() {
this.initalArr = this.config.columns
},
methods: {
// 表格接收数据后
afterRender(data){
console.log(this.tableData)
let addobjArr = []
data.dyncColumns.map(item => {
let obj = {
label:item.name,
prop:'',
formatter:(row) =>{
if(row.attendanceRecordDetailList.length<1){
return '-'
}else{
return this.handleArr(row.attendanceRecordDetailList,item.orderNum,item.property)
}
}
}
addobjArr.push(obj)
})
this.config.columns = [...this.initalArr,...addobjArr]
this.$forceUpdate()
},
// 表格接收数据前
beforeRender(data){
return data
},
// 处理
handleArr(arr,currentorderNum,property){
let index = arr.findIndex(item => item.orderNum === currentorderNum)
if(index > -1){
if(!arr[index][property]){
return '-'
}else if (property === 'goWorkDate' ||property ==="offWorkDate"){
// 打卡时间
return timestampToTime(arr[index][property],6)
}else if(property === 'goWorkResult' || property==="offWorkResult"){
let val = arr[index][property]
return this.tableData.dict.goWorkResult[val]
}
}else{
return '-'
}
},
};
});
this.config.columns = [...this.initalArr, ...addobjArr];
this.$forceUpdate();
},
// 表格接收数据前
beforeRender(data) {
return data;
},
// 处理
handleArr(arr, currentorderNum, property) {
let index = arr.findIndex((item) => item.orderNum === currentorderNum);
if (index > -1) {
if (!arr[index][property]) {
return "-";
} else if (property === "goWorkDate" || property === "offWorkDate") {
// 打卡时间
return timestampToTime(arr[index][property], 6);
} else if (
property === "goWorkResult" ||
property === "offWorkResult"
) {
let val = arr[index][property];
return this.tableData.dict.goWorkResult[val];
}
} else {
return "-";
}
},
changeStatus(item){
this.$set(
item,
'islook',
!item.islook
)
},
// 导出记录
lookexportHis(){
this.$post('/attendance/export/record/list',{type:2,page:1,size:-1}).then(res => {
if(res.code == 1){
let arr = res.data.data
this.exportList = arr.map(item => {
item.createTime = timestampToTime(item.createTime,6)
item.islook = false
return item
})
}
})
// 导出记录
this.drawerhistory = true
},
/** 导入 */
handleImport() {
this.upload.title = "打卡记录导入";
this.upload.open = true;
},
/** 下载模板操作 */
downloadTemplate() {
this.isExport = true;
this.$download("/attendance/record/downloadTemplate", {}, { type: "excel" })
.then(() => (this.isExport = false))
.catch((error) => {
this.isExport = false;
this.$message.error(error.message);
})
},
/** 文件上传中处理 */
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
/** 文件上传成功处理 */
handleFileSuccess(response, file, fileList) {
this.upload.open = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
this.getData();
},
/** 提交上传文件 */
submitFileForm() {
this.$refs.upload.submit();
},
/** 导出Excel */
doExport() {
this.isExport = true;
let params = {}
for(let value of this.config.search){
if(this.query[value.name]){
params[value.name] = this.query[value.name]
}
}
if(this.selection.length>0){
params['idList'] = this.selection
}
changeStatus(item) {
this.$set(item, "islook", !item.islook);
},
// 导出记录
lookexportHis() {
this.$post("/attendance/export/record/list", {
type: 2,
page: 1,
size: -1,
}).then((res) => {
if (res.code == 1) {
let arr = res.data.data;
this.exportList = arr.map((item) => {
item.createTime = timestampToTime(item.createTime, 6);
item.islook = false;
return item;
});
}
});
// 导出记录
this.drawerhistory = true;
},
/** 导入 */
handleImport() {
this.upload.title = "打卡记录导入";
this.upload.open = true;
},
/** 下载模板操作 */
downloadTemplate() {
this.isExport = true;
this.$download(
"/attendance/record/downloadTemplate",
{},
{ type: "excel" }
)
.then(() => (this.isExport = false))
.catch((error) => {
this.isExport = false;
this.$message.error(error.message);
});
},
/** 文件上传中处理 */
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
/** 文件上传成功处理 */
handleFileSuccess(response, file, fileList) {
this.upload.open = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
this.getData();
},
/** 提交上传文件 */
submitFileForm() {
this.$refs.upload.submit();
},
/** 导出Excel */
doExport() {
this.isExport = true;
let params = {};
for (let value of this.config.search) {
if (this.query[value.name]) {
params[value.name] = this.query[value.name];
}
}
if (this.selection.length > 0) {
params["idList"] = this.selection;
}
this.$download("/attendance/record/exportExcel", {
...params
}, { type: "excel" }).then(() => this.isExport = false).catch(error => {
this.isExport = false;
this.$message.error(error.message);
})
},
setdialog(){
this.isdialog = true
this.setcolum = this.config.columns.filter(item => item.label&&item.prop)
},
renderTable(tableData) {
return (
<el-table stripe data={tableData} class="total-table">
{this.columnSet.map((item) => this.renderTableColumn(item))}
</el-table>
);
},
renderTableColumn(options) {
return (
<el-table-column
prop={options.prop}
label={options.label}
width={options.width}
>
</el-table-column>
);
},
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
handleClick(key){
console.log(key)
this.$store.commit('setThirdPath',key)
this.$router.push({
path:key
})
}
this.$download(
"/attendance/record/exportExcel",
{
...params,
},
data() {
return {
upload: {
// 是否显示弹出层(员工关怀信息导入)
open: false,
// 弹出层标题(员工关怀信息导入)
title: "每日打卡记录",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的数据
updateSupport: 0,
// 上传的地址
url: "/attendance/record/importData",
},
/** 子表列元素 */
columnSet:[
{prop:"recordId",label:"考勤记录ID",width:100},
{prop:"shiftsId",label:"班次ID",width:100},
{prop:"shiftsName",label:"班次名称",width:100},
{prop:"goWorkDate",label:"上班打卡时间",width:100},
{prop:"goWorkResult",label:"上班打卡结果",width:100},
{prop:"offWorkDate",label:"下班打卡时间",width:100},
{prop:"offWorkResult",label:"下班打卡结果",width:100},
{prop:"remark",label:"备注",width:100},
],
config: {
search: [
{
name: "staffName",
type: "text",
label: "员工姓名",
fuzzy: false
},
{
name: "phone",
type: "text",
label: "手机号",
fuzzy: false
},
{
name: "deptId",
type: "select",
label: "所属部门",
fuzzy: false
},
{
name: "groupId",
type: "select",
label: "所属考勤组",
fuzzy: false
},
{
name: "classId",
type: "select",
label: "班次",
fuzzy: false
},
{
name:'attendanceDateStart',
type: "date",
label: "考勤开始时间",
fuzzy: false
},
{
name:'attendanceDateEnd',
type: "date",
label: "考勤结束时间",
fuzzy: false
}
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "打卡日期", prop: "attendanceDate", formatter: this.formatterDate},
{label: "员工姓名", prop: "staffName"},
{label: "考勤组", prop: "attendanceGroupName",formatter:this.formatters},
{label: "部门", prop: "deptName",formatter:this.formatters},
{label: "职位", prop: "positionName",formatter:this.formatters},
{label: "班次", prop: "shiftsName",formatter:this.formatters},
// {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.attendanceRecordDetailList)}
// <el-button type="text" slot="reference">详细</el-button>
// </el-popover>
// );
// },
// },
// {
// label: "操作",
// width: 240,
// formatter: row => {
// return (
// <table-buttons noAdd noEdit noView noDel
// row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
// );
// }
// }
]
},
drawerhistory:false,
isdialog:false,
setcolum:[],
checkList:[],
exportList:[],//导出记录
baseUrl:process.env.VUE_APP_API_BASE_URL+'/',
initalArr:[]
}
}
{ type: "excel" }
)
.then(() => (this.isExport = false))
.catch((error) => {
this.isExport = false;
this.$message.error(error.message);
});
},
setdialog() {
this.isdialog = true;
this.setcolum = this.config.columns.filter(
(item) => item.label && item.prop
);
},
renderTable(tableData) {
return (
<el-table stripe data={tableData} class="total-table">
{this.columnSet.map((item) => this.renderTableColumn(item))}
</el-table>
);
},
renderTableColumn(options) {
return (
<el-table-column
prop={options.prop}
label={options.label}
width={options.width}
></el-table-column>
);
},
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
handleClick(key) {
console.log(key);
this.$store.commit("setThirdPath", key);
this.$router.push({
path: key,
});
},
},
data() {
return {
upload: {
// 是否显示弹出层(员工关怀信息导入)
open: false,
// 弹出层标题(员工关怀信息导入)
title: "每日打卡记录",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的数据
updateSupport: 0,
// 上传的地址
url: "/attendance/record/importData",
},
/** 子表列元素 */
columnSet: [
{ prop: "recordId", label: "考勤记录ID", width: 100 },
{ prop: "shiftsId", label: "班次ID", width: 100 },
{ prop: "shiftsName", label: "班次名称", width: 100 },
{ prop: "goWorkDate", label: "上班打卡时间", width: 100 },
{ prop: "goWorkResult", label: "上班打卡结果", width: 100 },
{ prop: "offWorkDate", label: "下班打卡时间", width: 100 },
{ prop: "offWorkResult", label: "下班打卡结果", width: 100 },
{ prop: "remark", label: "备注", width: 100 },
],
config: {
search: [
{
name: "staffName",
type: "text",
label: "员工姓名",
fuzzy: false,
},
{
name: "phone",
type: "text",
label: "手机号",
fuzzy: false,
},
{
name: "deptId",
type: "select",
label: "所属部门",
fuzzy: false,
},
{
name: "groupId",
type: "select",
label: "所属考勤组",
fuzzy: false,
},
{
name: "classId",
type: "select",
label: "班次",
fuzzy: false,
},
{
name: "attendanceDateStart",
type: "date",
label: "考勤开始时间",
fuzzy: false,
},
{
name: "attendanceDateEnd",
type: "date",
label: "考勤结束时间",
fuzzy: false,
},
],
columns: [
{ type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 },
{
label: "打卡日期",
prop: "attendanceDate",
formatter: this.formatterDate,
},
{ label: "员工姓名", prop: "staffName" },
{
label: "考勤组",
prop: "attendanceGroupName",
formatter: this.formatters,
},
{ label: "部门", prop: "deptName", formatter: this.formatters },
{ label: "职位", prop: "positionName", formatter: this.formatters },
{ label: "班次", prop: "shiftsName", formatter: this.formatters },
// {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.attendanceRecordDetailList)}
// <el-button type="text" slot="reference">详细</el-button>
// </el-popover>
// );
// },
// },
// {
// label: "操作",
// width: 240,
// formatter: row => {
// return (
// <table-buttons noAdd noEdit noView noDel
// row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
// );
// }
// }
],
},
drawerhistory: false,
isdialog: false,
setcolum: [],
checkList: [],
exportList: [], //导出记录
baseUrl: process.env.VUE_APP_API_BASE_URL + "/",
initalArr: [],
};
},
};
</script>
<style scoped lang="less">
.totalNum{
background: rgba(64, 158, 255,0.2);
.totalNum {
background: rgba(64, 158, 255, 0.2);
padding: 15px;
border-left: 4px solid rgb(20, 134, 248);
color: rgb(100, 100, 100);
.item{
.item {
padding: 0 10px;
border-right: 1px solid gray;
}
.item:last-child{
.item:last-child {
border: none;
}
.num{
color: #409EFF;
.num {
color: #409eff;
margin-left: 10px;
margin-right: 20px;
}
}
.hisList{
padding: 15px;
.list{
background-color: rgba(64, 158, 255, 0.1);
font-size: 14px;
border-radius: 10px;
padding: 10px;
.times{
font-size: 12px;
color: #999;
}
.hisList {
padding: 15px;
.list {
background-color: rgba(64, 158, 255, 0.1);
font-size: 14px;
border-radius: 10px;
padding: 10px;
.times {
font-size: 12px;
color: #999;
}
}
}
.tipsword{
margin: 20px 0;
color: #999;
.tipsword {
margin: 20px 0;
color: #999;
}
</style>
\ No newline at end of file
</style>
......@@ -12,58 +12,60 @@
<div class="content">
<el-row>
<el-col :span="12"
>员工:{{ obj.staffName ? obj.staffName : "--" }}</el-col
>员工:{{ form.staffName ? form.staffName : "--" }}</el-col
>
<el-col :span="12"
>所属部门:{{ obj.deptName ? obj.deptName : "--" }}</el-col
>所属部门:{{ form.deptName ? form.deptName : "--" }}</el-col
>
</el-row>
<el-row>
<el-col :span="12"
>窗口编号:{{ obj.windowNum ? obj.windowNum : "--" }}</el-col
>窗口编号:{{ form.windowNum ? form.windowNum : "--" }}</el-col
>
<el-col :span="12"
>考勤组:{{
obj.attendanceGroupName ? obj.attendanceGroupName : "--"
form.attendanceGroupName ? form.attendanceGroupName : "--"
}}</el-col
>
</el-row>
<el-row>
<el-col :span="12"
>实际打卡时间:{{
obj.actualAttendTime ? obj.actualAttendTime : "--"
form.actualAttendTime ? form.actualAttendTime : "--"
}}</el-col
>
<el-col :span="12"
>上下班时间:{{
obj.goOffTimeStr ? obj.goOffTimeStr : "--"
form.goOffTimeStr ? form.goOffTimeStr : "--"
}}</el-col
>
</el-row>
<el-row>
<el-col :span="12"
>异常时间:{{ obj.errorTime ? obj.errorTime : "--" }}</el-col
>异常时间:{{ form.errorTime ? form.errorTime : "--" }}</el-col
>
<el-col :span="12"
>异常结果:{{ obj.errorTime ? obj.errorTime : "--" }}</el-col
>异常结果:{{ form.errorTime ? form.errorTime : "--" }}</el-col
>
</el-row>
<el-row>
<el-col :span="12"
>扣分方式:{{ obj.subMethod ? obj.subMethod : "--" }}</el-col
>扣分方式:{{ form.subMethod ? form.subMethod : "--" }}</el-col
>
<el-col :span="12"
>扣分时间:{{ obj.deductTime ? obj.deductTime : "--" }}</el-col
>扣分时间:{{ form.deductTime ? form.deductTime : "--" }}</el-col
>
</el-row>
<el-row>
<el-col :span="12"
>扣分人员:{{
obj.deductPerson ? obj.deductPerson : "--"
form.deductPerson ? form.deductPerson : "--"
}}</el-col
>
<el-col :span="12"
>图片凭证:{{ obj.snapPath ? obj.snapPath : "--" }}</el-col
>图片凭证:{{
form.filePaths ? picMatter(form.filePaths) : "--"
}}</el-col
>
</el-row>
</div>
......@@ -74,56 +76,78 @@
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<el-form-item label="核查结果:">
<p v-if="obj.view == '查看'">{{ obj.checkResult }}</p>
<el-radio-group v-model="form.checkResult" v-else>
<el-radio :label="1">扣分</el-radio>
<el-radio :label="2">不扣分</el-radio>
<p v-if="form.view == '查看'">
{{
form.checkResult == 1
? "加分/扣分"
: form.checkResult == 2
? "不加分/不扣分"
: "--"
}}
</p>
<el-radio-group
v-model="form.checkResult"
@input="radioChange"
v-else
>
<el-radio :label="1">加分/扣分</el-radio>
<el-radio :label="2">不加分/不扣分</el-radio>
</el-radio-group>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="修改规则:">
<p v-if="obj.view == '查看'">{{ obj.ruleName }}</p>
<div v-else>
<el-col :span="22">
<el-select
v-model="form.attendanceGroupId"
style="width: 100%;"
>
<el-option
v-for="item in kaoqinArr"
:key="item.value"
:label="item.label"
:value="item.value"
<div v-if="form.checkResult == 1">
<el-row>
<el-form-item
:label="form.view == '查看' ? '绩效规则:' : '修改规则:'"
>
<p v-if="form.view == '查看'">{{ form.ruleName }}</p>
<div v-else>
<el-col :span="22">
<el-select
v-model="form.categoryId"
style="width: 100%;"
@change="cateChange"
>
</el-option
></el-select>
</el-col>
<el-col :span="22">
<el-select
v-model="form.attendanceGroupId"
style="width: 100%;margin-top: 10px;"
>
<el-option
v-for="item in kaoqinArr"
:key="item.value"
:label="item.label"
:value="item.value"
<el-option
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.ruleId"
style="width: 100%;margin-top: 10px;"
@change="ruleChange"
>
</el-option></el-select
></el-col>
</div>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="扣除分值:">
<p v-if="obj.view == '查看'">{{ obj.score }}</p>
<p v-else>{{ form.score }}</p>
</el-form-item>
</el-row>
<el-option
v-for="item in kaoqinArr"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option></el-select
></el-col>
</div>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="加分/扣除分值:">
<p v-if="form.view == '查看'">
{{ form.score ? form.score : "--" }}
</p>
<p v-else>{{ form.score }}</p>
</el-form-item>
</el-row>
</div>
<el-row>
<el-form-item label="说明:">
<p v-if="obj.view == '查看'">{{ obj.checkDesc }}</p>
<p v-if="form.view == '查看'">
{{ form.checkDesc ? form.checkDesc : "--" }}
</p>
<el-input
v-else
v-model="form.checkDesc"
......@@ -131,18 +155,18 @@
></el-input>
</el-form-item>
</el-row>
<el-row v-if="obj.view == '查看'">
<el-row v-if="form.view == '查看'">
<el-form-item label="核查人员:">
<p>{{ obj.checkPerson }}</p>
<p>{{ form.checkPerson ? form.checkPerson : "--" }}</p>
</el-form-item>
</el-row>
<el-row v-if="obj.view == '查看'">
<el-row v-if="form.view == '查看'">
<el-form-item label="核查时间:">
<p>{{ obj.checkTime }}</p>
<p>{{ form.checkTime ? form.checkTime : "--" }}</p>
</el-form-item>
</el-row>
<form-buttons
v-show="obj.view == '核查'"
v-show="form.view == '核查'"
@submit="submitForm"
v-if="pageInfo.type != 'view'"
noCancelBtn
......@@ -303,12 +327,23 @@
<script>
import form from "@/assets/mixins/formdialog";
import { timestampToTime } from "@/assets/utils/dateFormat.js";
export default {
name: "CheckAttendRecordDetail",
mixins: [form],
components: {},
created() {
this.changePath("check/attend/record");
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 {
......@@ -329,19 +364,81 @@ export default {
],
createTime: [{ required: true, message: "请选择创建时间" }],
},
obj: {},
form: {},
kaoqinCateArr: [],
kaoqinArr: [],
baseUrl: process.env.VUE_APP_API_BASE_URL + "/",
};
},
computed: {},
methods: {
radioChange(val) {
console.log(val);
this.form.checkResult = val;
this.$forceUpdate(this.form);
},
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) {
console.log(val);
let arr = this.kaoqinArr.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.kaoqinArr = res.data.data;
this.form.ruleId = "";
});
},
/** 编辑 */
edit(row) {
console.log(this.form);
this.obj = row;
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "check/attend/record/edit";
this.getData();
// this.urls.currUrl = "check/attend/record/edit";
// this.getData();
this.$get("/check/attend/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))
: "";
}
this.form.checkResult = 1;
this.form.view = "核查";
this.open = true;
});
this.pageInfo.type = "edit";
row.view == "核查"
? (this.title = "考勤绩效记录核查")
......@@ -357,11 +454,35 @@ export default {
},
/** 查看*/
view(row) {
this.obj = row;
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "check/attend/record/view";
this.getData();
// this.urls.currUrl = "check/attend/record/view";
// this.getData();
this.$get("/check/attend/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))
: "";
}
this.form.view = "查看";
console.log(this.form);
this.open = true;
});
this.pageInfo.type = "view";
this.title = "考勤绩效记录核查信息详细";
},
......
......@@ -112,7 +112,8 @@ export default {
this.$download(
"/check/attend/record/exportExcel",
{
idList: this.selection,
page: 1,
size: -1,
},
{ type: "excel" }
)
......@@ -157,7 +158,7 @@ export default {
isshowTabPane: true,
search: [
{
name: "status",
name: "checkStatus",
type: "select",
label: "全部状态",
fuzzy: false,
......@@ -177,7 +178,7 @@ export default {
{
name: "staffName",
type: "text",
label: "请输入员工姓名搜索",
label: "员工姓名搜索",
fuzzy: false,
},
],
......@@ -209,9 +210,13 @@ export default {
{ label: "异常结果", prop: "errorResult" },
{ label: "图片凭证", prop: "snapPath" },
{
label: "图片凭证",
prop: "filePaths",
formatter: this.formatterPic,
},
{ label: "绩效规则", prop: "ruleNme" },
{ label: "绩效规则", prop: "ruleName" },
{ label: "扣分方式", prop: "subMethod", formatter: this.formatter },
......@@ -227,7 +232,7 @@ export default {
{
label: "处理状态",
prop: "processStatus",
prop: "checkStatus",
formatter: this.formatter,
},
......@@ -235,12 +240,23 @@ export default {
label: "操作",
width: 200,
formatter: (row) => {
return (
return row.checkStatus == 1 ? (
<table-buttons
noAdd
noDel
noEdit
reCheck
noView
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
) : (
<table-buttons
noAdd
noDel
noEdit
row={row}
onEdit={this.toEdit}
onView={this.toView}
......
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="记录ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.recordId}}
</el-descriptions-item>
<el-descriptions-item label="员工ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.staffId}}
</el-descriptions-item>
<el-descriptions-item label="员工姓名" label-class-name="labelClass" content-class-name="contentClass">
{{form.staffName}}
</el-descriptions-item>
<el-descriptions-item label="工号" label-class-name="labelClass" content-class-name="contentClass">
{{form.workNum}}
</el-descriptions-item>
<el-descriptions-item label="所属部门" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptId}}
</el-descriptions-item>
<el-descriptions-item label="所属部门名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptName}}
</el-descriptions-item>
<el-descriptions-item label="所属考勤组ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.attendanceGroupId}}
</el-descriptions-item>
<el-descriptions-item label="所属考勤组名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.attendanceGroupName}}
</el-descriptions-item>
<el-descriptions-item label="考勤时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.attendanceDate)}}
</el-descriptions-item>
<el-descriptions-item label="绩效规则id" label-class-name="labelClass" content-class-name="contentClass">
{{form.ruleId}}
</el-descriptions-item>
<el-descriptions-item label="规则名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.ruleName}}
</el-descriptions-item>
<el-descriptions-item label="增减类型" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("subAddType", form.subAddType) }}
</el-descriptions-item>
<el-descriptions-item label="扣分或增加分值" label-class-name="labelClass" content-class-name="contentClass">
{{form.score}}
</el-descriptions-item>
<el-descriptions-item label="上下班时间" label-class-name="labelClass" content-class-name="contentClass">
{{form.goOffTimeStr}}
</el-descriptions-item>
<el-descriptions-item label="异常时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.errorTime)}}
</el-descriptions-item>
<el-descriptions-item label="实际打卡时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.actualAttendTime)}}
</el-descriptions-item>
<el-descriptions-item label="异常处理结果" label-class-name="labelClass" content-class-name="contentClass">
{{form.errorResult}}
</el-descriptions-item>
<el-descriptions-item label="核查人员" label-class-name="labelClass" content-class-name="contentClass">
{{form.checkPerson}}
</el-descriptions-item>
<el-descriptions-item label="核查时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.checkTime)}}
</el-descriptions-item>
<el-descriptions-item label="核查说明" label-class-name="labelClass" content-class-name="contentClass">
{{form.checkDesc}}
</el-descriptions-item>
<el-descriptions-item label="核查结果" label-class-name="labelClass" content-class-name="contentClass">
{{form.checkResult}}
</el-descriptions-item>
<el-descriptions-item label="处理状态" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("checkStatus", form.checkStatus) }}
</el-descriptions-item>
</el-descriptions>
</layout-view>
<layout-view>
<el-descriptions
:title="title"
:column="column"
:size="size"
:colon="false"
border
>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small"
>返回</el-button
>
</template>
<el-descriptions-item
label="记录ID"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.recordId }}
</el-descriptions-item>
<el-descriptions-item
label="员工ID"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.staffId }}
</el-descriptions-item>
<el-descriptions-item
label="员工姓名"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.staffName }}
</el-descriptions-item>
<el-descriptions-item
label="工号"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.workNum }}
</el-descriptions-item>
<el-descriptions-item
label="所属部门"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.deptId }}
</el-descriptions-item>
<el-descriptions-item
label="所属部门名称"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.deptName }}
</el-descriptions-item>
<el-descriptions-item
label="所属考勤组ID"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.attendanceGroupId }}
</el-descriptions-item>
<el-descriptions-item
label="所属考勤组名称"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.attendanceGroupName }}
</el-descriptions-item>
<el-descriptions-item
label="考勤时间"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ util_formatterDate(form.attendanceDate) }}
</el-descriptions-item>
<el-descriptions-item
label="绩效规则id"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.ruleId }}
</el-descriptions-item>
<el-descriptions-item
label="规则名称"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.ruleName }}
</el-descriptions-item>
<el-descriptions-item
label="增减类型"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ util_formatters("subAddType", form.subAddType) }}
</el-descriptions-item>
<el-descriptions-item
label="扣分或增加分值"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.score }}
</el-descriptions-item>
<el-descriptions-item
label="上下班时间"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.goOffTimeStr }}
</el-descriptions-item>
<el-descriptions-item
label="异常时间"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ util_formatterDate(form.errorTime) }}
</el-descriptions-item>
<el-descriptions-item
label="实际打卡时间"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ util_formatterDate(form.actualAttendTime) }}
</el-descriptions-item>
<el-descriptions-item
label="异常处理结果"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.errorResult }}
</el-descriptions-item>
<el-descriptions-item
label="核查人员"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.checkPerson }}
</el-descriptions-item>
<el-descriptions-item
label="核查时间"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ util_formatterDate(form.checkTime) }}
</el-descriptions-item>
<el-descriptions-item
label="核查说明"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.checkDesc }}
</el-descriptions-item>
<el-descriptions-item
label="核查结果"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.checkResult }}
</el-descriptions-item>
<el-descriptions-item
label="处理状态"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ util_formatters("checkStatus", form.checkStatus) }}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
"subAddType",
"checkStatus",
],
toArrays: [
],
toDate: [
]
}
}
}
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {},
methods: {},
data() {
return {
size: "small",
column: 2,
toString: ["subAddType", "checkStatus"],
toArrays: [],
toDate: [],
};
},
};
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
.labelClass {
width: 200px;
}
.el-descriptions__body {
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #fff;
}
.contentClass {
width: 600px;
}
</style>
......@@ -12,74 +12,76 @@
<div class="content">
<el-row>
<el-col :span="12"
>员工:{{ obj.staffName ? obj.staffName : "--" }}</el-col
>员工:{{ form.staffName ? form.staffName : "--" }}</el-col
>
<el-col :span="12"
>所属部门:{{ obj.deptName ? obj.deptName : "--" }}</el-col
>所属部门:{{ form.deptName ? form.deptName : "--" }}</el-col
>
</el-row>
<el-row>
<el-col :span="12"
>窗口编号:{{ obj.windowNum ? obj.windowNum : "--" }}</el-col
>窗口编号:{{ form.windowNum ? form.windowNum : "--" }}</el-col
>
<el-col :span="12"
>投诉来源:{{
obj.complainSource ? obj.complainSource : "--"
form.complainSource ? form.complainSource : "--"
}}</el-col
>
</el-row>
<el-row>
<el-col :span="12"
>投诉设备:{{
obj.complainDevice ? obj.complainDevice : "--"
form.complainDevice ? form.complainDevice : "--"
}}</el-col
>
<el-col :span="12"
>投诉时间:{{
obj.complainTime ? obj.complainTime : "--"
form.complainTime ? form.complainTime : "--"
}}</el-col
>
</el-row>
<el-row>
<el-col :span="12"
>投诉标题:{{
obj.complainTitle ? obj.complainTitle : "--"
form.complainTitle ? form.complainTitle : "--"
}}</el-col
>
</el-row>
<el-row>
<el-col :span="24"
>投诉内容:{{
obj.complainContent ? obj.complainContent : "--"
form.complainContent ? form.complainContent : "--"
}}</el-col
>
</el-row>
<el-row>
<el-col :span="12"
>真实姓名:{{
obj.complainRealName ? obj.complainRealName : "--"
form.complainRealName ? form.complainRealName : "--"
}}</el-col
>
<el-col :span="12"
>联系电话:{{ obj.contact ? obj.contact : "--" }}</el-col
>联系电话:{{ form.contact ? form.contact : "--" }}</el-col
>
</el-row>
<el-row>
<el-col :span="12"
>扣分方式:{{ obj.subMethod ? obj.subMethod : "--" }}</el-col
>扣分方式:{{ form.subMethod ? form.subMethod : "--" }}</el-col
>
<el-col :span="12"
>扣分人员:{{
obj.deductPerson ? obj.deductPerson : "--"
form.deductPerson ? form.deductPerson : "--"
}}</el-col
>
</el-row>
<el-row>
<el-col :span="12"
>扣分时间:{{ obj.deductTime ? obj.deductTime : "--" }}</el-col
>扣分时间:{{ form.deductTime ? form.deductTime : "--" }}</el-col
>
<el-col :span="12"
>图片凭证:{{ obj.snapPath ? obj.snapPath : "--" }}</el-col
>图片凭证:{{
form.filePaths ? picMatter(form.filePaths) : "--"
}}</el-col
>
</el-row>
</div>
......@@ -90,56 +92,76 @@
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<el-form-item label="核查结果:">
<p v-if="obj.view == '查看'">{{ obj.checkResult }}</p>
<el-radio-group v-model="form.checkResult" v-else>
<el-radio :label="1">扣分</el-radio>
<el-radio :label="2">不扣分</el-radio>
<p v-if="form.view == '查看'">
{{
form.checkResult == 1
? "加分/扣分"
: form.checkResult == 2
? "不加分/不扣分"
: "--"
}}
</p>
<el-radio-group
v-model="form.checkResult"
@input="radioChange"
v-else
>
<el-radio :label="1">加分/扣分</el-radio>
<el-radio :label="2">不加分/不扣分</el-radio>
</el-radio-group>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="修改规则:">
<p v-if="obj.view == '查看'">{{ obj.ruleName }}</p>
<div v-else>
<el-col :span="22">
<el-select
v-model="form.attendanceGroupId"
style="width: 100%;"
>
<el-option
v-for="item in kaoqinArr"
:key="item.value"
:label="item.label"
:value="item.value"
<div v-if="form.checkResult == 1">
<el-row>
<el-form-item
:label="form.view == '查看' ? '绩效规则:' : '修改规则:'"
>
<p v-if="form.view == '查看'">{{ form.ruleName }}</p>
<div v-else>
<el-col :span="22">
<el-select
v-model="form.categoryId"
style="width: 100%;"
@change="cateChange"
>
</el-option
></el-select>
</el-col>
<el-col :span="22">
<el-select
v-model="form.attendanceGroupId"
style="width: 100%;margin-top: 10px;"
>
<el-option
v-for="item in kaoqinArr"
:key="item.value"
:label="item.label"
:value="item.value"
<el-option
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.ruleId"
style="width: 100%;margin-top: 10px;"
@change="ruleChange"
>
</el-option></el-select
></el-col>
</div>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="扣除分值:">
<p v-if="obj.view == '查看'">{{ obj.score }}</p>
<p v-else>{{ form.score }}</p>
</el-form-item>
</el-row>
<el-option
v-for="item in kaoqinArr"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option></el-select
></el-col>
</div>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="加分/扣除分值:">
<p v-if="form.view == '查看'">
{{ form.score ? form.score : "--" }}
</p>
<p v-else>{{ form.score }}</p>
</el-form-item>
</el-row>
</div>
<el-row>
<el-form-item label="说明:">
<p v-if="obj.view == '查看'">{{ obj.checkDesc }}</p>
<p v-if="form.view == '查看'">{{ form.checkDesc }}</p>
<el-input
v-else
v-model="form.checkDesc"
......@@ -147,18 +169,18 @@
></el-input>
</el-form-item>
</el-row>
<el-row v-if="obj.view == '查看'">
<el-row v-if="form.view == '查看'">
<el-form-item label="核查人员:">
<p>{{ obj.checkPerson }}</p>
<p>{{ form.checkPerson ? form.checkPerson : "--" }}</p>
</el-form-item>
</el-row>
<el-row v-if="obj.view == '查看'">
<el-row v-if="form.view == '查看'">
<el-form-item label="核查时间:">
<p>{{ obj.checkTime }}</p>
<p>{{ form.checkTime ? form.checkTime : "--" }}</p>
</el-form-item>
</el-row>
<form-buttons
v-show="obj.view == '核查'"
v-show="form.view == '核查'"
@submit="submitForm"
v-if="pageInfo.type != 'view'"
noCancelBtn
......@@ -341,12 +363,23 @@
<script>
import form from "@/assets/mixins/formdialog";
import { timestampToTime } from "@/assets/utils/dateFormat.js";
export default {
name: "CheckComplainRecordDetail",
mixins: [form],
components: {},
created() {
this.changePath("check/complain/record");
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 {
......@@ -367,18 +400,79 @@ export default {
],
createTime: [{ required: true, message: "请选择创建时间" }],
},
obj: {},
form: {},
kaoqinCateArr: [],
kaoqinArr: [],
baseUrl: process.env.VUE_APP_API_BASE_URL + "/",
};
},
methods: {
radioChange(val) {
this.form.checkResult = val;
this.$forceUpdate(this.form);
},
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.kaoqinArr.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.kaoqinArr = res.data.data;
this.form.ruleId = "";
});
},
/** 编辑 */
edit(row) {
this.obj = row;
this.form = row;
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "check/complain/record/edit";
this.getData();
// this.urls.currUrl = "check/complain/record/edit";
// this.getData();
this.$get("/check/complain/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))
: "";
}
this.form.checkResult = 1;
this.form.view = "核查";
this.open = true;
});
this.pageInfo.type = "edit";
row.view == "核查"
? (this.title = "评价绩效投诉核查")
......@@ -394,11 +488,36 @@ export default {
},
/** 查看*/
view(row) {
this.obj = row;
this.form = row;
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "check/complain/record/view";
this.getData();
// this.urls.currUrl = "check/complain/record/view";
// this.getData();
this.$get("/check/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))
: "";
}
this.form.view = "查看";
console.log(this.form);
this.open = true;
});
this.pageInfo.type = "view";
this.title = "评价绩效投诉核查信息详细";
},
......
......@@ -112,7 +112,8 @@ export default {
this.$download(
"/check/complain/record/exportExcel",
{
idList: this.selection,
page: 1,
size: -1,
},
{ type: "excel" }
)
......@@ -158,7 +159,7 @@ export default {
isshowTabPane: true,
search: [
{
name: "status",
name: "checkStatus",
type: "select",
label: "全部状态",
fuzzy: false,
......@@ -170,7 +171,7 @@ export default {
fuzzy: false,
},
{
name: "source",
name: "complainSource",
type: "select",
label: "全部来源",
fuzzy: false,
......@@ -214,7 +215,11 @@ export default {
{ label: "投诉来源", prop: "complainSource" },
{ label: "图片凭证", prop: "snapPath" },
{
label: "图片凭证",
prop: "filePaths",
formatter: this.formatterPic,
},
{ label: "投诉设备", prop: "complainDevice" },
......@@ -234,7 +239,7 @@ export default {
{
label: "处理状态",
prop: "processStatus",
prop: "checkStatus",
formatter: this.formatter,
},
......@@ -242,11 +247,22 @@ export default {
label: "操作",
width: 200,
formatter: (row) => {
return (
return row.checkStatus == 1 ? (
<table-buttons
noAdd
noDel
noEdit
reCheck
noView
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
) : (
<table-buttons
noAdd
noDel
noEdit
row={row}
onEdit={this.toEdit}
......
......@@ -12,51 +12,55 @@
<div class="content">
<el-row>
<el-col :span="12"
>员工:{{ obj.staffName ? obj.staffName : "--" }}</el-col
>员工:{{ form.staffName ? form.staffName : "--" }}</el-col
>
<el-col :span="12"
>所属部门:{{ obj.deptName ? obj.deptName : "--" }}</el-col
>所属部门:{{ form.deptName ? form.deptName : "--" }}</el-col
>
</el-row>
<el-row>
<el-col :span="12"
>窗口编号:{{ obj.windowNum ? obj.windowNum : "--" }}</el-col
>窗口编号:{{ form.windowNum ? form.windowNum : "--" }}</el-col
>
<el-col :span="12"
>违规类型:{{
obj.irregularType ? obj.irregularType : "--"
form.irregularType ? form.irregularType : "--"
}}</el-col
>
</el-row>
<el-row>
<el-col :span="12"
>发生时间:{{ obj.happenTime ? obj.happenTime : "--" }}</el-col
>发生时间:{{ form.happenTime ? form.happenTime : "--" }}</el-col
>
<el-col :span="12"
>时长:{{ obj.duration ? obj.duration : "--" }}</el-col
>时长:{{ form.duration ? form.duration : "--" }}</el-col
>
</el-row>
<el-row>
<el-col :span="12"
>报警时间:{{ obj.alarmTime ? obj.alarmTime : "--" }}</el-col
>报警时间:{{ form.alarmTime ? form.alarmTime : "--" }}</el-col
>
<el-col :span="12"
>扣分方式:{{ obj.subMethod ? obj.subMethod : "--" }}</el-col
>扣分方式:{{ form.subMethod ? form.subMethod : "--" }}</el-col
>
</el-row>
<el-row>
<el-col :span="12"
>扣分时间:{{ obj.deductTime ? obj.deductTime : "--" }}</el-col
>扣分时间:{{ form.deductTime ? form.deductTime : "--" }}</el-col
>
<el-col :span="12">
扣分人员:{{ obj.deductPerson ? obj.deductPerson : "--" }}</el-col
扣分人员:{{
form.deductPerson ? form.deductPerson : "--"
}}</el-col
>
</el-row>
<el-row>
<el-col :span="24">
图片凭证:{{ obj.snapPath ? obj.snapPath : "--" }}</el-col
图片凭证:{{
form.filePaths ? picMatter(form.filePaths) : "--"
}}</el-col
>
</el-row>
</div>
......@@ -67,56 +71,76 @@
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<el-form-item label="核查结果:">
<p v-if="obj.view == '查看'">{{ obj.checkResult }}</p>
<el-radio-group v-model="form.checkResult" v-else>
<el-radio :label="1">扣分</el-radio>
<el-radio :label="2">不扣分</el-radio>
<p v-if="form.view == '查看'">
{{
form.checkResult == 1
? "加分/扣分"
: form.checkResult == 2
? "不加分/不扣分"
: "--"
}}
</p>
<el-radio-group
v-model="form.checkResult"
@input="radioChange"
v-else
>
<el-radio :label="1">加分/扣分</el-radio>
<el-radio :label="2">不加分/不扣分</el-radio>
</el-radio-group>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="修改规则:">
<p v-if="obj.view == '查看'">{{ obj.ruleName }}</p>
<div v-else>
<el-col :span="22">
<el-select
v-model="form.attendanceGroupId"
style="width: 100%;"
>
<el-option
v-for="item in kaoqinArr"
:key="item.value"
:label="item.label"
:value="item.value"
<div v-if="form.checkResult == 1">
<el-row>
<el-form-item
:label="form.view == '查看' ? '绩效规则:' : '修改规则:'"
>
<p v-if="form.view == '查看'">{{ form.ruleName }}</p>
<div v-else>
<el-col :span="22">
<el-select
v-model="form.categoryId"
style="width: 100%;"
@change="cateChange"
>
</el-option
></el-select>
</el-col>
<el-col :span="22">
<el-select
v-model="form.attendanceGroupId"
style="width: 100%;margin-top: 10px;"
>
<el-option
v-for="item in kaoqinArr"
:key="item.value"
:label="item.label"
:value="item.value"
<el-option
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.ruleId"
style="width: 100%;margin-top: 10px;"
@change="ruleChange"
>
</el-option></el-select
></el-col>
</div>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="扣除分值:">
<p v-if="obj.view == '查看'">{{ obj.score }}</p>
<p v-else>{{ form.score }}</p>
</el-form-item>
</el-row>
<el-option
v-for="item in kaoqinArr"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option></el-select
></el-col>
</div>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="加分/扣除分值:">
<p v-if="form.view == '查看'">
{{ form.score ? form.score : "--" }}
</p>
<p v-else>{{ form.score }}</p>
</el-form-item>
</el-row>
</div>
<el-row>
<el-form-item label="说明:">
<p v-if="obj.view == '查看'">{{ obj.checkDesc }}</p>
<p v-if="form.view == '查看'">{{ form.checkDesc }}</p>
<el-input
v-else
v-model="form.checkDesc"
......@@ -124,18 +148,18 @@
></el-input>
</el-form-item>
</el-row>
<el-row v-if="obj.view == '查看'">
<el-row v-if="form.view == '查看'">
<el-form-item label="核查人员:">
<p>{{ obj.checkPerson }}</p>
<p>{{ form.checkPerson ? form.checkPerson : "--" }}</p>
</el-form-item>
</el-row>
<el-row v-if="obj.view == '查看'">
<el-row v-if="form.view == '查看'">
<el-form-item label="核查时间:">
<p>{{ obj.checkTime }}</p>
<p>{{ form.checkTime ? form.checkTime : "--" }}</p>
</el-form-item>
</el-row>
<form-buttons
v-show="obj.view == '核查'"
v-show="form.view == '核查'"
@submit="submitForm"
v-if="pageInfo.type != 'view'"
noCancelBtn
......@@ -312,12 +336,23 @@
<script>
import form from "@/assets/mixins/formdialog";
import { timestampToTime } from "@/assets/utils/dateFormat.js";
export default {
name: "CheckEffectRecordDetail",
mixins: [form],
components: {},
created() {
this.changePath("check/effect/record");
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 {
......@@ -338,18 +373,81 @@ export default {
],
createTime: [{ required: true, message: "请选择创建时间" }],
},
obj: {},
form: {},
kaoqinCateArr: [],
kaoqinArr: [],
baseUrl: process.env.VUE_APP_API_BASE_URL + "/",
};
},
methods: {
radioChange(val) {
this.form.checkResult = val;
this.$forceUpdate(this.form);
},
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.kaoqinArr.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.kaoqinArr = res.data.data;
this.form.ruleId = "";
});
},
/** 编辑 */
edit(row) {
this.obj = row;
this.form = row;
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "check/effect/record/edit";
this.getData();
// this.urls.currUrl = "check/effect/record/edit";
// this.getData();
this.$get("/check/effect/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))
: "";
}
this.form.checkResult = 1;
this.form.view = "核查";
this.open = true;
});
this.pageInfo.type = "edit";
row.view == "核查"
? (this.title = "效能绩效核查")
......@@ -365,11 +463,36 @@ export default {
},
/** 查看*/
view(row) {
this.obj = row;
this.form = row;
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "check/effect/record/view";
this.getData();
// this.urls.currUrl = "check/effect/record/view";
// this.getData();
this.$get("/check/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))
: "";
}
this.form.view = "查看";
console.log(this.form);
this.open = true;
});
this.pageInfo.type = "view";
this.title = "效能绩效核查信息详细";
},
......
......@@ -112,7 +112,8 @@ export default {
this.$download(
"/check/effect/record/exportExcel",
{
idList: this.selection,
page: 1,
size: -1,
},
{ type: "excel" }
)
......@@ -216,7 +217,11 @@ export default {
formatter: this.formatterDate,
},
{ label: "图片凭证", prop: "snapPath" },
{
label: "图片凭证",
prop: "filePaths",
formatter: this.formatterPic,
},
{ label: "绩效规则", prop: "ruleName" },
......@@ -234,20 +239,31 @@ export default {
{
label: "处理状态",
prop: "processStatus",
prop: "checkStatus",
formatter: this.formatter,
},
{
label: "操作",
width: 240,
width: 200,
formatter: (row) => {
return (
return row.checkStatus == 1 ? (
<table-buttons
noAdd
noDel
noEdit
reCheck
noView
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
) : (
<table-buttons
noAdd
noDel
noEdit
row={row}
onEdit={this.toEdit}
onView={this.toView}
......
......@@ -12,51 +12,57 @@
<div class="content">
<el-row>
<el-col :span="12"
>员工:{{ obj.staffName ? obj.staffName : "--" }}</el-col
>员工:{{ form.staffName ? form.staffName : "--" }}</el-col
>
<el-col :span="12"
>所属部门:{{ obj.deptName ? obj.deptName : "--" }}</el-col
>所属部门:{{ form.deptName ? form.deptName : "--" }}</el-col
>
</el-row>
<el-row>
<el-col :span="12"
>窗口编号:{{ obj.windowNum ? obj.windowNum : "--" }}</el-col
>窗口编号:{{ form.windowNum ? form.windowNum : "--" }}</el-col
>
<el-col :span="12"
>办件编码:{{ obj.goworkCode ? obj.goworkCode : "--" }}</el-col
>办件编码:{{ form.goworkCode ? form.goworkCode : "--" }}</el-col
>
</el-row>
<el-row>
<el-col :span="12"
>办件所属部门:{{
obj.goworkDepts ? obj.goworkDepts : "--"
form.goworkDepts ? form.goworkDepts : "--"
}}</el-col
>
<el-col :span="12"
>事项名称:{{ obj.matterlName ? obj.matterlName : "--" }}</el-col
>事项名称:{{
form.matterlName ? form.matterlName : "--"
}}</el-col
>
</el-row>
<el-row>
<el-col :span="12"
>办件时间:{{ obj.goworkTime ? obj.goworkTime : "--" }}</el-col
>办件时间:{{ form.goworkTime ? form.goworkTime : "--" }}</el-col
>
<el-col :span="12"
>扣分方式:{{ obj.subMethod ? obj.subMethod : "--" }}</el-col
>扣分方式:{{ form.subMethod ? form.subMethod : "--" }}</el-col
>
</el-row>
<el-row>
<el-col :span="12"
>扣分时间:{{ obj.deductTime ? obj.deductTime : "--" }}</el-col
>扣分时间:{{ form.deductTime ? form.deductTime : "--" }}</el-col
>
<el-col :span="12">
扣分人员:{{ obj.deductPerson ? obj.deductPerson : "--" }}</el-col
扣分人员:{{
form.deductPerson ? form.deductPerson : "--"
}}</el-col
>
</el-row>
<el-row>
<el-col :span="24">
图片凭证:{{ obj.snapPath ? obj.snapPath : "--" }}</el-col
图片凭证:{{
form.filePaths ? picMatter(form.filePaths) : "--"
}}</el-col
>
</el-row>
</div>
......@@ -67,56 +73,76 @@
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<el-form-item label="核查结果:">
<p v-if="obj.view == '查看'">{{ obj.checkResult }}</p>
<el-radio-group v-model="form.checkResult" v-else>
<el-radio :label="1">扣分</el-radio>
<el-radio :label="2">不扣分</el-radio>
<p v-if="form.view == '查看'">
{{
form.checkResult == 1
? "加分/扣分"
: form.checkResult == 2
? "不加分/不扣分"
: "--"
}}
</p>
<el-radio-group
v-model="form.checkResult"
@input="radioChange"
v-else
>
<el-radio :label="1">加分/扣分</el-radio>
<el-radio :label="2">不加分/不扣分</el-radio>
</el-radio-group>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="修改规则:">
<p v-if="obj.view == '查看'">{{ obj.ruleName }}</p>
<div v-else>
<el-col :span="22">
<el-select
v-model="form.attendanceGroupId"
style="width: 100%;"
>
<el-option
v-for="item in kaoqinArr"
:key="item.value"
:label="item.label"
:value="item.value"
<div v-if="form.checkResult == 1">
<el-row>
<el-form-item
:label="form.view == '查看' ? '绩效规则:' : '修改规则:'"
>
<p v-if="form.view == '查看'">{{ form.ruleName }}</p>
<div v-else>
<el-col :span="22">
<el-select
v-model="form.categoryId"
style="width: 100%;"
@change="cateChange"
>
</el-option
></el-select>
</el-col>
<el-col :span="22">
<el-select
v-model="form.attendanceGroupId"
style="width: 100%;margin-top: 10px;"
>
<el-option
v-for="item in kaoqinArr"
:key="item.value"
:label="item.label"
:value="item.value"
<el-option
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.ruleId"
style="width: 100%;margin-top: 10px;"
@change="ruleChange"
>
</el-option></el-select
></el-col>
</div>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="扣除分值:">
<p v-if="obj.view == '查看'">{{ obj.score }}</p>
<p v-else>{{ form.score }}</p>
</el-form-item>
</el-row>
<el-option
v-for="item in kaoqinArr"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option></el-select
></el-col>
</div>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="加分/扣除分值:">
<p v-if="form.view == '查看'">
{{ form.score ? form.score : "--" }}
</p>
<p v-else>{{ form.score }}</p>
</el-form-item>
</el-row>
</div>
<el-row>
<el-form-item label="说明:">
<p v-if="obj.view == '查看'">{{ obj.checkDesc }}</p>
<p v-if="form.view == '查看'">{{ form.checkDesc }}</p>
<el-input
v-else
v-model="form.checkDesc"
......@@ -124,18 +150,18 @@
></el-input>
</el-form-item>
</el-row>
<el-row v-if="obj.view == '查看'">
<el-row v-if="form.view == '查看'">
<el-form-item label="核查人员:">
<p>{{ obj.checkPerson }}</p>
<p>{{ form.checkPerson ? form.checkPerson : "--" }}</p>
</el-form-item>
</el-row>
<el-row v-if="obj.view == '查看'">
<el-row v-if="form.view == '查看'">
<el-form-item label="核查时间:">
<p>{{ obj.checkTime }}</p>
<p>{{ form.checkTime ? form.checkTime : "--" }}</p>
</el-form-item>
</el-row>
<form-buttons
v-show="obj.view == '核查'"
v-show="form.view == '核查'"
@submit="submitForm"
v-if="pageInfo.type != 'view'"
noCancelBtn
......@@ -305,12 +331,23 @@
<script>
import form from "@/assets/mixins/formdialog";
import { timestampToTime } from "@/assets/utils/dateFormat.js";
export default {
name: "CheckGoworkRecordDetail",
mixins: [form],
components: {},
created() {
this.changePath("check/gowork/record");
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 {
......@@ -331,18 +368,79 @@ export default {
],
createTime: [{ required: true, message: "请选择创建时间" }],
},
obj: {},
form: {},
kaoqinCateArr: [],
kaoqinArr: [],
baseUrl: process.env.VUE_APP_API_BASE_URL + "/",
};
},
methods: {
radioChange(val) {
this.form.checkResult = val;
this.$forceUpdate(this.form);
},
picMatter(val) {
if (val !== "--") {
return (
<el-image
src={val.c == -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.kaoqinArr.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.kaoqinArr = res.data.data;
this.form.ruleId = "";
});
},
/** 编辑 */
edit(row) {
this.obj = row;
this.form = row;
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "check/gowork/record/edit";
this.getData();
// this.urls.currUrl = "check/gowork/record/edit";
// this.getData();
this.$get("/check/gowork/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))
: "";
}
this.form.checkResult = 1;
this.form.view = "核查";
this.open = true;
});
this.pageInfo.type = "edit";
row.view == "核查"
? (this.title = "办件绩效核查")
......@@ -358,11 +456,36 @@ export default {
},
/** 查看*/
view(row) {
this.obj = row;
this.form = row;
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "check/gowork/record/view";
this.getData();
// this.urls.currUrl = "check/gowork/record/view";
// this.getData();
this.$get("/check/gowork/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))
: "";
}
this.form.view = "查看";
console.log(this.form);
this.open = true;
});
this.pageInfo.type = "view";
this.title = "办件绩效核查信息详细";
},
......
......@@ -112,7 +112,8 @@ export default {
this.$download(
"/check/gowork/record/exportExcel",
{
idList: this.selection,
page: 1,
size: -1,
},
{ type: "excel" }
)
......@@ -158,7 +159,7 @@ export default {
isshowTabPane: true,
search: [
{
name: "status",
name: "checkStatus",
type: "select",
label: "全部状态",
fuzzy: false,
......@@ -204,7 +205,11 @@ export default {
formatter: this.formatterDate,
},
{ label: "图片凭证", prop: "snapPath" },
{
label: "图片凭证",
prop: "filePaths",
formatter: this.formatterPic,
},
{ label: "绩效规则", prop: "ruleName" },
......@@ -222,20 +227,31 @@ export default {
{
label: "处理状态",
prop: "processStatus",
prop: "checkStatus",
formatter: this.formatter,
},
{
label: "操作",
width: 240,
width: 200,
formatter: (row) => {
return (
return row.checkStatus == 1 ? (
<table-buttons
noAdd
noDel
noEdit
reCheck
noView
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
) : (
<table-buttons
noAdd
noDel
noEdit
row={row}
onEdit={this.toEdit}
onView={this.toView}
......
......@@ -12,49 +12,51 @@
<div class="content">
<el-row>
<el-col :span="12"
>员工:{{ obj.staffName ? obj.staffName : "--" }}</el-col
>员工:{{ form.staffName ? form.staffName : "--" }}</el-col
>
<el-col :span="12"
>所属部门:{{ obj.deptName ? obj.deptName : "--" }}</el-col
>所属部门:{{ form.deptName ? form.deptName : "--" }}</el-col
>
</el-row>
<el-row>
<el-col :span="12"
>窗口编号:{{ obj.windowNum ? obj.windowNum : "--" }}</el-col
>窗口编号:{{ form.windowNum ? form.windowNum : "--" }}</el-col
>
<el-col :span="12"
>违规类型:{{
obj.irregularOtherType ? obj.irregularOtherType : "--"
form.irregularOtherType ? form.irregularOtherType : "--"
}}</el-col
>
</el-row>
<el-row>
<el-col :span="24"
>发生时间:{{ obj.happenTime ? obj.happenTime : "--" }}</el-col
>发生时间:{{ form.happenTime ? form.happenTime : "--" }}</el-col
>
</el-row>
<el-row>
<el-col :span="24"
>评分标准:{{ obj.ruleDesc ? obj.ruleDesc : "--" }}</el-col
>评分标准:{{ form.ruleDesc ? form.ruleDesc : "--" }}</el-col
>
</el-row>
<el-row>
<el-col :span="12"
>扣分方式:{{ obj.subMethod ? obj.subMethod : "--" }}</el-col
>扣分方式:{{ form.subMethod ? form.subMethod : "--" }}</el-col
>
<el-col :span="12">
扣分时间:{{ obj.deductTime ? obj.deductTime : "--" }}
扣分时间:{{ form.deductTime ? form.deductTime : "--" }}
</el-col>
</el-row>
<el-row>
<el-col :span="24">
扣分人员:{{ obj.deductPerson ? obj.deductPerson : "--" }}
扣分人员:{{ form.deductPerson ? form.deductPerson : "--" }}
</el-col>
</el-row>
<el-row>
<el-col :span="24"
>图片凭证:{{ obj.snapPath ? obj.snapPath : "--" }}</el-col
>图片凭证:{{
form.filePaths ? picMatter(form.filePaths) : "--"
}}</el-col
>
</el-row>
</div>
......@@ -65,56 +67,76 @@
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<el-form-item label="核查结果:">
<p v-if="obj.view == '查看'">{{ obj.checkResult }}</p>
<el-radio-group v-model="form.checkResult" v-else>
<el-radio :label="1">扣分</el-radio>
<el-radio :label="2">不扣分</el-radio>
<p v-if="form.view == '查看'">
{{
form.checkResult == 1
? "加分/扣分"
: form.checkResult == 2
? "不加分/不扣分"
: "--"
}}
</p>
<el-radio-group
v-model="form.checkResult"
@input="radioChange"
v-else
>
<el-radio :label="1">加分/扣分</el-radio>
<el-radio :label="2">不加分/不扣分</el-radio>
</el-radio-group>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="修改规则:">
<p v-if="obj.view == '查看'">{{ obj.ruleName }}</p>
<div v-else>
<el-col :span="22">
<el-select
v-model="form.attendanceGroupId"
style="width: 100%;"
>
<el-option
v-for="item in kaoqinArr"
:key="item.value"
:label="item.label"
:value="item.value"
<div v-if="form.checkResult == 1">
<el-row>
<el-form-item
:label="form.view == '查看' ? '绩效规则:' : '修改规则:'"
>
<p v-if="form.view == '查看'">{{ form.ruleName }}</p>
<div v-else>
<el-col :span="22">
<el-select
v-model="form.categoryId"
style="width: 100%;"
@change="cateChange"
>
</el-option
></el-select>
</el-col>
<el-col :span="22">
<el-select
v-model="form.attendanceGroupId"
style="width: 100%;margin-top: 10px;"
>
<el-option
v-for="item in kaoqinArr"
:key="item.value"
:label="item.label"
:value="item.value"
<el-option
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.ruleId"
style="width: 100%;margin-top: 10px;"
@change="ruleChange"
>
</el-option></el-select
></el-col>
</div>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="扣除分值:">
<p v-if="obj.view == '查看'">{{ obj.score }}</p>
<p v-else>{{ form.score }}</p>
</el-form-item>
</el-row>
<el-option
v-for="item in kaoqinArr"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option></el-select
></el-col>
</div>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="加分/扣除分值:">
<p v-if="form.view == '查看'">
{{ form.score ? form.score : "--" }}
</p>
<p v-else>{{ form.score }}</p>
</el-form-item>
</el-row>
</div>
<el-row>
<el-form-item label="说明:">
<p v-if="obj.view == '查看'">{{ obj.checkDesc }}</p>
<p v-if="form.view == '查看'">{{ form.checkDesc }}</p>
<el-input
v-else
v-model="form.checkDesc"
......@@ -122,18 +144,18 @@
></el-input>
</el-form-item>
</el-row>
<el-row v-if="obj.view == '查看'">
<el-row v-if="form.view == '查看'">
<el-form-item label="核查人员:">
<p>{{ obj.checkPerson }}</p>
<p>{{ form.checkPerson ? form.checkPerson : "--" }}</p>
</el-form-item>
</el-row>
<el-row v-if="obj.view == '查看'">
<el-row v-if="form.view == '查看'">
<el-form-item label="核查时间:">
<p>{{ obj.checkTime }}</p>
<p>{{ form.checkTime ? form.checkTime : "--" }}</p>
</el-form-item>
</el-row>
<form-buttons
v-show="obj.view == '核查'"
v-show="form.view == '核查'"
@submit="submitForm"
v-if="pageInfo.type != 'view'"
noCancelBtn
......@@ -304,12 +326,23 @@
<script>
import form from "@/assets/mixins/formdialog";
import { timestampToTime } from "@/assets/utils/dateFormat.js";
export default {
name: "CheckOtherRecordDetail",
mixins: [form],
components: {},
created() {
this.changePath("check/other/record");
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 {
......@@ -330,18 +363,81 @@ export default {
],
createTime: [{ required: true, message: "请选择创建时间" }],
},
obj: {},
form: {},
kaoqinCateArr: [],
kaoqinArr: [],
baseUrl: process.env.VUE_APP_API_BASE_URL + "/",
};
},
methods: {
radioChange(val) {
this.form.checkResult = val;
this.$forceUpdate(this.form);
},
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.kaoqinArr.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.kaoqinArr = res.data.data;
this.form.ruleId = "";
});
},
/** 编辑 */
edit(row) {
this.obj = row;
this.form = row;
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "check/other/record/edit";
this.getData();
// this.urls.currUrl = "check/other/record/edit";
// this.getData();
this.$get("/check/other/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))
: "";
}
this.form.checkResult = 1;
this.form.view = "核查";
this.open = true;
});
this.pageInfo.type = "edit";
row.view == "核查"
? (this.title = "其它绩效核查")
......@@ -357,11 +453,36 @@ export default {
},
/** 查看*/
view(row) {
this.obj = row;
this.form = row;
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "check/other/record/view";
this.getData();
// this.urls.currUrl = "check/other/record/view";
// this.getData();
this.$get("/check/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))
: "";
}
this.form.view = "查看";
console.log(this.form);
this.open = true;
});
this.pageInfo.type = "view";
this.title = "其它绩效核查信息详细";
},
......
......@@ -112,7 +112,8 @@ export default {
this.$download(
"/check/other/record/exportExcel",
{
idList: this.selection,
page: 1,
size: -1,
},
{ type: "excel" }
)
......@@ -157,7 +158,7 @@ export default {
isshowTabPane: true,
search: [
{
name: "status",
name: "checkStatus",
type: "select",
label: "全部状态",
fuzzy: false,
......@@ -212,7 +213,11 @@ export default {
// },
// { label: "绩效规则id", prop: "ruleId", formatter: this.formatter },
{ label: "图片凭证", prop: "snapPath" },
{
label: "图片凭证",
prop: "filePaths",
formatter: this.formatterPic,
},
{ label: "绩效规则", prop: "ruleName" },
......@@ -230,20 +235,31 @@ export default {
{
label: "处理状态",
prop: "processStatus",
prop: "checkStatus",
formatter: this.formatter,
},
{
label: "操作",
width: 240,
width: 200,
formatter: (row) => {
return (
return row.checkStatus == 1 ? (
<table-buttons
noAdd
noDel
noEdit
reCheck
noView
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
) : (
<table-buttons
noAdd
noDel
noEdit
row={row}
onEdit={this.toEdit}
onView={this.toView}
......
......@@ -12,56 +12,58 @@
<div class="content">
<el-row>
<el-col :span="12"
>员工:{{ obj.staffName ? obj.staffName : "--" }}</el-col
>员工:{{ form.staffName ? form.staffName : "--" }}</el-col
>
<el-col :span="12"
>所属部门:{{ obj.deptName ? obj.deptName : "--" }}</el-col
>所属部门:{{ form.deptName ? form.deptName : "--" }}</el-col
>
</el-row>
<el-row>
<el-col :span="12"
>窗口编号:{{ obj.windowNum ? obj.windowNum : "--" }}</el-col
>窗口编号:{{ form.windowNum ? form.windowNum : "--" }}</el-col
>
<el-col :span="12"
>评价结果:{{
obj.reviewResult ? obj.reviewResult : "--"
form.reviewResult ? form.reviewResult : "--"
}}</el-col
>
</el-row>
<el-row>
<el-col :span="12"
>评价来源:{{
obj.reviewSource ? obj.reviewSource : "--"
form.reviewSource ? form.reviewSource : "--"
}}</el-col
>
<el-col :span="12"
>评价设备:{{
obj.reviewDevice ? obj.reviewDevice : "--"
form.reviewDevice ? form.reviewDevice : "--"
}}</el-col
>
</el-row>
<el-row>
<el-col :span="12"
>评价时间:{{ obj.reviewTime ? obj.reviewTime : "--" }}</el-col
>评价时间:{{ form.reviewTime ? form.reviewTime : "--" }}</el-col
>
<el-col :span="12"
>扣分方式:{{ obj.subMethod ? obj.subMethod : "--" }}</el-col
>扣分方式:{{ form.subMethod ? form.subMethod : "--" }}</el-col
>
</el-row>
<el-row>
<el-col :span="12"
>扣分时间:{{ obj.deductTime ? obj.deductTime : "--" }}</el-col
>扣分时间:{{ form.deductTime ? form.deductTime : "--" }}</el-col
>
<el-col :span="12"
>扣分人员:{{
obj.deductPerson ? obj.deductPerson : "--"
form.deductPerson ? form.deductPerson : "--"
}}</el-col
>
</el-row>
<el-row>
<el-col :span="12"
>图片凭证:{{ obj.snapPath ? obj.snapPath : "--" }}</el-col
>图片凭证:{{
form.filePaths ? picMatter(form.filePaths) : "--"
}}</el-col
>
</el-row>
</div>
......@@ -72,56 +74,76 @@
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<el-form-item label="核查结果:">
<p v-if="obj.view == '查看'">{{ obj.checkResult }}</p>
<el-radio-group v-model="form.checkResult" v-else>
<el-radio :label="1">扣分</el-radio>
<el-radio :label="2">不扣分</el-radio>
<p v-if="form.view == '查看'">
{{
form.checkResult == 1
? "加分/扣分"
: form.checkResult == 2
? "不加分/不扣分"
: "--"
}}
</p>
<el-radio-group
v-model="form.checkResult"
@input="radioChange"
v-else
>
<el-radio :label="1">加分/扣分</el-radio>
<el-radio :label="2">不加分/不扣分</el-radio>
</el-radio-group>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="修改规则:">
<p v-if="obj.view == '查看'">{{ obj.ruleName }}</p>
<div v-else>
<el-col :span="22">
<el-select
v-model="form.attendanceGroupId"
style="width: 100%;"
>
<el-option
v-for="item in kaoqinArr"
:key="item.value"
:label="item.label"
:value="item.value"
<div v-if="form.checkResult == 1">
<el-row>
<el-form-item
:label="form.view == '查看' ? '绩效规则:' : '修改规则:'"
>
<p v-if="form.view == '查看'">{{ form.ruleName }}</p>
<div v-else>
<el-col :span="22">
<el-select
v-model="form.categoryId"
style="width: 100%;"
@change="cateChange"
>
</el-option
></el-select>
</el-col>
<el-col :span="22">
<el-select
v-model="form.attendanceGroupId"
style="width: 100%;margin-top: 10px;"
>
<el-option
v-for="item in kaoqinArr"
:key="item.value"
:label="item.label"
:value="item.value"
<el-option
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.ruleId"
style="width: 100%;margin-top: 10px;"
@change="ruleChange"
>
</el-option></el-select
></el-col>
</div>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="扣除分值:">
<p v-if="obj.view == '查看'">{{ obj.score }}</p>
<p v-else>{{ form.score }}</p>
</el-form-item>
</el-row>
<el-option
v-for="item in kaoqinArr"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option></el-select
></el-col>
</div>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="加分/扣除分值:">
<p v-if="form.view == '查看'">
{{ form.score ? form.score : "--" }}
</p>
<p v-else>{{ form.score }}</p>
</el-form-item>
</el-row>
</div>
<el-row>
<el-form-item label="说明:">
<p v-if="obj.view == '查看'">{{ obj.checkDesc }}</p>
<p v-if="form.view == '查看'">{{ form.checkDesc }}</p>
<el-input
v-else
v-model="form.checkDesc"
......@@ -129,18 +151,18 @@
></el-input>
</el-form-item>
</el-row>
<el-row v-if="obj.view == '查看'">
<el-row v-if="form.view == '查看'">
<el-form-item label="核查人员:">
<p>{{ obj.checkPerson }}</p>
<p>{{ form.checkPerson ? form.checkPerson : "--" }}</p>
</el-form-item>
</el-row>
<el-row v-if="obj.view == '查看'">
<el-row v-if="form.view == '查看'">
<el-form-item label="核查时间:">
<p>{{ obj.checkTime }}</p>
<p>{{ form.checkTime ? form.checkTime : "--" }}</p>
</el-form-item>
</el-row>
<form-buttons
v-show="obj.view == '核查'"
v-show="form.view == '核查'"
@submit="submitForm"
v-if="pageInfo.type != 'view'"
noCancelBtn
......@@ -312,12 +334,23 @@
<script>
import form from "@/assets/mixins/formdialog";
import { timestampToTime } from "@/assets/utils/dateFormat.js";
export default {
name: "CheckReviewRecordDetail",
mixins: [form],
components: {},
created() {
this.changePath("check/review/record");
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 {
......@@ -338,18 +371,78 @@ export default {
],
createTime: [{ required: true, message: "请选择创建时间" }],
},
obj: {},
form: {},
kaoqinCateArr: [],
kaoqinArr: [],
};
},
methods: {
radioChange(val) {
this.form.checkResult = val;
this.$forceUpdate(this.form);
},
picMatter(val) {
if (val !== "--") {
return (
<el-image
src={val.indexOf("http") == -1 ? baseUrl + val : val}
preview-src-list={val.indexOf("http") == -1 ? baseUrl + val : val}
style="width: 100px"
></el-image>
);
} else {
return val;
}
},
ruleChange(val) {
let arr = this.kaoqinArr.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.kaoqinArr = res.data.data;
this.form.ruleId = "";
});
},
/** 编辑 */
edit(row) {
this.obj = row;
this.form = row;
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "check/review/record/edit";
this.getData();
// this.urls.currUrl = "check/review/record/edit";
// this.getData();
this.$get("/check/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))
: "";
}
this.form.checkResult = 1;
this.form.view = "核查";
this.open = true;
});
this.pageInfo.type = "edit";
row.view == "核查"
? (this.title = "评价差评绩效核查")
......@@ -365,11 +458,36 @@ export default {
},
/** 查看*/
view(row) {
this.obj = row;
this.form = row;
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "check/review/record/view";
this.getData();
// this.urls.currUrl = "check/review/record/view";
// this.getData();
this.$get("/check/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))
: "";
}
this.form.view = "查看";
console.log(this.form);
this.open = true;
});
this.pageInfo.type = "view";
this.title = "评价差评绩效核查信息详细";
},
......
......@@ -112,7 +112,8 @@ export default {
this.$download(
"/check/review/record/exportExcel",
{
idList: this.selection,
page: 1,
size: -1,
},
{ type: "excel" }
)
......@@ -157,7 +158,7 @@ export default {
isshowTabPane: true,
search: [
{
name: "status",
name: "checkStatus",
type: "select",
label: "全部状态",
fuzzy: false,
......@@ -169,7 +170,7 @@ export default {
fuzzy: false,
},
{
name: "source",
name: "reviewSource",
type: "select",
label: "全部来源",
fuzzy: false,
......@@ -213,7 +214,11 @@ export default {
formatter: this.formatterDate,
},
{ label: "图片凭证", prop: "snapPath" },
{
label: "图片凭证",
prop: "filePaths",
formatter: this.formatterPic,
},
{ label: "绩效规则", prop: "ruleNme" },
......@@ -231,7 +236,7 @@ export default {
{
label: "处理状态",
prop: "processStatus",
prop: "checkStatus",
formatter: this.formatter,
},
......@@ -239,12 +244,23 @@ export default {
label: "操作",
width: 200,
formatter: (row) => {
return (
return row.checkStatus == 1 ? (
<table-buttons
noAdd
noDel
noEdit
reCheck
noView
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
) : (
<table-buttons
noAdd
noDel
noEdit
row={row}
onEdit={this.toEdit}
onView={this.toView}
......
......@@ -215,7 +215,11 @@ export default {
{ label: "异常结果", prop: "errorResult" },
{ label: "图片凭证", prop: "snapPath" },
{
label: "图片凭证",
prop: "filePaths",
formatter: this.formatterPic,
},
{ label: "绩效规则", prop: "ruleNme" },
......
......@@ -219,7 +219,11 @@ export default {
{ label: "投诉来源", prop: "complainSource" },
{ label: "图片凭证", prop: "snapPath" },
{
label: "图片凭证",
prop: "filePaths",
formatter: this.formatterPic,
},
{ label: "投诉设备", prop: "complainDevice" },
......
......@@ -222,8 +222,11 @@ export default {
formatter: this.formatterDate,
},
{ label: "图片凭证", prop: "snapPath" },
{
label: "图片凭证",
prop: "filePaths",
formatter: this.formatterPic,
},
{ label: "绩效规则", prop: "ruleName" },
{ label: "扣分方式", prop: "subMethod", formatter: this.formatter },
......
......@@ -209,8 +209,11 @@ export default {
formatter: this.formatterDate,
},
{ label: "图片凭证", prop: "snapPath" },
{
label: "图片凭证",
prop: "filePaths",
formatter: this.formatterPic,
},
{ label: "绩效规则", prop: "ruleName" },
{ label: "扣分方式", prop: "subMethod", formatter: this.formatter },
......
......@@ -218,8 +218,11 @@ export default {
// },
// { label: "绩效规则id", prop: "ruleId", formatter: this.formatter },
{ label: "图片凭证", prop: "snapPath" },
{
label: "图片凭证",
prop: "filePaths",
formatter: this.formatterPic,
},
{ label: "绩效规则", prop: "ruleName" },
{ label: "扣分方式", prop: "subMethod", formatter: this.formatter },
......
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