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-manager-ui
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-manager-ui
Commits
ed11a2d2
Commit
ed11a2d2
authored
Apr 26, 2024
by
姬鋆屾
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
tui
parent
0aac261e
Changes
21
Show whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
1327 additions
and
519 deletions
+1327
-519
src/assets/mixins/formdialog.js
src/assets/mixins/formdialog.js
+12
-4
src/components/DataTable.vue
src/components/DataTable.vue
+0
-1
src/components/FormField.vue
src/components/FormField.vue
+5
-0
src/components/SearchForm.vue
src/components/SearchForm.vue
+2
-0
src/components/SearchFormDrawer.vue
src/components/SearchFormDrawer.vue
+598
-0
src/components/Table.vue
src/components/Table.vue
+1
-0
src/views/check/window/perform/list.vue
src/views/check/window/perform/list.vue
+11
-1
src/views/check/window/workman/perform/detail/list.vue
src/views/check/window/workman/perform/detail/list.vue
+5
-6
src/views/check/window/workman/perform/drawershow.vue
src/views/check/window/workman/perform/drawershow.vue
+2
-2
src/views/check/window/workman/perform/list.vue
src/views/check/window/workman/perform/list.vue
+2
-2
src/views/perform/attend/appeal/list.vue
src/views/perform/attend/appeal/list.vue
+9
-3
src/views/perform/error/record/list.vue
src/views/perform/error/record/list.vue
+183
-153
src/views/staff/perform/summary/list.vue
src/views/staff/perform/summary/list.vue
+6
-4
src/views/system/user/dialogshow.vue
src/views/system/user/dialogshow.vue
+33
-14
src/views/system/user/list.vue
src/views/system/user/list.vue
+158
-171
src/views/window/owner/drawershow.vue
src/views/window/owner/drawershow.vue
+80
-55
src/views/window/owner/list.vue
src/views/window/owner/list.vue
+20
-2
src/views/window/owner/wintable.vue
src/views/window/owner/wintable.vue
+194
-95
src/views/window/perform/list.vue
src/views/window/perform/list.vue
+2
-2
src/views/window/workman/perform/list.vue
src/views/window/workman/perform/list.vue
+2
-2
vue.config.js
vue.config.js
+2
-2
No files found.
src/assets/mixins/formdialog.js
View file @
ed11a2d2
...
@@ -16,6 +16,9 @@ export default {
...
@@ -16,6 +16,9 @@ export default {
},
},
];
];
}
}
data
.
entity
.
inspect
&&
data
.
entity
.
inspect
==
1
?
(
data
.
entity
.
inspect
=
true
)
:
(
data
.
entity
.
inspect
=
false
);
return
data
;
return
data
;
},
},
// 渲染后置处理
// 渲染后置处理
...
@@ -33,10 +36,8 @@ export default {
...
@@ -33,10 +36,8 @@ export default {
data
.
leavePersonId
=
Number
(
key
);
data
.
leavePersonId
=
Number
(
key
);
}
}
}
}
console
.
log
(
this
.
dict
.
staffList
);
}
}
}
}
return
data
;
return
data
;
},
},
// 提交表单的后置处理, 会阻断默认的回退行为
// 提交表单的后置处理, 会阻断默认的回退行为
...
@@ -56,7 +57,6 @@ export default {
...
@@ -56,7 +57,6 @@ export default {
// 默认拉取数据
// 默认拉取数据
getData
()
{
getData
()
{
this
.
loading
=
true
;
this
.
loading
=
true
;
this
.
$get
(
this
.
urls
.
currUrl
||
this
.
pageInfo
.
currUrl
,
this
.
query
)
this
.
$get
(
this
.
urls
.
currUrl
||
this
.
pageInfo
.
currUrl
,
this
.
query
)
.
then
(({
data
})
=>
{
.
then
(({
data
})
=>
{
const
res
=
this
.
beforeRender
(
data
);
const
res
=
this
.
beforeRender
(
data
);
...
@@ -68,7 +68,14 @@ export default {
...
@@ -68,7 +68,14 @@ export default {
res
.
entity
=
this
.
util_toDateStr
(
res
.
entity
,
this
.
toDate
);
res
.
entity
=
this
.
util_toDateStr
(
res
.
entity
,
this
.
toDate
);
this
.
form
=
Object
.
assign
({},
this
.
form
,
res
.
entity
);
this
.
form
=
Object
.
assign
({},
this
.
form
,
res
.
entity
);
this
.
dict
=
Object
.
assign
({},
this
.
dict
,
res
.
dict
);
this
.
dict
=
Object
.
assign
({},
this
.
dict
,
res
.
dict
);
this
.
$route
.
name
==
"
window/owner/list
"
?
this
.
$post
(
"
/staff/list
"
,
{
page
:
1
,
size
:
-
1
}).
then
((
res
)
=>
{
if
(
res
.
code
==
1
)
{
this
.
dict
.
staffList
=
res
.
data
.
data
;
this
.
afterRender
(
res
);
this
.
afterRender
(
res
);
}
})
:
this
.
afterRender
(
res
);
})
})
.
catch
((
error
)
=>
{
.
catch
((
error
)
=>
{
this
.
$message
.
error
(
error
.
message
);
this
.
$message
.
error
(
error
.
message
);
...
@@ -102,6 +109,7 @@ export default {
...
@@ -102,6 +109,7 @@ export default {
this
.
form
.
leaveType
this
.
form
.
leaveType
?
(
this
.
form
.
leaveType
=
this
.
form
.
leaveType
.
toString
())
?
(
this
.
form
.
leaveType
=
this
.
form
.
leaveType
.
toString
())
:
""
;
:
""
;
this
.
form
.
inspect
?
(
this
.
form
.
inspect
=
1
)
:
(
this
.
form
.
inspect
=
0
);
this
.
$post
(
url
,
this
.
beforeSubmit
(
this
.
form
))
this
.
$post
(
url
,
this
.
beforeSubmit
(
this
.
form
))
.
then
((
res
)
=>
{
.
then
((
res
)
=>
{
this
.
$message
.
success
(
res
.
msg
);
this
.
$message
.
success
(
res
.
msg
);
...
...
src/components/DataTable.vue
View file @
ed11a2d2
...
@@ -133,7 +133,6 @@ export default {
...
@@ -133,7 +133,6 @@ export default {
val
.
length
==
0
||
val
.
length
>
0
val
.
length
==
0
||
val
.
length
>
0
?
(
this
.
emptytxt
=
"
暂无数据
"
)
?
(
this
.
emptytxt
=
"
暂无数据
"
)
:
(
this
.
emptytxt
=
"
加载中...
"
);
:
(
this
.
emptytxt
=
"
加载中...
"
);
// if (val.length > 0) {
// if (val.length > 0) {
// val.forEach((v) => {
// val.forEach((v) => {
// for (let key in v) {
// for (let key in v) {
...
...
src/components/FormField.vue
View file @
ed11a2d2
...
@@ -254,6 +254,11 @@ export default {
...
@@ -254,6 +254,11 @@ export default {
computed
:
{
computed
:
{
field
:
{
field
:
{
get
()
{
get
()
{
if
(
Array
.
isArray
(
this
.
value
))
{
this
.
value
=
this
.
value
.
map
((
v
)
=>
{
return
typeof
v
==
'
number
'
?
v
+
""
:
v
;
});
}
return
this
.
value
;
return
this
.
value
;
},
},
set
(
val
)
{
set
(
val
)
{
...
...
src/components/SearchForm.vue
View file @
ed11a2d2
...
@@ -271,6 +271,8 @@ export default {
...
@@ -271,6 +271,8 @@ export default {
this
.
$route
.
name
==
"
perform/gowork/record/list
"
||
this
.
$route
.
name
==
"
perform/gowork/record/list
"
||
this
.
$route
.
name
==
"
perform/effect/record/list
"
||
this
.
$route
.
name
==
"
perform/effect/record/list
"
||
this
.
$route
.
name
==
"
perform/other/record/list
"
||
this
.
$route
.
name
==
"
perform/other/record/list
"
||
this
.
$route
.
name
==
"
perform/attend/appeal/list
"
||
this
.
$route
.
name
==
"
window/owner/list
"
||
this
.
$route
.
name
==
"
staff/perform/summary/list
"
this
.
$route
.
name
==
"
staff/perform/summary/list
"
)
{
)
{
this
.
getArr
();
this
.
getArr
();
...
...
src/components/SearchFormDrawer.vue
0 → 100644
View file @
ed11a2d2
// 列表-条件查询
<
template
>
<div
class=
"search-form-wapper"
>
<el-form
:inline=
"true"
:model=
"form"
ref=
"search-form"
size=
"small"
>
<el-form-item
v-for=
"(item, i) in search"
:key=
"i"
v-bind:class=
"
{ search_new_line: item.newLine }"
>
<el-input
v-model=
"form[item.name]"
v-if=
"item.type === 'text'"
:placeholder=
"
item.placeholder ? item.placeholder : '请输入' + item.label
"
></el-input>
<el-checkbox-group
v-model=
"form[item.name]"
v-if=
"item.type === 'checkbox'"
>
<el-checkbox
v-for=
"(label, value) in table.dict[item.name]"
:label=
"value"
:key=
"value"
>
{{
label
}}
</el-checkbox
>
</el-checkbox-group>
<el-select
v-model=
"form[item.name]"
:filterable=
"item.filterable"
:multiple=
"item.multiple"
:clearable=
"true"
@
change=
"item.change && item.change"
@
clear=
"item.clear && item.clear"
v-if=
"item.type === 'select'"
:placeholder=
"'请选择' + item.label"
>
<!--
<el-option
label=
""
value=
""
v-if=
"!item.multiple && !item.notShowAll"
></el-option>
-->
<el-option
:label=
"label"
:value=
"value"
v-for=
"(label, value) in table.dict[item.name]"
:key=
"value"
></el-option>
</el-select>
<el-select
v-model=
"form[item.name]"
:filterable=
"item.filterable"
:multiple=
"item.multiple"
:clearable=
"true"
@
change=
"salaChange"
@
clear=
"item.clear && item.clear"
v-if=
"item.type === 'selectSalaId'"
:placeholder=
"'请选择' + item.label"
>
<el-option
:label=
"label.deptName"
:value=
"label.id"
v-for=
"(label, value) in salaArr"
:key=
"value"
></el-option>
</el-select>
<el-select
v-model=
"form[item.name]"
:filterable=
"item.filterable"
:multiple=
"item.multiple"
:clearable=
"true"
@
clear=
"item.clear && item.clear"
v-if=
"item.type === 'selectDeptId'"
:placeholder=
"'请选择' + item.label"
>
<!--
<el-option
label=
""
value=
""
v-if=
"!item.multiple && !item.notShowAll"
></el-option>
-->
<el-option
:label=
"label.deptName"
:value=
"label.id"
v-for=
"(label, value) in deptArr"
:key=
"value"
></el-option>
</el-select>
<el-select
v-model=
"form[item.name]"
clearable
:multiple=
"item.multiple"
filterable
remote
v-if=
"item.type === 'remoteSelect'"
placeholder=
"请输入关键词"
searchType=
"item.searchType"
:remote-method=
"
(query) =>
{
remoteMethod(query, item.searchType);
}
"
>
<el-option
:label=
"label"
:value=
"value"
v-for=
"(label, value) in remoteOptions[item.searchType]"
:key=
"value"
></el-option>
</el-select>
<el-cascader
placeholder=
"选择区域"
v-if=
"item.type === 'cascader'"
v-model=
"selectedTreeID"
:filterable=
"item.filterable"
:clearable=
"true"
change-on-select
@
change=
"treeSelecteds"
:options=
"treeDatas"
></el-cascader>
<el-select
v-model=
"form[item.name]"
:multiple=
"item.multiple"
:remote-method=
"userRemoteMethod"
:loading=
"loading"
@
focus=
"userRemoteMethod"
:reserve-keyword=
"item.reserve - keyword"
:clearable=
"item.clearable"
:placeholder=
"item.placeholder ? item.placeholder : '请输入用户'"
filterable
remote
v-if=
"item.type === 'userLoginNameRemoteSelect'"
>
<el-option
v-for=
"i in userData"
:key=
"i.loginName"
:label=
"i.realName"
:value=
"i.loginName"
></el-option>
</el-select>
<el-date-picker
v-model=
"form[item.name]"
v-if=
"item.type === 'date' && !item.valueFormat"
type=
"date"
value-format=
"yyyy-MM-dd"
:placeholder=
"item.label ? item.label : '选择日期'"
>
</el-date-picker>
<el-date-picker
v-model=
"form[item.name]"
v-if=
"item.type === 'date' && item.valueFormat"
type=
"date"
:value-format=
"item.valueFormat"
:placeholder=
"item.label ? item.label : '选择日期'"
>
</el-date-picker>
<el-date-picker
v-model=
"form[item.name]"
v-if=
"item.type === 'month' && !item.valueFormat"
type=
"month"
value-format=
"yyyy-MM"
:placeholder=
"item.label ? item.label : '选择月份'"
>
</el-date-picker>
<el-date-picker
v-model=
"form[item.name]"
v-if=
"item.type === 'month' && item.valueFormat"
type=
"month"
:value-format=
"item.valueFormat"
:placeholder=
"item.label ? item.label : '选择月份'"
>
</el-date-picker>
<el-date-picker
v-model=
"form[item.name]"
v-if=
"item.type === 'datetime'"
type=
"datetime"
value-format=
"yyyy-MM-dd HH:mm:ss"
:placeholder=
"item.label"
>
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"onSubmit"
title=
"查询"
>
查询
</el-button
>
<!--
<el-button
icon=
"el-icon-tickets"
@
click=
"resetTable"
v-if=
"visible"
title=
"重新汇总"
>
重新汇总
</el-button
>
-->
<el-button
icon=
"el-icon-download"
@
click=
"downloadFile"
:loading=
"isDownload"
v-if=
"downloadUrl"
>
下载
</el-button
>
<el-button
icon=
"el-icon-refresh-left"
@
click=
"cleanForm"
title=
"清空"
>
清空
</el-button
>
</el-form-item>
</el-form>
</div>
</
template
>
<
script
>
import
Qs
from
"
qs
"
;
import
{
type
}
from
"
@/assets/utils
"
;
import
{
isArray
}
from
"
util
"
;
import
{
getFirstDay
,
getLastDay
,
timestampToTime
,
}
from
"
@/assets/utils/dateFormat.js
"
;
export
default
{
props
:
{
search
:
{
type
:
Array
,
default
:
()
=>
[],
},
table
:
{
type
:
Object
,
default
:
()
=>
{},
},
page
:
{
type
:
Number
,
default
:
1
,
},
},
// watch: {
// $route(route) {
// this.initForm(route.query);
// },
// },
async
created
()
{
this
.
cleanForm
();
// this.$route.query ? (this.$route.query = {}) : console.log(456);
this
.
$route
.
name
==
"
attendance/stat/list
"
?
(
this
.
visible
=
true
)
:
(
this
.
visible
=
false
);
if
(
this
.
$route
.
name
==
"
attendance/stat/list
"
||
this
.
$route
.
name
==
"
check/window/perform/list
"
||
this
.
$route
.
name
==
"
check/window/workman/perform/list
"
||
this
.
$route
.
name
==
"
check/window/workman/perform/detail/list
"
||
this
.
$route
.
name
==
"
check/attend/record/list
"
||
this
.
$route
.
name
==
"
check/review/record/list
"
||
this
.
$route
.
name
==
"
check/complain/record/list
"
||
this
.
$route
.
name
==
"
check/gowork/record/list
"
||
this
.
$route
.
name
==
"
check/effect/record/list
"
||
this
.
$route
.
name
==
"
check/other/record/list
"
||
this
.
$route
.
name
==
"
window/perform/list
"
||
this
.
$route
.
name
==
"
window/workman/perform/list
"
||
this
.
$route
.
name
==
"
perform/attend/record/list
"
||
this
.
$route
.
name
==
"
perform/review/record/list
"
||
this
.
$route
.
name
==
"
perform/complain/record/list
"
||
this
.
$route
.
name
==
"
perform/gowork/record/list
"
||
this
.
$route
.
name
==
"
perform/effect/record/list
"
||
this
.
$route
.
name
==
"
perform/other/record/list
"
||
this
.
$route
.
name
==
"
perform/attend/appeal/list
"
||
this
.
$route
.
name
==
"
window/owner/list
"
||
this
.
$route
.
name
==
"
staff/perform/summary/list
"
)
{
this
.
getArr
();
}
this
.
initForm
(
this
.
$route
.
query
);
},
mounted
()
{
console
.
log
(
this
.
$route
);
},
methods
:
{
salaChange
()
{
this
.
$get
(
"
/dept/getDeptBySalaId
"
,
{
salaId
:
this
.
form
.
salaId
})
.
then
((
res
)
=>
{
if
(
res
.
code
==
1
)
{
this
.
deptArr
=
res
.
data
.
data
;
}
})
.
catch
((
error
)
=>
{
this
.
$message
.
error
(
error
.
message
);
});
},
getArr
()
{
this
.
$get
(
"
/dept/getSalaList
"
)
.
then
((
res
)
=>
{
if
(
res
.
code
==
1
)
{
this
.
salaArr
=
res
.
data
.
data
;
}
})
.
catch
((
error
)
=>
{
this
.
$message
.
error
(
error
.
message
);
});
this
.
$get
(
"
/dept/getDeptBySalaId
"
)
.
then
((
res
)
=>
{
if
(
res
.
code
==
1
)
{
this
.
deptArr
=
res
.
data
.
data
;
}
})
.
catch
((
error
)
=>
{
this
.
$message
.
error
(
error
.
message
);
});
},
resetTable
()
{
let
{
path
,
query
}
=
this
.
$route
;
if
(
this
.
form
.
attendanceDateStart
&&
this
.
form
.
attendanceDateEnd
)
{
let
startValue
=
Date
.
parse
(
this
.
form
.
attendanceDateStart
);
let
endValue
=
Date
.
parse
(
this
.
form
.
attendanceDateEnd
);
if
(
startValue
>
endValue
)
{
this
.
$message
.
error
(
"
查询-结束的日期需大于开始日期
"
);
this
.
form
.
attendanceDateEnd
=
""
;
return
false
;
}
}
if
(
this
.
form
.
startTime
&&
this
.
form
.
endTime
)
{
let
startValue
=
Date
.
parse
(
this
.
form
.
startTime
);
let
endValue
=
Date
.
parse
(
this
.
form
.
endTime
);
if
(
startValue
>
endValue
)
{
this
.
$message
.
error
(
"
查询-结束的日期需大于开始日期
"
);
this
.
form
.
endTime
=
""
;
return
false
;
}
}
if
(
this
.
$route
.
name
==
"
attendance/stat/list
"
)
{
if
(
this
.
form
.
summaryTimeStart
&&
this
.
form
.
summaryTimeEnd
)
{
let
startValue
=
Date
.
parse
(
this
.
form
.
summaryTimeStart
);
let
endValue
=
Date
.
parse
(
this
.
form
.
summaryTimeEnd
);
if
(
startValue
>
endValue
)
{
this
.
$message
.
error
(
"
查询-结束的日期需大于开始日期
"
);
this
.
form
.
summaryTimeEnd
=
""
;
return
false
;
}
}
else
{
this
.
form
.
summaryTimeStart
=
getFirstDay
();
this
.
form
.
summaryTimeEnd
=
getLastDay
();
}
}
else
{
delete
this
.
form
.
summaryTimeStart
;
delete
this
.
form
.
summaryTimeEnd
;
}
if
(
this
.
$route
.
name
==
"
attendance/record/hik/list
"
)
{
if
(
this
.
form
.
attendanceDateStart
&&
this
.
form
.
attendanceDateEnd
)
{
let
startValue
=
Date
.
parse
(
this
.
form
.
attendanceDateStart
);
let
endValue
=
Date
.
parse
(
this
.
form
.
attendanceDateEnd
);
if
(
startValue
>
endValue
)
{
this
.
$message
.
error
(
"
查询-结束的日期需大于开始日期
"
);
this
.
form
.
attendanceDateEnd
=
""
;
return
false
;
}
}
else
{
this
.
form
.
attendanceDateStart
=
getFirstDay
();
this
.
form
.
attendanceDateEnd
=
getFirstDay
();
}
}
let
params
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
form
));
//不更改原始数据
let
data
=
this
.
decode
(
params
);
data
.
size
=
-
1
;
this
.
$post
(
"
/attendance/stat/summary
"
,
data
).
then
((
res
)
=>
{
if
(
res
.
code
==
1
)
{
this
.
$message
.
success
(
res
.
msg
);
}
else
{
this
.
$message
.
error
(
res
.
msg
);
}
});
},
remoteMethod
(
query
,
searchType
)
{
if
(
query
==
""
)
{
console
.
log
(
"
查询参数为空!
"
);
return
;
}
this
.
loading
=
true
;
var
param
=
{
name
:
query
,
searchType
:
searchType
,
};
try
{
this
.
$post
(
"
/common/autoComplete/list
"
,
param
).
then
(({
data
})
=>
{
this
.
loading
=
false
;
var
tempOptions
=
{};
data
.
result
.
forEach
(({
id
,
name
})
=>
{
tempOptions
[
id
]
=
name
;
});
this
.
remoteOptions
[
searchType
]
=
Object
.
assign
({},
tempOptions
);
sessionStorage
.
setItem
(
searchType
+
"
OptionsDict
"
,
JSON
.
stringify
(
this
.
remoteOptions
[
searchType
])
);
});
}
catch
(
error
)
{}
},
async
initForm
(
data
)
{
//初始化查询表单
let
newFormData
=
{};
// this.form = this.encode(data, this.form);
this
.
search
.
forEach
((
item
)
=>
{
//复选框
if
(
item
.
type
===
"
checkbox
"
)
{
if
(
this
.
form
[
item
.
name
]
==
undefined
)
{
newFormData
[
item
.
name
]
=
[];
}
else
if
(
Array
.
prototype
.
isPrototypeOf
(
this
.
form
[
item
.
name
]))
{
newFormData
[
item
.
name
]
=
this
.
form
[
item
.
name
];
}
else
{
newFormData
[
item
.
name
]
=
[
this
.
form
[
item
.
name
]];
}
}
else
if
(
item
.
multiple
===
true
)
{
if
(
this
.
form
[
item
.
name
]
==
undefined
)
{
this
.
form
[
item
.
name
]
=
[];
newFormData
[
item
.
name
]
=
[];
}
else
{
if
(
!
isArray
(
this
.
form
[
item
.
name
]))
{
var
temp
=
this
.
form
[
item
.
name
];
this
.
form
[
item
.
name
]
=
[
temp
];
newFormData
[
item
.
name
]
=
[
temp
];
}
}
}
});
this
.
form
=
Object
.
assign
({},
this
.
form
,
newFormData
);
// this.form = Object.assign({}, this.form, data);
// console.log("after form",this.form)
},
cleanForm
()
{
this
.
clean
();
},
// 清空表单值
clean
()
{
let
newData
=
{};
this
.
search
.
forEach
((
item
)
=>
{
if
(
item
.
name
===
"
groupList
"
)
{
newData
[
item
.
name
]
=
[];
}
else
{
newData
[
item
.
name
]
=
item
.
multiple
?
[]
:
""
;
}
});
delete
this
.
$route
.
query
.
yearmonth
;
delete
this
.
$route
.
query
.
createTimeMonth
;
delete
this
.
$route
.
query
.
orderColList
;
this
.
form
=
Object
.
assign
({},
this
.
form
,
newData
);
this
.
page
=
1
;
this
.
onSubmit
();
},
onSubmit
()
{
this
.
form
.
page
=
this
.
page
;
this
.
$post
(
"
/staff/list
"
,
this
.
form
).
then
((
res
)
=>
{
if
(
res
.
code
==
1
)
{
let
obj
=
res
.
data
;
obj
.
searchForm
=
this
.
form
;
this
.
$emit
(
"
getData
"
,
obj
);
}
});
},
// 解析url字符串,去除query字段
encode
(
data
,
formTemp
)
{
let
newData
=
{};
Object
.
keys
(
Qs
.
parse
(
data
)).
forEach
((
item
)
=>
{
console
.
log
(
item
);
if
(
/^query
\.
/
.
test
(
item
))
{
let
val
=
data
[
item
];
let
key
=
item
.
replace
(
/^query
\.
/
,
""
);
this
.
search
.
forEach
((
obj
)
=>
{
if
(
obj
.
name
===
key
&&
obj
.
fuzzy
===
true
&&
val
&&
val
.
length
>
0
)
{
//支持模糊查询,首尾去掉百分号
val
=
val
.
substring
(
1
,
val
.
length
-
1
);
}
});
let
isAreaTemp
=
[
"
areaId
"
];
let
isAreaParam
=
isAreaTemp
.
includes
(
key
);
newData
[
key
]
=
type
(
val
)
===
"
Array
"
?
val
.
map
(
isAreaParam
?
Number
:
String
)
:
val
;
}
});
return
newData
;
},
// 解析url字符串,加入query字段
decode
(
data
)
{
let
newData
=
{
page
:
1
};
Object
.
keys
(
data
).
forEach
((
item
)
=>
{
let
val
=
data
[
item
];
this
.
search
.
forEach
((
obj
)
=>
{
if
(
obj
.
name
===
item
&&
obj
.
fuzzy
===
true
&&
val
&&
val
.
length
>
0
)
{
//支持模糊查询,收尾增加百分号
val
=
val
.
trim
();
if
(
val
.
charAt
(
0
)
!=
"
%
"
)
{
val
=
"
%
"
+
val
;
}
if
(
val
.
charAt
(
val
.
length
-
1
)
!=
"
%
"
)
{
val
=
val
+
"
%
"
;
}
}
});
newData
[
item
]
=
this
.
decodeVal
(
val
);
});
return
newData
;
},
decodeVal
(
val
)
{
let
valType
=
type
(
val
);
if
([
"
Number
"
,
"
Boolean
"
].
indexOf
(
valType
)
>
-
1
)
{
return
val
;
}
if
(
valType
==
"
Undefined
"
||
valType
==
"
Null
"
)
{
return
undefined
;
}
if
(
valType
==
"
String
"
)
{
let
str
=
val
.
trim
();
return
str
.
length
?
str
:
undefined
;
}
return
val
;
},
listChange
()
{},
},
computed
:
{},
data
()
{
return
{
downloadUrl
:
false
,
form
:
{
// groupList: [],
},
remoteOptions
:
{},
visible
:
false
,
salaArr
:
[],
deptArr
:
[],
};
},
};
</
script
>
<
style
lang=
"less"
>
.search_new_line {
width: 100%;
}
.search-form-wapper {
.el-input {
width: 170px;
}
.el-form-item {
margin-bottom: 10px;
}
.el-select .el-input {
width: 140px;
}
}
@media screen and (max-width: 800px) {
.search-form-wapper {
.el-form-item {
width: 100%;
margin-bottom: 10px;
.el-form-item__label {
min-width: 70px;
}
.el-input {
width: 200px;
}
.el-select .el-input {
width: 200px;
}
}
}
}
</
style
>
src/components/Table.vue
View file @
ed11a2d2
...
@@ -242,6 +242,7 @@
...
@@ -242,6 +242,7 @@
:prePageResult=
"data.pageInfo.prePageResult"
:prePageResult=
"data.pageInfo.prePageResult"
/>
/>
</div>
</div>
<slot
name=
"table-foot"
class=
"table-foot"
></slot>
</div>
</div>
</
template
>
</
template
>
...
...
src/views/check/window/perform/list.vue
View file @
ed11a2d2
...
@@ -120,7 +120,7 @@ export default {
...
@@ -120,7 +120,7 @@ export default {
?
[
?
[
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
label
:
"
窗口
负责人
"
,
prop
:
"
ownerName
"
},
{
label
:
"
窗口
首席代表
"
,
prop
:
"
ownerName
"
},
{
{
label
:
"
登记年月
"
,
label
:
"
登记年月
"
,
...
@@ -165,6 +165,16 @@ export default {
...
@@ -165,6 +165,16 @@ export default {
prop
:
"
submitDate
"
,
prop
:
"
submitDate
"
,
formatter
:
this
.
formatterDate
,
formatter
:
this
.
formatterDate
,
},
},
{
label
:
"
核查人
"
,
prop
:
"
submitDate
"
,
formatter
:
this
.
formatterDate
,
},
{
label
:
"
最新核查时间
"
,
prop
:
"
submitDate
"
,
formatter
:
this
.
formatterDate
,
},
{
{
label
:
"
处理状态
"
,
label
:
"
处理状态
"
,
prop
:
"
checkStatus
"
,
prop
:
"
checkStatus
"
,
...
...
src/views/check/window/workman/perform/detail/list.vue
View file @
ed11a2d2
...
@@ -119,18 +119,17 @@ export default {
...
@@ -119,18 +119,17 @@ export default {
}
`
;
}
`
;
},
},
},
},
{
label
:
"
所属部门名称
"
,
prop
:
"
deptName
"
,
formatter
:
this
.
formatter
,
},
{
{
label
:
"
所属大厅
"
,
label
:
"
所属大厅
"
,
prop
:
"
salaName
"
,
prop
:
"
salaName
"
,
formatter
:
this
.
formatter
,
formatter
:
this
.
formatter
,
},
},
{
label
:
"
部门(单位)名称
"
,
prop
:
"
deptName
"
,
formatter
:
this
.
formatter
,
},
{
{
label
:
"
工作纪律
"
,
label
:
"
工作纪律
"
,
prop
:
"
discipline
"
,
prop
:
"
discipline
"
,
...
...
src/views/check/window/workman/perform/drawershow.vue
View file @
ed11a2d2
...
@@ -57,12 +57,12 @@
...
@@ -57,12 +57,12 @@
align
=
"
center
"
align
=
"
center
"
>
>
<
/el-table-column
>
<
/el-table-column
>
<
el
-
table
-
column
<
!--
<
el
-
table
-
column
prop
=
"
evaluation
"
prop
=
"
evaluation
"
label
=
"
群众评议
"
label
=
"
群众评议
"
align
=
"
center
"
align
=
"
center
"
>
>
<
/el-table-column
>
<
/el-table-column>
--
>
<
el
-
table
-
column
<
el
-
table
-
column
prop
=
"
efficiency
"
prop
=
"
efficiency
"
label
=
"
工作效能
"
label
=
"
工作效能
"
...
...
src/views/check/window/workman/perform/list.vue
View file @
ed11a2d2
...
@@ -121,7 +121,7 @@ export default {
...
@@ -121,7 +121,7 @@ export default {
?
[
?
[
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
label
:
"
窗口
负责人
"
,
prop
:
"
ownerName
"
},
{
label
:
"
窗口
首席代表
"
,
prop
:
"
ownerName
"
},
{
{
label
:
"
登记年月
"
,
label
:
"
登记年月
"
,
...
@@ -148,7 +148,7 @@ export default {
...
@@ -148,7 +148,7 @@ export default {
},
},
{
{
label
:
"
考核窗口
"
,
label
:
"
窗口(单位)名称
"
,
formatter
:
(
row
)
=>
{
formatter
:
(
row
)
=>
{
return
`
${
row
.
windowName
?
row
.
windowName
:
"
--
"
}
`
;
return
`
${
row
.
windowName
?
row
.
windowName
:
"
--
"
}
`
;
},
},
...
...
src/views/perform/attend/appeal/list.vue
View file @
ed11a2d2
...
@@ -199,10 +199,16 @@ export default {
...
@@ -199,10 +199,16 @@ export default {
label
:
"
全部类型
"
,
label
:
"
全部类型
"
,
fuzzy
:
false
,
fuzzy
:
false
,
},
},
{
name
:
"
salaId
"
,
type
:
"
selectSalaId
"
,
label
:
"
大厅
"
,
fuzzy
:
false
,
},
{
{
name
:
"
deptId
"
,
name
:
"
deptId
"
,
type
:
"
select
"
,
type
:
"
select
DeptId
"
,
label
:
"
全部
部门
"
,
label
:
"
部门
"
,
fuzzy
:
false
,
fuzzy
:
false
,
},
},
{
{
...
@@ -223,7 +229,7 @@ export default {
...
@@ -223,7 +229,7 @@ export default {
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
label
:
"
姓名
"
,
prop
:
"
staffName
"
,
formatter
:
this
.
formatter
},
{
label
:
"
姓名
"
,
prop
:
"
staffName
"
,
formatter
:
this
.
formatter
},
{
label
:
"
所属大厅
"
,
prop
:
"
salaName
"
,
formatter
:
this
.
formatter
},
{
label
:
"
所属部门
"
,
prop
:
"
deptName
"
,
formatter
:
this
.
formatter
},
{
label
:
"
所属部门
"
,
prop
:
"
deptName
"
,
formatter
:
this
.
formatter
},
{
{
...
...
src/views/perform/error/record/list.vue
View file @
ed11a2d2
<
template
>
<
template
>
<div
class=
"page"
>
<div
class=
"page"
>
<LayoutTable
:data=
"tableData"
:config=
"tableConfig"
>
<LayoutTable
:data=
"tableData"
:config=
"tableConfig"
>
</LayoutTable>
</LayoutTable>
<drawer-show
ref=
"drawerform"
@
ok=
"getData"
/>
<drawer-show
ref=
"drawerform"
@
ok=
"getData"
/>
</div>
</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
{
export
default
{
name
:
"
PerformErrorRecordList
"
,
name
:
"
PerformErrorRecordList
"
,
components
:
{
components
:
{
drawerShow
drawerShow
,
},
mixins
:
[
table
],
created
()
{
},
},
mixins
:
[
table
],
created
()
{},
methods
:
{
methods
:
{
/** 重写新增方法 */
/** 重写新增方法 */
toAdd
(
row
)
{
toAdd
(
row
)
{
...
@@ -33,7 +30,6 @@
...
@@ -33,7 +30,6 @@
toView
(
row
)
{
toView
(
row
)
{
this
.
$refs
.
drawerform
.
view
(
row
);
this
.
$refs
.
drawerform
.
view
(
row
);
},
},
},
},
data
()
{
data
()
{
return
{
return
{
...
@@ -43,118 +39,152 @@
...
@@ -43,118 +39,152 @@
name
:
"
staffName
"
,
name
:
"
staffName
"
,
type
:
"
text
"
,
type
:
"
text
"
,
label
:
"
员工姓名
"
,
label
:
"
员工姓名
"
,
fuzzy
:
true
fuzzy
:
true
,
},
},
{
{
name
:
"
workNum
"
,
name
:
"
workNum
"
,
type
:
"
text
"
,
type
:
"
text
"
,
label
:
"
工号
"
,
label
:
"
工号
"
,
fuzzy
:
true
fuzzy
:
true
,
},
},
{
{
name
:
"
windowNum
"
,
name
:
"
windowNum
"
,
type
:
"
text
"
,
type
:
"
text
"
,
label
:
"
窗口编号
"
,
label
:
"
窗口编号
"
,
fuzzy
:
true
fuzzy
:
true
,
},
},
{
{
name
:
"
deptName
"
,
name
:
"
deptName
"
,
type
:
"
text
"
,
type
:
"
text
"
,
label
:
"
所属部门名称
"
,
label
:
"
所属部门名称
"
,
fuzzy
:
true
fuzzy
:
true
,
},
},
{
{
name
:
"
irregularType
"
,
name
:
"
irregularType
"
,
type
:
"
select
"
,
type
:
"
select
"
,
label
:
"
违规类型
"
,
label
:
"
违规类型
"
,
fuzzy
:
true
fuzzy
:
true
,
},
},
{
{
name
:
"
happenTime
"
,
name
:
"
happenTime
"
,
type
:
"
date
"
,
type
:
"
date
"
,
label
:
"
发生时间
"
,
label
:
"
发生时间
"
,
fuzzy
:
true
fuzzy
:
true
,
},
},
{
{
name
:
"
duration
"
,
name
:
"
duration
"
,
type
:
"
text
"
,
type
:
"
text
"
,
label
:
"
持续时间,秒
"
,
label
:
"
持续时间,秒
"
,
fuzzy
:
true
fuzzy
:
true
,
},
},
{
{
name
:
"
ruleName
"
,
name
:
"
ruleName
"
,
type
:
"
text
"
,
type
:
"
text
"
,
label
:
"
规则名称
"
,
label
:
"
规则名称
"
,
fuzzy
:
true
fuzzy
:
true
,
},
},
{
{
name
:
"
deductPerson
"
,
name
:
"
deductPerson
"
,
type
:
"
text
"
,
type
:
"
text
"
,
label
:
"
扣分人员
"
,
label
:
"
扣分人员
"
,
fuzzy
:
true
fuzzy
:
true
,
},
},
{
{
name
:
"
score
"
,
name
:
"
score
"
,
type
:
"
text
"
,
type
:
"
text
"
,
label
:
"
扣分或增加分值
"
,
label
:
"
扣分或增加分值
"
,
fuzzy
:
true
fuzzy
:
true
,
},
},
],
],
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
:
"
workNum
"
},
{
label
:
"
窗口编号
"
,
prop
:
"
windowNum
"
},
{
label
:
"
窗口编号
"
,
prop
:
"
windowNum
"
},
{
label
:
"
所属部门
"
,
prop
:
"
deptId
"
,
formatter
:
this
.
formatter
},
{
label
:
"
所属部门
"
,
prop
:
"
deptId
"
,
formatter
:
this
.
formatter
},
{
label
:
"
所属部门名称
"
,
prop
:
"
deptName
"
},
{
label
:
"
所属部门名称
"
,
prop
:
"
deptName
"
},
{
label
:
"
违规类型
"
,
prop
:
"
irregularType
"
,
formatter
:
this
.
formatter
},
{
label
:
"
违规类型
"
,
prop
:
"
irregularType
"
,
formatter
:
this
.
formatter
,
},
{
label
:
"
发生时间
"
,
prop
:
"
happenTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
发生时间
"
,
prop
:
"
happenTime
"
,
formatter
:
this
.
formatterDate
,
},
{
label
:
"
持续时间,秒
"
,
prop
:
"
duration
"
,
formatter
:
this
.
formatter
},
{
label
:
"
持续时间,秒
"
,
prop
:
"
duration
"
,
formatter
:
this
.
formatter
,
},
{
label
:
"
报警时间
"
,
prop
:
"
alarmTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
报警时间
"
,
prop
:
"
alarmTime
"
,
formatter
:
this
.
formatterDate
,
},
{
label
:
"
图片凭证地址
"
,
prop
:
"
snapPath
"
},
{
label
:
"
图片凭证地址
"
,
prop
:
"
snapPath
"
},
{
label
:
"
规则名称
"
,
prop
:
"
categoryName
"
},
{
label
:
"
规则名称
"
,
prop
:
"
categoryName
"
},
{
label
:
"
绩效规则id
"
,
prop
:
"
ruleId
"
,
formatter
:
this
.
formatter
},
{
label
:
"
绩效规则id
"
,
prop
:
"
ruleId
"
,
formatter
:
this
.
formatter
},
{
label
:
"
规则名称
"
,
prop
:
"
ruleName
"
},
{
label
:
"
规则名称
"
,
prop
:
"
ruleName
"
},
{
label
:
"
扣分方式
"
,
prop
:
"
subMethod
"
,
formatter
:
this
.
formatter
},
{
label
:
"
扣分方式
"
,
prop
:
"
subMethod
"
,
formatter
:
this
.
formatter
},
{
label
:
"
扣分人员
"
,
prop
:
"
deductPerson
"
},
{
label
:
"
扣分人员
"
,
prop
:
"
deductPerson
"
},
{
label
:
"
扣分时间
"
,
prop
:
"
deductTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
扣分时间
"
,
prop
:
"
deductTime
"
,
formatter
:
this
.
formatterDate
,
},
{
label
:
"
增减类型
"
,
prop
:
"
subAddType
"
,
formatter
:
this
.
formatter
},
{
label
:
"
增减类型
"
,
prop
:
"
subAddType
"
,
formatter
:
this
.
formatter
},
{
label
:
"
扣分或增加分值
"
,
prop
:
"
score
"
,
formatter
:
this
.
formatter
},
{
label
:
"
扣分或增加分值
"
,
prop
:
"
score
"
,
formatter
:
this
.
formatter
},
{
label
:
"
处理状态
"
,
prop
:
"
processStatus
"
,
formatter
:
this
.
formatter
},
{
label
:
"
处理状态
"
,
prop
:
"
processStatus
"
,
formatter
:
this
.
formatter
,
},
{
label
:
"
创建用户
"
,
prop
:
"
createUserId
"
,
formatter
:
this
.
formatter
},
{
label
:
"
创建用户
"
,
prop
:
"
createUserId
"
,
formatter
:
this
.
formatter
,
},
{
{
label
:
"
操作
"
,
label
:
"
操作
"
,
width
:
240
,
width
:
240
,
formatter
:
row
=>
{
formatter
:
(
row
)
=>
{
return
(
return
(
<
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
}
/
>
);
);
}
},
}
},
]
],
}
},
};
}
};
};
},
};
</
script
>
</
script
>
src/views/staff/perform/summary/list.vue
View file @
ed11a2d2
...
@@ -82,7 +82,7 @@ export default {
...
@@ -82,7 +82,7 @@ export default {
<
p
>
<
p
>
<
span
>
服务规范
<
/span
>
<
span
>
服务规范
<
/span
>
<
p
>
<
p
>
{
"
(考勤绩效
*
"
+
data
.
dict
.
weightPdu
.
attendWeight
+
"
%
)
"
}
{
"
(考勤绩效
/
"
+
data
.
dict
.
weightPdu
.
attendWeight
+
"
分
)
"
}
<
/p
>
<
/p
>
<
/p
>
<
/p
>
))
))
...
@@ -90,7 +90,9 @@ export default {
...
@@ -90,7 +90,9 @@ export default {
?
(
v
.
label
=
(
?
(
v
.
label
=
(
<
p
>
<
p
>
<
span
>
群众评议
<
/span
>
<
span
>
群众评议
<
/span
>
<
p
>
{
"
(
"
+
data
.
dict
.
weightPdu
.
reviewWeight
+
"
分)
"
}
<
/p
>
<
p
>
{
"
(评价绩效/
"
+
data
.
dict
.
weightPdu
.
reviewWeight
+
"
分)
"
}
<
/p
>
<
/p
>
<
/p
>
))
))
:
v
.
label
==
"
工作效能
"
:
v
.
label
==
"
工作效能
"
...
@@ -98,7 +100,7 @@ export default {
...
@@ -98,7 +100,7 @@ export default {
<
p
>
<
p
>
<
span
>
工作效能
<
/span
>
<
span
>
工作效能
<
/span
>
<
p
>
<
p
>
{
"
(办件绩效
*
"
+
data
.
dict
.
weightPdu
.
goworkWeight
+
"
%
)
"
}
{
"
(办件绩效
/
"
+
data
.
dict
.
weightPdu
.
goworkWeight
+
"
分
)
"
}
<
/p
>
<
/p
>
<
/p
>
<
/p
>
))
))
...
@@ -107,7 +109,7 @@ export default {
...
@@ -107,7 +109,7 @@ export default {
<
p
>
<
p
>
<
span
>
工作纪律
<
/span
>
<
span
>
工作纪律
<
/span
>
<
p
>
<
p
>
{
"
(效能绩效
*
"
+
data
.
dict
.
weightPdu
.
effectWeight
+
"
%
)
"
}
{
"
(效能绩效
/
"
+
data
.
dict
.
weightPdu
.
effectWeight
+
"
分
)
"
}
<
/p
>
<
/p
>
<
/p
>
<
/p
>
))
))
...
...
src/views/system/user/dialogshow.vue
View file @
ed11a2d2
...
@@ -46,8 +46,14 @@
...
@@ -46,8 +46,14 @@
v-model=
"form.mobile"
v-model=
"form.mobile"
:maxLength=
"11"
:maxLength=
"11"
/>
/>
<Field
label=
"用户类型"
prop=
"userType"
v-model=
"form.userType"
:enumData=
'dict.userType'
type=
'select'
/>
<Field
<!--
<Field
label=
"用户状态"
prop=
"status"
v-model=
"form.status"
:enumData=
'dict.status'
type=
'select'
/>
-->
label=
"用户类型"
prop=
"userType"
v-model=
"form.userType"
:enumData=
"dict.userType"
type=
"select"
/>
<!--
<Field
label=
"用户状态"
prop=
"status"
v-model=
"form.status"
:enumData=
'dict.status'
type=
'select'
/>
-->
<Field
<Field
label=
"角色分配"
label=
"角色分配"
:span=
"24"
:span=
"24"
...
@@ -93,7 +99,7 @@ export default {
...
@@ -93,7 +99,7 @@ export default {
loginName
:
[
loginName
:
[
{
required
:
true
,
message
:
"
请输入英文的用户名
"
,
trigger
:
"
blur
"
},
{
required
:
true
,
message
:
"
请输入英文的用户名
"
,
trigger
:
"
blur
"
},
{
{
validator
:
function
(
rule
,
value
,
callback
)
{
validator
:
function
(
rule
,
value
,
callback
)
{
// 校验英文的正则
// 校验英文的正则
if
(
/
[
A-Za-z0-9
]
$/
.
test
(
value
)
==
false
)
{
if
(
/
[
A-Za-z0-9
]
$/
.
test
(
value
)
==
false
)
{
callback
(
new
Error
(
"
请输入英文
"
));
callback
(
new
Error
(
"
请输入英文
"
));
...
@@ -145,24 +151,39 @@ export default {
...
@@ -145,24 +151,39 @@ export default {
},
},
/**获取数据后弹框 */
/**获取数据后弹框 */
afterRender
(
data
)
{
afterRender
(
data
)
{
let
arr
=
[];
// for (let key in data.dict.roleIds) {
// let obj = {};
// obj["value"] = key;
// obj["label"] = data.dict.roleIds[key];
// arr.push(obj);
// }
// data.dict.roleIds = arr;
if
(
data
.
entity
.
roleIds
&&
data
.
entity
.
roleIds
.
length
)
{
data
.
entity
.
roleIds
=
data
.
entity
.
roleIds
.
map
((
v
)
=>
{
return
v
+
""
;
});
}
console
.
log
(
data
.
entity
.
roleIds
,
"
1111
"
);
this
.
$forceUpdate
();
this
.
open
=
true
;
this
.
open
=
true
;
},
},
beforeSubmit
(
data
)
{
//
beforeSubmit(data) {
data
.
roleIds
=
data
.
roleIds
//
data.roleIds = data.roleIds
.
filter
((
item
)
=>
{
//
.filter((item) => {
return
item
!==
""
;
//
return item !== "";
})
//
})
.
join
(
"
,
"
);
//
.join(",");
return
data
;
//
return data;
},
//
},
afterSubmit
(
data
)
{
afterSubmit
(
data
)
{
this
.
open
=
false
;
this
.
open
=
false
;
this
.
$emit
(
"
ok
"
);
this
.
$emit
(
"
ok
"
);
},
},
// 表单重置
// 表单重置
reset
()
{
reset
()
{
this
.
form
=
{
roleIds
:
""
};
this
.
form
=
{
roleIds
:
""
};
this
.
resetForm
(
"
form
"
);
this
.
resetForm
(
"
form
"
);
},
},
...
@@ -193,5 +214,3 @@ export default {
...
@@ -193,5 +214,3 @@ export default {
},
},
};
};
</
script
>
</
script
>
src/views/system/user/list.vue
View file @
ed11a2d2
<
template
>
<
template
>
<div
class=
"page"
>
<div
class=
"page"
>
<LayoutTable
:data=
"tableData"
:config=
"tableConfig"
not
Del
/>
<LayoutTable
:data=
"tableData"
:config=
"tableConfig"
not
Add
notDel
/>
<dialog-show
ref=
"dialogform"
@
ok=
"getData"
/>
<dialog-show
ref=
"dialogform"
@
ok=
"getData"
/>
<el-dialog
title=
"用户已分配的角色"
:visible.sync=
"role.visible"
>
<el-dialog
title=
"用户已分配的角色"
:visible.sync=
"role.visible"
>
<el-form
:model=
"role.form"
>
<el-form
:model=
"role.form"
>
<el-checkbox-group
v-model=
"role.checkList"
:min=
"500"
>
<el-checkbox-group
v-model=
"role.checkList"
:min=
"500"
>
<el-checkbox
<el-checkbox
v-for=
"item in allRoles"
:key=
"item.id"
:label=
"item.id"
v-for=
"item in allRoles"
:key=
"item.id"
:label=
"item.id"
>
{{
item
.
name
}}
>
{{
item
.
name
}}
</el-checkbox
</el-checkbox>
>
</el-checkbox-group>
</el-checkbox-group>
</el-form>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<div
slot=
"footer"
class=
"dialog-footer"
>
...
@@ -70,18 +66,13 @@
...
@@ -70,18 +66,13 @@
</div>
</div>
</el-dialog>
</el-dialog>
<el-dialog
<el-dialog
:title=
"userPasswordDialog.title"
:title=
"userPasswordDialog.title"
hei
hei
:visible.sync=
"userPasswordDialog.open"
:visible.sync=
"userPasswordDialog.open"
width=
"40%"
width=
"40%"
>
>
<el-form
<el-form
ref=
"form"
label-width=
"110px"
label-position=
"right"
>
ref=
"form"
label-width=
"110px"
label-position=
"right"
>
<el-row>
<el-row>
<Field
<Field
:span=
"20"
:span=
"20"
...
@@ -91,7 +82,6 @@
...
@@ -91,7 +82,6 @@
v-model=
"userPasswordDialog.data.loginName"
v-model=
"userPasswordDialog.data.loginName"
/>
/>
<Field
<Field
:span=
"20"
:span=
"20"
label=
"重置密码"
label=
"重置密码"
...
@@ -101,25 +91,20 @@
...
@@ -101,25 +91,20 @@
</el-row>
</el-row>
</el-form>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"updatePasswordConfirm"
>
确 定
</el-button>
<el-button
type=
"primary"
@
click=
"updatePasswordConfirm"
>
确 定
</el-button
>
<el-button
@
click=
"userPasswordDialog.open = false"
>
取 消
</el-button>
<el-button
@
click=
"userPasswordDialog.open = false"
>
取 消
</el-button>
</div>
</div>
</el-dialog>
</el-dialog>
<el-dialog
<el-dialog
:title=
"userLoginDialog.title"
:title=
"userLoginDialog.title"
:visible.sync=
"userLoginDialog.open"
:visible.sync=
"userLoginDialog.open"
width=
"40%"
width=
"40%"
>
>
<el-form
<el-form
ref=
"form"
label-width=
"110px"
label-position=
"right"
>
ref=
"form"
label-width=
"110px"
label-position=
"right"
>
<el-row>
<el-row>
<Field
<Field
:span=
"20"
:span=
"20"
label=
"登录名称"
label=
"登录名称"
...
@@ -139,9 +124,7 @@
...
@@ -139,9 +124,7 @@
<el-button
type=
"primary"
@
click=
"updateLoginConfirm"
>
确 定
</el-button>
<el-button
type=
"primary"
@
click=
"updateLoginConfirm"
>
确 定
</el-button>
<el-button
@
click=
"userLoginDialog.open = false"
>
取 消
</el-button>
<el-button
@
click=
"userLoginDialog.open = false"
>
取 消
</el-button>
</div>
</div>
</el-dialog>
</el-dialog>
</div>
</div>
</
template
>
</
template
>
...
@@ -151,10 +134,10 @@ import table from "@/assets/mixins/table";
...
@@ -151,10 +134,10 @@ import table from "@/assets/mixins/table";
export
default
{
export
default
{
mixins
:
[
table
],
mixins
:
[
table
],
components
:
{
dialogShow
},
components
:
{
dialogShow
},
methods
:
{
methods
:
{
// 打开弹窗
// 打开弹窗
async
findRole
({
id
})
{
async
findRole
({
id
})
{
try
{
try
{
this
.
tableData
.
loading
=
true
;
this
.
tableData
.
loading
=
true
;
this
.
allRoles
=
await
this
.
getUserRoles
(
id
);
this
.
allRoles
=
await
this
.
getUserRoles
(
id
);
...
@@ -167,7 +150,7 @@ export default {
...
@@ -167,7 +150,7 @@ export default {
this
.
tableData
.
loading
=
false
;
this
.
tableData
.
loading
=
false
;
},
},
renderContent
:
function
(
h
,
{
node
,
data
,
store
})
{
renderContent
:
function
(
h
,
{
node
,
data
,
store
})
{
return
(
return
(
<
span
>
<
span
>
<
i
style
=
"
font-size:16px;color:#409EFF
"
class
=
{
data
.
icon
}
><
/i
>
<
i
style
=
"
font-size:16px;color:#409EFF
"
class
=
{
data
.
icon
}
><
/i
>
...
@@ -181,7 +164,7 @@ export default {
...
@@ -181,7 +164,7 @@ export default {
}
}
this
.
$get
(
"
/dept/getListByParentId
"
,
{
this
.
$get
(
"
/dept/getListByParentId
"
,
{
parentId
:
node
.
data
.
id
,
parentId
:
node
.
data
.
id
,
}).
then
(({
data
})
=>
{
}).
then
(({
data
})
=>
{
resolve
(
data
.
result
);
resolve
(
data
.
result
);
});
});
},
},
...
@@ -250,14 +233,14 @@ export default {
...
@@ -250,14 +233,14 @@ export default {
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
$get
(
"
/dept/getListByParentId
"
,
{
this
.
$get
(
"
/dept/getListByParentId
"
,
{
parentId
:
0
,
parentId
:
0
,
}).
then
(({
data
})
=>
{
}).
then
(({
data
})
=>
{
this
.
data
=
data
.
result
;
this
.
data
=
data
.
result
;
this
.
node
=
{};
this
.
node
=
{};
});
});
this
.
userDeptDialog
.
open
=
true
;
this
.
userDeptDialog
.
open
=
true
;
}).
catch
(
error
=>
{
}).
catch
(
(
error
)
=>
{
this
.
$message
.
error
(
error
.
message
);
this
.
$message
.
error
(
error
.
message
);
})
})
;
this
.
tableData
.
loading
=
false
;
this
.
tableData
.
loading
=
false
;
},
},
...
@@ -279,9 +262,10 @@ export default {
...
@@ -279,9 +262,10 @@ export default {
this
.
tableData
.
loading
=
true
;
this
.
tableData
.
loading
=
true
;
this
.
$post
(
"
/user/save
"
,
{
this
.
$post
(
"
/user/save
"
,
{
"
id
"
:
this
.
userPasswordDialog
.
data
.
id
,
id
:
this
.
userPasswordDialog
.
data
.
id
,
"
loginPwd
"
:
this
.
userPasswordDialog
.
data
.
loginPwd
,
loginPwd
:
this
.
userPasswordDialog
.
data
.
loginPwd
,
}).
then
((
res
)
=>
{
})
.
then
((
res
)
=>
{
if
(
res
&&
res
.
code
==
1
)
{
if
(
res
&&
res
.
code
==
1
)
{
this
.
userPasswordDialog
.
data
=
{};
this
.
userPasswordDialog
.
data
=
{};
this
.
$message
.
success
(
"
修改密码成功!
"
);
this
.
$message
.
success
(
"
修改密码成功!
"
);
...
@@ -291,9 +275,10 @@ export default {
...
@@ -291,9 +275,10 @@ export default {
this
.
$message
.
error
(
res
.
msg
);
this
.
$message
.
error
(
res
.
msg
);
}
}
this
.
tableData
.
loading
=
false
;
this
.
tableData
.
loading
=
false
;
}).
catch
(
error
=>
{
this
.
$message
.
error
(
error
.
message
);
})
})
.
catch
((
error
)
=>
{
this
.
$message
.
error
(
error
.
message
);
});
},
},
updateLoginName
(
row
)
{
updateLoginName
(
row
)
{
...
@@ -313,10 +298,11 @@ export default {
...
@@ -313,10 +298,11 @@ export default {
console
.
log
(
"
修改登录名
"
);
console
.
log
(
"
修改登录名
"
);
this
.
tableData
.
loading
=
true
;
this
.
tableData
.
loading
=
true
;
this
.
$post
(
"
/login/reLoginName
"
,
{
this
.
$post
(
"
/login/reLoginName
"
,
{
"
id
"
:
this
.
userLoginDialog
.
data
.
id
,
id
:
this
.
userLoginDialog
.
data
.
id
,
"
loginName
"
:
this
.
userLoginDialog
.
data
.
loginName
,
loginName
:
this
.
userLoginDialog
.
data
.
loginName
,
"
userType
"
:
this
.
userLoginDialog
.
data
.
userType
userType
:
this
.
userLoginDialog
.
data
.
userType
,
}).
then
((
res
)
=>
{
})
.
then
((
res
)
=>
{
if
(
res
&&
res
.
code
==
1
)
{
if
(
res
&&
res
.
code
==
1
)
{
this
.
userLoginDialog
.
data
=
{};
this
.
userLoginDialog
.
data
=
{};
this
.
$message
.
success
(
"
修改登录名成功!
"
);
this
.
$message
.
success
(
"
修改登录名成功!
"
);
...
@@ -326,16 +312,17 @@ export default {
...
@@ -326,16 +312,17 @@ export default {
this
.
$message
.
error
(
res
.
msg
);
this
.
$message
.
error
(
res
.
msg
);
}
}
this
.
tableData
.
loading
=
false
;
this
.
tableData
.
loading
=
false
;
}).
catch
(
error
=>
{
this
.
$message
.
error
(
error
.
message
);
})
})
.
catch
((
error
)
=>
{
this
.
$message
.
error
(
error
.
message
);
});
},
},
// 获取用户角色列表
// 获取用户角色列表
getUserRoles
(
id
)
{
getUserRoles
(
id
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
this
.
$post
(
"
/role/roleNameByUserId
"
,
{
userId
:
id
})
this
.
$post
(
"
/role/roleNameByUserId
"
,
{
userId
:
id
})
.
then
(({
data
})
=>
{
.
then
(({
data
})
=>
{
resolve
(
data
);
resolve
(
data
);
})
})
.
catch
(
reject
);
.
catch
(
reject
);
...
@@ -347,7 +334,7 @@ export default {
...
@@ -347,7 +334,7 @@ export default {
userId
:
id
,
userId
:
id
,
size
:
-
1
,
size
:
-
1
,
})
})
.
then
(({
data
})
=>
{
.
then
(({
data
})
=>
{
const
result
=
data
.
data
const
result
=
data
.
data
.
filter
((
i
)
=>
i
.
roleId
+
""
)
.
filter
((
i
)
=>
i
.
roleId
+
""
)
.
map
((
i
)
=>
i
.
roleId
+
""
);
.
map
((
i
)
=>
i
.
roleId
+
""
);
...
@@ -420,8 +407,8 @@ export default {
...
@@ -420,8 +407,8 @@ export default {
config
:
{
config
:
{
isshowTabPane
:
true
,
isshowTabPane
:
true
,
columns
:
[
columns
:
[
{
type
:
"
selection
"
,
reserveSelection
:
true
,
width
:
60
},
{
type
:
"
selection
"
,
reserveSelection
:
true
,
width
:
60
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
align
:
"
center
"
,
width
:
50
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
align
:
"
center
"
,
width
:
50
},
{
{
prop
:
"
loginName
"
,
prop
:
"
loginName
"
,
label
:
"
登录名称
"
,
label
:
"
登录名称
"
,
...
...
src/views/window/owner/drawershow.vue
View file @
ed11a2d2
...
@@ -6,14 +6,20 @@
...
@@ -6,14 +6,20 @@
:direction=
"direction"
:direction=
"direction"
size=
"50%"
size=
"50%"
>
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"100px"
style=
"padding: 20px;"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"100px"
style=
"padding: 20px;"
>
<el-row>
<el-row>
<Field
<Field
type=
"select"
type=
"select"
label=
"负责人姓名"
label=
"负责人姓名"
prop=
"staffId"
prop=
"staffId"
filterable
filterable
:disabled=
"editId
?true:
false"
:disabled=
"editId
? true :
false"
v-model=
"form.staffId"
v-model=
"form.staffId"
:enumData=
"userList"
:enumData=
"userList"
placeholder=
"请输入负责人姓名"
placeholder=
"请输入负责人姓名"
...
@@ -24,6 +30,14 @@
...
@@ -24,6 +30,14 @@
v-model=
"form.phone"
v-model=
"form.phone"
placeholder=
"请输入联系电话"
placeholder=
"请输入联系电话"
/>
/>
<Field
label=
"角色"
prop=
"roleType"
type=
"select"
v-model=
"form.roleType"
:enumData=
"dict.roleType"
placeholder=
"请选择角色"
/>
<Field
<Field
label=
"大厅"
label=
"大厅"
prop=
"salaId"
prop=
"salaId"
...
@@ -40,6 +54,10 @@
...
@@ -40,6 +54,10 @@
:enumData=
"dict.deptId"
:enumData=
"dict.deptId"
placeholder=
"请选择部门"
placeholder=
"请选择部门"
/>
/>
<el-form-item
label=
"是否允许巡查"
prop=
"inspect"
>
<el-checkbox
v-model=
"form.inspect"
>
允许
</el-checkbox>
</el-form-item>
<!--
<Field
<!--
<Field
label=
"工号"
label=
"工号"
prop=
"number"
prop=
"number"
...
@@ -62,12 +80,18 @@
...
@@ -62,12 +80,18 @@
/>
-->
/>
-->
</el-row>
</el-row>
<div
style=
"background-color: rgba(242, 246, 252, 1);padding: 20px;"
>
<div
style=
"background-color: rgba(242, 246, 252, 1);padding: 20px;"
>
<wintable
<wintable
:editId=
"editId"
ref=
"wintable"
:hallId=
"dict.hallId"
class=
"wintabel"
@
selection-change=
"selectionChange"
/>
:editId=
"editId"
ref=
"wintable"
:hallId=
"dict.hallId"
class=
"wintabel"
:checkPeopleArr=
"checkPeopleArr"
@
selection-change=
"selectionChange"
:staffList=
"dict.staffList"
/>
</div>
</div>
<div
style=
"padding: 20px;"
>
<div
style=
"padding: 20px;"
>
<el-button
type=
"primary"
@
click=
"submitForm"
>
提交
</el-button>
<el-button
type=
"primary"
@
click=
"submitForm"
>
提交
</el-button>
</div>
</div>
</el-form>
</el-form>
</el-drawer>
</el-drawer>
...
@@ -80,18 +104,18 @@ export default {
...
@@ -80,18 +104,18 @@ export default {
name
:
"
WindowOwnerDetail
"
,
name
:
"
WindowOwnerDetail
"
,
mixins
:
[
form
],
mixins
:
[
form
],
components
:
{
components
:
{
wintable
wintable
,
},
},
created
()
{
created
()
{
this
.
changePath
(
"
window/owner
"
);
this
.
changePath
(
"
window/owner
"
);
this
.
getUser
()
this
.
getUser
()
;
},
},
data
()
{
data
()
{
return
{
return
{
// 大厅
// 大厅
options
:[],
options
:
[],
//窗口
//窗口
tableData
:[],
tableData
:
[],
// 遮罩层
// 遮罩层
loading
:
true
,
loading
:
true
,
// 弹出层标题
// 弹出层标题
...
@@ -103,45 +127,48 @@ export default {
...
@@ -103,45 +127,48 @@ export default {
toDate
:
[],
toDate
:
[],
// 表单校验
// 表单校验
rules
:
{
rules
:
{
name
:
[
staffId
:
[{
required
:
true
,
message
:
"
请选择负责人
"
,
trigger
:
"
blur
"
}],
{
required
:
true
,
message
:
"
请输入姓名
"
,
trigger
:
"
blur
"
},
},
{
max
:
20
,
message
:
"
最多只能录入20个字符
"
,
trigger
:
"
blur
"
},
userList
:
{},
]
userarr
:
[],
//人员数组
},
checkArr
:
[],
//选中窗口
userList
:{},
checkPeopleArr
:
[],
//选中窗口
userarr
:[],
//人员数组
editId
:
""
,
//编辑id
checkArr
:[],
//选中窗口
editId
:
''
//编辑id
};
};
},
},
methods
:
{
methods
:
{
//重写表单
//重写表单
beforeSubmit
(
data
){
beforeSubmit
(
data
)
{
data
[
'
deptName
'
]
=
this
.
dict
.
deptId
[
data
.
deptId
]
data
[
"
deptName
"
]
=
this
.
dict
.
deptId
[
data
.
deptId
];
data
[
'
salaName
'
]
=
this
.
dict
.
salaId
[
data
.
salaId
]
data
[
"
salaName
"
]
=
this
.
dict
.
salaId
[
data
.
salaId
];
data
[
'
staffName
'
]
=
this
.
userList
[
data
.
staffId
]
data
[
"
staffName
"
]
=
this
.
userList
[
data
.
staffId
];
try
{
try
{
const
userObj
=
this
.
userarr
.
find
(
v
=>
v
.
id
==
data
.
staffId
)
//工号
const
userObj
=
this
.
userarr
.
find
(
(
v
)
=>
v
.
id
==
data
.
staffId
);
//工号
data
[
'
number
'
]
=
userObj
.
workNum
data
[
"
number
"
]
=
userObj
.
workNum
;
// 窗口列表
// 窗口列表
const
checkArr
=
[]
const
checkArr
=
[]
;
this
.
checkArr
.
forEach
(
v
=>
{
this
.
checkArr
.
forEach
(
(
v
)
=>
{
checkArr
.
push
({
checkArr
.
push
({
windowId
:
v
.
id
,
windowId
:
v
.
id
,
windowName
:
v
.
name
,
windowName
:
v
.
name
,
windowCode
:
v
.
fromnum
,
windowCode
:
v
.
fromnum
,
building
:
v
.
building
,
building
:
v
.
building
,
level
:
v
.
level
level
:
v
.
level
,
})
})
;
})
})
;
data
[
'
windowOwnerDetailList
'
]
=
checkArr
data
[
"
windowOwnerDetailList
"
]
=
checkArr
;
}
catch
(
error
)
{}
}
catch
(
error
)
{}
return
data
let
arr
=
Array
.
from
(
new
Set
(
this
.
$refs
.
wintable
.
checkAllList
));
console
.
log
(
this
.
checkAllList
);
data
.
staffIdList
=
arr
?
arr
:
[];
return
data
;
},
},
// 选中窗口
// 选中窗口
selectionChange
(
v
){
selectionChange
(
v
)
{
this
.
checkArr
=
v
// this.checkArr = v;
// this.checkPeopleArr = v;
console
.
log
(
v
,
"
vvvvvv
"
);
},
},
cascaderChange
(
val
)
{
cascaderChange
(
val
)
{
if
(
this
.
deptList
.
length
>
0
)
{
if
(
this
.
deptList
.
length
>
0
)
{
...
@@ -152,35 +179,33 @@ export default {
...
@@ -152,35 +179,33 @@ export default {
console
.
log
(
this
.
form
.
deptId
,
"
当前选择
"
);
console
.
log
(
this
.
form
.
deptId
,
"
当前选择
"
);
},
},
// 查询人员
// 查询人员
getUser
(){
getUser
()
{
this
.
$post
(
"
/staff/list
"
,
{
page
:
1
,
size
:
-
1
}).
then
(
res
=>
{
this
.
$post
(
"
/staff/list
"
,
{
page
:
1
,
size
:
-
1
}).
then
((
res
)
=>
{
const
{
code
,
data
}
=
res
const
{
code
,
data
}
=
res
;
if
(
code
==
1
)
{
if
(
code
==
1
)
{
this
.
userarr
=
data
.
data
this
.
userarr
=
data
.
data
;
const
arr
=
{}
const
arr
=
{}
;
data
.
data
.
forEach
(
element
=>
{
data
.
data
.
forEach
(
(
element
)
=>
{
arr
[
element
.
id
]
=
element
.
name
arr
[
element
.
id
]
=
element
.
name
;
});
});
this
.
userList
=
arr
this
.
userList
=
arr
;
}
}
})
});
},
onSubmitSearch
(){
},
},
/** 编辑 */
/** 编辑 */
edit
(
row
)
{
edit
(
row
)
{
this
.
editId
=
row
.
staffId
this
.
editId
=
row
.
staffId
;
this
.
reset
();
this
.
reset
();
this
.
query
=
{
id
:
row
.
id
};
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
window/owner/edit
"
;
this
.
urls
.
currUrl
=
"
window/owner/edit
"
;
this
.
getData
();
this
.
getData
();
this
.
checkPeopleArr
=
row
.
staffIdList
;
this
.
pageInfo
.
type
=
"
edit
"
;
this
.
pageInfo
.
type
=
"
edit
"
;
this
.
title
=
"
修改窗口负责人
"
;
this
.
title
=
"
修改窗口负责人
"
;
},
},
/** 新增 */
/** 新增 */
add
(
row
)
{
add
(
row
)
{
this
.
editId
=
''
this
.
editId
=
""
;
this
.
reset
();
this
.
reset
();
this
.
urls
.
currUrl
=
"
window/owner/add
"
;
this
.
urls
.
currUrl
=
"
window/owner/add
"
;
this
.
getData
();
this
.
getData
();
...
@@ -189,7 +214,7 @@ export default {
...
@@ -189,7 +214,7 @@ export default {
},
},
/** 查看*/
/** 查看*/
view
(
row
)
{
view
(
row
)
{
this
.
editId
=
row
.
staffId
this
.
editId
=
row
.
staffId
;
this
.
reset
();
this
.
reset
();
this
.
query
=
{
id
:
row
.
id
};
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
window/owner/view
"
;
this
.
urls
.
currUrl
=
"
window/owner/view
"
;
...
@@ -233,7 +258,7 @@ export default {
...
@@ -233,7 +258,7 @@ export default {
};
};
</
script
>
</
script
>
<
style
lang=
"less"
>
<
style
lang=
"less"
>
.wintabel .table-body{
.wintabel .table-body
{
height: 500px;
height: 500px;
overflow-y: auto;
overflow-y: auto;
}
}
...
...
src/views/window/owner/list.vue
View file @
ed11a2d2
...
@@ -36,6 +36,24 @@ export default {
...
@@ -36,6 +36,24 @@ export default {
config
:
{
config
:
{
isshowTabPane
:
true
,
isshowTabPane
:
true
,
search
:
[
search
:
[
{
name
:
"
salaId
"
,
type
:
"
selectSalaId
"
,
label
:
"
大厅
"
,
fuzzy
:
false
,
},
{
name
:
"
deptId
"
,
type
:
"
selectDeptId
"
,
label
:
"
部门
"
,
fuzzy
:
false
,
},
{
name
:
"
roleType
"
,
type
:
"
select
"
,
label
:
"
角色
"
,
fuzzy
:
false
,
},
{
{
name
:
"
staffName
"
,
name
:
"
staffName
"
,
type
:
"
text
"
,
type
:
"
text
"
,
...
@@ -56,8 +74,8 @@ export default {
...
@@ -56,8 +74,8 @@ export default {
{
label
:
"
电话号码
"
,
prop
:
"
phone
"
},
{
label
:
"
电话号码
"
,
prop
:
"
phone
"
},
{
{
label
:
"
负责窗口数量
"
,
label
:
"
关联人数
"
,
prop
:
"
window
Count
"
,
prop
:
"
staff
Count
"
,
formatter
:
this
.
formatter
,
formatter
:
this
.
formatter
,
},
},
...
...
src/views/window/owner/wintable.vue
View file @
ed11a2d2
<
template
>
<
template
>
<LayoutTable
:toggleRowSelection=
"toggleRowSelection"
ref=
"LayoutTable"
:data=
"tableData"
:config=
"tableConfig"
@
selection-change=
"handleSelectionChange"
>
<div>
<div
slot=
"table-head-left"
><div>
请选择窗口
</div></div>
<div
class=
"search_box"
>
<div
slot=
"table-head-center"
></div>
<SearchForm
</LayoutTable>
:search=
"config.search"
:page=
"baseInfo.current_page"
@
getData=
"onSubmit"
ref=
"search"
/>
</div>
<el-table
ref=
"multipleTable"
:data=
"baseInfo.data ? baseInfo.data : []"
tooltip-effect=
"dark"
style=
"width: 100%"
@
select=
"handleSelectionChange"
@
select-all=
"handleAllChange"
>
<el-table-column
v-for=
"(val, i) in config.columns"
:key=
"i"
:type=
"val.type"
:width=
"val.width"
:label=
"val.label"
:prop=
"val.prop"
:formatter=
"val.formatter"
:align=
"val.align ? val.align : 'center'"
>
</el-table-column>
</el-table>
<el-pagination
@
current-change=
"handleCurrentChange"
:current-page.sync=
"baseInfo.current_page"
layout=
"total, prev, pager, next"
:total=
"baseInfo.total"
style=
"margin-top: 10px;width: 100%;text-align: end;"
>
</el-pagination>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
table
from
"
@/assets/mixins/table
"
;
import
SearchForm
from
"
@/components/SearchFormDrawer.vue
"
;
export
default
{
export
default
{
props
:[
'
hallId
'
,
'
checkId
'
,
'
editId
'
],
components
:
{
SearchForm
},
mixins
:
[
table
],
props
:
[
"
hallId
"
,
"
checkId
"
,
"
editId
"
,
"
checkPeopleArr
"
,
"
staffList
"
],
methods
:{
handleSelectionChange
(
v
){
methods
:
{
this
.
$emit
(
"
selection-change
"
,
v
)
handleSelectionChange
(
selecteds
,
row
)
{
},
if
(
!
this
.
checkAllList
.
includes
(
row
.
id
))
{
beforeFecth
(){
// 回显数据里没有本条,把这条加进来(选中)
this
.
pageInfo
.
list
=
'
/window/owner/subWindowList
'
this
.
checkAllList
.
push
(
row
.
id
);
}
else
{
// 回显数据里有本条,把这条删除(取消选中)
this
.
checkAllList
.
forEach
((
id
,
index
)
=>
{
if
(
id
===
row
.
id
)
{
this
.
checkAllList
=
this
.
checkAllList
.
filter
((
v
)
=>
id
!==
v
);
}
});
this
.
checkPeopleArr
.
forEach
((
id
)
=>
{
if
(
id
==
row
.
id
)
{
this
.
checkPeopleArr
=
this
.
checkPeopleArr
.
filter
((
v
)
=>
id
!==
v
);
}
});
}
let
arr
=
Array
.
from
(
new
Set
(
this
.
checkAllList
));
this
.
checkAllList
=
arr
;
console
.
log
(
this
.
checkAllList
);
},
},
//重写
// 全选、取消全选
afterRender
(
info
){
handleAllChange
(
selecteds
)
{
const
{
data
}
=
info
selecteds
=
selecteds
.
filter
((
v
)
=>
(
v
?
v
:
""
));
if
(
this
.
editId
){
console
.
log
(
selecteds
);
// 编辑的时候回显
if
(
selecteds
.
length
>
0
)
{
const
toggleRowSelection
=
[]
selecteds
.
forEach
((
item
)
=>
{
data
.
forEach
(
element
=>
{
if
(
!
this
.
checkAllList
.
includes
(
item
.
id
))
{
if
(
element
.
selected
==
1
){
this
.
checkAllList
.
push
(
item
.
id
);
toggleRowSelection
.
push
(
element
)
}
}
});
});
setTimeout
(()
=>
{
let
arr
=
Array
.
from
(
new
Set
(
this
.
checkAllList
));
this
.
toggleRowSelection
=
toggleRowSelection
this
.
checkAllList
=
arr
;
})
}
else
{
this
.
baseInfo
.
data
.
forEach
((
item
)
=>
{
this
.
checkAllList
.
forEach
((
id
,
index
)
=>
{
if
(
id
===
item
.
id
)
{
this
.
checkAllList
.
splice
(
index
,
1
);
}
}
});
});
let
arr
=
Array
.
from
(
new
Set
(
this
.
checkAllList
));
this
.
checkAllList
=
arr
;
this
.
baseInfo
.
data
.
forEach
((
item
)
=>
{
this
.
checkPeopleArr
.
forEach
((
id
,
index
)
=>
{
if
(
id
===
item
.
id
)
{
this
.
checkPeopleArr
.
splice
(
index
,
1
);
}
});
});
}
}
},
},
created
(){
this
.
config
.
search
[
0
].
enumData
=
this
.
hallId
console
.
log
(
this
.
editId
,
"
editId
"
)
handleCurrentChange
(
val
)
{
this
.
baseInfo
.
current_page
=
val
;
this
.
$refs
.
search
.
onSubmit
();
},
},
watch
:
{
onSubmit
(
val
)
{
editId
:{
this
.
baseInfo
=
val
;
handler
:
function
(
v
){
this
.
checkAllList
=
[...
this
.
checkAllList
,
...
this
.
checkPeopleArr
];
if
(
v
){
if
(
this
.
staffList
&&
this
.
staffList
.
length
)
{
this
.
query
=
{
staffId
:
v
}
this
.
$nextTick
(()
=>
{
}
else
{
this
.
staffList
this
.
query
=
{}
?
this
.
staffList
.
forEach
((
v
)
=>
{
this
.
checkAllList
.
forEach
((
val
,
i
)
=>
{
if
(
v
.
id
==
val
)
{
this
.
checkAllList
[
i
]
=
v
.
id
;
}
}
this
.
getData
()
});
},
})
immediate
:
true
:
""
;
this
.
baseInfo
.
data
?
this
.
checkAllList
.
forEach
((
key
)
=>
{
this
.
$refs
.
multipleTable
.
toggleRowSelection
(
this
.
baseInfo
.
data
.
find
((
row
)
=>
{
if
(
row
.
id
==
key
)
{
return
row
;
}
}
}),
true
);
})
:
""
;
});
}
},
},
},
data
(){
created
()
{
this
.
config
.
search
[
0
].
enumData
=
this
.
hallId
;
},
mounted
()
{},
watch
:
{},
data
()
{
return
{
return
{
toggleRowSelection
:[],
checkAllList
:
[],
checkList
:
[],
baseInfo
:
{},
total
:
0
,
currentPage
:
1
,
toggleRowSelection
:
[],
config
:
{
config
:
{
downloadUrl
:
""
,
downloadUrl
:
""
,
isshowTabPane
:
false
,
isshowTabPane
:
false
,
search
:
[
search
:
[
{
{
name
:
"
hall
Id
"
,
name
:
"
sala
Id
"
,
type
:
"
select
"
,
type
:
"
selectSalaId
"
,
label
:
"
大厅
"
,
label
:
"
大厅
"
,
enumData
:{}
fuzzy
:
false
,
},
{
name
:
"
deptId
"
,
type
:
"
selectDeptId
"
,
label
:
"
部门
"
,
fuzzy
:
false
,
},
},
{
{
name
:
"
deptN
ame
"
,
name
:
"
n
ame
"
,
type
:
"
text
"
,
type
:
"
text
"
,
label
:
"
窗口名称
"
,
label
:
"
工作人员姓名
"
,
fuzzy
:
true
,
fuzzy
:
true
,
},
},
],
],
columns
:
[
columns
:
[
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
selection
"
,
width
:
60
},
// { type: "index", label: "序号", width: 50 },
{
label
:
"
序号
"
,
width
:
50
,
formatter
:
(
row
,
column
,
cellValue
,
index
)
=>
{
return
index
+
1
;
},
},
{
label
:
"
窗口名称
"
,
prop
:
"
name
"
},
{
label
:
"
工作人员姓名
"
,
prop
:
"
name
"
},
{
label
:
"
编号
"
,
prop
:
"
fromn
um
"
},
{
label
:
"
工号
"
,
prop
:
"
workN
um
"
},
{
label
:
"
所属楼栋
"
,
prop
:
"
building
"
},
{
label
:
"
手机号码
"
,
prop
:
"
phoneNumber
"
},
{
label
:
"
所属楼层
"
,
prop
:
"
level
"
},
{
label
:
"
所属大厅
"
,
prop
:
"
salaName
"
},
{
label
:
"
所属部门
"
,
prop
:
"
deptName
"
},
// {
// {
// label: "操作",
// label: "操作",
// width: 24
0,
// width: 10
0,
// formatter: (row) => {
// formatter: (row) => {
// return (
// if (row.check) {
//
<
table
-
buttons
// return
<
span
style
=
"
cursor:pointer;color:#ff0000
"
>
已选中
<
/span>
;
// noAdd
// } else {
// row={row}
// return
<
span
style
=
"
cursor:pointer;color:#1890ff
"
>
选择
<
/span>
;
// onEdit={this.toEdit}
// }
// onView={this.toView}
// onDel={this.toDel}
// />
// );
// },
// },
// },
// },
],
],
},
},
}
};
},
},
}
}
;
</
script
>
</
script
>
src/views/window/perform/list.vue
View file @
ed11a2d2
...
@@ -108,14 +108,14 @@ export default {
...
@@ -108,14 +108,14 @@ export default {
name
:
"
ownerName
"
,
name
:
"
ownerName
"
,
type
:
"
text
"
,
type
:
"
text
"
,
width
:
200
,
width
:
200
,
label
:
"
窗口
负责人
姓名搜索
"
,
label
:
"
窗口
首席代表’
姓名搜索
"
,
fuzzy
:
false
,
fuzzy
:
false
,
},
},
],
],
columns
:
[
columns
:
[
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
label
:
"
窗口
负责人
"
,
prop
:
"
ownerName
"
},
{
label
:
"
窗口
首席代表’
"
,
prop
:
"
ownerName
"
},
{
{
label
:
"
登记年月
"
,
label
:
"
登记年月
"
,
...
...
src/views/window/workman/perform/list.vue
View file @
ed11a2d2
...
@@ -106,14 +106,14 @@ export default {
...
@@ -106,14 +106,14 @@ export default {
name
:
"
ownerName
"
,
name
:
"
ownerName
"
,
type
:
"
text
"
,
type
:
"
text
"
,
width
:
200
,
width
:
200
,
label
:
"
窗口
负责人
姓名搜索
"
,
label
:
"
窗口
首席代表’
姓名搜索
"
,
fuzzy
:
false
,
fuzzy
:
false
,
},
},
],
],
columns
:
[
columns
:
[
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
label
:
"
窗口
负责人
"
,
prop
:
"
ownerName
"
},
{
label
:
"
窗口
首席代表’
"
,
prop
:
"
ownerName
"
},
{
{
label
:
"
登记年月
"
,
label
:
"
登记年月
"
,
...
...
vue.config.js
View file @
ed11a2d2
...
@@ -8,8 +8,8 @@ module.exports = {
...
@@ -8,8 +8,8 @@ module.exports = {
hot
:
true
,
//自动保存
hot
:
true
,
//自动保存
proxy
:
{
proxy
:
{
"
/attendance
"
:
{
"
/attendance
"
:
{
//
target: 'http://192.168.0.98:11039',
target
:
'
http://192.168.0.98:11039
'
,
target
:
"
http://112.19.80.237:11039
"
,
//
target: "http://112.19.80.237:11039",
// target: 'http://localhost:17500',
// target: 'http://localhost:17500',
// target: "http://118.122.189.109:11039",
// target: "http://118.122.189.109:11039",
// target: 'http://10.102.252.13:11039',
// target: 'http://10.102.252.13:11039',
...
...
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