Commit 2f56db0a authored by 刘怀志's avatar 刘怀志

feat(审批): 审批列表接口对接1

parent 78bb047e
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
<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: 960rpx;
}
.no-message{
text-align: center;
height: calc(100vh - 350rpx);
display: flex;
justify-content: center;
align-items: center;
}
.topTips {
width: 100%;
height: 80rpx;
background-color: #ff9900;
font-size: 26rpx;
font-family: PingFang SC-Medium, PingFang SC;
font-weight: 500;
color: #FFF;
text-align: center;
padding-top: 20rpx;
}
.notice-container {
width: 100%;
margin-top: 542rpx;
background-color: #fff;
overflow-y: hidden;
}
.topContent {
display: flex;
padding-top: 32rpx;
padding-bottom: 32rpx;
padding-left: 32rpx;
background-color: #f0f0f0;
.topSelect {
width: 588rpx;
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;
}
}
.topContent_read {
display: flex;
padding: 34rpx 32rpx;
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 {
width: 100%;
background-color: #F9F9F9;
margin: 20rpx 22rpx 0 20rpx;
padding-bottom: 32rpx;
border-radius: 15rpx;
.noticeTop{
display: flex;
justify-content: space-between;
border-bottom: 2rpx solid #F2F2F2;
padding: 22rpx 34rpx 24rpx 32rpx;
}
.titleClass {
font-family: PingFangSC, PingFang SC;
font-weight: 500;
font-size: 30rpx;
color: #333399;
text-align: left;
font-style: normal;
text-transform: none;
}
.subTitleClass {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
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 {
height: calc(100vh - 88px)
}
::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 {
margin: auto;
width: 64rpx;
height: 64rpx;
}
::v-deep .u-checkbox__icon-wrap {
margin-left: 25rpx;
margin-right: 0 !important;
}
// 顶部选择样式
::v-deep .u-subsection__bar {
background: linear-gradient(180deg, #02A7BA 0%, #62AE79 100%);
}
::v-deep .u-subsection__item {
border: none !important;
//border-color: none;
}
::v-deep .u-subsection {
height: 88rpx !important;
border-radius: 16rpx 16rpx 16rpx 16rpx;
}
::v-deep .u-subsection__item__text {
font-size: 34rpx !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: 90rpx !important;
height: 90rpx !important;
}
::v-deep .u-tabs__wrapper__nav__item__text{
font-family: PingFangSC, PingFang SC;
font-weight: 500;
font-size: 28rpx;
}
.top-tabs{
display: flex;
justify-content: center;
align-items: center;
margin-top: 20rpx;
border-bottom: 2rpx solid #F2F2F2;
::v-deep .u-tabs{
width: 60%;
}
}
//::v-deep .u-subsection {
// background: black;
//}
</style>
\ No newline at end of file
<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;
......
<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: 960rpx;
overflow: auto;
}
.no-message{
text-align: center;
height: calc(100vh - 350rpx);
display: flex;
justify-content: center;
align-items: center;
}
.topTips {
width: 100%;
height: 80rpx;
background-color: #ff9900;
font-size: 26rpx;
font-family: PingFang SC-Medium, PingFang SC;
font-weight: 500;
color: #FFF;
text-align: center;
padding-top: 20rpx;
}
.notice-container {
width: 100%;
margin-top: 542rpx;
background-color: #fff;
overflow-y: hidden;
}
.topContent {
display: flex;
padding-top: 32rpx;
padding-bottom: 32rpx;
padding-left: 32rpx;
background-color: #f0f0f0;
.topSelect {
width: 588rpx;
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;
}
}
.topContent_read {
display: flex;
padding: 34rpx 32rpx;
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 {
width: 100%;
background-color: #F9F9F9;
margin: 20rpx 22rpx 0 20rpx;
padding-bottom: 32rpx;
border-radius: 15rpx;
.noticeTop{
display: flex;
justify-content: space-between;
border-bottom: 2rpx solid #F2F2F2;
padding: 22rpx 34rpx 24rpx 32rpx;
}
.titleClass {
font-family: PingFangSC, PingFang SC;
font-weight: 500;
font-size: 30rpx;
color: #333399;
text-align: left;
font-style: normal;
text-transform: none;
}
.subTitleClass {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
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 {
height: calc(100vh - 88px)
}
::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 {
margin: auto;
width: 64rpx;
height: 64rpx;
}
::v-deep .u-checkbox__icon-wrap {
margin-left: 25rpx;
margin-right: 0 !important;
}
// 顶部选择样式
::v-deep .u-subsection__bar {
background: linear-gradient(180deg, #02A7BA 0%, #62AE79 100%);
}
::v-deep .u-subsection__item {
border: none !important;
//border-color: none;
}
::v-deep .u-subsection {
height: 88rpx !important;
border-radius: 16rpx 16rpx 16rpx 16rpx;
}
::v-deep .u-subsection__item__text {
font-size: 34rpx !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: 90rpx !important;
height: 90rpx !important;
}
::v-deep .u-tabs__wrapper__nav__item__text{
font-family: PingFangSC, PingFang SC;
font-weight: 500;
font-size: 28rpx;
}
.top-tabs{
display: flex;
justify-content: center;
align-items: center;
margin-top: 20rpx;
border-bottom: 2rpx solid #F2F2F2;
::v-deep .u-tabs{
width: 60%;
}
}
//::v-deep .u-subsection {
// background: black;
//}
</style>
\ No newline at end of file
<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: 176rpx;
height: 176rpx;
position: absolute;
bottom: 0;
right: 0;
}
.swiper-item {
height: 340rpx;
box-shadow: 0px 8rpx 32rpx 0px rgba(169, 169, 169, 0.24);
border-radius: 48rpx 48rpx 48rpx 48rpx;
margin: 0 16rpx;
background: #FFFFFF;
}
.swiper-item-no {
height: 340rpx;
border-radius: 48rpx 48rpx 48rpx 48rpx;
margin: 0 16rpx;
background: #FFFFFF;
}
::v-deep .swiper {
height: 420rpx;
}
.topAdress {
left: 32rpx;
position: absolute;
z-index: 1;
top: 100rpx;
height: 40rpx;
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: 16rpx; height: 80rpx;
height: 16rpx; background-color: #ff9900;
background: rgba(2, 167, 186, 0.24);
border-radius: 5px 5px 5px 5px;
margin: 0 10rpx;
}
.indicator__dot_active {
width: 16rpx;
height: 16rpx;
background: linear-gradient(180deg, #02A7BA 0%, #62AE79 100%);
border-radius: 16px 16px 16px 16px;
margin: 0 14rpx;
}
.waite-petName {
width: 100rpx;
height: 32rpx;
font-size: 24rpx;
font-weight: 500;
color: #FFFFFF;
line-height: 28rpx;
margin-left: 16rpx;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.waite-pet {
width: auto;
height: 32rpx;
font-size: 24rpx;
font-weight: 500;
color: #FFFFFF;
line-height: 28rpx;
margin-left: 16rpx;
}
.waite-title {
width: 346rpx;
height: 40rpx;
font-size: 30rpx;
font-weight: bold;
color: #FFFFFF;
line-height: 36rpx;
}
.waite-date {
width: 324rpx;
height: 34rpx;
font-size: 26rpx; font-size: 26rpx;
font-weight: bold; font-family: PingFang SC-Medium, PingFang SC;
color: #FFFFFF; font-weight: 500;
line-height: 30rpx; color: #FFF;
} text-align: center;
.content {
padding-top: 20rpx; padding-top: 20rpx;
} }
.notice-container {
.logo { width: 100%;
height: 200rpx; margin-top: 42rpx;
width: 200rpx; background-color: #fff;
margin-top: 200rpx; overflow-y: hidden;
margin-left: auto;
margin-right: auto;
margin-bottom: 50rpx;
} }
.topContent {
.text-area {
display: flex; display: flex;
justify-content: center; padding-top: 32rpx;
} padding-bottom: 32rpx;
padding-left: 32rpx;
.title { background-color: #f0f0f0;
height: 36rpx; .topSelect {
font-size: 26rpx; 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: 30rpx; }
} }
.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 - 160rpx); 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: 560rpx; margin-right: 0 !important;
height: 240rpx;
background: linear-gradient(135deg, #88A2D1 0%, #6380B4 100%);
box-shadow: 0px 32rpx 48rpx 0px rgba(99, 128, 180, 0.32);
border-radius: 32rpx 32rpx 32rpx 32rpx;
margin-left: 32rpx;
padding: 32rpx;
position: relative;
} }
.vaccinumItem { // 顶部选择样式
width: 560rpx; ::v-deep .u-subsection__bar {
height: 240rpx; background: linear-gradient(180deg, #02A7BA 0%, #62AE79 100%);
background: linear-gradient(135deg, #C4AA85 0%, #B67C50 100%);
box-shadow: 0px 32rpx 48rpx 0px rgba(180, 123, 79, 0.32);
border-radius: 32rpx 32rpx 32rpx 32rpx;
margin-left: 32rpx;
padding: 32rpx;
position: relative;
} }
::v-deep .u-subsection__item {
.serviceItem { border: none !important;
width: 560rpx; //border-color: none;
height: 240rpx;
background: linear-gradient(135deg, #DA99F1 0%, #993CB9 100%);
box-shadow: 0px 32rpx 48rpx 0px rgba(153, 60, 185, 0.32);
border-radius: 32rpx 32rpx 32rpx 32rpx;
margin-left: 32rpx;
padding: 32rpx;
position: relative;
} }
::v-deep .u-subsection {
.diolog-title { height: 88rpx !important;
font-size: 34rpx; border-radius: 16rpx 16rpx 16rpx 16rpx;
font-family: Source Han Sans CN-Bold, Source Han Sans CN;
font-weight: bold;
color: #343744;
line-height: 40rpx;
} }
::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: 30rpx;
font-family: Source Han Sans CN-Regular, Source Han Sans CN;
font-weight: 400; font-weight: 400;
color: #343744;
line-height: 35rpx;
} }
.return { // 卡片前单选
border: 2rpx solid transparent; ::v-deep .u-checkbox {
border-radius: 24rpx; margin-right: 0 !important;
width: 208rpx;
height: 112rpx;
overflow: hidden;
background: linear-gradient(180deg, #02A7BA 0%, #62AE79 100%);
} }
.info {
display: flex;
align-items: center;
justify-content: center;
width: 208rpx;
height: 112rpx;
border-radius: 22rpx;
background: linear-gradient(180deg, #EBF8F9 0%, #F2F8F4 100%);
}
.info text {
font-size: 32rpx; ::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: 38rpx;
} }
.top-tabs{
.primary {
display: flex; display: flex;
align-items: center;
justify-content: center; justify-content: center;
width: 462rpx; align-items: center;
height: 112rpx; margin-top: 20rpx;
background: linear-gradient(180deg, #02A7BA 0%, #62AE79 100%); border-bottom: 2rpx solid #F2F2F2;
box-shadow: 0rpx 8rpx 16rpx 0rpx rgba(0, 0, 0, 0.08); ::v-deep .u-tabs{
border-radius: 24rpx; width: 60%;
} }
.primary text {
font-size: 32rpx;
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
font-weight: 500;
color: #FFFFFF;
line-height: 38rpx;
text-shadow: 0px 4px 8px rgba(0, 0, 0, 0.25);
} }
//::v-deep .u-subsection {
// background: black;
//}
</style> </style>
...@@ -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: 542rpx; margin-top: 42rpx;
background-color: #fff; background-color: #fff;
overflow-y: hidden; overflow-y: hidden;
} }
......
...@@ -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: 542rpx 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">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment