Commit 68b5d834 authored by 王启林's avatar 王启林
parents a47aed2b d156a9bd
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
"file-saver": "2.0.4", "file-saver": "2.0.4",
"fuse.js": "6.4.3", "fuse.js": "6.4.3",
"js-cookie": "2.2.1", "js-cookie": "2.2.1",
"js-export-excel": "^1.1.4",
"jsencrypt": "3.0.0-rc.1", "jsencrypt": "3.0.0-rc.1",
"json-bigint": "^0.3.0", "json-bigint": "^0.3.0",
"jwt-decode": "3.1.2", "jwt-decode": "3.1.2",
......
<template> <template>
<div id="app"> <div id="app">
<router-view/> <div class="loading" v-if="loading">
<div>
<div class="title">{{ title }}。。。</div>
<el-progress :percentage="percentage" color="#1890ff"></el-progress>
</div>
</div>
<router-view />
</div> </div>
</template> </template>
<script>
import Vue from "vue";
export default {
data() {
return {
fontStyle: null,
api: process.env.VUE_APP_API_BASE_URL + "/",
percentage: 0,
loading: false,
title: "报告生成中",
};
},
beforeCreate() {
Vue.prototype.$app = this;
},
created() {},
methods: {},
};
</script>
<style lang="less" scoped>
#app {
.loading {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.3);
position: fixed;
top: 0px;
left: 0px;
z-index: 99999;
.title {
color: #fff;
font-size: 12px;
text-align: center;
}
.el-progress {
width: 300px;
/deep/ .el-progress__text {
color: #fff;
}
}
}
}
</style>
...@@ -453,17 +453,26 @@ export default { ...@@ -453,17 +453,26 @@ export default {
formatterPic(row, column, val) { formatterPic(row, column, val) {
const content = formatter(this.tableData, column, val); const content = formatter(this.tableData, column, val);
if (content) { if (content) {
const suffix = `(bmp|jpg|png|tif|gif|pcx|tga|exif|fpx|svg|psd|cdr|pcd|dxf|ufo|eps|ai|raw|WMF|webp|jpeg)`;
const regular = new RegExp(`.*\.${suffix}`);
if (regular.test(val)) {
return ( return (
<el-image <el-image
src={val.indexOf("http") == -1 ? baseUrl + val : val} src={val.indexOf("http") == -1 ? baseUrl + val : val}
preview-src-list={val.indexOf("http") == -1 ? baseUrl + val : val} preview-src-list={
val.indexOf("http") == -1 ? [baseUrl + val] : [val]
}
style="width: 100px" style="width: 100px"
></el-image> ></el-image>
); );
} else {
return <el-link type="primary">{val}</el-link>;
}
} else { } else {
return val; return val;
} }
}, },
// 考勤组格式 // 考勤组格式
formatterBanci(row, column, val) { formatterBanci(row, column, val) {
const content = formatter(this.tableData, column, val); const content = formatter(this.tableData, column, val);
...@@ -489,6 +498,7 @@ export default { ...@@ -489,6 +498,7 @@ export default {
}, },
// 当某一行被点击时会触发该事件 // 当某一行被点击时会触发该事件
handleRowClick(row, column, event) {}, handleRowClick(row, column, event) {},
handleCellClick(row, column, event) {},
// 合并表格行列 // 合并表格行列
handleSpanMethod() {}, handleSpanMethod() {},
// 自定义表格排序 // 自定义表格排序
...@@ -619,6 +629,7 @@ export default { ...@@ -619,6 +629,7 @@ export default {
methods: { methods: {
handleSelectionChange: this.handleSelectionChange, handleSelectionChange: this.handleSelectionChange,
handleRowClick: this.handleRowClick, handleRowClick: this.handleRowClick,
handleCellClick: this.handleCellClick,
tableRowClassName: this.tableRowClassName, tableRowClassName: this.tableRowClassName,
handleSpanMethod: this.handleSpanMethod, handleSpanMethod: this.handleSpanMethod,
handleSortChange: this.handleSortChange, handleSortChange: this.handleSortChange,
......
...@@ -31,7 +31,7 @@ export default { ...@@ -31,7 +31,7 @@ export default {
<i style="font-size:16px;color:#409EFF" class={data.icon}></i> <i style="font-size:16px;color:#409EFF" class={data.icon}></i>
<span style="padding-left: 2px;font-size:14px">{node.label}</span> <span style="padding-left: 2px;font-size:14px">{node.label}</span>
<span style="padding-left: 2px;font-size:14px;margin-left:20px"> <span style="padding-left: 2px;font-size:14px;margin-left:20px">
({data.children?data.children.length:0}) ({data.personList?data.personList.length:0})
</span> </span>
</span> </span>
) )
......
// 导出表格数据
import ExportJsonExcel from "js-export-excel";
/**
* 导出excel
* @param {导出的表头名信息} tHeader
* @param {导出的表头字段名,需要导出表格字段名} filterVal
* @param {导出数据} list
* @param {导出文件名称} fileName
*/
export const exportExcel = (tHeader, filterVal, list, fileName) => {
let option = {
fileName,
datas: [
{
sheetData: list,
sheetName: "sheet",
sheetFilter: filterVal,
sheetHeader: tHeader,
// columnWidths: columnWidths, // 列宽
},
],
};
let toExcel = new ExportJsonExcel(option);
toExcel.saveExcel(); //保存
};
...@@ -51,7 +51,10 @@ export const encodeURI = (data) => { ...@@ -51,7 +51,10 @@ export const encodeURI = (data) => {
* @returns {string} val 解析后的结果 * @returns {string} val 解析后的结果
*/ */
export function formatterDate(time) { export function formatterDate(time) {
if (!time) return ''; if(time==='undefined'||time===null) {
return '--'}
if (!time) return '--';
let date = new Date(Number(time)); let date = new Date(Number(time));
let Y = date.getFullYear() + '-'; let Y = date.getFullYear() + '-';
let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'; let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
......
...@@ -8,11 +8,12 @@ ...@@ -8,11 +8,12 @@
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
@sort-change="handleSortChange" @sort-change="handleSortChange"
@row-click="handleRowClick" @row-click="handleRowClick"
@cell-click="handleCellClick"
:row-class-name="tableRowClassName" :row-class-name="tableRowClassName"
:empty-text="emptytxt ? emptytxt : emptyText" :empty-text="emptytxt ? emptytxt : emptyText"
border border
style="width: 100%" style="width: 100%"
height="570" height="530"
> >
<el-table-column <el-table-column
v-for="column in columns" v-for="column in columns"
...@@ -81,6 +82,11 @@ export default { ...@@ -81,6 +82,11 @@ export default {
required: false, required: false,
default: () => {}, default: () => {},
}, },
handleCellClick: {
type: Function,
required: false,
default: () => {},
},
handleSortChange: { handleSortChange: {
type: Function, type: Function,
required: false, required: false,
......
...@@ -182,6 +182,7 @@ ...@@ -182,6 +182,7 @@
:handleSelectableMethod="config.methods.handleSelectableMethod" :handleSelectableMethod="config.methods.handleSelectableMethod"
:handleSelectionChange="config.methods.handleSelectionChange" :handleSelectionChange="config.methods.handleSelectionChange"
:handleRowClick="config.methods.handleRowClick" :handleRowClick="config.methods.handleRowClick"
:handleCellClick="config.methods.handleCellClick"
/> />
<DataTableFlow <DataTableFlow
......
...@@ -7,9 +7,9 @@ ...@@ -7,9 +7,9 @@
size="mini" size="mini"
@click="$emit('edit', row)" @click="$emit('edit', row)"
title="编辑" title="编辑"
style="margin-left: 0;margin-right: 5px"
>编辑</el-button >编辑</el-button
> >
<span>&nbsp;</span>
<el-button <el-button
v-if="!noView" v-if="!noView"
type="text" type="text"
...@@ -17,18 +17,18 @@ ...@@ -17,18 +17,18 @@
size="mini" size="mini"
@click="$emit('view', row)" @click="$emit('view', row)"
title="查看" title="查看"
style="margin-left: 0;margin-right: 5px"
>查看</el-button >查看</el-button
> >
<span>&nbsp;</span>
<el-switch <el-switch
v-if="switchBtn" v-if="switchBtn"
v-model="row.check" v-model="row.check"
@change="$emit('view', row)" @change="$emit('view', row)"
title="核查" title="核查"
:active-value="true" :active-value="true"
style="margin-left: 0;margin-right: 5px"
:inactive-value="false" :inactive-value="false"
></el-switch> ></el-switch>
<span>&nbsp;</span>
<el-button <el-button
v-if="reCheck" v-if="reCheck"
type="text" type="text"
...@@ -36,9 +36,9 @@ ...@@ -36,9 +36,9 @@
size="mini" size="mini"
@click="$emit('edit', row)" @click="$emit('edit', row)"
title="核查" title="核查"
style="margin-left: 0;margin-right: 5px"
>核查</el-button >核查</el-button
> >
<span>&nbsp;</span>
<el-button <el-button
v-if="chuli" v-if="chuli"
type="text" type="text"
...@@ -46,9 +46,9 @@ ...@@ -46,9 +46,9 @@
size="mini" size="mini"
@click="$emit('edit', row)" @click="$emit('edit', row)"
title="处理" title="处理"
style="margin-left: 0;margin-right: 5px"
>处理</el-button >处理</el-button
> >
<span>&nbsp;</span>
<Confirm @confirm="$emit('del', row.id)" message="确定要删除该条记录吗?"> <Confirm @confirm="$emit('del', row.id)" message="确定要删除该条记录吗?">
<el-button <el-button
v-if="!noDel" v-if="!noDel"
...@@ -56,6 +56,7 @@ ...@@ -56,6 +56,7 @@
icon="el-icon-delete" icon="el-icon-delete"
size="mini" size="mini"
title="删除" title="删除"
style="margin-left: 0;margin-right: 5px"
>删除</el-button >删除</el-button
> >
</Confirm> </Confirm>
......
...@@ -14,7 +14,9 @@ import VueAMap from "vue-amap"; ...@@ -14,7 +14,9 @@ import VueAMap from "vue-amap";
import * as echarts from "echarts"; import * as echarts from "echarts";
import formCreate from "@form-create/element-ui"; import formCreate from "@form-create/element-ui";
import FcDesigner from "@form-create/designer"; import FcDesigner from "@form-create/designer";
// 引入时间处理
import moment from "moment";
Vue.prototype.$moment = moment;
// 将自动注册所有组件为全局组件 // 将自动注册所有组件为全局组件
import dataV from "@jiaminghi/data-view"; import dataV from "@jiaminghi/data-view";
......
...@@ -49,6 +49,7 @@ const router = new Router({ ...@@ -49,6 +49,7 @@ const router = new Router({
...restBuilder("job", "job"), // 职位信息 ...restBuilder("job", "job"), // 职位信息
...restBuilder("staff/adjust/log", "staff/adjust/log"), // 员工调岗信息 ...restBuilder("staff/adjust/log", "staff/adjust/log"), // 员工调岗信息
...restBuilder("staff/onboard", "staff/onboard"), // 员工入职信息
...restBuilder("staff/regular", "staff/regular"), // 员工转正信息 ...restBuilder("staff/regular", "staff/regular"), // 员工转正信息
...restBuilder("staff/leave", "staff/leave"), // 员工离职信息 ...restBuilder("staff/leave", "staff/leave"), // 员工离职信息
...restBuilder("staff/contract", "staff/contract"), // 员工合同信息 ...restBuilder("staff/contract", "staff/contract"), // 员工合同信息
......
<template>
<!-- 弹出框表单 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field disabled label="请假人" prop="leavePerson" v-model="form.leavePerson" placeholder="请输入请假人"/>
<Field disabled label="所属部门" prop="deptName" v-model="form.deptName" type="textarea" placeholder="请输入所属部门"/>
<Field disabled label="电话号码" prop="phoneNumber" v-model="form.phoneNumber" placeholder="请输入电话号码"/>
<Field disabled label="请假类型" prop="leaveType" v-model="form.leaveType" type="select" :enumData="dict.leaveType" placeholder="请选择请假类型"/>
<Field disabled label="开始时间" prop="startTime" v-model="form.startTime" type="date" />
<Field disabled label="结束时间" prop="endTime" v-model="form.endTime" type="date" />
<Field disabled label="时长,单位秒" prop="duration" v-model="form.duration" placeholder="请输入时长,单位秒"/>
<Field disabled label="请假事由" prop="reason" v-model="form.reason" type="textarea" placeholder="请输入请假事由"/>
<Field disabled label="审批负责人" prop="approver" v-model="form.approver" placeholder="请输入审批负责人"/>
<Field disabled label="附件" prop="attachment" v-model="form.attachment" type="textarea" placeholder="请输入附件"/>
<Field disabled label="附件路径" prop="attachmentPath" v-model="form.attachmentPath" type="textarea" placeholder="请输入附件路径"/>
<Field disabled label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
<Field disabled label="申请时间" prop="appealTime" v-model="form.appealTime" type="date" />
<Field label="审核结果" prop="auditResult" v-model="form.auditResult" type="radio" :enumData="dict.auditResult" placeholder="请选择审核结果"/>
<Field label="审核说明" prop="auditDesc" v-model="form.auditDesc" placeholder="请输入审核说明"/>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">审 核</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import form from "@/assets/mixins/formdialog";
import dialogShow from "./dialogshow";
export default {
mixins: [form],
components: {
dialogShow ,
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "请假记录信息",
// 是否显示弹出层
open: false,
// urls: { saveUrl: "/check/attend/record/examine" },
toString:[
"leaveType",
"auditResult",
"processStatus",
],
// 表单校验
rules: {
}
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/leave/record/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改请假记录信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "attendance/leave/record/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增请假记录信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/leave/record/view";
this.getData();
this.pageInfo.type="view"
this.title = "请假记录信息详细";
},
/**取消按钮 */
cancel() {
this.open = false;
},
/**获取数据后弹框 */
afterRender(data) {
this.open = true;
},
beforeSubmit(data) {
data.processStatus=2;
return data;
},
afterSubmit(data) {
this.open = false;
this.$emit("ok");
},
// 表单重置
reset() {
this.form = {
leavePersonId : null,
leavePerson : "",
deptId : null,
deptName : "",
phoneNumber : "",
leaveType : null,
startTime : null,
endTime : null,
duration : null,
reason : "",
approverId : null,
approver : "",
attachment : "",
attachmentPath : "",
remark : "",
appealTime : null,
auditResult : null,
auditDesc : "",
auditTime : null,
processStatus : 1,
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
...@@ -2,21 +2,25 @@ ...@@ -2,21 +2,25 @@
<div class="page"> <div class="page">
<LayoutTable :data="tableData" :config="tableConfig" notDel> <LayoutTable :data="tableData" :config="tableConfig" notDel>
<el-button type="primary" @click="doExport" :disabled="isExport" <el-button type="primary" @click="doExport" :disabled="isExport"
size="mini" slot="table-head-left2">导出</el-button> size="mini" slot="table-head-left2">导出
</el-button>
</LayoutTable> </LayoutTable>
<drawer-show ref="drawerform" @ok="getData" /> <drawer-show ref="drawerform" @ok="getData"/>
<drawer-audit ref="draweraudit" @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: "AttendanceLeaveRecordList", name: "AttendanceLeaveRecordList",
components: { components: {
drawerShow drawerShow
}, },
mixins: [table], mixins: [table],
created() { created() {
}, },
...@@ -33,12 +37,17 @@ ...@@ -33,12 +37,17 @@
toView(row) { toView(row) {
this.$refs.drawerform.view(row); this.$refs.drawerform.view(row);
}, },
doExport(){ audit(row) {
//todo 审核页面进行审核
this.$refs.draweraudit.view(row);
},
doExport() {
this.isExport = true; this.isExport = true;
this.$download("/leave/record/exportExcel", { this.$download("/leave/record/exportExcel", {
"idList": this.selection, "idList": this.selection,
'name': this.$route.query['name'], 'name': this.$route.query['name'],
}, { type: "excel" }).then(() => this.isExport = false).catch(error => { }, {type: "excel"}).then(() => this.isExport = false).catch(error => {
this.isExport = false; this.isExport = false;
this.$message.error(error.message); this.$message.error(error.message);
}) })
...@@ -46,9 +55,9 @@ ...@@ -46,9 +55,9 @@
}, },
data() { data() {
return { return {
isExport:false, isExport: false,
config: { config: {
isshowTabPane:true, isshowTabPane: true,
search: [ search: [
{ {
name: "leavePerson", name: "leavePerson",
...@@ -89,7 +98,7 @@ ...@@ -89,7 +98,7 @@
], ],
columns: [ columns: [
{type: "selection", width: 60}, {type: "selection", width: 60},
{type: "index",label: "序号",width: 50}, {type: "index", label: "序号", width: 50},
// {label: "请假人id", prop: "leavePersonId", formatter: this.formatter}, // {label: "请假人id", prop: "leavePersonId", formatter: this.formatter},
...@@ -101,25 +110,46 @@ ...@@ -101,25 +110,46 @@
{label: "电话号码", prop: "phoneNumber"}, {label: "电话号码", prop: "phoneNumber"},
{label: "请假类型", prop: "leaveType",formatter: this.formatterLeaveType}, {label: "请假类型", prop: "leaveType", formatter: this.formatterLeaveType},
{label: "开始时间", prop: "startTime", formatter: this.formatterDate}, {label: "开始时间", prop: "startTime", formatter: this.formatterDate},
{label: "结束时间", prop: "endTime", formatter: this.formatterDate}, {label: "结束时间", prop: "endTime", formatter: this.formatterDate},
{label: "时长", prop: "duration",formatter: this.formatter}, {label: "时长", prop: "duration", formatter: this.formatter},
// {label: "审批负责人Id", prop: "approverId", formatter: this.formatter}, // {label: "审批负责人Id", prop: "approverId", formatter: this.formatter},
{label: "审批负责人", prop: "approver"}, {label: "审批负责人", prop: "approver"},
{label: "处理状态", prop: "processStatus", formatter: this.formatter},
{label: "审核状态", prop: "auditResult", 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} /> <div>
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel}/>
<span> </span>
{row.processStatus === 1 ? (
<el-button
size="mini"
type="text"
icon="el-icon-open"
onClick={() => {
this.audit(row);
}}
>
审核
</el-button>
) : (
""
)}
</div>
); );
} }
} }
...@@ -127,5 +157,5 @@ ...@@ -127,5 +157,5 @@
} }
}; };
} }
}; };
</script> </script>
...@@ -68,10 +68,27 @@ ...@@ -68,10 +68,27 @@
{{ form.deductPerson ? form.deductPerson : "--" }}</el-col {{ form.deductPerson ? form.deductPerson : "--" }}</el-col
> >
<el-col :span="12" <el-col :span="12"
>图片凭证:{{ >图片凭证:
form.snapPath ? picMatter(form.snapPath) : "--"
}}</el-col <el-image
v-if="form.filePaths"
style="width: 100px; height: 100px"
:src="
`${
form.filePaths.indexOf('http') == -1
? baseUrl + form.filePaths
: form.filePaths
}`
"
:preview-src-list="
form.filePaths.indexOf('http') == -1
? [baseUrl + form.filePaths]
: [form.filePaths]
"
> >
</el-image>
<span v-else>--</span>
</el-col>
</el-row> </el-row>
</div> </div>
</div> </div>
...@@ -95,12 +112,16 @@ ...@@ -95,12 +112,16 @@
@input="radioChange" @input="radioChange"
v-else v-else
> >
<el-radio :label="1">加分/扣分</el-radio> <el-radio
<el-radio :label="2">不加分/不扣分</el-radio> v-for="(val, i) in dict.checkResult"
:key="i"
:label="val"
>{{ val }}</el-radio
>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-row> </el-row>
<div v-if="form.checkResult == 1"> <div v-if="form.checkResult == '加分或扣分'">
<el-row> <el-row>
<el-form-item <el-form-item
:label="form.view == '查看' ? '绩效规则:' : '修改规则:'" :label="form.view == '查看' ? '绩效规则:' : '修改规则:'"
...@@ -391,7 +412,7 @@ export default { ...@@ -391,7 +412,7 @@ export default {
this.$forceUpdate(this.form); this.$forceUpdate(this.form);
}, },
picMatter(val) { picMatter(val) {
if (val || val !== "--") { if (val) {
return ( return (
<el-image <el-image
src={val.indexOf("http") == -1 ? this.baseUrl + val : val} src={val.indexOf("http") == -1 ? this.baseUrl + val : val}
...@@ -430,7 +451,6 @@ export default { ...@@ -430,7 +451,6 @@ export default {
await this.$get("/check/attend/record/info", { id: row.id }).then( await this.$get("/check/attend/record/info", { id: row.id }).then(
(res) => { (res) => {
console.log(res.data);
if (res.code == 1) { if (res.code == 1) {
this.form = res.data; this.form = res.data;
this.dict = res.dict; this.dict = res.dict;
...@@ -453,15 +473,16 @@ export default { ...@@ -453,15 +473,16 @@ export default {
: ""; : "";
} }
this.form.checkResult = 1; this.form.checkResult = 1;
this.form.view = "核查";
this.$post("/perform/rules/list", { this.$post("/perform/rules/list", {
page: 1, page: 1,
size: -1, size: -1,
categoryId: this.form.categoryId, categoryId: this.form.categoryId,
}).then((res) => { }).then((res) => {
this.ruleArr = res.data.data; this.kaoqinArr = res.data.data;
});
this.form.view = "核查";
this.open = true; this.open = true;
});
} }
); );
this.pageInfo.type = "edit"; this.pageInfo.type = "edit";
......
...@@ -63,6 +63,8 @@ ...@@ -63,6 +63,8 @@
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import drawerShow from "./drawershow"; import drawerShow from "./drawershow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
import { downloadFile } from "@/assets/utils/index";
export default { export default {
name: "CheckAttendRecordList", name: "CheckAttendRecordList",
components: { components: {
...@@ -71,6 +73,16 @@ export default { ...@@ -71,6 +73,16 @@ export default {
mixins: [table], mixins: [table],
created() {}, created() {},
methods: { methods: {
handleCellClick(row, column, event, cell) {
if ((column.label = "图片凭证")) {
const suffix = `(bmp|jpg|png|tif|gif|pcx|tga|exif|fpx|svg|psd|cdr|pcd|dxf|ufo|eps|ai|raw|WMF|webp|jpeg)`;
const regular = new RegExp(`.*\.${suffix}`);
regular.test(row.filePaths);
if (!regular.test(row.filePaths)) {
downloadFile(row.filePaths, row.fileName);
}
}
},
/** 导入 */ /** 导入 */
handleImport() { handleImport() {
this.upload.title = "考勤绩效记录核查信息导入"; this.upload.title = "考勤绩效记录核查信息导入";
...@@ -212,7 +224,8 @@ export default { ...@@ -212,7 +224,8 @@ export default {
{ {
label: "图片凭证", label: "图片凭证",
prop: "snapPath", prop: "filePaths",
width: 150,
formatter: this.formatterPic, formatter: this.formatterPic,
}, },
...@@ -255,6 +268,7 @@ export default { ...@@ -255,6 +268,7 @@ export default {
{ {
label: "操作", label: "操作",
width: 200, width: 200,
fixed: "right",
formatter: (row) => { formatter: (row) => {
return row.checkStatus == 1 ? ( return row.checkStatus == 1 ? (
<table-buttons <table-buttons
......
...@@ -84,10 +84,26 @@ ...@@ -84,10 +84,26 @@
{{ form.deductTime ? form.deductTime : "--" }}</el-col {{ form.deductTime ? form.deductTime : "--" }}</el-col
> >
<el-col :span="12" <el-col :span="12"
>图片凭证:{{ >图片凭证:
form.snapPath ? picMatter(form.snapPath) : "--" <el-image
}}</el-col v-if="form.filePaths"
style="width: 100px; height: 100px"
:src="
`${
form.filePaths.indexOf('http') == -1
? baseUrl + form.filePaths
: form.filePaths
}`
"
:preview-src-list="
form.filePaths.indexOf('http') == -1
? [baseUrl + form.filePaths]
: [form.filePaths]
"
> >
</el-image>
<span v-else>--</span>
</el-col>
</el-row> </el-row>
</div> </div>
</div> </div>
...@@ -111,12 +127,16 @@ ...@@ -111,12 +127,16 @@
@input="radioChange" @input="radioChange"
v-else v-else
> >
<el-radio :label="1">加分/扣分</el-radio> <el-radio
<el-radio :label="2">不加分/不扣分</el-radio> v-for="(val, i) in dict.checkResult"
:key="i"
:label="val"
>{{ val }}</el-radio
>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-row> </el-row>
<div v-if="form.checkResult == 1"> <div v-if="form.checkResult == '加分或扣分'">
<el-row> <el-row>
<el-form-item <el-form-item
:label="form.view == '查看' ? '绩效规则:' : '修改规则:'" :label="form.view == '查看' ? '绩效规则:' : '修改规则:'"
...@@ -492,7 +512,7 @@ export default { ...@@ -492,7 +512,7 @@ export default {
size: -1, size: -1,
categoryId: this.form.categoryId, categoryId: this.form.categoryId,
}).then((res) => { }).then((res) => {
this.ruleArr = res.data.data; this.kaoqinArr = res.data.data;
}); });
this.form.view = "核查"; this.form.view = "核查";
this.open = true; this.open = true;
......
...@@ -63,6 +63,8 @@ ...@@ -63,6 +63,8 @@
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import drawerShow from "./drawershow"; import drawerShow from "./drawershow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
import { downloadFile } from "@/assets/utils/index";
export default { export default {
name: "CheckComplainRecordList", name: "CheckComplainRecordList",
components: { components: {
...@@ -71,6 +73,16 @@ export default { ...@@ -71,6 +73,16 @@ export default {
mixins: [table], mixins: [table],
created() {}, created() {},
methods: { methods: {
handleCellClick(row, column, event, cell) {
if ((column.label = "图片凭证")) {
const suffix = `(bmp|jpg|png|tif|gif|pcx|tga|exif|fpx|svg|psd|cdr|pcd|dxf|ufo|eps|ai|raw|WMF|webp|jpeg)`;
const regular = new RegExp(`.*\.${suffix}`);
regular.test(row.filePaths);
if (!regular.test(row.filePaths)) {
downloadFile(row.filePaths, row.fileName);
}
}
},
/** 导入 */ /** 导入 */
handleImport() { handleImport() {
this.upload.title = "评价绩效投诉核查信息导入"; this.upload.title = "评价绩效投诉核查信息导入";
...@@ -217,7 +229,8 @@ export default { ...@@ -217,7 +229,8 @@ export default {
{ {
label: "图片凭证", label: "图片凭证",
prop: "snapPath", prop: "filePaths",
width: 150,
formatter: this.formatterPic, formatter: this.formatterPic,
}, },
...@@ -262,6 +275,7 @@ export default { ...@@ -262,6 +275,7 @@ export default {
{ {
label: "操作", label: "操作",
width: 200, width: 200,
fixed: "right",
formatter: (row) => { formatter: (row) => {
return row.checkStatus == 1 ? ( return row.checkStatus == 1 ? (
<table-buttons <table-buttons
......
...@@ -61,10 +61,26 @@ ...@@ -61,10 +61,26 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
图片凭证:{{ 图片凭证:
form.snapPath ? picMatter(form.snapPath) : "--" <el-image
}}</el-col v-if="form.filePaths"
style="width: 100px; height: 100px"
:src="
`${
form.filePaths.indexOf('http') == -1
? baseUrl + form.filePaths
: form.filePaths
}`
"
:preview-src-list="
form.filePaths.indexOf('http') == -1
? [baseUrl + form.filePaths]
: [form.filePaths]
"
> >
</el-image>
<span v-else>--</span>
</el-col>
</el-row> </el-row>
</div> </div>
</div> </div>
...@@ -88,12 +104,16 @@ ...@@ -88,12 +104,16 @@
@input="radioChange" @input="radioChange"
v-else v-else
> >
<el-radio :label="1">加分/扣分</el-radio> <el-radio
<el-radio :label="2">不加分/不扣分</el-radio> v-for="(val, i) in dict.checkResult"
:key="i"
:label="val"
>{{ val }}</el-radio
>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-row> </el-row>
<div v-if="form.checkResult == 1"> <div v-if="form.checkResult == '加分或扣分'">
<el-row> <el-row>
<el-form-item <el-form-item
:label="form.view == '查看' ? '绩效规则:' : '修改规则:'" :label="form.view == '查看' ? '绩效规则:' : '修改规则:'"
...@@ -248,8 +268,8 @@ ...@@ -248,8 +268,8 @@
/> />
<Field <Field
label="图片凭证地址" label="图片凭证地址"
prop="snapPath" prop="filePaths"
v-model="form.snapPath" v-model="form.filePaths"
type="textarea" type="textarea"
placeholder="请输入图片凭证地址" placeholder="请输入图片凭证地址"
/> />
...@@ -465,7 +485,7 @@ export default { ...@@ -465,7 +485,7 @@ export default {
size: -1, size: -1,
categoryId: this.form.categoryId, categoryId: this.form.categoryId,
}).then((res) => { }).then((res) => {
this.ruleArr = res.data.data; this.kaoqinArr = res.data.data;
}); });
this.form.view = "核查"; this.form.view = "核查";
this.open = true; this.open = true;
...@@ -554,7 +574,7 @@ export default { ...@@ -554,7 +574,7 @@ export default {
happenTime: null, happenTime: null,
duration: 0, duration: 0,
alarmTime: null, alarmTime: null,
snapPath: "", filePaths: "",
ruleId: null, ruleId: null,
ruleName: "", ruleName: "",
subMethod: 1, subMethod: 1,
......
...@@ -63,6 +63,8 @@ ...@@ -63,6 +63,8 @@
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import drawerShow from "./drawershow"; import drawerShow from "./drawershow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
import { downloadFile } from "@/assets/utils/index";
export default { export default {
name: "CheckEffectRecordList", name: "CheckEffectRecordList",
components: { components: {
...@@ -71,6 +73,16 @@ export default { ...@@ -71,6 +73,16 @@ export default {
mixins: [table], mixins: [table],
created() {}, created() {},
methods: { methods: {
handleCellClick(row, column, event, cell) {
if ((column.label = "图片凭证")) {
const suffix = `(bmp|jpg|png|tif|gif|pcx|tga|exif|fpx|svg|psd|cdr|pcd|dxf|ufo|eps|ai|raw|WMF|webp|jpeg)`;
const regular = new RegExp(`.*\.${suffix}`);
regular.test(row.filePaths);
if (!regular.test(row.filePaths)) {
downloadFile(row.filePaths, row.fileName);
}
}
},
/** 导入 */ /** 导入 */
handleImport() { handleImport() {
this.upload.title = "效能绩效核查信息导入"; this.upload.title = "效能绩效核查信息导入";
...@@ -219,7 +231,8 @@ export default { ...@@ -219,7 +231,8 @@ export default {
{ {
label: "图片凭证", label: "图片凭证",
prop: "snapPath", prop: "filePaths",
width: 150,
formatter: this.formatterPic, formatter: this.formatterPic,
}, },
...@@ -262,6 +275,7 @@ export default { ...@@ -262,6 +275,7 @@ export default {
{ {
label: "操作", label: "操作",
width: 200, width: 200,
fixed: "right",
formatter: (row) => { formatter: (row) => {
return row.checkStatus == 1 ? ( return row.checkStatus == 1 ? (
<table-buttons <table-buttons
......
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
{{ util_formatterDate(form.alarmTime)}} {{ util_formatterDate(form.alarmTime)}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="图片凭证地址" label-class-name="labelClass" content-class-name="contentClass"> <el-descriptions-item label="图片凭证地址" label-class-name="labelClass" content-class-name="contentClass">
{{form.snapPath}} {{form.filePaths}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="绩效规则id" label-class-name="labelClass" content-class-name="contentClass"> <el-descriptions-item label="绩效规则id" label-class-name="labelClass" content-class-name="contentClass">
{{form.ruleId}} {{form.ruleId}}
......
...@@ -63,10 +63,26 @@ ...@@ -63,10 +63,26 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
图片凭证:{{ 图片凭证:
form.snapPath ? picMatter(form.snapPath) : "--" <el-image
}}</el-col v-if="form.filePaths"
style="width: 100px; height: 100px"
:src="
`${
form.filePaths.indexOf('http') == -1
? baseUrl + form.filePaths
: form.filePaths
}`
"
:preview-src-list="
form.filePaths.indexOf('http') == -1
? [baseUrl + form.filePaths]
: [form.filePaths]
"
> >
</el-image>
<span v-else>--</span>
</el-col>
</el-row> </el-row>
</div> </div>
</div> </div>
...@@ -90,12 +106,16 @@ ...@@ -90,12 +106,16 @@
@input="radioChange" @input="radioChange"
v-else v-else
> >
<el-radio :label="1">加分/扣分</el-radio> <el-radio
<el-radio :label="2">不加分/不扣分</el-radio> v-for="(val, i) in dict.checkResult"
:key="i"
:label="val"
>{{ val }}</el-radio
>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-row> </el-row>
<div v-if="form.checkResult == 1"> <div v-if="form.checkResult == '加分或扣分'">
<el-row> <el-row>
<el-form-item <el-form-item
:label="form.view == '查看' ? '绩效规则:' : '修改规则:'" :label="form.view == '查看' ? '绩效规则:' : '修改规则:'"
...@@ -458,7 +478,7 @@ export default { ...@@ -458,7 +478,7 @@ export default {
size: -1, size: -1,
categoryId: this.form.categoryId, categoryId: this.form.categoryId,
}).then((res) => { }).then((res) => {
this.ruleArr = res.data.data; this.kaoqinArr = res.data.data;
}); });
this.form.view = "核查"; this.form.view = "核查";
this.open = true; this.open = true;
......
...@@ -63,6 +63,8 @@ ...@@ -63,6 +63,8 @@
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import drawerShow from "./drawershow"; import drawerShow from "./drawershow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
import { downloadFile } from "@/assets/utils/index";
export default { export default {
name: "CheckGoworkRecordList", name: "CheckGoworkRecordList",
components: { components: {
...@@ -71,6 +73,16 @@ export default { ...@@ -71,6 +73,16 @@ export default {
mixins: [table], mixins: [table],
created() {}, created() {},
methods: { methods: {
handleCellClick(row, column, event, cell) {
if ((column.label = "图片凭证")) {
const suffix = `(bmp|jpg|png|tif|gif|pcx|tga|exif|fpx|svg|psd|cdr|pcd|dxf|ufo|eps|ai|raw|WMF|webp|jpeg)`;
const regular = new RegExp(`.*\.${suffix}`);
regular.test(row.filePaths);
if (!regular.test(row.filePaths)) {
downloadFile(row.filePaths, row.fileName);
}
}
},
/** 导入 */ /** 导入 */
handleImport() { handleImport() {
this.upload.title = "办件绩效核查信息导入"; this.upload.title = "办件绩效核查信息导入";
...@@ -207,7 +219,8 @@ export default { ...@@ -207,7 +219,8 @@ export default {
{ {
label: "图片凭证", label: "图片凭证",
prop: "snapPath", prop: "filePaths",
width: 150,
formatter: this.formatterPic, formatter: this.formatterPic,
}, },
...@@ -250,6 +263,7 @@ export default { ...@@ -250,6 +263,7 @@ export default {
{ {
label: "操作", label: "操作",
width: 200, width: 200,
fixed: "right",
formatter: (row) => { formatter: (row) => {
return row.checkStatus == 1 ? ( return row.checkStatus == 1 ? (
<table-buttons <table-buttons
......
...@@ -59,10 +59,26 @@ ...@@ -59,10 +59,26 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24" <el-col :span="24"
>图片凭证:{{ >图片凭证:
form.snapPath ? picMatter(form.snapPath) : "--" <el-image
}}</el-col v-if="form.filePaths"
style="width: 100px; height: 100px"
:src="
`${
form.filePaths.indexOf('http') == -1
? baseUrl + form.filePaths
: form.filePaths
}`
"
:preview-src-list="
form.filePaths.indexOf('http') == -1
? [baseUrl + form.filePaths]
: [form.filePaths]
"
> >
</el-image>
<span v-else>--</span>
</el-col>
</el-row> </el-row>
</div> </div>
</div> </div>
...@@ -86,12 +102,16 @@ ...@@ -86,12 +102,16 @@
@input="radioChange" @input="radioChange"
v-else v-else
> >
<el-radio :label="1">加分/扣分</el-radio> <el-radio
<el-radio :label="2">不加分/不扣分</el-radio> v-for="(val, i) in dict.checkResult"
:key="i"
:label="val"
>{{ val }}</el-radio
>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-row> </el-row>
<div v-if="form.checkResult == 1"> <div v-if="form.checkResult == '加分或扣分'">
<el-row> <el-row>
<el-form-item <el-form-item
:label="form.view == '查看' ? '绩效规则:' : '修改规则:'" :label="form.view == '查看' ? '绩效规则:' : '修改规则:'"
...@@ -457,7 +477,7 @@ export default { ...@@ -457,7 +477,7 @@ export default {
size: -1, size: -1,
categoryId: this.form.categoryId, categoryId: this.form.categoryId,
}).then((res) => { }).then((res) => {
this.ruleArr = res.data.data; this.kaoqinArr = res.data.data;
}); });
this.form.view = "核查"; this.form.view = "核查";
this.open = true; this.open = true;
......
...@@ -63,6 +63,8 @@ ...@@ -63,6 +63,8 @@
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import drawerShow from "./drawershow"; import drawerShow from "./drawershow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
import { downloadFile } from "@/assets/utils/index";
export default { export default {
name: "CheckOtherRecordList", name: "CheckOtherRecordList",
components: { components: {
...@@ -71,6 +73,16 @@ export default { ...@@ -71,6 +73,16 @@ export default {
mixins: [table], mixins: [table],
created() {}, created() {},
methods: { methods: {
handleCellClick(row, column, event, cell) {
if ((column.label = "图片凭证")) {
const suffix = `(bmp|jpg|png|tif|gif|pcx|tga|exif|fpx|svg|psd|cdr|pcd|dxf|ufo|eps|ai|raw|WMF|webp|jpeg)`;
const regular = new RegExp(`.*\.${suffix}`);
regular.test(row.filePaths);
if (!regular.test(row.filePaths)) {
downloadFile(row.filePaths, row.fileName);
}
}
},
/** 导入 */ /** 导入 */
handleImport() { handleImport() {
this.upload.title = "其它绩效核查信息导入"; this.upload.title = "其它绩效核查信息导入";
...@@ -215,7 +227,8 @@ export default { ...@@ -215,7 +227,8 @@ export default {
// { label: "绩效规则id", prop: "ruleId", formatter: this.formatter }, // { label: "绩效规则id", prop: "ruleId", formatter: this.formatter },
{ {
label: "图片凭证", label: "图片凭证",
prop: "snapPath", prop: "filePaths",
width: 150,
formatter: this.formatterPic, formatter: this.formatterPic,
}, },
...@@ -258,6 +271,7 @@ export default { ...@@ -258,6 +271,7 @@ export default {
{ {
label: "操作", label: "操作",
width: 200, width: 200,
fixed: "right",
formatter: (row) => { formatter: (row) => {
return row.checkStatus == 1 ? ( return row.checkStatus == 1 ? (
<table-buttons <table-buttons
......
...@@ -64,10 +64,26 @@ ...@@ -64,10 +64,26 @@
<el-row> <el-row>
<el-col :span="12" <el-col :span="12"
>图片凭证:{{ >图片凭证:
form.snapPath ? picMatter(form.snapPath) : "--" <el-image
}}</el-col v-if="form.filePaths"
style="width: 100px; height: 100px"
:src="
`${
form.filePaths.indexOf('http') == -1
? baseUrl + form.filePaths
: form.filePaths
}`
"
:preview-src-list="
form.filePaths.indexOf('http') == -1
? [baseUrl + form.filePaths]
: [form.filePaths]
"
> >
</el-image>
<span v-else>--</span>
</el-col>
</el-row> </el-row>
</div> </div>
</div> </div>
...@@ -91,12 +107,16 @@ ...@@ -91,12 +107,16 @@
@input="radioChange" @input="radioChange"
v-else v-else
> >
<el-radio :label="1">加分/扣分</el-radio> <el-radio
<el-radio :label="2">不加分/不扣分</el-radio> v-for="(val, i) in dict.checkResult"
:key="i"
:label="val"
>{{ val }}</el-radio
>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-row> </el-row>
<div v-if="form.checkResult == 1"> <div v-if="form.checkResult == '加分或扣分'">
<el-row> <el-row>
<el-form-item <el-form-item
:label="form.view == '查看' ? '绩效规则:' : '修改规则:'" :label="form.view == '查看' ? '绩效规则:' : '修改规则:'"
...@@ -458,7 +478,7 @@ export default { ...@@ -458,7 +478,7 @@ export default {
size: -1, size: -1,
categoryId: this.form.categoryId, categoryId: this.form.categoryId,
}).then((res) => { }).then((res) => {
this.ruleArr = res.data.data; this.kaoqinArr = res.data.data;
}); });
this.form.view = "核查"; this.form.view = "核查";
this.open = true; this.open = true;
......
...@@ -63,6 +63,8 @@ ...@@ -63,6 +63,8 @@
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import drawerShow from "./drawershow"; import drawerShow from "./drawershow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
import { downloadFile } from "@/assets/utils/index";
export default { export default {
name: "CheckReviewRecordList", name: "CheckReviewRecordList",
components: { components: {
...@@ -71,6 +73,16 @@ export default { ...@@ -71,6 +73,16 @@ export default {
mixins: [table], mixins: [table],
created() {}, created() {},
methods: { methods: {
handleCellClick(row, column, event, cell) {
if ((column.label = "图片凭证")) {
const suffix = `(bmp|jpg|png|tif|gif|pcx|tga|exif|fpx|svg|psd|cdr|pcd|dxf|ufo|eps|ai|raw|WMF|webp|jpeg)`;
const regular = new RegExp(`.*\.${suffix}`);
regular.test(row.filePaths);
if (!regular.test(row.filePaths)) {
downloadFile(row.filePaths, row.fileName);
}
}
},
/** 导入 */ /** 导入 */
handleImport() { handleImport() {
this.upload.title = "评价差评绩效核查信息导入"; this.upload.title = "评价差评绩效核查信息导入";
...@@ -216,7 +228,8 @@ export default { ...@@ -216,7 +228,8 @@ export default {
{ {
label: "图片凭证", label: "图片凭证",
prop: "snapPath", prop: "filePaths",
width: 150,
formatter: this.formatterPic, formatter: this.formatterPic,
}, },
...@@ -259,6 +272,7 @@ export default { ...@@ -259,6 +272,7 @@ export default {
{ {
label: "操作", label: "操作",
width: 200, width: 200,
fixed: "right",
formatter: (row) => { formatter: (row) => {
return row.checkStatus == 1 ? ( return row.checkStatus == 1 ? (
<table-buttons <table-buttons
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
}}</el-col }}</el-col
> >
<el-col :span="8" <el-col :span="8"
>异常时间:{{ form.errorTime ? form.errorTime : "--" }}</el-col >异常时间:{{ formatterDate(form.errorTime) }}</el-col
> >
<el-col :span="8" <el-col :span="8"
>上下班时间:{{ >上下班时间:{{
...@@ -45,9 +45,7 @@ ...@@ -45,9 +45,7 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="10" <el-col :span="10"
>实际打卡时间:{{ >实际打卡时间:{{ formatterDate(form.actualAttendTime) }}</el-col
form.actualAttendTime ? form.actualAttendTime : "--"
}}</el-col
> >
<el-col :span="9" <el-col :span="9"
>异常结果:{{ >异常结果:{{
...@@ -55,12 +53,16 @@ ...@@ -55,12 +53,16 @@
}}</el-col }}</el-col
> >
<el-col :span="5" <el-col :span="5"
>加分/扣分方式:{{ form.subMethod ? form.subMethod : "--" }}</el-col >加分/扣分方式:{{
form.subAddType
? util_formatter("subAddType", form.subAddType)
: "--"
}}</el-col
> >
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8" <el-col :span="8"
>加分/扣分时间:{{ form.deductTime ? form.deductTime : "--" }}</el-col >加分/扣分时间:{{ formatterDate(form.deductTime) }}</el-col
> >
<el-col :span="8" <el-col :span="8"
>加分/扣分人员:{{ >加分/扣分人员:{{
...@@ -76,7 +78,9 @@ ...@@ -76,7 +78,9 @@
<el-row> <el-row>
<el-col :span="8" <el-col :span="8"
>核查结果:{{ >核查结果:{{
form.checkResult ? form.checkResult : "--" form.checkResult
? util_formatter("checkResult", form.checkResult)
: "--"
}}</el-col }}</el-col
> >
<el-col :span="8" <el-col :span="8"
...@@ -98,7 +102,7 @@ ...@@ -98,7 +102,7 @@
}}</el-col }}</el-col
> >
<el-col :span="8" <el-col :span="8"
>核查时间:{{ form.checkTime ? form.checkTime : "--" }}</el-col >核查时间:{{ formatterDate(form.checkTime) }}</el-col
> >
</el-row> </el-row>
</div> </div>
...@@ -111,7 +115,7 @@ ...@@ -111,7 +115,7 @@
>申诉说明:{{ form.appealDesc ? form.appealDesc : "--" }}</el-col >申诉说明:{{ form.appealDesc ? form.appealDesc : "--" }}</el-col
> >
<el-col :span="24" <el-col :span="24"
>申诉时间:{{ form.appealTime ? form.appealTime : "--" }}</el-col >申诉时间:{{ formatterDate(form.appealTime) }}</el-col
> >
<el-col :span="24" <el-col :span="24"
>申诉附件: >申诉附件:
...@@ -133,22 +137,24 @@ ...@@ -133,22 +137,24 @@
</el-row> </el-row>
</div> </div>
</div> </div>
<div class="box" v-if="form.view == '查看' || form.processStatus == 2"> <div class="box" v-if="form.view == '查看'">
<div class="title">申诉结果</div> <div class="title">申诉结果</div>
<div class="content"> <div class="content">
<el-row> <el-row>
<el-col :span="8" <el-col :span="8"
>申诉结果:{{ >申诉结果:{{
form.appealResult ? form.appealResult : "--" form.appealResult
? util_formatter("appealResult", form.appealResult)
: "--"
}}</el-col }}</el-col
> >
<el-col :span="8" <el-col :span="8"
>处理人员:{{ >处理人员:{{
form.updateUserId ? form.updateUserId : "--" util_formatter("updateUserId", form.updateUserId + "")
}}</el-col }}</el-col
> >
<el-col :span="8" <el-col :span="8"
>处理时间:{{ form.appealTime ? form.appealTime : "--" }}</el-col >处理时间: {{ formatterDate(form.updateTime) }}</el-col
> >
</el-row> </el-row>
<el-row> <el-row>
...@@ -457,6 +463,7 @@ ...@@ -457,6 +463,7 @@
import form from "@/assets/mixins/formdialog"; import form from "@/assets/mixins/formdialog";
import { timestampToTime } from "@/assets/utils/dateFormat.js"; import { timestampToTime } from "@/assets/utils/dateFormat.js";
import { downloadFile } from "@/assets/utils/index"; import { downloadFile } from "@/assets/utils/index";
import { formatterDate } from "@/assets/utils/index";
export default { export default {
name: "PerformAttendAppealDetail", name: "PerformAttendAppealDetail",
...@@ -478,7 +485,13 @@ export default { ...@@ -478,7 +485,13 @@ export default {
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
direction: "rtl", direction: "rtl",
toString: ["subMethod", "subAddType", "processStatus", "appealResult"], toString: [
"subMethod",
"subAddType",
"processStatus",
"appealResult",
"updateUserId",
],
toDate: [ toDate: [
"attendanceDate", "attendanceDate",
"errorTime", "errorTime",
...@@ -494,13 +507,23 @@ export default { ...@@ -494,13 +507,23 @@ export default {
], ],
createTime: [{ required: true, message: "请选择创建时间" }], createTime: [{ required: true, message: "请选择创建时间" }],
}, },
urls: {
saveUrl: "/perform/attend/appeal/audit",
},
}; };
}, },
methods: { methods: {
util_formatter(key, val) {
try {
return this.dict[key][val];
} catch (error) {
return val;
}
},
formatterDate,
// 下载附件 // 下载附件
hanldeDownloadFile(val) { hanldeDownloadFile(val) {
console.log(val);
downloadFile(val.filePath, val.fileName); downloadFile(val.filePath, val.fileName);
}, },
picMatter(val) { picMatter(val) {
...@@ -571,38 +594,14 @@ export default { ...@@ -571,38 +594,14 @@ export default {
this.$get("/perform/attend/appeal/info", { id: row.id }).then((res) => { this.$get("/perform/attend/appeal/info", { id: row.id }).then((res) => {
if (res.code == 1) { if (res.code == 1) {
this.form = res.data; this.form = res.data;
this.dict = res.dict;
} else { } else {
this.reset(); this.reset();
} }
for (let key in this.form) {
key == "actualAttendTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "attendanceDate"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "createTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "errorTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "updateTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "checkTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "reviewTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "appealTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "complainTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "happenTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "alarmTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "alarmTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: "";
}
this.form.appealResult = ""; this.form.appealResult = "";
this.form.processStatus = 2;
this.form.remark = ""; this.form.remark = "";
this.form.view = "核查";
this.open = true; this.open = true;
}); });
this.pageInfo.type = "edit"; this.pageInfo.type = "edit";
...@@ -620,10 +619,20 @@ export default { ...@@ -620,10 +619,20 @@ export default {
view(row) { view(row) {
this.reset(); this.reset();
this.query = { id: row.id }; this.query = { id: row.id };
this.urls.currUrl = "perform/attend/appeal/view"; // this.urls.currUrl = "perform/attend/appeal/view";
this.getData(); // this.getData();
this.$get("/perform/attend/appeal/view", { id: row.id }).then((res) => {
if (res.code == 1) {
this.form = res.data.entity;
this.dict = res.data.dict;
} else {
this.reset();
}
this.form.view = "查看"; this.form.view = "查看";
this.pageInfo.type = "view"; this.pageInfo.type = "view";
this.open = true;
});
this.title = "绩效记录申诉信息详细"; this.title = "绩效记录申诉信息详细";
}, },
/**取消按钮 */ /**取消按钮 */
......
...@@ -13,8 +13,17 @@ ...@@ -13,8 +13,17 @@
<div class="content"> <div class="content">
<div class="search_box"> <div class="search_box">
<div class="search"> <div class="search">
<el-select v-model="dateValue" placeholder="请选择" style="margin: 0 10px;"> <el-select
<el-option v-for="item in optionsMonths" :key="item.value" :label="item.label" :value="item.value"> v-model="dateValue"
placeholder="请选择"
style="margin: 0 10px;"
>
<el-option
v-for="item in optionsMonths"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option> </el-option>
</el-select> </el-select>
<el-button type="primary" @click="getChartsData">搜索</el-button> <el-button type="primary" @click="getChartsData">搜索</el-button>
...@@ -23,17 +32,32 @@ ...@@ -23,17 +32,32 @@
<div class="data_box"> <div class="data_box">
<div class="top"> <div class="top">
<div class="box"> <div class="box">
<bar-charts :title="'申诉次数部门排名TOP20'" :id="'dept_20'" :legendName="'申诉次数'" <bar-charts
:styleObj="{ width: '800px', height: '360px' }" :chartsData="depChartsData" /> :title="'申诉次数部门排名TOP20'"
:id="'dept_20'"
:legendName="'申诉次数'"
:styleObj="{ width: '800px', height: '360px' }"
:chartsData="depChartsData"
/>
</div> </div>
<div class="box"> <div class="box">
<bar-charts :title="'申诉次数个人排名TOP20'" :id="'person_20'" :legendName="'申诉次数'" <bar-charts
:styleObj="{ width: '800px', height: '360px' }" :chartsData="personChartsData" /> :title="'申诉次数个人排名TOP20'"
:id="'person_20'"
:legendName="'申诉次数'"
:styleObj="{ width: '800px', height: '360px' }"
:chartsData="personChartsData"
/>
</div> </div>
</div> </div>
<div class="down"> <div class="down">
<bar-charts :title="'申诉次数规则排名TOP20'" :id="'rule_20'" :legendName="'申诉次数'" <bar-charts
:styleObj="{ width: '1800px', height: '320px' }" :chartsData="depChartsData" /> :title="'申诉次数规则排名TOP20'"
:id="'rule_20'"
:legendName="'申诉次数'"
:styleObj="{ width: '1800px', height: '320px' }"
:chartsData="depChartsData"
/>
</div> </div>
</div> </div>
</div> </div>
...@@ -54,6 +78,8 @@ ...@@ -54,6 +78,8 @@
import drawerShow from "./drawershow"; import drawerShow from "./drawershow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
import BarCharts from "./components/BarCharts.vue"; import BarCharts from "./components/BarCharts.vue";
import { downloadFile } from "@/assets/utils/index";
export default { export default {
name: "PerformAttendAppealList", name: "PerformAttendAppealList",
components: { components: {
...@@ -65,6 +91,16 @@ export default { ...@@ -65,6 +91,16 @@ export default {
this.getData(); this.getData();
}, },
methods: { methods: {
handleCellClick(row, column, event, cell) {
if ((column.label = "图片凭证")) {
const suffix = `(bmp|jpg|png|tif|gif|pcx|tga|exif|fpx|svg|psd|cdr|pcd|dxf|ufo|eps|ai|raw|WMF|webp|jpeg)`;
const regular = new RegExp(`.*\.${suffix}`);
regular.test(row.filePaths);
if (!regular.test(row.filePaths)) {
downloadFile(row.filePaths, row.fileName);
}
}
},
handleClick() { handleClick() {
this.getData(); this.getData();
}, },
...@@ -81,18 +117,27 @@ export default { ...@@ -81,18 +117,27 @@ export default {
: this.getChartsData(); : this.getChartsData();
}, },
getChartsData() { getChartsData() {
this.$post('/perform/attend/appeal/stat', { appealTimeStart: this.dateValue, statType: 1 }).then(res => { this.$post("/perform/attend/appeal/stat", {
console.log(res) appealTimeStart: this.dateValue,
this.depChartsData = res.data statType: 1,
}) }).then((res) => {
this.$post('/perform/attend/appeal/stat', { appealTimeStart: this.dateValue, statType: 2 }).then(res => { console.log(res);
console.log(res) this.depChartsData = res.data;
this.personChartsData = res.data });
}) this.$post("/perform/attend/appeal/stat", {
this.$post('/perform/attend/appeal/stat', { appealTimeStart: this.dateValue, statType: 3 }).then(res => { appealTimeStart: this.dateValue,
console.log(res) statType: 2,
this.ruleChartsData = res.data }).then((res) => {
}) console.log(res);
this.personChartsData = res.data;
});
this.$post("/perform/attend/appeal/stat", {
appealTimeStart: this.dateValue,
statType: 3,
}).then((res) => {
console.log(res);
this.ruleChartsData = res.data;
});
}, },
renderTable(tableData) { renderTable(tableData) {
return ( return (
...@@ -171,14 +216,23 @@ export default { ...@@ -171,14 +216,23 @@ export default {
{ label: "所属部门", prop: "deptName" }, { label: "所属部门", prop: "deptName" },
{ label: "违规类型", prop: "irregularOtherType" }, {
{ label: "绩效规则", prop: "ruleName" }, 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: "加分/扣分时间", label: "加分/扣分时间",
prop: "attendanceDate", prop: "deductTime",
formatter: this.formatterDate, formatter: this.formatterDate,
}, },
...@@ -292,7 +346,7 @@ export default { ...@@ -292,7 +346,7 @@ export default {
label: "12月", label: "12月",
}, },
], ],
dateValue: '2023-07-01 00:00:00', dateValue: "2023-07-01 00:00:00",
}; };
}, },
}; };
......
...@@ -122,11 +122,28 @@ ...@@ -122,11 +122,28 @@
<el-col :span="22"> <el-col :span="22">
<el-form-item label="图片凭证:"> <el-form-item label="图片凭证:">
<div v-if="form.view == '查看'"> <div v-if="form.view == '查看'">
{{ form.snapPath ? picMatter(form.snapPath) : "--" }} <el-image
v-if="form.filePaths"
style="width: 100px; height: 100px"
:src="
`${
form.filePaths.indexOf('http') == -1
? baseUrl + form.filePaths
: form.filePaths
}`
"
:preview-src-list="
form.filePaths.indexOf('http') == -1
? [baseUrl + form.filePaths]
: [form.filePaths]
"
>
</el-image>
<span v-else>--</span>
</div> </div>
<ImageUpload <ImageUpload
v-else v-else
:value="form.snapPath" :value="form.filePaths"
@input="replaceImage" @input="replaceImage"
></ImageUpload> ></ImageUpload>
</el-form-item> </el-form-item>
...@@ -439,7 +456,9 @@ export default { ...@@ -439,7 +456,9 @@ export default {
}); });
}, },
replaceImage(val) { replaceImage(val) {
this.form.snapPath = val; this.form.filePaths = val;
this.$forceUpdate(this.form);
}, },
staffChange(val) { staffChange(val) {
console.log(val); console.log(val);
...@@ -453,7 +472,6 @@ export default { ...@@ -453,7 +472,6 @@ export default {
// this.urls.currUrl = "perform/attend/record/edit"; // this.urls.currUrl = "perform/attend/record/edit";
// this.getData(); // this.getData();
this.$get("/perform/attend/record/info", { id: row.id }).then((res) => { this.$get("/perform/attend/record/info", { id: row.id }).then((res) => {
console.log(res.data);
if (res.code == 1) { if (res.code == 1) {
this.form = res.data; this.form = res.data;
} else { } else {
...@@ -488,6 +506,8 @@ export default { ...@@ -488,6 +506,8 @@ export default {
}).then((res) => { }).then((res) => {
this.ruleArr = res.data.data; this.ruleArr = res.data.data;
}); });
this.form.filePaths = this.form.filePaths ? this.form.filePaths : "";
console.log(this.form);
this.open = true; this.open = true;
}); });
this.pageInfo.type = "edit"; this.pageInfo.type = "edit";
...@@ -572,7 +592,7 @@ export default { ...@@ -572,7 +592,7 @@ export default {
errorResult: "", errorResult: "",
errorTime: "", errorTime: "",
fileNames: "", fileNames: "",
snapPath: "", filePaths: "",
goOffTimeStr: "", goOffTimeStr: "",
processStatus: 1, processStatus: 1,
remark: "", remark: "",
......
...@@ -71,6 +71,8 @@ ...@@ -71,6 +71,8 @@
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import drawerShow from "./drawershow"; import drawerShow from "./drawershow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
import { downloadFile } from "@/assets/utils/index";
export default { export default {
name: "PerformAttendRecordList", name: "PerformAttendRecordList",
components: { components: {
...@@ -79,6 +81,16 @@ export default { ...@@ -79,6 +81,16 @@ export default {
mixins: [table], mixins: [table],
created() {}, created() {},
methods: { methods: {
handleCellClick(row, column, event, cell) {
if ((column.label = "图片凭证")) {
const suffix = `(bmp|jpg|png|tif|gif|pcx|tga|exif|fpx|svg|psd|cdr|pcd|dxf|ufo|eps|ai|raw|WMF|webp|jpeg)`;
const regular = new RegExp(`.*\.${suffix}`);
regular.test(row.filePaths);
if (!regular.test(row.filePaths)) {
downloadFile(row.filePaths, row.fileName);
}
}
},
/** 导入 */ /** 导入 */
handleImport() { handleImport() {
this.upload.title = "考勤绩效记录信息导入"; this.upload.title = "考勤绩效记录信息导入";
...@@ -218,15 +230,29 @@ export default { ...@@ -218,15 +230,29 @@ export default {
{ label: "异常结果", prop: "errorResult" }, { label: "异常结果", prop: "errorResult" },
/*
{
label: "图片凭证",
prop: "filePaths",
width: 150,
formatter: this.formatterPic,
},
*/
{ {
label: "图片凭证", label: "图片凭证",
prop: "snapPath", prop: "filePaths",
width: 150,
formatter: this.formatterPic, formatter: this.formatterPic,
}, },
{ label: "绩效规则", prop: "ruleNme" }, { label: "绩效规则", prop: "ruleNme" },
{ label: "加分/扣分方式", prop: "subMethod", formatter: this.formatter }, {
label: "加分/扣分方式",
prop: "subMethod",
formatter: this.formatter,
},
{ {
label: "加分/扣分时间", label: "加分/扣分时间",
...@@ -247,6 +273,7 @@ export default { ...@@ -247,6 +273,7 @@ export default {
{ {
label: "操作", label: "操作",
width: 200, width: 200,
fixed: "right",
formatter: (row) => { formatter: (row) => {
return row.processStatus == 1 ? ( return row.processStatus == 1 ? (
<table-buttons <table-buttons
......
...@@ -174,11 +174,28 @@ ...@@ -174,11 +174,28 @@
<el-col :span="22"> <el-col :span="22">
<el-form-item label="图片凭证:"> <el-form-item label="图片凭证:">
<div v-if="form.view == '查看'"> <div v-if="form.view == '查看'">
{{ form.snapPath ? picMatter(form.snapPath) : "--" }} <el-image
v-if="form.filePaths"
style="width: 100px; height: 100px"
:src="
`${
form.filePaths.indexOf('http') == -1
? baseUrl + form.filePaths
: form.filePaths
}`
"
:preview-src-list="
form.filePaths.indexOf('http') == -1
? [baseUrl + form.filePaths]
: [form.filePaths]
"
>
</el-image>
<span v-else>--</span>
</div> </div>
<ImageUpload <ImageUpload
v-else v-else
:value="form.snapPath" :value="form.filePaths"
@input="replaceImage" @input="replaceImage"
></ImageUpload> ></ImageUpload>
</el-form-item> </el-form-item>
...@@ -502,7 +519,9 @@ export default { ...@@ -502,7 +519,9 @@ export default {
}); });
}, },
replaceImage(val) { replaceImage(val) {
this.form.snapPath = val; this.form.filePaths = val;
this.$forceUpdate(this.form);
}, },
staffChange(val) { staffChange(val) {
let arr = this.staffArr.filter((v) => v.id == val); let arr = this.staffArr.filter((v) => v.id == val);
...@@ -583,7 +602,7 @@ export default { ...@@ -583,7 +602,7 @@ export default {
score: "", score: "",
processStatus: 1, processStatus: 1,
remark: "", remark: "",
snapPath: "", filePaths: "",
fileNames: "", fileNames: "",
}; };
this.open = true; this.open = true;
......
...@@ -71,6 +71,8 @@ ...@@ -71,6 +71,8 @@
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import drawerShow from "./drawershow"; import drawerShow from "./drawershow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
import { downloadFile } from "@/assets/utils/index";
export default { export default {
name: "PerformComplainRecordList", name: "PerformComplainRecordList",
components: { components: {
...@@ -79,6 +81,16 @@ export default { ...@@ -79,6 +81,16 @@ export default {
mixins: [table], mixins: [table],
created() {}, created() {},
methods: { methods: {
handleCellClick(row, column, event, cell) {
if ((column.label = "图片凭证")) {
const suffix = `(bmp|jpg|png|tif|gif|pcx|tga|exif|fpx|svg|psd|cdr|pcd|dxf|ufo|eps|ai|raw|WMF|webp|jpeg)`;
const regular = new RegExp(`.*\.${suffix}`);
regular.test(row.filePaths);
if (!regular.test(row.filePaths)) {
downloadFile(row.filePaths, row.fileName);
}
}
},
/** 导入 */ /** 导入 */
handleImport() { handleImport() {
this.upload.title = "评价绩效投诉记录信息导入"; this.upload.title = "评价绩效投诉记录信息导入";
...@@ -224,7 +236,8 @@ export default { ...@@ -224,7 +236,8 @@ export default {
{ {
label: "图片凭证", label: "图片凭证",
prop: "snapPath", prop: "filePaths",
width: 150,
formatter: this.formatterPic, formatter: this.formatterPic,
}, },
...@@ -232,7 +245,11 @@ export default { ...@@ -232,7 +245,11 @@ export default {
{ label: "绩效规则", prop: "ruleNme" }, { label: "绩效规则", prop: "ruleNme" },
{ label: "加分/扣分方式", prop: "subMethod", formatter: this.formatter }, {
label: "加分/扣分方式",
prop: "subMethod",
formatter: this.formatter,
},
{ {
label: "加分/扣分时间", label: "加分/扣分时间",
...@@ -253,6 +270,7 @@ export default { ...@@ -253,6 +270,7 @@ export default {
{ {
label: "操作", label: "操作",
width: 200, width: 200,
fixed: "right",
formatter: (row) => { formatter: (row) => {
return row.processStatus == 1 ? ( return row.processStatus == 1 ? (
<table-buttons <table-buttons
......
...@@ -148,11 +148,28 @@ ...@@ -148,11 +148,28 @@
<el-col :span="22"> <el-col :span="22">
<el-form-item label="图片凭证:"> <el-form-item label="图片凭证:">
<div v-if="form.view == '查看'"> <div v-if="form.view == '查看'">
{{ form.snapPath ? picMatter(form.snapPath) : "--" }} <el-image
v-if="form.filePaths"
style="width: 100px; height: 100px"
:src="
`${
form.filePaths.indexOf('http') == -1
? baseUrl + form.filePaths
: form.filePaths
}`
"
:preview-src-list="
form.filePaths.indexOf('http') == -1
? [baseUrl + form.filePaths]
: [form.filePaths]
"
>
</el-image>
<span v-else>--</span>
</div> </div>
<ImageUpload <ImageUpload
v-else v-else
:value="form.snapPath" :value="form.filePaths"
@input="replaceImage" @input="replaceImage"
></ImageUpload> ></ImageUpload>
</el-form-item> </el-form-item>
...@@ -278,8 +295,8 @@ ...@@ -278,8 +295,8 @@
/> />
<Field <Field
label="图片凭证地址" label="图片凭证地址"
prop="snapPath" prop="filePaths"
v-model="form.snapPath" v-model="form.filePaths"
type="textarea" type="textarea"
placeholder="请输入图片凭证地址" placeholder="请输入图片凭证地址"
/> />
...@@ -473,7 +490,9 @@ export default { ...@@ -473,7 +490,9 @@ export default {
}); });
}, },
replaceImage(val) { replaceImage(val) {
this.form.snapPath = val; this.form.filePaths = val;
this.$forceUpdate(this.form);
}, },
staffChange(val) { staffChange(val) {
console.log(val); console.log(val);
...@@ -609,7 +628,7 @@ export default { ...@@ -609,7 +628,7 @@ export default {
happenTime: null, happenTime: null,
duration: 0, duration: 0,
alarmTime: null, alarmTime: null,
snapPath: "", filePaths: "",
ruleId: null, ruleId: null,
ruleName: "", ruleName: "",
subMethod: "", subMethod: "",
......
...@@ -71,6 +71,8 @@ ...@@ -71,6 +71,8 @@
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import drawerShow from "./drawershow"; import drawerShow from "./drawershow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
import { downloadFile } from "@/assets/utils/index";
export default { export default {
name: "PerformEffectRecordList", name: "PerformEffectRecordList",
components: { components: {
...@@ -79,6 +81,16 @@ export default { ...@@ -79,6 +81,16 @@ export default {
mixins: [table], mixins: [table],
created() {}, created() {},
methods: { methods: {
handleCellClick(row, column, event, cell) {
if ((column.label = "图片凭证")) {
const suffix = `(bmp|jpg|png|tif|gif|pcx|tga|exif|fpx|svg|psd|cdr|pcd|dxf|ufo|eps|ai|raw|WMF|webp|jpeg)`;
const regular = new RegExp(`.*\.${suffix}`);
regular.test(row.filePaths);
if (!regular.test(row.filePaths)) {
downloadFile(row.filePaths, row.fileName);
}
}
},
/** 导入 */ /** 导入 */
handleImport() { handleImport() {
this.upload.title = "效能绩效记录信息导入"; this.upload.title = "效能绩效记录信息导入";
...@@ -227,12 +239,17 @@ export default { ...@@ -227,12 +239,17 @@ export default {
{ {
label: "图片凭证", label: "图片凭证",
prop: "snapPath", prop: "filePaths",
width: 150,
formatter: this.formatterPic, formatter: this.formatterPic,
}, },
{ label: "绩效规则", prop: "ruleName" }, { label: "绩效规则", prop: "ruleName" },
{ label: "加分/扣分方式", prop: "subMethod", formatter: this.formatter }, {
label: "加分/扣分方式",
prop: "subMethod",
formatter: this.formatter,
},
{ {
label: "加分/扣分时间", label: "加分/扣分时间",
...@@ -252,7 +269,8 @@ export default { ...@@ -252,7 +269,8 @@ export default {
{ {
label: "操作", label: "操作",
width: 240, width: 200,
fixed: "right",
formatter: (row) => { formatter: (row) => {
return row.processStatus == 1 ? ( return row.processStatus == 1 ? (
<table-buttons <table-buttons
......
...@@ -200,7 +200,7 @@ export default { ...@@ -200,7 +200,7 @@ export default {
formatter: this.formatterDate, formatter: this.formatterDate,
}, },
{ label: "图片凭证地址", prop: "snapPath" }, { label: "图片凭证地址", prop: "filePaths" },
{ label: "绩效规则id", prop: "ruleId", formatter: this.formatter }, { label: "绩效规则id", prop: "ruleId", formatter: this.formatter },
......
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
{{ util_formatterDate(form.alarmTime)}} {{ util_formatterDate(form.alarmTime)}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="图片凭证地址" label-class-name="labelClass" content-class-name="contentClass"> <el-descriptions-item label="图片凭证地址" label-class-name="labelClass" content-class-name="contentClass">
{{form.snapPath}} {{form.filePaths}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="绩效规则id" label-class-name="labelClass" content-class-name="contentClass"> <el-descriptions-item label="绩效规则id" label-class-name="labelClass" content-class-name="contentClass">
{{form.ruleId}} {{form.ruleId}}
......
...@@ -126,11 +126,28 @@ ...@@ -126,11 +126,28 @@
<el-col :span="22"> <el-col :span="22">
<el-form-item label="图片凭证:"> <el-form-item label="图片凭证:">
<div v-if="form.view == '查看'"> <div v-if="form.view == '查看'">
{{ form.snapPath ? picMatter(form.snapPath) : "--" }} <el-image
v-if="form.filePaths"
style="width: 100px; height: 100px"
:src="
`${
form.filePaths.indexOf('http') == -1
? baseUrl + form.filePaths
: form.filePaths
}`
"
:preview-src-list="
form.filePaths.indexOf('http') == -1
? [baseUrl + form.filePaths]
: [form.filePaths]
"
>
</el-image>
<span v-else>--</span>
</div> </div>
<ImageUpload <ImageUpload
v-else v-else
:value="form.snapPath" :value="form.filePaths"
@input="replaceImage" @input="replaceImage"
></ImageUpload> ></ImageUpload>
</el-form-item> </el-form-item>
...@@ -442,7 +459,9 @@ export default { ...@@ -442,7 +459,9 @@ export default {
}); });
}, },
replaceImage(val) { replaceImage(val) {
this.form.snapPath = val; this.form.filePaths = val;
this.$forceUpdate(this.form);
}, },
staffChange(val) { staffChange(val) {
console.log(val); console.log(val);
......
...@@ -71,6 +71,8 @@ ...@@ -71,6 +71,8 @@
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import drawerShow from "./drawershow"; import drawerShow from "./drawershow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
import { downloadFile } from "@/assets/utils/index";
export default { export default {
name: "PerformGoworkRecordList", name: "PerformGoworkRecordList",
components: { components: {
...@@ -79,6 +81,16 @@ export default { ...@@ -79,6 +81,16 @@ export default {
mixins: [table], mixins: [table],
created() {}, created() {},
methods: { methods: {
handleCellClick(row, column, event, cell) {
if ((column.label = "图片凭证")) {
const suffix = `(bmp|jpg|png|tif|gif|pcx|tga|exif|fpx|svg|psd|cdr|pcd|dxf|ufo|eps|ai|raw|WMF|webp|jpeg)`;
const regular = new RegExp(`.*\.${suffix}`);
regular.test(row.filePaths);
if (!regular.test(row.filePaths)) {
downloadFile(row.filePaths, row.fileName);
}
}
},
/** 导入 */ /** 导入 */
handleImport() { handleImport() {
this.upload.title = "办件绩效记录信息导入"; this.upload.title = "办件绩效记录信息导入";
...@@ -214,12 +226,17 @@ export default { ...@@ -214,12 +226,17 @@ export default {
{ {
label: "图片凭证", label: "图片凭证",
prop: "snapPath", prop: "filePaths",
width: 150,
formatter: this.formatterPic, formatter: this.formatterPic,
}, },
{ label: "绩效规则", prop: "ruleName" }, { label: "绩效规则", prop: "ruleName" },
{ label: "加分/扣分方式", prop: "subMethod", formatter: this.formatter }, {
label: "加分/扣分方式",
prop: "subMethod",
formatter: this.formatter,
},
{ {
label: "加分/扣分时间", label: "加分/扣分时间",
...@@ -239,7 +256,8 @@ export default { ...@@ -239,7 +256,8 @@ export default {
{ {
label: "操作", label: "操作",
width: 240, width: 200,
fixed: "right",
formatter: (row) => { formatter: (row) => {
return row.processStatus == 1 ? ( return row.processStatus == 1 ? (
<table-buttons <table-buttons
......
...@@ -86,11 +86,28 @@ ...@@ -86,11 +86,28 @@
<el-col :span="22"> <el-col :span="22">
<el-form-item label="图片凭证:"> <el-form-item label="图片凭证:">
<div v-if="form.view == '查看'"> <div v-if="form.view == '查看'">
{{ form.snapPath ? picMatter(form.snapPath) : "--" }} <el-image
v-if="form.filePaths"
style="width: 100px; height: 100px"
:src="
`${
form.filePaths.indexOf('http') == -1
? baseUrl + form.filePaths
: form.filePaths
}`
"
:preview-src-list="
form.filePaths.indexOf('http') == -1
? [baseUrl + form.filePaths]
: [form.filePaths]
"
>
</el-image>
<span v-else>--</span>
</div> </div>
<ImageUpload <ImageUpload
v-else v-else
:value="form.snapPath" :value="form.filePaths"
@input="replaceImage" @input="replaceImage"
></ImageUpload> ></ImageUpload>
</el-form-item> </el-form-item>
...@@ -403,8 +420,9 @@ export default { ...@@ -403,8 +420,9 @@ export default {
}); });
}, },
replaceImage(val) { replaceImage(val) {
this.form.snapPath = val; this.form.filePaths = val;
this.$forceUpdate(this.form.snapPath);
this.$forceUpdate(this.form);
}, },
staffChange(val) { staffChange(val) {
console.log(val); console.log(val);
...@@ -445,7 +463,7 @@ export default { ...@@ -445,7 +463,7 @@ export default {
: ""; : "";
} }
this.form.processStatus = 2; this.form.processStatus = 2;
this.form.snapPath ? "" : (this.form.snapPath = ""); this.form.filePaths ? "" : (this.form.filePaths = "");
this.form.view = "核查"; this.form.view = "核查";
this.staffChange(this.form.staffId); this.staffChange(this.form.staffId);
this.$post("/perform/rules/list", { this.$post("/perform/rules/list", {
...@@ -546,7 +564,7 @@ export default { ...@@ -546,7 +564,7 @@ export default {
remark: "", remark: "",
categoryId: "", categoryId: "",
happenTime: "", happenTime: "",
snapPath: "", filePaths: "",
}; };
this.resetForm("form"); this.resetForm("form");
}, },
......
...@@ -71,6 +71,8 @@ ...@@ -71,6 +71,8 @@
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import drawerShow from "./drawershow"; import drawerShow from "./drawershow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
import { downloadFile } from "@/assets/utils/index";
export default { export default {
name: "PerformOtherRecordList", name: "PerformOtherRecordList",
components: { components: {
...@@ -79,6 +81,16 @@ export default { ...@@ -79,6 +81,16 @@ export default {
mixins: [table], mixins: [table],
created() {}, created() {},
methods: { methods: {
handleCellClick(row, column, event, cell) {
if ((column.label = "图片凭证")) {
const suffix = `(bmp|jpg|png|tif|gif|pcx|tga|exif|fpx|svg|psd|cdr|pcd|dxf|ufo|eps|ai|raw|WMF|webp|jpeg)`;
const regular = new RegExp(`.*\.${suffix}`);
regular.test(row.filePaths);
if (!regular.test(row.filePaths)) {
downloadFile(row.filePaths, row.fileName);
}
}
},
/** 导入 */ /** 导入 */
handleImport() { handleImport() {
this.upload.title = "其它绩效记录信息导入"; this.upload.title = "其它绩效记录信息导入";
...@@ -223,12 +235,17 @@ export default { ...@@ -223,12 +235,17 @@ export default {
// { label: "绩效规则id", prop: "ruleId", formatter: this.formatter }, // { label: "绩效规则id", prop: "ruleId", formatter: this.formatter },
{ {
label: "图片凭证", label: "图片凭证",
prop: "snapPath", prop: "filePaths",
width: 150,
formatter: this.formatterPic, formatter: this.formatterPic,
}, },
{ label: "绩效规则", prop: "ruleName" }, { label: "绩效规则", prop: "ruleName" },
{ label: "加分/扣分方式", prop: "subMethod", formatter: this.formatter }, {
label: "加分/扣分方式",
prop: "subMethod",
formatter: this.formatter,
},
{ {
label: "加分/扣分时间", label: "加分/扣分时间",
...@@ -248,7 +265,8 @@ export default { ...@@ -248,7 +265,8 @@ export default {
{ {
label: "操作", label: "操作",
width: 240, width: 200,
fixed: "right",
formatter: (row) => { formatter: (row) => {
return row.processStatus == 1 ? ( return row.processStatus == 1 ? (
<table-buttons <table-buttons
......
...@@ -139,11 +139,28 @@ ...@@ -139,11 +139,28 @@
<el-col :span="22"> <el-col :span="22">
<el-form-item label="图片凭证:"> <el-form-item label="图片凭证:">
<div v-if="form.view == '查看'"> <div v-if="form.view == '查看'">
{{ form.snapPath ? picMatter(form.snapPath) : "--" }} <el-image
v-if="form.filePaths"
style="width: 100px; height: 100px"
:src="
`${
form.filePaths.indexOf('http') == -1
? baseUrl + form.filePaths
: form.filePaths
}`
"
:preview-src-list="
form.filePaths.indexOf('http') == -1
? [baseUrl + form.filePaths]
: [form.filePaths]
"
>
</el-image>
<span v-else>--</span>
</div> </div>
<ImageUpload <ImageUpload
v-else v-else
:value="form.snapPath" :value="form.filePaths"
@input="replaceImage" @input="replaceImage"
></ImageUpload> ></ImageUpload>
</el-form-item> </el-form-item>
...@@ -457,7 +474,9 @@ export default { ...@@ -457,7 +474,9 @@ export default {
}); });
}, },
replaceImage(val) { replaceImage(val) {
this.form.snapPath = val; this.form.filePaths = val;
this.$forceUpdate(this.form);
}, },
staffChange(val) { staffChange(val) {
console.log(val); console.log(val);
...@@ -587,7 +606,7 @@ export default { ...@@ -587,7 +606,7 @@ export default {
deptId: "", deptId: "",
deptName: "", deptName: "",
fileNames: "", fileNames: "",
snapPath: "", filePaths: "",
processStatus: 1, processStatus: 1,
remark: "", remark: "",
reviewDevice: "", reviewDevice: "",
......
...@@ -71,6 +71,8 @@ ...@@ -71,6 +71,8 @@
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import drawerShow from "./drawershow"; import drawerShow from "./drawershow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
import { downloadFile } from "@/assets/utils/index";
export default { export default {
name: "PerformReviewRecordList", name: "PerformReviewRecordList",
components: { components: {
...@@ -79,6 +81,16 @@ export default { ...@@ -79,6 +81,16 @@ export default {
mixins: [table], mixins: [table],
created() {}, created() {},
methods: { methods: {
handleCellClick(row, column, event, cell) {
if ((column.label = "图片凭证")) {
const suffix = `(bmp|jpg|png|tif|gif|pcx|tga|exif|fpx|svg|psd|cdr|pcd|dxf|ufo|eps|ai|raw|WMF|webp|jpeg)`;
const regular = new RegExp(`.*\.${suffix}`);
regular.test(row.filePaths);
if (!regular.test(row.filePaths)) {
downloadFile(row.filePaths, row.fileName);
}
}
},
/** 导入 */ /** 导入 */
handleImport() { handleImport() {
this.upload.title = "评价差评绩效记录信息导入"; this.upload.title = "评价差评绩效记录信息导入";
...@@ -224,13 +236,18 @@ export default { ...@@ -224,13 +236,18 @@ export default {
{ {
label: "图片凭证", label: "图片凭证",
prop: "snapPath", prop: "filePaths",
width: 150,
formatter: this.formatterPic, formatter: this.formatterPic,
}, },
{ label: "绩效规则", prop: "ruleNme" }, { label: "绩效规则", prop: "ruleNme" },
{ label: "加分/扣分方式", prop: "subMethod", formatter: this.formatter }, {
label: "加分/扣分方式",
prop: "subMethod",
formatter: this.formatter,
},
{ {
label: "加分/扣分时间", label: "加分/扣分时间",
...@@ -251,6 +268,7 @@ export default { ...@@ -251,6 +268,7 @@ export default {
{ {
label: "操作", label: "操作",
width: 200, width: 200,
fixed: "right",
formatter: (row) => { formatter: (row) => {
return row.processStatus == 1 ? ( return row.processStatus == 1 ? (
<table-buttons <table-buttons
......
...@@ -381,6 +381,7 @@ export default { ...@@ -381,6 +381,7 @@ export default {
}; };
}, },
methods: { methods: {
handleRowClick(val) { handleRowClick(val) {
val.check = !val.check; val.check = !val.check;
val.check val.check
......
...@@ -38,6 +38,7 @@ ...@@ -38,6 +38,7 @@
data() { data() {
return { return {
config: { config: {
isshowTabPane: true,
search: [ search: [
{ {
name: "fullName", name: "fullName",
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment