Commit db41784e authored by “yiyousong”'s avatar “yiyousong”
parents c475638e 8667e872
......@@ -32,6 +32,7 @@ export default {
<style lang="less" scoped>
#app {
height:100vh;
.loading {
display: flex;
align-items: center;
......
......@@ -11,8 +11,8 @@ html * {
}
html,
body {
height: 100%;
min-height: 100%;
/* height: 100%; */
/* min-height: 100%; */
font-family: "Microsoft Yahei", "Helvetica Neue", Helvetica, STHeiTi, Arial, sans-serif;
}
body {
......
......@@ -13,13 +13,13 @@ html * {
html,
body {
height: 100%;
min-height: 100%;
// height: 100%;
// min-height: 100%;
font-family: "Microsoft Yahei", "Helvetica Neue", Helvetica, STHeiTi, Arial,
sans-serif;
}
body {
overflow-y: scroll;
// overflow-y: scroll;
}
body,
div,
......
......@@ -8,12 +8,26 @@ export default {
methods: {
// 渲染前置处理
beforeRender(data) {
if (data.entity.attachmentPath) {
data.entity.attachmentPathList = [
{
url: data.entity.attachmentPath,
name: data.entity.attachmentPath,
},
];
}
console.log(data);
return data;
},
// 渲染后置处理
afterRender(data) {},
// 提交表单的前置处理
beforeSubmit(data) {
data.attachmentPathList && data.attachmentPathList.length > 0
? (data.attachmentPath = data.attachmentPathList[0].url)
: (data.attachmentPath = "");
console.log(data);
return data;
},
// 提交表单的后置处理, 会阻断默认的回退行为
......@@ -33,6 +47,7 @@ export default {
// 默认拉取数据
getData() {
this.loading = true;
this.$get(this.urls.currUrl || this.pageInfo.currUrl, this.query)
.then(({ data }) => {
const res = this.beforeRender(data);
......@@ -43,6 +58,7 @@ export default {
//
res.entity = this.util_toDateStr(res.entity, this.toDate);
this.form = Object.assign({}, this.form, res.entity);
this.dict = Object.assign({}, this.dict, res.dict);
this.afterRender(res);
})
......
......@@ -205,10 +205,26 @@ export default {
<el-tag type={"success"} size="mini">
{content}
</el-tag>
) : row.subAddType == 1 && column.label.includes("分值") ? (
) : row.checkStatus == 1 || row.processStatus == 1 ? (
row.subAddType == 1 && column.label.includes("分值") ? (
<el-link type={"info"}>(+{content})</el-link>
) : row.subAddType == 2 && column.label.includes("分值") ? (
<el-link type={"info"}>({-content})</el-link>
) : (
<p>{content}</p>
)
) : row.checkStatus == 2 || row.processStatus == 2 ? (
row.subAddType == 1 && column.label.includes("分值") ? (
<el-link>+{content}</el-link>
) : row.subAddType == 2 && column.label.includes("分值") ? (
<el-link>{-content}</el-link>
) : (
<p>{content}</p>
)
) : row.subAddType == 1 && column.label.includes("分值") ? (
<el-link>+{content}</el-link>
) : row.subAddType == 2 && column.label.includes("分值") ? (
<p>{-content}</p>
<el-link>{-content}</el-link>
) : (
<p>{content}</p>
)
......@@ -330,7 +346,7 @@ export default {
},
// 格式化单元格数据
formatterDate(row, column) {
console.log("date:",row,column)
// console.log("date:",row,column)
return formatterDate(row, column);
},
// 格式化单元格数据 只要年月日
......@@ -457,13 +473,14 @@ export default {
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]
}
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>
<filepReview src={val}/>
);
} else {
return <el-link type="primary">{val}</el-link>;
......@@ -565,7 +582,7 @@ export default {
},
// 查看
toView(row, query) {
console.log(this.pageInfo.view);
// console.log(this.pageInfo.view);
this.$router.push({
path: this.pageInfo.view,
query: Object.assign({}, { id: row.id }, query),
......
......@@ -15,6 +15,7 @@ import FileUpload from '@/components/FileUpload';
import Editor from '@/components/Editor';
import Map from '@/components/Map';
import MapDetail from '@/components/MapDetail';
import filepReview from '@/components/filepReview';
const Prototype = function() {};
Prototype.install = (Vue, options) => {
......@@ -34,6 +35,7 @@ Prototype.install = (Vue, options) => {
Vue.component('Editor', Editor) // 富文本
Vue.component('Map', Map) // 地图
Vue.component('MapDetail', MapDetail) // 地图
Vue.component('filepReview', filepReview) // 图片文件预览
}
export default Prototype;
......@@ -13,7 +13,6 @@
:empty-text="emptytxt ? emptytxt : emptyText"
border
style="width: 100%"
height="530"
>
<el-table-column
v-for="column in columns"
......
......@@ -8,7 +8,7 @@
:row-class-name="tableRowClassName"
:default-expand-all="expand"
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
height="520"
height="630px"
>
<el-table-column
......
......@@ -226,7 +226,6 @@ export default {
},
maxLength: {
type: Number,
default: 256,
},
},
methods: {
......
......@@ -226,7 +226,7 @@ export default {
}
}
.controllBar {
background-color: rgba(170, 170, 170, 0.4);
background-color: rgba(255, 255, 255, 0.2);
width: 120px;
height: 44px;
line-height: 44px;
......
......@@ -344,6 +344,7 @@ export default {
let newData = { page: 1 };
Object.keys(data).forEach((item) => {
let val = data[item];
console.log(item,this.search)
this.search.forEach((obj) => {
if (
obj.name === item &&
......@@ -363,6 +364,7 @@ export default {
});
newData[item] = this.decodeVal(val);
});
return newData;
},
decodeVal(val) {
......
<template>
<div class="img-flex">
<el-image
:src="urlVal(item)"
:preview-src-list="[urlVal(item)]" alt="" v-for="item in fileList" :key="item"/>
</div>
</template>
<script>
const baseUrl = process.env.VUE_APP_API_BASE_URL + "/";
export default {
props:['src'],
data() {
return {}
},
created() {
console.log(this.src)
},
computed: {
fileList:function(v){
return this.src?this.src.split(","):[]
}
},
methods: {
urlVal(val){
console.log(val,"2222")
return val.indexOf("http") == -1 ? baseUrl + val : val
}
},
}
</script>
<style lang="less" scoped>
.img-flex{
overflow: hidden;
display: inline-block;
vertical-align: middle;
.el-image{
width: 50px;
float: left;
border:1px solid #ddd;
margin: 2px;
}
}
</style>
\ No newline at end of file
<template>
<div :style="menuPageCss" class="pages page-layout">
<LayoutHeader
v-if="menuPage !== 'left'"
@changePath="changePath"
></LayoutHeader>
<LayoutHeaderLeft
@toggle="toggle"
:isOpen="isOpen"
v-if="menuPage === 'left'"
/>
<div style="padding:15px">
<LayoutHeader v-if="menuPage !== 'left'" @changePath="changePath"></LayoutHeader>
<LayoutHeaderLeft @toggle="toggle" :isOpen="isOpen" v-if="menuPage === 'left'" />
<div class="layout">
<router-view :class="{ active: !isOpen }" />
</div>
</div>
......@@ -57,6 +50,12 @@ export default {
</script>
<style lang="less">
.layout {
padding: 15px 15px 0 15px;
box-sizing: border-box;
}
.page {
min-height: calc(100vh - 100px);
width: 100%;
......@@ -65,12 +64,32 @@ export default {
// var(--padding-top) 5px 5px 5px;
// margin-left: 60px;
padding: 10px;
&.active {
margin-left: var(--margin-left);
}
}
.page-layout {
background: #eee;
height: 100vh;
overflow: auto;
}
/* 侧边滚动条 */
.page-layout::-webkit-scrollbar {
width: 3px;
}
/* 滚动条上的滚动滑块 */
.page-layout::-webkit-scrollbar-thumb {
background: #CCCCCC;
border-radius: 4px;
}
/* 滚动条轨道 */
.page-layout::-webkit-scrollbar-track {
background: #EEEEEE;
border-radius: 4px;
}
</style>
......@@ -239,7 +239,6 @@
return
}
if(arr.length > 1 && index>0){
console.log(11111)
// 上一次比较
let lastoffTime = transFormMinut(arr[index-1].offWorkDate) +
transFormMinut(arr[index - 1 ].offWorkDateAfter)
......
......@@ -39,15 +39,16 @@
label="开始时间"
prop="startTime"
v-model="form.startTime"
type="date"
type="datetime"
/>
<Field
disabled
label="结束时间"
prop="endTime"
v-model="form.endTime"
type="date"
type="datetime"
disabled
/>
<Field
disabled
label="时长,单位秒"
......@@ -66,8 +67,8 @@
<Field
disabled
label="审批负责人"
prop="approver"
v-model="form.approver"
prop="approverId"
v-model="form.approverId"
placeholder="请输入审批负责人"
/>
<Field
......@@ -147,6 +148,7 @@ export default {
open: false,
// urls: { saveUrl: "/check/attend/record/examine" },
toString: ["leaveType", "auditResult", "processStatus"],
toDate: ["startTime", "endTime"],
// 表单校验
rules: {},
};
......@@ -157,8 +159,11 @@ export default {
edit(row) {
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "attendance/leave/record/edit";
this.getData();
// this.urls.currUrl = "attendance/leave/record/edit";
// this.getData();
this.$post("attendance/leave/record/edit", { id: row.id }).then((res) => {
console.log(res);
});
this.pageInfo.type = "edit";
this.title = "修改请假记录信息";
},
......@@ -176,8 +181,8 @@ export default {
this.query = { id: row.id };
this.urls.currUrl = "attendance/leave/record/view";
this.getData();
this.pageInfo.type = "view";
this.title = "请假记录信息详细";
this.pageInfo.type = "check";
this.title = "审核请假记录";
},
/**取消按钮 */
cancel() {
......
......@@ -16,6 +16,7 @@
v-model="form.leavePerson"
placeholder="请输入请假人"
:maxLength="10"
:disabled="pageInfo.type == 'view'"
/>
<Field
label="所属部门"
......@@ -24,6 +25,7 @@
type="select"
placeholder="请选择所属部门"
:enumData="dict.deptId"
:disabled="pageInfo.type == 'view'"
/>
<!-- <Field label="所属部门" prop="deptName" v-model="form.deptName" type="textarea" placeholder="请输入所属部门"/> -->
<Field
......@@ -32,6 +34,7 @@
v-model="form.phoneNumber"
placeholder="请输入电话号码"
:maxLength="11"
:disabled="pageInfo.type == 'view'"
/>
<Field
label="请假类型"
......@@ -40,13 +43,16 @@
type="select"
:enumData="dict.leaveType"
placeholder="请选择请假类型"
:disabled="pageInfo.type == 'view'"
/>
<Field
label="开始时间"
prop="startTime"
v-model="form.startTime"
type="datetime"
@change="changedate"
:disabled="pageInfo.type == 'view'"
/>
<Field
label="结束时间"
......@@ -54,6 +60,7 @@
v-model="form.endTime"
type="datetime"
@change="changedate"
:disabled="pageInfo.type == 'view'"
/>
<Field
......@@ -70,6 +77,23 @@
v-model="form.reason"
type="textarea"
placeholder="请输入请假事由"
:disabled="pageInfo.type == 'view'"
/>
<Field
label="审核结果"
prop="auditResult"
v-model="form.auditResult"
type="radio"
:enumData="dict.auditResult"
placeholder="请选择审核结果"
:disabled="pageInfo.type == 'view'"
/>
<Field
label="审核说明"
prop="auditDesc"
v-model="form.auditDesc"
placeholder="请输入审核说明"
:disabled="pageInfo.type == 'view'"
/>
<Field
label="审批负责人"
......@@ -78,6 +102,7 @@
v-model="form.approverId"
placeholder="请选择审批负责人"
:enumData="dict.approverId"
:disabled="pageInfo.type == 'view'"
/>
<!-- <Field label="审批负责人" prop="approver" v-model="form.approver" placeholder="请输入审批负责人"/> -->
<!-- <Field label="附件" prop="attachment" v-model="form.attachment" type="textarea" placeholder="请输入附件"/> -->
......@@ -87,16 +112,29 @@
v-model="form.remark"
type="textarea"
placeholder="请输入备注"
:disabled="pageInfo.type == 'view'"
/>
<Field
label="申请时间"
prop="createTime"
v-model="form.createTime"
type="datetime"
disabled
/>
</el-row>
<el-form-item label="附件路径" prop="attachmentPath">
<el-form-item label="附件路径" prop="attachmentPathList">
<FileUpload
@input="uploadFn"
:value="attachmentPath"
:value="form.attachmentPathList"
:fileNumber="1"
:disabled="pageInfo.type == 'view'"
/>
</el-form-item>
<form-buttons @submit="submitForm" noCancelBtn />
<form-buttons
@submit="submitForm"
noCancelBtn
v-if="pageInfo.type !== 'view'"
/>
</el-form>
</div>
</el-drawer>
......@@ -123,8 +161,8 @@ export default {
// 是否显示弹出层
open: false,
direction: "rtl",
toString: ["leaveType", "deptId", "approverId"],
toDate: ["startTime", "endTime"],
toString: ["leaveType", "deptId", "approverId", "auditResult"],
toDate: ["startTime", "endTime", "createTime"],
// 表单校验
rules: {
leavePerson: [
......@@ -155,14 +193,17 @@ export default {
approverId: [
{ required: true, message: "请选择审批人", trigger: "change" },
],
attachmentPath: [
{ required: true, message: "请上传附件文件", trigger: "change" },
// attachmentPathList: [
// { required: true, message: "请上传附件文件", trigger: "change" },
// ],
auditResult: [
{ required: true, message: "请选择审核结果", trigger: "change" },
],
},
attachmentPath: "",
};
},
watch: {},
methods: {
// beforeSubmit() {
// if (this.form.endTime.valueOf() > this.form.startTime.valueOf()) {
......@@ -172,8 +213,8 @@ export default {
// }
// },
uploadFn(e) {
this.attachmentPath = e;
this.form.attachmentPath = this.attachmentPath[0].url;
this.form.attachmentPathList = e;
this.$forceUpdate(this.form.attachmentPathList);
},
/** 编辑 */
edit(row) {
......@@ -181,6 +222,23 @@ export default {
this.query = { id: row.id };
this.urls.currUrl = "attendance/leave/record/edit";
this.getData();
// this.$get("attendance/leave/record/edit", { id: row.id }).then((res) => {
// if (res.code == 1) {
// this.form = res.data.entity;
// this.attachmentPath = res.data
// ? [
// {
// url: res.data.entity.attachmentPath,
// name: res.data.entity.attachmentPath,
// },
// ]
// : "";
// this.dict = res.data.dict;
// this.open = true;
// } else {
// this.reset();
// }
// });
this.pageInfo.type = "edit";
this.title = "修改请假记录信息";
},
......@@ -198,6 +256,7 @@ export default {
this.query = { id: row.id };
this.urls.currUrl = "attendance/leave/record/view";
this.getData();
this.pageInfo.type = "view";
this.title = "请假记录信息详细";
},
......
<template>
<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
type="primary"
@click="doExport"
:disabled="isExport"
size="mini"
slot="table-head-left2"
>导出
</el-button>
</LayoutTable>
<drawer-show ref="drawerform" @ok="getData"/>
<drawer-audit ref="draweraudit" @ok="getData"/>
<drawer-show ref="drawerform" @ok="getData" />
<drawer-audit ref="draweraudit" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import drawerAudit from "./draweraudit";
import table from "@/assets/mixins/table";
export default {
name: "AttendanceLeaveRecordList",
components: {
drawerShow
drawerShow,
drawerAudit,
},
mixins: [table],
created() {
},
created() {},
methods: {
/** 重写新增方法 */
toAdd(row) {
......@@ -39,18 +44,24 @@ export default {
},
audit(row) {
//todo 审核页面进行审核
this.$refs.draweraudit.view(row);
this.$refs.drawerform.edit(row);
// this.$refs.draweraudit.view(row);
},
doExport() {
this.isExport = true;
this.$download("/attendance/leave/record/exportExcel", {
"idList": this.selection,
'name': this.$route.query['name'],
}, {type: "excel"}).then(() => this.isExport = false).catch(error => {
this.$download(
"/attendance/leave/record/exportExcel",
{
idList: this.selection,
name: this.$route.query["name"],
},
{ type: "excel" }
)
.then(() => (this.isExport = false))
.catch((error) => {
this.isExport = false;
this.$message.error(error.message);
})
});
},
},
data() {
......@@ -63,79 +74,101 @@ export default {
name: "leavePerson",
type: "text",
label: "请假人",
fuzzy: true
fuzzy: true,
},
{
name: "phoneNumber",
type: "text",
label: "电话号码",
fuzzy: true
fuzzy: true,
},
{
name: "deptId",
type: "select",
label: "全部部门",
fuzzy: false
fuzzy: false,
},
{
name: "leaveType",
type: "select",
label: "请假类型",
fuzzy: false
fuzzy: false,
},
{
name: "startTime",
type: "date",
label: "开始时间",
fuzzy: false
fuzzy: false,
},
{
name: "endTime",
type: "date",
label: "结束时间",
fuzzy: false
fuzzy: false,
},
],
columns: [
{type: "selection", width: 60},
{type: "index", label: "序号", width: 50},
{ type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 },
// {label: "请假人id", prop: "leavePersonId", formatter: this.formatter},
{label: "请假人", prop: "leavePerson"},
{ label: "请假人", prop: "leavePerson" },
// {label: "所属部门id", prop: "deptId", formatter: this.formatter},
{label: "所属部门", prop: "deptName"},
{ label: "所属部门", prop: "deptName" },
{label: "电话号码", prop: "phoneNumber"},
{ label: "电话号码", prop: "phoneNumber" },
{label: "请假类型", prop: "leaveType", formatter: this.formatterLeaveType},
{
label: "请假类型",
prop: "leaveType",
formatter: this.formatterLeaveType,
},
{label: "开始时间", prop: "startTime", formatter: this.formatterDate},
{
label: "开始时间",
prop: "startTime",
formatter: this.formatterDate,
},
{label: "结束时间", prop: "endTime", formatter: this.formatterDate},
{ label: "结束时间", prop: "endTime", formatter: this.formatterDate },
{label: "时长", prop: "duration", formatter: this.formatter},
{ label: "时长", prop: "duration", formatter: this.formatter },
// {label: "审批负责人Id", prop: "approverId", formatter: this.formatter},
/* {label: "处理状态", prop: "processStatus", formatter: this.formatter},*/
/* {label: "处理状态", prop: "processStatus", formatter: this.formatter},*/
{label: "状态", prop: "auditResult", formatter: this.formatter},
{label: "审批负责人", prop: "approver"},
{ label: "状态", prop: "auditResult", formatter: this.formatter },
{ label: "审批负责人", prop: "approver" },
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{
label: "创建用户",
prop: "createUserId",
formatter: this.formatter,
},
{label: "创建时间", prop: "createTime", formatter: this.formatterDate},
{
label: "创建时间",
prop: "createTime",
formatter: this.formatterDate,
},
{
label: "操作",
width: 240,
formatter: row => {
formatter: (row) => {
return (
<div>
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel}/>
<table-buttons
noAdd
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
<span> </span>
{row.processStatus === 1 ? (
<el-button
......@@ -153,11 +186,11 @@ export default {
)}
</div>
);
}
}
]
}
},
},
],
},
};
}
},
};
</script>
<template>
<div class="page">
<div style="margin:10px 0">
<div>
<tab-pane
:thirdList="thirdList"
:activeName="activeName"
......@@ -189,7 +189,7 @@ import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
import TabPane from "@/components/tabPane.vue";
import { timestampToTime } from "@/assets/utils/dateFormat";
import {formatterDateOnly} from "@/assets/utils/table";
import { formatterDateOnly } from "@/assets/utils/table";
export default {
name: "AttendanceRecordList",
components: {
......@@ -401,12 +401,30 @@ export default {
/** 子表列元素 */
columnSet: [
{ prop: "shiftsName", label: "班次名称", width: 150 },
{ prop: "goWorkDate", label: "上班打卡时间", width: 100 , formatter: this.formatterDate},
{ prop: "goWorkResult", label: "上班打卡结果", width: 100, formatter: this.formatterString },
{ prop: "offWorkDate", label: "下班打卡时间", width: 100 , formatter: this.formatterDate},
{ prop: "offWorkResult", label: "下班打卡结果", width: 100 , formatter: this.formatterString}
{
prop: "goWorkDate",
label: "上班打卡时间",
width: 100,
formatter: this.formatterDate,
},
{
prop: "goWorkResult",
label: "上班打卡结果",
width: 100,
formatter: this.formatterString,
},
{
prop: "offWorkDate",
label: "下班打卡时间",
width: 100,
formatter: this.formatterDate,
},
{
prop: "offWorkResult",
label: "下班打卡结果",
width: 100,
formatter: this.formatterString,
},
],
config: {
search: [
......@@ -459,7 +477,6 @@ export default {
label: "考勤结束时间",
fuzzy: false,
},
],
columns: [
{ type: "selection", width: 60 },
......@@ -479,12 +496,21 @@ export default {
{ label: "部门", prop: "deptName", formatter: this.formatters },
{ label: "职位", prop: "positionName", formatter: this.formatters },
{ label: "班次", prop: "shiftsName", formatter: this.formatters },
{ label: "签到结果", prop: "signInResult", formatter: this.formatter },
{ label: "签退结果", prop: "signOutResult", formatter: this.formatter },
{
label: "签到结果",
prop: "signInResult",
formatter: this.formatter,
},
{
label: "签退结果",
prop: "signOutResult",
formatter: this.formatter,
},
{ label: "打卡结果", prop: "punchResult", formatter: this.formatter },
{ label: "考勤类型", prop: "attendType", formatter: this.formatter },
{label: "考勤打卡记录详细信息",
{
label: "考勤打卡记录详细信息",
width: 120,
prop: "subColumns",
formatter: (row) => {
......@@ -494,7 +520,9 @@ export default {
return (
<el-popover placement="right" width={widthsize} trigger="click">
{this.renderTable(row.attendanceRecordDetailList)}
<el-button type="text" slot="reference">详细</el-button>
<el-button type="text" slot="reference">
详细
</el-button>
</el-popover>
);
},
......
......@@ -69,10 +69,20 @@
{{ form.subAddType == 1 ? "加分人员:" : "扣分人员:" }}
{{ form.deductPerson ? form.deductPerson : "--" }}</el-col
>
<el-col :span="12">
巡查人员:
{{
form.createUserId
? util_formatter("createUserId", form.createUserId)
: "--"
}}
</el-col>
</el-row>
<el-row>
<el-col :span="12"
>图片凭证:
<el-image
<!-- <el-image
v-if="form.filePaths"
style="width: 100px; height: 100px"
:src="
......@@ -88,7 +98,8 @@
: [form.filePaths]
"
>
</el-image>
</el-image> -->
<filepReview v-if="form.filePaths" :src="form.filePaths"/>
<span v-else>--</span>
</el-col>
</el-row>
......
......@@ -83,9 +83,19 @@
{{ form.deductTime ? form.deductTime : "--" }}</el-col
>
<el-col :span="12">
巡查人员:
{{
form.createUserId
? util_formatter("createUserId", form.createUserId)
: "--"
}}
</el-col>
</el-row>
<el-row>
<el-col :span="12"
>图片凭证:
<el-image
<!-- <el-image
v-if="form.filePaths"
style="width: 100px; height: 100px"
:src="
......@@ -101,7 +111,8 @@
: [form.filePaths]
"
>
</el-image>
</el-image> -->
<filepReview v-if="form.filePaths" :src="form.filePaths"/>
<span v-else>--</span>
</el-col>
</el-row>
......
......@@ -60,9 +60,17 @@
>
</el-row>
<el-row>
<el-col :span="24">
<el-col :span="12">
巡查人员:
{{
form.createUserId
? util_formatter("createUserId", form.createUserId)
: "--"
}}
</el-col>
<el-col :span="12">
图片凭证:
<el-image
<!-- <el-image
v-if="form.filePaths"
style="width: 100px; height: 100px"
:src="
......@@ -78,7 +86,8 @@
: [form.filePaths]
"
>
</el-image>
</el-image> -->
<filepReview v-if="form.filePaths" :src="form.filePaths"/>
<span v-else>--</span>
</el-col>
</el-row>
......
......@@ -62,9 +62,17 @@
>
</el-row>
<el-row>
<el-col :span="24">
<el-col :span="12">
巡查人员:
{{
form.createUserId
? util_formatter("createUserId", form.createUserId)
: "--"
}}
</el-col>
<el-col :span="12">
图片凭证:
<el-image
<!-- <el-image
v-if="form.filePaths"
style="width: 100px; height: 100px"
:src="
......@@ -80,7 +88,8 @@
: [form.filePaths]
"
>
</el-image>
</el-image> -->
<filepReview v-if="form.filePaths" :src="form.filePaths"/>
<span v-else>--</span>
</el-col>
</el-row>
......
......@@ -58,9 +58,17 @@
</el-col>
</el-row>
<el-row>
<el-col :span="24"
<el-col :span="12">
巡查人员:
{{
form.createUserId
? util_formatter("createUserId", form.createUserId)
: "--"
}}
</el-col>
<el-col :span="12"
>图片凭证:
<el-image
<!-- <el-image
v-if="form.filePaths"
style="width: 100px; height: 100px"
:src="
......@@ -76,7 +84,8 @@
: [form.filePaths]
"
>
</el-image>
</el-image> -->
<filepReview v-if="form.filePaths" :src="form.filePaths"/>
<span v-else>--</span>
</el-col>
</el-row>
......
......@@ -63,9 +63,17 @@
</el-row>
<el-row>
<el-col :span="12">
巡查人员:
{{
form.createUserId
? util_formatter("createUserId", form.createUserId)
: "--"
}}
</el-col>
<el-col :span="12"
>图片凭证:
<el-image
<!-- <el-image
v-if="form.filePaths"
style="width: 100px; height: 100px"
:src="
......@@ -81,7 +89,8 @@
: [form.filePaths]
"
>
</el-image>
</el-image> -->
<filepReview v-if="form.filePaths" :src="form.filePaths"/>
<span v-else>--</span>
</el-col>
</el-row>
......@@ -414,6 +423,7 @@ export default {
kaoqinCateArr: [],
kaoqinArr: [],
urls: { saveUrl: "/check/review/record/examine" }, //重写核查地址
baseUrl: process.env.VUE_APP_API_BASE_URL + "/",
};
},
......
......@@ -4,6 +4,7 @@
<el-button class="backBtn" size="small" @click="$router.back()">返回上一级</el-button>
<el-tabs v-model="tabs">
<el-tab-pane label="设计问卷" name="1">
<!-- 步骤1 填写问卷名称 -->
<div style="width: 800px;margin: 100px auto;" v-show="step">
<el-form :model="titleForm" :rules="titleRules" ref="titleForm">
<el-form-item label="问卷名称:" prop="title" label-width="125px">
......@@ -20,20 +21,22 @@
</div>
</el-form>
</div>
<!-- 动态表单配置 -->
<div v-show="!step">
<fc-designer style="height: 79vh;" ref="designer">
<template slot="handle">
<ElButton style="margin-left: 10px;" icon="el-icon-upload" type="primary" size="small"
@click="issueBtn" round>问卷发布
@click="issueBtn" round>问卷配置发布
</ElButton>
<!-- <ElButton style="margin-left: 10px;" icon="el-icon-upload" type="primary" size="small"
@click="issueBtn" round>外部链接
</ElButton> -->
<ElButton icon="el-icon-view" type="success" size="small" @click="showDrawer" round>手机模拟预览
<ElButton style="margin-left: 10px;" icon="el-icon-position" type="warning" size="small"
@click="outsideBtn" round>外部链接发布
</ElButton>
<ElButton icon="el-icon-view" type="success" size="small" @click="showDrawer" round>手机预览
</ElButton>
</template>
</fc-designer>
</div>
<!-- 手机模拟预览 -->
<el-drawer :visible.sync="drawer" title="预览">
<div class="showPhone">
<div class="phone">
......@@ -44,13 +47,16 @@
</div>
</div>
</el-drawer>
<!-- 问卷发布弹出框 -->
<el-dialog title="问卷发布" :visible.sync="issueDialog" width="30%" top="25vh">
<el-form :model="issueForm" :rules="issueRules" ref="issueForm">
<el-form-item label="链接地址:" label-width="125px" prop="webUrl" v-if="weblink">
<el-input v-model="issueForm.webUrl" placeholder="请输入链接地址"></el-input>
</el-form-item>
<el-form-item label="问卷封面:" label-width="125px">
<div style="display: flex;align-items: center;">
<img style="width:80px; height: 80px; margin-right: 10px;cursor: pointer;"
v-for="(i, j) in coverImg" :key="j" :src="ImgUrl + '/' + i.url" alt=""
v-for="(i, j) in coverImg" :key="j" :src="showImgUrl + '/' + i.url" alt=""
:class="selImg == j ? 'selImg' : ''" @click="selImg = j">
<el-upload v-show="coverImg.length < 4" :action="ImgUrl + '/attendance/file/commonupload'"
accept="image/jpeg,image/png,image/jpg" list-type="picture-card" class="upload"
......@@ -75,8 +81,8 @@
</div>
</el-form>
</el-dialog>
<el-dialog title="人员选择" :visible.sync="treeDialog">
<!-- 人员选择弹出框 -->
<el-dialog title="人员选择" :visible.sync="treeDialog" width="40%">
<div class="treeDialog">
<el-tree class="treeCss" :data="treeData" node-key="id" :props="defaultProps"
@node-click="handleNodeClick"></el-tree>
......@@ -158,6 +164,10 @@ export default {
issueRules: {
time: [
{ required: true, message: '请输入选择反馈期限', trigger: 'blur' },
],
webUrl: [
{ required: true, message: '请输入链接地址', trigger: 'blur' },
{ pattern: /^https?:\/\/((.)+(\.)?)*(:\d+)?(\/((\.)?(\?)?=?&?.(\?)?)*)*$/i, message: '请输入正确的链接 例:https://www.baidu.com', trigger: 'change' }
]
},
treeData: [],
......@@ -175,7 +185,25 @@ export default {
editStyle: false,
loadingstate: false,
ImgUrl: process.env.VUE_APP_API_BASE_URL,
coverImg: []
showImgUrl:'',
coverImg: [],
weblink: 0,
webUrl: '',
}
},
watch: {
issueDialog(val) { //监听关闭外联状态
if (!val) {
this.weblink = 0
}
}
},
created(){
if(process.env.NODE_ENV == "development"){
this.showImgUrl= process.env.VUE_APP_API_BASE_URL
}else{
this.showImgUrl=''
}
},
mounted() {
......@@ -199,6 +227,10 @@ export default {
this.getFile()
},
methods: {
outsideBtn() {
this.weblink = 1
this.issueDialog = 1
},
handleUploadSuccess(res) {
console.log(res)
this.coverImg.push(res)
......@@ -250,7 +282,6 @@ export default {
console.log(file)
}
},
//获取问卷封面
getFile() {
this.$post('/feedback/file/list', { page: 1, size: 3 }).then(res => {
......@@ -357,12 +388,12 @@ export default {
return JSON.stringify(FcDesignerOptions)
},
issueFormBtn(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
if (this.checkedUser.length < 1) {
this.$message.warning('请选择人员后发布问卷')
return
}
this.$refs[formName].validate((valid) => {
if (valid) {
console.log(this.issueForm)
this.Frule.forEach(i => {
i.remark = i.field
......@@ -381,7 +412,8 @@ export default {
})
let sub = {
weblink: this.weblink,
webUrl: this.issueForm.webUrl,
staffList: this.checkedUser,
id: this.feedbackId,
...this.titleForm,
......
<template>
<div class="page">
<LayoutTable :data="tableData" notDel :config="tableConfig">
</LayoutTable>
<LayoutTable :data="tableData" notDel :config="tableConfig"> </LayoutTable>
<drawer-show ref="drawerform" @ok="getData" />
</div>
</template>
......@@ -13,11 +12,10 @@ import table from "@/assets/mixins/table";
export default {
name: "FeedbackList",
components: {
drawerShow
drawerShow,
},
mixins: [table],
created() {
},
created() {},
methods: {
renderTable(tableData) {
return (
......@@ -33,8 +31,7 @@ export default {
label={options.label}
width={options.width}
formatter={options.formatter}
>
</el-table-column>
></el-table-column>
);
},
/** 重写新增方法 */
......@@ -46,25 +43,28 @@ export default {
toEdit(row) {
// this.$refs.drawerform.edit(row);
this.$router.push({ path: `/feedback/addQuestion/list?id=${row.id}` });
localStorage.setItem('editFeedback', JSON.stringify(row))
localStorage.setItem("editFeedback", JSON.stringify(row));
},
/** 重写查看方法 */
toView(row) {
console.log(row)
localStorage.setItem('checkFeedbackId', row.id)
console.log(row);
localStorage.setItem("checkFeedbackId", row.id);
// this.$refs.drawerform.view(row);
this.$router.push('/feedback/questionnaire/list')
this.$router.push("/feedback/questionnaire/list");
},
goPage(path) {
this.$router.push(path)
}
this.$router.push(path);
},
},
data() {
return {
/** 子表列元素 */
columnSet: [
{ label: "反馈问卷id号", prop: "feedbackId", formatter: this.formatter },
{
label: "反馈问卷id号",
prop: "feedbackId",
formatter: this.formatter,
},
{ label: "问题内容", prop: "content" },
{ label: "问题类型 ", prop: "questionType", formatter: this.formatter },
{ label: "是否必填", prop: "require", formatter: this.formatter },
......@@ -73,6 +73,18 @@ export default {
config: {
isshowTabPane: true,
search: [
{
name: "feedbackTimeStart",
type: "datetime",
label: "请选择日期",
fuzzy: false,
},
{
name: "title",
type: "text",
label: "输入问卷标题关键字搜索",
fuzzy: false,
},
],
columns: [
{ type: "selection", width: 60 },
......@@ -80,11 +92,23 @@ export default {
{ label: "问卷标题", prop: "title" },
{ label: "更新时间", prop: "createTime", formatter: this.formatterDate },
{
label: "更新时间",
prop: "createTime",
formatter: this.formatterDate,
},
{ label: "反馈开始时间", prop: "feedbackTimeStart", formatter: this.formatterDate },
{
label: "反馈开始时间",
prop: "feedbackTimeStart",
formatter: this.formatterDate,
},
{ label: "反馈结束时间", prop: "feedbackTimeEnd", formatter: this.formatterDate },
{
label: "反馈结束时间",
prop: "feedbackTimeEnd",
formatter: this.formatterDate,
},
{ label: "邀请人数", prop: "inviteNum", formatter: this.formatter },
......@@ -92,19 +116,30 @@ export default {
// { label: "创建用户", prop: "createUserId", formatter: this.formatter },
{
label: "状态", prop: "processStatus", formatter: (row) => {
let str = "未开始"
label: "状态",
prop: "processStatus",
formatter: (row) => {
let str = "未开始";
if (row.processStatus == 1) {
str = "进行中"
str = "进行中";
} else if (row.processStatus == 2) {
str = "已结束"
str = "已结束";
}
return (
<el-tag type={row.processStatus ? row.processStatus == 2 ? 'success' : 'info' : 'danger'} size="small">
<el-tag
type={
row.processStatus
? row.processStatus == 1
? "success"
: "info"
: "danger"
}
size="small"
>
{str}
</el-tag>
)
}
);
},
},
// {
// label: "绩效反馈问题",
......@@ -124,23 +159,37 @@ export default {
{
label: "操作",
width: 240,
formatter: row => {
formatter: (row) => {
if (row.processStatus == 0) {
return (
<table-buttons noAdd noView row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
<table-buttons
noAdd
noView
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
);
} else {
return (
<table-buttons noAdd noEdit row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
<table-buttons
noAdd
noEdit
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
);
}
// return <table-buttons noAdd noEdit row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
}
}
]
}
},
},
],
},
};
}
},
};
</script>
<style lang="less" scoped>
......
......@@ -15,9 +15,8 @@
</div>
<div style="margin: 10px 0;">
<el-tag
:type="feedbackData.processStatus ? feedbackData.processStatus = 1 ? 'success' : 'info' : 'danger'">
{{ feedbackData.processStatus ? feedbackData.processStatus
== 1 ? '进行中' : '已结束' : '未开始' }}</el-tag>
:type="feedbackData.processStatus ? feedbackData.processStatus == 1 ? 'success' : 'info' : 'danger'">
{{ feedbackData.processStatus ? feedbackData.processStatus == 1 ? '进行中' : '已结束' : '未开始' }}</el-tag>
反馈时间:{{ feedbackData.timeStart }} ~ {{ feedbackData.timeEnd }}
</div>
......
......@@ -4,36 +4,83 @@
:title="title"
:visible.sync="open"
:direction="direction"
size="50%">
<el-form ref="form" :model="form" :rules="rules" label-width="120px" style="padding:20px">
size="50%"
>
<el-form
ref="form"
:model="form"
:rules="rules"
label-width="120px"
style="padding:20px"
>
<el-row>
<Field v-if="from == 'job'" label="分组" prop="groupId" v-model="form.groupId"
:enumData="dict.group" type="select" placeholder="请选择分组"/>
<Field
v-if="from == 'job'"
label="分组"
prop="groupId"
v-model="form.groupId"
:enumData="dict.groupId"
type="select"
placeholder="请选择分组"
/>
<Field label="分组名称" prop="groupName" v-model="form.groupName" placeholder="请输入分组名称" :maxLength="10" v-if="from == 'group'"/>
<Field
label="分组名称"
prop="groupName"
v-model="form.groupName"
placeholder="请输入分组名称"
:maxLength="10"
v-if="from == 'group'"
/>
<Field label="职位编码" prop="jobCode" :maxLength="10" v-model="form.jobCode" placeholder="请输入职位编码" v-if="from == 'job'"/>
<Field label="职位名称" prop="jobName" :maxLength="10" v-model="form.jobName" placeholder="请输入职位名称" v-if="from == 'job'" />
<Field
label="职位编码"
prop="jobCode"
:maxLength="10"
v-model="form.jobCode"
placeholder="请输入职位编码"
v-if="from == 'job'"
/>
<Field
label="职位名称"
prop="jobName"
:maxLength="10"
v-model="form.jobName"
placeholder="请输入职位名称"
v-if="from == 'job'"
/>
<Field label="类型" disabled prop="type" v-model="form.type" type="select" :enumData="dict.type" placeholder="请选择类型"/>
<Field label="备注" prop="remark" :maxLength="50" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
<Field
label="类型"
disabled
prop="type"
v-model="form.type"
type="select"
:enumData="dict.type"
placeholder="请选择类型"
/>
<Field
label="备注"
prop="remark"
:maxLength="50"
v-model="form.remark"
type="textarea"
placeholder="请输入备注"
/>
</el-row>
<form-buttons @submit='submitForm' noCancelBtn />
<form-buttons @submit="submitForm" noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
import form from "@/assets/mixins/formdialog";
export default {
name: "JobDetail",
mixins: [form],
components: {
},
components: {},
created() {
this.changePath("job")
this.changePath("job");
},
data() {
return {
......@@ -43,48 +90,46 @@
title: "职位信息",
// 是否显示弹出层
open: false,
direction:"rtl",
toString:[
],
toDate:[
],
direction: "rtl",
toString: [],
toDate: [],
// 表单校验
rules: {
groupId: [{ required: true, message: "请选择分组", trigger: "change" }],
},
from:''
from: "",
};
},
methods: {
/** 编辑 */
edit(from,row) {
this.reset()
edit(from, row) {
this.reset();
this.query = { id: row.id };
this.urls.currUrl ="job/edit";
this.urls.currUrl = "job/edit";
this.getData();
this.pageInfo.type="edit"
this.from = from
this.pageInfo.type = "edit";
this.from = from;
this.title = from === 'group'?"修改分组信息":'修改职位信息';
this.title = from === "group" ? "修改分组信息" : "修改职位信息";
},
/** 新增 */
add(row) {
console.log(row,'添加')
this.from = row
this.title = row === 'group'?"新增分组信息":'新增职位信息';
this.reset()
console.log(row, "添加");
this.from = row;
this.title = row === "group" ? "新增分组信息" : "新增职位信息";
this.reset();
this.urls.currUrl = "job/add";
this.getData();
this.pageInfo.type="add"
this.pageInfo.type = "add";
},
/** 查看*/
view(row) {
this.reset()
this.reset();
this.query = { id: row.id };
this.urls.currUrl ="job/view";
this.urls.currUrl = "job/view";
this.getData();
this.pageInfo.type="view"
this.pageInfo.type = "view";
this.title = "职位信息详细";
},
/**取消按钮 */
......@@ -93,12 +138,11 @@
},
/**获取数据后弹框 */
afterRender(data) {
// 固定新增类型
if(this.from == 'group'){
this.form.type = '1'
}else{
this.form.type = '2'
if (this.from == "group") {
this.form.type = "1";
} else {
this.form.type = "2";
}
this.open = true;
},
......@@ -110,11 +154,11 @@
// 表单重置
reset() {
this.form = {
groupId : null,
groupName : "",
jobCode : "",
jobName : "",
remark : "",
groupId: "",
groupName: "",
jobCode: "",
jobName: "",
remark: "",
};
this.resetForm("form");
},
......@@ -124,5 +168,5 @@
}
},
},
};
};
</script>
......@@ -70,13 +70,27 @@ export default {
color: "#000",
},
},
dataZoom: [
{
show: true,
realtime: true,
start: 0,
end: 100
},
{
type: 'inside',
realtime: true,
start: 0,
end: 100
}
],
tooltip: {},
xAxis: {
data: this.chartsData.map(i => {
// console.log(i)
if(this.title == "申诉次数部门排名TOP20") return i.deptName
if(this.title == "申诉次数个人排名TOP20") return i.staffName
if(this.title == "申诉次数规则排名TOP20") return i.ruleName
if (this.title == "申诉次数部门排名TOP20") return i.deptName
if (this.title == "申诉次数个人排名TOP20") return i.staffName
if (this.title == "申诉次数规则排名TOP20") return i.ruleName
// return i.ruleName || i.deptName || i.staffName
})
// this.title == "申诉次数部门排名TOP20"
......@@ -151,7 +165,7 @@ export default {
grid: {
left: "5%",
right: "4%",
bottom: "2%",
// bottom: "1%",
containLabel: true,
},
// color:[ "#61a0a8",],
......
......@@ -122,7 +122,7 @@
<el-col :span="22">
<el-form-item label="图片凭证:">
<div v-if="form.view == '查看'">
<el-image
<!-- <el-image
v-if="form.filePaths"
style="width: 100px; height: 100px"
:src="
......@@ -138,7 +138,8 @@
: [form.filePaths]
"
>
</el-image>
</el-image> -->
<filepReview v-if="form.filePaths" :src="form.filePaths"/>
<span v-else>--</span>
</div>
<ImageUpload
......
......@@ -175,7 +175,7 @@
<el-col :span="22">
<el-form-item label="图片凭证:">
<div v-if="form.view == '查看'">
<el-image
<!-- <el-image
v-if="form.filePaths"
style="width: 100px; height: 100px"
:src="
......@@ -191,7 +191,8 @@
: [form.filePaths]
"
>
</el-image>
</el-image> -->
<filepReview v-if="form.filePaths" :src="form.filePaths"/>
<span v-else>--</span>
</div>
<ImageUpload
......
......@@ -150,7 +150,7 @@
<el-col :span="22">
<el-form-item label="图片凭证:">
<div v-if="form.view == '查看'">
<el-image
<!-- <el-image
v-if="form.filePaths"
style="width: 100px; height: 100px"
:src="
......@@ -166,7 +166,8 @@
: [form.filePaths]
"
>
</el-image>
</el-image> -->
<filepReview v-if="form.filePaths" :src="form.filePaths"/>
<span v-else>--</span>
</div>
<ImageUpload
......
......@@ -127,7 +127,7 @@
<el-col :span="22">
<el-form-item label="图片凭证:">
<div v-if="form.view == '查看'">
<el-image
<!-- <el-image
v-if="form.filePaths"
style="width: 100px; height: 100px"
:src="
......@@ -143,7 +143,8 @@
: [form.filePaths]
"
>
</el-image>
</el-image> -->
<filepReview v-if="form.filePaths" :src="form.filePaths"/>
<span v-else>--</span>
</div>
<ImageUpload
......
......@@ -87,7 +87,7 @@
<el-col :span="22">
<el-form-item label="图片凭证:">
<div v-if="form.view == '查看'">
<el-image
<!-- <el-image
v-if="form.filePaths"
style="width: 100px; height: 100px"
:src="
......@@ -103,7 +103,8 @@
: [form.filePaths]
"
>
</el-image>
</el-image> -->
<filepReview v-if="form.filePaths" :src="form.filePaths"/>
<span v-else>--</span>
</div>
<ImageUpload
......
......@@ -140,7 +140,7 @@
<el-col :span="22">
<el-form-item label="图片凭证:">
<div v-if="form.view == '查看'">
<el-image
<!-- <el-image
v-if="form.filePaths"
style="width: 100px; height: 100px"
:src="
......@@ -156,7 +156,8 @@
: [form.filePaths]
"
>
</el-image>
</el-image> -->
<filepReview v-if="form.filePaths" :src="form.filePaths"/>
<span v-else>--</span>
</div>
<ImageUpload
......
......@@ -121,7 +121,7 @@ export default {
{ label: "增减类型", prop: "subAddType", formatter: this.formatter },
{ label: "分值", prop: "score" },
{ label: "分值", prop: "score", formatter: this.formatter },
{ label: "负责人分值", prop: "ownerScore" },
......@@ -226,7 +226,9 @@ export default {
type: this.activeName,
page: this.query.page,
orderColList: this.typeArr,
name: `%${this.searchValue}%`,
andConditionList: [
{ content: `%${this.searchValue}%`, name: `%${this.searchValue}%` },
],
}).then((res) => {
if (res.code == 1) {
this.tableData = res.data;
......
......@@ -52,6 +52,7 @@
:expand-on-click-node="false"
:render-content="renderContent"
@node-click="handleNodeClick"
:default-expand-all="true"
>
</el-tree>
</el-scrollbar>
......@@ -151,13 +152,13 @@
<!-- 花名册记录查看 -->
<el-drawer title="历史花名册" :visible.sync="drawerhistory" direction="rtl">
<div class="hisList">
<div class="list mt10" v-for="item in 10" :key="item">
<div class="list mt10" v-for="item in 1" :key="item">
<div class="flex flex-align-center flex-pack-justify">
<div>花名册记录</div>
<el-button type="text">查看</el-button>
<!-- <el-button type="text">查看</el-button> -->
</div>
<div class="times">
导出时间:2020-08-13
导出时间:2023-07-19
</div>
</div>
</div>
......@@ -182,7 +183,12 @@
</div>
</el-dialog>
<drawer-show ref="drawerform" @ok="getData" :bumentree="areaData" :currentNode="currentNode"/>
<drawer-show
ref="drawerform"
@ok="getData"
:bumentree="areaData"
:currentNode="currentNode"
/>
</div>
</template>
......@@ -248,7 +254,7 @@ export default {
},
handleNodeClick(node) {
console.log(node,123123);
console.log(node, 123123);
this.currentNode = node;
this.query = { deptId: node.id };
this.getData();
......@@ -327,13 +333,13 @@ export default {
name: "name",
type: "text",
label: "员工姓名",
fuzzy: false,
fuzzy: true,
},
{
name: "phoneNumber",
type: "text",
label: "手机号",
fuzzy: false,
fuzzy: true,
},
],
columns: [
......
......@@ -80,7 +80,7 @@ export default {
name: '目标线',
yAxis: this.markLine,
label: {
formatter: '{b}:'+this.legendName+'不高于20.0%,',
formatter: '{b}:' + this.legendName + '不高于20.0%,',
position: 'insideStartTop'
},
lineStyle: {
......@@ -188,6 +188,10 @@ export default {
]
})
}
myChart.on('click', (params)=>{
this.$emit("click",params)
})
},
},
};
......
<template>
<div class="page">
<LayoutTable :data="tableData" notAdd notDel :config="tableConfig">
<el-button
slot="table-head-left2"
style="margin-left: 10px"
icon="el-icon-tickets"
size="mini"
@click="doExport"
:disabled="isExport"
>导出</el-button
>
<el-button slot="table-head-left2" style="margin-left: 10px" icon="el-icon-tickets" size="mini" @click="doExport"
:disabled="isExport">导出</el-button>
</LayoutTable>
<dialog-show ref="dialogform" @ok="getData" />
......@@ -26,7 +19,7 @@ export default {
dialogShow,
},
mixins: [table],
created() {},
created() { },
methods: {
/** 导出Excel */
doExport() {
......@@ -103,15 +96,16 @@ export default {
},
},
{ label: "考勤绩效", prop: "attendScore", formatter: this.formatter },
{ label: "考勤绩效指标分数", prop: "attendScore", formatter: this.formatter },
{ label: "评价绩效", prop: "assessScore", formatter: this.formatter },
{ label: "评价绩效指标分数", prop: "reviewScore", formatter: this.formatter },
{ label: "投诉绩效指标分数", prop: "reviewScore", formatter: this.formatter },
{ label: "办件绩效", prop: "workScore", formatter: this.formatter },
{ label: "办件绩效分数", prop: "workScore", formatter: this.formatter },
{ label: "效能绩效", prop: "effectScore", formatter: this.formatter },
{ label: "效能绩效分数", prop: "effectScore", formatter: this.formatter },
{ label: "其它绩效", prop: "otherScore", formatter: this.formatter },
{ label: "其它绩效分数", prop: "otherScore", formatter: this.formatter },
{
label: "累计异常分数",
......
......@@ -68,6 +68,7 @@
<profiles.hik.appSecret>2m9RcPJOKq5j2QPQM4v5</profiles.hik.appSecret>
<profiles.dingtalk.domain>https://oapi.dingtalk.com</profiles.dingtalk.domain>
<profiles.dingtalk.oaUrl>api.dingtalk.com</profiles.dingtalk.oaUrl>
<profiles.dingtalk.agentId>2652674890</profiles.dingtalk.agentId>
<profiles.dingtalk.appKey>dingpqzradgfr4efdi2j</profiles.dingtalk.appKey>
<profiles.dingtalk.appSecret>bF2WALmo5_Wuj3hg5gXeWqezrYnZChUJ88HjzNWpkA9ivdOxfBDGOGYcfVRfB3vd</profiles.dingtalk.appSecret>
......@@ -98,6 +99,7 @@
<profiles.hik.appSecret>2m9RcPJOKq5j2QPQM4v5</profiles.hik.appSecret>
<profiles.dingtalk.domain>http://172.15.28.113:8918</profiles.dingtalk.domain>
<profiles.dingtalk.oaUrl>172.15.28.113:8919</profiles.dingtalk.oaUrl>
<profiles.dingtalk.agentId>2652674890</profiles.dingtalk.agentId>
<profiles.dingtalk.appKey>dingpqzradgfr4efdi2j</profiles.dingtalk.appKey>
<profiles.dingtalk.appSecret>bF2WALmo5_Wuj3hg5gXeWqezrYnZChUJ88HjzNWpkA9ivdOxfBDGOGYcfVRfB3vd</profiles.dingtalk.appSecret>
......
......@@ -158,11 +158,12 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
homeStatInfo.setTotalDeptNum(totalDeptNum);
//todo
homeStatInfo.setAttendRadio(new BigDecimal(91.00));
homeStatInfo.setAttendRadio(new BigDecimal(98.00));
homeStatInfo.setLevealPersonNum(6);
homeStatInfo.setLatePersonNum(2);
homeStatInfo.setLeftEarlyPersonNum(1);
homeStatInfo.setMissCardPersonNum(0);
homeStatInfo.setMissCardPersonNum(23);
homeStatInfo.setAttendPersonNum(426);
data.put("homeStat", homeStatInfo);
data.put("token", token);
......
......@@ -19,8 +19,6 @@ public abstract class BaseReq implements Serializable {
*/
private Integer size;
/**
* 工号
*/
......
package com.mortals.xhx.busiz;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
@Data
public class TestReq {
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTimeStart;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTimeEnd;
}
......@@ -27,4 +27,9 @@ public class EffectSaveReq extends BaseReq {
* 报警时间
*/
private Date alarmTime;
/**
* 窗口编号
*/
private String windowNum;
}
......@@ -28,6 +28,9 @@ public class ReviewSaveReq extends BaseReq {
*/
private String reviewDevice;
/**
* 窗口编号
*/
private String windowNum;
}
......@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.common.Rest;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.model.OrderCol;
import com.mortals.framework.model.PageInfo;
import com.mortals.framework.model.Result;
import com.mortals.xhx.busiz.h5.req.InspectSaveReq;
......@@ -164,6 +165,7 @@ public class InspectApiController extends AbstractBaseController<PerformReq> {
query.setCreateTimeEnd(performReq.getPerformEndDate());
query.setCreateUserId(context.getUser().getId());
query.setSubMethod(SubMethodEnum.大厅巡查.getValue());
query.setOrderColList(Arrays.asList(new OrderCol("createTime",OrderCol.DESCENDING)));
log.info("inspect query:{}",JSONObject.toJSONString(query));
......
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