@ -0,0 +1,6 @@
@@ -0,0 +1,6 @@
|
||||
{ |
||||
"component": true, |
||||
"usingComponents": { |
||||
"van-nav-bar": "@vant/weapp/nav-bar/index" |
||||
} |
||||
} |
@ -0,0 +1,50 @@
@@ -0,0 +1,50 @@
|
||||
const app = getApp<IAppOption>() |
||||
|
||||
Component({ |
||||
options: { |
||||
multipleSlots: true, // 在组件定义时的选项中启用多slot支持
|
||||
}, |
||||
properties: { |
||||
title: String, |
||||
fixed: Boolean, |
||||
placeholder: Boolean, |
||||
leftText: String, |
||||
rightText: String, |
||||
customStyle: String, |
||||
leftArrow: Boolean, |
||||
border: { |
||||
type: Boolean, |
||||
value: false, |
||||
}, |
||||
zIndex: { |
||||
type: Number, |
||||
value: 1, |
||||
}, |
||||
|
||||
back: { |
||||
type: Boolean, |
||||
value: true, |
||||
}, |
||||
}, |
||||
|
||||
/** |
||||
* 组件的初始数据 |
||||
*/ |
||||
data: { |
||||
imageUrl: app.globalData.imageUrl, |
||||
Timestamp:app.globalData.Timestamp |
||||
}, |
||||
|
||||
/** |
||||
* 组件的方法列表 |
||||
*/ |
||||
methods: { |
||||
onClickLeft() { |
||||
if(this.data.back) |
||||
this.triggerEvent('clickLeft', {}, {}) |
||||
}, |
||||
onClickRight() { |
||||
this.triggerEvent('clickRight', {}, {}) |
||||
}, |
||||
}, |
||||
}) |
@ -0,0 +1,17 @@
@@ -0,0 +1,17 @@
|
||||
<van-nav-bar |
||||
title="{{title}}" |
||||
fixed="{{fixed}}" |
||||
placeholder="{{placeholder}}" |
||||
leftText="{{leftText}}" |
||||
rightText="{{rightText}}" |
||||
customStyle="{{customStyle}}" |
||||
leftArrow="{{leftArrow}}" |
||||
border="{{border}}" |
||||
zIndex="{{zIndex}}" |
||||
bind:click-left="onClickLeft" |
||||
bind:click-right="onClickRight" |
||||
> |
||||
<slot name="left" slot="left"></slot> |
||||
<slot name="title" slot="title"></slot> |
||||
<slot name="right" slot="right"></slot> |
||||
</van-nav-bar> |
Before Width: | Height: | Size: 8.9 KiB |
After Width: | Height: | Size: 136 KiB |
After Width: | Height: | Size: 237 KiB |
After Width: | Height: | Size: 234 KiB |
After Width: | Height: | Size: 65 KiB |
After Width: | Height: | Size: 581 B |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 436 B |
Before Width: | Height: | Size: 329 KiB |
Before Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 551 B |
Before Width: | Height: | Size: 479 B |
Before Width: | Height: | Size: 816 B |
Before Width: | Height: | Size: 502 B |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 534 B |
After Width: | Height: | Size: 7.7 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 381 B |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 721 B |
After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 487 KiB |
Before Width: | Height: | Size: 62 KiB |
Before Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 123 KiB |
Before Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 270 KiB |
Before Width: | Height: | Size: 200 KiB |
Before Width: | Height: | Size: 206 KiB |
Before Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 90 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 881 B |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 934 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 7.4 KiB |
Before Width: | Height: | Size: 83 KiB |
Before Width: | Height: | Size: 117 KiB |
Before Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 69 KiB |
Before Width: | Height: | Size: 49 KiB |
Before Width: | Height: | Size: 220 KiB |
Before Width: | Height: | Size: 6.4 KiB |
@ -1,5 +1,6 @@
@@ -1,5 +1,6 @@
|
||||
{ |
||||
"usingComponents": { |
||||
"van-popup": "@vant/weapp/popup/index" |
||||
"van-popup": "@vant/weapp/popup/index", |
||||
"navbar": "/components/navbar/index" |
||||
} |
||||
} |
||||
|
@ -1,219 +1,192 @@
@@ -1,219 +1,192 @@
|
||||
page { |
||||
background-color: #f3f4f5; |
||||
background-color: rgba(247, 246, 250, 1); |
||||
} |
||||
|
||||
.page-title { |
||||
width: 320rpx; |
||||
height: 34rpx; |
||||
} |
||||
.page { |
||||
padding-bottom: 10vh; |
||||
min-height: 100vh; |
||||
.logo { |
||||
margin-left: 32rpx; |
||||
width: 327rpx; |
||||
max-height: 100rpx; |
||||
} |
||||
.page-title { |
||||
margin: 50rpx 0 0 32rpx; |
||||
width: 580rpx; |
||||
height: 52rpx; |
||||
} |
||||
.page-slogan { |
||||
margin: 14rpx 32rpx 0; |
||||
padding: 30rpx 32rpx; |
||||
font-size: 28rpx; |
||||
color: #65686c; |
||||
line-height: 52rpx; |
||||
} |
||||
.search { |
||||
margin: 34rpx 32rpx 0; |
||||
padding: 0 0 0 24rpx; |
||||
padding: 44rpx 40rpx; |
||||
.user { |
||||
display: flex; |
||||
align-items: center; |
||||
background: linear-gradient(158deg, #ffffff 0%, #f2f9fe 100%); |
||||
border-radius: 106rpx 106rpx 106rpx 106rpx; |
||||
border: 1px solid #ffffff; |
||||
.icon { |
||||
width: 36rpx; |
||||
height: 36rpx; |
||||
} |
||||
.input { |
||||
flex: 1; |
||||
padding: 16rpx; |
||||
line-height: 40rpx; |
||||
font-size: 28rpx; |
||||
} |
||||
.place-input { |
||||
color: #c9cdd4; |
||||
} |
||||
} |
||||
.swiper { |
||||
margin: 36rpx 32rpx -52rpx; |
||||
height: 318rpx; |
||||
|
||||
.wx-swiper-dots { |
||||
bottom: 60rpx; |
||||
display: flex; |
||||
align-items: center; |
||||
} |
||||
.wx-swiper-dot { |
||||
width: 8rpx; |
||||
height: 8rpx; |
||||
} |
||||
.wx-swiper-dot-active { |
||||
width: 24rpx !important; |
||||
height: 8rpx !important; |
||||
border-radius: 5rpx !important; |
||||
} |
||||
|
||||
.swiper-item { |
||||
position: relative; |
||||
.banner { |
||||
position: absolute; |
||||
top: 0; |
||||
left: 0; |
||||
z-index: 1; |
||||
display: block; |
||||
width: 100%; |
||||
height: 274rpx; |
||||
border-radius: 32rpx; |
||||
} |
||||
.avatar-wrapper { |
||||
flex-shrink: 0; |
||||
padding: 0; |
||||
margin: 0; |
||||
width: 124rpx; |
||||
height: 124rpx; |
||||
outline: none; |
||||
border: 2px solid #fff; |
||||
border-radius: 50%; |
||||
&::after { |
||||
content: ''; |
||||
position: absolute; |
||||
bottom: 74rpx; |
||||
left: 40rpx; |
||||
width: 606rpx; |
||||
height: 194rpx; |
||||
background: rgba(0, 43, 88, 0.28); |
||||
box-shadow: 0rpx 8rpx 8rpx 0rpx rgba(0, 0, 0, 0.65); |
||||
border-radius: 0rpx 0rpx 0rpx 0rpx; |
||||
filter: blur(16.5px); |
||||
border: none; |
||||
} |
||||
.avatar { |
||||
width: 100%; |
||||
height: 100%; |
||||
border-radius: 50%; |
||||
} |
||||
} |
||||
} |
||||
|
||||
.cards { |
||||
margin: 52rpx 32rpx 0; |
||||
display: grid; |
||||
gap: 28rpx 26rpx; |
||||
grid-template-columns: repeat(2, 1fr); |
||||
grid-template-rows: repeat(auto-fill, 164rpx); |
||||
.card { |
||||
padding: 20rpx 30rpx; |
||||
display: flex; |
||||
justify-content: center; |
||||
flex-direction: column; |
||||
overflow: hidden; |
||||
height: 164rpx; |
||||
box-sizing: border-box; |
||||
.title { |
||||
.wrap { |
||||
flex: 1; |
||||
padding-left: 24rpx; |
||||
.nickname { |
||||
font-size: 36rpx; |
||||
color: #3795f7; |
||||
line-height: 42rpx; |
||||
font-weight: bold; |
||||
color: rgba(1, 1, 5, 1); |
||||
} |
||||
.content { |
||||
margin-top: 10rpx; |
||||
.hostipal { |
||||
margin-top: 16rpx; |
||||
line-height: 1; |
||||
font-size: 28rpx; |
||||
color: #65686c; |
||||
min-width: 0; |
||||
line-height: 40rpx; |
||||
overflow: hidden; |
||||
text-overflow: ellipsis; |
||||
display: -webkit-box; |
||||
-webkit-line-clamp: 2; |
||||
-webkit-box-orient: vertical; |
||||
color: rgba(173, 172, 178, 1); |
||||
.tag { |
||||
display: inline-block; |
||||
font-size: 24rpx; |
||||
color: rgba(255, 255, 255, 1); |
||||
padding: 2rpx 10rpx; |
||||
background: #8c75d0; |
||||
border-radius: 8rpx 8rpx 8rpx 8rpx; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
.remark { |
||||
margin: 52rpx 32rpx 0; |
||||
.r-header { |
||||
display: flex; |
||||
align-items: center; |
||||
gap: 16rpx; |
||||
font-size: 36rpx; |
||||
color: #222222; |
||||
.banner { |
||||
margin-top: 32rpx; |
||||
padding: 40rpx; |
||||
border-radius: 24rpx; |
||||
border: 1px solid #fff; |
||||
background: linear-gradient(to right, rgba(223, 214, 250, 1), rgba(229, 227, 240, 1)); |
||||
.title { |
||||
font-size: 40rpx; |
||||
color: rgba(140, 117, 208, 1); |
||||
font-weight: bold; |
||||
&::before { |
||||
content: ''; |
||||
width: 8rpx; |
||||
height: 34rpx; |
||||
background-color: #3795f7; |
||||
} |
||||
} |
||||
.r-content { |
||||
margin-top: 30rpx; |
||||
padding: 32rpx; |
||||
width: 100%; |
||||
box-sizing: border-box; |
||||
height: 272rpx; |
||||
font-size: 32rpx; |
||||
background-color: #fff; |
||||
border-radius: 24rpx; |
||||
} |
||||
.textarea-placeholder { |
||||
color: #babdc1; |
||||
} |
||||
.submit { |
||||
margin: 28rpx auto 0; |
||||
width: 236rpx; |
||||
height: 70rpx; |
||||
font-size: 32rpx; |
||||
color: #fff; |
||||
text-align: center; |
||||
line-height: 70rpx; |
||||
background: linear-gradient(90deg, #134df6 36%, #3795f7 100%); |
||||
border-radius: 112rpx 112rpx 112rpx 112rpx; |
||||
} |
||||
.not-submit { |
||||
background: #e3e3e3; |
||||
.btn { |
||||
margin: 16rpx auto 0; |
||||
padding: 8rpx 0; |
||||
width: 330rpx; |
||||
text-align: center; |
||||
font-size: 32rpx; |
||||
color: rgba(255, 255, 255, 1); |
||||
background-color: rgba(140, 117, 208, 1); |
||||
border-radius: 64rpx; |
||||
} |
||||
} |
||||
} |
||||
|
||||
.popup { |
||||
padding: 33rpx 0 0; |
||||
|
||||
.popup-container { |
||||
padding: 280rpx 48rpx 0; |
||||
width: 622rpx; |
||||
height: 490rpx; |
||||
box-sizing: border-box; |
||||
background: linear-gradient(180deg, #e7f8ff 0%, #ffffff 100%); |
||||
border-radius: 32rpx; |
||||
.message { |
||||
margin-top: 16rpx; |
||||
height: 150rpx; |
||||
position: relative; |
||||
|
||||
.badge { |
||||
.content { |
||||
position: absolute; |
||||
left: 0; |
||||
top: -33px; |
||||
width: 246rpx; |
||||
height: 286rpx; |
||||
top: 48rpx; |
||||
left: 212rpx; |
||||
font-size: 32rpx; |
||||
color: rgba(0, 0, 0, 1); |
||||
display: flex; |
||||
align-items: baseline; |
||||
.num { |
||||
font-size: 48rpx; |
||||
color: rgba(140, 117, 208, 1); |
||||
font-weight: bold; |
||||
} |
||||
&.dot::after { |
||||
position: absolute; |
||||
right: -18rpx; |
||||
top: 10rpx; |
||||
content: ''; |
||||
width: 18rpx; |
||||
height: 18rpx; |
||||
flex-shrink: 0; |
||||
border-radius: 50%; |
||||
background-color: rgba(241, 44, 54, 1); |
||||
} |
||||
} |
||||
|
||||
.title { |
||||
position: absolute; |
||||
top: 50rpx; |
||||
right: 28rpx; |
||||
width: 338rpx; |
||||
height: 164rpx; |
||||
} |
||||
.ad { |
||||
margin-top: 32rpx; |
||||
.ad-img { |
||||
display: block; |
||||
width: 100%; |
||||
height: 224rpx; |
||||
box-shadow: 0 4rpx 22rpx 0 rgba(0, 0, 0, 0.03); |
||||
} |
||||
|
||||
.conform { |
||||
height: 88rpx; |
||||
text-align: center; |
||||
background: #3795f7; |
||||
line-height: 88rpx; |
||||
font-size: 36rpx; |
||||
color: #ffffff; |
||||
border-radius: 96rpx 96rpx 96rpx 96rpx; |
||||
} |
||||
.list { |
||||
margin-top: 32rpx; |
||||
padding: 32rpx 20rpx; |
||||
background-color: #fff; |
||||
border-radius: 24rpx; |
||||
.list-header { |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: space-between; |
||||
.title { |
||||
width: 146rpx; |
||||
height: 34rpx; |
||||
} |
||||
.more { |
||||
font-size: 28rpx; |
||||
color: rgba(173, 172, 178, 1); |
||||
} |
||||
} |
||||
|
||||
.cancel { |
||||
margin-top: 10rpx; |
||||
font-size: 32rpx; |
||||
color: #999999; |
||||
text-align: center; |
||||
line-height: 88rpx; |
||||
.card { |
||||
margin: 24rpx 0 0; |
||||
background-color: #fff; |
||||
border-radius: 24rpx; |
||||
display: flex; |
||||
.photo { |
||||
flex-shrink: 0; |
||||
width: 176rpx; |
||||
height: 176rpx; |
||||
border-radius: 12rpx; |
||||
} |
||||
.wrap { |
||||
padding: 12rpx 0 0 24rpx; |
||||
flex: 1; |
||||
display: flex; |
||||
flex-direction: column; |
||||
justify-content: space-between; |
||||
.title { |
||||
font-size: 32rpx; |
||||
color: rgba(33, 29, 46, 1); |
||||
line-height: 44rpx; |
||||
overflow: hidden; |
||||
text-overflow: ellipsis; |
||||
display: -webkit-box; |
||||
-webkit-line-clamp: 2; |
||||
-webkit-box-orient: vertical; |
||||
} |
||||
.w-footer { |
||||
margin-top: 28rpx; |
||||
display: flex; |
||||
justify-content: space-between; |
||||
align-items: center; |
||||
.date { |
||||
font-size: 28rpx; |
||||
color: rgba(173, 172, 178, 1); |
||||
} |
||||
.options { |
||||
display: flex; |
||||
align-items: center; |
||||
gap: 60rpx; |
||||
.o-item { |
||||
font-size: 28rpx; |
||||
color: rgba(173, 172, 178, 1); |
||||
display: flex; |
||||
align-items: center; |
||||
gap: 12rpx; |
||||
.icon { |
||||
width: 36rpx; |
||||
height: 36rpx; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
@ -1,79 +1,68 @@
@@ -1,79 +1,68 @@
|
||||
<navbar fixed custom-style="background:{{background}}" back> |
||||
<image class="page-title" slot="left" src="/images/title2.png"></image> |
||||
</navbar> |
||||
|
||||
<view |
||||
class="page" |
||||
style="background: url('{{imageUrl}}home-bg.png?t={{Timestamp}}') no-repeat top center/100% 580rpx;padding-top:{{menuButtonInfo.top}}px;" |
||||
style="background: url('/images/bg2.png') no-repeat top center/100% 616rpx;padding-top: {{pageTop + 20}}px;" |
||||
> |
||||
<image class="logo" mode="widthFix" src="{{imageUrl}}home-logo.png?t={{Timestamp}}"></image> |
||||
<image class="page-title" src="{{imageUrl}}home-title.png?t={{Timestamp}}"></image> |
||||
<view |
||||
class="page-slogan" |
||||
style="background: url('{{imageUrl}}slogan-bg.png?t={{Timestamp}}') no-repeat top center/100% 100%;" |
||||
> |
||||
基于循证医学和临床指南等,构建科学/系统/高效的健康信息平台,助力人人都做家庭健康师,提高预期寿命和健康寿命,减短带病生存期。 |
||||
<view class="user"> |
||||
<button class="avatar-wrapper"> |
||||
<image |
||||
class="avatar" |
||||
src="https://pic1.zhimg.com/50/v2-dcfbab1219ae4f7a7a6db168bb1580a2_720w.jpg?source=2c26e567" |
||||
></image> |
||||
</button> |
||||
<view class="wrap"> |
||||
<view class="nickname">XX医生</view> |
||||
<view class="hostipal"> |
||||
北京天坛医院 |
||||
<view class="tag">三甲</view> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
<view class="search" bind:tap="handleSearch"> |
||||
<image class="icon" src="{{imageUrl}}icon-search.png?t={{Timestamp}}"></image> |
||||
<input |
||||
type="text" |
||||
disabled="{{true}}" |
||||
class="input" |
||||
placeholder-class="place-input" |
||||
confirm-type="search" |
||||
bindconfirm="handleSearch" |
||||
placeholder="请输入要搜索的内容" |
||||
/> |
||||
<view class="banner"> |
||||
<view class="title">甲状腺眼突登记研究项目</view> |
||||
<view class="btn">点此进入EDC系统</view> |
||||
</view> |
||||
<swiper |
||||
wx:if="{{bannerList.length>0}}" |
||||
class="swiper" |
||||
autoplay |
||||
interval="{{5000}}" |
||||
indicator-dots="{{bannerList.length>1}}" |
||||
indicator-color="{{bannerList.length>1 ? 'rgba(255,255,255,0.62)' :'transparent'}}" |
||||
indicator-active-color="{{bannerList.length>1 ? '#FFFFFF' :'transparent'}}" |
||||
> |
||||
<swiper-item |
||||
class="swiper-item" |
||||
wx:for="{{bannerList}}" |
||||
wx:key="configId" |
||||
bind:tap="handleBanner" |
||||
data-index="{{index}}" |
||||
> |
||||
<image class="banner" mode="aspectFill" src="{{item.configImg}}"></image> |
||||
</swiper-item> |
||||
</swiper> |
||||
<view class="cards"> |
||||
<view |
||||
class="card" |
||||
wx:for="{{cateList}}" |
||||
wx:key="index" |
||||
style="background: url('{{imageUrl}}home-card-bg.png?t={{Timestamp}}') no-repeat center/100%" |
||||
bind:tap="handleDetail" |
||||
data-index="{{index}}" |
||||
> |
||||
<view class="title">{{item.CateName}}</view> |
||||
<view class="content">{{item.Intro}}</view> |
||||
<view class="message" style="background: url('/images/bg3.png') no-repeat top center/100% 150rpx"> |
||||
<view class="content dot"> |
||||
您有 |
||||
<text class="num">5</text> |
||||
条新消息待查看 |
||||
</view> |
||||
</view> |
||||
<view class="remark"> |
||||
<view class="r-header">留言板</view> |
||||
<textarea |
||||
class="r-content" |
||||
model:value="{{remark}}" |
||||
placeholder-class="textarea-placeholder" |
||||
placeholder="欢迎反馈您的问题" |
||||
></textarea> |
||||
<view wx:if="{{feedbackCount>0}}" class="submit" bind:tap="handleRemark">提交</view> |
||||
<view wx:else class="submit not-submit" bind:tap="handleNotRemark">提交</view> |
||||
<view class="ad"> |
||||
<image class="ad-img" src="/images/banner1.png"></image> |
||||
</view> |
||||
</view> |
||||
|
||||
<van-popup show="{{ show }}" bind:close="onClose" round style="--popup-background-color: transparent"> |
||||
<view class="popup"> |
||||
<view class="popup-container"> |
||||
<image class="badge" src="{{imageUrl}}login-popup-badge.png?t={{Timestamp}}"></image> |
||||
<image class="title" src="{{imageUrl}}login-popup-title.png?t={{Timestamp}}"></image> |
||||
<view class="conform" bind:tap="handleTopic">开始</view> |
||||
<view class="cancel" bind:tap="handleCancelTopic">关闭</view> |
||||
<view class="list"> |
||||
<view class="list-header"> |
||||
<image class="title" src="/images/title3.png"></image> |
||||
<view class="more"> |
||||
查看全部 |
||||
<van-icon name="arrow" /> |
||||
</view> |
||||
</view> |
||||
<view class="card" bind:tap="handleDetail"> |
||||
<image |
||||
class="photo" |
||||
src="https://pic1.zhimg.com/50/v2-dcfbab1219ae4f7a7a6db168bb1580a2_720w.jpg?source=2c26e567" |
||||
></image> |
||||
<view class="wrap"> |
||||
<view class="title">替妥尤单抗的作用机制、适用场景、使用方式</view> |
||||
<view class="w-footer"> |
||||
<view class="date">2025-06-17</view> |
||||
<view class="options"> |
||||
<view class="o-item"> |
||||
<image class="icon" src="/images/icon7.png"></image> |
||||
24 |
||||
</view> |
||||
<view class="o-item"> |
||||
<image class="icon" src="/images/icon8.png"></image> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
</van-popup> |
||||
</view> |
||||
|
@ -0,0 +1,5 @@
@@ -0,0 +1,5 @@
|
||||
{ |
||||
"usingComponents": { |
||||
"navbar":"/components/navbar/index" |
||||
} |
||||
} |
@ -0,0 +1,84 @@
@@ -0,0 +1,84 @@
|
||||
page { |
||||
background-color: rgba(247, 246, 250, 1); |
||||
} |
||||
|
||||
.page { |
||||
.page-tags { |
||||
position: sticky; |
||||
top: 0; |
||||
left: 0; |
||||
padding: 32rpx 0 32rpx 32rpx; |
||||
display: flex; |
||||
overflow-x: auto; |
||||
display: flex; |
||||
gap: 16rpx; |
||||
flex-wrap: nowrap; |
||||
.tag { |
||||
font-size: 32rpx; |
||||
color: rgba(33, 29, 46, 1); |
||||
line-height: 44rpx; |
||||
padding: 6rpx 32rpx; |
||||
background-color: #fff; |
||||
border-radius: 82rpx; |
||||
&.active { |
||||
color: #fff; |
||||
background-color: rgba(140, 117, 208, 1); |
||||
} |
||||
} |
||||
} |
||||
.card { |
||||
margin: 24rpx 40rpx 0; |
||||
padding: 12rpx; |
||||
background-color: #fff; |
||||
border-radius: 24rpx; |
||||
display: flex; |
||||
.photo { |
||||
flex-shrink: 0; |
||||
width: 176rpx; |
||||
height: 176rpx; |
||||
border-radius: 12rpx; |
||||
} |
||||
.wrap { |
||||
padding: 12rpx 0 0 24rpx; |
||||
display: flex; |
||||
flex-direction: column; |
||||
justify-content: space-between; |
||||
.title { |
||||
font-size: 32rpx; |
||||
color: rgba(33, 29, 46, 1); |
||||
line-height: 44rpx; |
||||
overflow: hidden; |
||||
text-overflow: ellipsis; |
||||
display: -webkit-box; |
||||
-webkit-line-clamp: 2; |
||||
-webkit-box-orient: vertical; |
||||
} |
||||
.w-footer { |
||||
margin-top: 28rpx; |
||||
display: flex; |
||||
justify-content: space-between; |
||||
align-items: center; |
||||
.date { |
||||
font-size: 28rpx; |
||||
color: rgba(173, 172, 178, 1); |
||||
} |
||||
.options { |
||||
display: flex; |
||||
align-items: center; |
||||
gap: 60rpx; |
||||
.o-item { |
||||
font-size: 28rpx; |
||||
color: rgba(173, 172, 178, 1); |
||||
display: flex; |
||||
align-items: center; |
||||
gap: 12rpx; |
||||
.icon { |
||||
width: 36rpx; |
||||
height: 36rpx; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,46 @@
@@ -0,0 +1,46 @@
|
||||
const _app = getApp<IAppOption>(); |
||||
|
||||
Page({ |
||||
data: { |
||||
list: [] as any[], |
||||
pagination: { |
||||
page: 1, |
||||
pages: 1, |
||||
count: 1, |
||||
}, |
||||
}, |
||||
onLoad() {}, |
||||
getList(newPage = 1) { |
||||
wx.ajax({ |
||||
method: 'GET', |
||||
url: '?r=wtx/knowledge/list', |
||||
data: { |
||||
page: newPage, |
||||
}, |
||||
}).then((res) => { |
||||
const list = res.page === 1 ? res.list : [...this.data.list, ...res.list]; |
||||
this.setData({ |
||||
total: res.count, |
||||
list, |
||||
pagination: { |
||||
page: res.page, |
||||
pages: res.pages, |
||||
count: res.count, |
||||
}, |
||||
}); |
||||
}); |
||||
}, |
||||
onReachBottom() { |
||||
const { page, pages } = this.data.pagination; |
||||
if (pages > page) { |
||||
this.getList(page + 1); |
||||
} |
||||
}, |
||||
handleDetail() { |
||||
wx.navigateTo({ |
||||
url: '/pages/informationDetail/index', |
||||
}); |
||||
}, |
||||
}); |
||||
|
||||
export {}; |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
<navbar fixed title="资料库" custom-style="background:{{background}}"></navbar> |
||||
|
||||
<view |
||||
class="page" |
||||
style="background: url('/images/bg2.png') no-repeat top center/100% 616rpx;padding-top: {{pageTop + 20}}px;" |
||||
> |
||||
<view class="page-tags" style="background:{{background}};top:{{pageTop}}px;"> |
||||
<view class="tag active">全部</view> |
||||
<view class="tag">安全性</view> |
||||
<view class="tag">有效性</view> |
||||
</view> |
||||
<view class="card" bind:tap="handleDetail"> |
||||
<image |
||||
class="photo" |
||||
src="https://pic1.zhimg.com/50/v2-dcfbab1219ae4f7a7a6db168bb1580a2_720w.jpg?source=2c26e567" |
||||
></image> |
||||
<view class="wrap"> |
||||
<view class="title">替妥尤单抗的作用机制、适用场景、使用方式</view> |
||||
<view class="w-footer"> |
||||
<view class="date">2025-06-17</view> |
||||
<view class="options"> |
||||
<view class="o-item"> |
||||
<image class="icon" src="/images/icon7.png"></image> |
||||
24 |
||||
</view> |
||||
<view class="o-item"> |
||||
<image class="icon" src="/images/icon8.png"></image> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
<pagination pagination="{{pagination}}"></pagination> |
||||
</view> |
||||
|
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
{ |
||||
"navigationStyle": "default", |
||||
"navigationBarTitleText": "资料库详情页", |
||||
"usingComponents": { |
||||
"mp-html": "mp-html" |
||||
} |
||||
} |
@ -0,0 +1,91 @@
@@ -0,0 +1,91 @@
|
||||
.page { |
||||
padding: 40rpx; |
||||
.title { |
||||
font-size: 40rpx; |
||||
color: rgba(33, 29, 46, 1); |
||||
font-weight: bold; |
||||
line-height: 48rpx; |
||||
} |
||||
.info { |
||||
margin-top: 26rpx; |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: space-between; |
||||
.date { |
||||
font-size: 28rpx; |
||||
color: rgba(173, 172, 178, 1); |
||||
} |
||||
.eye { |
||||
display: flex; |
||||
align-items: center; |
||||
gap: 12rpx; |
||||
font-size: 28rpx; |
||||
color: rgba(173, 172, 178, 1); |
||||
|
||||
.icon { |
||||
width: 40rpx; |
||||
height: 40rpx; |
||||
} |
||||
} |
||||
} |
||||
.file-card { |
||||
margin-top: 32rpx; |
||||
padding: 22rpx 32rpx; |
||||
background: linear-gradient(352deg, #f7f6fa 0%, #f2edff 100%); |
||||
border-radius: 24rpx 24rpx 24rpx 24rpx; |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: space-between; |
||||
gap: 24rpx; |
||||
.icon { |
||||
width: 84rpx; |
||||
height: 84rpx; |
||||
} |
||||
.content { |
||||
font-size: 32rpx; |
||||
color: rgba(33, 29, 46, 1); |
||||
line-height: 48rpx; |
||||
} |
||||
.btn { |
||||
flex-shrink: 0; |
||||
padding: 4rpx 32rpx; |
||||
font-size: 32rpx; |
||||
line-height: 48rpx; |
||||
color: rgba(255, 255, 255, 1); |
||||
background-color: rgba(140, 117, 208, 1); |
||||
border-radius: 64rpx; |
||||
} |
||||
} |
||||
.mp-html { |
||||
margin-top: 32rpx; |
||||
} |
||||
|
||||
.page-footer { |
||||
position: fixed; |
||||
bottom: 0px; |
||||
left: 0; |
||||
padding: 18rpx 40rpx; |
||||
width: 100%; |
||||
box-sizing: border-box; |
||||
background-color: #fff; |
||||
box-shadow: 0rpx -2rpx 36rpx 0rpx rgba(0, 0, 0, 0.16); |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: space-between; |
||||
gap: 22rpx; |
||||
.avatar { |
||||
width: 66rpx; |
||||
height: 66rpx; |
||||
} |
||||
.title { |
||||
flex: 1; |
||||
font-size: 28rpx; |
||||
color: rgba(140, 117, 208, 1); |
||||
line-height: 36rpx; |
||||
} |
||||
.icon { |
||||
width: 40rpx; |
||||
height: 40rpx; |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,10 @@
@@ -0,0 +1,10 @@
|
||||
const _app = getApp<IAppOption>(); |
||||
|
||||
Page({ |
||||
data: { |
||||
doc: '1', |
||||
}, |
||||
onLoad() {}, |
||||
}); |
||||
|
||||
export {}; |
@ -0,0 +1,25 @@
@@ -0,0 +1,25 @@
|
||||
<view class="page"> |
||||
<view class="title">70年来首款新药! 信达生物替妥尤单抗国内获批上市</view> |
||||
<view class="info"> |
||||
<view class="date">2025-06-17</view> |
||||
<view class="eye"> |
||||
<image class="icon" src="/images/icon9.png"></image> |
||||
24 |
||||
</view> |
||||
</view> |
||||
<view class="file-card"> |
||||
<image class="icon" src="/images/file-icon1.png"></image> |
||||
<view class="content">关于甲状腺眼病及其疗法</view> |
||||
<view class="btn">下载</view> |
||||
</view> |
||||
|
||||
<view class="mp-html"> |
||||
<mp-html content="{{doc}}"></mp-html> |
||||
</view> |
||||
|
||||
<view class="page-footer"> |
||||
<image class="avatar" src="/images/icon10.png"></image> |
||||
<view class="title">TED规范化诊治中心</view> |
||||
<view class="icon" src="/images/icon8.png"></view> |
||||
</view> |
||||
</view> |
@ -1,7 +1,6 @@
@@ -1,7 +1,6 @@
|
||||
{ |
||||
"navigationStyle": "custom", |
||||
"usingComponents": { |
||||
"van-icon": "@vant/weapp/icon/index", |
||||
"van-nav-bar": "@vant/weapp/nav-bar/index", |
||||
"van-popup": "@vant/weapp/popup/index" |
||||
"van-divider": "@vant/weapp/divider/index" |
||||
} |
||||
} |
||||
|
@ -1,143 +1,132 @@
@@ -1,143 +1,132 @@
|
||||
page { |
||||
background-color: rgba(247, 246, 250, 1); |
||||
} |
||||
.page { |
||||
position: relative; |
||||
padding: 0 70rpx 100rpx; |
||||
.logo { |
||||
position: absolute; |
||||
left: 32rpx; |
||||
width: 327rpx; |
||||
max-height: 100rpx; |
||||
display: block; |
||||
margin: 0 auto; |
||||
width: 164rpx; |
||||
height: 164rpx; |
||||
border-radius: 24rpx; |
||||
} |
||||
.container { |
||||
margin-top: 336rpx; |
||||
padding: 64rpx 32rpx 0; |
||||
background: linear-gradient(to bottom, rgba(255, 255, 255, 0.76) 0%, #ffffff 100%) no-repeat top center/100% 186rpx; |
||||
border-radius: 32rpx; |
||||
|
||||
.tel { |
||||
.input { |
||||
padding: 24rpx 48rpx; |
||||
background-color: #f4f7fa; |
||||
border-radius: 96rpx; |
||||
font-size: 32rpx; |
||||
} |
||||
|
||||
.place-input { |
||||
color: #babdc1; |
||||
.page-title { |
||||
display: block; |
||||
margin: 32rpx auto 0; |
||||
width: 510rpx; |
||||
height: 54rpx; |
||||
} |
||||
.protocol { |
||||
margin-top: 32rpx; |
||||
.p-title { |
||||
font-size: 36rpx; |
||||
color: rgba(105, 104, 110, 1); |
||||
font-weight: bold; |
||||
} |
||||
.p-content { |
||||
margin-top: 20rpx; |
||||
font-size: 32rpx; |
||||
color: rgba(105, 104, 110, 1); |
||||
line-height: 64rpx; |
||||
.link { |
||||
color: rgba(140, 117, 208, 1); |
||||
} |
||||
} |
||||
|
||||
.code-row { |
||||
margin-top: 32rpx; |
||||
} |
||||
.phone { |
||||
margin-top: 46rpx; |
||||
height: 88rpx; |
||||
font-size: 32rpx; |
||||
color: rgba(255, 255, 255, 1); |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: center; |
||||
background: linear-gradient(89deg, #8c75d0 0%, #b7bdff 100%); |
||||
border-radius: 84rpx 84rpx 84rpx 84rpx; |
||||
} |
||||
.divider { |
||||
margin: 80rpx 150rpx 0; |
||||
.van-divider { |
||||
color: rgba(173, 172, 178, 1); |
||||
} |
||||
} |
||||
.tel-btn { |
||||
margin: 0 auto; |
||||
padding: 4rpx 0; |
||||
width: 266rpx; |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: center; |
||||
gap: 12rpx; |
||||
background: #fff; |
||||
border-radius: 24rpx; |
||||
font-size: 24rpx; |
||||
color: rgba(173, 172, 178, 1); |
||||
.icon { |
||||
width: 40rpx; |
||||
height: 40rpx; |
||||
} |
||||
} |
||||
.form { |
||||
margin-top: 50rpx; |
||||
.form-row { |
||||
margin-bottom: 32rpx; |
||||
display: flex; |
||||
justify-content: space-between; |
||||
align-items: center; |
||||
gap: 30rpx; |
||||
background-color: #f4f7fa; |
||||
border-radius: 96rpx; |
||||
|
||||
.code { |
||||
padding: 12rpx 12rpx 12rpx 32rpx; |
||||
background-color: rgba(255, 255, 255, 1); |
||||
border-radius: 132rpx; |
||||
.input { |
||||
flex: 1; |
||||
padding: 24rpx 48rpx; |
||||
line-height: 60rpx; |
||||
height: 60rpx; |
||||
font-size: 32rpx; |
||||
} |
||||
|
||||
.place-code { |
||||
color: #babdc1; |
||||
.place-input { |
||||
color: rgba(173, 172, 178, 0.6); |
||||
} |
||||
|
||||
.btn { |
||||
flex-shrink: 0; |
||||
padding: 24rpx; |
||||
width: 7em; |
||||
text-align: center; |
||||
color: #3795f7; |
||||
font-size: 32rpx; |
||||
border-radius: 96rpx; |
||||
padding: 0 24rpx; |
||||
height: 60rpx; |
||||
font-size: 28rpx; |
||||
color: rgba(140, 117, 208, 1); |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: center; |
||||
border-radius: 20rpx; |
||||
} |
||||
} |
||||
|
||||
.protool { |
||||
margin-top: 56rpx; |
||||
display: flex; |
||||
align-items: center; |
||||
font-size: 28rpx; |
||||
color: #999; |
||||
|
||||
.radio { |
||||
transform: scale(0.7); |
||||
} |
||||
|
||||
.link { |
||||
color: #3795f7; |
||||
} |
||||
} |
||||
|
||||
.submit { |
||||
margin-top: 70rpx; |
||||
text-align: center; |
||||
font-size: 36rpx; |
||||
color: #3795f7; |
||||
line-height: 84rpx; |
||||
border: 1px solid rgba(55, 149, 247, 0.2); |
||||
border-radius: 96rpx 96rpx 96rpx 96rpx; |
||||
} |
||||
|
||||
.tel-btn { |
||||
margin-top: 32rpx; |
||||
text-align: center; |
||||
font-size: 36rpx; |
||||
color: #ffffff; |
||||
line-height: 88rpx; |
||||
border-radius: 96rpx 96rpx 96rpx 96rpx; |
||||
background: linear-gradient(90deg, #134df6 16%, #3795f7 100%); |
||||
} |
||||
|
||||
.visitor { |
||||
margin-top: 236rpx; |
||||
margin-top: 50rpx; |
||||
height: 84rpx; |
||||
font-size: 32rpx; |
||||
color: rgba(140, 117, 208, 1); |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: center; |
||||
font-size: 32rpx; |
||||
line-height: 1; |
||||
color: #3795f7; |
||||
border-radius: 84rpx 84rpx 84rpx 84rpx; |
||||
border: 1px solid rgba(140, 117, 208, 1); |
||||
} |
||||
} |
||||
} |
||||
|
||||
.popup { |
||||
padding: 33rpx 0 0; |
||||
|
||||
.popup-container { |
||||
padding: 64rpx 44rpx 10rpx; |
||||
width: 622rpx; |
||||
box-sizing: border-box; |
||||
background: linear-gradient(180deg, #e7f8ff 0%, #ffffff 100%); |
||||
border-radius: 32rpx; |
||||
position: relative; |
||||
|
||||
.content { |
||||
font-size: 36rpx; |
||||
color: #65686c; |
||||
text-align: center; |
||||
.link { |
||||
color: #3795f7; |
||||
.signature { |
||||
margin-top: 46rpx; |
||||
font-size: 28rpx; |
||||
color: rgba(161, 164, 172, 1); |
||||
line-height: 48rpx; |
||||
.row { |
||||
margin-top: 24rpx; |
||||
display: flex; |
||||
gap: 16rpx; |
||||
.check { |
||||
margin-top: 6rpx; |
||||
flex-shrink: 0; |
||||
width: 36rpx; |
||||
height: 36rpx; |
||||
} |
||||
} |
||||
|
||||
.conform { |
||||
margin-top: 48rpx; |
||||
height: 88rpx; |
||||
text-align: center; |
||||
background: #3795f7; |
||||
line-height: 86rpx; |
||||
font-size: 36rpx; |
||||
color: #ffffff; |
||||
border-radius: 96rpx 96rpx 96rpx 96rpx; |
||||
} |
||||
|
||||
.cancel { |
||||
padding: 32rpx 0; |
||||
font-size: 32rpx; |
||||
color: #3795f7; |
||||
text-align: center; |
||||
.link { |
||||
color: rgba(140, 117, 208, 1); |
||||
} |
||||
} |
||||
} |
||||
|
@ -1,170 +1,123 @@
@@ -1,170 +1,123 @@
|
||||
const app = getApp<IAppOption>(); |
||||
let timer: number | null = 0; |
||||
const app = getApp<IAppOption>() |
||||
let timer = null as null | number |
||||
|
||||
Page({ |
||||
data: { |
||||
menuButtonInfo: {}, |
||||
showTel: false, |
||||
mobile: '', |
||||
code: '', |
||||
protool: false, |
||||
codeText: '发送验证码', |
||||
|
||||
back: false, |
||||
codeText: '发送验证码', |
||||
|
||||
type: '', |
||||
show: false, |
||||
}, |
||||
onLoad(options) { |
||||
this.setData({ |
||||
back: options.back === '1', |
||||
}); |
||||
}, |
||||
onShow() { |
||||
wx.hideShareMenu(); |
||||
check1: false, |
||||
check2: false, |
||||
check3: false, |
||||
}, |
||||
onLoad() {}, |
||||
getCode() { |
||||
if (timer) return; |
||||
const mobile = this.data.mobile; |
||||
if (timer) return |
||||
const mobile = this.data.mobile |
||||
if (!mobile) { |
||||
wx.showToast({ |
||||
title: '手机号不能为空', |
||||
icon: 'none', |
||||
}); |
||||
return; |
||||
}) |
||||
return |
||||
} |
||||
// 验证手机号
|
||||
if (!/^1[3-9,]\d{9}$/.test(mobile)) { |
||||
wx.showToast({ |
||||
title: '手机号格式不正确', |
||||
icon: 'none', |
||||
}); |
||||
return; |
||||
}) |
||||
return |
||||
} |
||||
wx.ajax({ |
||||
method: 'POST', |
||||
url: '?r=shizhong/login/send-verify-code', |
||||
url: '?r=wtx/login/send-verify-code', |
||||
data: { |
||||
mobile, |
||||
}, |
||||
}).then(() => { |
||||
}).then((_res) => { |
||||
wx.showToast({ |
||||
icon: 'none', |
||||
title: '验证码已发送~', |
||||
}); |
||||
let time = 60; |
||||
}) |
||||
let time = 60 |
||||
timer = setInterval(() => { |
||||
time--; |
||||
time-- |
||||
this.setData({ |
||||
codeText: `${time}s后重新发送`, |
||||
}); |
||||
}) |
||||
if (time <= 0) { |
||||
clearInterval(timer as number); |
||||
timer = null; |
||||
clearInterval(timer as number) |
||||
timer = null |
||||
this.setData({ |
||||
codeText: '发送验证码', |
||||
}); |
||||
}) |
||||
} |
||||
}, 1000); |
||||
}); |
||||
}, 1000) |
||||
}) |
||||
}, |
||||
handleSubmit() { |
||||
const { show, mobile, code, protool } = this.data; |
||||
if (!protool && !show) { |
||||
this.setData({ |
||||
type: 'login', |
||||
show: true, |
||||
}); |
||||
return; |
||||
} else if (show) { |
||||
this.setData({ |
||||
show: false, |
||||
protool: true, |
||||
}); |
||||
} |
||||
if (!mobile) { |
||||
wx.showToast({ |
||||
title: '请输入手机号', |
||||
icon: 'none', |
||||
}); |
||||
return; |
||||
} |
||||
if (!code) { |
||||
handleDocRule() { |
||||
const { check1, check2, check3 } = this.data |
||||
return new Promise((resolve) => { |
||||
if (check1 && check2 && check3) { |
||||
return resolve(true) |
||||
} |
||||
wx.showToast({ |
||||
title: '请输入验证码', |
||||
title: '请同意相关协议', |
||||
icon: 'none', |
||||
}); |
||||
return; |
||||
} |
||||
}) |
||||
}) |
||||
}, |
||||
async handleSubmit() { |
||||
await this.handleDocRule() |
||||
const { mobile, code } = this.data |
||||
wx.ajax({ |
||||
method: 'POST', |
||||
url: '?r=shizhong/login/reg-login', |
||||
url: '?r=wtx/login/reg-login', |
||||
data: { |
||||
mobile, |
||||
code, |
||||
}, |
||||
}).then(() => { |
||||
this.submitCallback(); |
||||
}); |
||||
}).then((_res) => { |
||||
this.submitCallback() |
||||
}) |
||||
}, |
||||
handleWxSubmit(e: any) { |
||||
const { show, protool } = this.data; |
||||
if (!protool && !show) { |
||||
this.setData({ |
||||
type: 'phone', |
||||
show: true, |
||||
}); |
||||
return; |
||||
} else if (show) { |
||||
this.setData({ |
||||
show: false, |
||||
protool: true, |
||||
}); |
||||
} |
||||
const { iv, encryptedData } = e.detail; |
||||
handleWxSubmit(e: WechatMiniprogram.CustomEvent) { |
||||
const { iv, encryptedData } = e.detail |
||||
if (iv && encryptedData) { |
||||
wx.ajax({ |
||||
method: 'POST', |
||||
url: '?r=shizhong/login/wx-reg-login', |
||||
url: '?r=wtx/login/wx-reg-login', |
||||
data: { |
||||
iv: encodeURIComponent(iv), |
||||
encryptedData: encodeURIComponent(encryptedData), |
||||
}, |
||||
}).then(() => { |
||||
this.submitCallback(); |
||||
}); |
||||
}).then((_res) => { |
||||
this.submitCallback() |
||||
}) |
||||
} |
||||
}, |
||||
submitCallback() { |
||||
app.globalData.isLogin = 1; |
||||
const backPath = app.globalData.backPath; |
||||
wx.reLaunch({ url: backPath || '/pages/home/index' }); |
||||
app.globalData.backPath = ''; |
||||
app.getUserInfo(2).then((res) => { |
||||
if (res.PatientId) { |
||||
wx.reLaunch({ |
||||
url: `/patient/pages/index/index`, |
||||
}) |
||||
} else { |
||||
wx.navigateTo({ |
||||
url: `/patient/pages/entryInfo/index?aid=${res.applyIntentionId}`, |
||||
}) |
||||
} |
||||
}) |
||||
}, |
||||
handleProtool() { |
||||
handleShowTel() { |
||||
this.setData({ |
||||
protool: !this.data.protool, |
||||
}); |
||||
}, |
||||
handleNavProtool() { |
||||
wx.navigateTo({ url: `/pages/protocol/index` }); |
||||
}, |
||||
handleVisitor() { |
||||
if (app.globalData.isLogin !== 1) { |
||||
app.globalData.isLogin = 999; |
||||
app.globalData.backPath = ''; |
||||
} |
||||
wx.reLaunch({ |
||||
url: '/pages/home/index', |
||||
}); |
||||
}, |
||||
handleCancel() { |
||||
this.setData({ |
||||
show: false, |
||||
}); |
||||
}, |
||||
handleBack() { |
||||
wx.navigateBack(); |
||||
showTel: !this.data.showTel, |
||||
}) |
||||
}, |
||||
}); |
||||
}) |
||||
|
||||
export {}; |
||||
export {} |
||||
|
@ -1,73 +1,67 @@
@@ -1,73 +1,67 @@
|
||||
<van-nav-bar |
||||
wx:if="{{back}}" |
||||
title="" |
||||
border="{{false}}" |
||||
custom-style="background:transparent" |
||||
bind:click-left="handleBack" |
||||
fixed |
||||
> |
||||
<van-icon name="arrow-left" slot="left" color="#000" size="46rpx" /> |
||||
</van-nav-bar> |
||||
<view |
||||
class="page" |
||||
style="background: url('{{imageUrl}}login-bg.png?t={{Timestamp}}') no-repeat top center/100% 624rpx;padding-top:{{menuButtonInfo.bottom}}px;" |
||||
style="padding-top: {{pageTop + 60}}px;background:url('/images/bg1.png') no-repeat top center/100% 484rpx;" |
||||
> |
||||
<image |
||||
class="logo" |
||||
style="top:{{menuButtonInfo.top}}px" |
||||
mode="widthFix" |
||||
src="{{imageUrl}}home-logo.png?t={{Timestamp}}" |
||||
></image> |
||||
<view class="container"> |
||||
<view class="tel"> |
||||
<image class="logo" src="/images/logo1.png"></image> |
||||
<image class="page-title" src="/images/title1.png"></image> |
||||
<view class="protocol"> |
||||
<view class="p-title">尊敬的医生您好</view> |
||||
<view class="p-content"> |
||||
在您加入TED规范化诊治中心之前,请您阅读并充分理解 |
||||
<text class="link">《隐私协议保护政策》</text> |
||||
,了解您的权益及相关数据处理方法,我们将严格按照法律法规及 |
||||
<text class="link">《隐私协议保护政策》</text> |
||||
的相关规定,保证您的个人信息不受侵犯。 |
||||
</view> |
||||
</view> |
||||
<button |
||||
wx:if="{{check1 && check2 && check3}}" |
||||
class="phone" |
||||
open-type="getPhoneNumber" |
||||
bindgetphonenumber="handleWxSubmit" |
||||
> |
||||
手机号一键登录 |
||||
</button> |
||||
<button wx:else class="phone" bind:tap="handleDocRule">手机号一键登录</button> |
||||
<view class="divider"> |
||||
<van-divider class="van-divider" contentPosition="center">或者</van-divider> |
||||
</view> |
||||
<view class="tel-btn" bind:tap="handleShowTel"> |
||||
<image class="icon" src="/images/icon1.png"></image> |
||||
手机号验证码 |
||||
</view> |
||||
<view class="form" wx:if="{{showTel}}"> |
||||
<view class="form-row"> |
||||
<input |
||||
class="input" |
||||
placeholder-class="place-input" |
||||
type="number" |
||||
maxlength="11" |
||||
placeholder="请输入您的手机号" |
||||
model:value="{{mobile}}" |
||||
placeholder-class="place-input" |
||||
class="input" |
||||
placeholder="请输入手机号" |
||||
/> |
||||
</view> |
||||
<view class="code-row"> |
||||
<view class="form-row"> |
||||
<input |
||||
type="text" |
||||
placeholder="请输入验证码" |
||||
class="code" |
||||
placeholder-class="place-code" |
||||
model:value="{{code}}" |
||||
class="input" |
||||
medal:value="{{code}}" |
||||
placeholder-class="place-input" |
||||
type="number" |
||||
maxlength="6" |
||||
placeholder="请输入验证码" |
||||
/> |
||||
<view class="btn" bind:tap="getCode">{{codeText}}</view> |
||||
</view> |
||||
<view class="protool"> |
||||
<radio class="radio" color="#3795F7" checked="{{protool}}" bind:tap="handleProtool"></radio> |
||||
我已阅读并同意 |
||||
<text class="link" bind:tap="handleNavProtool">《用户隐私协议》</text> |
||||
</view> |
||||
<view class="submit" bind:tap="handleSubmit">手机验证码登录</view> |
||||
<button wx:if="{{protool}}" class="tel-btn" open-type="getPhoneNumber" bindgetphonenumber="handleWxSubmit"> |
||||
手机号一键快捷登录 |
||||
</button> |
||||
<button wx:else class="tel-btn" bind:tap="handleWxSubmit">手机号一键快捷登录</button> |
||||
<view class="visitor" bind:tap="handleVisitor" wx:if="{{!back}}"> |
||||
游客访问 |
||||
<van-icon name="arrow" /> |
||||
</view> |
||||
<view class="submit" bind:tap="handleSubmit">立即加入</view> |
||||
</view> |
||||
</view> |
||||
|
||||
<van-popup show="{{ show }}" bind:close="onClose" round style="--popup-background-color: transparent"> |
||||
<view class="popup"> |
||||
<view class="popup-container"> |
||||
<div class="content"> |
||||
已阅读并同意 |
||||
<text class="link" bind:tap="handleNavProtool">《用户隐私协议》</text> |
||||
</div> |
||||
<button wx:if="{{type==='phone'}}" class="conform" open-type="getPhoneNumber" bindgetphonenumber="handleWxSubmit"> |
||||
同意并继续 |
||||
</button> |
||||
<button wx:else class="conform" bind:tap="handleSubmit">同意并继续</button> |
||||
<view class="cancel" bind:tap="handleCancel">取消</view> |
||||
<view class="signature"> |
||||
<view class="row"> |
||||
<image class="check" src="/images/checkbox-active.png"></image> |
||||
<view class="r-content"> |
||||
我特此同意依照此 |
||||
<text class="link">《隐私协议保护政策》</text> |
||||
规定收集我的个人敏感信息 |
||||
</view> |
||||
</view> |
||||
</view> |
||||
</van-popup> |
||||
</view> |
||||
|
@ -0,0 +1,5 @@
@@ -0,0 +1,5 @@
|
||||
{ |
||||
"navigationStyle": "default", |
||||
"navigationBarTitleText": "消息", |
||||
"usingComponents": {} |
||||
} |
@ -0,0 +1,57 @@
@@ -0,0 +1,57 @@
|
||||
page { |
||||
background-color: rgba(247, 246, 250, 1); |
||||
} |
||||
.page { |
||||
padding: 32rpx 30rpx; |
||||
.card1 { |
||||
margin-bottom: 32rpx; |
||||
padding: 0 32rpx; |
||||
border-radius: 24rpx; |
||||
background-color: #fff; |
||||
.title { |
||||
padding: 32rpx 0 24rpx; |
||||
font-size: 32rpx; |
||||
color: rgba(33, 29, 46, 1); |
||||
font-weight: bold; |
||||
} |
||||
.content { |
||||
padding-bottom: 32rpx; |
||||
font-size: 32rpx; |
||||
color: rgba(105, 104, 110, 1); |
||||
line-height: 48rpx; |
||||
border-bottom: 1px solid rgba(173, 172, 178, 0.1); |
||||
} |
||||
.c-footer { |
||||
padding: 24rpx 0; |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: space-between; |
||||
.btn { |
||||
font-size: 32rpx; |
||||
color: rgba(105, 104, 110, 1); |
||||
} |
||||
.more { |
||||
width: 16rpx; |
||||
height: 36rpx; |
||||
} |
||||
} |
||||
} |
||||
.card2 { |
||||
margin-bottom: 32rpx; |
||||
padding: 32rpx; |
||||
border-radius: 24rpx; |
||||
background-color: #fff; |
||||
.title { |
||||
font-size: 32rpx; |
||||
color: rgba(33, 29, 46, 1); |
||||
line-height: 48rpx; |
||||
font-weight: bold; |
||||
} |
||||
.photo { |
||||
margin-top: 24rpx; |
||||
width: 100%; |
||||
height: 260rpx; |
||||
border-radius: 16rpx; |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,41 @@
@@ -0,0 +1,41 @@
|
||||
const _app = getApp<IAppOption>(); |
||||
|
||||
Page({ |
||||
data: { |
||||
list: [] as any[], |
||||
pagination: { |
||||
page: 1, |
||||
pages: 1, |
||||
count: 1, |
||||
}, |
||||
}, |
||||
onLoad() {}, |
||||
getList(newPage = 1) { |
||||
wx.ajax({ |
||||
method: 'GET', |
||||
url: '?r=wtx/knowledge/list', |
||||
data: { |
||||
page: newPage, |
||||
}, |
||||
}).then((res) => { |
||||
const list = res.page === 1 ? res.list : [...this.data.list, ...res.list]; |
||||
this.setData({ |
||||
total: res.count, |
||||
list, |
||||
pagination: { |
||||
page: res.page, |
||||
pages: res.pages, |
||||
count: res.count, |
||||
}, |
||||
}); |
||||
}); |
||||
}, |
||||
onReachBottom() { |
||||
const { page, pages } = this.data.pagination; |
||||
if (pages > page) { |
||||
this.getList(page + 1); |
||||
} |
||||
}, |
||||
}); |
||||
|
||||
export {} |
@ -0,0 +1,23 @@
@@ -0,0 +1,23 @@
|
||||
<view class="page"> |
||||
<view class="card1"> |
||||
<view class="title">项目进展更新</view> |
||||
<view class="content"> |
||||
随着城市化进程的加速,城市交通拥堵问题日益严重,给人们的生活和工作带来了诸多不便。汽车尾气排放导致空气污染加剧... |
||||
</view> |
||||
<view class="c-footer"> |
||||
<view class="btn">去查看</view> |
||||
<image class="more" src="/images/icon3.png"></image> |
||||
</view> |
||||
</view> |
||||
<view class="card2"> |
||||
<view class="title"> |
||||
随着城市化进程的加速,城市交通拥堵问题日益严重,给人们的生活和工作带来了诸多不便。汽车尾气排放导致空气污染加剧... |
||||
</view> |
||||
<image |
||||
class="photo" |
||||
mode="aspectFill" |
||||
src="https://pic1.zhimg.com/50/v2-dcfbab1219ae4f7a7a6db168bb1580a2_720w.jpg?source=2c26e567" |
||||
></image> |
||||
</view> |
||||
<pagination pagination="{{pagination}}"></pagination> |
||||
</view> |
@ -1,7 +1,4 @@
@@ -1,7 +1,4 @@
|
||||
{ |
||||
"usingComponents": { |
||||
"van-icon": "@vant/weapp/icon/index", |
||||
"global-toast": "/components/global-toast/index", |
||||
"uploadFile": "/components/uploadFile/index" |
||||
} |
||||
"navigationStyle": "custom", |
||||
"usingComponents": {} |
||||
} |
||||
|
@ -1,90 +1,96 @@
@@ -1,90 +1,96 @@
|
||||
page { |
||||
background-color: #f3f4f5; |
||||
background-color: rgba(247, 247, 250, 1); |
||||
} |
||||
.page { |
||||
background: linear-gradient(180deg, #d2f1fe 0%, rgba(244, 248, 249, 0) 100%) no-repeat top center / 100% 682rpx; |
||||
.login { |
||||
margin: 32rpx 62rpx 0; |
||||
padding: 52rpx 30rpx; |
||||
.user { |
||||
display: flex; |
||||
gap: 24rpx; |
||||
.upload { |
||||
align-items: center; |
||||
.avatar-wrapper { |
||||
flex-shrink: 0; |
||||
padding: 0; |
||||
margin: 0; |
||||
width: 124rpx; |
||||
height: 124rpx; |
||||
outline: none; |
||||
border: 2px solid #fff; |
||||
border-radius: 50%; |
||||
&::after { |
||||
border: none; |
||||
} |
||||
.avatar { |
||||
width: 160rpx; |
||||
height: 160rpx; |
||||
width: 100%; |
||||
height: 100%; |
||||
border-radius: 50%; |
||||
} |
||||
} |
||||
.user { |
||||
padding-top: 10rpx; |
||||
.wrap { |
||||
flex: 1; |
||||
.name { |
||||
padding-left: 24rpx; |
||||
.nickname { |
||||
font-size: 40rpx; |
||||
color: #141515; |
||||
font-weight: bold; |
||||
line-height: 1; |
||||
word-break: break-all; |
||||
.icon { |
||||
vertical-align: -4rpx; |
||||
width: 36rpx; |
||||
height: 36rpx; |
||||
} |
||||
color: rgba(1, 1, 5, 1); |
||||
} |
||||
.tel { |
||||
margin-top: 8rpx; |
||||
font-size: 28rpx; |
||||
color: #999999; |
||||
line-height: 40rpx; |
||||
} |
||||
.status { |
||||
margin-top: 8rpx; |
||||
.hostipal { |
||||
margin-top: 16rpx; |
||||
line-height: 1; |
||||
font-size: 28rpx; |
||||
color: #999999; |
||||
line-height: 40rpx; |
||||
color: rgba(173, 172, 178, 1); |
||||
.tag { |
||||
display: inline-block; |
||||
font-size: 24rpx; |
||||
color: rgba(255, 255, 255, 1); |
||||
padding: 2rpx 10rpx; |
||||
background: #8c75d0; |
||||
border-radius: 8rpx 8rpx 8rpx 8rpx; |
||||
} |
||||
} |
||||
} |
||||
.switch { |
||||
display: flex; |
||||
align-items: center; |
||||
font-size: 28rpx; |
||||
color: #999999; |
||||
} |
||||
} |
||||
.no-login { |
||||
margin: 32rpx 62rpx 0; |
||||
display: flex; |
||||
align-items: center; |
||||
gap: 24rpx; |
||||
.avatar { |
||||
width: 160rpx; |
||||
height: 160rpx; |
||||
} |
||||
.name { |
||||
font-size: 40rpx; |
||||
color: #3795f7; |
||||
.edit { |
||||
flex-shrink: 0; |
||||
width: 48rpx; |
||||
height: 48rpx; |
||||
} |
||||
} |
||||
.nav-list { |
||||
margin: 70rpx 32rpx 0; |
||||
padding: 0 30rpx; |
||||
background: #ffffff; |
||||
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||
border: 2rpx solid #ffffff; |
||||
.nav-item { |
||||
.list { |
||||
margin-top: 32rpx; |
||||
padding: 0 32rpx; |
||||
border-radius: 24rpx; |
||||
background-color: #fff; |
||||
.list-item { |
||||
padding: 32rpx 0; |
||||
border-bottom: 1px solid rgba(173, 172, 178, 0.1); |
||||
display: flex; |
||||
align-items: center; |
||||
border-bottom: 1px solid #f0f0f0; |
||||
font-size: 36rpx; |
||||
color: #000000; |
||||
gap: 20rpx; |
||||
&:last-of-type { |
||||
border: none; |
||||
} |
||||
.icon { |
||||
margin-right: 20rpx; |
||||
width: 48rpx; |
||||
height: 48rpx; |
||||
width: 44rpx; |
||||
height: 44rpx; |
||||
} |
||||
.content { |
||||
font-size: 32rpx; |
||||
color: rgba(33, 29, 46, 1); |
||||
line-height: 40rpx; |
||||
} |
||||
.more { |
||||
width: 16rpx; |
||||
height: 36rpx; |
||||
} |
||||
} |
||||
} |
||||
.login-out { |
||||
margin-top: 48rpx; |
||||
height: 84rpx; |
||||
border-radius: 130rpx 130rpx 130rpx 130rpx; |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: center; |
||||
font-size: 32rpx; |
||||
color: rgba(33, 29, 46, 1); |
||||
background-color: #fff; |
||||
} |
||||
} |
||||
|