Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
D
db_qms_wx
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
刘怀志
db_qms_wx
Commits
470c143c
Commit
470c143c
authored
Mar 20, 2025
by
刘怀志
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(审批): 审批列表页完成
parent
d5f9039c
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
277 additions
and
29 deletions
+277
-29
base-data-approval.vue
components/home-approval/base-data-approval.vue
+144
-8
production-approval.vue
components/home-approval/production-approval.vue
+133
-21
No files found.
components/home-approval/base-data-approval.vue
View file @
470c143c
...
@@ -7,14 +7,50 @@
...
@@ -7,14 +7,50 @@
:scroll-with-animation=
"true"
>
:scroll-with-animation=
"true"
>
<view
v-for=
"(item,key) in noticeList"
:key=
"key"
style=
"display: flex;background-color: #ffffff"
>
<view
v-for=
"(item,key) in noticeList"
:key=
"key"
style=
"display: flex;background-color: #ffffff"
>
<!-- 原消息卡片模板 -->
<!-- 原消息卡片模板 -->
<view
class=
"noticeCard"
>
<view
class=
"noticeCard"
@
click=
"goDetail"
>
<view
class=
"noticeTop"
>
<view
class=
"noticeTop"
>
<view
class=
"titleClass"
>
基础数据审批
</view>
<view
class=
"titleClass"
>
<view
class=
"timeClass"
>
<img
:src=
"leftIconTwo"
/>
{{
parseTimeA
(
item
.
createDate
,
'{m
}
-{d
}
{h
}
:{i
}
:{s
}
'
)
}}
{{
getLabelByValue
(
tableUserFormList
,
item
.
processType
)
}}
</view>
<view
class=
"statusText"
:style=
"
{color: statusMap[item.status].color}">
{{
statusMap
[
item
.
status
].
text
}}
</view>
</view>
<view
class=
"subTitleClass"
>
<view
class=
"subRow"
>
<view
class=
"subTitle"
>
发起时间
</view>
<view
class=
"subContent"
>
{{
parseTimeA
(
item
.
createDate
,
'YYYY/MM/DD {h
}
:{i
}
:{s
}
'
)
}}
<
/view
>
<
/view
>
<
view
class
=
"subRow"
>
<
view
class
=
"subTitle"
>
发起人
<
/view
>
<
view
class
=
"subContent"
>
{{
item
.
initiateUserName
||
'-'
}}
{{
item
.
initiateDeptName
?
'·'
+
item
.
initiateDeptName
:
''
}}
<
/view
>
<
/view
>
<
view
class
=
"subRow"
>
<
view
class
=
"subTitle"
>
审批人
<
/view
>
<
view
class
=
"subContent"
>
{{
item
.
configApproveUserName
||
'-'
}}
<
/view
>
<
/view
>
<
view
class
=
"subRow"
>
<
view
class
=
"subTitle"
>
结束时间
<
/view
>
<
view
class
=
"subContent"
>
{{
parseTimeA
(
item
.
endDate
,
'YYYY/MM/DD {h
}
:{i
}
:{s
}
'
)
}}
<
/view
>
<
/view
>
<
/view
>
<
/view
>
<
/view
>
<
view
class
=
"subTitleClass"
>
{{
item
.
message
}}
<
/view
>
<
/view
>
<
/view
>
<
/view
>
<
/view
>
<!--
底部加载
-->
<!--
底部加载
-->
...
@@ -35,16 +71,50 @@
...
@@ -35,16 +71,50 @@
<
script
>
<
script
>
import
{
queryInstanceListAeByPage
}
from
'../../api/system/approve'
import
{
queryInstanceListAeByPage
}
from
'../../api/system/approve'
import
{
parseTime
}
from
'../../api/utils/ruoyi'
import
{
parseTime
}
from
'../../api/utils/ruoyi'
import
leftIconOne
from
"../../static/images/leftIconOne.png"
;
import
leftIconTwo
from
"../../static/images/leftIconTwo.png"
;
import
{
getDicts
}
from
"../../api/system/baseConfig"
;
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
statusMap
:
{
'2'
:
{
text
:
'已通过'
,
color
:
'#2B9603'
,
}
,
'0'
:
{
text
:
'草稿'
,
color
:
'grey'
,
}
,
'6'
:
{
text
:
'异常结束'
,
color
:
'#FF5F5F'
,
}
,
'7'
:
{
text
:
'已失效'
,
color
:
'#FF5F5F'
,
}
,
'10'
:
{
text
:
'待审批'
,
color
:
'#333399'
,
}
,
'5'
:
{
text
:
'已驳回'
,
color
:
'#FF5F5F'
,
}
,
'3'
:
{
text
:
'已驳回'
,
color
:
'#FF5F5F'
,
}
,
}
,
leftIconOne
,
leftIconTwo
,
queryNotice
:
{
queryNotice
:
{
page
:
1
,
page
:
1
,
rows
:
10
,
rows
:
10
,
mesType
:
'1'
,
mesType
:
'1'
,
processGroup
:
'1'
,
processGroup
:
'1'
,
completeStatus
:
false
}
,
}
,
defaultPageSize
:
10
,
defaultPageSize
:
10
,
// 底部加载
// 底部加载
...
@@ -55,10 +125,14 @@ export default {
...
@@ -55,10 +125,14 @@ export default {
nomore
:
'没有更多了'
nomore
:
'没有更多了'
}
,
}
,
noticeList
:
[],
noticeList
:
[],
tableUserFormList
:
[],
loading
:
true
,
loading
:
true
,
total
:
0
,
total
:
0
,
}
}
}
,
}
,
created
()
{
this
.
getList
()
}
,
mounted
()
{
mounted
()
{
this
.
loadData
()
this
.
loadData
()
}
,
}
,
...
@@ -71,6 +145,32 @@ export default {
...
@@ -71,6 +145,32 @@ export default {
}
,
}
,
}
,
}
,
methods
:
{
methods
:
{
goDetail
()
{
uni
.
navigateTo
({
url
:
'/pages/approval_detail/baseDetail?id=1'
}
)
}
,
/**
* 指定列表,根据值,取label
*/
getLabelByValue
(
list
,
value
,
key
=
'value'
,
label
=
'label'
)
{
const
item
=
list
.
find
(
item
=>
item
[
key
]
===
value
)
return
item
?
item
[
label
]
:
'-'
}
,
/** 查询字典数据列表 */
getList
()
{
getDicts
(
'table_user_from'
).
then
(
response
=>
{
// console.log("查询数据字段狗",response)
const
tableUserForm
=
response
.
data
for
(
const
item
of
tableUserForm
)
{
const
result
=
{
value
:
item
.
dictValue
,
label
:
item
.
dictLabel
}
this
.
tableUserFormList
.
push
(
result
)
}
}
)
}
,
async
loadData
()
{
async
loadData
()
{
this
.
loading
=
true
this
.
loading
=
true
const
res
=
await
queryInstanceListAeByPage
({
const
res
=
await
queryInstanceListAeByPage
({
...
@@ -168,16 +268,29 @@ export default {
...
@@ -168,16 +268,29 @@ export default {
display
:
flex
;
display
:
flex
;
justify
-
content
:
space
-
between
;
justify
-
content
:
space
-
between
;
border
-
bottom
:
2
rpx
solid
#
F2F2F2
;
border
-
bottom
:
2
rpx
solid
#
F2F2F2
;
padding
:
22
rpx
34
rpx
24
rpx
32
rpx
;
padding
:
22
rpx
34
rpx
24
rpx
0
;
}
}
.
titleClass
{
.
titleClass
{
display
:
flex
;
align
-
items
:
center
;
font
-
family
:
PingFangSC
,
PingFang
SC
;
font
-
family
:
PingFangSC
,
PingFang
SC
;
font
-
weight
:
500
;
font
-
weight
:
500
;
font
-
size
:
30
rpx
;
font
-
size
:
30
rpx
;
color
:
#
333399
;
color
:
#
111111
;
text
-
align
:
left
;
text
-
align
:
left
;
font
-
style
:
normal
;
font
-
style
:
normal
;
text
-
transform
:
none
;
text
-
transform
:
none
;
img
{
margin
-
right
:
22
rpx
;
}
}
.
statusText
{
font
-
family
:
PingFangSC
,
PingFang
SC
;
font
-
weight
:
500
;
font
-
size
:
28
rpx
;
text
-
align
:
right
;
font
-
style
:
normal
;
text
-
transform
:
none
;
}
}
.
subTitleClass
{
.
subTitleClass
{
font
-
family
:
PingFangSC
,
PingFang
SC
;
font
-
family
:
PingFangSC
,
PingFang
SC
;
...
@@ -189,6 +302,29 @@ export default {
...
@@ -189,6 +302,29 @@ export default {
text
-
transform
:
none
;
text
-
transform
:
none
;
padding
:
28
rpx
32
rpx
0
32
rpx
;
padding
:
28
rpx
32
rpx
0
32
rpx
;
}
}
.
subRow
{
display
:
flex
;
justify
-
content
:
space
-
between
;
margin
-
bottom
:
12
rpx
;
.
subTitle
{
font
-
family
:
PingFangSC
,
PingFang
SC
;
font
-
weight
:
400
;
font
-
size
:
28
rpx
;
color
:
#
9
A9A9A
;
text
-
align
:
left
;
font
-
style
:
normal
;
text
-
transform
:
none
;
}
.
subContent
{
font
-
family
:
PingFangSC
,
PingFang
SC
;
font
-
weight
:
400
;
font
-
size
:
28
rpx
;
color
:
#
222222
;
text
-
align
:
center
;
font
-
style
:
normal
;
text
-
transform
:
none
;
}
}
.
timeClass
{
.
timeClass
{
font
-
family
:
PingFangSC
,
PingFang
SC
;
font
-
family
:
PingFangSC
,
PingFang
SC
;
font
-
weight
:
400
;
font
-
weight
:
400
;
...
...
components/home-approval/production-approval.vue
View file @
470c143c
<!--生产信息审批-->
<
template
>
<
template
>
<scroll-view
<scroll-view
class=
"scroll-view"
class=
"scroll-view"
...
@@ -6,26 +7,52 @@
...
@@ -6,26 +7,52 @@
:scroll-with-animation=
"true"
>
:scroll-with-animation=
"true"
>
<view
v-for=
"(item,key) in noticeList"
:key=
"key"
style=
"display: flex;background-color: #ffffff"
>
<view
v-for=
"(item,key) in noticeList"
:key=
"key"
style=
"display: flex;background-color: #ffffff"
>
<!-- 原消息卡片模板 -->
<!-- 原消息卡片模板 -->
<view
class=
"noticeCard"
>
<view
class=
"noticeCard"
@
click=
"goDetail"
>
<view
class=
"noticeTop"
>
<view
class=
"noticeTop"
>
<view
class=
"titleClass"
>
生产信息审批
</view>
<view
class=
"titleClass"
>
<view
class=
"timeClass"
>
<!--
<img
:src=
"leftIconOne"
/>
-->
{{
parseTimeA
(
item
.
updateDate
,
'{m
}
-{d
}
{h
}
:{i
}
:{s
}
'
)
}}
{{
item
.
processName
}}
</view>
<view
class=
"statusText"
:style=
"
{color: statusMap[item.processStatus].color}">
{{
statusMap
[
item
.
processStatus
].
text
}}
</view>
</view>
</view>
</view>
<
view
class
=
"subTitleClass"
>
{{
item
.
message
}}
<
/view
>
<view
class=
"subTitleClass"
>
<
/view
>
<view
class=
"subRow"
>
<
/view
>
<view
class=
"subTitle"
>
<
view
v
-
if
=
"noticeList.length === 0"
class
=
"no-message"
>
发起时间
<
view
>
</view>
<
view
style
=
"font-size: 26rpx;font-weight: 400;color: #666666;line-height: 30rpx;margin-top: 36rpx"
>
<view
class=
"subContent"
>
<
text
>
{{
parseTimeA
(
item
.
initiateDate
,
'YYYY/MM/DD {h
}
:{i
}
:{s
}
'
)
}}
{{
'暂无消息'
}}
<
/view
>
<
/text
>
<
/view
>
<
view
class
=
"subRow"
>
<
view
class
=
"subTitle"
>
当前审批人
<
/view
>
<
view
class
=
"subContent"
>
{{
item
.
currentApproveUserName
||
'-'
}}
{{
item
.
currentApproveUserOrgName
?
'·'
+
item
.
currentApproveUserOrgName
:
''
}}
<
/view
>
<
/view
>
<
view
class
=
"subRow"
>
<
view
class
=
"subTitle"
>
审批人
<
/view
>
<
view
class
=
"subContent"
>
{{
item
.
approveUserName
||
'-'
}}
<
/view
>
<
/view
>
<
view
class
=
"subRow"
>
<
view
class
=
"subTitle"
>
结束时间
<
/view
>
<
view
class
=
"subContent"
>
{{
parseTimeA
(
item
.
completeDate
,
'YYYY/MM/DD {h
}
:{i
}
:{s
}
'
)
}}
<
/view
>
<
/view
>
<
/view
>
<
/view
>
<
/view
>
<
/view
>
<
/view
>
<
/view
>
<!--
底部加载
-->
<!--
底部加载
-->
<
view
v
-
show
=
"total > 0 && loadStatus !== 'loading'"
style
=
"text-align: center;padding-bottom: 5rpx;"
>
<
view
v
-
show
=
"total > 0 && loadStatus !== 'loading'"
style
=
"text-align: center;padding-bottom: 5rpx;"
>
<
u
-
loadmore
<
u
-
loadmore
...
@@ -44,18 +71,38 @@
...
@@ -44,18 +71,38 @@
<
script
>
<
script
>
import
{
queryInstanceByPage
}
from
'../../api/system/approve'
import
{
queryInstanceByPage
}
from
'../../api/system/approve'
import
{
parseTime
}
from
'../../api/utils/ruoyi'
import
{
parseTime
}
from
'../../api/utils/ruoyi'
import
{
getDicts
}
from
"../../api/system/baseConfig"
;
import
leftIconOne
from
"../../static/images/leftIconOne.png"
;
import
leftIconTwo
from
"../../static/images/leftIconTwo.png"
;
export
default
{
export
default
{
props
:
[
'queryParams'
],
data
()
{
data
()
{
return
{
return
{
statusMap
:
{
'1'
:
{
text
:
'已通过'
,
color
:
'#2B9603'
,
}
,
'3'
:
{
text
:
'异常结束'
,
color
:
'#FF5F5F'
,
}
,
'0'
:
{
text
:
'待审批'
,
color
:
'#333399'
,
}
,
'2'
:
{
text
:
'已驳回'
,
color
:
'#FF5F5F'
,
}
,
}
,
leftIconOne
,
leftIconTwo
,
queryNotice
:
{
queryNotice
:
{
page
:
1
,
page
:
1
,
rows
:
10
,
rows
:
10
,
mesType
:
'1'
,
mesType
:
'1'
,
processGroup
:
'1'
,
processGroup
:
'1'
,
running
:
true
,
completeStatus
:
false
}
,
}
,
defaultPageSize
:
10
,
defaultPageSize
:
10
,
// 底部加载
// 底部加载
...
@@ -66,10 +113,14 @@ export default {
...
@@ -66,10 +113,14 @@ export default {
nomore
:
'没有更多了'
nomore
:
'没有更多了'
}
,
}
,
noticeList
:
[],
noticeList
:
[],
tableUserFormList
:
[],
loading
:
true
,
loading
:
true
,
total
:
0
,
total
:
0
,
}
}
}
,
}
,
created
()
{
this
.
getList
()
}
,
mounted
()
{
mounted
()
{
this
.
loadData
()
this
.
loadData
()
}
,
}
,
...
@@ -82,7 +133,32 @@ export default {
...
@@ -82,7 +133,32 @@ export default {
}
,
}
,
}
,
}
,
methods
:
{
methods
:
{
goDetail
()
{
uni
.
navigateTo
({
url
:
'/pages/approval_detail/baseDetail?id=1'
}
)
}
,
/**
* 指定列表,根据值,取label
*/
getLabelByValue
(
list
,
value
,
key
=
'value'
,
label
=
'label'
)
{
const
item
=
list
.
find
(
item
=>
item
[
key
]
===
value
)
return
item
?
item
[
label
]
:
'-'
}
,
/** 查询字典数据列表 */
getList
()
{
getDicts
(
'table_user_from'
).
then
(
response
=>
{
// console.log("查询数据字段狗",response)
const
tableUserForm
=
response
.
data
for
(
const
item
of
tableUserForm
)
{
const
result
=
{
value
:
item
.
dictValue
,
label
:
item
.
dictLabel
}
this
.
tableUserFormList
.
push
(
result
)
}
}
)
}
,
async
loadData
()
{
async
loadData
()
{
this
.
loading
=
true
this
.
loading
=
true
const
res
=
await
queryInstanceByPage
({
const
res
=
await
queryInstanceByPage
({
...
@@ -114,7 +190,6 @@ export default {
...
@@ -114,7 +190,6 @@ export default {
<
style
scoped
lang
=
"scss"
>
<
style
scoped
lang
=
"scss"
>
.
scroll
-
view
{
.
scroll
-
view
{
height
:
960
rpx
;
height
:
960
rpx
;
overflow
:
auto
;
}
}
.
no
-
message
{
.
no
-
message
{
text
-
align
:
center
;
text
-
align
:
center
;
...
@@ -183,16 +258,30 @@ export default {
...
@@ -183,16 +258,30 @@ export default {
display
:
flex
;
display
:
flex
;
justify
-
content
:
space
-
between
;
justify
-
content
:
space
-
between
;
border
-
bottom
:
2
rpx
solid
#
F2F2F2
;
border
-
bottom
:
2
rpx
solid
#
F2F2F2
;
padding
:
22
rpx
34
rpx
24
rpx
32
rpx
;
padding
:
22
rpx
34
rpx
24
rpx
0
;
}
}
.
titleClass
{
.
titleClass
{
display
:
flex
;
align
-
items
:
center
;
font
-
family
:
PingFangSC
,
PingFang
SC
;
font
-
family
:
PingFangSC
,
PingFang
SC
;
font
-
weight
:
500
;
font
-
weight
:
500
;
font
-
size
:
30
rpx
;
font
-
size
:
30
rpx
;
color
:
#
333399
;
color
:
#
111111
;
text
-
align
:
left
;
text
-
align
:
left
;
font
-
style
:
normal
;
font
-
style
:
normal
;
text
-
transform
:
none
;
text
-
transform
:
none
;
padding
-
left
:
22
rpx
;
img
{
margin
-
right
:
22
rpx
;
}
}
.
statusText
{
font
-
family
:
PingFangSC
,
PingFang
SC
;
font
-
weight
:
500
;
font
-
size
:
28
rpx
;
text
-
align
:
right
;
font
-
style
:
normal
;
text
-
transform
:
none
;
}
}
.
subTitleClass
{
.
subTitleClass
{
font
-
family
:
PingFangSC
,
PingFang
SC
;
font
-
family
:
PingFangSC
,
PingFang
SC
;
...
@@ -204,6 +293,29 @@ export default {
...
@@ -204,6 +293,29 @@ export default {
text
-
transform
:
none
;
text
-
transform
:
none
;
padding
:
28
rpx
32
rpx
0
32
rpx
;
padding
:
28
rpx
32
rpx
0
32
rpx
;
}
}
.
subRow
{
display
:
flex
;
justify
-
content
:
space
-
between
;
margin
-
bottom
:
12
rpx
;
.
subTitle
{
font
-
family
:
PingFangSC
,
PingFang
SC
;
font
-
weight
:
400
;
font
-
size
:
28
rpx
;
color
:
#
9
A9A9A
;
text
-
align
:
left
;
font
-
style
:
normal
;
text
-
transform
:
none
;
}
.
subContent
{
font
-
family
:
PingFangSC
,
PingFang
SC
;
font
-
weight
:
400
;
font
-
size
:
28
rpx
;
color
:
#
222222
;
text
-
align
:
center
;
font
-
style
:
normal
;
text
-
transform
:
none
;
}
}
.
timeClass
{
.
timeClass
{
font
-
family
:
PingFangSC
,
PingFang
SC
;
font
-
family
:
PingFangSC
,
PingFang
SC
;
font
-
weight
:
400
;
font
-
weight
:
400
;
...
...
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