From 7a727a15ba89cdaad24f91c14657febd16adc7f8 Mon Sep 17 00:00:00 2001
From: zoujiandong <10130823232@qq.com>
Date: Tue, 9 Jul 2024 14:57:51 +0800
Subject: [PATCH] 7.9 hiv
---
app.json | 1 +
pages/index/index.js | 14 +-
pages/index/index.wxml | 2 +-
.../pages/expertConsult/expertConsult.json | 1 +
patient/pages/hivConsult/hivConsult.js | 406 ++++++++++++++++++
patient/pages/hivConsult/hivConsult.json | 14 +
patient/pages/hivConsult/hivConsult.wxml | 115 +++++
patient/pages/hivConsult/hivConsult.wxss | 306 +++++++++++++
8 files changed, 851 insertions(+), 8 deletions(-)
create mode 100644 patient/pages/hivConsult/hivConsult.js
create mode 100644 patient/pages/hivConsult/hivConsult.json
create mode 100644 patient/pages/hivConsult/hivConsult.wxml
create mode 100644 patient/pages/hivConsult/hivConsult.wxss
diff --git a/app.json b/app.json
index 625e269..a582dd3 100644
--- a/app.json
+++ b/app.json
@@ -13,6 +13,7 @@
"pages/login/login",
"pages/mobileLogin/mobileLogin",
"pages/expertConsult/expertConsult",
+ "pages/hivConsult/hivConsult",
"pages/expertDetail/expertDetail",
"pages/selectPatient/selectPatient",
"pages/writeSick/writeSick",
diff --git a/pages/index/index.js b/pages/index/index.js
index e32c932..21ca93c 100644
--- a/pages/index/index.js
+++ b/pages/index/index.js
@@ -273,13 +273,13 @@ Page({
this.onClickHide();
}),
goExpert:throttle(function(){
- wx.showToast({
- title: '敬请期待',
- icon:'none'
- })
- // app.method.navigateTo({
- // url: '/patient/pages/expertConsult/expertConsult'
- // })
+ // wx.showToast({
+ // title: '敬请期待',
+ // icon:'none'
+ // })
+ app.method.navigateTo({
+ url: '/patient/pages/hivConsult/hivConsult'
+ })
}),
goconsultandbuy:throttle(function(){
app.method.navigateTo({
diff --git a/pages/index/index.wxml b/pages/index/index.wxml
index 10d8c4c..0338883 100644
--- a/pages/index/index.wxml
+++ b/pages/index/index.wxml
@@ -72,7 +72,7 @@
HIV
-
+
恐艾咨询,健康指导
diff --git a/patient/pages/expertConsult/expertConsult.json b/patient/pages/expertConsult/expertConsult.json
index b5e3159..32d5dba 100644
--- a/patient/pages/expertConsult/expertConsult.json
+++ b/patient/pages/expertConsult/expertConsult.json
@@ -3,6 +3,7 @@
"van-dropdown-menu": "@vant/weapp/dropdown-menu/index",
"van-dropdown-item": "@vant/weapp/dropdown-item/index",
"van-picker": "@vant/weapp/picker/index",
+
"van-popup": "@vant/weapp/popup/index",
"van-sticky": "@vant/weapp/sticky/index",
"nav":"../../../components/nav/nav"
diff --git a/patient/pages/hivConsult/hivConsult.js b/patient/pages/hivConsult/hivConsult.js
new file mode 100644
index 0000000..269c51e
--- /dev/null
+++ b/patient/pages/hivConsult/hivConsult.js
@@ -0,0 +1,406 @@
+// pages/expertConsult/expertConsult.js
+const app = getApp()
+import {doctorList,getProvince,getCity,getCountry} from "../../../api/consultExpert"
+import {sickType} from "../../../api/common"
+let provinceArr=[{area_id:'', area_name: "全国"}];
+let cityArr=[];
+import {throttle} from "../../../utils/util"
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ page:1,
+ pageNumber:10,
+ isTriggered:false,
+ show:false,
+ expertise_id:21,
+ province_id:'',
+ city_id:'',
+ keyword:'',
+ lock:false,
+ is_online:0,
+ sort_order:1,
+ inquiry_type:'1,3',
+ inquiry_mode:'1,2',
+ navName:"专家问诊",
+ scrollHeight:53,
+ sickList:[],
+ img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static',
+ option: [
+ { text: '综合', value: 1 },
+ { text: '响应时间快', value: 2 },
+ { text: '价格从低到高', value: 3 },
+ { text: '价格从高到低', value: 4 },
+ { text: '服务数从多到少', value: 5},
+ ],
+ overlay:true,
+ selectkind:false,
+ selectkarea:false,
+ position:"全国",
+ doctorList: [],
+ triggered: false,
+ scrollTop: 0,
+ offsetTop: 0,
+ columns: [
+ {
+ values:[],
+ className: 'column1',
+ },
+ {
+ values: [],
+ className: 'column2',
+ defaultIndex: 1,
+ }
+ ],
+ isLoding:false,
+ tabId:-1
+ },
+ goBack(){
+ wx.navigateBack({
+ delta: 1,
+ })
+ },
+ toggleOnline(){
+ this.setData({
+ is_online:this.data.is_online==0?1:0
+ })
+ this.onfresh();
+ },
+ onScroll(event) {
+ let {doctorList}=this.data;
+ wx.createSelectorQuery().select('#scroller')
+ .boundingClientRect((res) => {
+ let H=0;
+ if(event.detail.scrollTop>78){
+ if(doctorList.length<=3){
+ H=53;
+ }else{
+ H=1;
+ }
+
+ }else{
+ H=53
+ }
+ this.setData({
+ scrollHeight:H
+ });
+
+ }).exec();
+ },
+ transforpage(arr) {
+ const pages = [];
+ let L= Math.ceil(arr.length / 2);
+ arr.forEach((item, index) => {
+ const page = Math.floor(index / L)
+ if (!pages[page]) {
+ pages[page] = []
+ }
+ pages[page].push(item)
+ });
+ return pages
+ },
+ goSearch:throttle(function(){
+ wx.hideKeyboard();
+ app.method.navigateTo({
+ url: '/patient/pages/search/search',
+ })
+ }),
+ switchTab(event){
+ this.setData({
+ tabId:event.target.dataset.id,
+ expertise_id:event.target.dataset.id
+ })
+ this.onfresh();
+ },
+ changeSorder({ detail }){
+ this.setData({
+ sort_order: detail,
+ selectkind:true
+ });
+ this.onfresh();
+ },
+ getIptvalue(event){
+ this.setData({
+ keyword:event.detail.value
+ })
+ this.onfresh();
+ },
+ goExpertDetail:throttle(function(event){
+ app.method.navigateTo({
+ url: '/patient/pages/expertDetail/expertDetail?doctor_id='+event.currentTarget.dataset.doctorid
+ })
+ }),
+ openCity(){
+ this.setData({
+ show:true,
+ overlay:false
+ })
+ },
+ closeCity(){
+ this.setData({
+ show:false,
+ overlay:true
+ })
+ },
+ onChange(event) {
+ const { picker, value, index } = event.detail;
+ if(index===0){
+ let currentIndex=picker.getIndexes()[0];
+ if(provinceArr[currentIndex].area_id){
+ this.cityList(provinceArr[currentIndex].area_id);
+ }else{
+ this.setData({
+ 'columns[1].values':[]
+ })
+ }
+
+ }
+ },
+
+ onConfirm(event) {
+ const { picker, value, index } = event.detail;
+ let currentPosition=''
+ for (let index = 0; index < value.length; index++) {
+ if(!value[0].area_id){
+ currentPosition="全国";
+ this.setData({
+ province_id:'',
+ city_id:''
+ })
+ }else{
+ currentPosition+=value[index].area_name;
+ if(index===0){
+ this.setData({
+ province_id:value[index].area_id
+ })
+ }else if(index==1){
+ this.setData({
+ city_id:value[index].area_id
+ })
+ }
+ }
+ }
+ this.setData({
+ show:false,
+ selectarea:true,
+ position:currentPosition
+ })
+ this.selectComponent('#item').toggle();
+ this.onfresh();
+ },
+
+ onCancel() {
+ this.setData({
+ show:false
+ })
+ this.selectComponent('#item').toggle(false);
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ getSickType(){
+ sickType().then((res)=>{
+ this.setData({
+ sickList:this.transforpage(res)
+ })
+ })
+ },
+ handleRefresher(){
+
+ this.setData({
+ lock:false,
+ page:1,
+ scrollHeight:53,
+ doctorList:[]
+ });
+ this.getDoctorList()
+ },
+ getDoctorList(){
+ let {expertise_id,province_id, city_id,sort_order,keyword,page,pageNumber,is_online,inquiry_type,inquiry_mode}=this.data;
+ doctorList({
+ expertise_id:expertise_id,
+ province_id:province_id,
+ city_id:city_id,
+ sort_order: sort_order,
+ is_first_online:is_online,
+ keyword:keyword,
+ inquiry_type,
+ inquiry_mode,
+ page:page,
+ per_page:pageNumber
+ }).then((res)=>{
+ let {doctorList}=this.data;
+ if(res.data.length==0){
+ this.setData({
+ lock:true,
+ isTriggered:false
+ });
+ return false;
+ }else{
+ this.setData({
+ isTriggered:false,
+ doctorList:doctorList.concat(res.data)
+ })
+ }
+
+
+ })
+ },
+ provinceList(){
+ getProvince().then((res)=>{
+ provinceArr= provinceArr.concat(res);
+ let province=[{area_id:'', area_name: "全国"}];//
+ for (let i = 0; i < res.length; i++) {
+ province.push(res[i]);
+ };
+ this.setData({
+ 'columns[0].values':province
+ })
+ //this.cityList(province[0].area_id);
+
+ })
+ },
+ cityList(area_id){
+ getCity({
+ area_id:area_id
+ }).then((res)=>{
+
+ cityArr=res;
+ let city=[];
+ for (let i = 0; i < res.length; i++) {
+ city.push(res[i]);
+ };
+ this.setData({
+ 'columns[1].values':city,
+
+ })
+ //this.countryList(res[0].area_id);
+ })
+ },
+ countryList(area_id){
+ getCountry({
+ area_id:area_id
+ }).then((res)=>{
+ let area=[];
+ for (let i = 0; i < res.length; i++) {
+ area.push(res[i]);
+ };
+ this.setData({
+ 'columns[2].values':area,
+ isLoding:false
+ })
+ })
+ },
+ onfresh(){
+ this.setData({
+ page:1,
+ doctorList:[],
+ lock:false
+ })
+ this.getDoctorList();
+ },
+ lower(e) {
+ let {lock}=this.data;
+ let addPage=this.data.page+1;
+ if(!lock){
+ this.setData({
+ page:addPage
+ });
+ this.getDoctorList();
+ }
+ },
+ onLoad(options) {
+ if(options.type=="free"){
+ wx.setNavigationBarTitle({
+ title: "特惠问诊"
+ });
+ this.setData({
+ navName:"特惠问诊",
+ inquiry_type:3,
+ inquiry_mode:1
+ })
+ }else if(options.type=="buyYao"){
+ wx.setNavigationBarTitle({
+ title: "问诊购药"
+ });
+ this.setData({
+ navName:"问诊购药",
+ inquiry_type:4,
+ inquiry_mode:1
+ })
+ }
+ this.getSickType();
+ this.getDoctorList();
+ this.provinceList();
+
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady() {
+
+ },
+
+
+ onRefresh() {
+ if (this._freshing) return
+ this._freshing = true
+ setTimeout(() => {
+ this.setData({
+ triggered: false,
+ })
+ this._freshing = false
+ }, 3000)
+ },
+ onRestore(e) {
+ console.log('onRestore:', e)
+ },
+
+ onAbort(e) {
+ console.log('onAbort', e)
+ },
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow() {
+ this.setData({
+ img_host:app.hostConfig().imghost
+ });
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload() {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom() {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+
+})
\ No newline at end of file
diff --git a/patient/pages/hivConsult/hivConsult.json b/patient/pages/hivConsult/hivConsult.json
new file mode 100644
index 0000000..32d5dba
--- /dev/null
+++ b/patient/pages/hivConsult/hivConsult.json
@@ -0,0 +1,14 @@
+{
+ "usingComponents": {
+ "van-dropdown-menu": "@vant/weapp/dropdown-menu/index",
+ "van-dropdown-item": "@vant/weapp/dropdown-item/index",
+ "van-picker": "@vant/weapp/picker/index",
+
+ "van-popup": "@vant/weapp/popup/index",
+ "van-sticky": "@vant/weapp/sticky/index",
+ "nav":"../../../components/nav/nav"
+ },
+ "navigationStyle":"custom",
+ "disableScroll":true,
+ "navigationBarTitleText": "肝胆相照互联网医院"
+}
\ No newline at end of file
diff --git a/patient/pages/hivConsult/hivConsult.wxml b/patient/pages/hivConsult/hivConsult.wxml
new file mode 100644
index 0000000..a9a7cfb
--- /dev/null
+++ b/patient/pages/hivConsult/hivConsult.wxml
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.expertise_name}}
+
+
+
+
+
+
+
+
+
+
+
+
+ 优先在线
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.user_name}}
+
+ {{item.hospital.hospital_level_name}}
+ 可处方
+
+ {{item.doctor_title_name}} {{item.department_custom_name}}
+ {{item.hospital.hospital_name}}
+ 擅长:{{item.be_good_at}}
+ {{cell.expertise_name}}
+
+ 评分: {{item.praise_rate}} 暂无
+ 问诊量: {{item.served_patients_num}}暂无
+ 平均回复: {{moduleFilter.formatReply(item.avg_response_time)}}h暂无
+
+
+
+ 图文问诊:¥{{itemName.inquiry_price}}
+
+ {{itemName.inquiry_mode==1?'图文问诊':itemName.inquiry_mode==2?'视频问诊':'其他问诊'}}:¥{{itemName.inquiry_price}}
+
+
+
+
+
+
+ 暂无数据!
+
+
+
+
+
+
+
diff --git a/patient/pages/hivConsult/hivConsult.wxss b/patient/pages/hivConsult/hivConsult.wxss
new file mode 100644
index 0000000..00c418a
--- /dev/null
+++ b/patient/pages/hivConsult/hivConsult.wxss
@@ -0,0 +1,306 @@
+/* pages/expertConsult/expertConsult.wxss */
+.wraper{
+
+ height: 100%;
+}
+.containexpert{
+ margin-top: 172rpx;
+ padding: 0 30rpx 0rpx;
+ overflow: hidden;
+ position: relative;
+ transform: all 0.3s ease;
+}
+.droptitle,.van-ellipsis{
+ font-size: 30rpx!important;
+}
+.namebox .name{
+ max-width:400rpx;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+
+.droptitle.active{
+ color:#3CC7C0;
+}
+.searchbox {
+ width: 100%;
+ height: 72rpx;
+ display: flex;
+ border-radius: 40rpx;
+ align-items: center;
+ margin-top: 20rpx;
+ background: #FBFBFB;
+ border-radius: 36px;
+ border: 1rpx solid #CCCCCC;
+}
+
+.searchbox input {
+ margin-left: 30rpx;
+ flex: 1;
+ font-size: 32rpx;
+ height: 80rpx;
+}
+
+.searchbox image {
+ width: 30rpx;
+ height: 30rpx;
+ margin-right: 28rpx;
+}
+
+.scroll-view_H {
+ height:195rpx;
+ white-space: nowrap;
+ vertical-align: top;
+}
+.scroll-view-item_H{
+ /* width: 154rpx; */
+ padding:0 15rpx;
+ background: #F4F4F4;
+ border-radius: 30rpx;
+ font-size: 28rpx;
+ color: #666666;
+ margin-left: 36rpx;
+ border: 1rpx solid #F4F4F4;
+ height: 58rpx;
+ display: inline-block;
+ text-align: center;
+ line-height: 58rpx;
+}
+
+.page-section-spacing .row{
+ margin-top: 30rpx;
+ margin-bottom: 30rpx;
+}
+.page-section-spacing .row:last-child{
+ margin-top: 30rpx;
+ margin-bottom: 10rpx;
+}
+.scroll-view_H .scroll-view-item_H:first-child{
+ margin-left: 0rpx;
+
+}
+.scroll-view-item_H.active {
+ background: #E2FFFE;
+ color: #3CC7C0;
+ border: 1rpx solid #3CC7C0;
+}
+.van-dropdown-menu{
+ box-shadow: none!important;
+
+}
+.viewcell{
+ display: flex;
+ overflow: hidden;
+ box-sizing: border-box;
+ padding:40rpx 30rpx 30rpx;
+ width:100%;
+ border-radius: 10rpx;
+ background-color: #fff;
+ border-bottom: 1rpx solid #E7E7E7;
+}
+.viewcell:last-child{
+ border-bottom: none;
+}
+.viewcell .type{
+ height: 32rpx;
+ margin-bottom: 6rpx;
+ line-height: 32rpx;
+ display: flex;
+ white-space: nowrap;
+ align-items: center;
+ margin-left: 18rpx;
+ padding:0rpx 6rpx;
+ background: #ED9C00;
+ border-radius: 4rpx;
+ color: #FFFFFF;
+ font-size: 24rpx;
+}
+.viewcell .hospital{
+ margin-top: 12rpx;
+ color: #333333;
+ display: flex;
+ font-size: 30rpx;
+ word-wrap: break-word;
+}
+.hospital_name{
+ word-wrap: break-word;
+ margin-right: 10rpx;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+}
+.goodjob{
+color: #666666;
+margin-top: 28rpx;
+line-height: 42rpx;
+font-size: 28rpx;
+word-break: break-all;
+text-overflow: ellipsis;
+display: -webkit-box;
+-webkit-box-orient: vertical;
+-webkit-line-clamp: 2; /* 这里是超出几行省略 */
+overflow: hidden;
+}
+.price{
+ font-size: 28rpx;
+ position: relative;
+}
+
+.price text{
+ margin-left: 5rpx;
+ font-size: 32rpx;
+ color:#EF4F20;
+}
+.viewcell .right{
+ flex:1;
+ margin-left: 20rpx;
+}
+.viewcell image{
+ width:80rpx;
+ height:80rpx;
+ border-radius:50%;
+}
+.namebox{
+ display: flex;
+ font-size: 34rpx;
+ font-weight: 600;
+ color:#333;
+ align-items: flex-end;
+}
+.namebox .position{
+ font-weight: normal;
+ margin-left: 15rpx;
+ font-size: 30rpx;
+}
+.dropOnline.active{
+ color: #3CC7C0;
+}
+.diseaseType{
+height: 40rpx;
+background: #E2FFFE;
+border-radius: 20rpx;
+margin-right: 20rpx;
+border: 1rpx solid #3CC7C0;
+color: #3CC7C0;
+font-size: 24rpx;
+display: inline-flex;
+text-align: center;
+padding:0 15rpx;
+align-items: center;
+justify-content: center;
+margin-top: 20rpx;
+white-space: nowrap;
+}
+.detail{
+ margin-top: 20rpx;
+ display: flex;
+ font-size: 24rpx;
+}
+.detail view{
+ margin-right:40rpx;
+}
+
+.detail view text{
+ font-size: 28rpx;
+ color:#3CC7C0;
+}
+.consultbox{
+ position: relative;
+ height: 60rpx;
+ margin-top: 28rpx;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+}
+
+.consult{
+ height: 60rpx;
+background: #3CC7C0;
+border-radius: 30rpx;
+color: #FFFFFF;
+display: flex;
+align-items: center;
+padding:0 20rpx;
+font-size: 30rpx;
+}
+
+.wraper{
+ display: flex;
+ flex-direction: column;
+}
+.scrollwraper{
+ flex: 1;
+ overflow-y: scroll;
+ -webkit-overflow-scrolling: touch;
+}
+.dropdown{
+ width:100%;
+ position: relative;
+ justify-content:center;
+ background-color: #fff;
+ align-items: center;
+ border-bottom: 1rpx solid #E7E7E7;
+ display: flex;
+}
+.dropdown .bar{
+
+ height:40rpx;
+ width:1rpx;
+ left: 50%;
+ top:50%;
+ transform: translate(-50%,-50%);
+ position: absolute;
+ background:#ccc;
+ opacity: 0.9;
+}
+.dropbar{
+ background:#ccc;
+ opacity: 0.9;
+ height:40rpx;
+ width:1rpx;
+ position: static;
+ margin-top: 30rpx;
+}
+.dropOnline{
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width:33.33%;
+ font-size: 30rpx;
+}
+.viewcell .left{
+ position: relative;
+}
+.price .expert_prcie{
+ text-decoration: line-through;
+ color:#999;
+}
+.price .expert_prcie .priceactive{
+ color:#999;
+}
+.pricecell{
+ display: flex;
+ font-size: 30rpx;
+ align-items: center;
+ white-space: nowrap;
+}
+.videocell{
+ position: absolute;
+ right:0rpx;
+}
+.price.qs{
+ display: none;
+}
+.price.gy,.price.hasfree{
+ display: none;
+}
+.nonekaitong{
+ position: absolute;
+ top:0rpx;
+ font-size: 30rpx;
+ right:320rpx;
+}
+.nonekaitong text{
+ font-size: 30rpx;
+}
\ No newline at end of file