Commit c6e202a8 authored by 赵啸非's avatar 赵啸非

Merge remote-tracking branch 'origin/master'

parents 63e0e4da e73d4be8
<template> <template>
<div> <div>
<el-dialog title="人员选择" :visible.sync="treeDialog">
<div class="treeDialog">
<el-tree class="treeCss" :data="treeData" node-key="id" :props="defaultProps"
@node-click="handleNodeClick"></el-tree>
<div class="treeCss" style="margin-left: 10px;">
<div style="margin-top: 3px;">
{{ cityOptions.length > 0 ? '请选择人员' : '请选择部门' }}
</div>
<!-- <el-checkbox v-show="cityOptions.length > 0" :indeterminate="isIndeterminate"
v-model="checkAll" @change="handleCheckAllChange">全选</el-checkbox> -->
<el-checkbox-group v-model="checkedCities">
<el-checkbox v-for="i in cityOptions" :label="i.staffId" :key="i">{{ i.staffName
}}</el-checkbox>
</el-checkbox-group>
</div>
</div>
<div style="text-align: center;margin-top: 10px;">
<el-button size="small" @click="checkedCities = []">重置</el-button>
<el-button size="small" type="primary" @click="subUser">确定</el-button>
</div>
</el-dialog>
</div> </div>
</template> </template>
...@@ -10,6 +30,4 @@ export default { ...@@ -10,6 +30,4 @@ export default {
} }
</script> </script>
<style lang="less" scoped> <style lang="less" scoped></style>
\ No newline at end of file
</style>
\ No newline at end of file
...@@ -85,18 +85,16 @@ ...@@ -85,18 +85,16 @@
@node-click="handleNodeClick"></el-tree> @node-click="handleNodeClick"></el-tree>
<div class="treeCss" style="margin-left: 10px;"> <div class="treeCss" style="margin-left: 10px;">
<div style="margin-top: 3px;"> <div style="margin-top: 3px;">
{{ cityOptions.length > 0 ? '请选择人员' : '请选择部门' }} {{ userOptions.length > 0 ? '请选择人员' : '请选择部门' }}
</div> </div>
<!-- <el-checkbox v-show="cityOptions.length > 0" :indeterminate="isIndeterminate" <el-checkbox-group v-model="checkedUser">
v-model="checkAll" @change="handleCheckAllChange">全选</el-checkbox> --> <el-checkbox v-for="i in userOptions" :label="i.staffId" :key="i">{{ i.staffName
<el-checkbox-group v-model="checkedCities">
<el-checkbox v-for="i in cityOptions" :label="i.staffId" :key="i">{{ i.staffName
}}</el-checkbox> }}</el-checkbox>
</el-checkbox-group> </el-checkbox-group>
</div> </div>
</div> </div>
<div style="text-align: center;margin-top: 10px;"> <div style="text-align: center;margin-top: 10px;">
<el-button size="small" @click="checkedCities = []">重置</el-button> <el-button size="small" @click="checkedUser = []">重置</el-button>
<el-button size="small" type="primary" @click="subUser">确定</el-button> <el-button size="small" type="primary" @click="subUser">确定</el-button>
</div> </div>
</el-dialog> </el-dialog>
...@@ -175,28 +173,26 @@ export default { ...@@ -175,28 +173,26 @@ export default {
}, },
treeDialog: 0, treeDialog: 0,
checkAll: false, userOptions: [],
cityOptions: [], checkedUser: [],
checkedCities: [],
isIndeterminate: true
} }
}, },
mounted() { mounted() {
this.getDeptData() this.getDeptData()
}, },
methods: { methods: {
handleCheckAllChange(val) {
console.log(val)
this.checkedCities = val ? this.cityOptions : [];
this.isIndeterminate = false;
},
subUser() { subUser() {
console.log(this.checkedCities) console.log(this.checkedUser)
if (this.checkedUser.length > 0) {
this.treeDialog = 0
} else {
this.$message.warning('请选择人员')
}
}, },
handleNodeClick(data) { handleNodeClick(data) {
if (data.personList) { if (data.personList) {
this.cityOptions = data.personList this.userOptions = data.personList
// console.log(this.cityOptions) // console.log(this.userOptions)
} }
}, },
//获取部门数据 //获取部门数据
...@@ -253,6 +249,10 @@ export default { ...@@ -253,6 +249,10 @@ export default {
return JSON.stringify(FcDesignerOptions) return JSON.stringify(FcDesignerOptions)
}, },
issueFormBtn(formName) { issueFormBtn(formName) {
if (this.checkedUser.length < 1) {
this.$message.warning('请选择人员后发布问卷')
return
}
this.$refs[formName].validate((valid) => { this.$refs[formName].validate((valid) => {
if (valid) { if (valid) {
console.log(this.issueForm) console.log(this.issueForm)
...@@ -273,6 +273,7 @@ export default { ...@@ -273,6 +273,7 @@ export default {
}) })
let sub = { let sub = {
staffList: this.checkedUser,
id: '', id: '',
...this.titleForm, ...this.titleForm,
feedbackTimeStart: this.issueForm.time[0], feedbackTimeStart: this.issueForm.time[0],
......
...@@ -19,17 +19,18 @@ ...@@ -19,17 +19,18 @@
<div class="content"> <div class="content">
<div class="cLeft"> <div class="cLeft">
<div class="title"> <div>
全部数据(220) <span class="cLeftTop" style="margin: 0;" :class="selTitle == 1 ? 'title' : ''"
<span style="font-weight: 400; font-size: 16px;margin-left: 20px;">已反馈(1)</span> @click="selTitle = 1">全部数据(220)</span>
<span style="font-weight: 400; font-size: 16px;margin-left: 20px;">未反馈(219)</span> <span class="cLeftTop" :class="selTitle == 2 ? 'title' : ''" @click="selTitle = 2">已反馈(1)</span>
<span class="cLeftTop" :class="selTitle == 3 ? 'title' : ''"
@click="selTitle = 3">未反馈(219)</span>
</div> </div>
<el-button class="m15" type="primary" size="small">导出数据</el-button> <el-button class="m15" type="primary" size="small">导出数据</el-button>
<div class="lBox m15"> <div class="lBox m15">
<div class="treeS"> <div class="treeS">
<el-tree :data="treeData" :props="defaultProps" @node-click="treeSub"></el-tree> <el-tree :data="treeData" :props="defaultProps" @node-click="treeSub"></el-tree>
</div> </div>
<el-table ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%" <el-table ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%"
@selection-change="handleSelectionChange"> @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55"> <el-table-column type="selection" width="55">
...@@ -124,6 +125,7 @@ export default { ...@@ -124,6 +125,7 @@ export default {
Fopthion: '', Fopthion: '',
drawerAnswer: false, drawerAnswer: false,
feedbackData: {}, feedbackData: {},
selTitle: 1,
tableData: [{ tableData: [{
date: '2016-05-02', date: '2016-05-02',
name: '王小虎', name: '王小虎',
...@@ -179,7 +181,8 @@ export default { ...@@ -179,7 +181,8 @@ export default {
defaultProps: { defaultProps: {
children: 'children', children: 'children',
label: 'label' label: 'label'
} },
} }
}, },
mounted() { mounted() {
...@@ -419,6 +422,12 @@ export default { ...@@ -419,6 +422,12 @@ export default {
box-sizing: border-box; box-sizing: border-box;
padding: 20px; padding: 20px;
.cLeftTop {
font-size: 16px;
margin-left: 20px;
cursor: pointer;
}
.lBox { .lBox {
display: flex; display: flex;
// align-items: center // align-items: center
......
...@@ -7,7 +7,124 @@ ...@@ -7,7 +7,124 @@
:destroy-on-close="true" :destroy-on-close="true"
size="50%" size="50%"
> >
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form
ref="form"
class="dra_content"
:model="form"
:rules="rules"
label-width="120px"
>
<div class="box">
<div class="title">异常情况</div>
<div class="content">
<el-row>
<el-col :span="8"
>员工:{{ form.staffName ? form.staffName : "--" }}</el-col
>
<el-col :span="8"
>所属部门:{{ form.deptName ? form.deptName : "--" }}</el-col
>
<el-col :span="8"
>窗口编号:{{ form.windowNum ? form.windowNum : "--" }}</el-col
>
</el-row>
<el-row>
<el-col :span="8"
>考勤组:{{
form.attendanceGroupName ? form.attendanceGroupName : "--"
}}</el-col
>
<el-col :span="8"
>异常时间:{{ form.errorTime ? form.errorTime : "--" }}</el-col
>
<el-col :span="8"
>上下班时间:{{
form.goOffTimeStr ? form.goOffTimeStr : "--"
}}</el-col
>
</el-row>
<el-row>
<el-col :span="10"
>实际打卡时间:{{
form.actualAttendTime ? form.actualAttendTime : "--"
}}</el-col
>
<el-col :span="9"
>异常结果:{{ form.errorTime ? form.errorTime : "--" }}</el-col
>
<el-col :span="5"
>扣分方式:{{ form.subMethod ? form.subMethod : "--" }}</el-col
>
</el-row>
<el-row>
<el-col :span="8"
>扣分时间:{{ form.deductTime ? form.deductTime : "--" }}</el-col
>
<el-col :span="8"
>扣分人员:{{
form.deductPerson ? form.deductPerson : "--"
}}</el-col
>
</el-row>
</div>
</div>
<div class="box">
<div class="title">核查情况</div>
<div class="content">
<el-row>
<el-col :span="8"
>核查结果:{{
form.checkResult ? form.checkResult : "--"
}}</el-col
>
<el-col :span="8"
>绩效规则:{{ form.ruleName ? form.ruleName : "--" }}</el-col
>
<el-col :span="8"
>加分/扣除分值:{{ form.score ? form.score : "--" }}</el-col
>
</el-row>
<el-row>
<el-col :span="8"
>说明:{{ form.checkDesc ? form.checkDesc : "--" }}</el-col
>
<el-col :span="8"
>核查人员:{{
form.checkPerson ? form.checkPerson : "--"
}}</el-col
>
<el-col :span="8"
>核查时间:{{ form.checkTime ? form.checkTime : "--" }}</el-col
>
</el-row>
</div>
</div>
<div class="box">
<div class="title">申诉情况</div>
<div class="content">
<el-row>
<el-col :span="24"
>申诉说明:{{
form.appealDesc ? form.appealDesc : "--"
}}</el-col
>
<el-col :span="24"
>申诉时间:{{ form.appealTime ? form.appealTime : "--" }}</el-col
>
<el-col :span="24"
>申诉附件:{{ form.performAttendAppealFilesList ? form.performAttendAppealFilesList : "--" }}</el-col
>
</el-row>
</div>
</div>
<div class="box"></div>
<form-buttons
@submit="submitForm"
v-if="pageInfo.type != 'view'"
noCancelBtn
/>
</el-form>
<!-- <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row> <el-row>
<Field <Field
label="核查记录Id" label="核查记录Id"
...@@ -270,7 +387,7 @@ ...@@ -270,7 +387,7 @@
v-if="pageInfo.type != 'view'" v-if="pageInfo.type != 'view'"
noCancelBtn noCancelBtn
/> />
</el-form> </el-form> -->
</el-drawer> </el-drawer>
</template> </template>
...@@ -442,3 +559,51 @@ export default { ...@@ -442,3 +559,51 @@ export default {
}, },
}; };
</script> </script>
<style lang="less" scoped>
.dra_content {
width: 100%;
height: 100%;
padding: 20px;
.box {
width: 100%;
height: auto;
background: inherit;
background-color: rgba(242, 246, 252, 1);
border: none;
border-radius: 8px;
-moz-box-shadow: none;
-webkit-box-shadow: none;
box-shadow: none;
padding: 15px 0 0 15px;
.title {
color: #1890ff;
font-size: 16px;
padding-left: 10px;
position: relative;
margin-bottom: 30px;
&::after {
content: "";
display: block;
border-left: 3px solid #1890ff;
left: 0;
top: 0;
bottom: 0;
position: absolute;
}
}
.content {
width: 100%;
padding: 10px;
font-family: "微软雅黑", sans-serif;
font-weight: 400;
font-style: normal;
font-size: 14px;
margin-left: 0 auto;
margin-bottom: 30px;
/deep/.el-row {
margin-bottom: 20px;
}
}
}
}
</style>
<template> <template>
<div class="page"> <div class="page">
<el-tabs v-model="activeName"> <el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="未处理" name="1"> <el-tab-pane label="未处理" name="1">
<LayoutTable :data="tableData" notAdd notDel :config="tableConfig"> <LayoutTable :data="tableData" notAdd notDel :config="tableConfig">
</LayoutTable> </LayoutTable>
...@@ -13,17 +13,8 @@ ...@@ -13,17 +13,8 @@
<div class="content"> <div class="content">
<div class="search_box"> <div class="search_box">
<div class="search"> <div class="search">
<el-select <el-select v-model="dateValue" placeholder="请选择" style="margin: 0 10px;">
v-model="dateValue" <el-option v-for="item in optionsMonths" :key="item.value" :label="item.label" :value="item.value">
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">搜索</el-button> <el-button type="primary">搜索</el-button>
...@@ -32,29 +23,17 @@ ...@@ -32,29 +23,17 @@
<div class="data_box"> <div class="data_box">
<div class="top"> <div class="top">
<div class="box"> <div class="box">
<bar-charts <bar-charts :title="'申诉次数部门排名TOP20'" :id="'dept_20'" :legendName="'申诉次数'"
:title="'申诉次数部门排名TOP20'" :styleObj="{ width: '800px', height: '360px' }" />
:id="'dept_20'"
:legendName="'申诉次数'"
:styleObj="{ width: '800px', height: '360px' }"
/>
</div> </div>
<div class="box"> <div class="box">
<bar-charts <bar-charts :title="'申诉次数个人排名TOP20'" :id="'person_20'" :legendName="'申诉次数'"
:title="'申诉次数个人排名TOP20'" :styleObj="{ width: '800px', height: '360px' }" />
:id="'person_20'"
:legendName="'申诉次数'"
:styleObj="{ width: '800px', height: '360px' }"
/>
</div> </div>
</div> </div>
<div class="down"> <div class="down">
<bar-charts <bar-charts :title="'申诉次数规则排名TOP20'" :id="'rule_20'" :legendName="'申诉次数'"
:title="'申诉次数规则排名TOP20'" :styleObj="{ width: '1800px', height: '320px' }" />
:id="'rule_20'"
:legendName="'申诉次数'"
:styleObj="{ width: '1800px', height: '320px' }"
/>
</div> </div>
</div> </div>
</div> </div>
...@@ -82,8 +61,25 @@ export default { ...@@ -82,8 +61,25 @@ export default {
BarCharts, BarCharts,
}, },
mixins: [table], mixins: [table],
created() {}, created() {
this.getData();
},
methods: { methods: {
handleClick() {
this.getData();
},
getData() {
this.activeName == 1 || this.activeName == 2
? this.$post("/perform/attend/appeal/list", {
processStatus: this.activeName,
}).then((res) => {
console.log(res);
if (res.code == 1) {
this.tableData = res.data;
}
})
: "";
},
renderTable(tableData) { renderTable(tableData) {
return ( return (
<el-table stripe data={tableData} class="total-table"> <el-table stripe data={tableData} class="total-table">
...@@ -124,18 +120,41 @@ export default { ...@@ -124,18 +120,41 @@ export default {
], ],
config: { config: {
isshowTabPane: false, isshowTabPane: false,
search: [], search: [
{
name: "irregularOtherType",
type: "select",
label: "全部类型",
fuzzy: false,
},
{
name: "deptId",
type: "select",
label: "全部部门",
fuzzy: false,
},
{
name: "date",
type: "date",
label: "请选择日期",
fuzzy: false,
},
{
name: "staffName",
type: "text",
label: "员工姓名搜索",
fuzzy: false,
},
],
columns: [ columns: [
{ type: "selection", width: 60 }, { type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 }, { type: "index", label: "序号", width: 50 },
{ label: "姓名", prop: "staffName" }, { label: "姓名", prop: "staffName" },
{ label: "窗口工号", prop: "workNum" },
{ label: "所属部门", prop: "deptName" }, { label: "所属部门", prop: "deptName" },
{ label: "违规类型", prop: "ruleName" }, { label: "违规类型", prop: "irregularOtherType" },
{ label: "绩效规则", prop: "ruleName" }, { label: "绩效规则", prop: "ruleName" },
{ label: "扣分方式", prop: "subMethod", formatter: this.formatter }, { label: "扣分方式", prop: "subMethod", formatter: this.formatter },
...@@ -177,11 +196,12 @@ export default { ...@@ -177,11 +196,12 @@ export default {
},*/ },*/
{ {
label: "操作", label: "操作",
width: 240,
formatter: (row) => { formatter: (row) => {
return ( return (
<table-buttons <table-buttons
noAdd noAdd
noDel
noEdit
row={row} row={row}
onEdit={this.toEdit} onEdit={this.toEdit}
onView={this.toView} onView={this.toView}
...@@ -195,57 +215,66 @@ export default { ...@@ -195,57 +215,66 @@ export default {
activeName: "1", activeName: "1",
optionsMonths: [ optionsMonths: [
{ {
value: "1", value: "2023-01-00 00:00:00",
label: "1月", label: "1月",
}, },
{ {
value: "2", value: "2023-02-00 00:00:00",
label: "2月", label: "2月",
}, },
{ {
value: "3", value: "2023-03-00 00:00:00",
label: "3月", label: "3月",
}, },
{ {
value: "4", value: "2023-04-00 00:00:00",
label: "4月", label: "4月",
}, },
{ {
value: "5", value: "2023-05-00 00:00:00",
label: "5月", label: "5月",
}, },
{ {
value: "6", value: "2023-06-00 00:00:00",
label: "6月", label: "6月",
}, },
{ {
value: "7", value: "2023-07-00 00:00:00",
label: "7月", label: "7月",
}, },
{ {
value: "8", value: "2023-08-00 00:00:00",
label: "8月", label: "8月",
}, },
{ {
value: "9", value: "2023-09-00 00:00:00",
label: "9月", label: "9月",
}, },
{ {
value: "10", value: "2023-10-00 00:00:00",
label: "10月", label: "10月",
}, },
{ {
value: "11", value: "2023-11-00 00:00:00",
label: "11月", label: "11月",
}, },
{ {
value: "12", value: "2023-12-00 00:00:00",
label: "12月", label: "12月",
}, },
], ],
dateValue: "1", dateValue: '2023-01-00 00:00:00',
}; };
}, },
mounted() {
// this.$post('/perform/attend/appeal/stat', { appealTimeStart: this.dateValue }).then(res => {
// console.log(res)
// })
},
methods: {
}
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
...@@ -253,28 +282,35 @@ export default { ...@@ -253,28 +282,35 @@ export default {
width: 100%; width: 100%;
height: 100%; height: 100%;
overflow: hidden; overflow: hidden;
/deep/.el-tabs__item { /deep/.el-tabs__item {
width: 120px; width: 120px;
font-size: 14px; font-size: 14px;
text-align: center; text-align: center;
} }
.content { .content {
width: 100%; width: 100%;
height: 730px; height: 730px;
overflow: hidden; overflow: hidden;
.search_box { .search_box {
width: 100%; width: 100%;
height: auto; height: auto;
text-align: right; text-align: right;
margin-bottom: 10px;
} }
.data_box { .data_box {
width: 100%; width: 100%;
height: 100%; height: 100%;
.top { .top {
width: 100%; width: 100%;
height: 380px; height: 380px;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
.box { .box {
width: 49%; width: 49%;
height: 100%; height: 100%;
......
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