Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
attendance-performance-platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
attendance-performance-platform
Commits
c6e202a8
Commit
c6e202a8
authored
Jul 13, 2023
by
赵啸非
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
63e0e4da
e73d4be8
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
308 additions
and
79 deletions
+308
-79
attendance-performance-manager-ui/admin/src/components/TreeUser.vue
...-performance-manager-ui/admin/src/components/TreeUser.vue
+22
-4
attendance-performance-manager-ui/admin/src/views/feedback/addQuestion/list.vue
...-manager-ui/admin/src/views/feedback/addQuestion/list.vue
+19
-18
attendance-performance-manager-ui/admin/src/views/feedback/questionnaire/list.vue
...anager-ui/admin/src/views/feedback/questionnaire/list.vue
+15
-6
attendance-performance-manager-ui/admin/src/views/perform/attend/appeal/drawershow.vue
...r-ui/admin/src/views/perform/attend/appeal/drawershow.vue
+167
-2
attendance-performance-manager-ui/admin/src/views/perform/attend/appeal/list.vue
...manager-ui/admin/src/views/perform/attend/appeal/list.vue
+85
-49
No files found.
attendance-performance-manager-ui/admin/src/components/TreeUser.vue
View file @
c6e202a8
<
template
>
<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>
</
template
>
...
...
@@ -10,6 +30,4 @@ export default {
}
</
script
>
<
style
lang=
"less"
scoped
>
</
style
>
\ No newline at end of file
<
style
lang=
"less"
scoped
></
style
>
\ No newline at end of file
attendance-performance-manager-ui/admin/src/views/feedback/addQuestion/list.vue
View file @
c6e202a8
...
...
@@ -85,18 +85,16 @@
@
node-click=
"handleNodeClick"
></el-tree>
<div
class=
"treeCss"
style=
"margin-left: 10px;"
>
<div
style=
"margin-top: 3px;"
>
{{
city
Options.length > 0 ? '请选择人员' : '请选择部门' }}
{{
user
Options.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-group
v-model=
"checkedUser"
>
<el-checkbox
v-for=
"i in userOptions"
: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=
"checked
Cities
= []"
>
重置
</el-button>
<el-button
size=
"small"
@
click=
"checked
User
= []"
>
重置
</el-button>
<el-button
size=
"small"
type=
"primary"
@
click=
"subUser"
>
确定
</el-button>
</div>
</el-dialog>
...
...
@@ -175,28 +173,26 @@ export default {
},
treeDialog
:
0
,
checkAll
:
false
,
cityOptions
:
[],
checkedCities
:
[],
isIndeterminate
:
true
userOptions
:
[],
checkedUser
:
[],
}
},
mounted
()
{
this
.
getDeptData
()
},
methods
:
{
handleCheckAllChange
(
val
)
{
console
.
log
(
val
)
this
.
checkedCities
=
val
?
this
.
cityOptions
:
[];
this
.
isIndeterminate
=
false
;
},
subUser
()
{
console
.
log
(
this
.
checkedCities
)
console
.
log
(
this
.
checkedUser
)
if
(
this
.
checkedUser
.
length
>
0
)
{
this
.
treeDialog
=
0
}
else
{
this
.
$message
.
warning
(
'
请选择人员
'
)
}
},
handleNodeClick
(
data
)
{
if
(
data
.
personList
)
{
this
.
city
Options
=
data
.
personList
// console.log(this.
city
Options)
this
.
user
Options
=
data
.
personList
// console.log(this.
user
Options)
}
},
//获取部门数据
...
...
@@ -253,6 +249,10 @@ export default {
return
JSON
.
stringify
(
FcDesignerOptions
)
},
issueFormBtn
(
formName
)
{
if
(
this
.
checkedUser
.
length
<
1
)
{
this
.
$message
.
warning
(
'
请选择人员后发布问卷
'
)
return
}
this
.
$refs
[
formName
].
validate
((
valid
)
=>
{
if
(
valid
)
{
console
.
log
(
this
.
issueForm
)
...
...
@@ -273,6 +273,7 @@ export default {
})
let
sub
=
{
staffList
:
this
.
checkedUser
,
id
:
''
,
...
this
.
titleForm
,
feedbackTimeStart
:
this
.
issueForm
.
time
[
0
],
...
...
attendance-performance-manager-ui/admin/src/views/feedback/questionnaire/list.vue
View file @
c6e202a8
...
...
@@ -19,17 +19,18 @@
<div
class=
"content"
>
<div
class=
"cLeft"
>
<div
class=
"title"
>
全部数据(220)
<span
style=
"font-weight: 400; font-size: 16px;margin-left: 20px;"
>
已反馈(1)
</span>
<span
style=
"font-weight: 400; font-size: 16px;margin-left: 20px;"
>
未反馈(219)
</span>
<div>
<span
class=
"cLeftTop"
style=
"margin: 0;"
:class=
"selTitle == 1 ? 'title' : ''"
@
click=
"selTitle = 1"
>
全部数据(220)
</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>
<el-button
class=
"m15"
type=
"primary"
size=
"small"
>
导出数据
</el-button>
<div
class=
"lBox m15"
>
<div
class=
"treeS"
>
<el-tree
:data=
"treeData"
:props=
"defaultProps"
@
node-click=
"treeSub"
></el-tree>
</div>
<el-table
ref=
"multipleTable"
:data=
"tableData"
tooltip-effect=
"dark"
style=
"width: 100%"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"55"
>
...
...
@@ -124,6 +125,7 @@ export default {
Fopthion
:
''
,
drawerAnswer
:
false
,
feedbackData
:
{},
selTitle
:
1
,
tableData
:
[{
date
:
'
2016-05-02
'
,
name
:
'
王小虎
'
,
...
...
@@ -179,7 +181,8 @@ export default {
defaultProps
:
{
children
:
'
children
'
,
label
:
'
label
'
}
},
}
},
mounted
()
{
...
...
@@ -419,6 +422,12 @@ export default {
box-sizing: border-box;
padding: 20px;
.cLeftTop {
font-size: 16px;
margin-left: 20px;
cursor: pointer;
}
.lBox {
display: flex;
// align-items: center
...
...
attendance-performance-manager-ui/admin/src/views/perform/attend/appeal/drawershow.vue
View file @
c6e202a8
...
...
@@ -7,7 +7,124 @@
:destroy-on-close=
"true"
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>
<Field
label=
"核查记录Id"
...
...
@@ -270,7 +387,7 @@
v-if=
"pageInfo.type != 'view'"
noCancelBtn
/>
</el-form>
</el-form>
-->
</el-drawer>
</template>
...
...
@@ -442,3 +559,51 @@ export default {
},
};
</
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
>
attendance-performance-manager-ui/admin/src/views/perform/attend/appeal/list.vue
View file @
c6e202a8
<
template
>
<div
class=
"page"
>
<el-tabs
v-model=
"activeName"
>
<el-tabs
v-model=
"activeName"
@
tab-click=
"handleClick"
>
<el-tab-pane
label=
"未处理"
name=
"1"
>
<LayoutTable
:data=
"tableData"
notAdd
notDel
:config=
"tableConfig"
>
</LayoutTable>
...
...
@@ -13,17 +13,8 @@
<div
class=
"content"
>
<div
class=
"search_box"
>
<div
class=
"search"
>
<el-select
v-model=
"dateValue"
placeholder=
"请选择"
style=
"margin: 0 10px;"
>
<el-option
v-for=
"item in optionsMonths"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
<el-select
v-model=
"dateValue"
placeholder=
"请选择"
style=
"margin: 0 10px;"
>
<el-option
v-for=
"item in optionsMonths"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
<el-button
type=
"primary"
>
搜索
</el-button>
...
...
@@ -32,29 +23,17 @@
<div
class=
"data_box"
>
<div
class=
"top"
>
<div
class=
"box"
>
<bar-charts
:title=
"'申诉次数部门排名TOP20'"
:id=
"'dept_20'"
:legendName=
"'申诉次数'"
:styleObj=
"
{ width: '800px', height: '360px' }"
/>
<bar-charts
:title=
"'申诉次数部门排名TOP20'"
:id=
"'dept_20'"
:legendName=
"'申诉次数'"
:styleObj=
"
{ width: '800px', height: '360px' }" />
</div>
<div
class=
"box"
>
<bar-charts
:title=
"'申诉次数个人排名TOP20'"
:id=
"'person_20'"
:legendName=
"'申诉次数'"
:styleObj=
"
{ width: '800px', height: '360px' }"
/>
<bar-charts
:title=
"'申诉次数个人排名TOP20'"
:id=
"'person_20'"
:legendName=
"'申诉次数'"
:styleObj=
"
{ width: '800px', height: '360px' }" />
</div>
</div>
<div
class=
"down"
>
<bar-charts
:title=
"'申诉次数规则排名TOP20'"
:id=
"'rule_20'"
:legendName=
"'申诉次数'"
:styleObj=
"
{ width: '1800px', height: '320px' }"
/>
<bar-charts
:title=
"'申诉次数规则排名TOP20'"
:id=
"'rule_20'"
:legendName=
"'申诉次数'"
:styleObj=
"
{ width: '1800px', height: '320px' }" />
</div>
</div>
</div>
...
...
@@ -82,8 +61,25 @@ export default {
BarCharts
,
},
mixins
:
[
table
],
created
()
{},
created
()
{
this
.
getData
();
},
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
)
{
return
(
<
el
-
table
stripe
data
=
{
tableData
}
class
=
"
total-table
"
>
...
...
@@ -124,18 +120,41 @@ export default {
],
config
:
{
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
:
[
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
label
:
"
姓名
"
,
prop
:
"
staffName
"
},
{
label
:
"
窗口工号
"
,
prop
:
"
workNum
"
},
{
label
:
"
所属部门
"
,
prop
:
"
deptName
"
},
{
label
:
"
违规类型
"
,
prop
:
"
ruleNam
e
"
},
{
label
:
"
违规类型
"
,
prop
:
"
irregularOtherTyp
e
"
},
{
label
:
"
绩效规则
"
,
prop
:
"
ruleName
"
},
{
label
:
"
扣分方式
"
,
prop
:
"
subMethod
"
,
formatter
:
this
.
formatter
},
...
...
@@ -177,11 +196,12 @@ export default {
},*/
{
label
:
"
操作
"
,
width
:
240
,
formatter
:
(
row
)
=>
{
return
(
<
table
-
buttons
noAdd
noDel
noEdit
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
...
...
@@ -195,57 +215,66 @@ export default {
activeName
:
"
1
"
,
optionsMonths
:
[
{
value
:
"
1
"
,
value
:
"
2023-01-00 00:00:00
"
,
label
:
"
1月
"
,
},
{
value
:
"
2
"
,
value
:
"
2
023-02-00 00:00:00
"
,
label
:
"
2月
"
,
},
{
value
:
"
3
"
,
value
:
"
2023-03-00 00:00:00
"
,
label
:
"
3月
"
,
},
{
value
:
"
4
"
,
value
:
"
2023-04-00 00:00:00
"
,
label
:
"
4月
"
,
},
{
value
:
"
5
"
,
value
:
"
2023-05-00 00:00:00
"
,
label
:
"
5月
"
,
},
{
value
:
"
6
"
,
value
:
"
2023-06-00 00:00:00
"
,
label
:
"
6月
"
,
},
{
value
:
"
7
"
,
value
:
"
2023-07-00 00:00:00
"
,
label
:
"
7月
"
,
},
{
value
:
"
8
"
,
value
:
"
2023-08-00 00:00:00
"
,
label
:
"
8月
"
,
},
{
value
:
"
9
"
,
value
:
"
2023-09-00 00:00:00
"
,
label
:
"
9月
"
,
},
{
value
:
"
1
0
"
,
value
:
"
2023-10-00 00:00:0
0
"
,
label
:
"
10月
"
,
},
{
value
:
"
11
"
,
value
:
"
2023-11-00 00:00:00
"
,
label
:
"
11月
"
,
},
{
value
:
"
12
"
,
value
:
"
2023-12-00 00:00:00
"
,
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
>
<
style
lang=
"less"
scoped
>
...
...
@@ -253,28 +282,35 @@ export default {
width: 100%;
height: 100%;
overflow: hidden;
/deep/.el-tabs__item {
width: 120px;
font-size: 14px;
text-align: center;
}
.content {
width: 100%;
height: 730px;
overflow: hidden;
.search_box {
width: 100%;
height: auto;
text-align: right;
margin-bottom: 10px;
}
.data_box {
width: 100%;
height: 100%;
.top {
width: 100%;
height: 380px;
display: flex;
justify-content: space-between;
.box {
width: 49%;
height: 100%;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment