Commit 68b5d834 authored by 王启林's avatar 王启林
parents a47aed2b d156a9bd
......@@ -26,6 +26,7 @@
"file-saver": "2.0.4",
"fuse.js": "6.4.3",
"js-cookie": "2.2.1",
"js-export-excel": "^1.1.4",
"jsencrypt": "3.0.0-rc.1",
"json-bigint": "^0.3.0",
"jwt-decode": "3.1.2",
......
<template>
<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>
</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 {
formatterPic(row, column, val) {
const content = formatter(this.tableData, column, val);
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 (
<el-image
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"
></el-image>
);
} else {
return <el-link type="primary">{val}</el-link>;
}
} else {
return val;
}
},
// 考勤组格式
formatterBanci(row, column, val) {
const content = formatter(this.tableData, column, val);
......@@ -489,6 +498,7 @@ export default {
},
// 当某一行被点击时会触发该事件
handleRowClick(row, column, event) {},
handleCellClick(row, column, event) {},
// 合并表格行列
handleSpanMethod() {},
// 自定义表格排序
......@@ -619,6 +629,7 @@ export default {
methods: {
handleSelectionChange: this.handleSelectionChange,
handleRowClick: this.handleRowClick,
handleCellClick: this.handleCellClick,
tableRowClassName: this.tableRowClassName,
handleSpanMethod: this.handleSpanMethod,
handleSortChange: this.handleSortChange,
......
......@@ -31,7 +31,7 @@ export default {
<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;margin-left:20px">
({data.children?data.children.length:0})
({data.personList?data.personList.length:0})
</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) => {
* @returns {string} val 解析后的结果
*/
export function formatterDate(time) {
if (!time) return '';
if(time==='undefined'||time===null) {
return '--'}
if (!time) return '--';
let date = new Date(Number(time));
let Y = date.getFullYear() + '-';
let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
......
......@@ -8,11 +8,12 @@
@selection-change="handleSelectionChange"
@sort-change="handleSortChange"
@row-click="handleRowClick"
@cell-click="handleCellClick"
:row-class-name="tableRowClassName"
:empty-text="emptytxt ? emptytxt : emptyText"
border
style="width: 100%"
height="570"
height="530"
>
<el-table-column
v-for="column in columns"
......@@ -81,6 +82,11 @@ export default {
required: false,
default: () => {},
},
handleCellClick: {
type: Function,
required: false,
default: () => {},
},
handleSortChange: {
type: Function,
required: false,
......
......@@ -182,6 +182,7 @@
:handleSelectableMethod="config.methods.handleSelectableMethod"
:handleSelectionChange="config.methods.handleSelectionChange"
:handleRowClick="config.methods.handleRowClick"
:handleCellClick="config.methods.handleCellClick"
/>
<DataTableFlow
......
......@@ -7,9 +7,9 @@
size="mini"
@click="$emit('edit', row)"
title="编辑"
style="margin-left: 0;margin-right: 5px"
>编辑</el-button
>
<span>&nbsp;</span>
<el-button
v-if="!noView"
type="text"
......@@ -17,18 +17,18 @@
size="mini"
@click="$emit('view', row)"
title="查看"
style="margin-left: 0;margin-right: 5px"
>查看</el-button
>
<span>&nbsp;</span>
<el-switch
v-if="switchBtn"
v-model="row.check"
@change="$emit('view', row)"
title="核查"
:active-value="true"
style="margin-left: 0;margin-right: 5px"
:inactive-value="false"
></el-switch>
<span>&nbsp;</span>
<el-button
v-if="reCheck"
type="text"
......@@ -36,9 +36,9 @@
size="mini"
@click="$emit('edit', row)"
title="核查"
style="margin-left: 0;margin-right: 5px"
>核查</el-button
>
<span>&nbsp;</span>
<el-button
v-if="chuli"
type="text"
......@@ -46,9 +46,9 @@
size="mini"
@click="$emit('edit', row)"
title="处理"
style="margin-left: 0;margin-right: 5px"
>处理</el-button
>
<span>&nbsp;</span>
<Confirm @confirm="$emit('del', row.id)" message="确定要删除该条记录吗?">
<el-button
v-if="!noDel"
......@@ -56,6 +56,7 @@
icon="el-icon-delete"
size="mini"
title="删除"
style="margin-left: 0;margin-right: 5px"
>删除</el-button
>
</Confirm>
......
......@@ -14,7 +14,9 @@ import VueAMap from "vue-amap";
import * as echarts from "echarts";
import formCreate from "@form-create/element-ui";
import FcDesigner from "@form-create/designer";
// 引入时间处理
import moment from "moment";
Vue.prototype.$moment = moment;
// 将自动注册所有组件为全局组件
import dataV from "@jiaminghi/data-view";
......
......@@ -49,6 +49,7 @@ const router = new Router({
...restBuilder("job", "job"), // 职位信息
...restBuilder("staff/adjust/log", "staff/adjust/log"), // 员工调岗信息
...restBuilder("staff/onboard", "staff/onboard"), // 员工入职信息
...restBuilder("staff/regular", "staff/regular"), // 员工转正信息
...restBuilder("staff/leave", "staff/leave"), // 员工离职信息
...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 @@
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig" notDel>
<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>
<drawer-show ref="drawerform" @ok="getData" />
<drawer-show ref="drawerform" @ok="getData"/>
<drawer-audit ref="draweraudit" @ok="getData"/>
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "AttendanceLeaveRecordList",
components: {
drawerShow
},
},
mixins: [table],
created() {
},
......@@ -33,12 +37,17 @@
toView(row) {
this.$refs.drawerform.view(row);
},
doExport(){
audit(row) {
//todo 审核页面进行审核
this.$refs.draweraudit.view(row);
},
doExport() {
this.isExport = true;
this.$download("/leave/record/exportExcel", {
"idList": this.selection,
'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.$message.error(error.message);
})
......@@ -46,9 +55,9 @@
},
data() {
return {
isExport:false,
isExport: false,
config: {
isshowTabPane:true,
isshowTabPane: true,
search: [
{
name: "leavePerson",
......@@ -89,7 +98,7 @@
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{type: "index", label: "序号", width: 50},
// {label: "请假人id", prop: "leavePersonId", formatter: this.formatter},
......@@ -101,25 +110,46 @@
{label: "电话号码", prop: "phoneNumber"},
{label: "请假类型", prop: "leaveType",formatter: this.formatterLeaveType},
{label: "请假类型", prop: "leaveType", formatter: this.formatterLeaveType},
{label: "开始时间", prop: "startTime", 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: "审批负责人", prop: "approver"},
{label: "处理状态", prop: "processStatus", formatter: this.formatter},
{label: "审核状态", prop: "auditResult", formatter: this.formatter},
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{
label: "操作",
width: 240,
formatter: row => {
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 @@
}
};
}
};
};
</script>
......@@ -68,10 +68,27 @@
{{ form.deductPerson ? form.deductPerson : "--" }}</el-col
>
<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>
</div>
</div>
......@@ -95,12 +112,16 @@
@input="radioChange"
v-else
>
<el-radio :label="1">加分/扣分</el-radio>
<el-radio :label="2">不加分/不扣分</el-radio>
<el-radio
v-for="(val, i) in dict.checkResult"
:key="i"
:label="val"
>{{ val }}</el-radio
>
</el-radio-group>
</el-form-item>
</el-row>
<div v-if="form.checkResult == 1">
<div v-if="form.checkResult == '加分或扣分'">
<el-row>
<el-form-item
:label="form.view == '查看' ? '绩效规则:' : '修改规则:'"
......@@ -391,7 +412,7 @@ export default {
this.$forceUpdate(this.form);
},
picMatter(val) {
if (val || val !== "--") {
if (val) {
return (
<el-image
src={val.indexOf("http") == -1 ? this.baseUrl + val : val}
......@@ -430,7 +451,6 @@ export default {
await this.$get("/check/attend/record/info", { id: row.id }).then(
(res) => {
console.log(res.data);
if (res.code == 1) {
this.form = res.data;
this.dict = res.dict;
......@@ -453,15 +473,16 @@ export default {
: "";
}
this.form.checkResult = 1;
this.form.view = "核查";
this.$post("/perform/rules/list", {
page: 1,
size: -1,
categoryId: this.form.categoryId,
}).then((res) => {
this.ruleArr = res.data.data;
});
this.form.view = "核查";
this.kaoqinArr = res.data.data;
this.open = true;
});
}
);
this.pageInfo.type = "edit";
......
......@@ -63,6 +63,8 @@
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
import { downloadFile } from "@/assets/utils/index";
export default {
name: "CheckAttendRecordList",
components: {
......@@ -71,6 +73,16 @@ export default {
mixins: [table],
created() {},
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() {
this.upload.title = "考勤绩效记录核查信息导入";
......@@ -212,7 +224,8 @@ export default {
{
label: "图片凭证",
prop: "snapPath",
prop: "filePaths",
width: 150,
formatter: this.formatterPic,
},
......@@ -255,6 +268,7 @@ export default {
{
label: "操作",
width: 200,
fixed: "right",
formatter: (row) => {
return row.checkStatus == 1 ? (
<table-buttons
......
......@@ -84,10 +84,26 @@
{{ form.deductTime ? form.deductTime : "--" }}</el-col
>
<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>
</div>
</div>
......@@ -111,12 +127,16 @@
@input="radioChange"
v-else
>
<el-radio :label="1">加分/扣分</el-radio>
<el-radio :label="2">不加分/不扣分</el-radio>
<el-radio
v-for="(val, i) in dict.checkResult"
:key="i"
:label="val"
>{{ val }}</el-radio
>
</el-radio-group>
</el-form-item>
</el-row>
<div v-if="form.checkResult == 1">
<div v-if="form.checkResult == '加分或扣分'">
<el-row>
<el-form-item
:label="form.view == '查看' ? '绩效规则:' : '修改规则:'"
......@@ -492,7 +512,7 @@ export default {
size: -1,
categoryId: this.form.categoryId,
}).then((res) => {
this.ruleArr = res.data.data;
this.kaoqinArr = res.data.data;
});
this.form.view = "核查";
this.open = true;
......
......@@ -63,6 +63,8 @@
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
import { downloadFile } from "@/assets/utils/index";
export default {
name: "CheckComplainRecordList",
components: {
......@@ -71,6 +73,16 @@ export default {
mixins: [table],
created() {},
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() {
this.upload.title = "评价绩效投诉核查信息导入";
......@@ -217,7 +229,8 @@ export default {
{
label: "图片凭证",
prop: "snapPath",
prop: "filePaths",
width: 150,
formatter: this.formatterPic,
},
......@@ -262,6 +275,7 @@ export default {
{
label: "操作",
width: 200,
fixed: "right",
formatter: (row) => {
return row.checkStatus == 1 ? (
<table-buttons
......
......@@ -61,10 +61,26 @@
</el-row>
<el-row>
<el-col :span="24">
图片凭证:{{
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>
</div>
</div>
......@@ -88,12 +104,16 @@
@input="radioChange"
v-else
>
<el-radio :label="1">加分/扣分</el-radio>
<el-radio :label="2">不加分/不扣分</el-radio>
<el-radio
v-for="(val, i) in dict.checkResult"
:key="i"
:label="val"
>{{ val }}</el-radio
>
</el-radio-group>
</el-form-item>
</el-row>
<div v-if="form.checkResult == 1">
<div v-if="form.checkResult == '加分或扣分'">
<el-row>
<el-form-item
:label="form.view == '查看' ? '绩效规则:' : '修改规则:'"
......@@ -248,8 +268,8 @@
/>
<Field
label="图片凭证地址"
prop="snapPath"
v-model="form.snapPath"
prop="filePaths"
v-model="form.filePaths"
type="textarea"
placeholder="请输入图片凭证地址"
/>
......@@ -465,7 +485,7 @@ export default {
size: -1,
categoryId: this.form.categoryId,
}).then((res) => {
this.ruleArr = res.data.data;
this.kaoqinArr = res.data.data;
});
this.form.view = "核查";
this.open = true;
......@@ -554,7 +574,7 @@ export default {
happenTime: null,
duration: 0,
alarmTime: null,
snapPath: "",
filePaths: "",
ruleId: null,
ruleName: "",
subMethod: 1,
......
......@@ -63,6 +63,8 @@
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
import { downloadFile } from "@/assets/utils/index";
export default {
name: "CheckEffectRecordList",
components: {
......@@ -71,6 +73,16 @@ export default {
mixins: [table],
created() {},
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() {
this.upload.title = "效能绩效核查信息导入";
......@@ -219,7 +231,8 @@ export default {
{
label: "图片凭证",
prop: "snapPath",
prop: "filePaths",
width: 150,
formatter: this.formatterPic,
},
......@@ -262,6 +275,7 @@ export default {
{
label: "操作",
width: 200,
fixed: "right",
formatter: (row) => {
return row.checkStatus == 1 ? (
<table-buttons
......
......@@ -42,7 +42,7 @@
{{ util_formatterDate(form.alarmTime)}}
</el-descriptions-item>
<el-descriptions-item label="图片凭证地址" label-class-name="labelClass" content-class-name="contentClass">
{{form.snapPath}}
{{form.filePaths}}
</el-descriptions-item>
<el-descriptions-item label="绩效规则id" label-class-name="labelClass" content-class-name="contentClass">
{{form.ruleId}}
......
......@@ -63,10 +63,26 @@
</el-row>
<el-row>
<el-col :span="24">
图片凭证:{{
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>
</div>
</div>
......@@ -90,12 +106,16 @@
@input="radioChange"
v-else
>
<el-radio :label="1">加分/扣分</el-radio>
<el-radio :label="2">不加分/不扣分</el-radio>
<el-radio
v-for="(val, i) in dict.checkResult"
:key="i"
:label="val"
>{{ val }}</el-radio
>
</el-radio-group>
</el-form-item>
</el-row>
<div v-if="form.checkResult == 1">
<div v-if="form.checkResult == '加分或扣分'">
<el-row>
<el-form-item
:label="form.view == '查看' ? '绩效规则:' : '修改规则:'"
......@@ -458,7 +478,7 @@ export default {
size: -1,
categoryId: this.form.categoryId,
}).then((res) => {
this.ruleArr = res.data.data;
this.kaoqinArr = res.data.data;
});
this.form.view = "核查";
this.open = true;
......
......@@ -63,6 +63,8 @@
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
import { downloadFile } from "@/assets/utils/index";
export default {
name: "CheckGoworkRecordList",
components: {
......@@ -71,6 +73,16 @@ export default {
mixins: [table],
created() {},
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() {
this.upload.title = "办件绩效核查信息导入";
......@@ -207,7 +219,8 @@ export default {
{
label: "图片凭证",
prop: "snapPath",
prop: "filePaths",
width: 150,
formatter: this.formatterPic,
},
......@@ -250,6 +263,7 @@ export default {
{
label: "操作",
width: 200,
fixed: "right",
formatter: (row) => {
return row.checkStatus == 1 ? (
<table-buttons
......
......@@ -59,10 +59,26 @@
</el-row>
<el-row>
<el-col :span="24"
>图片凭证:{{
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>
</div>
</div>
......@@ -86,12 +102,16 @@
@input="radioChange"
v-else
>
<el-radio :label="1">加分/扣分</el-radio>
<el-radio :label="2">不加分/不扣分</el-radio>
<el-radio
v-for="(val, i) in dict.checkResult"
:key="i"
:label="val"
>{{ val }}</el-radio
>
</el-radio-group>
</el-form-item>
</el-row>
<div v-if="form.checkResult == 1">
<div v-if="form.checkResult == '加分或扣分'">
<el-row>
<el-form-item
:label="form.view == '查看' ? '绩效规则:' : '修改规则:'"
......@@ -457,7 +477,7 @@ export default {
size: -1,
categoryId: this.form.categoryId,
}).then((res) => {
this.ruleArr = res.data.data;
this.kaoqinArr = res.data.data;
});
this.form.view = "核查";
this.open = true;
......
......@@ -63,6 +63,8 @@
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
import { downloadFile } from "@/assets/utils/index";
export default {
name: "CheckOtherRecordList",
components: {
......@@ -71,6 +73,16 @@ export default {
mixins: [table],
created() {},
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() {
this.upload.title = "其它绩效核查信息导入";
......@@ -215,7 +227,8 @@ export default {
// { label: "绩效规则id", prop: "ruleId", formatter: this.formatter },
{
label: "图片凭证",
prop: "snapPath",
prop: "filePaths",
width: 150,
formatter: this.formatterPic,
},
......@@ -258,6 +271,7 @@ export default {
{
label: "操作",
width: 200,
fixed: "right",
formatter: (row) => {
return row.checkStatus == 1 ? (
<table-buttons
......
......@@ -64,10 +64,26 @@
<el-row>
<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>
</div>
</div>
......@@ -91,12 +107,16 @@
@input="radioChange"
v-else
>
<el-radio :label="1">加分/扣分</el-radio>
<el-radio :label="2">不加分/不扣分</el-radio>
<el-radio
v-for="(val, i) in dict.checkResult"
:key="i"
:label="val"
>{{ val }}</el-radio
>
</el-radio-group>
</el-form-item>
</el-row>
<div v-if="form.checkResult == 1">
<div v-if="form.checkResult == '加分或扣分'">
<el-row>
<el-form-item
:label="form.view == '查看' ? '绩效规则:' : '修改规则:'"
......@@ -458,7 +478,7 @@ export default {
size: -1,
categoryId: this.form.categoryId,
}).then((res) => {
this.ruleArr = res.data.data;
this.kaoqinArr = res.data.data;
});
this.form.view = "核查";
this.open = true;
......
......@@ -63,6 +63,8 @@
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
import { downloadFile } from "@/assets/utils/index";
export default {
name: "CheckReviewRecordList",
components: {
......@@ -71,6 +73,16 @@ export default {
mixins: [table],
created() {},
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() {
this.upload.title = "评价差评绩效核查信息导入";
......@@ -216,7 +228,8 @@ export default {
{
label: "图片凭证",
prop: "snapPath",
prop: "filePaths",
width: 150,
formatter: this.formatterPic,
},
......@@ -259,6 +272,7 @@ export default {
{
label: "操作",
width: 200,
fixed: "right",
formatter: (row) => {
return row.checkStatus == 1 ? (
<table-buttons
......
......@@ -35,7 +35,7 @@
}}</el-col
>
<el-col :span="8"
>异常时间:{{ form.errorTime ? form.errorTime : "--" }}</el-col
>异常时间:{{ formatterDate(form.errorTime) }}</el-col
>
<el-col :span="8"
>上下班时间:{{
......@@ -45,9 +45,7 @@
</el-row>
<el-row>
<el-col :span="10"
>实际打卡时间:{{
form.actualAttendTime ? form.actualAttendTime : "--"
}}</el-col
>实际打卡时间:{{ formatterDate(form.actualAttendTime) }}</el-col
>
<el-col :span="9"
>异常结果:{{
......@@ -55,12 +53,16 @@
}}</el-col
>
<el-col :span="5"
>加分/扣分方式:{{ form.subMethod ? form.subMethod : "--" }}</el-col
>加分/扣分方式:{{
form.subAddType
? util_formatter("subAddType", form.subAddType)
: "--"
}}</el-col
>
</el-row>
<el-row>
<el-col :span="8"
>加分/扣分时间:{{ form.deductTime ? form.deductTime : "--" }}</el-col
>加分/扣分时间:{{ formatterDate(form.deductTime) }}</el-col
>
<el-col :span="8"
>加分/扣分人员:{{
......@@ -76,7 +78,9 @@
<el-row>
<el-col :span="8"
>核查结果:{{
form.checkResult ? form.checkResult : "--"
form.checkResult
? util_formatter("checkResult", form.checkResult)
: "--"
}}</el-col
>
<el-col :span="8"
......@@ -98,7 +102,7 @@
}}</el-col
>
<el-col :span="8"
>核查时间:{{ form.checkTime ? form.checkTime : "--" }}</el-col
>核查时间:{{ formatterDate(form.checkTime) }}</el-col
>
</el-row>
</div>
......@@ -111,7 +115,7 @@
>申诉说明:{{ form.appealDesc ? form.appealDesc : "--" }}</el-col
>
<el-col :span="24"
>申诉时间:{{ form.appealTime ? form.appealTime : "--" }}</el-col
>申诉时间:{{ formatterDate(form.appealTime) }}</el-col
>
<el-col :span="24"
>申诉附件:
......@@ -133,22 +137,24 @@
</el-row>
</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="content">
<el-row>
<el-col :span="8"
>申诉结果:{{
form.appealResult ? form.appealResult : "--"
form.appealResult
? util_formatter("appealResult", form.appealResult)
: "--"
}}</el-col
>
<el-col :span="8"
>处理人员:{{
form.updateUserId ? form.updateUserId : "--"
util_formatter("updateUserId", form.updateUserId + "")
}}</el-col
>
<el-col :span="8"
>处理时间:{{ form.appealTime ? form.appealTime : "--" }}</el-col
>处理时间: {{ formatterDate(form.updateTime) }}</el-col
>
</el-row>
<el-row>
......@@ -457,6 +463,7 @@
import form from "@/assets/mixins/formdialog";
import { timestampToTime } from "@/assets/utils/dateFormat.js";
import { downloadFile } from "@/assets/utils/index";
import { formatterDate } from "@/assets/utils/index";
export default {
name: "PerformAttendAppealDetail",
......@@ -478,7 +485,13 @@ export default {
// 是否显示弹出层
open: false,
direction: "rtl",
toString: ["subMethod", "subAddType", "processStatus", "appealResult"],
toString: [
"subMethod",
"subAddType",
"processStatus",
"appealResult",
"updateUserId",
],
toDate: [
"attendanceDate",
"errorTime",
......@@ -494,13 +507,23 @@ export default {
],
createTime: [{ required: true, message: "请选择创建时间" }],
},
urls: {
saveUrl: "/perform/attend/appeal/audit",
},
};
},
methods: {
util_formatter(key, val) {
try {
return this.dict[key][val];
} catch (error) {
return val;
}
},
formatterDate,
// 下载附件
hanldeDownloadFile(val) {
console.log(val);
downloadFile(val.filePath, val.fileName);
},
picMatter(val) {
......@@ -571,38 +594,14 @@ export default {
this.$get("/perform/attend/appeal/info", { id: row.id }).then((res) => {
if (res.code == 1) {
this.form = res.data;
this.dict = res.dict;
} else {
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.processStatus = 2;
this.form.remark = "";
this.form.view = "核查";
this.open = true;
});
this.pageInfo.type = "edit";
......@@ -620,10 +619,20 @@ export default {
view(row) {
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "perform/attend/appeal/view";
this.getData();
// this.urls.currUrl = "perform/attend/appeal/view";
// 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.pageInfo.type = "view";
this.open = true;
});
this.title = "绩效记录申诉信息详细";
},
/**取消按钮 */
......
......@@ -13,8 +13,17 @@
<div class="content">
<div class="search_box">
<div class="search">
<el-select 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-select
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-select>
<el-button type="primary" @click="getChartsData">搜索</el-button>
......@@ -23,17 +32,32 @@
<div class="data_box">
<div class="top">
<div class="box">
<bar-charts :title="'申诉次数部门排名TOP20'" :id="'dept_20'" :legendName="'申诉次数'"
:styleObj="{ width: '800px', height: '360px' }" :chartsData="depChartsData" />
<bar-charts
:title="'申诉次数部门排名TOP20'"
:id="'dept_20'"
:legendName="'申诉次数'"
:styleObj="{ width: '800px', height: '360px' }"
:chartsData="depChartsData"
/>
</div>
<div class="box">
<bar-charts :title="'申诉次数个人排名TOP20'" :id="'person_20'" :legendName="'申诉次数'"
:styleObj="{ width: '800px', height: '360px' }" :chartsData="personChartsData" />
<bar-charts
:title="'申诉次数个人排名TOP20'"
:id="'person_20'"
:legendName="'申诉次数'"
:styleObj="{ width: '800px', height: '360px' }"
:chartsData="personChartsData"
/>
</div>
</div>
<div class="down">
<bar-charts :title="'申诉次数规则排名TOP20'" :id="'rule_20'" :legendName="'申诉次数'"
:styleObj="{ width: '1800px', height: '320px' }" :chartsData="depChartsData" />
<bar-charts
:title="'申诉次数规则排名TOP20'"
:id="'rule_20'"
:legendName="'申诉次数'"
:styleObj="{ width: '1800px', height: '320px' }"
:chartsData="depChartsData"
/>
</div>
</div>
</div>
......@@ -54,6 +78,8 @@
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
import BarCharts from "./components/BarCharts.vue";
import { downloadFile } from "@/assets/utils/index";
export default {
name: "PerformAttendAppealList",
components: {
......@@ -65,6 +91,16 @@ export default {
this.getData();
},
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() {
this.getData();
},
......@@ -81,18 +117,27 @@ export default {
: this.getChartsData();
},
getChartsData() {
this.$post('/perform/attend/appeal/stat', { appealTimeStart: this.dateValue, statType: 1 }).then(res => {
console.log(res)
this.depChartsData = res.data
})
this.$post('/perform/attend/appeal/stat', { appealTimeStart: this.dateValue, statType: 2 }).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
})
this.$post("/perform/attend/appeal/stat", {
appealTimeStart: this.dateValue,
statType: 1,
}).then((res) => {
console.log(res);
this.depChartsData = res.data;
});
this.$post("/perform/attend/appeal/stat", {
appealTimeStart: this.dateValue,
statType: 2,
}).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) {
return (
......@@ -171,14 +216,23 @@ export default {
{ 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: "加分/扣分时间",
prop: "attendanceDate",
prop: "deductTime",
formatter: this.formatterDate,
},
......@@ -292,7 +346,7 @@ export default {
label: "12月",
},
],
dateValue: '2023-07-01 00:00:00',
dateValue: "2023-07-01 00:00:00",
};
},
};
......
......@@ -122,11 +122,28 @@
<el-col :span="22">
<el-form-item label="图片凭证:">
<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>
<ImageUpload
v-else
:value="form.snapPath"
:value="form.filePaths"
@input="replaceImage"
></ImageUpload>
</el-form-item>
......@@ -439,7 +456,9 @@ export default {
});
},
replaceImage(val) {
this.form.snapPath = val;
this.form.filePaths = val;
this.$forceUpdate(this.form);
},
staffChange(val) {
console.log(val);
......@@ -453,7 +472,6 @@ export default {
// this.urls.currUrl = "perform/attend/record/edit";
// this.getData();
this.$get("/perform/attend/record/info", { id: row.id }).then((res) => {
console.log(res.data);
if (res.code == 1) {
this.form = res.data;
} else {
......@@ -488,6 +506,8 @@ export default {
}).then((res) => {
this.ruleArr = res.data.data;
});
this.form.filePaths = this.form.filePaths ? this.form.filePaths : "";
console.log(this.form);
this.open = true;
});
this.pageInfo.type = "edit";
......@@ -572,7 +592,7 @@ export default {
errorResult: "",
errorTime: "",
fileNames: "",
snapPath: "",
filePaths: "",
goOffTimeStr: "",
processStatus: 1,
remark: "",
......
......@@ -71,6 +71,8 @@
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
import { downloadFile } from "@/assets/utils/index";
export default {
name: "PerformAttendRecordList",
components: {
......@@ -79,6 +81,16 @@ export default {
mixins: [table],
created() {},
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() {
this.upload.title = "考勤绩效记录信息导入";
......@@ -218,15 +230,29 @@ export default {
{ label: "异常结果", prop: "errorResult" },
/*
{
label: "图片凭证",
prop: "filePaths",
width: 150,
formatter: this.formatterPic,
},
*/
{
label: "图片凭证",
prop: "snapPath",
prop: "filePaths",
width: 150,
formatter: this.formatterPic,
},
{ label: "绩效规则", prop: "ruleNme" },
{ label: "加分/扣分方式", prop: "subMethod", formatter: this.formatter },
{
label: "加分/扣分方式",
prop: "subMethod",
formatter: this.formatter,
},
{
label: "加分/扣分时间",
......@@ -247,6 +273,7 @@ export default {
{
label: "操作",
width: 200,
fixed: "right",
formatter: (row) => {
return row.processStatus == 1 ? (
<table-buttons
......
......@@ -174,11 +174,28 @@
<el-col :span="22">
<el-form-item label="图片凭证:">
<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>
<ImageUpload
v-else
:value="form.snapPath"
:value="form.filePaths"
@input="replaceImage"
></ImageUpload>
</el-form-item>
......@@ -502,7 +519,9 @@ export default {
});
},
replaceImage(val) {
this.form.snapPath = val;
this.form.filePaths = val;
this.$forceUpdate(this.form);
},
staffChange(val) {
let arr = this.staffArr.filter((v) => v.id == val);
......@@ -583,7 +602,7 @@ export default {
score: "",
processStatus: 1,
remark: "",
snapPath: "",
filePaths: "",
fileNames: "",
};
this.open = true;
......
......@@ -71,6 +71,8 @@
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
import { downloadFile } from "@/assets/utils/index";
export default {
name: "PerformComplainRecordList",
components: {
......@@ -79,6 +81,16 @@ export default {
mixins: [table],
created() {},
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() {
this.upload.title = "评价绩效投诉记录信息导入";
......@@ -224,7 +236,8 @@ export default {
{
label: "图片凭证",
prop: "snapPath",
prop: "filePaths",
width: 150,
formatter: this.formatterPic,
},
......@@ -232,7 +245,11 @@ export default {
{ label: "绩效规则", prop: "ruleNme" },
{ label: "加分/扣分方式", prop: "subMethod", formatter: this.formatter },
{
label: "加分/扣分方式",
prop: "subMethod",
formatter: this.formatter,
},
{
label: "加分/扣分时间",
......@@ -253,6 +270,7 @@ export default {
{
label: "操作",
width: 200,
fixed: "right",
formatter: (row) => {
return row.processStatus == 1 ? (
<table-buttons
......
......@@ -148,11 +148,28 @@
<el-col :span="22">
<el-form-item label="图片凭证:">
<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>
<ImageUpload
v-else
:value="form.snapPath"
:value="form.filePaths"
@input="replaceImage"
></ImageUpload>
</el-form-item>
......@@ -278,8 +295,8 @@
/>
<Field
label="图片凭证地址"
prop="snapPath"
v-model="form.snapPath"
prop="filePaths"
v-model="form.filePaths"
type="textarea"
placeholder="请输入图片凭证地址"
/>
......@@ -473,7 +490,9 @@ export default {
});
},
replaceImage(val) {
this.form.snapPath = val;
this.form.filePaths = val;
this.$forceUpdate(this.form);
},
staffChange(val) {
console.log(val);
......@@ -609,7 +628,7 @@ export default {
happenTime: null,
duration: 0,
alarmTime: null,
snapPath: "",
filePaths: "",
ruleId: null,
ruleName: "",
subMethod: "",
......
......@@ -71,6 +71,8 @@
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
import { downloadFile } from "@/assets/utils/index";
export default {
name: "PerformEffectRecordList",
components: {
......@@ -79,6 +81,16 @@ export default {
mixins: [table],
created() {},
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() {
this.upload.title = "效能绩效记录信息导入";
......@@ -227,12 +239,17 @@ export default {
{
label: "图片凭证",
prop: "snapPath",
prop: "filePaths",
width: 150,
formatter: this.formatterPic,
},
{ label: "绩效规则", prop: "ruleName" },
{ label: "加分/扣分方式", prop: "subMethod", formatter: this.formatter },
{
label: "加分/扣分方式",
prop: "subMethod",
formatter: this.formatter,
},
{
label: "加分/扣分时间",
......@@ -252,7 +269,8 @@ export default {
{
label: "操作",
width: 240,
width: 200,
fixed: "right",
formatter: (row) => {
return row.processStatus == 1 ? (
<table-buttons
......
......@@ -200,7 +200,7 @@ export default {
formatter: this.formatterDate,
},
{ label: "图片凭证地址", prop: "snapPath" },
{ label: "图片凭证地址", prop: "filePaths" },
{ label: "绩效规则id", prop: "ruleId", formatter: this.formatter },
......
......@@ -39,7 +39,7 @@
{{ util_formatterDate(form.alarmTime)}}
</el-descriptions-item>
<el-descriptions-item label="图片凭证地址" label-class-name="labelClass" content-class-name="contentClass">
{{form.snapPath}}
{{form.filePaths}}
</el-descriptions-item>
<el-descriptions-item label="绩效规则id" label-class-name="labelClass" content-class-name="contentClass">
{{form.ruleId}}
......
......@@ -126,11 +126,28 @@
<el-col :span="22">
<el-form-item label="图片凭证:">
<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>
<ImageUpload
v-else
:value="form.snapPath"
:value="form.filePaths"
@input="replaceImage"
></ImageUpload>
</el-form-item>
......@@ -442,7 +459,9 @@ export default {
});
},
replaceImage(val) {
this.form.snapPath = val;
this.form.filePaths = val;
this.$forceUpdate(this.form);
},
staffChange(val) {
console.log(val);
......
......@@ -71,6 +71,8 @@
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
import { downloadFile } from "@/assets/utils/index";
export default {
name: "PerformGoworkRecordList",
components: {
......@@ -79,6 +81,16 @@ export default {
mixins: [table],
created() {},
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() {
this.upload.title = "办件绩效记录信息导入";
......@@ -214,12 +226,17 @@ export default {
{
label: "图片凭证",
prop: "snapPath",
prop: "filePaths",
width: 150,
formatter: this.formatterPic,
},
{ label: "绩效规则", prop: "ruleName" },
{ label: "加分/扣分方式", prop: "subMethod", formatter: this.formatter },
{
label: "加分/扣分方式",
prop: "subMethod",
formatter: this.formatter,
},
{
label: "加分/扣分时间",
......@@ -239,7 +256,8 @@ export default {
{
label: "操作",
width: 240,
width: 200,
fixed: "right",
formatter: (row) => {
return row.processStatus == 1 ? (
<table-buttons
......
......@@ -86,11 +86,28 @@
<el-col :span="22">
<el-form-item label="图片凭证:">
<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>
<ImageUpload
v-else
:value="form.snapPath"
:value="form.filePaths"
@input="replaceImage"
></ImageUpload>
</el-form-item>
......@@ -403,8 +420,9 @@ export default {
});
},
replaceImage(val) {
this.form.snapPath = val;
this.$forceUpdate(this.form.snapPath);
this.form.filePaths = val;
this.$forceUpdate(this.form);
},
staffChange(val) {
console.log(val);
......@@ -445,7 +463,7 @@ export default {
: "";
}
this.form.processStatus = 2;
this.form.snapPath ? "" : (this.form.snapPath = "");
this.form.filePaths ? "" : (this.form.filePaths = "");
this.form.view = "核查";
this.staffChange(this.form.staffId);
this.$post("/perform/rules/list", {
......@@ -546,7 +564,7 @@ export default {
remark: "",
categoryId: "",
happenTime: "",
snapPath: "",
filePaths: "",
};
this.resetForm("form");
},
......
......@@ -71,6 +71,8 @@
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
import { downloadFile } from "@/assets/utils/index";
export default {
name: "PerformOtherRecordList",
components: {
......@@ -79,6 +81,16 @@ export default {
mixins: [table],
created() {},
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() {
this.upload.title = "其它绩效记录信息导入";
......@@ -223,12 +235,17 @@ export default {
// { label: "绩效规则id", prop: "ruleId", formatter: this.formatter },
{
label: "图片凭证",
prop: "snapPath",
prop: "filePaths",
width: 150,
formatter: this.formatterPic,
},
{ label: "绩效规则", prop: "ruleName" },
{ label: "加分/扣分方式", prop: "subMethod", formatter: this.formatter },
{
label: "加分/扣分方式",
prop: "subMethod",
formatter: this.formatter,
},
{
label: "加分/扣分时间",
......@@ -248,7 +265,8 @@ export default {
{
label: "操作",
width: 240,
width: 200,
fixed: "right",
formatter: (row) => {
return row.processStatus == 1 ? (
<table-buttons
......
......@@ -139,11 +139,28 @@
<el-col :span="22">
<el-form-item label="图片凭证:">
<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>
<ImageUpload
v-else
:value="form.snapPath"
:value="form.filePaths"
@input="replaceImage"
></ImageUpload>
</el-form-item>
......@@ -457,7 +474,9 @@ export default {
});
},
replaceImage(val) {
this.form.snapPath = val;
this.form.filePaths = val;
this.$forceUpdate(this.form);
},
staffChange(val) {
console.log(val);
......@@ -587,7 +606,7 @@ export default {
deptId: "",
deptName: "",
fileNames: "",
snapPath: "",
filePaths: "",
processStatus: 1,
remark: "",
reviewDevice: "",
......
......@@ -71,6 +71,8 @@
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
import { downloadFile } from "@/assets/utils/index";
export default {
name: "PerformReviewRecordList",
components: {
......@@ -79,6 +81,16 @@ export default {
mixins: [table],
created() {},
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() {
this.upload.title = "评价差评绩效记录信息导入";
......@@ -224,13 +236,18 @@ export default {
{
label: "图片凭证",
prop: "snapPath",
prop: "filePaths",
width: 150,
formatter: this.formatterPic,
},
{ label: "绩效规则", prop: "ruleNme" },
{ label: "加分/扣分方式", prop: "subMethod", formatter: this.formatter },
{
label: "加分/扣分方式",
prop: "subMethod",
formatter: this.formatter,
},
{
label: "加分/扣分时间",
......@@ -251,6 +268,7 @@ export default {
{
label: "操作",
width: 200,
fixed: "right",
formatter: (row) => {
return row.processStatus == 1 ? (
<table-buttons
......
......@@ -381,6 +381,7 @@ export default {
};
},
methods: {
handleRowClick(val) {
val.check = !val.check;
val.check
......
......@@ -38,6 +38,7 @@
data() {
return {
config: {
isshowTabPane: true,
search: [
{
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