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) {
return ( const suffix = `(bmp|jpg|png|tif|gif|pcx|tga|exif|fpx|svg|psd|cdr|pcd|dxf|ufo|eps|ai|raw|WMF|webp|jpeg)`;
<el-image const regular = new RegExp(`.*\.${suffix}`);
src={val.indexOf("http") == -1 ? baseUrl + val : val} if (regular.test(val)) {
preview-src-list={val.indexOf("http") == -1 ? baseUrl + val : val} return (
style="width: 100px" <el-image
></el-image> src={val.indexOf("http") == -1 ? baseUrl + val : val}
); preview-src-list={
val.indexOf("http") == -1 ? [baseUrl + val] : [val]
}
style="width: 100px"
></el-image>
);
} else {
return <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,
......
...@@ -9,7 +9,7 @@ export default { ...@@ -9,7 +9,7 @@ export default {
clearTimeout(this.loadingTimer); clearTimeout(this.loadingTimer);
}, },
methods: { methods: {
beforeFecth() { beforeFecth() {
return Promise.resolve(); return Promise.resolve();
}, },
// 表格接收数据前 // 表格接收数据前
...@@ -18,12 +18,12 @@ export default { ...@@ -18,12 +18,12 @@ export default {
afterRender(data){}, afterRender(data){},
// 默认拉取数据 // 默认拉取数据
async getTreeData() { async getTreeData() {
}, },
handleNodeClick(node) { handleNodeClick(node) {
}, },
renderContent: function (h, { node, data, store }) { renderContent: function (h, { node, data, store }) {
return ( return (
...@@ -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>
) )
...@@ -57,11 +57,11 @@ export default { ...@@ -57,11 +57,11 @@ export default {
node.expand(); // 主动调用展开节点方法,重新查询该节点下的所有子节点 node.expand(); // 主动调用展开节点方法,重新查询该节点下的所有子节点
this.toView(this.currentNode); this.toView(this.currentNode);
}, },
}, },
data() { data() {
return { return {
treeProps: { treeProps: {
id: "id", id: "id",
label: "label", label: "label",
......
// 导出表格数据
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";
...@@ -31,22 +33,22 @@ Vue.use(VueAMap); ...@@ -31,22 +33,22 @@ Vue.use(VueAMap);
Vue.use(formCreate); Vue.use(formCreate);
Vue.use(FcDesigner); Vue.use(FcDesigner);
VueAMap.initAMapApiLoader({ VueAMap.initAMapApiLoader({
key: "f45cca59553214543a5a77e50a7e04df", key: "f45cca59553214543a5a77e50a7e04df",
plugin: [ plugin: [
"AMap.Scale", "AMap.Scale",
"AMap.OverView", "AMap.OverView",
"AMap.ToolBar", "AMap.ToolBar",
"AMap.MapType", "AMap.MapType",
"AMap.PlaceSearch", "AMap.PlaceSearch",
"AMap.Geolocation", "AMap.Geolocation",
"AMap.Geocoder", "AMap.Geocoder",
], ],
v: "1.4.4", v: "1.4.4",
uiVersion: "1.0", uiVersion: "1.0",
}); });
Vue.prototype.Global = Global; Vue.prototype.Global = Global;
new Vue({ new Vue({
router, router,
store, store,
render: (h) => h(App), render: (h) => h(App),
}).$mount("#app"); }).$mount("#app");
...@@ -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"), // 员工合同信息
...@@ -127,7 +128,7 @@ const router = new Router({ ...@@ -127,7 +128,7 @@ const router = new Router({
...restBuilder("feedback", "feedback"), //反馈信息 ...restBuilder("feedback", "feedback"), //反馈信息
...restBuilder("feedback/addQuestion", "feedback/addQuestion"), //新增反馈 ...restBuilder("feedback/addQuestion", "feedback/addQuestion"), //新增反馈
...restBuilder("feedback/questionnaire", "feedback/questionnaire"), //问卷情况 ...restBuilder("feedback/questionnaire", "feedback/questionnaire"), //问卷情况
...restBuilder("feedback/question", "feedback/question"), //反馈问题 ...restBuilder("feedback/question", "feedback/question"), //反馈问题
...restBuilder("feedback/option", "feedback/option"), //反馈选项 ...restBuilder("feedback/option", "feedback/option"), //反馈选项
...restBuilder("feedback/answer", "feedback/answer"), //回答问题 ...restBuilder("feedback/answer", "feedback/answer"), //回答问题
......
<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>
<template> <template>
<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">导出
</LayoutTable> </el-button>
<drawer-show ref="drawerform" @ok="getData" /> </LayoutTable>
</div> <drawer-show ref="drawerform" @ok="getData"/>
<drawer-audit ref="draweraudit" @ok="getData"/>
</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 {
name: "AttendanceLeaveRecordList", export default {
components: { name: "AttendanceLeaveRecordList",
drawerShow components: {
}, drawerShow
mixins: [table], },
created() { mixins: [table],
}, created() {
methods: { },
/** 重写新增方法 */ methods: {
toAdd(row) { /** 重写新增方法 */
this.$refs.drawerform.add(row); toAdd(row) {
}, this.$refs.drawerform.add(row);
/** 重写编辑方法 */ },
toEdit(row) { /** 重写编辑方法 */
this.$refs.drawerform.edit(row); toEdit(row) {
}, this.$refs.drawerform.edit(row);
/** 重写查看方法 */ },
toView(row) { /** 重写查看方法 */
this.$refs.drawerform.view(row); toView(row) {
}, this.$refs.drawerform.view(row);
doExport(){ },
this.isExport = true; audit(row) {
this.$download("/leave/record/exportExcel", { //todo 审核页面进行审核
"idList": this.selection, this.$refs.draweraudit.view(row);
'name': this.$route.query['name'],
}, { type: "excel" }).then(() => this.isExport = false).catch(error => { },
this.isExport = false; doExport() {
this.$message.error(error.message); this.isExport = true;
}) this.$download("/leave/record/exportExcel", {
}, "idList": this.selection,
}, 'name': this.$route.query['name'],
data() { }, {type: "excel"}).then(() => this.isExport = false).catch(error => {
return { this.isExport = false;
isExport:false, this.$message.error(error.message);
config: { })
isshowTabPane:true, },
search: [ },
{ data() {
name: "leavePerson", return {
type: "text", isExport: false,
label: "请假人", config: {
fuzzy: true isshowTabPane: true,
}, search: [
{ {
name: "phoneNumber", name: "leavePerson",
type: "text", type: "text",
label: "电话号码", label: "请假人",
fuzzy: true fuzzy: true
}, },
{ {
name: "deptId", name: "phoneNumber",
type: "select", type: "text",
label: "全部部门", label: "电话号码",
fuzzy: false fuzzy: true
}, },
{ {
name: "leaveType", name: "deptId",
type: "select", type: "select",
label: "请假类型", label: "全部部门",
fuzzy: false fuzzy: false
}, },
{ {
name: "startTime", name: "leaveType",
type: "date", type: "select",
label: "开始时间", label: "请假类型",
fuzzy: false fuzzy: false
}, },
{ {
name: "endTime", name: "startTime",
type: "date", type: "date",
label: "结束时间", label: "开始时间",
fuzzy: false fuzzy: false
}, },
], {
columns: [ name: "endTime",
{type: "selection", width: 60}, type: "date",
{type: "index",label: "序号",width: 50}, label: "结束时间",
fuzzy: false
// {label: "请假人id", prop: "leavePersonId", formatter: this.formatter}, },
],
{label: "请假人", prop: "leavePerson"}, columns: [
{type: "selection", width: 60},
// {label: "所属部门id", prop: "deptId", formatter: this.formatter}, {type: "index", label: "序号", width: 50},
{label: "所属部门", prop: "deptName"}, // {label: "请假人id", prop: "leavePersonId", formatter: this.formatter},
{label: "电话号码", prop: "phoneNumber"}, {label: "请假人", prop: "leavePerson"},
{label: "请假类型", prop: "leaveType",formatter: this.formatterLeaveType}, // {label: "所属部门id", prop: "deptId", formatter: this.formatter},
{label: "开始时间", prop: "startTime", formatter: this.formatterDate}, {label: "所属部门", prop: "deptName"},
{label: "结束时间", prop: "endTime", formatter: this.formatterDate}, {label: "电话号码", prop: "phoneNumber"},
{label: "时长", prop: "duration",formatter: this.formatter}, {label: "请假类型", prop: "leaveType", formatter: this.formatterLeaveType},
// {label: "审批负责人Id", prop: "approverId", formatter: this.formatter}, {label: "开始时间", prop: "startTime", formatter: this.formatterDate},
{label: "审批负责人", prop: "approver"}, {label: "结束时间", prop: "endTime", formatter: this.formatterDate},
{label: "创建用户", prop: "createUserId", formatter: this.formatter}, {label: "时长", prop: "duration", formatter: this.formatter},
{
label: "操作", // {label: "审批负责人Id", prop: "approverId", formatter: this.formatter},
width: 240,
formatter: row => { {label: "审批负责人", prop: "approver"},
return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} /> {label: "处理状态", prop: "processStatus", formatter: this.formatter},
);
} {label: "审核状态", prop: "auditResult", formatter: this.formatter},
}
] {label: "创建用户", prop: "createUserId", formatter: this.formatter},
} {
}; label: "操作",
} width: 240,
formatter: row => {
return (
<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>
);
}
}
]
}
}; };
</script> }
\ No newline at end of file };
</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.open = true;
}); });
this.form.view = "核查";
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 = "效能绩效核查信息导入";
...@@ -217,9 +229,10 @@ export default { ...@@ -217,9 +229,10 @@ export default {
formatter: this.formatterDate, formatter: this.formatterDate,
}, },
{ {
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 = "其它绩效核查信息导入";
...@@ -213,9 +225,10 @@ export default { ...@@ -213,9 +225,10 @@ 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
......
...@@ -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,34 +91,53 @@ export default { ...@@ -65,34 +91,53 @@ 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();
}, },
getData() { getData() {
this.activeName == 1 || this.activeName == 2 this.activeName == 1 || this.activeName == 2
? this.$post("/perform/attend/appeal/list", { ? this.$post("/perform/attend/appeal/list", {
processStatus: this.activeName, processStatus: this.activeName,
}).then((res) => { }).then((res) => {
console.log(res); console.log(res);
if (res.code == 1) { if (res.code == 1) {
this.tableData = res.data; this.tableData = res.data;
} }
}) })
: 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",
}; };
}, },
}; };
......
...@@ -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 },
......
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