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
2f56db0a
Commit
2f56db0a
authored
Mar 19, 2025
by
刘怀志
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(审批): 审批列表接口对接1
parent
78bb047e
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
860 additions
and
668 deletions
+860
-668
approve.js
api/system/approve.js
+26
-0
base-data-approval.vue
components/base-data-approval.vue
+286
-0
mineNavbar.vue
components/mine-navbar/mineNavbar.vue
+1
-5
production-approval.vue
components/production-approval.vue
+300
-0
index.vue
pages/index.vue
+240
-659
index.vue
pages/message/index.vue
+6
-3
index.vue
pages/mine/index.vue
+1
-1
No files found.
api/system/approve.js
0 → 100644
View file @
2f56db0a
import
request
from
'@/utils/request'
/**
* Ae流程实例 - 分页查询
* @param query
* @returns {*}
*/
export
function
queryInstanceListAeByPage
(
query
)
{
return
request
({
url
:
'/sysprocessinstance/page/ae'
,
method
:
'get'
,
params
:
query
})
}
/**
* 查询流程列表
* @param params
* @returns {AxiosPromise}
*/
export
function
queryInstanceByPage
(
params
)
{
return
request
({
url
:
`/process/instance/list`
,
method
:
'get'
,
params
})
}
\ No newline at end of file
components/base-data-approval.vue
0 → 100644
View file @
2f56db0a
<
template
>
<scroll-view
class=
"scroll-view"
scroll-y=
"true"
@
scrolltolower=
"scrolltolower"
:scroll-with-animation=
"true"
>
<view
v-for=
"(item,key) in noticeList"
:key=
"key"
style=
"display: flex;background-color: #ffffff"
>
<!-- 原消息卡片模板 -->
<view
class=
"noticeCard"
>
<view
class=
"noticeTop"
>
<view
class=
"titleClass"
>
基础数据审批
</view>
<view
class=
"timeClass"
>
{{
parseTimeA
(
item
.
createDate
,
'{m
}
-{d
}
{h
}
:{i
}
:{s
}
'
)
}}
<
/view
>
<
/view
>
<
view
class
=
"subTitleClass"
>
{{
item
.
message
}}
<
/view
>
<
/view
>
<
/view
>
<!--
底部加载
-->
<
view
v
-
show
=
"total > 0 && loadStatus !== 'loading'"
style
=
"text-align: center;padding-bottom: 5rpx;"
>
<
u
-
loadmore
:
status
=
"loadStatus"
:
loadmore
-
text
=
"loadText.loadmore"
:
loading
-
text
=
"loadText.loading"
:
nomore
-
text
=
"loadText.nomore"
/>
<
/view
>
<
view
v
-
show
=
"loadStatus === 'loading'"
style
=
"text-align: center"
>
<!--
<
image
src
=
"../../static/images/home/loading.gif"
style
=
"width: 50rpx;height: 60rpx;"
/>
-->
<
/view
>
<
/scroll-view
>
<
/template
>
<
script
>
import
{
queryInstanceListAeByPage
}
from
'../api/system/approve'
import
{
parseTime
}
from
'../api/utils/ruoyi'
export
default
{
props
:
[
'queryParams'
],
data
()
{
return
{
queryNotice
:
{
page
:
1
,
rows
:
10
,
mesType
:
'1'
,
processGroup
:
'1'
,
running
:
true
,
completeStatus
:
false
}
,
defaultPageSize
:
10
,
// 底部加载
loadStatus
:
'loadmore'
,
loadText
:
{
loadmore
:
'上滑加载更多'
,
loading
:
'努力加载中'
,
nomore
:
'没有更多了'
}
,
noticeList
:
[],
loading
:
true
,
total
:
0
,
}
}
,
mounted
()
{
this
.
loadData
()
}
,
computed
:
{
// 计算属性
parseTimeA
()
{
return
(
time
)
=>
{
return
parseTime
(
time
,
'{m
}
-{d
}
{h
}
:{i
}
:{s
}
'
)
}
}
,
}
,
methods
:
{
async
loadData
()
{
this
.
loading
=
true
const
res
=
await
queryInstanceListAeByPage
({
...
this
.
queryNotice
,
}
)
this
.
noticeList
=
[...
res
.
data
.
records
]
this
.
total
=
res
.
data
.
total
if
(
this
.
queryNotice
.
rows
*
this
.
queryNotice
.
page
>=
this
.
total
)
{
this
.
loadStatus
=
'nomore'
}
this
.
loading
=
false
}
,
// 处理滚动加载
scrolltolower
()
{
this
.
loadStatus
=
'loading'
if
(
this
.
queryNotice
.
rows
*
this
.
queryNotice
.
page
>=
this
.
total
)
{
this
.
loadStatus
=
'nomore'
}
else
{
this
.
queryNotice
.
rows
+=
this
.
defaultPageSize
this
.
loadData
()
this
.
loadStatus
=
'loadmore'
}
}
}
,
}
<
/script
>
<
style
scoped
lang
=
"scss"
>
.
scroll
-
view
{
height
:
960
rpx
;
}
.
no
-
message
{
text
-
align
:
center
;
height
:
calc
(
100
vh
-
350
rpx
);
display
:
flex
;
justify
-
content
:
center
;
align
-
items
:
center
;
}
.
topTips
{
width
:
100
%
;
height
:
80
rpx
;
background
-
color
:
#
ff9900
;
font
-
size
:
26
rpx
;
font
-
family
:
PingFang
SC
-
Medium
,
PingFang
SC
;
font
-
weight
:
500
;
color
:
#
FFF
;
text
-
align
:
center
;
padding
-
top
:
20
rpx
;
}
.
notice
-
container
{
width
:
100
%
;
margin
-
top
:
542
rpx
;
background
-
color
:
#
fff
;
overflow
-
y
:
hidden
;
}
.
topContent
{
display
:
flex
;
padding
-
top
:
32
rpx
;
padding
-
bottom
:
32
rpx
;
padding
-
left
:
32
rpx
;
background
-
color
:
#
f0f0f0
;
.
topSelect
{
width
:
588
rpx
;
height
:
88
rpx
;
}
.
topButton
{
margin
-
left
:
32
rpx
;
margin
-
top
:
22
rpx
;
font
-
size
:
34
rpx
;
font
-
family
:
Source
Han
Sans
CN
-
Regular
,
Source
Han
Sans
CN
;
font
-
weight
:
400
;
color
:
#
343744
;
}
}
.
topContent_read
{
display
:
flex
;
padding
:
34
rpx
32
rpx
;
background
-
color
:
#
f0f0f0
;
font
-
size
:
34
rpx
;
font
-
family
:
Source
Han
Sans
CN
-
Bold
,
Source
Han
Sans
CN
;
font
-
weight
:
bold
;
line
-
height
:
40
rpx
;
.
fontColor
{
background
-
image
:
-
webkit
-
linear
-
gradient
(
top
,
#
02
A7BA
,
#
62
AE79
);
-
webkit
-
background
-
clip
:
text
;
-
webkit
-
text
-
fill
-
color
:
transparent
;
}
}
.
noticeCard
{
width
:
100
%
;
background
-
color
:
#
F9F9F9
;
margin
:
20
rpx
22
rpx
0
20
rpx
;
padding
-
bottom
:
32
rpx
;
border
-
radius
:
15
rpx
;
.
noticeTop
{
display
:
flex
;
justify
-
content
:
space
-
between
;
border
-
bottom
:
2
rpx
solid
#
F2F2F2
;
padding
:
22
rpx
34
rpx
24
rpx
32
rpx
;
}
.
titleClass
{
font
-
family
:
PingFangSC
,
PingFang
SC
;
font
-
weight
:
500
;
font
-
size
:
30
rpx
;
color
:
#
333399
;
text
-
align
:
left
;
font
-
style
:
normal
;
text
-
transform
:
none
;
}
.
subTitleClass
{
font
-
family
:
PingFangSC
,
PingFang
SC
;
font
-
weight
:
400
;
font
-
size
:
28
rpx
;
color
:
#
9
A9A9A
;
text
-
align
:
left
;
font
-
style
:
normal
;
text
-
transform
:
none
;
padding
:
28
rpx
32
rpx
0
32
rpx
;
}
.
timeClass
{
font
-
family
:
PingFangSC
,
PingFang
SC
;
font
-
weight
:
400
;
font
-
size
:
28
rpx
;
color
:
#
666666
;
text
-
align
:
right
;
font
-
style
:
normal
;
text
-
transform
:
none
;
}
}
// 有导航栏后 防止滑到最上面
.
scroll
-
y
{
height
:
calc
(
100
vh
-
88
px
)
}
::
v
-
deep
.
u
-
line
{
border
-
bottom
-
width
:
3
px
!
important
;
}
::
v
-
deep
.
u
-
subsection
{
background
-
color
:
#
fff
}
.
checkView
{
width
:
76
rpx
;
align
-
content
:
center
;
margin
-
bottom
:
32
rpx
;
//border-radius: 10rpx;
//margin-top: 20rpx;
//position: absolute;
}
::
v
-
deep
.
u
-
checkbox
-
group
{
//background-color: red;
//padding-left: 16rpx;
height
:
80
rpx
;
position
:
relative
;
top
:
50
%
;
/*偏移*/
transform
:
translateY
(
-
50
%
);
}
::
v
-
deep
.
u
-
checkbox
{
margin
:
auto
;
width
:
64
rpx
;
height
:
64
rpx
;
}
::
v
-
deep
.
u
-
checkbox__icon
-
wrap
{
margin
-
left
:
25
rpx
;
margin
-
right
:
0
!
important
;
}
// 顶部选择样式
::
v
-
deep
.
u
-
subsection__bar
{
background
:
linear
-
gradient
(
180
deg
,
#
02
A7BA
0
%
,
#
62
AE79
100
%
);
}
::
v
-
deep
.
u
-
subsection__item
{
border
:
none
!
important
;
//border-color: none;
}
::
v
-
deep
.
u
-
subsection
{
height
:
88
rpx
!
important
;
border
-
radius
:
16
rpx
16
rpx
16
rpx
16
rpx
;
}
::
v
-
deep
.
u
-
subsection__item__text
{
font
-
size
:
34
rpx
!
important
;
font
-
family
:
Source
Han
Sans
CN
-
Bold
,
Source
Han
Sans
CN
;
font
-
weight
:
400
;
}
// 卡片前单选
::
v
-
deep
.
u
-
checkbox
{
margin
-
right
:
0
!
important
;
}
::
v
-
deep
.
u
-
loading
-
page__warpper__loading
-
icon__img
{
width
:
90
rpx
!
important
;
height
:
90
rpx
!
important
;
}
::
v
-
deep
.
u
-
tabs__wrapper__nav__item__text
{
font
-
family
:
PingFangSC
,
PingFang
SC
;
font
-
weight
:
500
;
font
-
size
:
28
rpx
;
}
.
top
-
tabs
{
display
:
flex
;
justify
-
content
:
center
;
align
-
items
:
center
;
margin
-
top
:
20
rpx
;
border
-
bottom
:
2
rpx
solid
#
F2F2F2
;
::
v
-
deep
.
u
-
tabs
{
width
:
60
%
;
}
}
//::v-deep .u-subsection
{
// background: black;
//
}
<
/style>
\ No newline at end of file
components/mine-navbar/mineNavbar.vue
View file @
2f56db0a
<
template
>
<
template
>
<!--自定义头部-->
<!--自定义头部-->
<view
class=
"mine-navbar"
:class=
"
{'u-fixed': fixed}"
>
<view
class=
"mine-navbar"
>
<u-navbar
<u-navbar
:title=
"title"
:title=
"title"
:title-width=
"titleWidth"
:title-width=
"titleWidth"
...
@@ -242,10 +242,6 @@ export default {
...
@@ -242,10 +242,6 @@ export default {
background-clip
:
border-box
;
background-clip
:
border-box
;
height
:
440rpx
;
height
:
440rpx
;
background
:
url("/static/images/top-background.png")
center
/
cover
no-repeat
;
background
:
url("/static/images/top-background.png")
center
/
cover
no-repeat
;
position
:
fixed
;
left
:
0
;
right
:
0
;
top
:
0
;
z-index
:
11
;
z-index
:
11
;
.bar-detail
{
.bar-detail
{
margin-top
:
78rpx
;
margin-top
:
78rpx
;
...
...
components/production-approval.vue
0 → 100644
View file @
2f56db0a
<
template
>
<scroll-view
class=
"scroll-view"
scroll-y=
"true"
@
scrolltolower=
"scrolltolower"
:scroll-with-animation=
"true"
>
<view
v-for=
"(item,key) in noticeList"
:key=
"key"
style=
"display: flex;background-color: #ffffff"
>
<!-- 原消息卡片模板 -->
<view
class=
"noticeCard"
>
<view
class=
"noticeTop"
>
<view
class=
"titleClass"
>
生产信息审批
</view>
<view
class=
"timeClass"
>
{{
parseTimeA
(
item
.
updateDate
,
'{m
}
-{d
}
{h
}
:{i
}
:{s
}
'
)
}}
<
/view
>
<
/view
>
<
view
class
=
"subTitleClass"
>
{{
item
.
message
}}
<
/view
>
<
/view
>
<
/view
>
<
view
v
-
if
=
"noticeList.length === 0"
class
=
"no-message"
>
<
view
>
<
view
style
=
"font-size: 26rpx;font-weight: 400;color: #666666;line-height: 30rpx;margin-top: 36rpx"
>
<
text
>
{{
'暂无消息'
}}
<
/text
>
<
/view
>
<
/view
>
<
/view
>
<!--
底部加载
-->
<
view
v
-
show
=
"total > 0 && loadStatus !== 'loading'"
style
=
"text-align: center;padding-bottom: 5rpx;"
>
<
u
-
loadmore
:
status
=
"loadStatus"
:
loadmore
-
text
=
"loadText.loadmore"
:
loading
-
text
=
"loadText.loading"
:
nomore
-
text
=
"loadText.nomore"
/>
<
/view
>
<
view
v
-
show
=
"loadStatus === 'loading'"
style
=
"text-align: center"
>
<!--
<
image
src
=
"../../static/images/home/loading.gif"
style
=
"width: 50rpx;height: 60rpx;"
/>
-->
<
/view
>
<
/scroll-view
>
<
/template
>
<
script
>
import
{
queryInstanceByPage
}
from
'../api/system/approve'
import
{
parseTime
}
from
'../api/utils/ruoyi'
export
default
{
props
:
[
'queryParams'
],
data
()
{
return
{
queryNotice
:
{
page
:
1
,
rows
:
10
,
mesType
:
'1'
,
processGroup
:
'1'
,
running
:
true
,
completeStatus
:
false
}
,
defaultPageSize
:
10
,
// 底部加载
loadStatus
:
'loadmore'
,
loadText
:
{
loadmore
:
'上滑加载更多'
,
loading
:
'努力加载中'
,
nomore
:
'没有更多了'
}
,
noticeList
:
[],
loading
:
true
,
total
:
0
,
}
}
,
mounted
()
{
this
.
loadData
()
}
,
computed
:
{
// 计算属性
parseTimeA
()
{
return
(
time
)
=>
{
return
parseTime
(
time
,
'{m
}
-{d
}
{h
}
:{i
}
:{s
}
'
)
}
}
,
}
,
methods
:
{
async
loadData
()
{
this
.
loading
=
true
const
res
=
await
queryInstanceByPage
({
...
this
.
queryNotice
,
}
)
this
.
noticeList
=
[...
res
.
data
.
records
]
this
.
total
=
res
.
data
.
total
if
(
this
.
queryNotice
.
rows
*
this
.
queryNotice
.
page
>=
this
.
total
)
{
this
.
loadStatus
=
'nomore'
}
this
.
loading
=
false
}
,
// 处理滚动加载
scrolltolower
()
{
this
.
loadStatus
=
'loading'
if
(
this
.
queryNotice
.
rows
*
this
.
queryNotice
.
page
>=
this
.
total
)
{
this
.
loadStatus
=
'nomore'
}
else
{
this
.
queryNotice
.
rows
+=
this
.
defaultPageSize
this
.
loadData
()
this
.
loadStatus
=
'loadmore'
}
}
}
,
}
<
/script
>
<
style
scoped
lang
=
"scss"
>
.
scroll
-
view
{
height
:
960
rpx
;
overflow
:
auto
;
}
.
no
-
message
{
text
-
align
:
center
;
height
:
calc
(
100
vh
-
350
rpx
);
display
:
flex
;
justify
-
content
:
center
;
align
-
items
:
center
;
}
.
topTips
{
width
:
100
%
;
height
:
80
rpx
;
background
-
color
:
#
ff9900
;
font
-
size
:
26
rpx
;
font
-
family
:
PingFang
SC
-
Medium
,
PingFang
SC
;
font
-
weight
:
500
;
color
:
#
FFF
;
text
-
align
:
center
;
padding
-
top
:
20
rpx
;
}
.
notice
-
container
{
width
:
100
%
;
margin
-
top
:
542
rpx
;
background
-
color
:
#
fff
;
overflow
-
y
:
hidden
;
}
.
topContent
{
display
:
flex
;
padding
-
top
:
32
rpx
;
padding
-
bottom
:
32
rpx
;
padding
-
left
:
32
rpx
;
background
-
color
:
#
f0f0f0
;
.
topSelect
{
width
:
588
rpx
;
height
:
88
rpx
;
}
.
topButton
{
margin
-
left
:
32
rpx
;
margin
-
top
:
22
rpx
;
font
-
size
:
34
rpx
;
font
-
family
:
Source
Han
Sans
CN
-
Regular
,
Source
Han
Sans
CN
;
font
-
weight
:
400
;
color
:
#
343744
;
}
}
.
topContent_read
{
display
:
flex
;
padding
:
34
rpx
32
rpx
;
background
-
color
:
#
f0f0f0
;
font
-
size
:
34
rpx
;
font
-
family
:
Source
Han
Sans
CN
-
Bold
,
Source
Han
Sans
CN
;
font
-
weight
:
bold
;
line
-
height
:
40
rpx
;
.
fontColor
{
background
-
image
:
-
webkit
-
linear
-
gradient
(
top
,
#
02
A7BA
,
#
62
AE79
);
-
webkit
-
background
-
clip
:
text
;
-
webkit
-
text
-
fill
-
color
:
transparent
;
}
}
.
noticeCard
{
width
:
100
%
;
background
-
color
:
#
F9F9F9
;
margin
:
20
rpx
22
rpx
0
20
rpx
;
padding
-
bottom
:
32
rpx
;
border
-
radius
:
15
rpx
;
.
noticeTop
{
display
:
flex
;
justify
-
content
:
space
-
between
;
border
-
bottom
:
2
rpx
solid
#
F2F2F2
;
padding
:
22
rpx
34
rpx
24
rpx
32
rpx
;
}
.
titleClass
{
font
-
family
:
PingFangSC
,
PingFang
SC
;
font
-
weight
:
500
;
font
-
size
:
30
rpx
;
color
:
#
333399
;
text
-
align
:
left
;
font
-
style
:
normal
;
text
-
transform
:
none
;
}
.
subTitleClass
{
font
-
family
:
PingFangSC
,
PingFang
SC
;
font
-
weight
:
400
;
font
-
size
:
28
rpx
;
color
:
#
9
A9A9A
;
text
-
align
:
left
;
font
-
style
:
normal
;
text
-
transform
:
none
;
padding
:
28
rpx
32
rpx
0
32
rpx
;
}
.
timeClass
{
font
-
family
:
PingFangSC
,
PingFang
SC
;
font
-
weight
:
400
;
font
-
size
:
28
rpx
;
color
:
#
666666
;
text
-
align
:
right
;
font
-
style
:
normal
;
text
-
transform
:
none
;
}
}
// 有导航栏后 防止滑到最上面
.
scroll
-
y
{
height
:
calc
(
100
vh
-
88
px
)
}
::
v
-
deep
.
u
-
line
{
border
-
bottom
-
width
:
3
px
!
important
;
}
::
v
-
deep
.
u
-
subsection
{
background
-
color
:
#
fff
}
.
checkView
{
width
:
76
rpx
;
align
-
content
:
center
;
margin
-
bottom
:
32
rpx
;
//border-radius: 10rpx;
//margin-top: 20rpx;
//position: absolute;
}
::
v
-
deep
.
u
-
checkbox
-
group
{
//background-color: red;
//padding-left: 16rpx;
height
:
80
rpx
;
position
:
relative
;
top
:
50
%
;
/*偏移*/
transform
:
translateY
(
-
50
%
);
}
::
v
-
deep
.
u
-
checkbox
{
margin
:
auto
;
width
:
64
rpx
;
height
:
64
rpx
;
}
::
v
-
deep
.
u
-
checkbox__icon
-
wrap
{
margin
-
left
:
25
rpx
;
margin
-
right
:
0
!
important
;
}
// 顶部选择样式
::
v
-
deep
.
u
-
subsection__bar
{
background
:
linear
-
gradient
(
180
deg
,
#
02
A7BA
0
%
,
#
62
AE79
100
%
);
}
::
v
-
deep
.
u
-
subsection__item
{
border
:
none
!
important
;
//border-color: none;
}
::
v
-
deep
.
u
-
subsection
{
height
:
88
rpx
!
important
;
border
-
radius
:
16
rpx
16
rpx
16
rpx
16
rpx
;
}
::
v
-
deep
.
u
-
subsection__item__text
{
font
-
size
:
34
rpx
!
important
;
font
-
family
:
Source
Han
Sans
CN
-
Bold
,
Source
Han
Sans
CN
;
font
-
weight
:
400
;
}
// 卡片前单选
::
v
-
deep
.
u
-
checkbox
{
margin
-
right
:
0
!
important
;
}
::
v
-
deep
.
u
-
loading
-
page__warpper__loading
-
icon__img
{
width
:
90
rpx
!
important
;
height
:
90
rpx
!
important
;
}
::
v
-
deep
.
u
-
tabs__wrapper__nav__item__text
{
font
-
family
:
PingFangSC
,
PingFang
SC
;
font
-
weight
:
500
;
font
-
size
:
28
rpx
;
}
.
top
-
tabs
{
display
:
flex
;
justify
-
content
:
center
;
align
-
items
:
center
;
margin
-
top
:
20
rpx
;
border
-
bottom
:
2
rpx
solid
#
F2F2F2
;
::
v
-
deep
.
u
-
tabs
{
width
:
60
%
;
}
}
//::v-deep .u-subsection
{
// background: black;
//
}
<
/style>
\ No newline at end of file
pages/index.vue
View file @
2f56db0a
<
template
>
<
template
>
<view
class=
"service"
:style=
"
{backgroundImage: `url(${baseUrl}${backImage})`}">
<view
style=
"background-color: #fff;overflow: hidden"
>
<ya-navbar
title=
"DHEC QMS"
:left-icon=
"baseUrl+'/tmt-pic/pet-app/home_icon_dingwei@2x.png'"
:left-text=
"homeAdress"
:title-style=
"
{color: '#FFFFFF',fontSize: '40rpx',fontWeight: 'bold'}" />
<mine-navbar
title=
"DHEC QMS"
/>
<!--
<view
class=
"topAdress"
>
-->
<view
class=
"notice-container"
>
<!--
<image
:src=
"baseUrl+'/tmt-pic/pet-app/home_icon_dingwei@2x.png'"
style=
"width: 40rpx;height: 40rpx;"
/>
-->
<!--
<text-->
<!--顶部选择-->
<!-- style="font-size: 30rpx;font-weight: 500;color: #FFFFFF;line-height: 36rpx;margin-left: 16rpx; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;max-width: 200rpx;"-->
<view
class=
"top-tabs"
>
<!-- >-->
<u-tabs
:list=
"list1"
lineWidth=
"90"
<!--
{{
homeAdress
}}
-->
lineColor=
"#333399"
<!--
</text>
-->
:activeStyle=
"
{
<!--
</view>
-->
color: '#333399',
<scroll-view
class=
"scroll-y"
scroll-y
>
}"
<div
class=
"banner"
:style=
"
{backgroundImage: `url(${baseUrl}${backBanner})`}">
:inactiveStyle="{
<div
class=
"content"
>
color: '#111111'}"
<view
style=
"width: 100%;"
>
@click="clickTabs"
<swiper
>
</u-tabs>
class=
"swiper"
</view>
previous-margin=
"30"
next-margin=
"30"
<!-- 动态加载子组件 -->
circular
<component
:interval=
"3000"
:is=
"queryNotice.mesType === '1' ? 'BaseDataApproval' : 'ProductionApproval'"
:autoplay=
"true"
:key=
"queryNotice.mesType"
bg-color=
""
:queryParams=
"queryNotice"
:current=
"current"
:indicator-dots=
"true"
indicator-color=
"rgba(2,167,186,0.24)"
indicator-active-color=
"#02A7BA"
@
animationfinish=
"swiperChange"
>
<swiper-item
v-for=
"(item,index) in list"
:key=
"index"
>
<view
:class=
"[index === current ?'swiper-item':'swiper-item-no']"
@
click=
"onswiper(index)"
>
<image
:src=
"item.img"
style=
"height: 340rpx;border-radius: 48rpx 48rpx 48rpx 48rpx;"
/>
</view>
</swiper-item>
</swiper>
</view>
<view
style=
"display: flex;margin-top: 20rpx;"
>
<view
class=
"nav-bar"
@
click=
"openDiolog"
>
<image
:src=
"baseUrl+'/tmt-pic/pet-app/home_icon_guahao@2x.png'"
style=
"width: 140rpx;height: 140rpx;"
/>
<text
class=
"title"
>
预约挂号
</text>
</view>
<view
class=
"nav-bar"
@
click=
"toastaction"
>
<image
:src=
"baseUrl+'/tmt-pic/pet-app/home_icon_yimiao@2x.png'"
style=
"width: 140rpx;height: 140rpx;"
/>
<text
class=
"title"
>
预约疫苗
</text>
</view>
<view
class=
"nav-bar"
@
click=
"toastaction"
>
<image
:src=
"baseUrl+'/tmt-pic/pet-app/home_icon_fuwu@2x.png'"
style=
"width: 140rpx;height: 140rpx;"
/>
<text
class=
"title"
>
预约服务
</text>
</view>
<view
class=
"nav-bar"
@
click=
"toastaction"
>
<image
:src=
"baseUrl+'/tmt-pic/pet-app/home_icon_yiyuan@2x.png'"
style=
"width: 140rpx;height: 140rpx;"
/>
<text
class=
"title"
>
宠物医院
</text>
</view>
</view>
<view
style=
"padding: 64rpx 32rpx 32rpx 32rpx;"
>
<text
style=
"font-size: 34rpx;font-weight: 700;color: #343744;line-height: 40rpx;"
>
最近事项
</text>
<view
v-if=
"expectListLength>0"
style=
"float: right;display: flex;"
@
click=
"goExpect"
>
<text
style=
"color: #666666;font-size: 24rpx;"
>
全部
</text>
<u-icon
name=
"arrow-right"
color=
"#666666"
size=
"12"
/>
</view>
</view>
<view>
<view
v-if=
"expectListLength>0"
style=
"overflow-x: scroll;width: 100%;overflow-y: hidden"
>
<view
style=
"height: 320rpx;display: flex;"
>
<view
v-for=
"(item,index) in expectList"
style=
"height: 100%;"
>
<view
:class=
"
{'appointItem': item.expectType==='1', 'serviceItem': item.expectType==='2', 'vaccinumItem': item.expectType==='3','appointItem': item.expectType==='0'}"
:style="{ marginRight: expectList.length===index+1 ? '32rpx' :'0'}"
>
<view>
<text
class=
"waite-title"
>
{{
item
.
hosName
||
'-'
}}
</text>
</view>
<view
style=
"padding-top: 18rpx;"
>
<text
class=
"waite-date"
>
{{
item
.
visitDate
||
'-'
}}
{{
item
.
visitTime
||
'-'
}}
</text>
</view>
<view
style=
"padding-top: 16rpx;display: flex;align-items: center;"
>
<image
:src=
"baseUrl+item.picture"
style=
"width: 64rpx;height: 64rpx;border-radius: 16rpx 16rpx 16rpx 16rpx;"
/>
<text
class=
"waite-petName"
>
{{
item
.
petName
||
'-'
}}
</text>
<text
class=
"waite-pet"
>
•
{{
item
.
petAge
||
'-'
}}
</text>
</view>
<view
v-if=
"item.expectType==='1'||item.expectType==='0'"
class=
"eventImage"
>
<image
:src=
"baseUrl+'/tmt-pic/pet-app/home_img_shixiang1@2x.png'"
style=
"width: 100%;height: 100%;"
/>
</view>
<view
v-else-if=
"item.expectType==='2'"
class=
"eventImage"
>
<image
:src=
"baseUrl+'/tmt-pic/pet-app/home_img_shixiang2@2x.png'"
style=
"width: 100%;height: 100%;"
/>
</view>
<view
v-else
class=
"eventImage"
>
<image
:src=
"baseUrl+'/tmt-pic/pet-app/home_img_shixiang1@2x.png'"
style=
"width: 100%;height: 100%;"
/>
</view>
</view>
</view>
</view>
</view>
<view
v-else
style=
"margin:0px 34rpx 64rpx;box-shadow: 0px 8rpx 32rpx 0px rgba(169,169,169,0.24);border-radius: 32rpx 32rpx 32rpx 32rpx;"
>
<!--
<uni-card
:is-shadow=
"true"
is-full
>
-->
<view
style=
"height: 240rpx;text-align: center;padding-top: 26rpx;"
>
<view>
<image
:src=
"baseUrl+'/tmt-pic/pet-app/%E6%9A%82%E6%97%A0%E4%BF%A1%E6%81%AF%E7%BC%BA%E7%9C%81%E5%9B%BE-img.png'"
style=
"width: 160rpx;height: 100rpx;"
/>
/>
</view>
</view>
<view
style=
"margin-top: 36rpx;"
>
<text
style=
"font-size: 12px;font-weight: 500;color: #666666;line-height: 14px;"
>
您近期还没有待办事项哦~
</text>
</view>
</view>
<!--
</uni-card>
-->
</view>
</view>
<view
style=
"padding: 0 32rpx 32rpx 32rpx;"
>
<text
style=
"font-size: 34rpx;font-weight: 700;color: #343744;line-height: 40rpx;"
>
推荐医院
</text>
</view>
<view
style=
"padding: 0 32rpx;"
>
<view
v-for=
"(item, index) in hospitalList"
:key=
"index"
@
click=
"onClick(item)"
>
<view
style=
"background-color: #FFFFFF ;margin-bottom: 40rpx;"
>
<u-row
:gutter=
"16"
>
<u-col
span=
"3"
>
<view>
<image
:src=
"baseUrl + item.hospitalPortrait"
style=
"width: 160rpx;height: 160rpx;border-radius: 16px 16px 16px 16px;"
/>
</view>
</u-col>
<u-col
span=
"9"
>
<view
style=
"height: 40rpx;width: 400rpx; white-space: nowrap;overflow: hidden;text-overflow: ellipsis;"
>
<text
style=
"font-size: 15px;font-weight: bold;color: #343744;line-height: 40rpx;"
>
{{
item
.
hospitalName
}}
</text>
</view>
<view
style=
"width: 136rpx;height: 36rpx;background: #EFB936;border-radius: 8px 8px 8px 8px;text-align: center;margin-top: 20rpx;margin-bottom: 20rpx;"
>
<text
style=
"width: 60px;height: 28rpx;font-size: 20rpx;font-weight: 500;color: #FFFFFF;line-height: 24rpx;"
>
{{
showLabel
(
item
.
hospitalRate
)
||
''
}}
</text>
</view>
<view
style=
"display: flex; height: 40rpx; width: 100%;"
>
<image
:src=
"baseUrl+'/tmt-pic/pet-app/yiyuan_icon_didian@2x.png'"
style=
"width: 40rpx;height: 40rpx;"
/>
<view
style=
"height: 40rpx;width: 100%;overflow: hidden;white-space: nowrap;text-overflow: ellipsis; margin-left: 8rpx;"
>
<text
style=
"font-size: 24rpx;font-weight: 500;color: #666666;line-height: 40rpx;"
>
{{
item
.
hospitalAllAddress
}}
</text>
</view>
</view>
</u-col>
</u-row>
</view>
</view>
</view>
<view
v-show=
"hospitalTotal>0"
style=
"text-align: center;padding-bottom: 64rpx;padding-top: 24rpx;"
>
<text
style=
"font-size: 13px;font-weight: 500;color: rgba(102,102,102,0.4);line-height: 15px;"
>
没有更多了
</text>
</view>
</div>
</div>
</scroll-view>
<view>
<u-popup
:show=
"showDiolog"
mode=
"bottom"
:round=
"20"
close-on-click-overlay=
"true"
@
close=
"showDiolog=false"
>
<!-- 弹出层 -->
<view
style=
"margin: 48rpx 32rpx 50rpx 32rpx;"
>
<!-- 标题 -->
<view
style=
" height: 52rpx;display: flex; align-items: center;justify-content: center;"
>
<text
class=
"diolog-title"
>
预约说明
</text>
</view>
<!-- 分割线 -->
<view
style=
"height: 1px;background: rgba(102,102,102,0.16);border-radius: 1px;margin: 10px 0px 16px;"
/>
<!-- 文本 -->
<view
style=
"margin-bottom: 32rpx;"
>
<view
style=
"margin-bottom: 16rpx;"
>
<text
class=
"diolog-text"
>
1、预约挂号需提前支付挂号费(不含医生诊费)
</text>
</view>
<view
style=
"margin-bottom: 16rpx;"
>
<text
class=
"diolog-text"
>
2、点击确认预约后,请在15分钟内完成支付,过期未支付自动取消预约
</text>
</view>
<view
style=
"margin-bottom: 16rpx;"
>
<text
class=
"diolog-text"
>
3、为保证服务质量请您30分钟到店,逾期需根据门店实际接待情况排队等候
</text>
</view>
<view>
<text
class=
"diolog-text"
>
4、您的实际就诊时间会因取号顺序及医生具体看诊
情况做一定调整,给您带来的不便敬请谅解
</text>
</view>
</view>
<!-- 按钮 -->
<view
style=
"display: flex;justify-content: space-between;"
>
<view
class=
"return"
>
<button
class=
"info"
@
click=
"disAppoint"
>
<text>
不同意
</text>
</button>
</view>
<view>
<button
class=
"primary"
@
click=
"goAppoint"
>
<text>
同意并继续
</text>
</button>
</view>
</view>
</view>
</u-popup>
</view>
</view>
</view>
</
template
>
</
template
>
<
script
>
<
script
>
// 新增子组件导入
import
{
expectList
,
getBannerList
,
listHospital
}
from
'../api/system/home'
import
BaseDataApproval
from
'../components/base-data-approval'
import
md5
from
'../utils/md5'
import
ProductionApproval
from
'../components/production-approval'
import
config
from
'@/config'
import
MineNavbar
from
"../components/mine-navbar/mineNavbar"
;
export
default
{
export
default
{
dicts
:
[
'hospital_rate'
],
name
:
'Index'
,
components
:
{
MineNavbar
,
BaseDataApproval
,
ProductionApproval
},
data
()
{
data
()
{
return
{
return
{
backBanner
:
'/tmt-pic/pet-app/%E9%A1%B6%E9%83%A8%E8%83%8C%E6%99%AF-img.png'
,
list1
:
[{
backImage
:
'/tmt-pic/pet-app/%E9%A1%B6%E9%83%A8%E8%83%8C%E6%99%AF-img.png'
,
name
:
'基础数据审批'
,
homeAdress
:
'天津市'
,
},
{
lat
:
''
,
name
:
'生产信息审批'
,
lon
:
''
,
},
],
address
:
'定位中'
,
tipsShow
:
false
,
current
:
0
,
loading
:
true
,
userInfo
:
''
,
checkShow
:
false
,
loading
:
false
,
delShow
:
false
,
expectListLength
:
0
,
delShow2
:
false
,
// 协议弹框
titleStyle
:
{
showDiolog
:
false
,
color
:
'#343744 !important'
,
baseUrl
:
config
.
imageUrl
,
fontSize
:
'40rpx !important'
,
// 代办事项列表
fontWeight
:
'bold !important'
,
expectList
:
[],
lineHeight
:
'47rpx !important'
// 查询医院总数
hospitalTotal
:
''
,
// 轮播图列表
list
:
[],
// 医院列表
hospitalList
:
[],
// 查询医院表单
hospitalForm
:
{
pageNum
:
1
,
pageSize
:
6
,
type
:
'1'
}
}
},
},
computed
:
{
topSelectList
:
[
windowHeight
()
{
{
return
uni
.
getSystemInfoSync
().
windowHeight
-
50
name
:
'未读'
}
},
onShow
()
{
this
.
getHospitalList
()
this
.
getBannerlist
()
this
.
getExpectList
()
this
.
getLocation
()
// this.getPostion()
},
methods
:
{
disAppoint
()
{
wx
.
showTabBar
({
animation
:
true
,
success
:
()
=>
{
this
.
showDiolog
=
false
console
.
log
(
this
.
showDiolog
)
}
})
},
// 功能未开放提示
toastaction
()
{
uni
.
showToast
({
title
:
'功能待开放'
,
icon
:
'error'
})
},
},
// 根据经纬度,逆地址解析
{
getAddress
(
lat
,
lon
)
{
name
:
'已读'
const
QQMapKey
=
'LGZBZ-HLR6Z-KISXT-7KMA7-QFIS2-X2BGJ'
const
SK
=
'DgaNSxxYeWpUVGLqWj2YHSfQnaV9Sm8'
// 在wx.request中,this指向wx.request,故无法setData,此处将this指向that
const
that
=
this
wx
.
showLoading
({
title
:
'定位中'
,
mask
:
true
,
duration
:
3000
})
const
SIG
=
md5
(
'/ws/geocoder/v1?key='
+
QQMapKey
+
'&location='
+
String
(
lat
)
+
','
+
String
(
lon
)
+
SK
)
wx
.
request
({
url
:
'https://apis.map.qq.com/ws/geocoder/v1'
,
data
:
{
key
:
QQMapKey
,
location
:
`
${
lat
}
,
${
lon
}
`
,
sig
:
SIG
},
success
(
res
)
{
const
result
=
res
.
data
.
result
console
.
log
(
'22222'
,
result
)
that
.
homeAdress
=
result
.
address_component
.
district
wx
.
hideLoading
()
},
fail
:
(
e
)
=>
{
console
.
log
(
e
)
wx
.
hideLoading
()
}
})
},
// 根据经纬度,设置数据
updateLocation
(
res
)
{
const
{
latitude
:
lat
,
longitude
:
lon
}
=
res
console
.
log
(
'11111'
,
res
)
this
.
getAddress
(
lat
,
lon
)
},
// 微信api,获取经纬度
getLocation
()
{
wx
.
getLocation
({
type
:
'gcj02'
,
success
:
this
.
updateLocation
,
fail
:
(
e
)
=>
{
console
.
log
(
e
)
}
}
})
],
},
topSelectValue
:
0
,
swiperChange
(
index
)
{
defaultPageSize
:
10
,
this
.
current
=
index
.
detail
.
current
queryNotice
:
{
page
:
1
,
rows
:
10
,
mesType
:
'1'
,
processGroup
:
'1'
,
running
:
true
,
completeStatus
:
false
},
},
// 点击轮播图的
noticeList
:
[],
onswiper
(
value
)
{
total
:
0
,
const
url
=
this
.
list
[
value
].
url
console
.
log
(
'111'
,
url
)
// 底部加载
this
.
$tab
.
navigateTo
(
url
)
loadStatus
:
'loadmore'
,
loadText
:
{
loadmore
:
'上滑加载更多'
,
loading
:
'努力加载中'
,
nomore
:
'没有更多了'
},
},
showLabel
(
value
)
{
radioValue
:
undefined
,
if
(
value
===
'0'
)
{
modelShow
:
false
,
return
'一星诊疗机构'
readArrayId
:
[]
}
else
if
(
value
===
'1'
)
{
return
'二星诊疗机构'
}
else
if
(
value
===
'2'
)
{
return
'三星诊疗机构'
}
else
if
(
value
===
'3'
)
{
return
'四星诊疗机构'
}
else
if
(
value
===
'4'
)
{
return
'五星诊疗机构'
}
}
},
},
onClick
(
item
)
{
created
()
{
this
.
$tab
.
navigateTo
(
'/pages/hospital/index?id='
+
item
.
id
+
'&deptId='
+
item
.
deptId
)
},
},
openDiolog
()
{
methods
:
{
wx
.
hideTabBar
({
clickTabs
(
item
)
{
animation
:
true
,
console
.
log
(
'点击了'
,
item
)
success
:
()
=>
{
this
.
$set
(
this
.
queryNotice
,
'mesType'
,
item
.
name
===
'基础数据审批'
?
'1'
:
'2'
)
this
.
showDiolog
=
true
// 清空原有数据
console
.
log
(
this
.
showDiolog
)
this
.
noticeList
=
[]
}
})
console
.
log
(
this
.
showDiolog
)
},
// 跳转代办事项
goExpect
()
{
this
.
$tab
.
navigateTo
(
'/sub_package/appoint/recent-event'
)
},
// 跳转预约挂号
goAppoint
()
{
wx
.
showTabBar
({
animation
:
true
,
success
:
()
=>
{
this
.
$tab
.
navigateTo
(
'/sub_package/appoint/choose-hospital'
)
this
.
showDiolog
=
false
console
.
log
(
this
.
showDiolog
)
}
})
},
getExpectList
()
{
expectList
(
this
.
userInfo
.
petOwnerId
).
then
(
res
=>
{
// expectList(1).then(res => {
this
.
expectList
=
res
.
data
this
.
expectListLength
=
res
.
data
.
length
console
.
log
(
'代办事项'
,
res
)
})
},
getBannerlist
()
{
const
query
=
{
status
:
'1'
,
pageNum
:
1
,
pageSize
:
6
}
getBannerList
(
query
).
then
(
res
=>
{
this
.
list
=
res
.
rows
console
.
log
(
'轮播图'
,
res
)
this
.
list
.
forEach
(
item
=>
{
item
.
img
=
this
.
baseUrl
+
item
.
img
})
})
},
changeBnner
(
index
)
{
console
.
log
(
'轮播图'
,
index
)
},
},
getHospitalList
()
{
// 处理滚动加载
this
.
loading
=
true
onReachBottom
()
{
listHospital
(
this
.
hospitalForm
).
then
(
res
=>
{
console
.
log
(
'哒哒哒哒哒哒多多多多多多多多多多多多多多'
)
this
.
hospitalList
=
res
.
rows
this
.
hospitalTotal
=
this
.
hospitalList
.
length
this
.
loading
=
false
console
.
log
(
'医院列表'
,
res
)
})
}
}
},
},
onLoad
:
function
()
{
this
.
userInfo
=
JSON
.
parse
(
uni
.
getStorageSync
(
'user'
))
}
}
</
script
>
<
style
>
.eventImage
{
width
:
176
rpx
;
height
:
176
rpx
;
position
:
absolute
;
bottom
:
0
;
right
:
0
;
}
.swiper-item
{
height
:
340
rpx
;
box-shadow
:
0px
8
rpx
32
rpx
0px
rgba
(
169
,
169
,
169
,
0.24
);
border-radius
:
48
rpx
48
rpx
48
rpx
48
rpx
;
margin
:
0
16
rpx
;
background
:
#FFFFFF
;
}
.swiper-item-no
{
height
:
340
rpx
;
border-radius
:
48
rpx
48
rpx
48
rpx
48
rpx
;
margin
:
0
16
rpx
;
background
:
#FFFFFF
;
}
::v-deep
.swiper
{
height
:
420
rpx
;
}
.topAdress
{
left
:
32
rpx
;
position
:
absolute
;
z-index
:
1
;
top
:
100
rpx
;
height
:
40
rpx
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
}
}
</
script
>
.indicator
{
<
style
scoped
lang=
"scss"
>
.no-message
{
text-align
:
center
;
height
:
calc
(
100vh
-
350rpx
);
display
:
flex
;
display
:
flex
;
justify-content
:
center
;
justify-content
:
center
;
align-items
:
center
;
}
}
.topTips
{
.indicator__dot
{
width
:
100%
;
width
:
16
rpx
;
height
:
80rpx
;
height
:
16
rpx
;
background-color
:
#ff9900
;
background
:
rgba
(
2
,
167
,
186
,
0.24
);
border-radius
:
5px
5px
5px
5px
;
margin
:
0
10
rpx
;
}
.indicator__dot_active
{
width
:
16
rpx
;
height
:
16
rpx
;
background
:
linear-gradient
(
180deg
,
#02A7BA
0%
,
#62AE79
100%
);
border-radius
:
16px
16px
16px
16px
;
margin
:
0
14
rpx
;
}
.waite-petName
{
width
:
100
rpx
;
height
:
32
rpx
;
font-size
:
24
rpx
;
font-weight
:
500
;
color
:
#FFFFFF
;
line-height
:
28
rpx
;
margin-left
:
16
rpx
;
white-space
:
nowrap
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
}
.waite-pet
{
width
:
auto
;
height
:
32
rpx
;
font-size
:
24
rpx
;
font-weight
:
500
;
color
:
#FFFFFF
;
line-height
:
28
rpx
;
margin-left
:
16
rpx
;
}
.waite-title
{
width
:
346
rpx
;
height
:
40
rpx
;
font-size
:
30
rpx
;
font-weight
:
bold
;
color
:
#FFFFFF
;
line-height
:
36
rpx
;
}
.waite-date
{
width
:
324
rpx
;
height
:
34
rpx
;
font-size
:
26rpx
;
font-size
:
26rpx
;
font-weight
:
bold
;
font-family
:
PingFang
SC-Medium
,
PingFang
SC
;
color
:
#FFFFFF
;
font-weight
:
500
;
line-height
:
30
rpx
;
color
:
#FFF
;
}
text-align
:
center
;
.content
{
padding-top
:
20rpx
;
padding-top
:
20rpx
;
}
}
.notice-container
{
.logo
{
width
:
100%
;
height
:
200
rpx
;
margin-top
:
42rpx
;
width
:
200
rpx
;
background-color
:
#fff
;
margin-top
:
200
rpx
;
overflow-y
:
hidden
;
margin-left
:
auto
;
margin-right
:
auto
;
margin-bottom
:
50
rpx
;
}
}
.topContent
{
.text-area
{
display
:
flex
;
display
:
flex
;
justify-content
:
center
;
padding-top
:
32rpx
;
}
padding-bottom
:
32rpx
;
padding-left
:
32rpx
;
.title
{
background-color
:
#f0f0f0
;
height
:
36
rpx
;
.topSelect
{
font-size
:
26
rpx
;
width
:
588rpx
;
font-weight
:
500
;
height
:
88rpx
;
}
.topButton
{
margin-left
:
32rpx
;
margin-top
:
22rpx
;
font-size
:
34rpx
;
font-family
:
Source
Han
Sans
CN-Regular
,
Source
Han
Sans
CN
;
font-weight
:
400
;
color
:
#343744
;
color
:
#343744
;
line-height
:
30
rpx
;
}
}
}
.topContent_read
{
.nav-bar
{
height
:
100%
;
width
:
100%
;
display
:
flex
;
display
:
flex
;
align-items
:
center
;
padding
:
34rpx
32rpx
;
flex-direction
:
column
;
background-color
:
#f0f0f0
;
font-size
:
34rpx
;
font-family
:
Source
Han
Sans
CN-Bold
,
Source
Han
Sans
CN
;
font-weight
:
bold
;
line-height
:
40rpx
;
.fontColor
{
background-image
:
-webkit-linear-gradient
(
top
,
#02A7BA
,
#62AE79
);
-webkit-background-clip
:text
;
-webkit-text-fill-color
:transparent
;
}
}
}
.noticeCard
{
.center
{
width
:
100%
;
background-color
:
#F9F9F9
;
margin
:
20rpx
22rpx
0
20rpx
;
padding-bottom
:
32rpx
;
border-radius
:
15rpx
;
.noticeTop
{
display
:
flex
;
display
:
flex
;
flex-direction
:
column
;
justify-content
:
space-between
;
align-items
:
center
;
border-bottom
:
2rpx
solid
#F2F2F2
;
justify-content
:
center
;
padding
:
22rpx
34rpx
24rpx
32rpx
;
}
}
.titleClass
{
.service
{
font-family
:
PingFangSC
,
PingFang
SC
;
background-size
:
100%
auto
;
font-weight
:
500
;
background-repeat
:
no-repeat
;
font-size
:
30rpx
;
background-position
:
top
;
color
:
#333399
;
background-attachment
:
fixed
;
text-align
:
left
;
height
:
100vh
;
font-style
:
normal
;
background-color
:
#FFFFFF
;
text-transform
:
none
;
}
}
.subTitleClass
{
.head-block
{
font-family
:
PingFangSC
,
PingFang
SC
;
height
:
88px
;
font-weight
:
400
;
width
:
100vw
;
font-size
:
28rpx
;
background
:
rgba
(
0
,
0
,
0
,
0
);
color
:
#9A9A9A
;
text-align
:
left
;
font-style
:
normal
;
text-transform
:
none
;
padding
:
28rpx
32rpx
0
32rpx
;
}
.timeClass
{
font-family
:
PingFangSC
,
PingFang
SC
;
font-weight
:
400
;
font-size
:
28rpx
;
color
:
#666666
;
text-align
:
right
;
font-style
:
normal
;
text-transform
:
none
;
}
}
}
// 有导航栏后 防止滑到最上面
.scroll-y
{
.scroll-y
{
height
:
calc
(
100vh
-
160
rpx
);
height
:
calc
(
100vh
-
88px
)
background-color
:
#FFFFFF
;
}
::v-deep
.u-line
{
border-bottom-width
:
3px
!
important
;
}
::v-deep
.u-subsection
{
background-color
:
#fff
}
.checkView
{
width
:
76rpx
;
align-content
:
center
;
margin-bottom
:
32rpx
;
//border-radius: 10rpx;
//margin-top: 20rpx;
//position: absolute;
}
::v-deep
.u-checkbox-group
{
//background-color: red;
//padding-left: 16rpx;
height
:
80rpx
;
position
:
relative
;
top
:
50%
;
/*偏移*/
transform
:
translateY
(
-50%
);
}
}
::v-deep
.u-checkbox
{
.banner
{
margin
:
auto
;
background-image
:
url("https://qf.91isoft.com/cwfile/tmt-pic/pet-app/%E9%A1%B6%E9%83%A8%E8%83%8C%E6%99%AF-img.png")
;
width
:
64rpx
;
height
:
18vh
;
height
:
64rpx
;
background-size
:
100%
auto
;
background-repeat
:
no-repeat
;
background-position
:
bottom
;
}
}
::v-deep
.u-checkbox__icon-wrap
{
.appointItem
{
margin-left
:
25rpx
;
width
:
560
rpx
;
margin-right
:
0
!
important
;
height
:
240
rpx
;
background
:
linear-gradient
(
135deg
,
#88A2D1
0%
,
#6380B4
100%
);
box-shadow
:
0px
32
rpx
48
rpx
0px
rgba
(
99
,
128
,
180
,
0.32
);
border-radius
:
32
rpx
32
rpx
32
rpx
32
rpx
;
margin-left
:
32
rpx
;
padding
:
32
rpx
;
position
:
relative
;
}
}
.vaccinumItem
{
// 顶部选择样式
width
:
560
rpx
;
::v-deep
.u-subsection__bar
{
height
:
240
rpx
;
background
:
linear-gradient
(
180deg
,
#02A7BA
0%
,
#62AE79
100%
);
background
:
linear-gradient
(
135deg
,
#C4AA85
0%
,
#B67C50
100%
);
box-shadow
:
0px
32
rpx
48
rpx
0px
rgba
(
180
,
123
,
79
,
0.32
);
border-radius
:
32
rpx
32
rpx
32
rpx
32
rpx
;
margin-left
:
32
rpx
;
padding
:
32
rpx
;
position
:
relative
;
}
}
::v-deep
.u-subsection__item
{
.serviceItem
{
border
:
none
!
important
;
width
:
560
rpx
;
//border-color: none;
height
:
240
rpx
;
background
:
linear-gradient
(
135deg
,
#DA99F1
0%
,
#993CB9
100%
);
box-shadow
:
0px
32
rpx
48
rpx
0px
rgba
(
153
,
60
,
185
,
0.32
);
border-radius
:
32
rpx
32
rpx
32
rpx
32
rpx
;
margin-left
:
32
rpx
;
padding
:
32
rpx
;
position
:
relative
;
}
}
::v-deep
.u-subsection
{
.diolog-title
{
height
:
88rpx
!
important
;
font-size
:
34
rpx
;
border-radius
:
16rpx
16rpx
16rpx
16rpx
;
font-family
:
Source
Han
Sans
CN-Bold
,
Source
Han
Sans
CN
;
font-weight
:
bold
;
color
:
#343744
;
line-height
:
40
rpx
;
}
}
::v-deep
.u-subsection__item__text
{
.diolog-text
{
font-size
:
34rpx
!
important
;
font-family
:
Source
Han
Sans
CN-Bold
,
Source
Han
Sans
CN
;
font-size
:
30
rpx
;
font-family
:
Source
Han
Sans
CN-Regular
,
Source
Han
Sans
CN
;
font-weight
:
400
;
font-weight
:
400
;
color
:
#343744
;
line-height
:
35
rpx
;
}
}
.return
{
// 卡片前单选
border
:
2
rpx
solid
transparent
;
::v-deep
.u-checkbox
{
border-radius
:
24
rpx
;
margin-right
:
0
!
important
;
width
:
208
rpx
;
height
:
112
rpx
;
overflow
:
hidden
;
background
:
linear-gradient
(
180deg
,
#02A7BA
0%
,
#62AE79
100%
);
}
}
.info
{
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
width
:
208
rpx
;
height
:
112
rpx
;
border-radius
:
22
rpx
;
background
:
linear-gradient
(
180deg
,
#EBF8F9
0%
,
#F2F8F4
100%
);
}
.info
text
{
font-size
:
32
rpx
;
::v-deep
.u-loading-page__warpper__loading-icon__img
{
width
:
90rpx
!
important
;
height
:
90rpx
!
important
;
}
::v-deep
.u-tabs__wrapper__nav__item__text
{
font-family
:
PingFangSC
,
PingFang
SC
;
font-weight
:
500
;
font-weight
:
500
;
color
:
rgba
(
52
,
55
,
68
,
0.8
);
font-size
:
28rpx
;
line-height
:
38
rpx
;
}
}
.top-tabs
{
.primary
{
display
:
flex
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
justify-content
:
center
;
width
:
462
rpx
;
align-items
:
center
;
height
:
112
rpx
;
margin-top
:
20rpx
;
background
:
linear-gradient
(
180deg
,
#02A7BA
0%
,
#62AE79
100%
);
border-bottom
:
2rpx
solid
#F2F2F2
;
box-shadow
:
0
rpx
8
rpx
16
rpx
0
rpx
rgba
(
0
,
0
,
0
,
0.08
);
::v-deep
.u-tabs
{
border-radius
:
24
rpx
;
width
:
60%
;
}
}
.primary
text
{
font-size
:
32
rpx
;
font-family
:
Source
Han
Sans
CN-Medium
,
Source
Han
Sans
CN
;
font-weight
:
500
;
color
:
#FFFFFF
;
line-height
:
38
rpx
;
text-shadow
:
0px
4px
8px
rgba
(
0
,
0
,
0
,
0.25
);
}
}
//::v-deep .u-subsection {
// background: black;
//}
</
style
>
</
style
>
pages/message/index.vue
View file @
2f56db0a
...
@@ -20,7 +20,7 @@
...
@@ -20,7 +20,7 @@
<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"
>
<view
class=
"noticeTop"
>
<view
class=
"noticeTop"
>
<view
class=
"titleClass"
>
{{
queryNotice
.
mesType
===
'1'
?
'
生产信息审批'
:
'基础数据
审批'
}}
</view>
<view
class=
"titleClass"
>
{{
queryNotice
.
mesType
===
'1'
?
'
基础数据审批'
:
'生产信息
审批'
}}
</view>
<view
class=
"timeClass"
>
<view
class=
"timeClass"
>
{{
item
.
updateDate
!==
undefined
&&
item
.
updateDate
!==
null
?
parseTime
(
item
.
updateDate
,
'{m
}
-{d
}
{h
}
:{i
}
:{s
}
'
)
:
'暂无数据'
}}
{{
item
.
updateDate
!==
undefined
&&
item
.
updateDate
!==
null
?
parseTime
(
item
.
updateDate
,
'{m
}
-{d
}
{h
}
:{i
}
:{s
}
'
)
:
'暂无数据'
}}
<
/view
>
<
/view
>
...
@@ -102,6 +102,7 @@ export default {
...
@@ -102,6 +102,7 @@ export default {
page
:
1
,
page
:
1
,
rows
:
10
,
rows
:
10
,
receiverId
:
undefined
,
receiverId
:
undefined
,
mesType
:
'1'
}
,
}
,
noticeList
:
[],
noticeList
:
[],
total
:
0
,
total
:
0
,
...
@@ -123,7 +124,9 @@ export default {
...
@@ -123,7 +124,9 @@ export default {
}
,
}
,
methods
:
{
methods
:
{
clickTabs
(
item
)
{
clickTabs
(
item
)
{
this
.
queryNotice
.
mesType
=
item
===
'基础数据审批'
?
'1'
:
'2'
this
.
queryNotice
.
mesType
=
item
.
name
===
'基础数据审批'
?
'1'
:
'2'
this
.
queryNotice
.
page
=
1
this
.
queryNotice
.
rows
=
10
this
.
getPetmNoticeList
()
this
.
getPetmNoticeList
()
}
,
}
,
parseTime
,
parseTime
,
...
@@ -335,7 +338,7 @@ export default {
...
@@ -335,7 +338,7 @@ export default {
}
}
.
notice
-
container
{
.
notice
-
container
{
width
:
100
%
;
width
:
100
%
;
margin
-
top
:
5
42
rpx
;
margin
-
top
:
42
rpx
;
background
-
color
:
#
fff
;
background
-
color
:
#
fff
;
overflow
-
y
:
hidden
;
overflow
-
y
:
hidden
;
}
}
...
...
pages/mine/index.vue
View file @
2f56db0a
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
<view
class=
"mine-container"
>
<view
class=
"mine-container"
>
<mine-navbar
title=
"DHEC QMS"
/>
<mine-navbar
title=
"DHEC QMS"
/>
<scroll-view
class=
"scroll-y"
scroll-y
style=
"margin:
5
42rpx 0 0 0;"
>
<scroll-view
class=
"scroll-y"
scroll-y
style=
"margin: 42rpx 0 0 0;"
>
<view
style=
"height: 40rpx;background: #F9F9F9;"
/>
<view
style=
"height: 40rpx;background: #F9F9F9;"
/>
<view
class=
"header-section"
@
click=
"goMyAccount"
>
<view
class=
"header-section"
@
click=
"goMyAccount"
>
<view
class=
"section-detail"
>
<view
class=
"section-detail"
>
...
...
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