Merge remote-tracking branch 'origin/master' into dev

# Conflicts:
#	api/baseurl.js
This commit is contained in:
纪寒 2023-02-07 17:18:23 +08:00
commit b99bede35c
77 changed files with 4783 additions and 1467 deletions

View File

@ -1,8 +1,16 @@
import request from "../request.js" import request from "../request.js"
export function goodsList(pageSize,pageNum,goodsCategoryId) { export function goodsList(pageSize, pageNum, goodsCategoryId, goodsName) {
return request({ return request({
url: `/nurseApplet/nursingStationGoods/goodsList?pageSize=${pageSize}&pageNum=${pageNum}&goodsCategoryId=${goodsCategoryId}`, url: `/nurseApplet/nursingStationGoods/goodsList?pageSize=${pageSize}&pageNum=${pageNum}&goodsCategoryId=${goodsCategoryId}&goodsName=${goodsName}`,
method: 'GET' method: 'GET'
}) })
} }
//查询商品分类二级分类上边列表 小程序
export function getGoodsCategoryNameList(goodsCategoryId) {
return request({
url: `/nurseApplet/nursingStationGoods/getGoodsCategoryNameList?goodsCategoryId=${goodsCategoryId}`,
method: 'GET'
})
}

View File

@ -0,0 +1,8 @@
import request from "../request.js"
export function getAppStationItemInfo(stationId, stationItemId, stationItemPriceId) {
return request({
url: `/nurseApp/login/getAppStationItemInfo?stationId=${stationId}&stationItemId=${stationItemId}&stationItemPriceId=${stationItemPriceId}`,
method: 'GET'
})
}

View File

@ -1,4 +1,5 @@
// var baseurl = "http://218.59.93.251:8077"; // var baseurl = "http://218.59.93.251:8077";
// var baseurl = "http://218.59.93.251:8099"; // var baseurl = "http://218.59.93.251:8099";
var baseurl = "http://192.168.16.77:8099"; var baseurl = "http://192.168.16.30:8080";
// var baseurl = "https://quanyidaojia.xinelu.cn";
export default baseurl export default baseurl

View File

@ -1,8 +0,0 @@
import request from "../request.js"
export function ForgotPassword(phone, password,verification) {
return request({
url: `/nurseApp/login/appForgotPassword?phone=${phone}&password=${password}&verification=${verification}`,
method: 'POST'
})
}

View File

@ -1,8 +1,15 @@
import request from "../request.js" import request from "../request.js"
export function getWeChatUser(loginCode,phoneCode) { export function getWeChatUser(loginCode, phoneCode) {
return request({ return request({
url: `/nurseApplet/login/getWeChatUserInfo?loginCode=${loginCode}&phoneCode=${phoneCode}`, url: `/nurseApplet/login/getWeChatUserInfo?loginCode=${loginCode}&phoneCode=${phoneCode}`,
method: 'GET' method: 'GET'
}) })
} }
export function createMobileToken() {
return request({
url: `/nurseApplet/authorization/createMobileToken`,
method: 'GET'
})
}

9
api/lookrate/index.js Normal file
View File

@ -0,0 +1,9 @@
import request from "../request.js"
// 修改信息
export function lookrate(orderNo) {
return request({
url: `/nurseApp/orderEvaluate/selectOrderEvaluate?orderNo=${orderNo}`,
method: 'GET'
})
}

View File

@ -1,13 +1,14 @@
import request from "../request.js" import request from "../request.js"
// 根据被护理人id查询基本信息 // 根据被护理人id查询基本信息
export function goodPatientInfo(patientId){ export function goodPatientInfo(patientId) {
return request({ return request({
url: `/nurseApplet/nursingStationGoods/goodPatientInfo?patientId=${patientId}`, url: `/nurseApplet/nursingStationGoods/goodPatientInfo?patientId=${patientId}`,
method: 'GET' method: 'GET'
}) })
} }
// 新增基本信息 // 新增基本信息
export function addnursingStation(data){ export function addnursingStation(data) {
return request({ return request({
url: '/nurseApplet/nursingStationGoods/add', url: '/nurseApplet/nursingStationGoods/add',
method: 'POST', method: 'POST',
@ -17,7 +18,7 @@ export function addnursingStation(data){
// 修改基本信息 // 修改基本信息
export function updatenursingStation(data){ export function updatenursingStation(data) {
return request({ return request({
url: '/nurseApplet/nursingStationGoods/edit', url: '/nurseApplet/nursingStationGoods/edit',
method: 'POST', method: 'POST',
@ -25,7 +26,7 @@ export function updatenursingStation(data){
}) })
} }
// 修改反显 // 修改反显
export function nursingStationGoodsinfo(id){ export function nursingStationGoodsinfo(id) {
return request({ return request({
url: '/nurseApplet/nursingStationGoods/' + id, url: '/nurseApplet/nursingStationGoods/' + id,
method: 'GET' method: 'GET'
@ -34,24 +35,46 @@ export function nursingStationGoodsinfo(id){
// 删除 // 删除
export function delnursingStation(id) { export function delnursingStation(id) {
return request({ return request({
url: '/nurseApplet/nursingStationGoods/' + id, url: '/nurseApplet/nursingStationGoods/' + id,
method: 'delete' method: 'delete'
}) })
} }
// 查询 // 查询
export function getSubordinate(areaCode){ export function getSubordinate(areaCode) {
return request({ return request({
url: `/nurseApplet/nursingStationGoods/getSubordinateRegions?areaCode=${areaCode}`, url: `/nurseApplet/nursingStationGoods/getSubordinateRegions?areaCode=${areaCode}`,
method: 'GET' method: 'GET'
}) })
} }
//区街道list // //区街道list
// export function getSubordinateRegions(areaCode) {
// return request({
// url: `/nurseApplet/nursingStationGoods/getSubordinateRegions?areaCode=${areaCode}`,
// method: 'GET'
// })
// }
//省list
export function getSubordinateRegions(areaCode) { export function getSubordinateRegions(areaCode) {
return request({ return request({
url: `/nurseApplet/login/getRegionAndStreetInfo?areaCode=${areaCode}`, url: `/nurseApplet/login/getProvinceInfo?areaCode=${areaCode}`,
method: 'GET'
})
}
//市区街道list
export function getSubordinateInfo(id) {
return request({
url: `/nurseApplet/login/getSubordinateInfo?areaCode=${id}`,
method: 'GET' method: 'GET'
}) })
} }
//默认地址
export function updateDefaultAddress(data) {
return request({
url: `/nurseApplet/nursingStationGoods/updateDefaultAddress`,
method: 'POST',
data
})
}

9
api/order/index.js Normal file
View File

@ -0,0 +1,9 @@
import request from "../request.js"
export function orderCount(patientId) {
return request({
url: `/nurseApp/login/orderCount?patientId=${patientId}`,
method: 'GET'
})
}

View File

@ -10,10 +10,26 @@ var request = function(config) {
data: config.data, data: config.data,
method: config.method, method: config.method,
timeout: 10000, timeout: 10000,
// header: { header: {
// token: uni.getStorageSync('token') Authorization: 'Bearer' + ' ' + uni.getStorageSync('token')
// }, },
success(res) { success(res) {
if (res.data.code == 9999) {
uni.removeStorageSync('token');
let pages = getCurrentPages();
let path = pages[pages.length - 1].$page.fullPath
if (path == '/pages/user/user') {
setTimeout(e => {
uni.navigateBack({
delta: 1
})
}, 200);
} else {
uni.navigateTo({
url: '/pages/login/login'
})
}
}
uni.hideLoading(); uni.hideLoading();
resolve(res.data) resolve(res.data)
}, },

View File

@ -1,8 +1,8 @@
import request from "../request.js" import request from "../request.js"
export function goodsCategoryList(pageSize,pageNum) { export function goodsCategoryList(pageSize, pageNum) {
return request({ return request({
url: `/nurseApplet/nursingStationGoods/goodsCategoryList?pageSize=${pageSize}&pageNum=${pageNum}`, url: `/nurseApplet/nursingStationGoods/goodsCategoryList?pageSize=${pageSize}&pageNum=${pageNum}&categoryLevel=${1}`,
method: 'GET' method: 'GET'
}) })
} }

View File

@ -4,6 +4,8 @@ import App from './App'
import Vue from 'vue' import Vue from 'vue'
import uView from "uview-ui"; import uView from "uview-ui";
Vue.use(uView); Vue.use(uView);
// import share from './share.js'
// Vue.mixin(share)
Vue.config.productionTip = false Vue.config.productionTip = false
App.mpType = 'app' App.mpType = 'app'

View File

@ -1,5 +1,5 @@
{ {
"name" : "NurseStationAppletUI", "name" : "nurseWeChatAppletUI",
"appid" : "__UNI__1200110", "appid" : "__UNI__1200110",
"description" : "", "description" : "",
"versionName" : "1.0.0", "versionName" : "1.0.0",
@ -17,7 +17,9 @@
"delay" : 0 "delay" : 0
}, },
/* */ /* */
"modules" : {}, "modules" : {
"Geolocation" : {}
},
/* */ /* */
"distribute" : { "distribute" : {
/* android */ /* android */
@ -43,7 +45,13 @@
/* ios */ /* ios */
"ios" : {}, "ios" : {},
/* SDK */ /* SDK */
"sdkConfigs" : {}, "sdkConfigs" : {
"geolocation" : {
"system" : {
"__platform__" : [ "ios", "android" ]
}
}
},
"splashscreen" : { "splashscreen" : {
"androidStyle" : "common" "androidStyle" : "common"
} }
@ -63,16 +71,16 @@
// app.json // app.json
"permission" : { "permission" : {
"scope.userLocation" : { "scope.userLocation" : {
"desc" : "你的位置信息将用于小程序定位" "desc" : "你的位置信息将用于护理站列表的位置查询"
}
},
"requiredPrivateInfos" : [ "getLocation" ],
"plugins" : {
"chooseLocation" : {
"version" : "1.0.9",
"provider" : "wx76a9a06e5b4e693e"
} }
}, },
"requiredPrivateInfos" : [ "chooseLocation", "getLocation" ],
// "plugins": {
// "chooseLocation": {
// "version": "1.0.9",
// "provider": "wx76a9a06e5b4e693e"
// }
// },
"uniStatistics" : { "uniStatistics" : {
"enable" : true "enable" : true
}, },

2
package-lock.json generated
View File

@ -1,5 +1,5 @@
{ {
"name": "NurseStationAppletUI", "name": "nurseWeChatAppletUI",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {

View File

@ -9,6 +9,29 @@
"navigationBarTitleText": "", "navigationBarTitleText": "",
"navigationStyle": "custom" "navigationStyle": "custom"
} }
}, {
"path": "pages/modifyAddress/modifyAddress",
"style": {
"navigationBarTitleText": "修改地址",
"navigationBarBackgroundColor": "#ffffff", //
"enablePullDownRefresh": true //true
}
}, {
"path": "pages/information/information",
"style": {
"navigationBarTitleText": "完善个人信息",
"navigationBarBackgroundColor": "#ffffff", //
"enablePullDownRefresh": false
}
},
{
"path": "pages/lookrate/lookrate",
"style": {
"navigationBarTitleText": "查看评价",
"enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#ffffff"
}
}, { }, {
"path": "pages/ServiceDetails/ServiceDetails", "path": "pages/ServiceDetails/ServiceDetails",
"style": { "style": {
@ -17,6 +40,14 @@
"navigationBarBackgroundColor": "#ffffff" // "navigationBarBackgroundColor": "#ffffff" //
} }
}, {
"path": "pages/ProjectDetails/ProjectDetails",
"style": {
"navigationBarTitleText": "护理项目详情",
"enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#ffffff" //
}
}, { }, {
"path": "pages/goodsorderRate/goodsorderRate", "path": "pages/goodsorderRate/goodsorderRate",
"style": { "style": {
@ -39,13 +70,6 @@
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#ffffff" // "navigationBarBackgroundColor": "#ffffff" //
} }
}, {
"path": "pages/information/information",
"style": {
"navigationBarTitleText": "完善个人信息",
"navigationBarBackgroundColor": "#ffffff", //
"enablePullDownRefresh": false
}
}, { }, {
"path": "pages/appointmenttime/appointmenttime", "path": "pages/appointmenttime/appointmenttime",
"style": { "style": {
@ -60,12 +84,20 @@
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationStyle": "custom" "navigationStyle": "custom"
} }
},
{
"path": "pages/ratesuccess/ratesuccess",
"style": {
"navigationBarTitleText": "",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
}, { }, {
"path": "pages/shopping/shopping", // "path": "pages/shopping/shopping", //
"style": { "style": {
"navigationBarTitleText": "医路优品", "navigationBarTitleText": "医路优品",
"navigationBarBackgroundColor": "#ffffff", "navigationBarBackgroundColor": "#ffffff",
"onReachBottomDistance": 20, // px "onReachBottomDistance": 40, // px
"enablePullDownRefresh": true //true "enablePullDownRefresh": true //true
} }
}, { }, {
@ -73,7 +105,7 @@
"style": { "style": {
"navigationBarTitleText": "商品订单", "navigationBarTitleText": "商品订单",
"navigationBarBackgroundColor": "#ffffff", "navigationBarBackgroundColor": "#ffffff",
"onReachBottomDistance": 20, // px "onReachBottomDistance": 40, // px
"enablePullDownRefresh": true //true "enablePullDownRefresh": true //true
} }
}, },
@ -133,7 +165,7 @@
"style": { "style": {
"navigationBarTitleText": "护理站服务订单", "navigationBarTitleText": "护理站服务订单",
"navigationBarBackgroundColor": "#ffffff", // "navigationBarBackgroundColor": "#ffffff", //
"onReachBottomDistance": 20, // px "onReachBottomDistance": 40, // px
"enablePullDownRefresh": true //true "enablePullDownRefresh": true //true
} }
@ -179,6 +211,14 @@
"navigationBarBackgroundColor": "#ffffff" "navigationBarBackgroundColor": "#ffffff"
} }
}, },
{
"path": "pages/menttimeorder/menttimeorder",
"style": {
"navigationBarTitleText": "预约详情",
"enablePullDownRefresh": false
}
},
{ {
"path": "pages/homepage/homepage", "path": "pages/homepage/homepage",
"style": { "style": {
@ -220,7 +260,7 @@
"navigationBarTitleText": "医路优品", "navigationBarTitleText": "医路优品",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#ffffff", "navigationBarBackgroundColor": "#ffffff",
"onReachBottomDistance": 20, // px "onReachBottomDistance": 40, // px
"enablePullDownRefresh": true //true "enablePullDownRefresh": true //true
} }
}, },
@ -248,7 +288,7 @@
"navigationBarTitleText": "附近护理站", "navigationBarTitleText": "附近护理站",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#ffffff", // "navigationBarBackgroundColor": "#ffffff", //
"onReachBottomDistance": 20, // px "onReachBottomDistance": 40, // px
"enablePullDownRefresh": true //true "enablePullDownRefresh": true //true
} }
}, },
@ -268,15 +308,7 @@
"navigationBarBackgroundColor": "#ffffff" "navigationBarBackgroundColor": "#ffffff"
} }
}, },
{
"path": "pages/modifyAddress/modifyAddress",
"style": {
"navigationBarTitleText": "修改地址",
"enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#ffffff" //
}
},
{ {
"path": "pages/Doctordetails/Doctordetails", "path": "pages/Doctordetails/Doctordetails",
"style": { "style": {
@ -284,15 +316,6 @@
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#ffffff" "navigationBarBackgroundColor": "#ffffff"
} }
}
, {
"path": "pages/menttimeorder/menttimeorder",
"style": {
"navigationBarTitleText": "预约详情",
"enablePullDownRefresh": false
}
}, { }, {
"path": "pages/Geriatricdisease/Geriatricdisease", "path": "pages/Geriatricdisease/Geriatricdisease",
"style": { "style": {
@ -308,6 +331,21 @@
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#ffffff" "navigationBarBackgroundColor": "#ffffff"
} }
}, {
"path": "pages/toptabbar/toptabbar",
"style": {
"navigationBarTitleText": "",
"enablePullDownRefresh": false
}
},
{
"path": "pages/classification/classification",
"style": {
"navigationBarTitleText": "分类",
"enablePullDownRefresh": false
}
} }
], ],
"globalStyle": { "globalStyle": {

View File

@ -54,7 +54,7 @@
order: {}, // order: {}, //
reasonlist: [], //退list reasonlist: [], //退list
dictname: '', //退 dictname: '', //退
timer:null, timer: null,
} }
}, },
methods: { methods: {
@ -69,6 +69,7 @@
type: 'error' type: 'error'
}) })
} else { } else {
uni.setStorageSync("Refresh", 'Refresh')
this.$refs.uToast.show({ this.$refs.uToast.show({
title: '退款申请提交成功', title: '退款申请提交成功',
type: 'success', type: 'success',
@ -79,7 +80,7 @@
} }
this.timer = setTimeout(e => { this.timer = setTimeout(e => {
uni.navigateBack({ uni.navigateBack({
delta: 3 delta: 4
}) })
}, 1500) }, 1500)
} }

View File

@ -13,7 +13,7 @@
<view class="doctor"> <view class="doctor">
<text>内科门诊-主任医师</text> <text>内科门诊-主任医师</text>
</view> </view>
</view> </view>
</view> </view>
<view class="Apayment"> <view class="Apayment">
@ -39,7 +39,7 @@
<view class="doctor"> <view class="doctor">
<text>内科门诊-主任医师</text> <text>内科门诊-主任医师</text>
</view> </view>
</view> </view>
</view> </view>
<view class="Apayment"> <view class="Apayment">
@ -47,7 +47,6 @@
<text class="money">实付款:</text> <text class="money">实付款:</text>
<text class="price">28.0</text> <text class="price">28.0</text>
</view> </view>
<view class="result"> <view class="result">
查看结果 查看结果
</view> </view>
@ -64,7 +63,23 @@
} }
}, },
methods: { methods: {
onShareAppMessage(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
//2.
onShareTimeline(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
} }
} }
</script> </script>
@ -109,7 +124,7 @@
height: 230rpx; height: 230rpx;
// background-color: red; // background-color: red;
margin: 0 auto; margin: 0 auto;
display:flex; display: flex;
.img { .img {
width: 169rpx; width: 169rpx;
@ -120,21 +135,23 @@
} }
.texts { .texts {
margin-top: 7%; margin-top: 7%;
// width: 169rpx; // width: 169rpx;
height: 171rpx; height: 171rpx;
margin-left: 6%; margin-left: 6%;
// background: #BFBFBF; // background: #BFBFBF;
.name{ .name {
height: 70rpx; height: 70rpx;
font-size: 38rpx; font-size: 38rpx;
color: #000000; color: #000000;
line-height: 70rpx; line-height: 70rpx;
} }
.doctor{
.doctor {
height: 60rpx; height: 60rpx;
font-size: 35rpx; font-size: 35rpx;
color: #969394; color: #969394;
@ -142,12 +159,14 @@
} }
} }
} }
.Apayment{
.Apayment {
width: 90%; width: 90%;
margin: 0 auto; margin: 0 auto;
// background-color: red; // background-color: red;
display: flex; display: flex;
.money{
.money {
height: 29rpx; height: 29rpx;
font-size: 30rpx; font-size: 30rpx;
@ -155,7 +174,8 @@
line-height: 29rpx; line-height: 29rpx;
// margin-top: -40px; // margin-top: -40px;
} }
.price{
.price {
font-family: Adobe Heiti Std; font-family: Adobe Heiti Std;
font-weight: normal; font-weight: normal;
line-height: 29rpx; line-height: 29rpx;
@ -164,7 +184,8 @@
color: #000000; color: #000000;
line-height: 77rpx; line-height: 77rpx;
} }
.result{
.result {
width: 217rpx; width: 217rpx;
height: 68rpx; height: 68rpx;
line-height: 68rpx; line-height: 68rpx;

View File

@ -21,7 +21,25 @@
return { return {
}; };
} },
//1.
onShareAppMessage(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
//2.
onShareTimeline(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
} }
</script> </script>

View File

@ -2,11 +2,14 @@
<view class="app"> <view class="app">
<u-swiper :list="info" height="750" style='background-size: 100%;'></u-swiper> <u-swiper :list="info" height="750" style='background-size: 100%;'></u-swiper>
<view class="Commodity common"> <view class="Commodity common">
<view class="name"> <view class="name" v-if="goodsDetailslist.goodsName">
{{goodsDetailslist.goodsName}} {{goodsDetailslist.goodsName}}
</view> </view>
<view class="name" v-else>
暂无
</view>
<view class="price"> <view class="price">
{{goodsPrice}} {{goodsPrice}}
</view> </view>
</view> </view>
<view class="choice common" @tap="buyshow=true"> <view class="choice common" @tap="buyshow=true">
@ -43,7 +46,9 @@
<view class="selected"> <view class="selected">
图文服务 图文服务
</view> </view>
<image v-for="(item,index) in info" :src="item.image" mode=""></image> <view class="textInfo" v-html="goodsDetailslist.goodsRemark">
</view>
<!-- <image v-for="(item,index) in info" :src="item.image" mode=""></image> -->
</view> </view>
<view class="Purchasecolumn"> <view class="Purchasecolumn">
<view class="buy" @tap="buyshow=true"> <view class="buy" @tap="buyshow=true">
@ -54,12 +59,15 @@
<view class="PurchasePage" @click.stop=''> <view class="PurchasePage" @click.stop=''>
<image class="close" src="../../static/gb.png" mode="" @tap='buyshow=false'></image> <image class="close" src="../../static/gb.png" mode="" @tap='buyshow=false'></image>
</image> </image>
<view class="topcontent"> <view class="topcontent" style="width: 96%;">
<view class="image"> <view class="image">
<image :src="updata.img" mode=""></image> <image :src="updata.img" mode=""></image>
</view> </view>
<view class="title"> <view class="title" v-if="goodsDetailslist.goodsName">
<span>{{goodsDetailslist.goodsName}}</span> {{goodsDetailslist.goodsName}}
</view>
<view class="title" v-else>
暂无
</view> </view>
<view class="price"> <view class="price">
{{updata.goodsPrice}} {{updata.goodsPrice}}
@ -68,31 +76,70 @@
库存数量:{{updata.goodsStock}} 库存数量:{{updata.goodsStock}}
</view> </view>
</view> </view>
<view class="centercontent topcontent" v-show="goodshow"> <view>
<view class="header"> <scroll-view :scroll-top="scrollTop" scroll-y="true" class="scroll-Y" @scrolltoupper="upper"
商品规格 @scrolltolower="lower" @scroll="scroll">
</view> <view class="bodys" @tap='upaddress()'>
<view v-for="(item,index) in goodDetailsLists" <view class="addressinfo">
:class="item.isActive ? 'Productmodel':'productmodel'" @tap='isActivegoods(item)'> <image src="../../static/locatinsmall.png" mode=""></image>
{{item.attributeDetailsName}} <view class="namephone" v-if='userid'>
</view> {{updata.receiver}},{{updata.phone}}
</view> </view>
<!-- <view class="centercontent topcontent" v-for="(item,index) in goodDetailsLists"> <view class="address" v-if='userid'>
<view class="header"> {{updata.receiveAddress}}
{{item.attributeName}} </view>
</view> <view class="namephone" v-else>
<view v-for="bitem in item.goodAttributeDetailsLists" :key="bitem.attributeDetailsId" 前往完善个人信息
:class="bitem.isActive ? 'Productmodel':'productmodel'" @tap='isActivegoods(item,bitem)'> </view>
{{bitem.attributeDetailsName}} <view class="picture2">
</view> <u-icon name="arrow-right" color="black" size="28"></u-icon>
</view> --> </view>
<view class="bottomcontent topcontent"> </view>
<view class="header"> </view>
数量 <view class="centercontent topcontent" v-show="goodshow">
</view> <view class="header">
<view class="number"> 商品规格
<u-number-box :min="1" :max="updata.goodsStock" v-model="updata.goodsCount"></u-number-box> </view>
</view> <view class="" style="display: flex;justify-content: flex-start;flex-wrap: wrap;">
<view v-for="(item,index) in goodDetailsLists"
:class="item.isActive ? 'Productmodel':'productmodel'" @tap='isActivegoods(item)'>
<image :src="item.attributePitureUrl" mode=""></image>
<view class="">
{{item.attributeDetailsName}}
</view>
</view>
</view>
</view>
<!-- <view class="centercontent topcontent" v-for="(item,index) in goodDetailsLists">
<view class="header">
{{item.attributeName}}
</view>
<view v-for="bitem in item.goodAttributeDetailsLists" :key="bitem.attributeDetailsId"
:class="bitem.isActive ? 'Productmodel':'productmodel'" @tap='isActivegoods(item,bitem)'>
{{bitem.attributeDetailsName}}
</view>
</view> -->
<view class="bottomcontent topcontent">
<view class="header">
数量
</view>
<view class="number">
<u-number-box :min="1" :max="updata.goodsStock" v-model="updata.goodsCount">
</u-number-box>
</view>
</view>
<view class="" style="height: 230rpx;">
<view class="bottomcontent topcontent" style="padding-bottom: 0;">
<view class="header">
支付方式
</view>
<view class="chat">
<image src="/static/chat.png" mode=""></image>
<span>微信支付</span>
</view>
</view>
</view>
</scroll-view>
</view> </view>
<view class="buy" @tap="tapbuy"> <view class="buy" @tap="tapbuy">
立即购买 立即购买
@ -128,10 +175,14 @@
goodPatientInfo goodPatientInfo
} from '@/api/modifyAddress/modifyAddress.js'; } from '@/api/modifyAddress/modifyAddress.js';
import baseurl from '@/api/baseurl.js' import baseurl from '@/api/baseurl.js'
import {
addStationGoodsOrder,
appletGoodsOrderPay
} from '@/api/confirmOrder/index.js'
export default { export default {
data() { data() {
return { return {
timer:null, timer: null,
goodsInfoId: null, //id goodsInfoId: null, //id
baseurl: '', //url baseurl: '', //url
image: null, // image: null, //
@ -142,6 +193,7 @@
goodshow: true, // goodshow: true, //
buyshow: false, // buyshow: false, //
info: [], //list info: [], //list
goodsAttributeId: null, //id
updata: { // updata: { //
goodsPrice: 0.00, goodsPrice: 0.00,
goodsName: "", goodsName: "",
@ -164,10 +216,20 @@
attributeDetailsId: '', //id attributeDetailsId: '', //id
goodsAttributeId: '', goodsAttributeId: '',
goodsAttributeDetailsId: '', goodsAttributeDetailsId: '',
} },
scrollTop: 0,
old: {
scrollTop: 0
},
userid: null,
}; };
}, },
methods: { methods: {
upper: function(e) {},
lower: function(e) {},
scroll: function(e) {
this.old.scrollTop = e.detail.scrollTop
},
// //
goinformation() { goinformation() {
this.usershow = false this.usershow = false
@ -177,78 +239,128 @@
}, },
// //
tapbuy() { tapbuy() {
let that = this var that = this
try { try {
const value = uni.getStorageSync('openid'); const value = uni.getStorageSync('openid');
if (value) { const value2 = uni.getStorageSync('patientId');
const value2 = uni.getStorageSync('patientId'); if (value && value2) {
if (value2) { that.updata.patientId = value2
if (!that.updata.patientId) { AppIdentification(value2).then(res => {
that.goodsList() if (res.code == 200) {
} if (res.data.loginFlag) {
that.updata.patientId = value2 if (this.goodshow == true) {
AppIdentification(value2).then(res => { if (this.updata.goodsAttributeName == '') {
if (res.code == 200) { that.$refs.uToast.show({
if (res.data.loginFlag) { title: '未选择商品',
if (that.goodshow == true) { type: 'error'
if (that.updata.goodsAttributeName == '') { })
that.$refs.uToast.show({ } else if (this.updata.goodsStock == 0) {
title: '未选择商品', that.$refs.uToast.show({
type: 'error' title: '库存数量不足,无法购买',
}) type: 'error'
} else if (that.updata.goodsStock == 0) { })
that.$refs.uToast.show({
title: '库存数量不足,无法购买',
type: 'error'
})
} else {
that.buyshow = false
that.updata.totalPrice = (that.updata.goodsPrice * that.updata
.goodsCount).toFixed(
2)
uni.navigateTo({
url: `/pages/confirmOrder/confirmOrder?updata=${JSON.stringify(that.updata)}`
})
}
} else { } else {
that.buyshow = false this.buyshow = false
uni.navigateTo({ this.updata.totalPrice = (this.updata.goodsPrice * this.updata
url: `/pages/confirmOrder/confirmOrder?updata=${JSON.stringify(that.updata)}` .goodsCount).toFixed(
2)
addStationGoodsOrder(this.updata).then(res => {
if (res.code == 500) {
that.$refs.uToast.show({
title: res.msg,
type: 'error'
})
} else {
let id = res.data.id
let paydata = res.data
paydata.openid = value
paydata.payType = "WECHAT_PAY"
paydata.paymentPrice = res.data.totalPrice
appletGoodsOrderPay(paydata).then(response => {
if (response.code == 200) {
uni.requestPayment({
timeStamp: response
.data.timeStamp,
nonceStr: response.data
.nonceStr,
package: response.data
.prepayId,
signType: response.data
.signType,
paySign: response.data
.paySign,
success: function(
res) {
that.goodsDetailsinfo(
that
.goodsInfoId
)
that.$refs
.uToast
.show({
title: '支付成功',
type: 'success',
duration: 1000,
url: '/pages/paysuccess/paysuccess'
})
},
fail: function(err) {
that.goodsDetailsinfo(
that
.goodsInfoId
)
that.$refs
.uToast
.show({
title: '取消支付',
type: 'error',
duration: 1000,
url: `/pages/payorderDetails/payorderDetails?goodsOrderId=${id}`
})
// uni.navigateTo({
// url: `/pages/payorderDetails/payorderDetails?goodsOrderId=${id}`
// })
}
});
} else {
that.$refs.uToast.show({
title: response.msg,
type: 'error',
duration: 1000
})
}
})
}
}) })
} }
} else { } else {
that.buyshow = false that.$refs.uToast.show({
that.usershow = true title: '未选择商品',
type: 'error'
})
// that.buyshow = false
// uni.navigateTo({
// url: `/pages/confirmOrder/confirmOrder?updata=${JSON.stringify(that.updata)}`
// })
} }
} else { } else {
that.$refs.uToast.show({ this.usershow = true
title: res.msg,
type: 'error'
})
if (that.timer) {
clearTimeout(that.timer)
}
that.timer = setTimeout(e => {
uni.navigateTo({
url: '/pages/login/login'
})
}, 1500)
} }
}) } else if (res.code == 9999) {} else {
} else { that.$refs.uToast.show({
that.$refs.uToast.show({ title: res.msg,
title: '未登录,请先登录', type: 'error'
type: 'error'
})
if (that.timer) {
clearTimeout(that.timer)
}
that.timer = setTimeout(e => {
uni.navigateTo({
url: '/pages/login/login'
}) })
}, 1500) if (that.timer) {
} clearTimeout(that.timer)
}
that.timer = setTimeout(e => {
uni.navigateTo({
url: '/pages/login/login'
})
}, 1500)
}
})
} else { } else {
that.$refs.uToast.show({ that.$refs.uToast.show({
title: '未登录,请先登录', title: '未登录,请先登录',
@ -267,26 +379,28 @@
}, },
// //
isActivegoods(item) { isActivegoods(item) {
this.updata.goodsPrice = 0
this.updata.goodsAttributeName = ''
if (item.isActive == true) { if (item.isActive == true) {
this.goodDetailsLists.forEach(e => { // this.updata.goodsPrice = 0
e.isActive = false // this.updata.goodsAttributeName = ''
}) // this.goodDetailsLists.forEach(e => {
this.updata.goodsAttributeName = '' // e.isActive = false
this.updata.goodsPrice = 0 // })
this.updata.attributeDetailsId = '' // this.updata.goodsAttributeName = ''
this.updata.goodsStock = 0 // this.updata.goodsPrice = 0
this.updata.img = this.image // this.updata.attributeDetailsId = ''
// this.updata.goodsStock = 0
// this.updata.img = this.image
} else { } else {
this.goodDetailsLists.forEach(e => { this.goodDetailsLists.forEach(e => {
e.isActive = false e.isActive = false
}) })
item.isActive = true item.isActive = true
this.goodsAttributeId = item.goodsAttributeId
this.updata.img = item.attributePitureUrl this.updata.img = item.attributePitureUrl
this.updata.goodsAttributeName = item.attributeDetailsName this.updata.goodsAttributeName = item.attributeDetailsName
this.updata.goodsPrice = item.goodsPrice this.updata.goodsPrice = item.goodsPrice
this.updata.goodsPrice = this.updata.goodsPrice.toFixed(2) this.updata.goodsPrice = this.updata.goodsPrice.toFixed(2)
this.goodsPrice = this.updata.goodsPrice
this.updata.attributeDetailsId = item.attributeDetailsId this.updata.attributeDetailsId = item.attributeDetailsId
this.updata.goodsStock = item.goodsStock this.updata.goodsStock = item.goodsStock
this.updata.goodsAttributeId = item.goodsAttributeId this.updata.goodsAttributeId = item.goodsAttributeId
@ -295,19 +409,25 @@
}, },
// //
goodsDetailsinfo(goodsInfoId) { goodsDetailsinfo(goodsInfoId) {
let that = this
goodsDetails(goodsInfoId).then(res => { goodsDetails(goodsInfoId).then(res => {
res.data[0].goodsPictureUrl = this.baseurl + res.data[0].goodsPictureUrl uni.removeStorageSync('Refresh');
this.image = res.data[0].goodsPictureUrl if (res.data.goodsRemark) {
res.data.goodsRemark = res.data.goodsRemark.replace(/\<img/gi,
"<br/> <img class='richPic'")
}
res.data.goodsPictureUrl = this.baseurl + res.data.goodsPictureUrl
this.image = res.data.goodsPictureUrl
var obj = { var obj = {
image: res.data[0].goodsPictureUrl, image: res.data.goodsPictureUrl,
} }
this.info.push(obj) this.info.push(obj)
if (res.data[0].goodDetailsLists == null) { if (res.data.goodAttributeDetailsLists == null) {
this.goodshow = false this.goodshow = false
} else if (res.data[0].goodDetailsLists.length == 0) { } else if (res.data.goodAttributeDetailsLists.length == 0) {
this.goodshow = false this.goodshow = false
} else { } else {
res.data[0].goodDetailsLists.forEach(e => { res.data.goodAttributeDetailsLists.forEach(e => {
e.attributePitureUrl = this.baseurl + e.attributePitureUrl e.attributePitureUrl = this.baseurl + e.attributePitureUrl
e.isActive = false e.isActive = false
var objs = { var objs = {
@ -315,51 +435,150 @@
} }
this.info.push(objs) this.info.push(objs)
}) })
this.goodDetailsLists = res.data[0].goodDetailsLists this.goodDetailsLists = res.data.goodAttributeDetailsLists
this.goodshow = true this.goodshow = true
} }
this.goodsDetailslist = res.data[0] this.goodsDetailslist = res.data
this.updata.goodsName = this.goodsDetailslist.goodsName this.updata.goodsName = this.goodsDetailslist.goodsName
this.updata.nurseStationId = this.goodsDetailslist.nurseStationId this.updata.nurseStationId = this.goodsDetailslist.nurseStationId
this.updata.img = res.data[0].goodsPictureUrl if (this.goodDetailsLists.length == 1) {
this.updata.goodsAttributeName = '' this.goodDetailsLists[0].isActive = true
this.updata.goodsPrice = 0 this.updata.img = this.goodDetailsLists[0].attributePitureUrl
this.updata.attributeDetailsId = '' this.updata.goodsAttributeName = this.goodDetailsLists[0].attributeDetailsName
this.updata.goodsStock = 0 this.updata.goodsPrice = this.goodDetailsLists[0].goodsPrice
this.updata.img = this.image this.updata.goodsPrice = this.updata.goodsPrice.toFixed(2)
this.updata.attributeDetailsId = this.goodDetailsLists[0].attributeDetailsId
this.updata.goodsStock = this.goodDetailsLists[0].goodsStock
this.updata.goodsAttributeId = this.goodDetailsLists[0].goodsAttributeId
this.updata.goodsAttributeDetailsId = this.goodDetailsLists[0].attributeDetailsId
} else {
var list = {}
this.goodsDetailslist.goodAttributeDetailsLists.forEach(e => {
if (e.goodsAttributeId == this.goodsAttributeId) {
list = e
e.isActive = true
this.updata.goodsAttributeId = e.goodsAttributeId
this.updata.goodsAttributeDetailsId = e.attributeDetailsId
}
})
this.updata.img = list.attributePitureUrl
this.updata.goodsAttributeName = list.attributeDetailsName
this.updata.goodsPrice = list.goodsPrice
this.updata.attributeDetailsId = list.attributeDetailsId
this.updata.goodsStock = list.goodsStock
this.updata.img = list.attributePitureUrl
}
// this.updata.nurseStationId = this.goodsDetailslist.nurseStationId
// this.updata.img = res.data.goodsPictureUrl
// this.updata.goodsAttributeName = ''
// this.updata.goodsPrice = 0
// this.updata.attributeDetailsId = ''
// this.updata.goodsStock = 0
// this.updata.img = list.image
}) })
}, },
//
upaddress() {
if (this.updata.receiver) {
uni.navigateTo({
url: `/pages/modifyAddress/modifyAddress?updata=${JSON.stringify(this.updata)}`
})
} else {
uni.navigateTo({
url: '/pages/information/information'
})
}
},
// //
goodsList() { goodsList() {
goodPatientInfo(this.updata.patientId).then(res => { goodPatientInfo(this.updata.patientId).then(res => {
res.data.forEach(e => { // res.data.forEach(e => {
e.address = e.provinceName + e.cityName + e.regionName + e.streetName + e // e.address = e.provinceName + e.cityName + e.regionName + e.streetName + e
.receiveAddress // .receiveAddress
}) // })
this.updata.receiver = res.data[0].receiveName var list = res.data.filter(e => e.defaultAddressFlag == 1)
this.updata.receiveAddress = res.data[0].address if (list.length >= 1) {
this.updata.phone = res.data[0].receivePhone this.updata.receiver = list[0].receiveName
this.updata.receiveAddress = list[0].areaName + list[0].receiveAddress
this.updata.phone = list[0].receivePhone
this.userid = list[0].id
} else {
this.updata.receiver = res.data[0].receiveName
this.updata.receiveAddress = res.data[0].areaName + res.data[0].receiveAddress
this.updata.phone = res.data[0].receivePhone
this.userid = res.data[0].id
}
}) })
}, },
}, },
onLoad(options) { // onLoad(options) { //
this.updata.buySource = options.buySource var that = this
this.goodsPrice = options.goodsPrice // this.goodsPrice = options.goodsPrice //
this.goodsAttributeId = options.goodsAttributeId
this.updata.buySource = options.buySource
this.goodsInfoId = options.goodsInfoId this.goodsInfoId = options.goodsInfoId
const value = uni.getStorageSync('patientId');
if (value) {
that.updata.patientId = value
that.goodsList()
} else {}
}, },
onShow() { onShow() {
var that = this
this.baseurl = baseurl this.baseurl = baseurl
this.usershow = false this.usershow = false
this.goodsDetailsinfo(this.goodsInfoId) this.goodsDetailsinfo(this.goodsInfoId)
let that = this goodPatientInfo(this.updata.patientId).then(res => {
try { var user = res.data.filter(e => e.id == this.userid)
const value = uni.getStorageSync('patientId'); if (user.length >= 1) {
if (value) { // user[0].address = user[0].provinceName + user[0].cityName + user[0].regionName + user[0]
that.updata.patientId = value // .streetName + user[0].receiveAddress
that.goodsList() this.updata.receiver = user[0].receiveName
} else {} this.updata.receiveAddress = user[0].areaName + user[0].receiveAddress
} catch (e) {} this.updata.phone = user[0].receivePhone
this.userid = user[0].id
} else {
// res.data.forEach(e => {
// e.address = e.provinceName + e.cityName + e.regionName + e.streetName + e
// .receiveAddress
// })
this.updata.receiver = res.data[0].receiveName
// this.updata.receiveAddress = res.data[0].address
this.updata.receiveAddress = res.data[0].areaName + res.data[0].receiveAddress
this.updata.phone = res.data[0].receivePhone
this.userid = res.data[0].id
}
})
let useritem = null
uni.$on('updata', function(data) {
that.updata = JSON.parse(data.updata)
if (data.useritem) {
useritem = JSON.parse(data.useritem)
that.updata.receiver = useritem.receiveName
that.updata.phone = useritem.receivePhone
// that.updata.receiveAddress = useritem.address
that.updata.receiveAddress = useritem.areaName + useritem.receiveAddress
that.userid = useritem.id
}
})
},
//1.
onShareAppMessage(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
//2.
onShareTimeline(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
}, },
} }
</script> </script>

View File

@ -1,6 +1,9 @@
.app { .app {
padding: 0; padding: 0;
.scroll-Y {
height: 790rpx;
background-color: #F4F5F7;
}
.mask { .mask {
.information { .information {
width: 70%; width: 70%;
@ -50,25 +53,71 @@
.PurchasePage { .PurchasePage {
position: fixed; position: fixed;
bottom: 0; bottom: 0;
height: 1150rpx;
width: 100%; width: 100%;
background: #FFFFFF; background: #FFFFFF;
border-radius: 30rpx 30rpx 0px 0px; border-radius: 30rpx 30rpx 0px 0px;
font-size: 36rpx; font-size: 36rpx;
padding-bottom: 20rpx; padding-bottom: 20rpx;
.bodys {
background-color: #FFFFFF;
width: 96%;
margin: 10rpx auto 0;
border-radius: 20rpx;
padding: 15rpx 0 20rpx;
position: relative;
.addressinfo {
font-size: 32rpx;
line-height: 65rpx;
margin-left: 90rpx;
image{
width: 40rpx;
height: 50rpx;
position: absolute;
top:50%;
left:20rpx;
transform: translateY(-50%);
}
.address{
padding-top: 10rpx;
width:92%;
font-size: 30rpx;
word-break:break-all;
line-height: 45rpx;
}
.namephone{
width: 70%;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
.picture2 {
position: absolute;
top:50%;
right:20rpx;
transform: translateY(-50%);
image {
width: 18rpx;
height: 18rpx;
color: #FFFFFF;
margin-left: 20rpx;
}
}
}
}
.close { .close {
width: 31rpx; width: 31rpx;
height: 31rpx; height: 31rpx;
position: absolute; position: absolute;
top: 2%; top: 2%;
right: 2%; right: 2%;
z-index: 999;
} }
.topcontent { .topcontent {
width: 90%; width: 96%;
margin: 0 auto; margin: 0 auto;
padding-bottom: 24rpx; padding-bottom: 15rpx;
border-bottom: 1rpx solid #D8D4D4;
position: relative; position: relative;
.goodsStock{ .goodsStock{
font-size: 24rpx; font-size: 24rpx;
@ -86,19 +135,23 @@
.title { .title {
font-size: 36rpx; font-size: 36rpx;
position: absolute; position: absolute;
top: 0%; top: 3%;
left: 38%; left: 38%;
font-weight: 600; font-weight: 600;
width: 58%; width: 58%;
height: 85rpx; // height: 85rpx;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
word-break: break-all;
} }
.image { .image {
width: 215rpx; width: 200rpx;
height: 215rpx; height: 200rpx;
background: rgba(150, 147, 148, 0.21); margin: 15rpx 0 0 0;
margin: 35rpx 0 0 0;
image { image {
width: 201rpx; width: 201rpx;
height: 201rpx; height: 201rpx;
@ -116,16 +169,41 @@
text-align: center; text-align: center;
line-height: 71rpx; line-height: 71rpx;
border-radius: 26rpx; border-radius: 26rpx;
margin: 40rpx 0 0 20%; position: absolute;
bottom:30rpx;
left:20%;
} }
.bottomcontent { .bottomcontent {
margin-top: 34rpx; margin-top: 10rpx;
padding-bottom: 35rpx; padding: 35rpx 0;
background-color: #FFFFFF;
border-radius: 15rpx;
.chat {
height: 130rpx;
position: relative;
span {
font-size: 30rpx;
position: absolute;
left:130rpx;
top:50%;
transform: translateY(-50%);
}
image {
position: absolute;
left:30rpx;
top:50%;
transform: translateY(-50%);
width: 65rpx;
height: 55rpx;
}
}
.header { .header {
font-size: 32rpx;
display: inline-block; display: inline-block;
vertical-align: middle; vertical-align: middle;
margin-left: 17rpx;
} }
.number { .number {
@ -136,35 +214,54 @@
} }
.centercontent { .centercontent {
margin-top: 34rpx; font-size: 32rpx;
font-size: 36rpx; background-color: #FFFFFF;
margin-top: 10rpx;
padding-top: 20rpx;
border-radius: 20rpx;
.header { .header {
margin-bottom: 20rpx; margin-bottom: 20rpx;
margin-left: 17rpx;
} }
.productmodel { .productmodel {
font-size: 24rpx; border: 4rpx solid #FFFFFF;
display: inline-block;
height: 60rpx;
border: 1rpx solid #D8D4D4;
line-height: 60rpx;
border-radius: 25rpx;
text-align: center;
padding: 0 15rpx;
margin: 15rpx 15rpx 0 0;
} }
.Productmodel { .Productmodel {
font-size: 24rpx;
display: inline-block;
height: 60rpx;
background: #ECF1FA; background: #ECF1FA;
border: 1rpx solid #4C7BC9; border: 4rpx solid #4C7BC9;
line-height: 60rpx;
border-radius: 25rpx;
color: #4C7BC9; color: #4C7BC9;
}
.productmodel,.Productmodel{
background-color: #F6F6F6;
height: 300rpx;
text-align: center; text-align: center;
padding: 0 15rpx; width:30%;
margin: 15rpx 15rpx 0 0; font-size: 24rpx;
border-radius: 10rpx;
margin: 5rpx 1.5% 10rpx;
padding: 0 0 10rpx;
view{
background-color: #F6F6F6;
margin: 10rpx auto;
width: 98%;
// height: 90rpx;
border-radius: 10rpx;
font-size: 24rpx;
text-overflow: -o-ellipsis-lastline;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
line-clamp: 2;
-webkit-box-orient: vertical;
}
image{
border-radius: 10rpx;
width: 100%;
height: 200rpx;
}
} }
} }
} }
@ -238,7 +335,18 @@
box-shadow: 0px 9px 31px 9px rgba(0, 0, 0, 0.03); box-shadow: 0px 9px 31px 9px rgba(0, 0, 0, 0.03);
position: relative; position: relative;
padding-bottom: 110rpx; padding-bottom: 110rpx;
.textInfo {
word-break:break-all;
font-size: 29rpx;
text-indent: 2rem;
line-height: 42rpx;
// color: #666666;
padding: 0 20rpx;
/deep/ .richPic {
width: 100% !important;
height: 100% !important;
}
}
.selected { .selected {
padding: 20rpx 0 0 5%; padding: 20rpx 0 0 5%;
color: #969394; color: #969394;
@ -278,6 +386,7 @@
.name, .name,
.number { .number {
word-break: break-all;
width: 100%; width: 100%;
display: inline-block; display: inline-block;
line-height: 50rpx; line-height: 50rpx;

View File

@ -150,6 +150,7 @@
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
-webkit-line-clamp: 2; -webkit-line-clamp: 2;
overflow: hidden; overflow: hidden;
} }
span:nth-child(2) { span:nth-child(2) {
@ -167,12 +168,19 @@
top: 45%; top: 45%;
width: 68%; width: 68%;
.box { .box:nth-child(1) {
width: 70%;
display: inline-block;
font-size: 30rpx; font-size: 30rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
} }
.box:nth-child(2) { .box:nth-child(2) {
width: 30%;
position: absolute; position: absolute;
text-align: center;
right: 0%; right: 0%;
} }
} }

View File

@ -39,14 +39,20 @@
</view> </view>
</view> </view>
<view class="anniu"> <view class="anniu">
<view class="logistics" v-if="item.orderStatus=='WAIT_REFUND'" style="background-color: coral;"
@tap='goorderdetails(item)'>退款中
</view>
<view class="logistics" v-if="item.orderStatus=='WAIT_RECEIVED_GOODS'" @tap='gologistics(item)'>查看物流 <view class="logistics" v-if="item.orderStatus=='WAIT_RECEIVED_GOODS'" @tap='gologistics(item)'>查看物流
</view> </view>
<view class="logistics harvest" @tap='buy(item)' v-if="item.orderStatus=='WAIT_PAY'"> <view class="logistics harvest" @tap='buy(item)' v-if="item.orderStatus=='WAIT_PAY'">
去支付</view> 去支付</view>
<view class="logistics harvest" @tap='Receipt(item)' v-if="item.orderStatus=='WAIT_RECEIVED_GOODS'"> <view class="logistics harvest" @tap='Receipt(item)' v-if="item.orderStatus=='WAIT_RECEIVED_GOODS'">
确认收货</view> 确认收货</view>
<view class="logistics harvest" @tap='rate(item)' v-if="item.orderStatus=='RECEIVED_GOODS'"> <view class="logistics harvest" style="background-color: #60c5f1;" @tap='rate(item)'
立即评价</view> v-if="item.orderStatus=='RECEIVED_GOODS'">
去评价</view>
<view class="logistics harvest" v-if="item.orderStatus=='EVALUATED'" @tap='golookrate(item)'>
查看评价</view>
</view> </view>
</view> </view>
</view> </view>
@ -100,13 +106,19 @@
img: '', // img: '', //
orderStatus: '', // orderStatus: '', //
goodsOrderId: '', // goodsOrderId: '', //
pageSize: 10, // pageSize: 15, //
pageNum: 1, // pageNum: 1, //
goodsName: '', goodsName: '',
getCodeText: null, getCodeText: null,
} }
}, },
methods: { methods: {
//
golookrate(item) {
uni.navigateTo({
url: `/pages/lookrate/lookrate?item=${JSON.stringify(item)}`
})
},
// //
Receipts() { Receipts() {
confirmReceipt(this.orderNoitem.goOrderNo).then(res => { confirmReceipt(this.orderNoitem.goOrderNo).then(res => {
@ -117,15 +129,23 @@
duration: '1000' duration: '1000'
}) })
this.show = false this.show = false
uni.setStorageSync("Refresh", 'Refresh')
setTimeout(e => { setTimeout(e => {
uni.navigateTo({ uni.navigateTo({
url: `/pages/goodsorderRate/goodsorderRate?item=${JSON.stringify(this.orderNoitem)}` url: `/pages/goodsorderRate/goodsorderRate?item=${JSON.stringify(this.orderNoitem)}&delta=${3}`
}) })
// uni.navigateTo({ // uni.navigateTo({
// url: `/pages/orderDetails/orderDetails?goodsOrderId=${this.orderNoitem.goodsOrderId}` // url: `/pages/orderDetails/orderDetails?goodsOrderId=${this.orderNoitem.goodsOrderId}`
// }) // })
}, 1000) }, 1000)
} else {} } else {
this.$refs.uToast.show({
title: '收货失败',
type: 'error',
duration: '1000'
})
this.show = false
}
}) })
}, },
// //
@ -149,18 +169,19 @@
signType: response.data.signType, signType: response.data.signType,
paySign: response.data.paySign, paySign: response.data.paySign,
success: function(res) { success: function(res) {
uni.setStorageSync("Refresh", 'Refresh')
that.$refs.uToast.show({ that.$refs.uToast.show({
title: '支付成功', title: '支付成功',
type: 'success', type: 'success',
toast: 1500, duration: 1500,
url: `/pages/paysuccess/paysuccess`,
}) })
that.goodsOrderinfo();
}, },
fail: function(err) { fail: function(err) {
that.$refs.uToast.show({ that.$refs.uToast.show({
title: '取消支付', title: '取消支付',
type: 'error', type: 'error',
toast: 1500, duration: 1500,
}) })
} }
}); });
@ -168,7 +189,7 @@
that.$refs.uToast.show({ that.$refs.uToast.show({
title: response.msg, title: response.msg,
type: 'error', type: 'error',
toast: 2000 duration: 2000
}) })
} }
}) })
@ -182,7 +203,7 @@
// //
rate(item) { rate(item) {
uni.navigateTo({ uni.navigateTo({
url: `/pages/goodsorderRate/goodsorderRate?item=${JSON.stringify(item)}` url: `/pages/goodsorderRate/goodsorderRate?item=${JSON.stringify(item)}&delta=${3}`
}) })
}, },
// //
@ -196,8 +217,17 @@
ssgoodsOrder(this.patientId, this.orderStatus, this.goodsOrderId, this.pageSize, this.pageNum, this ssgoodsOrder(this.patientId, this.orderStatus, this.goodsOrderId, this.pageSize, this.pageNum, this
.goodsName).then( .goodsName).then(
res => { res => {
this.orderlist = res.rows if (res.code == 200) {
this.total = res.total this.orderlist = res.rows
// this.orderlist.forEach(e => {
// e.timestamp = null
// var time = new Date(e.orderTime).getTime() / 1000 + (60 * 60 * 24)
// var times = new Date().getTime() / 1000
// e.timestamp = time - times
// })
uni.removeStorageSync('Refresh');
this.total = res.total
}
}) })
}, },
// //
@ -209,6 +239,7 @@
}, },
watch: { // watch: { //
goodsName() { goodsName() {
this.pageNum = 1
this.goodsOrderinfo() this.goodsOrderinfo()
}, },
}, },
@ -218,56 +249,72 @@
}); });
}, },
onShow() { onShow() {
this.pageNum = 1;
this.baseurl = baseurl;
let that = this let that = this
try { try {
const value = uni.getStorageSync('patientId'); const value = uni.getStorageSync('openid');
if (value) { if (value) {} else {
that.patientId = value uni.navigateTo({
that.goodsOrderinfo(); url: '/pages/login/login'
})
} }
} catch (e) {} } catch (e) {}
try { try {
const value = uni.getStorageSync('openid'); const value3 = uni.getStorageSync('Refresh');
if (value) { if (value3) {
that.openid = value that.goodsOrderinfo();
} }
} catch (e) {} } catch (e) {}
}, },
onLoad(options) { // onLoad(options) { //
this.baseurl = baseurl; let that = this
if (options.orderStatus) { try {
this.orderStatus = options.orderStatus const value = uni.getStorageSync('patientId');
if (options.orderStatus == 'WAIT_PAY') { const value2 = uni.getStorageSync('openid');
this.title = '待付款' if (value && value2) {
} else if (options.orderStatus == 'WAIT_RECEIVED_GOODS') { that.patientId = value
this.title = '待收货' that.openid = value2
} else if (options.orderStatus == 'RECEIVED_GOODS') { if (options.orderStatus) {
this.title = '待评价' that.orderStatus = options.orderStatus
} else if (options.orderStatus == 'EVALUATED') { if (options.orderStatus == 'WAIT_PAY') {
this.title = '已完成' that.title = '待付款'
that.goodsOrderinfo();
} else if (options.orderStatus == 'WAIT_RECEIVED_GOODS') {
that.title = '待收货'
that.goodsOrderinfo();
} else if (options.orderStatus == 'RECEIVED_GOODS') {
that.title = '待评价'
that.goodsOrderinfo();
} else if (options.orderStatus == 'EVALUATED') {
that.title = '已完成'
that.goodsOrderinfo();
}
} else {
that.goodsOrderinfo();
}
} }
} } catch (e) {}
}, },
onReachBottom() { // onReachBottom() { //
if (this.orderlist.length >= this.total) {} else { if (this.orderlist.length >= this.total) {} else {
this.pageNum++; this.pageNum++;
ssgoodsOrder(this.patientId, this.orderStatus, this.goodsOrderId, this.pageSize, this.pageNum, this ssgoodsOrder(this.patientId, this.orderStatus, this.goodsOrderId, this.pageSize, this.pageNum, this
.goodsName).then( .goodsName).then(res => {
res => { res.rows.forEach(e => {
res.rows.forEach(e => { // e.timestamp = null
this.orderlist.push(e) // var time = new Date(e.orderTime).getTime() / 1000 + (60 * 60 * 24)
}) // var times = new Date().getTime() / 1000
this.total = res.total // e.timestamp = time - times
this.orderlist.push(e)
}) })
this.total = res.total
})
} }
}, },
onPullDownRefresh() { // onPullDownRefresh() { //
this.pageNum = 1; this.pageNum = 1;
ssgoodsOrder(this.patientId, this.orderStatus, this.goodsOrderId, this.pageSize, this.pageNum, this.goodsName) this.goodsOrderinfo();
.then(res => {
this.orderlist = res.rows
this.total = res.total
})
setTimeout(function() { setTimeout(function() {
uni.stopPullDownRefresh(); uni.stopPullDownRefresh();
}, 1000); }, 1000);

View File

@ -26,7 +26,25 @@
return { return {
}; };
} },
//1.
onShareAppMessage(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
//2.
onShareTimeline(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
} }
</script> </script>

View File

@ -27,7 +27,25 @@
return { return {
}; };
} },
//1.
onShareAppMessage(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
//2.
onShareTimeline(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
} }
</script> </script>

View File

@ -1,5 +1,59 @@
.app { .app {
padding: 2%; padding: 2%;
.masks{
image{
position: absolute;
bottom:380rpx;
left:50%;
transform: translateX(-50%);
z-index: 999;
width: 250rpx;
border-radius: 25rpx;
height: 250rpx;
}
.ratetitle{
font-size: 34rpx;
position: absolute;
bottom:320rpx;
left:50%;
transform: translateX(-50%);
z-index: 999;
}
.mask{
position: absolute;
bottom:0;
width: 750rpx;
height: 703rpx;
background: #FFFFFF;
border-radius: 30rpx 30rpx 0px 0px;
display: flex;
justify-content: space-around;
.rateitem{
margin-top:200rpx;
width: 217rpx;
height: 222rpx;
line-height: 222rpx;
text-align: center;
color: #ffffff;
background: #BFBFBF;
font-size: 40rpx;
border-radius: 25rpx;
}
.lookrateitem{
font-size: 32rpx;
margin-top:440rpx;
width: 200rpx;
height: 200rpx;
line-height: 200rpx;
text-align: center;
color: #ffffff;
background: #BFBFBF;
border-radius: 25rpx;
}
}
}
.noorder{ .noorder{
margin-top: 20%; margin-top: 20%;
image{ image{

View File

@ -8,7 +8,7 @@
{{item.orderStatus=='PAY'?'已付款':''}} {{item.orderStatus=='PAY'?'已付款':''}}
{{item.orderStatus=='WAIT_DISPATCH'?'待服务':''}} {{item.orderStatus=='WAIT_DISPATCH'?'待服务':''}}
{{item.orderStatus=='NOT_FINISH'?'待完成':''}} {{item.orderStatus=='NOT_FINISH'?'待完成':''}}
{{item.orderStatus=='COMPLETE'?'评价':''}} {{item.orderStatus=='COMPLETE'?'评价':''}}
{{item.orderStatus=='EVALUATED'?'服务完成':''}} {{item.orderStatus=='EVALUATED'?'服务完成':''}}
{{item.orderStatus=='WAIT_REFUND'?'退款中':''}} {{item.orderStatus=='WAIT_REFUND'?'退款中':''}}
{{item.orderStatus=='REFUNDED'?'已退款':''}} {{item.orderStatus=='REFUNDED'?'已退款':''}}
@ -32,11 +32,9 @@
去支付 去支付
</view> </view>
<view class="submit" v-if="item.orderStatus=='WAIT_REFUND'" style="background-color: coral;">退款中</view> <view class="submit" v-if="item.orderStatus=='WAIT_REFUND'" style="background-color: coral;">退款中</view>
<!-- <view class="submit" v-if="item.orderStatus=='COMPLETE'" @tap='gorate(item)'>去评价</view> --> <view class="submit" v-if="item.orderStatus=='COMPLETE'" @tap='gorate(item)'
<!-- <view class="submit" style="background-color: #60c5f1;">立即评价</view>
v-if="item.orderStatus=='PAY'||item.orderStatus=='WAIT_DISPATCH'||item.orderStatus=='NOT_FINISH'"> <view class="submit" v-if="item.orderStatus=='EVALUATED'" @tap='lookrate(item)'>查看评价</view>
确认完成
</view> -->
</view> </view>
</view> </view>
<view class="noorder" v-else> <view class="noorder" v-else>
@ -46,56 +44,150 @@
</view> </view>
</view> </view>
<u-toast ref="uToast" /> <u-toast ref="uToast" />
<u-mask :show="rateshow" @tap="rateshow = false" class='masks'>
<view class="mask">
<view class="rateitem" @tap="taprate('SATISFIED')">
满意
</view>
<view class="rateitem" @tap="taprate('COMMONLY')">
一般
</view>
<view class="rateitem" @tap="taprate('DISSATISFIED')">
不满意
</view>
</view>
</u-mask>
<u-mask :show="lookrateshow" @tap="lookrateshow = false" class='masks'>
<image :src="baseurl+rateimgtitle.img" mode=""></image>
<view class="ratetitle">
{{rateimgtitle.title}}
</view>
<view class="mask">
<view class="lookrateitem" :style="ratelist.evaluateSatisfaction=='SATISFIED'?'background: #4C7BC9':''">
满意
</view>
<view class="lookrateitem" :style="ratelist.evaluateSatisfaction=='COMMONLY'?'background: #4C7BC9':''">
一般
</view>
<view class="lookrateitem"
:style="ratelist.evaluateSatisfaction=='DISSATISFIED'?'background: #4C7BC9':''">
不满意
</view>
</view>
</u-mask>
</view> </view>
</template> </template>
<script> <script>
import baseurl from '@/api/baseurl.js' import baseurl from '@/api/baseurl.js'
import {
lookrate
} from '@/api/lookrate/index.js'
import { import {
appletAppointmentOrderPay appletAppointmentOrderPay
} from '@/api/appointmenttime/appointmenttime.js' } from '@/api/appointmenttime/appointmenttime.js'
import {
addAppointmentEvaluate
} from '@/api/ServiceDetails/ServiceDetails.js'
import { import {
appServiceOrder appServiceOrder
} from '@/api/Nursingstationserviceorder/Nursingstationserviceorder.js' } from '@/api/Nursingstationserviceorder/Nursingstationserviceorder.js'
export default { export default {
data() { data() {
return { return {
rateimgtitle: {
img: null,
title: null,
},
ratelist: null, //list
rateshow: false, //
lookrateshow: false, //
baseurl: '', baseurl: '',
openid: null, openid: null,
patientId: null, patientId: null,
pageNum: 1, pageNum: 1,
total:0, total: 0,
pageSize: 10, pageSize: 15,
list: [], list: [],
orderNo: null,
timer: null,
} }
}, },
onShow() { onShow() {
this.baseurl = baseurl
let that = this let that = this
this.baseurl = baseurl
this.pageNum = 1;
try { try {
const value = uni.getStorageSync('patientId'); const value3 = uni.getStorageSync('Refresh');
if (value) { if (value3) {
that.patientId = value that.getinfo();
that.getinfo()
} }
} catch (e) {} } catch (e) {}
try { try {
const value = uni.getStorageSync('openid'); const value = uni.getStorageSync('openid');
if (value) { if (value) {} else {
that.openid = value uni.navigateTo({
url: '/pages/login/login'
})
} }
} catch (e) {} } catch (e) {}
}, },
onLoad() { onLoad() {
let that = this
this.pageNum = 1
try {
const value = uni.getStorageSync('patientId');
const value2 = uni.getStorageSync('openid');
if (value && value2) {
that.patientId = value
that.openid = value2
that.getinfo()
}
} catch (e) {}
}, },
methods: { methods: {
//
lookrate(item) {
this.rateimgtitle.img = item.itemPictureUrl
this.rateimgtitle.title = item.nurseItemName
this.lookrateshow = true
lookrate(item.orderNo).then(res => {
this.ratelist = res.data
})
},
// //
// gorate(){ gorate(item) {
// uni.navigateTo({ this.orderNo = item.orderNo
this.rateshow = true
// }) },
// }, //
taprate(item) {
var obj = {
"patientId": this.patientId,
"openid": this.openid,
"orderNo": this.orderNo,
"evaluateChannel": "WE_CHAT_APPLET",
"evaluateSatisfaction": item,
}
addAppointmentEvaluate(obj).then(res => {
if (res.code == 200) {
uni.setStorageSync("Refresh", 'Refresh')
this.orderNo = null
this.$refs.uToast.show({
title: '评价成功',
type: 'success',
duration: '1500'
})
if (this.timer) {
clearTimeout(this.timer)
}
this.timer = setTimeout(e => {
uni.navigateTo({
url: `/pages/ratesuccess/ratesuccess`
})
}, 1500)
}
})
},
// //
buy(item) { buy(item) {
let obj = { let obj = {
@ -107,7 +199,7 @@
payType: "WECHAT_PAY", payType: "WECHAT_PAY",
buySource: "NURSE_STATION", buySource: "NURSE_STATION",
} }
var that =this var that = this
appletAppointmentOrderPay(obj).then(response => { appletAppointmentOrderPay(obj).then(response => {
if (response.code == 200) { if (response.code == 200) {
uni.requestPayment({ uni.requestPayment({
@ -117,18 +209,19 @@
signType: response.data.signType, signType: response.data.signType,
paySign: response.data.paySign, paySign: response.data.paySign,
success: function(res) { success: function(res) {
uni.setStorageSync("Refresh", 'Refresh')
that.$refs.uToast.show({ that.$refs.uToast.show({
title: '支付成功', title: '支付成功',
type: 'success', type: 'success',
toast: 1500, duration: 1500,
url: `/pages/paysuccess/paysuccess`,
}) })
that.getinfo()
}, },
fail: function(err) { fail: function(err) {
that.$refs.uToast.show({ that.$refs.uToast.show({
title: '取消支付', title: '取消支付',
type: 'error', type: 'error',
toast: 1500, duration: 1500,
}) })
} }
}); });
@ -136,15 +229,24 @@
this.$refs.uToast.show({ this.$refs.uToast.show({
title: response.msg, title: response.msg,
type: 'error', type: 'error',
toast: 2000 duration: 2000
}) })
} }
}) })
}, },
getinfo() { getinfo() {
appServiceOrder(this.patientId, this.pageSize, this.pageNum).then(res => { appServiceOrder(this.patientId, this.pageSize, this.pageNum).then(res => {
this.list = res.rows; if (res.code == 200) {
this.total = res.total uni.removeStorageSync('Refresh');
this.list = res.rows;
// this.list.forEach(e => {
// e.timestamp = null
// var time = new Date(e.createTime).getTime() / 1000 + (60 * 60 * 24)
// var times = new Date().getTime() / 1000
// e.timestamp = time - times
// })
this.total = res.total
}
}) })
}, },
gofinished(item) { gofinished(item) {
@ -158,6 +260,10 @@
this.pageNum++ this.pageNum++
appServiceOrder(this.patientId, this.pageSize, this.pageNum).then(res => { appServiceOrder(this.patientId, this.pageSize, this.pageNum).then(res => {
res.rows.forEach(e => { res.rows.forEach(e => {
// e.timestamp = null
// var time = new Date(e.createTime).getTime() / 1000 + (60 * 60 * 24)
// var times = new Date().getTime() / 1000
// e.timestamp = time - times
this.list.push(e) this.list.push(e)
}) })
}) })
@ -172,7 +278,6 @@
}, },
} }
</script> </script>
<style lang="scss"> <style lang="scss">
@import './Nursingstationserviceorder.scss'; @import './Nursingstationserviceorder.scss';
</style> </style>

View File

@ -44,7 +44,8 @@
var that = this var that = this
try { try {
const value = uni.getStorageSync('openid'); const value = uni.getStorageSync('openid');
if (value) { const value3 = uni.getStorageSync('token');
if (value && value3) {
const value2 = uni.getStorageSync('patientId'); const value2 = uni.getStorageSync('patientId');
if (value2) {} else { if (value2) {} else {
uni.navigateTo({ uni.navigateTo({
@ -67,45 +68,44 @@
var that = this var that = this
try { try {
const value = uni.getStorageSync('openid'); const value = uni.getStorageSync('openid');
if (value) { const value3 = uni.getStorageSync('token');
const value2 = uni.getStorageSync('patientId'); var that = this
if (value2) { if (value && value3) {
uni.navigateTo({ existPatientInfo(value).then(res => {
url: '/pages/order/order' if (res.code == 200 && res.msg == 'LOGIN') {
}) const value2 = uni.getStorageSync('patientId');
} else { if (value2) {
uni.navigateTo({ uni.navigateTo({
url: '/pages/login/login' url: '/pages/order/order'
}) })
} } else {
} else { that.remove()
uni.navigateTo({ }
url: '/pages/login/login' } else {
that.remove()
}
}) })
} else {
that.remove()
} }
} catch (e) { } catch {
uni.navigateTo({ that.remove()
url: '/pages/login/login'
})
} }
}, },
// //
gouser() { gouser() {
try { try {
const value = uni.getStorageSync('openid'); const value = uni.getStorageSync('openid');
const value3 = uni.getStorageSync('token');
var that = this var that = this
if (value) { if (value && value3) {
existPatientInfo(value).then(res => { existPatientInfo(value).then(res => {
if (res.code == 200) { if (res.code == 200 && res.msg == 'LOGIN') {
if (res.msg == 'LOGIN') { const value2 = uni.getStorageSync('patientId');
const value2 = uni.getStorageSync('patientId'); if (value2) {
if (value2) { uni.navigateTo({
uni.navigateTo({ url: '/pages/user/user'
url: '/pages/user/user' })
})
} else {
that.remove()
}
} else { } else {
that.remove() that.remove()
} }
@ -124,11 +124,30 @@
uni.removeStorageSync('patientId'); uni.removeStorageSync('patientId');
uni.removeStorageSync('openid'); uni.removeStorageSync('openid');
uni.removeStorageSync('phone'); uni.removeStorageSync('phone');
uni.removeStorageSync('token');
uni.navigateTo({ uni.navigateTo({
url: '/pages/login/login' url: '/pages/login/login'
}) })
}, },
}, },
//1.
onShareAppMessage(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
//2.
onShareTimeline(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
} }
</script> </script>

View File

@ -1,11 +1,23 @@
<template> <template>
<view class="app"> <view class="app">
<view class="productlist"> <view class="" v-if='GoodsCategorychildrenlist.length>1'>
<top-tabbar :tabIndex="tabIndex" :tabBars="GoodsCategorychildrenlist" @toggleToptab="toggleTab"
selectedBottomColor="#D43953" selectedTextColor="#D43953" textColor="#7d7e80" bgColor="#ffffff">
</top-tabbar>
</view>
<view class="inputs">
<i class="icon"></i>
<input v-model="goodsName" type="text" name="" id="" class="input" placeholder="请输入商品名称">
</view>
<view class="productlist" v-if='goodsList.length>0'>
<view class="item" @tap='goCommodityDetails(item)' v-for="(item,index) in goodsList" :key="index"> <view class="item" @tap='goCommodityDetails(item)' v-for="(item,index) in goodsList" :key="index">
<image :src="baseurl+item.goodsPictureUrl" mode=""></image> <image :src="baseurl+item.goodsPictureUrl" mode=""></image>
<view class="title"> <view class="title">
{{item.goodsName}} {{item.goodsName}}
</view> </view>
<view class="text">
{{item.attributeDetailsName}}
</view>
<view class="price"> <view class="price">
{{item.goodsPrice}} {{item.goodsPrice}}
</view> </view>
@ -13,17 +25,31 @@
<view style="width: 45%;" v-if="goodsList.length%2!=0"> <view style="width: 45%;" v-if="goodsList.length%2!=0">
</view> </view>
</view> </view>
<view class="noorder" v-if='goodsList.length==0'>
<image src="../../static/noorder.png" mode=""></image>
<view class="">
暂无商品
</view>
</view>
<u-back-top :scroll-top="scrollTop"></u-back-top>
</view> </view>
</template> </template>
<script> <script>
import { import {
goodsList goodsList,
getGoodsCategoryNameList
} from '@/api/ProductList/ProductList.js'; } from '@/api/ProductList/ProductList.js';
import baseurl from '@/api/baseurl.js' import baseurl from '@/api/baseurl.js'
import topTabbar from '../toptabbar/toptabbar.vue'
export default { export default {
components: {
topTabbar
},
data() { data() {
return { return {
//tabIndex便
tabIndex: 0,
baseurl: '', baseurl: '',
title: '医路优品', // title: '医路优品', //
pageNum: 1, pageNum: 1,
@ -31,28 +57,111 @@
goodsCategoryId: '', // goodsCategoryId: '', //
goodsList: [], //list goodsList: [], //list
total: 0, //list total: 0, //list
goodsName: '',
GoodsCategorychildrenlist: [], //list
GoodsCategorychildrenid: null,
scrollTop: 0,
}; };
}, },
watch: { //
goodsName() {
this.pageNum = 1;
goodsList(this.pageSize, this.pageNum, this.GoodsCategorychildrenid, this.goodsName).then(res => {
this.goodsList = res.rows
this.total = res.total
})
},
},
onShow() {
var that = this
try {
const value = uni.getStorageSync('openid');
const value3 = uni.getStorageSync('Refresh');
if (value) {} else {
uni.navigateTo({
url: '/pages/login/login'
})
}
if (value3) {
that.goodsListinfo();
}
} catch (e) {}
},
onLoad(options) { // onLoad(options) { //
this.title = options.title // if (options.title) {
this.title = options.title //
}
this.goodsCategoryId = options.goodsCategoryId //id this.goodsCategoryId = options.goodsCategoryId //id
this.GoodsCategorychildrenid = options.goodsCategoryId //id
this.baseurl = baseurl; this.baseurl = baseurl;
this.goodsListinfo(this.pageSize, this.pageNum, options.goodsCategoryId) this.goodsListinfo()
this.GoodsCategorychildren(this.goodsCategoryId);
}, },
methods: { methods: {
// onPageScroll(e) {
goodsListinfo(pageSize, pageNum, goodsCategoryId) { this.scrollTop = e.scrollTop;
goodsList(pageSize, pageNum, goodsCategoryId).then(res => { },
res.rows.forEach(e => { //
this.goodsList.push(e) toggleTab(index) {
if (index == 1111111111111) {
uni.navigateTo({
url: `/pages/classification/classification?goodsCategoryId=${this.goodsCategoryId}&index=${this.tabIndex}&GoodsCategorychildrenid=${this.GoodsCategorychildrenid}`
}) })
this.total = res.total } else if (index == 0) {
this.GoodsCategorychildrenid = this.goodsCategoryId
this.tabIndex = index
this.pageNum = 1
goodsList(this.pageSize, this.pageNum, this.goodsCategoryId, this.goodsName).then(
res => {
if (res.code == 200) {
this.goodsList = res.rows
this.total = res.total
}
uni.removeStorageSync('Refresh');
})
} else {
this.GoodsCategorychildrenid = this.GoodsCategorychildrenlist[index].id
this.tabIndex = index
this.pageNum = 1
goodsList(this.pageSize, this.pageNum, this.GoodsCategorychildrenid, this.goodsName).then(
res => {
if (res.code == 200) {
this.goodsList = res.rows
this.total = res.total
}
uni.removeStorageSync('Refresh');
})
}
},
//id
GoodsCategorychildren(value) {
getGoodsCategoryNameList(value).then(res => {
this.GoodsCategorychildrenlist = [{
goodsCategoryName: '全部',
id: 99999999999999999,
}]
res.data.forEach(e => {
this.GoodsCategorychildrenlist.push(e)
})
})
},
//
goodsListinfo() {
this.pageNum = 1;
goodsList(this.pageSize, this.pageNum, this.GoodsCategorychildrenid, this.goodsName).then(res => {
if (res.code == 200) {
res.rows.forEach(e => {
this.goodsList.push(e)
})
this.total = res.total
}
uni.removeStorageSync('Refresh');
}) })
}, },
// //
goCommodityDetails(item) { goCommodityDetails(item) {
uni.navigateTo({ uni.navigateTo({
url: `/pages/CommodityDetails/CommodityDetails?goodsPrice=${item.goodsPrice}&goodsInfoId=${item.goodsInfoId}&buySource=${'SHOPPING_MALL'}` url: `/pages/CommodityDetails/CommodityDetails?goodsPrice=${item.goodsPrice}&goodsInfoId=${item.goodsInfoId}&buySource=${'SHOPPING_MALL'}&goodsAttributeId=${item.goodsAttributeId}`
}) })
}, },
}, },
@ -64,19 +173,45 @@
onReachBottom() { // onReachBottom() { //
if (this.goodsList.length >= this.total) {} else { if (this.goodsList.length >= this.total) {} else {
this.pageNum++; this.pageNum++;
this.goodsListinfo(this.pageSize, this.pageNum, this.goodsCategoryId) goodsList(this.pageSize, this.pageNum, this.GoodsCategorychildrenid, this.goodsName).then(res => {
if (res.code == 200) {
res.rows.forEach(e => {
this.goodsList.push(e)
})
}
})
} }
}, },
onPullDownRefresh() { // onPullDownRefresh() { //
this.pageNum = 1; this.pageNum = 1;
goodsList(this.pageSize, this.pageNum, this.goodsCategoryId).then(res => { goodsList(this.pageSize, this.pageNum, this.GoodsCategorychildrenid, this.goodsName).then(res => {
this.goodsList = res.rows this.goodsList = res.rows
this.total = res.total this.total = res.total
}) })
setTimeout(function() { setTimeout(function() {
uni.stopPullDownRefresh(); uni.stopPullDownRefresh();
}, 1000); }, 1000);
} },
//1.
onShareAppMessage(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
url = decodeURIComponent(url)
return {
title: '泉医到家',
path: url,
}
},
//2.
onShareTimeline(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
url = decodeURIComponent(url)
return {
title: '泉医到家',
path: url,
}
},
} }
</script> </script>
@ -84,10 +219,58 @@
.app { .app {
padding: 0; padding: 0;
.noorder {
view {
text-align: center;
font-size: 40rpx;
color: #BFBFBF;
}
image {
display: block;
margin: 20% auto 50rpx;
width: 160rpx;
height: 200rpx;
}
}
.inputs {
box-shadow: 0rpx 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
border: 1px solid #f0f0f0;
width: 90%;
height: 65rpx;
margin: 10rpx 0 10rpx 50%;
transform: translateX(-50%);
border-radius: 20rpx;
background-color: #Ffffff;
z-index: 999;
.input {
margin: 0 auto;
position: absolute;
height: 65rpx;
// top: 8%;
left: 10%;
width: 90%;
font-size: 26rpx;
color: #000000;
}
.icon {
background: url(@/static/sousuo.png) no-repeat;
width: 30rpx;
height: 28rpx;
background-size: cover;
position: absolute;
top: 30%;
left: 3%;
}
}
.productlist { .productlist {
width: 100%; width: 100%;
margin: 0 auto; margin: 0 auto;
padding: 40rpx 0 0 0; padding: 20rpx 0 0 0;
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
justify-content: space-evenly; justify-content: space-evenly;
@ -101,23 +284,37 @@
margin-bottom: 40rpx; margin-bottom: 40rpx;
.price { .price {
font-size: 42rpx; font-size: 36rpx;
color: #D43953; color: #D43953;
line-height: 79rpx; line-height: 79rpx;
padding-left: 20rpx; padding-left: 15rpx;
}
.text {
font-size: 24rpx;
padding: 0 15rpx;
// text-overflow: ellipsis;
// overflow: hidden;
// white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
} }
.title { .title {
font-size: 39rpx; font-size: 36rpx;
color: #000000; color: #000000;
line-height: 69rpx; line-height: 69rpx;
padding-left: 20rpx; padding-left: 15rpx;
text-overflow: ellipsis; text-overflow: ellipsis;
overflow: hidden; overflow: hidden;
white-space: nowrap; white-space: nowrap;
} }
image { image {
border-radius: 25rpx 25rpx 0 0;
width: 100%; width: 100%;
height: 340rpx; height: 340rpx;
} }

View File

@ -0,0 +1,172 @@
.app {
height: 100%;
padding: 2% 2% 150rpx 2%;
padding-top: 10rpx;
font-size: 34rpx;
position: relative;
.mask {
.information {
width: 70%;
height: 400rpx;
margin: 50% auto;
background: #FFFFFF;
border-radius: 30rpx;
text-align: center;
color: #FFFFFF;
position: relative;
.determine,
.cancel {
width: 200rpx;
height: 70rpx;
border-radius: 26rpx;
font-size: 34rpx;
line-height: 70rpx;
position: absolute;
top: 74%;
}
.determine {
background: #4C7BC9;
right: 36rpx;
}
.cancel {
background: #C5BFBF;
left: 36rpx;
}
.title {
font-size: 42rpx;
margin-top: 40rpx;
color: #000000;
}
image {
width: 100rpx;
height: 100rpx;
margin: 10% 0 0 0;
}
}
}
.appointment {
width: 120rpx;
height: 70rpx;
background: #4C7BC9;
border-radius: 26rpx;
color: #ffffff;
text-align: center;
line-height: 70rpx;
position: absolute;
bottom:20rpx;
right:5%;
}
.detailtitle {
position: relative;
width: 94%;
height: 100%;
margin: 0 auto;
background: #FFFFFF;
border-radius: 20rpx;
margin-top: 3%;
font-size: 31rpx;
padding: 3%;
padding-bottom: 50rpx;
.textInfo {
word-break:break-all;
font-size: 29rpx;
text-indent: 2rem;
line-height: 42rpx;
color: #666666;
padding-top: 30rpx;
/deep/ .richPic {
width: 100% !important;
height: 100% !important;
}
}
.Introduction {
font-size: 31rpx;
color: #333333;
line-height: 12rpx;
margin-left: -3%;
padding: 3%;
}
}
.item {
width: 95%;
height: 100%;
background: #FFFFFF;
box-shadow: 0px 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
border-radius: 20rpx;
margin: 20rpx auto 0;
padding: 3% 3% 40rpx 3%;
line-height: 60rpx;
position: relative;
image {
width: 170rpx;
height: 170rpx;
margin-left: 3%;
}
.servicetime {
color: #999999;
line-height: 37rpx;
font-size: 30rpx;
position: absolute;
top: 35%;
left: 35%;
}
.price {
color: red;
font-size: 32rpx;
position: absolute;
top: 65%;
left: 35%;
}
.product {
color: #000000;
width: 60%;
position: absolute;
top: 14%;
left: 32%;
font-size: 28rpx;
}
.huanyao {
color: #000000;
position: absolute;
top: 10%;
left: 35%;
width: 60%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
/* 耗材包 */
.Consumablespackage {
width: 95%;
height: 100%;
background: #FFFFFF;
box-shadow: 0px 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
border-radius: 20rpx;
margin: 20rpx auto 0;
padding: 3% 3% 40rpx 3%;
line-height: 60rpx;
font-size: 32rpx;
.detail {
font-size: 30rpx;
color: #000000;
}
span {
color: red;
float: right;
}
}
}

View File

@ -0,0 +1,174 @@
<template>
<view class="app">
<view class="item">
<image :src="list.itemPictureUrl"></image>
<view class="huanyao" v-if='list.nurseItemName'>{{list.nurseItemName}}
</view>
<view class="huanyao" v-else>暂无
</view>
<!-- <view class="pingfen">
<u-rate :count="5" value="2"></u-rate>
</view> -->
<view class="servicetime">服务时长:{{list.serveDurationUnit?list.serveDurationUnit:'0'}}</view>
<view class="price">{{list.nurseItemPrice==null?'0':list.nurseItemPrice}}</view>
</view>
<view class="Consumablespackage" v-if='list.itemConsumableList'>耗材包详情:
<span>{{list.consumableTotalPrice==null?'0':list.consumableTotalPrice}}</span>
<view class="detail" v-for='(item,index) in list.itemConsumableList' :key="index">
·{{item.consumableDetail}}
<span>{{item.consumableCount}}{{item.consumableUnit}}/{{item.consumablePrice}}</span>
</view>
</view>
<view class="detailtitle">
<view class="Introduction">服务详情:</view>
<view class="textInfo" v-html="list.nurseItemContent">
</view>
</view>
<view class="appointment" @tap.stop='goappointments(item)'>预约</view>
<u-toast ref="uToast" />
<u-mask :show="usershow" class='mask'>
<view class="information">
<image src="../../static/information.png" mode=""></image>
<view class="title">
请完善个人信息
</view>
<view class="cancel" @tap='usershow=false'>
取消
</view>
<view class="determine" @tap='goinformation'>
去完善
</view>
</view>
</u-mask>
</view>
</template>
<script>
import {
AppIdentification
} from '@/api/AppIdentification/index.js'
import baseurl from '@/api/baseurl.js'
import {
getAppStationItemInfo
} from '@/api/ProjectDetails/index.js'
export default {
data() {
return {
baseurl: '',
list: {},
orderNo: '',
usershow: false, //
list: [], //list
timer: null,
stationId: null,
stationItemId: null,
stationItemPriceId: null,
}
},
onLoad(options) {
this.stationId = options.stationId
this.stationItemId = options.stationItemId
this.stationItemPriceId = options.stationItemPriceId
},
onShow() {
this.usershow = false
//
this.getlist(this.stationId, this.stationItemId, this.stationItemPriceId)
},
methods: {
//
goappointments() {
let that = this
try {
const value = uni.getStorageSync('openid');
const value2 = uni.getStorageSync('patientId');
if (value && value2) {
AppIdentification(value2).then(res => {
if (res.code == 200) {
if (res.data.loginFlag) {
that.usershow = false
uni.navigateTo({
url: `/pages/appointmenttime/appointmenttime?stationId=${this.list.stationId}&stationItemId=${this.list.stationItemId}&stationItemPriceId=${this.list.stationItemPriceId}`,
})
} else {
that.usershow = true
}
} else if (res.code == 9999) {
} else {
that.$refs.uToast.show({
title: res.msg,
type: 'error'
})
if (that.timer) {
clearTimeout(that.timer)
}
that.timer = setTimeout(e => {
uni.navigateTo({
url: '/pages/login/login'
})
}, 1500)
}
})
} else {
that.$refs.uToast.show({
title: '未登录,请先登录',
type: 'error'
})
if (that.timer) {
clearTimeout(that.timer)
}
that.timer = setTimeout(e => {
uni.navigateTo({
url: '/pages/login/login'
})
}, 1500)
}
} catch (e) {
uni.navigateTo({
url: '/pages/login/login'
})
}
},
//
goinformation() {
this.usershow = false
uni.navigateTo({
url: '/pages/information/information'
})
},
//
getlist(stationId, stationItemId, stationItemPriceId) {
getAppStationItemInfo(stationId, stationItemId, stationItemPriceId).then(res => {
if (res.data.nurseItemContent) {
res.data.nurseItemContent = res.data.nurseItemContent.replace(/\<img/gi,
"<br/> <img class='richPic'")
}
res.data.itemPictureUrl = baseurl + res.data.itemPictureUrl
this.list = res.data
})
},
},
//1.
onShareAppMessage(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
//2.
onShareTimeline(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
}
</script>
<style lang="scss">
@import './ProjectDetails.scss';
</style>

View File

@ -1,9 +1,71 @@
.app { .app {
height: 100%; height: 100%;
padding: 2%; padding: 0 2% 2%;
font-size: 36rpx; font-size: 36rpx;
padding-top: 10rpx; padding-top: 10rpx;
font-size: 34rpx; font-size: 34rpx;
.masks{
image{
position: absolute;
bottom:380rpx;
left:50%;
transform: translateX(-50%);
z-index: 999;
width: 250rpx;
border-radius: 25rpx;
height: 250rpx;
}
.ratetitle{
font-size: 34rpx;
position: absolute;
bottom:320rpx;
left:50%;
transform: translateX(-50%);
z-index: 999;
}
.mask{
position: absolute;
bottom:0;
width: 750rpx;
height: 703rpx;
background: #FFFFFF;
border-radius: 30rpx 30rpx 0px 0px;
display: flex;
justify-content: space-around;
.rateitem{
margin-top:200rpx;
width: 217rpx;
height: 222rpx;
line-height: 222rpx;
text-align: center;
color: #ffffff;
background: #BFBFBF;
font-size: 40rpx;
border-radius: 25rpx;
}
.lookrateitem{
font-size: 32rpx;
margin-top:440rpx;
width: 200rpx;
height: 200rpx;
line-height: 200rpx;
text-align: center;
color: #ffffff;
background: #BFBFBF;
border-radius: 25rpx;
}
}
}
.time{
height: 80rpx;
width: 95%;
text-align: center;
line-height: 80rpx;
background-color: #fff;
margin: 20rpx auto 0rpx;
border-radius: 20rpx;
}
.mask{ .mask{
position: absolute; position: absolute;
bottom:0; bottom:0;
@ -28,7 +90,7 @@
text-align: center; text-align: center;
width: 300rpx; width: 300rpx;
height: 70rpx; height: 70rpx;
margin: 0 auto; margin: 10rpx auto 0;
line-height: 70rpx; line-height: 70rpx;
background-color:#4C7BC9 ; background-color:#4C7BC9 ;
border-radius: 50rpx; border-radius: 50rpx;
@ -38,13 +100,11 @@
} }
// 服务商家 // 服务商家
.detail { .detail {
margin-top: 3%; margin: 30rpx 0 0 3%;
line-height: 31rpx; line-height: 31rpx;
font-size: 32rpx; font-size: 32rpx;
color: #666666; color: #666666;
line-height: 31rpx; line-height: 31rpx;
margin-left: 3%;
} }
.name { .name {
@ -111,7 +171,6 @@
/* 耗材包 */ /* 耗材包 */
.Consumablespackage { .Consumablespackage {
width: 95%; width: 95%;
// height: 188rpx;
margin: 20rpx auto; margin: 20rpx auto;
padding: 3% 3% 50rpx; padding: 3% 3% 50rpx;
background: #FFFFFF; background: #FFFFFF;

View File

@ -1,5 +1,10 @@
<template> <template>
<view class="app"> <view class="app" v-if="list">
<view class="time" style="" v-if="list.orderStatus=='WAIT_PAY'">
剩余付款时间
<u-count-down style='' :timestamp="timestamp">
</u-count-down>
</view>
<view class="OrderStatus" v-if="list.orderStatus=='REFUNDED'||list.orderStatus=='CANCEL'"> <view class="OrderStatus" v-if="list.orderStatus=='REFUNDED'||list.orderStatus=='CANCEL'">
订单已关闭 订单已关闭
</view> </view>
@ -33,7 +38,7 @@
</view> </view>
<view class="content">服务信息 <view class="content">服务信息
<view class="contacts">·联系人{{list.patientName}}</view> <view class="contacts">·联系人{{list.patientName}}</view>
<view class="contacts">·电话:{{list.patientPhone}}</view> <view class="contacts">·电话{{list.patientPhone}}</view>
<view class="contacts">·地址{{list.serviceAddress}}</view> <view class="contacts">·地址{{list.serviceAddress}}</view>
<view class="contacts">·时间{{list.serviceDate}} {{list.serviceStartTime}}-{{list.serviceEndTime}}</view> <view class="contacts">·时间{{list.serviceDate}} {{list.serviceStartTime}}-{{list.serviceEndTime}}</view>
</view> </view>
@ -44,14 +49,17 @@
</view> </view>
</view> </view>
<view class="Consumablespackage" v-if='list.itemConsumableList'>耗材包详情 <view class="Consumablespackage" v-if='list.itemConsumableList'>耗材包详情
<span>{{list.consumableTotalPrice}}</span> <span v-if="list.consumableTotalPrice">{{list.consumableTotalPrice}}</span>
<span v-else>0</span>
<view class="detail" v-for='(item,index) in list.itemConsumableList' :key="index"> <view class="detail" v-for='(item,index) in list.itemConsumableList' :key="index">
·{{item.orderConsumableName}} ·{{item.orderConsumableName}}
<span
style='font-size: 30rpx;'>{{item.orderConsumableCount}}{{item.consumableUnit}}/{{item.orderConsumablePrice}}</span>
</view> </view>
</view> </view>
<view class="remarks"> <view class="remarks">
<view>备注</view> <view>备注</view>
<input v-model='list.remark'> <input v-model='list.remark' :disabled="list.orderStatus=='WAIT_PAY'?false :true">
</view> </view>
<view class="evaluate"> <view class="evaluate">
<view class="price"> <view class="price">
@ -60,13 +68,15 @@
<view class="cancelorder" @tap="cancelorderment()" <view class="cancelorder" @tap="cancelorderment()"
v-if="list.orderStatus=='PAY'||list.orderStatus=='WAIT_DISPATCH'||list.orderStatus=='NOT_FINISH'">取消订单 v-if="list.orderStatus=='PAY'||list.orderStatus=='WAIT_DISPATCH'||list.orderStatus=='NOT_FINISH'">取消订单
</view> </view>
<view class="cancelorder" style="background: #4C7BC9;" @tap='rateshow= true' <view class="cancelorder" style="background: #60c5f1;" @tap='rateshow= true'
v-if="list.orderStatus=='COMPLETE'">评价 v-if="list.orderStatus=='COMPLETE'">立即评价
</view> </view>
<view class="cancelorder" @tap='buy' style="background-color: darkorange;" <view class="cancelorder" @tap='buy' style="background-color: darkorange;"
v-if="list.orderStatus=='WAIT_PAY'"> v-if="list.orderStatus=='WAIT_PAY'">
去支付 去支付
</view> </view>
<view class="cancelorder" style="background: #4C7BC9;" v-if="list.orderStatus=='EVALUATED'"
@tap='lookrate(list)'>查看评价</view>
</view> </view>
<u-mask :show="rateshow" @tap="rateshow = false"> <u-mask :show="rateshow" @tap="rateshow = false">
<view class="mask"> <view class="mask">
@ -81,6 +91,24 @@
</view> </view>
</view> </view>
</u-mask> </u-mask>
<u-mask :show="lookrateshow" @tap="lookrateshow = false" class='masks'>
<image :src="baseurl+rateimgtitle.img" mode=""></image>
<view class="ratetitle">
{{rateimgtitle.title}}
</view>
<view class="mask">
<view class="lookrateitem" :style="ratelist.evaluateSatisfaction=='SATISFIED'?'background: #4C7BC9':''">
满意
</view>
<view class="lookrateitem" :style="ratelist.evaluateSatisfaction=='COMMONLY'?'background: #4C7BC9':''">
一般
</view>
<view class="lookrateitem"
:style="ratelist.evaluateSatisfaction=='DISSATISFIED'?'background: #4C7BC9':''">
不满意
</view>
</view>
</u-mask>
<u-toast ref="uToast" /> <u-toast ref="uToast" />
</view> </view>
</template> </template>
@ -93,6 +121,9 @@
getAppointmentDetailsInfo, getAppointmentDetailsInfo,
addAppointmentEvaluate addAppointmentEvaluate
} from '@/api/ServiceDetails/ServiceDetails.js' } from '@/api/ServiceDetails/ServiceDetails.js'
import {
lookrate
} from '@/api/lookrate/index.js'
export default { export default {
data() { data() {
return { return {
@ -100,31 +131,45 @@
baseurl: '', baseurl: '',
patientId: '', //id patientId: '', //id
openid: '', //id openid: '', //id
list: {}, list: null,
orderNo: '', orderNo: '',
timer: null, timer: null,
timestamp: 0,
lookrateshow: false, //
ratelist: null,
rateimgtitle: {
img: null,
title: null,
},
} }
}, },
onShow() {
this.getlist()
},
onLoad(options) { onLoad(options) {
this.baseurl = baseurl
this.orderNo = options.orderNo
var that = this var that = this
try { try {
const value = uni.getStorageSync('patientId'); const value = uni.getStorageSync('patientId');
if (value) { const value2 = uni.getStorageSync('openid');
if (value && value2) {
that.patientId = value that.patientId = value
that.openid = value2
} }
} catch (e) {} } catch (e) {}
try {
const value = uni.getStorageSync('openid');
if (value) {
that.openid = value
}
} catch (e) {}
this.orderNo = options.orderNo
this.baseurl = baseurl
this.getlist() this.getlist()
}, },
methods: { methods: {
//
lookrate(item) {
this.rateimgtitle.img = item.itemPictureUrl
this.rateimgtitle.title = item.nurseItemName
lookrate(item.orderNo).then(res => {
this.ratelist = res.data
this.lookrateshow = true
})
},
// //
buy() { buy() {
let obj = { let obj = {
@ -146,18 +191,20 @@
signType: response.data.signType, signType: response.data.signType,
paySign: response.data.paySign, paySign: response.data.paySign,
success: function(res) { success: function(res) {
uni.setStorageSync("Refresh", 'Refresh')
that.getlist()
that.$refs.uToast.show({ that.$refs.uToast.show({
title: '支付成功', title: '支付成功',
type: 'success', type: 'success',
toast: 1500, duration: 1500,
url: `/pages/paysuccess/paysuccess?delta=${3}`
}) })
that.getlist()
}, },
fail: function(err) { fail: function(err) {
that.$refs.uToast.show({ that.$refs.uToast.show({
title: '取消支付', title: '取消支付',
type: 'error', type: 'error',
toast: 1500, duration: 1500,
}) })
} }
}); });
@ -165,12 +212,11 @@
this.$refs.uToast.show({ this.$refs.uToast.show({
title: response.msg, title: response.msg,
type: 'error', type: 'error',
toast: 2000 duration: 2000
}) })
} }
}) })
}, },
// //
taprate(item) { taprate(item) {
var obj = { var obj = {
@ -187,12 +233,22 @@
type: 'success', type: 'success',
duration: '1500' duration: '1500'
}) })
uni.setStorageSync("Refresh", 'Refresh')
this.getlist();
if (this.timer) { if (this.timer) {
clearTimeout(this.timer) clearTimeout(this.timer)
} }
this.timer = setTimeout(e => { this.timer = setTimeout(e => {
this.getlist(); uni.navigateTo({
url: `/pages/ratesuccess/ratesuccess?delta=${3}`
})
}, 1500) }, 1500)
} else {
this.$refs.uToast.show({
title: '评价失败',
type: 'error',
duration: '1500'
})
} }
}) })
}, },
@ -203,7 +259,7 @@
success: function(res) { success: function(res) {
if (res.platform == 'ios') { if (res.platform == 'ios') {
uni.makePhoneCall({ uni.makePhoneCall({
phoneNumber: that.nursestationlist.phone // phoneNumber: that.list.stationPhone //
}); });
} else { } else {
uni.showActionSheet({ uni.showActionSheet({
@ -211,7 +267,7 @@
success: function(res) { success: function(res) {
if (res.tapIndex + 1 == 1) { if (res.tapIndex + 1 == 1) {
uni.makePhoneCall({ uni.makePhoneCall({
phoneNumber: that.nursestationlist.phone // phoneNumber: that.list.stationPhone //
}); });
} }
}, },
@ -225,6 +281,10 @@
getlist() { getlist() {
getAppointmentDetailsInfo(this.orderNo).then(res => { getAppointmentDetailsInfo(this.orderNo).then(res => {
this.list = res.data this.list = res.data
var ordertimes = this.list.createTime.replaceAll(/\-/gi, "/")
var time = new Date(ordertimes).getTime() / 1000 + (60 * 60 * 24)
var times = new Date().getTime() / 1000
this.timestamp = time - times
}) })
}, },
cancelorderment() { cancelorderment() {

View File

@ -1,87 +1,95 @@
.app { .app {
font-size: 34rpx; font-size: 34rpx;
padding-top: 10rpx; padding-top: 10rpx;
height: 100%;
.mask{
.Agreement{
width: 100%;
background-color: #F4F5F7;
text-align: center;
height: 1000rpx;
position: absolute;
top:5%;
width:94%;
left:3%;
font-size: 30rpx;
.title{
height: 100rpx;
line-height: 100rpx;
border-bottom: 1px solid #eeeeee;
font-size: 34rpx;
margin: 0px auto;
width: 100%;
text-align: center;
}
.scroll-Y{
width: 98%;
margin: 0 auto;
height:830rpx ;
overflow-y:scroll;
text-align: left;
text-indent: 2em;
}
.cancel {
height:70rpx;
line-height: 70rpx;
font-size: 32rpx;
background-color: #F4F5F7;
position: absolute;
border-top: 1rpx solid #000000;
bottom:0;
right:0;
width: 50%;
color: #000000;
}
.determine {
height:70rpx;
line-height: 70rpx;
font-size: 32rpx;
width: 50%;
color: #F4F5F7;
background: #4C7BC9;
position: absolute;
bottom:0;
left:0;
}
}
}
.addressitem{
width: 97%;
border-bottom: 1rpx solid #D8D4D4;
margin-left: 3%;
height: 100%; height: 100%;
.leftaddress{
width:15%; .mask {
.Agreement {
width: 100%;
background-color: #F4F5F7;
text-align: center;
height: 1000rpx;
position: absolute;
top: 5%;
width: 94%;
left: 3%;
font-size: 30rpx;
.title {
height: 100rpx;
line-height: 100rpx;
border-bottom: 1px solid #eeeeee;
font-size: 34rpx;
margin: 0px auto;
width: 100%;
text-align: center;
}
.scroll-Y {
width: 98%;
margin: 0 auto;
height: 830rpx;
overflow-y: scroll;
text-align: left;
text-indent: 2em;
}
.cancel {
height: 70rpx;
line-height: 70rpx;
font-size: 32rpx;
background-color: #F4F5F7;
position: absolute;
border-top: 1rpx solid #000000;
bottom: 0;
right: 0;
width: 50%;
color: #000000;
}
.determine {
height: 70rpx;
line-height: 70rpx;
font-size: 32rpx;
width: 50%;
color: #F4F5F7;
background: #4C7BC9;
position: absolute;
bottom: 0;
left: 0;
}
}
}
.addressitem {
width: 97%;
border-bottom: 1rpx solid #D8D4D4;
margin-left: 3%;
height: 100%; height: 100%;
display: flex;
display: inline-block; .leftaddress {
width: 15%;
height: 100%;
display: flex;
display: inline-block;
}
.addition {
color: #666666;
display: inline-block;
line-height: 50rpx;
font-size: 28rpx;
}
} }
.addition{
color: #666666;
display: inline-block;
line-height: 50rpx;
font-size: 28rpx;
}
}
.money { .money {
font-size: 32rpx; font-size: 32rpx;
color: #D43953; color: #D43953;
position: absolute; position: absolute;
right:5%; right: 5%;
top:20%; top: 15%;
} }
.user { .user {
background: #FFFFFF; background: #FFFFFF;
width: 94%; width: 94%;
@ -89,39 +97,46 @@
box-shadow: 0rpx 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03); box-shadow: 0rpx 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
border-radius: 20rpx; border-radius: 20rpx;
line-height: 93rpx; line-height: 93rpx;
.selecttime { .selecttime {
height: 93rpx; height: 93rpx;
margin-left: 3%; margin-left: 3%;
position: relative; position: relative;
text { text {
font-size: 34rpx; font-size: 34rpx;
color: #878987; color: #878987;
} }
image { image {
width: 18rpx; width: 18rpx;
height: 27rpx; height: 27rpx;
position: absolute; position: absolute;
right:5%; right: 5%;
top:50%; top: 50%;
transform: translateY(-50%); transform: translateY(-50%);
} }
.addition{
.addition {
color: #666666; color: #666666;
line-height: 30rpx; line-height: 30rpx;
font-size: 28rpx; font-size: 28rpx;
} }
} }
.item { .item {
width: 97%; width: 97%;
border-bottom: 1rpx solid #D8D4D4; border-bottom: 1rpx solid #D8D4D4;
margin-left: 3%; margin-left: 3%;
.addition{
.addition {
color: #666666; color: #666666;
line-height: 30rpx; line-height: 30rpx;
font-size: 28rpx; font-size: 28rpx;
} }
} }
} }
.remarks { .remarks {
width: 94%; width: 94%;
height: 382rpx; height: 382rpx;
@ -133,32 +148,37 @@
border-radius: 20rpx; border-radius: 20rpx;
margin-top: 20rpx; margin-top: 20rpx;
position: relative; position: relative;
span{
span {
display: inline-block; display: inline-block;
width: 20%; width: 20%;
} }
input { input {
position: absolute; position: absolute;
top:50%; top: 50%;
left:23%; left: 23%;
width: 77%; width: 77%;
transform: translateY(-50%); transform: translateY(-50%);
} }
} }
.priceback { .priceback {
width: 99%; width: 99%;
background: #FFFFFF; background: #FFFFFF;
height: 100rpx; height: 100rpx;
position:fixed; position: fixed;
bottom:0; bottom: 0;
padding-bottom: 20rpx; padding-bottom: 20rpx;
display: flex; display: flex;
justify-content: space-around; justify-content: space-around;
.prices { .prices {
font-size: 48rpx; font-size: 48rpx;
color: #D43953; color: #D43953;
line-height: 100rpx; line-height: 100rpx;
} }
.xiugai { .xiugai {
width: 200rpx; width: 200rpx;
height: 70rpx; height: 70rpx;
@ -170,6 +190,7 @@
text-align: center; text-align: center;
color: #ffffff; color: #ffffff;
} }
.queren { .queren {
width: 200rpx; width: 200rpx;
height: 70rpx; height: 70rpx;
@ -181,22 +202,26 @@
color: #ffffff; color: #ffffff;
} }
} }
.radio-content { .radio-content {
margin: 50rpx auto; margin: 50rpx auto;
width: 70%; width: 70%;
text-align: center; text-align: center;
font-size: 28rpx; font-size: 28rpx;
position: relative; position: relative;
.agreement { .agreement {
position: absolute; position: absolute;
top:50%; top: 50%;
left:20%; left: 20%;
transform: translateY(-50%); transform: translateY(-50%);
color: #878987; color: #878987;
} }
.radio-right { .radio-right {
height: 100rpx; height: 100rpx;
width: 100rpx; width: 100rpx;
.radio { .radio {
display: inline-block; display: inline-block;
width: 35rpx; width: 35rpx;
@ -204,26 +229,33 @@
border-radius: 70%; border-radius: 70%;
border: 2rpx solid #178ffb; border: 2rpx solid #178ffb;
position: absolute; position: absolute;
top:50%; top: 50%;
left:5%; left: 5%;
transform: translateY(-50%); transform: translateY(-50%);
.radio-active { .radio-active {
width: 16rpx; width: 16rpx;
height: 16rpx; height: 16rpx;
border-radius: 50%; border-radius: 50%;
background-color: #178ffb; background-color: #178ffb;
margin-left: 26%; position: absolute;
margin-top: 22%; top: 50%;
left: 50%;
transform: translate(-50%, -50%);
// margin: 0 auto; // margin: 0 auto;
} }
} }
} }
} }
.Consumablespackage .money {
top: 8%;
}
/* 耗材包 */ /* 耗材包 */
.Consumablespackage { .Consumablespackage {
width: 94%; width: 94%;
margin: 10rpx auto; margin: 10rpx auto;
padding: 3%; padding: 3% 0 3% 3%;
font-size: 34rpx; font-size: 34rpx;
background: #FFFFFF; background: #FFFFFF;
border-radius: 20rpx; border-radius: 20rpx;
@ -231,35 +263,50 @@
position: relative; position: relative;
padding-bottom: 40rpx; padding-bottom: 40rpx;
.detail { .detail {
width: 301rpx; width: 100%;
height: 31rpx; line-height: 100rpx;
font-size: 32rpx; // padding: 20rpx 0 0 40rpx;
color: #666666; /deep/ .u-checkbox{
line-height: 31rpx; margin: 40rpx 0 0;
margin: 20rpx 0 0 40rpx; position: relative;
}
span{
width: 100%;
display: inline-block;
font-size: 30rpx;
color: #D43953;
text-align: right;
position: absolute;
right:5%;
top:50%;
transform: translateY(-50%);
}
} }
} }
/* 套餐 */ /* 套餐 */
.Package { .Package {
width: 94%; width: 94%;
height: 150rpx; height: 150rpx;
margin: 10rpx auto; margin: 10rpx auto;
padding: 3%; padding: 3% 0 3% 3%;
font-size: 34rpx; font-size: 34rpx;
background: #FFFFFF; background: #FFFFFF;
border-radius: 20rpx; border-radius: 20rpx;
margin-top:20rpx; margin-top: 20rpx;
position: relative; position: relative;
.detail { .detail {
line-height: 31rpx; line-height: 31rpx;
font-size: 32rpx; font-size: 32rpx;
color: #666666; color: #666666;
line-height: 31rpx; line-height: 31rpx;
position: absolute; position: absolute;
left:10%; left: 10%;
top:60%; top: 60%;
} }
} }
.message { .message {
width: 94%; width: 94%;
background: white; background: white;
@ -268,4 +315,4 @@
text-align: center; text-align: center;
line-height: 96rpx; line-height: 96rpx;
} }
} }

View File

@ -1,6 +1,5 @@
<template> <template>
<view class="app"> <view class="app">
<!-- <view class="message">请填写下面的信息</view> -->
<view class="user"> <view class="user">
<view class="item"> <view class="item">
<span>姓名</span> <span>姓名</span>
@ -45,9 +44,16 @@
</text> </text>
</view> </view>
<view class="Consumablespackage">耗材包详情 <view class="Consumablespackage">耗材包详情
<text class="money">{{orderlist.consumableTotalPrice}}</text> <text class="money">{{consumableTotalPrice}}</text>
<view class="detail" v-for="(item,index) in orderlist.itemConsumableList"> <view class="detail">
·{{item.consumableDetail}} <u-checkbox-group @change="checkboxGroupChange" wrap='true'>
<u-checkbox @change="checkboxChange(item)" v-model="item.radio"
v-for="(item, index) in orderlist.itemConsumableList" :key="index"
:name="item.consumableDetail">
<view style='display: inline-block;'> {{item.consumableDetail}}</view>
<span>{{item.consumableCount}}{{item.consumableUnit}}/{{item.consumablePrice}}</span>
</u-checkbox>
</u-checkbox-group>
</view> </view>
</view> </view>
<view class="remarks"> <view class="remarks">
@ -62,7 +68,6 @@
</view> </view>
<view class="agreement">我已阅读并同意<text @tap='maskshow=true' <view class="agreement">我已阅读并同意<text @tap='maskshow=true'
style="color: #000000;border-bottom: 1rpx solid #000000;">用户协议</text></view> style="color: #000000;border-bottom: 1rpx solid #000000;">用户协议</text></view>
</view> </view>
<view class="priceback"> <view class="priceback">
<view class="prices">{{orderlist.totalPrice}}</view> <view class="prices">{{orderlist.totalPrice}}</view>
@ -136,6 +141,7 @@
personInfo: {}, // personInfo: {}, //
patientId: null, patientId: null,
useritem: null, //optionsuser useritem: null, //optionsuser
consumableTotalPrice: 0, //
orderlist: { orderlist: {
orderCount: 1, orderCount: 1,
patientId: '', patientId: '',
@ -171,11 +177,6 @@
that.personInfo.address = that.useritem.address that.personInfo.address = that.useritem.address
} else {} } else {}
}) })
setTimeout(e => {
if (!that.useritem) {
that.userinfo();
}
}, 500)
}, },
onLoad(options) { onLoad(options) {
var that = this var that = this
@ -187,6 +188,7 @@
} catch (e) {} } catch (e) {}
// //
this.getPatientInfo(options.stationId, options.stationItemId, options.stationItemPriceId) this.getPatientInfo(options.stationId, options.stationItemId, options.stationItemPriceId)
that.userinfo();
}, },
methods: { methods: {
userinfo() { userinfo() {
@ -199,13 +201,9 @@
// //
getAppPatientList(that.patientId).then(response => { getAppPatientList(that.patientId).then(response => {
that.personInfo = response.data that.personInfo = response.data
that.personInfo.address = response.data.provinceName + response.data that.personInfo.address = response.data.areaName + response.data.address
.cityName + response.data.regionName + response.data.streetName +
response.data.address
that.orderlist.patientId = response.data.patientId that.orderlist.patientId = response.data.patientId
that.orderlist.serviceAddress = response.data.provinceName + response.data that.orderlist.serviceAddress = response.data.areaName + response.data.address
.cityName + response.data.regionName + response.data.streetName +
response.data.address
}) })
} }
} catch (e) {} } catch (e) {}
@ -213,14 +211,22 @@
// //
getPatientInfo(stationId, stationItemId, stationItemPriceId) { getPatientInfo(stationId, stationItemId, stationItemPriceId) {
getAppStationItemInfo(stationId, stationItemId, stationItemPriceId).then(res => { getAppStationItemInfo(stationId, stationItemId, stationItemPriceId).then(res => {
res.data.nurseItemContent = ''
if (res.code == 200) { if (res.code == 200) {
if (res.data.itemConsumableList) {
res.data.itemConsumableList.forEach(e => {
e.radio = true
})
}
this.orderlist = res.data this.orderlist = res.data
this.consumableTotalPrice = res.data.consumableTotalPrice
} }
}) })
}, },
// //
updata() { updata() {
var that = this var that = this
this.orderlist.consumableTotalPrice = null
this.orderlist.orderChannel = 'WECHAT_APPLET' this.orderlist.orderChannel = 'WECHAT_APPLET'
if (this.radio == 1) { if (this.radio == 1) {
this.$refs.uToast.show({ this.$refs.uToast.show({
@ -229,7 +235,14 @@
}) })
} else { } else {
this.orderlist.orderCount = 1; this.orderlist.orderCount = 1;
this.orderlist.orderConsumableList = this.orderlist.itemConsumableList this.orderlist.orderConsumableList = []
if (this.orderlist.itemConsumableList) {
this.orderlist.itemConsumableList.forEach(e => {
if (e.radio) {
this.orderlist.orderConsumableList.push(e)
}
})
}
submitAppointment(this.orderlist).then(res => { submitAppointment(this.orderlist).then(res => {
if (res.code == 500) { if (res.code == 500) {
that.$refs.uToast.show({ that.$refs.uToast.show({
@ -258,7 +271,7 @@
that.$refs.uToast.show({ that.$refs.uToast.show({
title: '预约成功', title: '预约成功',
type: 'success', type: 'success',
toast: 1500, duration: 1500,
url: `/pages/paysuccess/paysuccess` url: `/pages/paysuccess/paysuccess`
}) })
}, },
@ -266,7 +279,7 @@
that.$refs.uToast.show({ that.$refs.uToast.show({
title: '取消预约', title: '取消预约',
type: 'error', type: 'error',
toast: 1500, duration: 1500,
url: `/pages/menttimeorder/menttimeorder?list=${JSON.stringify(obj)}` url: `/pages/menttimeorder/menttimeorder?list=${JSON.stringify(obj)}`
}) })
} }
@ -275,14 +288,13 @@
that.$refs.uToast.show({ that.$refs.uToast.show({
title: response.msg, title: response.msg,
type: 'error', type: 'error',
toast: 2000 duration: 2000
}) })
} }
}) })
} }
}) })
} }
}, },
changeRadio() { changeRadio() {
if (this.radio == 1) { if (this.radio == 1) {
@ -295,6 +307,75 @@
this.radio = 2; this.radio = 2;
this.maskshow = false this.maskshow = false
}, },
checkboxChange(e) {
if (e.radio) {
this.orderlist.totalPrice = this.argSubtr(this.orderlist.totalPrice, e.consumablePrice)
} else {
this.orderlist.totalPrice = this.argAdd(this.orderlist.totalPrice, e.consumablePrice)
}
},
argAdd(arg1, arg2) {
//
var _this = this,
r1 = 0,
r2 = 0,
m = 0;
try {
r1 = arg1.toString().split(".")[1].length
} catch (e) {}
try {
r2 = arg2.toString().split(".")[1].length
} catch (e) {}
m = Math.pow(10, Math.max(r1, r2))
return _this.argDiv((_this.argMul(arg1, m) + _this.argMul(arg2, m)), m)
},
argSubtr(arg1, arg2) {
//
var _this = this,
r1 = 0,
r2 = 0,
m = 0;
try {
r1 = arg1.toString().split(".")[1].length
} catch (e) {}
try {
r2 = arg2.toString().split(".")[1].length
} catch (e) {}
m = Math.pow(10, Math.max(r1, r2));
return _this.argDiv((_this.argMul(arg1, m) - _this.argMul(arg2, m)), m)
},
argMul(arg1, arg2) {
//
var _this = this,
m = 0,
s1 = arg1.toString(),
s2 = arg2.toString();
try {
m += s1.split(".")[1].length
} catch (e) {}
try {
m += s2.split(".")[1].length
} catch (e) {}
return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m)
},
argDiv(arg1, arg2) {
//
var _this = this,
t1 = 0,
t2 = 0,
r1, r2;
try {
t1 = arg1.toString().split(".")[1].length
} catch (e) {}
try {
t2 = arg2.toString().split(".")[1].length
} catch (e) {}
r1 = Number(arg1.toString().replace(".", ""))
r2 = Number(arg2.toString().replace(".", ""))
return _this.argMul((r1 / r2), Math.pow(10, t2 - t1));
},
// checkboxcheckbox-group
checkboxGroupChange(e) {},
// //
timeconfirm(e) { timeconfirm(e) {
this.orderlist.serviceStartTime = e.hour + ":" + e.minute this.orderlist.serviceStartTime = e.hour + ":" + e.minute
@ -309,7 +390,7 @@
}, },
goaddress() { goaddress() {
uni.navigateTo({ uni.navigateTo({
url: `/pages/modifyAddress/modifyAddress?url=${'appointmenttime'}&updata=${JSON.stringify(this.orderlist)}` url: `/pages/modifyAddress/modifyAddress?updata=${JSON.stringify(this.orderlist)}`
}) })
}, },
} }

View File

@ -49,7 +49,7 @@
} }
this.timer = setTimeout(e => { this.timer = setTimeout(e => {
uni.navigateBack({ uni.navigateBack({
delta: 2 delta: 3
}) })
}, 1500) }, 1500)
} }

View File

@ -0,0 +1,364 @@
<template>
<view class="app">
<view class="inputs">
<i class="icon"></i>
<input v-model="goodsName" type="text" name="" id="" class="input" placeholder="请输入商品名称">
</view>
<view class="lefttabbar">
<scroll-view :scroll-top="scrollTop" scroll-y="true" class="scroll-Y" @scrolltoupper="upper"
@scrolltolower="lower" @scroll="scroll">
<view class="scroll-view-item" v-for="(item,index) in GoodsCategorychildrenlist" :key='item.id'
@tap='tapscroll(item,index)'>
<view :class="tabIndex==index?'actives':'active'">
{{item.goodsCategoryName}}
</view>
</view>
</scroll-view>
</view>
<view class="" style="display: inline-block;width: 80%;position: absolute;right: 0%;">
<view class="productlist" v-if='goodsList.length>0'>
<view class="item" @tap='goCommodityDetails(item)' v-for="(item,index) in goodsList" :key="index">
<image :src="baseurl+item.goodsPictureUrl" mode=""></image>
<view class="title">
{{item.goodsName}}
</view>
<view class="text">
{{item.attributeDetailsName}}
</view>
<view class="price">
{{item.goodsPrice}}
</view>
</view>
<view style="width: 45%;" v-if="goodsList.length%2!=0">
</view>
</view>
<view class="noorder" v-if='goodsList.length==0'>
<image src="../../static/noorder.png" mode=""></image>
<view class="">
暂无商品
</view>
</view>
</view>
<u-back-top :scroll-top="scrollTop2"></u-back-top>
</view>
</template>
<script>
import {
goodsList,
getGoodsCategoryNameList
} from '@/api/ProductList/ProductList.js';
import baseurl from '@/api/baseurl.js'
export default {
data() {
return {
//tabIndex便
baseurl: '',
pageNum: 1,
pageSize: 10,
goodsCategoryId: '', //
goodsList: [], //list
total: 0, //list
goodsName: '',
tabIndex: 0,
GoodsCategorychildrenlist: [], //list
GoodsCategorychildrenid: null,
scrollTop: 0,
scrollTop2: 0,
old: {
scrollTop: 0
}
};
},
watch: { //
goodsName() {
this.pageNum = 1;
goodsList(this.pageSize, this.pageNum, this.GoodsCategorychildrenid, this.goodsName).then(res => {
this.goodsList = res.rows
this.total = res.total
})
},
},
onShow() {
var that = this
try {
const value = uni.getStorageSync('openid');
const value3 = uni.getStorageSync('Refresh');
if (value) {} else {
uni.navigateTo({
url: '/pages/login/login'
})
}
if (value3) {
that.goodsListinfo();
}
} catch (e) {}
},
onLoad(options) { //
this.goodsCategoryId = options.goodsCategoryId //id
this.GoodsCategorychildrenid = options.GoodsCategorychildrenid //id
this.tabIndex = options.index
this.baseurl = baseurl;
this.goodsListinfo()
this.GoodsCategorychildren(this.goodsCategoryId);
},
methods: {
onPageScroll(e) {
this.scrollTop2 = e.scrollTop;
},
tapscroll(item, index) {
this.tabIndex = index
if (index == 0) {
this.GoodsCategorychildrenid = this.goodsCategoryId
this.tabIndex = index
this.pageNum = 1
goodsList(this.pageSize, this.pageNum, this.GoodsCategorychildrenid, this.goodsName).then(
res => {
if (res.code == 200) {
this.goodsList = res.rows
this.total = res.total
}
uni.removeStorageSync('Refresh');
})
} else {
this.GoodsCategorychildrenid = this.GoodsCategorychildrenlist[index].id
this.tabIndex = index
this.pageNum = 1
goodsList(this.pageSize, this.pageNum, this.GoodsCategorychildrenid, this.goodsName).then(
res => {
if (res.code == 200) {
this.goodsList = res.rows
this.total = res.total
}
uni.removeStorageSync('Refresh');
})
}
},
upper: function(e) {},
lower: function(e) {},
scroll: function(e) {
this.old.scrollTop = e.detail.scrollTop
},
//id
GoodsCategorychildren(value) {
getGoodsCategoryNameList(value).then(res => {
this.GoodsCategorychildrenlist = [{
goodsCategoryName: '全部',
id: 99999999999999999,
}]
res.data.forEach(e => {
this.GoodsCategorychildrenlist.push(e)
})
})
},
//
goodsListinfo() {
this.pageNum = 1;
goodsList(this.pageSize, this.pageNum, this.GoodsCategorychildrenid, this.goodsName).then(res => {
if (res.code == 200) {
res.rows.forEach(e => {
this.goodsList.push(e)
})
this.total = res.total
}
uni.removeStorageSync('Refresh');
})
},
//
goCommodityDetails(item) {
uni.navigateTo({
url: `/pages/CommodityDetails/CommodityDetails?goodsPrice=${item.goodsPrice}&goodsInfoId=${item.goodsInfoId}&buySource=${'SHOPPING_MALL'}&goodsAttributeId=${item.goodsAttributeId}`
})
},
},
onReachBottom() { //
if (this.goodsList.length >= this.total) {} else {
this.pageNum++;
goodsList(this.pageSize, this.pageNum, this.GoodsCategorychildrenid, this.goodsName).then(res => {
if (res.code == 200) {
res.rows.forEach(e => {
this.goodsList.push(e)
})
}
})
}
},
onPullDownRefresh() { //
this.pageNum = 1;
goodsList(this.pageSize, this.pageNum, this.GoodsCategorychildrenid, this.goodsName).then(res => {
this.goodsList = res.rows
this.total = res.total
})
setTimeout(function() {
uni.stopPullDownRefresh();
}, 1000);
},
//1.
onShareAppMessage(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
url = decodeURIComponent(url)
return {
title: '泉医到家',
path: url,
}
},
//2.
onShareTimeline(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
url = decodeURIComponent(url)
return {
title: '泉医到家',
path: url,
}
},
}
</script>
<style lang="scss">
.app {
padding: 0;
width: 100%;
height: 100%;
.inputs {
position: fixed;
box-shadow: 0rpx 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
border: 1px solid #f0f0f0;
width: 90%;
height: 65rpx;
margin: 10rpx 0 10rpx 50%;
transform: translateX(-50%);
border-radius: 20rpx;
background-color: #Ffffff;
z-index: 999;
.input {
margin: 0 auto;
position: absolute;
height: 65rpx;
// top: 8%;
left: 10%;
width: 90%;
font-size: 26rpx;
color: #000000;
}
.icon {
background: url(@/static/sousuo.png) no-repeat;
width: 30rpx;
height: 28rpx;
background-size: cover;
position: absolute;
top: 30%;
left: 3%;
}
}
.lefttabbar {
position: fixed;
width: 20%;
display: inline-block;
height: 100%;
top: 100rpx;
.scroll-Y {
height: 100%;
}
.actives {
color: red;
font-size: 34rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.active {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.scroll-view-item {
color: #7d7e80;
height: 100rpx;
line-height: 100rpx;
text-align: center;
font-size: 30rpx;
padding: 0 10rpx;
}
}
.noorder {
view {
text-align: center;
font-size: 40rpx;
color: #BFBFBF;
}
image {
display: block;
margin: 20% auto 50rpx;
width: 160rpx;
height: 200rpx;
}
}
.productlist {
width: 100%;
margin: 120rpx auto 0;
display: flex;
flex-wrap: wrap;
justify-content: space-evenly;
.item {
width: 45%;
background: #FFFFFF;
border-radius: 25rpx;
padding-bottom: 10rpx;
box-shadow: 0px 4rpx 8rpx 4rpx rgba(199, 200, 202, 0.8);
margin-bottom: 30rpx;
.price {
font-size: 28rpx;
color: #D43953;
line-height: 50rpx;
padding-left: 10rpx;
}
.text {
font-size: 22rpx;
padding: 0 10rpx;
// text-overflow: ellipsis;
// overflow: hidden;
// white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
.title {
font-size: 28rpx;
color: #000000;
line-height: 50rpx;
padding-left: 10rpx;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
image {
border-radius: 25rpx 25rpx 0 0;
width: 100%;
height: 270rpx;
}
}
}
}
</style>

View File

@ -98,6 +98,9 @@
font-size: 33rpx; font-size: 33rpx;
color: #969394; color: #969394;
line-height: 67rpx; line-height: 67rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
} }
} }

View File

@ -142,7 +142,7 @@
that.$refs.uToast.show({ that.$refs.uToast.show({
title: '支付成功', title: '支付成功',
type: 'success', type: 'success',
toast: 1500, duration: 1500,
url: '/pages/paysuccess/paysuccess' url: '/pages/paysuccess/paysuccess'
}) })
}, },
@ -150,7 +150,7 @@
that.$refs.uToast.show({ that.$refs.uToast.show({
title: '取消支付', title: '取消支付',
type: 'error', type: 'error',
toast: 1500, duration: 1500,
url: `/pages/payorderDetails/payorderDetails?goodsOrderId=${id}` url: `/pages/payorderDetails/payorderDetails?goodsOrderId=${id}`
}) })
// uni.navigateTo({ // uni.navigateTo({
@ -162,7 +162,7 @@
that.$refs.uToast.show({ that.$refs.uToast.show({
title: response.msg, title: response.msg,
type: 'error', type: 'error',
toast: 2000 duration: 2000
}) })
} }
}) })
@ -183,6 +183,9 @@
}, },
onLoad(options) { onLoad(options) {
this.updata = JSON.parse(options.updata) this.updata = JSON.parse(options.updata)
if (this.updata.totalPrice == 'null' || !this.updata.totalPrice) {
this.updata.totalPrice = 0
}
}, },
onShow() { onShow() {
var that = this var that = this

View File

@ -1,115 +0,0 @@
.app {
// font-size: 36rpx;
padding-top: 10rpx;
.concent {
width: 701rpx;
height: 811rpx;
background: #4C7BC9;
box-shadow: 0px 9px 31px 9px rgba(0, 0, 0, 0.03);
border-radius: 20rpx;
margin-top: 5%;
// left: 50%;
// transform: translateX(-50%);
margin: 0 auto;
margin-bottom: 20px;
.background {
position: relative;
// display: flex;
width: 657rpx;
height: 727rpx;
background: #FFFFFF;
border-radius: 25rpx;
background-color: white;
margin: 0 auto;
top: 50%;
transform: translateY(-50%);
image {
width: 178rpx;
height: 84rpx;
background: #FFFFFF;
border-radius: 25px;
// float: right;
margin-left: 68%;
margin-top: 5%;
}
// text-align:center;
}
}
}
.life {
// margin: 0 auto;
width: 162rpx;
height: 40rpx;
font-size: 42rpx;
margin-left: 35%;
color: #ffffff;
}
.lifeserve image {
width: 639rpx;
height: 739rpx;
margin-left: 5%;
padding-bottom: 20rpx;
// height: rpx;
// background: #E1AE3C;
// box-shadow: 0px 9px 31px 9px rgba(0,0,0,0.03);
// border-radius: 20px;
}
.concenta {
margin: 0 auto;
margin-bottom: 20px;
// position: absolute;
width: 701rpx;
height: 811rpx;
background: #E1AE3C;
// margin-top: 118%;
// margin-left: 2.55%;
border-radius: 25rpx;
// margin-bottom: 30rpx;
}
.concentb {
margin: 0 auto;
margin-bottom: 20px;
// position: absolute;
width: 701rpx;
height: 811rpx;
background: #00C176;
// margin-top: 118%;
// margin-left: 2.55%;
border-radius: 25rpx;
// margin-bottom: 30rpx;
}
.detailed {
// font-size: 29rpx;
width: 657rpx;
height: 727rpx;
padding: 0 42rpx;
line-height: 56rpx;
}
.detailed view {
// height: 100%;
text-indent: 2em;
}

View File

@ -13,16 +13,12 @@
</view> </view>
</view> </view>
<view class="concenta"> <view class="concenta">
<text class="life">生活护理 </text> <view class="life">生活护理 </view>
<view class="lifeserve"> <image src="/static/lifeserve.png" mode=""></image>
<image src="/static/lifeserve.png" mode=""></image>
</view>
</view> </view>
<view class="concentb"> <view class="concentb">
<text class="life">医疗护理 </text> <view class="life">医疗护理 </view>
<view class="lifeserve"> <image src="/static/yiliaohuli.png" mode=""></image>
<image src="/static/yiliaohuli.png" mode=""></image>
</view>
</view> </view>
</view> </view>
</template> </template>
@ -32,22 +28,39 @@
data() { data() {
return {} return {}
}, },
methods: {} methods: {},
//1.
onShareAppMessage(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
//2.
onShareTimeline(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
} }
</script> </script>
<style lang="scss"> <style lang="scss">
.app { .app {
padding-top: 10rpx; padding-top: 10rpx;
.concent { .concent {
width: 701rpx; width: 98%;
height: 811rpx; height: 811rpx;
background: #4C7BC9; background: #4C7BC9;
box-shadow: 0px 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03); box-shadow: 0px 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
border-radius: 20rpx; border-radius: 20rpx;
margin-top: 5%; margin: 10rpx auto 10rpx;
margin: 0 auto;
margin-bottom: 20px;
.background { .background {
position: relative; position: relative;
@ -71,43 +84,45 @@
} }
} }
} }
.life {
// margin: 0 auto; .concenta,
width: 162rpx; .concentb {
height: 40rpx; margin: 0 auto 10rpx;
font-size: 42rpx; width: 98%;
margin-left: 35%; height: 900rpx;
color: #ffffff; padding-bottom: 40rpx;
} border-radius: 25rpx;
.lifeserve image {
width: 639rpx; .life {
height: 739rpx; padding: 15rpx 0;
margin-left: 5%; font-size: 38rpx;
padding-bottom: 20rpx; text-align: center;
color: #ffffff;
}
image {
margin: 0 auto;
width: 89%;
display: block;
height: 91%;
// margin-left: 3%;
}
} }
.concenta { .concenta {
margin: 0 auto;
margin-bottom: 20px;
width: 701rpx;
height: 811rpx;
background: #E1AE3C; background: #E1AE3C;
border-radius: 25rpx;
} }
.concentb { .concentb {
margin: 0 auto;
margin-bottom: 20px;
width: 701rpx;
height: 811rpx;
background: #00C176; background: #00C176;
border-radius: 25rpx;
} }
.detailed { .detailed {
width: 657rpx; width: 657rpx;
padding: 0 42rpx; padding: 0 42rpx;
line-height: 56rpx; line-height: 56rpx;
} }
.detailed view { .detailed view {
text-indent: 2em; text-indent: 2em;
} }

View File

@ -47,7 +47,25 @@
}, },
methods: { methods: {
} },
//1.
onShareAppMessage(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
//2.
onShareTimeline(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
} }
</script> </script>

View File

@ -21,7 +21,25 @@
return { return {
}; };
} },
//1.
onShareAppMessage(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
//2.
onShareTimeline(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
} }
</script> </script>

View File

@ -43,7 +43,25 @@
}, },
], ],
}; };
} },
//1.
onShareAppMessage(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
//2.
onShareTimeline(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
} }
</script> </script>

View File

@ -1,73 +0,0 @@
.app {
padding: 20rpx 0;
.item {
font-size: 34rpx;
margin: 0 auto 20rpx;
width: 94%;
height: 100rpx;
line-height: 100rpx;
background-color: #fff;
box-shadow: 0px 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
border-radius: 20rpx;
position: relative;
.lefttext {
position: absolute;
top: 50%;
transform: translateY(-50%);
left: 3%;
}
.righttext {
position: absolute;
top: 50%;
transform: translateY(-50%);
left: 18%;
height: 100rpx;
}
.lefttext,
.righttext {
::v-deep .uni-input-input {
font-size: 34rpx;
}
::v-deep .uni-input-wrapper {
height: 100rpx;
line-height: 100rpx;
}
::v-deep .uni-input-placeholder {
line-height: 100rpx;
font-size: 34rpx;
font-weight: 400;
color: #C3C1C1;
}
}
.obtaincode {
text-align: center;
font-size: 36rpx;
color: #4C7BC9;
line-height: 100rpx;
position: absolute;
right: 5%;
top: 0%;
}
}
.loginbtn {
width: 80%;
height: 100rpx;
text-align: center;
line-height: 100rpx;
background: #4C7BC9;
border-radius: 51rpx;
font-size: 41rpx;
color: #FFFFFF;
position: absolute;
top: 40%;
left: 10%;
}
}

View File

@ -1,123 +0,0 @@
<template>
<view class="app">
<view class="item">
<view class="lefttext">
输入新密码
</view>
<u-input class='righttext' style='left:30%' placeholder="请输入密码" maxlength="10" type="password"
:border="false" :password-icon="true" v-model="newpassword" />
</view>
<view class="item">
<view class="lefttext">
重复新密码
</view>
<u-input class='righttext' style='left:30%' placeholder="请再次输入密码" maxlength="10" type="password"
:border="false" :password-icon="true" v-model="password" />
</view>
<view class="item">
<view class="lefttext">
手机号
</view>
<input class="righttext" style='left:23%' type="text" placeholder="请输入" maxlength="11" v-model="phone"/>
</view>
<view class="item">
<view class="lefttext">
验证码
</view>
<input class="righttext" style='left:23%' type="text" placeholder="" maxlength="6" v-model="verification" />
<view class="obtaincode" :style="{'color':getCodeBtnColor}" @click.stop="getCode()">
{{getCodeText}}
</view>
</view>
<view class="loginbtn" @tap='pwdlogin'>
登录
</view>
<u-toast ref="uToast" />
</view>
</template>
<script>
import {
ForgotPassword
} from '../../api/forgotPassword/forgotPassword.js'
export default {
data() {
return {
phone: '13678945620',
verification: '111111',
password: '',
newpassword: '',
getCodeText: '获取验证码', //
getCodeBtnColor: "#4C7BC9", //color
}
},
methods: {
pwdlogin() {
ForgotPassword(this.phone, this.password, this.verification).then(res => {
if (this.password !== this.newpassword) {
this.$refs.uToast.show({
title: '密码输入不一致,请重新输入',
type: 'error',
duration: '1500'
})
} else {
this.$refs.uToast.show({
title: '密码修改成功',
type: 'success',
url: '/pages/login/login',
duration: '1500'
})
}
})
},
//
getCode() {
uni.hideKeyboard() //
if (this.getCodeisWaiting) { //
return;
}
if (!(/^1(3|4|5|6|7|8|9)\d{9}$/.test(this.phone))) { //
uni.showToast({
title: '请填写正确手机号码',
icon: "none"
});
return false;
}
this.getCodeText = "发送中..." //
this.getCodeisWaiting = true;
this.getCodeBtnColor = "rgba(138,139,133,1)" //
//
//setTimeout(()
setTimeout(() => {
uni.showToast({
title: '验证码已发送',
icon: "none"
}); //
// this.code = '1234'; // 1234
this.setTimer(); //
}, 1000)
},
// setTimer 使SetTimer
setTimer() {
let holdTime = 60; //
this.getCodeText = "重新获取(60)"
//setInterval
//setInterval clearInterval
this.Timer = setInterval(() => {
if (holdTime <= 0) {
this.getCodeisWaiting = false;
this.getCodeBtnColor = "#4C7BC9";
this.getCodeText = "获取验证码"
clearInterval(this.Timer); //
return; //
}
this.getCodeText = "重新获取(" + holdTime + ")"
holdTime--;
}, 1000)
},
},
}
</script>
<style lang="scss">
@import "./forgotPassword.scss";
</style>

View File

@ -74,6 +74,7 @@
right: 10rpx; right: 10rpx;
width: 40rpx; width: 40rpx;
height: 40rpx; height: 40rpx;
z-index: 999;
} }
.itemimg { .itemimg {

View File

@ -3,7 +3,8 @@
<view class="rate"> <view class="rate">
<view class="images"> <view class="images">
<view class="itemimgs" v-for="(item,index) in file"> <view class="itemimgs" v-for="(item,index) in file">
<image class="delimg" src="../../static/gb2.png" mode="" style="color: red;"></image> <image class="delimg" src="../../static/gb2.png" mode="" style="color: red;" @tap='delimg(item)'>
</image>
<image class="itemimg" :src="item" mode=""></image> <image class="itemimg" :src="item" mode=""></image>
</view> </view>
<view class="shot item" @tap='updataImage'> <view class="shot item" @tap='updataImage'>
@ -54,37 +55,41 @@
imgs: [], imgs: [],
patientId: null, patientId: null,
openid: null, openid: null,
timer:null, timer: null,
delta: null,
}; };
}, },
methods: { methods: {
async updata() { delimg(item) {
let that = this this.file = this.file.filter(e => e != item)
this.file.forEach(e => { },
uni.uploadFile({ updata() {
url: baseurl + '/nurseApp/orderEvaluate/uploadEvaluatePictureUrl', let that = this
filePath: e, if (this.file.length > 0) {
name: 'file', this.file.forEach(e => {
formData: { uni.uploadFile({
'orderNo': that.orderlist.goOrderNo url: baseurl + '/nurseApp/orderEvaluate/uploadEvaluatePictureUrl',
}, filePath: e,
timeout: 5000, name: 'file',
header: { formData: {
'Content-type': 'application/json;charset=utf-8' 'orderNo': that.orderlist.goOrderNo
}, },
success(res) { timeout: 5000,
var img = { success(res) {
evaluatePictureUrl: JSON.parse(res.data).imgUrl var img = {
} evaluatePictureUrl: JSON.parse(res.data).imgUrl
that.imgs.push(img) }
if (that.imgs.length == that.file.length) { that.imgs.push(img)
that.info(); if (that.imgs.length == that.file.length) {
} that.info();
} }
}) }
}) })
})
} else {
that.info();
}
}, },
info() { info() {
var that = this var that = this
var obj = { var obj = {
@ -98,6 +103,7 @@
} }
insertGoodsEvaluate(obj).then(res => { insertGoodsEvaluate(obj).then(res => {
if (res.code == 200) { if (res.code == 200) {
uni.setStorageSync("Refresh", 'Refresh')
that.$refs.uToast.show({ that.$refs.uToast.show({
title: '评价成功', title: '评价成功',
type: 'success', type: 'success',
@ -108,8 +114,8 @@
} }
that.timer = setTimeout(e => { that.timer = setTimeout(e => {
that.imgs = [] that.imgs = []
uni.navigateBack({ uni.navigateTo({
delta: 1 url: `/pages/ratesuccess/ratesuccess?delta=${that.delta}`
}) })
}, 1500) }, 1500)
} else { } else {
@ -117,9 +123,6 @@
} }
}) })
}, },
updataImage() { updataImage() {
var that = this; var that = this;
uni.chooseImage({ uni.chooseImage({
@ -134,6 +137,7 @@
}, },
onLoad(options) { onLoad(options) {
this.orderlist = JSON.parse(options.item) this.orderlist = JSON.parse(options.item)
this.delta = options.delta
}, },
onShow() { onShow() {
this.baseurl = baseurl this.baseurl = baseurl

View File

@ -47,6 +47,24 @@
data() { data() {
return {}; return {};
}, },
//1.
onShareAppMessage(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
//2.
onShareTimeline(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
methods: { methods: {
// //
godiseasemanagement() { godiseasemanagement() {

View File

@ -1,6 +1,9 @@
.app { .app {
padding:0; padding:0;
height:100vh; height:100vh;
/deep/ .u-drawer{
z-index: 0 !important;
}
.Agreement{ .Agreement{
width: 100%; width: 100%;
background-color: #F4F5F7; background-color: #F4F5F7;
@ -79,9 +82,10 @@
height: 16rpx; height: 16rpx;
border-radius: 50%; border-radius: 50%;
background-color: #178ffb; background-color: #178ffb;
margin-left: 26%; position: absolute;
margin-top: 22%; top:50%;
// margin: 0 auto; left:50%;
transform: translate(-50%,-50%);
} }
} }
} }
@ -172,6 +176,9 @@
display: inline-block; display: inline-block;
height: 120rpx; height: 120rpx;
line-height: 120rpx; line-height: 120rpx;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
} }
span { span {

View File

@ -15,7 +15,7 @@
<span>身份证号:</span> <span>身份证号:</span>
<u-input :clearable='false' v-model="query.cardNo" type="text" placeholder='请输入' maxlength='18' /> <u-input :clearable='false' v-model="query.cardNo" type="text" placeholder='请输入' maxlength='18' />
</view> </view>
<view class="item" @tap='areashow=true'> <view class="item" @tap='showPicker'>
<span>所属区域:</span> <span>所属区域:</span>
<view class="address">{{address}}</view> <view class="address">{{address}}</view>
</view> </view>
@ -25,14 +25,16 @@
</view> </view>
<view class="item" @tap='getAddress()'> <view class="item" @tap='getAddress()'>
<span>所在位置:</span> <span>所在位置:</span>
<view class="address" style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;"> <view class="address" style="">
{{chooseLocation}} {{query.locationName}}
</view> </view>
<!-- <u-input type="text" placeholder='' /> -->
</view> </view>
</view> </view>
<u-select v-model="areashow" mode="mutil-column-auto" label-name='areaName' value-name='areaCode' <view class="">
:list="arealist" @confirm="areaconfirm"></u-select> <m-city style='z-index: 10076;' :provinceData="list" headTitle="地区选择" ref="cityPicker"
@funcValue="getpickerParentValue" pickerSize="4">
</m-city>
</view>
<view class="info"> <view class="info">
<view class="service"> <view class="service">
<view class="title"> <view class="title">
@ -92,17 +94,27 @@
information information
} from '@/api/information/index.js' } from '@/api/information/index.js'
import contenttext from './text.vue' import contenttext from './text.vue'
import {
getSubordinateRegions,
} from '@/api/modifyAddress/modifyAddress.js';
import gkcity from "../m-city/m-city.vue";
export default { export default {
components: { components: {
contenttext contenttext,
"m-city": gkcity
}, },
data() { data() {
return { return {
radio: 1, radio: 1,
chooseLocation: '', // // chooseLocation: '', //
arealist: [], //list arealist: [], //list
list: [{
id: "",
localName: "请选择",
children: [],
}, ],
areashow: false, // areashow: false, //
maskshow:false,// maskshow: false, //
getNurseTypelist: [], // getNurseTypelist: [], //
medicalcarelist: [], // medicalcarelist: [], //
address: '', // address: '', //
@ -117,69 +129,93 @@
nurseTypeIdList: [], nurseTypeIdList: [],
diseaseInfoList: [], diseaseInfoList: [],
patientId: '', patientId: '',
locationName: null, locationName: '',
}, },
timer: null, timer: null,
addresslength: null,
}; };
}, },
methods: { methods: {
// //
informationinfo() { informationinfo() {
var that = this var that = this
try { if (this.addresslength) {
const value = uni.getStorageSync('phone'); if (this.addresslength.length > 2) {
if (value) { try {
that.query.phone = value const value = uni.getStorageSync('phone');
if (that.radio == 1) { if (value) {
that.$refs.uToast.show({ that.query.phone = value
title: '请审核并同意用户协议', if (that.radio == 1) {
type: 'error'
})
} else {
information(that.query).then(res => {
if (res.code == 200) {
that.$refs.uToast.show({ that.$refs.uToast.show({
title: '完善信息成功', title: '请审核并同意用户协议',
type: 'success', type: 'error'
duration: '1500'
}) })
if (that.timer) { } else {
clearTimeout(that.timer) information(that.query).then(res => {
} if (res.code == 200) {
that.timer = setTimeout(e => { that.$refs.uToast.show({
uni.navigateBack({ title: '完善信息成功',
delta: 1 type: 'success',
}) duration: '1500'
}, 1500) })
} else if (res.code == 500) { if (that.timer) {
that.$refs.uToast.show({ clearTimeout(that.timer)
title: res.msg, }
type: 'error', that.timer = setTimeout(e => {
uni.navigateBack({
delta: 1
})
}, 1500)
} else if (res.code == 500) {
that.$refs.uToast.show({
title: res.msg,
type: 'error',
})
}
}) })
} }
}) }
} } catch (e) {}
} else {
that.$refs.uToast.show({
title: '所属区域应选择所在的区或街道,请重新选择!',
type: 'error'
})
} }
} catch (e) {} } else {
that.$refs.uToast.show({
title: '所属区域应选择所在的区或街道,请重新选择!',
type: 'error'
})
}
}, },
// //
getAddress() { getAddress() {
uni.getLocation({ var that = this;
type: 'wgs84', uni.chooseLocation({
success: function(res) { success: function(location) {
const key = '3VABZ-6LZWK-YPAJ3-AMQED-D7RUK-VPB37'; //使key that.query.locationName = location.address
const referer = '泉医到家'; //app that.query.homeLongitude = location.longitude;
const location = JSON.stringify({ that.query.homeLatitude = location.latitude;
latitude: 39.89631551,
longitude: 116.323459711
});
wx.navigateTo({
url: 'plugin://chooseLocation/index?key=' + key + '&referer=' + referer
});
} }
}); });
}, },
// getAddress() {
// uni.getLocation({
// type: 'wgs84',
// success: function(res) {
// const key = '3VABZ-6LZWK-YPAJ3-AMQED-D7RUK-VPB37'; //使key
// const referer = ''; //app
// const location = JSON.stringify({
// latitude: 39.89631551,
// longitude: 116.323459711
// });
// wx.navigateTo({
// url: 'plugin://chooseLocation/index?key=' + key + '&referer=' + referer
// });
// }
// });
// },
// //
getNurseTypeInfo() { getNurseTypeInfo() {
getNurseType().then(res => { getNurseType().then(res => {
@ -189,25 +225,35 @@
}, },
// //
areaInfo() { areaInfo() {
getRegionAndStreetInfo().then(res => { getSubordinateRegions().then(res => {
// this.list = res.data;
res.data.forEach(e => {
if (e.children.length == 0) {
e.children.push({
areaCode: "",
areaName: "暂无街道",
children: null,
id: '',
})
}
})
this.arealist = res.data;
}) })
}, },
// //
areaconfirm(e) { getpickerParentValue(e) {
this.query.areaCode = e[e.length - 1].value this.addresslength = e
this.address = e[0].label + '-' + e[1].label if (e.length == 4) {
this.address = e[0].localName + e[1].localName + e[2].localName + e[3]
.localName
this.query.areaCode = e[3].id
} else if (e.length == 3) {
this.address = e[0].localName + e[1].localName + e[2].localName
this.query.areaCode = e[2].id
} else if (e.length == 2) {
this.address = e[0].localName + e[1].localName
this.query.areaCode = e[1].id
} else if (e.length == 1) {
this.address = e[0].localName
this.query.areaCode = e[0].id
} else {
this.address = ''
this.query.areaCode = ''
}
},
//
showPicker() {
this.areashow = true
this.$refs.cityPicker.show();
}, },
// //
addnurseType(item) { addnurseType(item) {
@ -250,14 +296,14 @@
// onShow // onShow
onShow() { onShow() {
var that = this var that = this
const chooseLocation = requirePlugin('chooseLocation'); // const chooseLocation = requirePlugin('chooseLocation');
const location = chooseLocation.getLocation(); // null // const location = chooseLocation.getLocation(); // null
if (location) { // if (location) {
that.query.locationName = location.address // that.query.locationName = location.address
that.chooseLocation = location.address // that.chooseLocation = location.address
that.query.homeLongitude = location.longitude; // that.query.homeLongitude = location.longitude;
that.query.homeLatitude = location.latitude; // that.query.homeLatitude = location.latitude;
} // }
uni.$on('disease', function(data) { uni.$on('disease', function(data) {
that.query.diseaseInfoList = JSON.parse(data.disease) that.query.diseaseInfoList = JSON.parse(data.disease)
if (that.query.diseaseInfoList.length > 0) { if (that.query.diseaseInfoList.length > 0) {
@ -273,10 +319,6 @@
} }
}) })
}, },
onUnload() {
// nullgeLocation
chooseLocation.setLocation(null);
},
} }
</script> </script>
<style lang="scss"> <style lang="scss">

View File

@ -13,29 +13,59 @@
<script> <script>
import { import {
appLoginpwd, appLoginpwd,
getWeChatUser getWeChatUser,
} from '../../api/login/index.js' } from '../../api/login/index.js'
import {
createMobileToken
} from '@/api/login/index.js'
export default { export default {
data() { data() {
return { return {
phonecode: '', phonecode: '',
logincode: '', logincode: '',
timer:null, timer: null,
}; };
}, },
onShow() {
uni.removeStorageSync('openid');
uni.removeStorageSync('patientId');
uni.removeStorageSync('token');
uni.removeStorageSync('phone');
},
//1.
onShareAppMessage(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
//2.
onShareTimeline(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
methods: { methods: {
getPhoneNumberp(val) { getPhoneNumberp(val) {
let that = this; let that = this;
this.phonecode = val.detail.code if (val.detail.code) {
wx.login({ that.phonecode = val.detail.code
provider: 'weixin', wx.login({
success: function(loginRes) { provider: 'weixin',
that.logincode = loginRes.code success: function(loginRes) {
that.pwdlogin(); that.logincode = loginRes.code
} that.pwdlogin();
}); }
});
}
}, },
pwdlogin() { login() {
getWeChatUser(this.logincode, this.phonecode).then(res => { getWeChatUser(this.logincode, this.phonecode).then(res => {
if (res.code == 200) { if (res.code == 200) {
uni.setStorageSync("openid", res.data.openid) uni.setStorageSync("openid", res.data.openid)
@ -46,6 +76,7 @@
type: 'success', type: 'success',
duration: '1500' duration: '1500'
}) })
uni.setStorageSync("Refresh", 'Refresh')
if (this.timer) { if (this.timer) {
clearTimeout(this.timer) clearTimeout(this.timer)
} }
@ -54,11 +85,24 @@
delta: 1 delta: 1
}) })
}, 1500) }, 1500)
} else {
uni.removeStorageSync('token');
this.$refs.uToast.show({
title: '登录失败',
type: 'error',
duration: '1500'
})
} }
}) })
}, },
pwdlogin() {
var that = this
createMobileToken().then(res => {
uni.setStorageSync("token", res.data.token)
that.login()
})
},
}, },
toLogin() {}
} }
</script> </script>

View File

@ -52,7 +52,7 @@
.address { .address {
color: #969394; color: #969394;
padding: 32rpx 0; padding: 32rpx 20rpx;
} }
.border { .border {

View File

@ -0,0 +1,137 @@
.app {
padding: 0 0 50rpx 0;
.rate {
width: 95%;
margin: 0 auto;
height: 100%;
background: #FFFFFF;
box-shadow: 0rpx 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
border-radius: 20rpx 20rpx 0 0;
padding-bottom: 20rpx;
.itemimgs {
display: inline-block;
width: 30.5%;
height: 212rpx;
margin: 0 0 20rpx 2%;
position: relative;
padding-top: 20rpx;
.itemimg {
width: 100%;
height: 100%;
}
}
}
.score {
background-color: #FFFFFF;
width: 95%;
margin: 0 auto;
padding-top: 50rpx;
position: relative;
height: 500rpx;
border-radius: 0 0 20rpx 20rpx;
::v-deep .u-rate {
position: absolute;
top: 52rpx;
left: 200rpx;
}
.text {
margin-top: 20rpx;
::v-deep .uni-textarea-textarea {
width: 93%;
display: block;
margin: 0 20rpx;
}
::v-deep .u-input__textarea {
margin-left: 20rpx;
}
}
.title {
margin: 0 20rpx;
font-size: 36rpx;
color: #000000;
padding-bottom: 50rpx;
border-bottom: 1rpx solid #D8D4D4;
}
}
.content {
width: 95%;
background: #FFFFFF;
box-shadow: 0px 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
border-radius: 20rpx;
margin: 30rpx auto;
position: relative;
padding-bottom: 130rpx;
.detailslist {
display: flex;
image {
width: 182rpx;
height: 182rpx;
margin: 20rpx 0 0 20rpx;
}
.model {
width: 70%;
margin: 30rpx 0 0 20rpx;
span {
font-size: 32rpx;
color: #000000;
}
span:nth-child(1) {
display: inline-block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
width: 70%;
}
span:nth-child(2) {
color: #969394;
float: right;
margin-right: 30rpx;
}
.bottom {
margin-top: 40rpx;
.box {
color: #969394;
font-size: 30rpx;
}
}
}
}
.payinfo {
width: 95%;
position: absolute;
left: 2.5%;
bottom: 20rpx;
.pay {
font-size: 30rpx;
color: #020000;
}
.price {
float: right;
font-size: 41rpx;
color: #D43953;
margin-right: 10rpx;
}
}
}
}

View File

@ -0,0 +1,66 @@
<template>
<view class="app">
<view class="content">
<view class="detailslist">
<image :src="baseurl+order.attributePitureUrl" mode=""></image>
<view class="model">
<view class="top">
<span>{{order.goodsName}}</span>
<span>{{order.goodsPrice}}</span>
</view>
<view class="bottom">
<span class="box">型号{{order.goodsAttributeName}}</span>
<span class="box">X{{order.goodsCount}}</span>
</view>
</view>
</view>
<view class="payinfo">
<text class="pay">实付款</text>
<text class="price">{{order.totalPrice}}</text>
</view>
</view>
<view class="rate">
<view class="itemimgs" v-for="(item,index) in ratelist.orderEvaluatePictureInfoList">
<image class="itemimg" :src="baseurl+item.evaluatePictureUrl" mode=""></image>
</view>
</view>
<view class="score">
<view class="title">
综合评分
</view>
<u-rate :count="count" v-model="ratelist.compositeScore" size='46' :disabled="true"></u-rate>
<view class="text">
<u-input v-model="ratelist.evaluateContent" type="textarea" placeholder=' ' :clearable='false'
:disabled="true" />
</view>
</view>
</view>
</template>
<script>
import {
lookrate
} from '@/api/lookrate/index.js'
import baseurl from '@/api/baseurl.js'
export default {
data() {
return {
baseurl: null,
order: null,
ratelist: null,
count: 5,
};
},
onLoad(options) {
this.baseurl = baseurl
this.order = JSON.parse(options.item)
lookrate(this.order.goOrderNo).then(res => {
this.ratelist = res.data
})
},
}
</script>
<style lang="scss">
@import './lookrate.scss';
</style>

403
pages/m-city/m-city.vue Normal file
View File

@ -0,0 +1,403 @@
<template>
<view>
<view class="mask" :class="{ maskShow: showPicker }" @click="goemit" @click.stop.prevent @touchmove.stop.prevent
catchtouchmove="true"></view>
<view class="cpicker-content" :class="{ cpickerShow: showPicker }">
<view class="city-head" @click.stop.prevent @touchmove.stop.prevent catchtouchmove="true">
<view class="city-head-title">{{ headTitle }}</view>
<!-- <view class="titlecancel" @click="hide">
取消
</view>
<view class="titletap" @click="goemit">
确定
</view> -->
<icon type="clear" v-if="clearRightIcon" class="clearRightIcon" size="20" color="#cccccc"
@click="goemit">
</icon>
</view>
<scroll-view id="nav-bar" class="nav-bar" scroll-x="true" scroll-with-animation="true"
:scroll-left="scrollLeft">
<view v-for="(item, index) in tabbars" class="nav-item" :key="index" :id="'tab' + index"
@click="changeTab(index)" :class="{ current: index === tabCurrentIndex }"><text
class="nav-bar-title">{{ item.localName }}</text></view>
</scroll-view>
<view class="city_content">
<scroll-view class="panel-scroll-box" :scroll-y="enableScroll" :cscrollTop="scrollTop"
:current="tabCurrentIndex" :scroll-top="scrollTop">
<block v-for="(item, index) in tabbars[tabCurrentIndex].children" :key="index">
<view class="flex-row-c-c" @click="changCity(tabCurrentIndex, item)">
<text class="city-text"
:class="{ color: tabbars[tabCurrentIndex].id == item.id }">{{ item.areaName }}</text>
<icon type="success_no_circle" v-if="tabbars[tabCurrentIndex].id == item.id"
:id="'show' + tabCurrentIndex" class="ischeck" size="14" :color="$lightColor"></icon>
</view>
</block>
</scroll-view>
</view>
</view>
</view>
</template>
<script>
let windowWidth = 0
import {
getSubordinateRegions,
getSubordinateInfo
} from '@/api/modifyAddress/modifyAddress.js';
export default {
name: "UniCityNvue",
props: {
headTitle: {
//
type: String,
default: "地区选择",
},
pickerSize: {
// 使tab
type: [String, String],
default: "1",
},
provinceData: {
// id使id[]
type: Array,
default: function() {
return [];
},
},
},
data() {
return {
clearRightIcon: true, //icon
scrollLeft: 500, //
scrollTop: 0, //0
enableScroll: true, //
tabCurrentIndex: 0, //
tabbars: [{
id: "",
localName: "请选择",
children: [],
}, ], //id
pickersize: this.pickerSize, //tab 4
showPicker: false, //
};
},
onShow() {},
onLoad() {
},
onUnload() {},
methods: {
goemit() {
var list = null
if (this.tabbars[this.tabbars.length - 1].localName == '请选择') {
list = this.tabbars.filter(e => e.localName != '请选择')
} else {
list = this.tabbars
}
this.$emit("funcValue", list);
this.hide();
},
/**
* 显示选择器
*/
show() {
this.showPicker = true;
this.tabbars[0].children = this.provinceData;
// if (this.tabbars[0].children.length == 0) {
// getSubordinateRegions('').then((res) => {
// if (res.code == 200) {
// }
// });
// }
windowWidth = uni.getSystemInfoSync().windowWidth;
},
/**
* 关闭选择器
*/
hide() {
this.showPicker = false;
},
/**
* tab切换
*/
changeTab(e) {
let index = e;
this.setScroll(index);
//300ms,swipertabbar
this.tabCurrentIndex = index;
setTimeout(() => {
this.getScroll("show" + index);
}, 10);
},
/**
* 获得元素的大小
*/
getElSize(id) {
return new Promise((res, rej) => {
let el = uni
.createSelectorQuery()
.in(this)
.select("#" + id);
el.fields({
size: true,
scrollOffset: true,
rect: true,
},
(data) => {
res(data);
}
).exec();
});
},
/**
* 点击城市后回调
*/
async changCity(index, item) {
if (this.tabbars[index].id != item.id) {
this.tabbars[index].localName = item.areaName;
this.tabbars[index].id = item.areaCode;
if (index < this.tabbars.length - 1) {
this.tabbars.splice(index + 1, this.tabbars.length - index - 1);
}
if (this.tabbars.length < this.pickersize) {
let data = await getSubordinateInfo(item.areaCode);
//
if (data.data.length == 0) {
this.$emit("funcValue", this.tabbars);
this.hide();
} else {
//
var current = {
localName: "请选择",
id: "",
children: data.data,
};
this.tabbars.push(current);
this.tabCurrentIndex++;
//
this.$set(this, 'scrollTop', 0)
}
} else {
this.$emit("funcValue", this.tabbars);
this.hide();
}
}
},
/**
* 获取当前tab中滚动的距离
*/
async setScroll(index) {
let width = 0;
let nowWidth = 0;
for (let i = 0; i <= index; i++) {
let result = await this.getElSize("tab" + i);
width += result.width;
if (i === index) {
nowWidth = result.width;
}
}
if (width + nowWidth > windowWidth) {
this.scrollLeft = width + nowWidth;
} else {
this.scrollLeft = 0;
}
},
/**
* 计算当前的滚动距离
*/
getScroll(id) {
uni
.createSelectorQuery()
.in(this)
.select(".panel-scroll-box")
.boundingClientRect((data) => {
uni
.createSelectorQuery()
.in(this)
.select("#" + id)
.boundingClientRect((res) => {
if (res != undefined && res != null && res != "") {
this.scrollTop = res.top - data.top;
}
})
.exec();
})
.exec();
},
},
};
</script>
<style lang="scss" scoped>
.mask {
visibility: hidden;
position: fixed;
top: 0;
right: 0;
left: 0;
bottom: 0;
z-index: 1000;
background: rgba(0, 0, 0, 0.6);
opacity: 0;
transition: all 0.3s ease;
}
.maskShow {
visibility: visible;
opacity: 1;
}
.cpicker-content {
position: fixed;
right: 0;
bottom: 0;
left: 0;
background-color: #ffffff;
transition: all 0.3s ease;
transform: translateY(100%);
z-index: 3000;
}
.cpickerShow {
transform: translateY(0);
}
.city-head {
width: 750rpx;
height: 88rpx;
flex-direction: column;
border-bottom-width: 1px;
border-bottom-color: #f4f4f4;
border-bottom-style: solid;
position: relative;
}
.city-head-title {
font-size: 30rpx;
line-height: 88rpx;
align-items: center;
/* #ifndef APP-NVUE */
text-align: center;
/* #endif */
}
.titletap {
display: inline-block;
fonts-size: 24rpx;
position: absolute;
right: 5%;
top: 22rpx;
color: #999999;
}
.titlecancel {
display: inline-block;
fonts-size: 24rpx;
position: absolute;
left: 5%;
top: 22rpx;
color: #999999;
}
.clearRightIcon {
position: absolute;
right: 15px;
top: 12px;
font-size: 10px;
color: #bebebe;
}
.nav-bar {
position: relative;
z-index: 10;
height: 90rpx;
white-space: nowrap;
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.06);
background-color: #fff;
}
.nav-item {
/* #ifndef APP-NVUE */
display: inline-flex !important;
/* #endif */
/* #ifdef APP-NVUE */
flex-direction: row !important;
/* #endif */
width: 170rpx;
padding: 7px 0px;
line-height: 26px;
align-items: center;
justify-content: center;
color: #303133;
position: relative;
overflow: hidden;
text-overflow: ellipsis;
}
.nav-bar-title {
font-size: 30rpx;
}
.current {
// color: $aider-light-color;
// border-color: $aider-light-color;
border-bottom-width: 4rpx;
border-bottom-style: solid;
}
.current:after {
width: 50%;
}
.panel-scroll-box {
height: 750rpx;
margin-top: 8px;
}
.flex-row-c-c {
/* #ifndef APP-NVUE */
display: block;
/* #endif */
/* #ifdef APP-NVUE */
flex-direction: row;
/* #endif */
padding-left: 25px;
}
.city-text {
/* #ifdef APP-NVUE */
flex-direction: row;
/* #endif */
height: 35px;
line-height: 35px;
font-size: 30rpx;
}
.hide {
opacity: 0;
}
.ischeck {
/* #ifndef APP-NVUE */
display: inline-flex !important;
/* #endif */
/* #ifdef APP-NVUE */
flex-direction: column;
/* #endif */
margin-right: 5px;
vertical-align: middle;
}
.color {
// color: $light-color;
}
icon {
margin-left: 40rpx;
}
</style>

View File

@ -47,6 +47,24 @@
// }) // })
}, },
}, },
//1.
onShareAppMessage(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
//2.
onShareTimeline(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
} }
</script> </script>

View File

@ -1,5 +1,10 @@
<template> <template>
<view class="app"> <view class="app" v-if="list">
<view class="time" style="" v-if="list.orderStatus=='WAIT_PAY'">
剩余付款时间
<u-count-down style='' :timestamp="timestamp">
</u-count-down>
</view>
<view class="OrderStatus" v-if="list.orderStatus=='REFUNDED'||list.orderStatus=='CANCEL'"> <view class="OrderStatus" v-if="list.orderStatus=='REFUNDED'||list.orderStatus=='CANCEL'">
订单已关闭 订单已关闭
</view> </view>
@ -44,9 +49,12 @@
</view> </view>
</view> </view>
<view class="Consumablespackage" v-if='list.itemConsumableList'>耗材包详情 <view class="Consumablespackage" v-if='list.itemConsumableList'>耗材包详情
<span>{{list.consumableTotalPrice}}</span> <span v-if="list.consumableTotalPrice">{{list.consumableTotalPrice}}</span>
<span v-else>0</span>
<view class="detail" v-for='(item,index) in list.itemConsumableList' :key="index"> <view class="detail" v-for='(item,index) in list.itemConsumableList' :key="index">
·{{item.orderConsumableName}} ·{{item.orderConsumableName}}
<span
style='font-size: 30rpx;'>{{item.orderConsumableCount}}{{item.consumableUnit}}/{{item.orderConsumablePrice}}</span>
</view> </view>
</view> </view>
<view class="remarks"> <view class="remarks">
@ -57,9 +65,6 @@
<view class="price"> <view class="price">
{{list.totalPrice}} {{list.totalPrice}}
</view> </view>
<view class="cancelorder" @tap="cancelorderment()"
v-if="list.orderStatus=='PAY'||list.orderStatus=='WAIT_DISPATCH'||list.orderStatus=='NOT_FINISH'">取消订单
</view>
<!-- <view class="cancelorder " style="background: #4C7BC9;">评价</view> --> <!-- <view class="cancelorder " style="background: #4C7BC9;">评价</view> -->
<view class="cancelorder" @tap='buy' style="background-color: darkorange;" <view class="cancelorder" @tap='buy' style="background-color: darkorange;"
v-if="list.orderStatus=='WAIT_PAY'"> v-if="list.orderStatus=='WAIT_PAY'">
@ -84,13 +89,18 @@
baseurl: '', baseurl: '',
patientId: '', //id patientId: '', //id
openid: '', //id openid: '', //id
list: {}, list: null,
orderNo: '', orderNo: '',
timestamp: 0,
} }
}, },
onShow() {
this.getlist()
},
onLoad(options) { onLoad(options) {
var that = this var that = this
this.baseurl = baseurl this.baseurl = baseurl
this.orderNo = JSON.parse(options.list).orderNo
try { try {
const value = uni.getStorageSync('patientId'); const value = uni.getStorageSync('patientId');
if (value) { if (value) {
@ -103,7 +113,6 @@
that.openid = value that.openid = value
} }
} catch (e) {} } catch (e) {}
this.getlist(JSON.parse(options.list).orderNo)
}, },
methods: { methods: {
// //
@ -130,7 +139,7 @@
that.$refs.uToast.show({ that.$refs.uToast.show({
title: '支付成功', title: '支付成功',
type: 'success', type: 'success',
toast: 1500, duration: 1500,
url: `/pages/paysuccess/paysuccess?delta=${3}` url: `/pages/paysuccess/paysuccess?delta=${3}`
}) })
}, },
@ -138,7 +147,7 @@
that.$refs.uToast.show({ that.$refs.uToast.show({
title: '取消支付', title: '取消支付',
type: 'error', type: 'error',
toast: 1500, duration: 1500,
}) })
} }
}); });
@ -146,7 +155,7 @@
that.$refs.uToast.show({ that.$refs.uToast.show({
title: response.msg, title: response.msg,
type: 'error', type: 'error',
toast: 2000 duration: 2000
}) })
} }
}) })
@ -158,7 +167,7 @@
success: function(res) { success: function(res) {
if (res.platform == 'ios') { if (res.platform == 'ios') {
uni.makePhoneCall({ uni.makePhoneCall({
phoneNumber: that.nursestationlist.phone // phoneNumber: that.list.stationPhone //
}); });
} else { } else {
uni.showActionSheet({ uni.showActionSheet({
@ -166,7 +175,7 @@
success: function(res) { success: function(res) {
if (res.tapIndex + 1 == 1) { if (res.tapIndex + 1 == 1) {
uni.makePhoneCall({ uni.makePhoneCall({
phoneNumber: that.nursestationlist.phone // phoneNumber: that.list.stationPhone //
}); });
} }
}, },
@ -177,14 +186,13 @@
}); });
}, },
// //
getlist(orderNo) { getlist() {
getAppointmentDetailsInfo(orderNo).then(res => { getAppointmentDetailsInfo(this.orderNo).then(res => {
this.list = res.data this.list = res.data
}) var ordertimes = this.list.createTime.replaceAll(/\-/gi, "/")
}, var time = new Date(ordertimes).getTime() / 1000 + (60 * 60 * 24)
cancelorderment() { var times = new Date().getTime() / 1000
uni.navigateTo({ this.timestamp = time - times
url: `/pages/cancelorder/cancelorder?nurseItemPrice=${this.list.totalPrice}&appointmentOrderId=${this.list.appointmentOrderId}`
}) })
}, },
} }

View File

@ -3,6 +3,9 @@
width: 100%; width: 100%;
color: #000000; color: #000000;
padding-bottom: 50rpx; padding-bottom: 50rpx;
/deep/ .u-drawer{
z-index: 0 !important;
}
.Agreement{ .Agreement{
width: 100%; width: 100%;
background-color: #F4F5F7; background-color: #F4F5F7;
@ -81,9 +84,10 @@
height: 16rpx; height: 16rpx;
border-radius: 50%; border-radius: 50%;
background-color: #178ffb; background-color: #178ffb;
margin-left: 26%; position: absolute;
margin-top: 22%; top:50%;
// margin: 0 auto; left:50%;
transform: translate(-50%,-50%);
} }
} }
} }
@ -158,6 +162,9 @@
display: inline-block; display: inline-block;
height: 120rpx; height: 120rpx;
line-height: 120rpx; line-height: 120rpx;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
} }
span { span {

View File

@ -21,7 +21,7 @@
<u-input :clearable='false' v-model="appPersonallist.cardNo" placeholder="请输入" type="text" <u-input :clearable='false' v-model="appPersonallist.cardNo" placeholder="请输入" type="text"
maxlength='18' /> maxlength='18' />
</view> </view>
<view class="item" @tap='areashow=true'> <view class="item" @tap='showPicker'>
<span>所属区域:</span> <span>所属区域:</span>
<view class="address">{{address}}</view> <view class="address">{{address}}</view>
</view> </view>
@ -32,8 +32,11 @@
</view> </view>
<view class="item" @tap='getAddress()'> <view class="item" @tap='getAddress()'>
<span>所在位置:</span> <span>所在位置:</span>
<view class="address" style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;"> <view class="address" style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;"
{{chooseLocation}} v-if="appPersonallist.locationName">
{{appPersonallist.locationName}}
</view>
<view class="address" style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;" v-else>
</view> </view>
</view> </view>
<view class="disease" style="border: none;" @tap="godisease"> <view class="disease" style="border: none;" @tap="godisease">
@ -54,8 +57,6 @@
style="color: #000000;border-bottom: 1rpx solid #000000;">用户协议</text> style="color: #000000;border-bottom: 1rpx solid #000000;">用户协议</text>
</view> </view>
</view> </view>
<u-select v-model="areashow" mode="mutil-column-auto" label-name='areaName' value-name='areaCode'
:list="arealist" @confirm="areaconfirm"></u-select>
<view class="finish" @tap="informationinfo()">完成 <view class="finish" @tap="informationinfo()">完成
</view> </view>
<u-toast ref="uToast" /> <u-toast ref="uToast" />
@ -76,6 +77,11 @@
</view> </view>
</view> </view>
</u-mask> </u-mask>
<view class="">
<m-city style='z-index: 10076;' :provinceData="list" headTitle="地区选择" ref="cityPicker"
@funcValue="getpickerParentValue" pickerSize="4">
</m-city>
</view>
</view> </view>
</template> </template>
@ -88,19 +94,29 @@
} from '@/api/information/index.js' } from '@/api/information/index.js'
import contenttext from '../information/text.vue' import contenttext from '../information/text.vue'
import baseurl from '@/api/baseurl.js' import baseurl from '@/api/baseurl.js'
import {
appPersonal,
} from '@/api/user/user.js';
import {
getSubordinateRegions,
} from '@/api/modifyAddress/modifyAddress.js';
import gkcity from "../m-city/m-city.vue";
export default { export default {
components: { components: {
contenttext contenttext,
"m-city": gkcity
}, },
data() { data() {
return { return {
list: [{
id: "",
localName: "请选择",
children: [],
}, ],
radio: 1, radio: 1,
baseurl: '', baseurl: '',
address: '', address: '',
arealist: [], maskshow: false, //
areashow: false,
maskshow:false,//
chooseLocation: '',
img: null, img: null,
image: null, image: null,
timer: null, timer: null,
@ -118,28 +134,60 @@
locationName: '', locationName: '',
}, },
patientDiseaseInfoList: [], // patientDiseaseInfoList: [], //
addresslength: null,
} }
}, },
onLoad(options) { onLoad(options) {
this.areaInfo(); this.areaInfo();
this.baseurl = baseurl this.baseurl = baseurl
this.appPersonallist = JSON.parse(options.appPersonallist) var that = this
this.img = baseurl + this.appPersonallist.headPictureUrl const value = uni.getStorageSync('patientId');
if (this.appPersonallist.regionName && this.appPersonallist.streetName) { if (value) {
this.address = this.appPersonallist.regionName + '-' + this.appPersonallist.streetName appPersonal(value).then(Response => {
} if (Response.code == 200) {
this.patientDiseaseInfoList = this.appPersonallist.patientDiseaseInfoList that.appPersonallist = Response.data
this.patientDiseaseInfoList.forEach(e => { that.appPersonallist.homeLatitude = Number(that.appPersonallist.homeLatitude)
e.id = e.diseaseId that.appPersonallist.homeLongitude = Number(that.appPersonallist.homeLongitude)
}) that.img = baseurl + that.appPersonallist.headPictureUrl
if (this.appPersonallist.locationName) { if (that.appPersonallist.areaName) {
this.chooseLocation = this.appPersonallist.locationName that.address = that.appPersonallist.areaName
} }
that.patientDiseaseInfoList = that.appPersonallist.patientDiseaseInfoList
that.patientDiseaseInfoList.forEach(e => {
e.id = e.diseaseId
})
} else if (Response.code == 9999) {} else {}
})
} else {}
}, },
methods: { methods: {
//
getpickerParentValue(e) {
this.addresslength = e
if (e.length == 4) {
this.address = e[0].localName + e[1].localName + e[2].localName + e[3]
.localName
this.appPersonallist.areaCode = e[3].id
} else if (e.length == 3) {
this.address = e[0].localName + e[1].localName + e[2].localName
this.appPersonallist.areaCode = e[2].id
} else if (e.length == 2) {
this.address = e[0].localName + e[1].localName
this.appPersonallist.areaCode = e[1].id
} else if (e.length == 1) {
this.address = e[0].localName
this.appPersonallist.areaCode = e[0].id
}else {
this.address = ''
this.appPersonallist.areaCode = ''
}
},
//
showPicker() {
this.$refs.cityPicker.show();
},
//+ //+
informationinfo() { data() {
//
var that = this var that = this
if (that.radio == 1) { if (that.radio == 1) {
that.$refs.uToast.show({ that.$refs.uToast.show({
@ -212,6 +260,23 @@
} }
} }
}, },
informationinfo() {
//
var that = this
if (this.addresslength) {
if (this.addresslength.length > 2) {
that.data();
} else {
that.$refs.uToast.show({
title: '所属区域应选择所在的区或街道,请重新选择!',
type: 'error'
})
}
} else {
that.data();
}
},
// //
uploadImag() { uploadImag() {
var that = this; var that = this;
@ -228,41 +293,36 @@
}, },
// //
getAddress() { getAddress() {
uni.getLocation({ var that = this;
type: 'wgs84', uni.chooseLocation({
success: function(res) { success: function(res) {
const key = '3VABZ-6LZWK-YPAJ3-AMQED-D7RUK-VPB37'; //使key that.appPersonallist.locationName = res.address
const referer = '泉医到家'; //app that.appPersonallist.homeLongitude = res.longitude;
const location = JSON.stringify({ that.appPersonallist.homeLatitude = res.latitude;
latitude: 39.89631551,
longitude: 116.323459711
});
wx.navigateTo({
url: 'plugin://chooseLocation/index?key=' + key + '&referer=' + referer
});
} }
}); });
}, },
// // //
areaconfirm(e) { // getAddress() {
this.appPersonallist.areaCode = e[e.length - 1].value // uni.getLocation({
this.address = e[0].label + '-' + e[1].label // type: 'wgs84',
}, // success: function(res) {
// const key = '3VABZ-6LZWK-YPAJ3-AMQED-D7RUK-VPB37'; //使key
// const referer = ''; //app
// const location = JSON.stringify({
// latitude: 39.89631551,
// longitude: 116.323459711
// });
// wx.navigateTo({
// url: 'plugin://chooseLocation/index?key=' + key + '&referer=' + referer
// });
// }
// });
// },
// //
areaInfo() { areaInfo() {
getRegionAndStreetInfo().then(res => { getSubordinateRegions().then(res => {
// this.list = res.data;
res.data.forEach(e => {
if (e.children.length == 0) {
e.children.push({
areaCode: "",
areaName: "暂无街道",
children: null,
id: '',
})
}
})
this.arealist = res.data;
}) })
}, },
// //
@ -285,27 +345,22 @@
}, },
onUnload() { onUnload() {
// nullgeLocation // nullgeLocation
chooseLocation.setLocation(null); // chooseLocation.setLocation(null);
}, },
// //
onShow() { onShow() {
const chooseLocation = requirePlugin('chooseLocation');
const location = chooseLocation.getLocation(); // null
if (location) {
this.appPersonallist.locationName = location.address
this.chooseLocation = location.address;
this.appPersonallist.homeLongitude = location.longitude;
this.appPersonallist.homeLatitude = location.latitude;
}
let that = this let that = this
// const chooseLocation = requirePlugin('chooseLocation');
// const location = chooseLocation.getLocation(); // null
// if (location) {
// that.appPersonallist.locationName = location.address
// that.appPersonallist.homeLongitude = location.longitude;
// that.appPersonallist.homeLatitude = location.latitude;
// }
uni.$on('disease', function(data) { uni.$on('disease', function(data) {
that.patientDiseaseInfoList = JSON.parse(data.disease) that.patientDiseaseInfoList = JSON.parse(data.disease)
}) })
}, },
onUnload() {
// nullgeLocation
chooseLocation.setLocation(null);
},
} }
</script> </script>

View File

@ -6,6 +6,9 @@
height: 100%; height: 100%;
padding: 4%; padding: 4%;
padding-bottom: 100rpx; padding-bottom: 100rpx;
/deep/ .u-drawer{
z-index: 0 !important;
}
.address { .address {
width: 99%; width: 99%;
background: #FFFFFF; background: #FFFFFF;
@ -26,15 +29,16 @@
.detail { .detail {
border-bottom: 5rpx solid #F4F5F7; border-bottom: 5rpx solid #F4F5F7;
height:100%; height:100%;
padding-bottom: 30rpx;
font-size: 32rpx; font-size: 32rpx;
line-height: 50rpx; line-height: 50rpx;
padding-bottom: 20rpx;
word-break:break-all; word-break:break-all;
} }
.update { .update {
display: flex; display: flex;
margin: 18rpx 18rpx 18rpx 50%; width: 100%;
justify-content: flex-end;
} }
.up { .up {
@ -50,7 +54,7 @@
} }
.ups { .ups {
margin-right: 30rpx; margin-right: 20rpx;
} }
} }

View File

@ -7,14 +7,26 @@
{{item.receivePhone}} {{item.receivePhone}}
</view> </view>
<view class="item detail" @tap='goorder(item)'> <view class="item detail" @tap='goorder(item)'>
{{item.address}} {{item.areaName}}{{item.receiveAddress}}
</view> </view>
<view class="update"> <view class="item detail" style="border: none;font-size: 32rpx;margin-top: 40rpx;">
<view class="up ups" @tap='updataxg(item)'> <view class="" style='width: 50%;display: inline-block;'>
修改 <view class="" style="display: inline-block;">
默认地址
</view>
<view class="" style="transform: translateY(16%);display: inline-block;margin-left: 20rpx;">
<u-switch v-model="item.defaultAddressFlag" size='36' @change='change(item)'></u-switch>
</view>
</view> </view>
<view class="up" @tap='del(item)'> <view class="" style="display: inline-block;width: 50%;">
删除 <view class="update">
<view class="up ups" @tap='updataxg(item)'>
修改
</view>
<view class="up" @tap='del(item)'>
删除
</view>
</view>
</view> </view>
</view> </view>
</view> </view>
@ -22,12 +34,12 @@
<view class="ADDress" @tap='add()'> <view class="ADDress" @tap='add()'>
<image src="../../static/add.png" mode=""></image> <image src="../../static/add.png" mode=""></image>
<span class="ADDtext"> <span class="ADDtext">
添加收货地址 添加地址
</span> </span>
</view> </view>
<!-- 弹框 --> <!-- 弹框 -->
<u-popup v-model="show" mode="center" width="80%" height="50%" border-radius="30"> <u-popup v-model="show" mode="center" width="85%" height="600rpx" border-radius="30" @close='cencel()'>
<view class="payment"> <view class="payment" @click.stop=''>
<span>{{shipAddress}}</span> <span>{{shipAddress}}</span>
<view class="cencel" @tap="cencel()"> <view class="cencel" @tap="cencel()">
<image src="../../static/gb.png" mode=""></image> <image src="../../static/gb.png" mode=""></image>
@ -37,23 +49,37 @@
</u-field> </u-field>
<u-field v-model="infolist.receivePhone" label="手机号" placeholder="电话" class="items" maxlength='11'> <u-field v-model="infolist.receivePhone" label="手机号" placeholder="电话" class="items" maxlength='11'>
</u-field> </u-field>
<view class="area" @tap='areashow=true'> <view class="area" @click="showPicker">
<u-field v-model="infolist.address" label="地区" placeholder="请选择" class="items" disabled> <!-- <view class="area" @tap='areashow=true'> -->
<u-field v-model="infolist.address" label="区域" placeholder="请选择" class="items" disabled>
</u-field> </u-field>
<image src="../../static/jiantou.png" mode=""></image> <image src="../../static/jiantou.png" mode=""></image>
</view> </view>
<u-field v-model="infolist.receiveAddress" label-width="170" label="详细地址" placeholder="如街道、门牌号、小区等" <u-field v-model="infolist.receiveAddress" label-width="170" label="详细地址" placeholder="如街道、门牌号、小区等"
class="items" maxlength='50'> class="items" maxlength='50'>
</u-field> </u-field>
<!-- <view class="" style="font-size: 28rpx;height: 80rpx">
<view class="" style="display: inline-block;">
默认地址
</view>
<view class="" style="transform: translateY(8%);display: inline-block;margin-left: 20rpx;">
<u-switch v-model="infolist.defaultAddressFlag" size='32'></u-switch>
</view>
</view> -->
</view> </view>
<view class="save" @tap='submit()'> <view class="save" @tap='submit()'>
保存 保存
</view> </view>
</view> </view>
</u-popup> </u-popup>
<u-select v-model="areashow" mode="mutil-column-auto" label-name='areaName' value-name='areaCode' <!-- <u-select v-model="areashow" mode="mutil-column-auto" label-name='areaName' value-name='areaCode'
:list="arealist" @confirm="areaconfirm"></u-select> :list="arealist" @confirm="areaconfirm"></u-select> -->
<u-toast ref="uToast" /> <u-toast ref="uToast" />
<view class="" v-if="cityPickershow">
<m-city style='z-index: 10076;' :provinceData="list" headTitle="地区选择" ref="cityPicker"
@funcValue="getpickerParentValue" pickerSize="4">
</m-city>
</view>
</view> </view>
</template> </template>
@ -65,43 +91,115 @@
nursingStationGoodsinfo, nursingStationGoodsinfo,
updatenursingStation, updatenursingStation,
getSubordinateRegions, getSubordinateRegions,
getSubordinate getSubordinate,
updateDefaultAddress
} from '@/api/modifyAddress/modifyAddress.js'; } from '@/api/modifyAddress/modifyAddress.js';
import baseurl from '@/api/baseurl.js' import baseurl from '@/api/baseurl.js'
import gkcity from "../m-city/m-city.vue";
export default { export default {
components: {
"m-city": gkcity
},
data() { data() {
return { return {
timer: null,
isedit: true, // isedit: true, //
delshow: false, // delshow: false, //
content: '确认要删除信息吗?', content: '确认要删除信息吗?',
show: false, // show: false, //
areashow: false, // // areashow: false, //
arealist: [], //list // arealist: [], //list
areaCode: '', areaCode: '',
shipAddress: '添加收货地址', shipAddress: '添加地址',
infolist: { infolist: {
receiveName: '', receiveName: '',
receivePhone: '', receivePhone: '',
receiveAddress: '', receiveAddress: '',
areaCode: '', areaCode: null,
patientId: '', patientId: '',
address: '', // address: null, //
defaultAddressFlag: false,
}, },
goodPatient: [], // goodPatient: [], //
patientId: null, patientId: null,
url: '', url: '',
updata: [], updata: [],
list: [{
id: "",
localName: "请选择",
children: [],
}, ],
cityPickershow: false,
addresslength: null,
} }
}, },
onLoad(options) { onShow() {
let that = this
this.url = options.url
this.updata = JSON.parse(options.updata)
//
this.goodsList() this.goodsList()
this.areaInfo() this.areaInfo()
}, },
onLoad(options) {
let that = this
this.updata = JSON.parse(options.updata)
},
methods: { methods: {
change(status) {
if (!status.defaultAddressFlag) {
status.defaultAddressFlag = true
} else {
this.goodPatient.forEach(e => {
e.defaultAddressFlag = 0
})
status.defaultAddressFlag = 1
updateDefaultAddress(this.goodPatient).then(res => {
if (res.code == 200) {
this.goodsList();
uni.$emit('updata', {
updata: JSON.stringify(this.updata),
useritem: JSON.stringify(status)
})
uni.navigateBack({
delta: 1
});
}
})
}
},
//
getpickerParentValue(e) {
this.addresslength = e
this.infolist.address = ''
this.infolist.areaCode = ''
if (e && e.length >= 1) {
e.forEach(el => {
this.infolist.address = this.infolist.address + el.localName
})
this.infolist.areaCode = e[e.length - 1].id
}
// if (e) {
// if (e.length == 4) {
// this.infolist.address = e[0].localName + '-' + e[1].localName + '-' + e[2].localName + '-' + e[3]
// .localName
// this.infolist.areaCode = e[3].id
// } else if (e.length == 3) {
// this.infolist.address = e[0].localName + '-' + e[1].localName + '-' + e[2].localName
// this.infolist.areaCode = e[2].id
// } else if (e.length == 2) {
// this.infolist.address = e[0].localName + '-' + e[1].localName
// this.infolist.areaCode = e[1].id
// } else if (e.length == 1) {
// this.infolist.address = e[0].localName
// this.infolist.areaCode = e[0].id
// } else {
// this.infolist.address = ''
// this.infolist.areaCode = ''
// }
// }
},
//
showPicker() {
this.cityPickershow = true
this.$refs.cityPicker.show();
},
// //
goorder(item) { goorder(item) {
uni.$emit('updata', { uni.$emit('updata', {
@ -119,14 +217,31 @@
const value = uni.getStorageSync('patientId'); const value = uni.getStorageSync('patientId');
if (value) { if (value) {
that.patientId = value that.patientId = value
that.infolist.patientId = value
goodPatientInfo(that.patientId).then(res => { goodPatientInfo(that.patientId).then(res => {
res.data.forEach(e => { res.data.forEach(e => {
e.address = e.provinceName + e.cityName + e.regionName + e e.address = e.areaName + e.receiveAddress
.streetName + e.receiveAddress if (e.defaultAddressFlag == 1) {
e.defaultAddressFlag = true
} else {
e.defaultAddressFlag = false
}
}) })
that.goodPatient = res.data that.goodPatient = res.data
}) })
} else {
that.$refs.uToast.show({
title: '登录状态异常',
type: 'error'
})
if (that.timer) {
clearTimeout(that.timer)
}
that.timer = setTimeout(e => {
uni.navigateBack({
delta: 2
})
}, 1500)
} }
} catch (e) {} } catch (e) {}
}, },
@ -134,45 +249,106 @@
submit() { submit() {
let that = this let that = this
if (that.isedit == true) { if (that.isedit == true) {
addnursingStation(that.infolist).then(res => { if (that.addresslength) {
if (res.code == 200) { if (that.addresslength.length > 2) {
uni.showToast({ addnursingStation(that.infolist).then(res => {
title: '新增成功', if (res.code == 200) {
duration: 1500 that.$refs.uToast.show({
}); title: '新增成功',
that.show = false; type: 'success'
setTimeout(e => { })
that.goodsList() that.cencel();
}, 1500) setTimeout(e => {
that.goodsList()
}, 1000)
} else {
that.$refs.uToast.show({
title: res.msg,
type: 'error'
})
}
})
} else {
this.Toast()
} }
}) } else {
this.Toast()
}
} else { } else {
updatenursingStation(that.infolist).then(res => { if (that.addresslength) {
uni.showToast({ if (that.addresslength.length > 2) {
title: '修改成功', this.xgdata();
duration: 1500 } else {
}); this.Toast()
that.show = false; }
setTimeout(e => { } else {
that.goodsList() this.xgdata();
}, 1500) }
})
} }
}, },
Toast() {
this.$refs.uToast.show({
title: '区域应选择所在的区或街道,请重新选择!',
type: 'error'
})
},
xgdata() {
var that = this
updatenursingStation(that.infolist).then(res => {
if (res.code == 200) {
that.$refs.uToast.show({
title: '修改成功',
type: 'success'
})
that.cencel();
setTimeout(e => {
that.goodsList()
}, 1000)
} else {
that.$refs.uToast.show({
title: res.msg,
type: 'error'
})
}
})
},
// submit() {
// if (this.addresslength) {
// if (this.addresslength.length > 2) {
// this.data();
// } else {
// this.$refs.uToast.show({
// title: ',!',
// type: 'error'
// })
// }
// } else {
// this.data()
// }
// },
// //
updataxg(item) { updataxg(item) {
this.shipAddress = '修改收货地址' this.cityPickershow = true
this.shipAddress = '修改地址'
this.isedit = false this.isedit = false
nursingStationGoodsinfo(item.id).then(res => { nursingStationGoodsinfo(item.id).then(res => {
this.infolist = res.data getSubordinate(res.data.areaCode).then(resp => {
getSubordinate(res.data.areaCode).then(res => { if (resp.data.streetName) {
this.infolist.address = res.data.regionName + '-' + res.data.streetName res.data.address = resp.data.provinceName + resp.data.cityName + resp.data
.regionName + resp.data.streetName
} else {
res.data.address = resp.data.provinceName + resp.data.cityName + resp.data
.regionName
}
this.infolist = res.data
this.show = true this.show = true
}) })
}) })
}, },
// //
add() { add() {
this.shipAddress = '添加地址'
this.cityPickershow = true
this.infolist = { this.infolist = {
receiveName: '', receiveName: '',
receivePhone: '', receivePhone: '',
@ -191,50 +367,68 @@
content: '确认要删除信息吗', content: '确认要删除信息吗',
success: function(res) { success: function(res) {
if (res.confirm) { if (res.confirm) {
delnursingStation(item.id).then(res => { if (that.goodPatient.length == 1) {
uni.showToast({ that.$refs.uToast.show({
title: '删除成功', title: '最少保留一条地址信息',
duration: 1500, type: 'error'
})
}); } else {
setTimeout(e => { delnursingStation(item.id).then(res => {
that.goodsList() that.$refs.uToast.show({
}, 1500) title: '删除成功',
that.delshow = false; type: 'success'
}) })
} else if (res.cancel) { setTimeout(e => {
} that.goodsList()
}, 1000)
that.delshow = false;
})
}
} else if (res.cancel) {}
} }
}); });
}, },
// //
cencel() { cencel() {
this.show = false this.show = false
this.infolist = {} this.cityPickershow = false
}, },
// //
areaInfo() { areaInfo() {
getSubordinateRegions(this.areaCode).then(res => { getSubordinateRegions().then(res => {
// //
res.data.forEach(e => { this.list = res.data;
if (e.children.length == 0) {
e.children.push({
areaCode: "",
areaName: "暂无街道",
children: null,
id: '',
})
}
})
this.arealist = res.data;
}) })
}, },
//
// areaInfo() {
// getSubordinateRegions(this.areaCode).then(res => {
// //
// res.data.forEach(e => {
// if (e.children.length == 0) {
// e.children.push({
// areaCode: "",
// areaName: "",
// children: null,
// id: '',
// })
// }
// })
// this.arealist = res.data;
// })
// },
// //
areaconfirm(e) { areaconfirm(e) {
this.infolist.areaCode = e[e.length - 1].value this.infolist.areaCode = e[e.length - 1].value
this.infolist.address = e[0].label + '-' + e[1].label this.infolist.address = e[0].label + '-' + e[1].label
}, },
} },
onPullDownRefresh() { //
this.goodsList()
setTimeout(function() {
uni.stopPullDownRefresh();
}, 1000);
},
} }
</script> </script>

View File

@ -118,6 +118,7 @@
top:14%; top:14%;
left:32%; left:32%;
font-size: 28rpx; font-size: 28rpx;
overflow: hidden;white-space: nowrap;text-overflow: ellipsis;
} }
.huanyao { .huanyao {
color: #000000; color: #000000;
@ -208,6 +209,10 @@
line-height: 42rpx; line-height: 42rpx;
color: #666666; color: #666666;
padding-top: 30rpx; padding-top: 30rpx;
/deep/ .richPic {
width: 100% !important;
height: 100% !important;
}
} }
.Introduction { .Introduction {
font-size: 31rpx; font-size: 31rpx;

View File

@ -3,10 +3,16 @@
<view class="content"> <view class="content">
<view class="righttext"> <view class="righttext">
<image class="picture" :src="list.stationIntroducePcitureUrl"></image> <image class="picture" :src="list.stationIntroducePcitureUrl"></image>
<view class="title"> <view class="title" v-if="list.nurseStationName">
{{list.nurseStationName}} {{list.nurseStationName}}
</view> </view>
<view class="address">{{list.address}} </view> <view class="title" v-else>
暂无
</view>
<view class="address" v-if="list.address">{{list.address}} </view>
<view class="address" v-else>
暂无
</view>
<view class="call"> <view class="call">
<view class="callme" @tap="gophone()"> <view class="callme" @tap="gophone()">
<u-icon class='icon' name="phone-fill" color="#ffffff" size="30"></u-icon> <u-icon class='icon' name="phone-fill" color="#ffffff" size="30"></u-icon>
@ -19,8 +25,7 @@
</view> </view>
<view class="detail"> <view class="detail">
<view class="Introduction">机构简介</view> <view class="Introduction">机构简介</view>
<view class="textInfo"> <view class="textInfo" v-html="list.agencyIntroduce">
{{list.agencyIntroduce}}
</view> </view>
</view> </view>
<view class="Nursestationconfiguration"> <view class="Nursestationconfiguration">
@ -41,7 +46,8 @@
</view> </view>
</view> </view>
<view class="" v-if="servelist.length>0&&choicetab==false"> <view class="" v-if="servelist.length>0&&choicetab==false">
<view class="item" v-for="item in servelist" :key="" v-show='choicetab==false'> <view class="item" v-for="item in servelist" :key="" v-show='choicetab==false'
@click.stop='goProjectDetails(item)'>
<image :src="item.itemPictureUrl"></image> <image :src="item.itemPictureUrl"></image>
<view class="huanyao">{{item.nurseItemName}} <view class="huanyao">{{item.nurseItemName}}
</view> </view>
@ -49,7 +55,7 @@
<u-rate :count="5" value="2"></u-rate> <u-rate :count="5" value="2"></u-rate>
</view> --> </view> -->
<view class="servicetime">服务时长:{{item.serveDurationUnit?item.serveDurationUnit:'0'}}</view> <view class="servicetime">服务时长:{{item.serveDurationUnit?item.serveDurationUnit:'0'}}</view>
<view class="appointment" @tap='goappointments(item)'>预约</view> <view class="appointment" @tap.stop='goappointments(item)'>预约</view>
<view class="price">{{item.nurseItemPrice==null?'0':item.nurseItemPrice}}</view> <view class="price">{{item.nurseItemPrice==null?'0':item.nurseItemPrice}}</view>
</view> </view>
</view> </view>
@ -63,8 +69,9 @@
<view class="item" v-show='choicetab' v-for="(item,index) in productlist" :key="index"> <view class="item" v-show='choicetab' v-for="(item,index) in productlist" :key="index">
<image :src="item.goodsPictureUrl"></image> <image :src="item.goodsPictureUrl"></image>
<view class="product">{{item.goodsName}}</view> <view class="product">{{item.goodsName}}</view>
<view class="product" style="top:38%;font-size: 24rpx;color: #999999;">{{item.attributeDetailsName}}</view>
<view class="buy appointment" @tap="goCommodityDetails(item)">购买</view> <view class="buy appointment" @tap="goCommodityDetails(item)">购买</view>
<view class="price">{{item.goodsPrice==null?'0':item.goodsPrice}}</view> <view class="price" style="left:32%">{{item.goodsPrice==null?'0':item.goodsPrice}}</view>
</view> </view>
</view> </view>
<view class="noorder" v-if="productlist.length==0&&choicetab"> <view class="noorder" v-if="productlist.length==0&&choicetab">
@ -106,7 +113,6 @@
export default { export default {
data() { data() {
return { return {
patientId: '', //
usershow: false, // usershow: false, //
choicetab: false, // choicetab: false, //
list: [], //list list: [], //list
@ -121,6 +127,7 @@
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
tabIndex: 0, tabIndex: 0,
timer: null,
tabList: [{ tabList: [{
name: "服务项目" name: "服务项目"
}, { }, {
@ -131,8 +138,6 @@
onShow() { onShow() {
this.usershow = false this.usershow = false
this.getInfo() this.getInfo()
this.serveinfo()
this.productinfo()
}, },
onLoad(options) { onLoad(options) {
this.nurseStationId = options.nurseStationId this.nurseStationId = options.nurseStationId
@ -142,49 +147,42 @@
let that = this let that = this
try { try {
const value = uni.getStorageSync('openid'); const value = uni.getStorageSync('openid');
if (value) { const value2 = uni.getStorageSync('patientId');
const value2 = uni.getStorageSync('patientId'); if (value && value2) {
if (value2) { AppIdentification(value2).then(res => {
that.patientId = value2 if (res.code == 200) {
AppIdentification(that.patientId).then(res => { if (res.data.loginFlag) {
if (res.code == 200) { that.usershow = false
if (res.data.loginFlag) { uni.navigateTo({
that.usershow = false url: `/pages/appointmenttime/appointmenttime?stationId=${item.stationId}&stationItemId=${item.stationItemId}&stationItemPriceId=${item.stationItemPriceId}`,
uni.navigateTo({
url: `/pages/appointmenttime/appointmenttime?stationId=${item.stationId}&stationItemId=${item.stationItemId}&stationItemPriceId=${item.stationItemPriceId}`,
})
} else {
that.usershow = true
}
} else {
that.$refs.uToast.show({
title: res.msg,
type: 'error'
}) })
setTimeout(e => { } else {
uni.navigateTo({ that.usershow = true
url: '/pages/login/login'
})
}, 1500)
} }
}) } else if (res.code == 9999) {} else {
} else { that.$refs.uToast.show({
that.$refs.uToast.show({ title: res.msg,
title: '未登录,请先登录', type: 'error'
type: 'error'
})
setTimeout(e => {
uni.navigateTo({
url: '/pages/login/login'
}) })
}, 1500) if (that.timer) {
} clearTimeout(that.timer)
}
that.timer = setTimeout(e => {
uni.navigateTo({
url: '/pages/login/login'
})
}, 1500)
}
})
} else { } else {
that.$refs.uToast.show({ that.$refs.uToast.show({
title: '未登录,请先登录', title: '未登录,请先登录',
type: 'error' type: 'error'
}) })
setTimeout(e => { if (that.timer) {
clearTimeout(that.timer)
}
that.timer = setTimeout(e => {
uni.navigateTo({ uni.navigateTo({
url: '/pages/login/login' url: '/pages/login/login'
}) })
@ -198,15 +196,25 @@
}, },
getInfo() { getInfo() {
introductionList(this.nurseStationId).then(res => { introductionList(this.nurseStationId).then(res => {
res.data.stationIntroducePcitureUrl = baseurl + res.data.stationIntroducePcitureUrl if (res.code == 200) {
this.list = res.data this.serveinfo()
if (res.data.nurseStationLabelList) { this.productinfo()
this.nurseStationLabelList = res.data.nurseStationLabelList res.data.stationIntroducePcitureUrl = baseurl + res.data.stationIntroducePcitureUrl
if (res.data.agencyIntroduce) {
res.data.agencyIntroduce = res.data.agencyIntroduce.replace(/\<img/gi,
"<br/><img class='richPic'")
}
this.list = res.data
if (res.data.nurseStationLabelList) {
this.nurseStationLabelList = res.data.nurseStationLabelList
}
} }
}) })
}, },
serveinfo() { serveinfo() {
this.pageNum = 1
itemList(this.nurseStationId, this.pageSize, this.pageNum).then(res => { itemList(this.nurseStationId, this.pageSize, this.pageNum).then(res => {
uni.removeStorageSync('Refresh');
res.rows.forEach(e => { res.rows.forEach(e => {
e.itemPictureUrl = baseurl + e.itemPictureUrl e.itemPictureUrl = baseurl + e.itemPictureUrl
}) })
@ -215,7 +223,9 @@
}) })
}, },
productinfo() { productinfo() {
this.pageNum = 1
productInformation(this.nurseStationId, this.pageNum, this.pageSize).then(res => { productInformation(this.nurseStationId, this.pageNum, this.pageSize).then(res => {
uni.removeStorageSync('Refresh');
res.rows.forEach(e => { res.rows.forEach(e => {
e.goodsPictureUrl = baseurl + e.goodsPictureUrl e.goodsPictureUrl = baseurl + e.goodsPictureUrl
}) })
@ -230,7 +240,7 @@
// //
goCommodityDetails(item) { goCommodityDetails(item) {
uni.navigateTo({ uni.navigateTo({
url: `/pages/CommodityDetails/CommodityDetails?goodsPrice=${item.goodsPrice}&goodsInfoId=${item.goodsInfoId}&buySource=${'NURSE_STATION'}` url: `/pages/CommodityDetails/CommodityDetails?goodsPrice=${item.goodsPrice}&goodsInfoId=${item.goodsInfoId}&buySource=${'NURSE_STATION'}&goodsAttributeId=${item.goodsAttributeId}`
}) })
}, },
// //
@ -240,6 +250,11 @@
url: '/pages/information/information' url: '/pages/information/information'
}) })
}, },
goProjectDetails(item) {
uni.navigateTo({
url: `/pages/ProjectDetails/ProjectDetails?stationId=${item.stationId}&stationItemId=${item.stationItemId}&stationItemPriceId=${item.stationItemPriceId}`,
})
},
gophone() { gophone() {
var that = this var that = this
uni.getSystemInfo({ uni.getSystemInfo({
@ -265,7 +280,6 @@
}); });
} }
}, },
onReachBottom() { // onReachBottom() { //
if (this.choicetab == 0) { if (this.choicetab == 0) {
if (this.servelist.length >= this.servetotal) {} else { if (this.servelist.length >= this.servetotal) {} else {
@ -287,9 +301,7 @@
}) })
}) })
} }
} }
}, },
onPullDownRefresh() { // onPullDownRefresh() { //
this.pageNum = 1; this.pageNum = 1;
@ -312,6 +324,24 @@
uni.stopPullDownRefresh(); uni.stopPullDownRefresh();
}, 1000); }, 1000);
}, },
//1.
onShareAppMessage(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
//2.
onShareTimeline(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
} }
</script> </script>

View File

@ -8,18 +8,42 @@
<view class="OrderStatus" @tap="gopaid('WAIT_PAY')"> <view class="OrderStatus" @tap="gopaid('WAIT_PAY')">
<image src="/static/Tobepaid.png" mode=""></image> <image src="/static/Tobepaid.png" mode=""></image>
<span>待付款</span> <span>待付款</span>
<view class="orderCount" v-if="list.waitPayCount>0&&list.waitPayCount<100">
{{list.waitPayCount}}
</view>
<view class="orderCount" v-if="list.waitPayCount>=100">
99+
</view>
</view> </view>
<view class="OrderStatus" @tap="goreceive('WAIT_RECEIVED_GOODS')"> <view class="OrderStatus" @tap="goreceive('WAIT_RECEIVED_GOODS')">
<image src="/static/received.png" mode=""></image> <image src="/static/received.png" mode=""></image>
<span>待收货</span> <span>待收货</span>
<view class="orderCount" v-if="list.waitReceivedGoodsCount>0&&list.waitReceivedGoodsCount<100">
{{list.waitReceivedGoodsCount}}
</view>
<view class="orderCount" v-if="list.waitReceivedGoodsCount>=100">
99+
</view>
</view> </view>
<view class="OrderStatus" @tap="gocompleted('RECEIVED_GOODS')"> <view class="OrderStatus" @tap="gocompleted('RECEIVED_GOODS')">
<image src="/static/evaluated.png" mode=""></image> <image src="/static/evaluated.png" mode=""></image>
<span>待评价</span> <span>待评价</span>
<view class="orderCount" v-if="list.receivedGoodsCount>0&&list.receivedGoodsCount<100">
{{list.receivedGoodsCount}}
</view>
<view class="orderCount" v-if="list.receivedGoodsCount>=100">
99+
</view>
</view> </view>
<view class="OrderStatus" @tap="goEVALUATED('EVALUATED')"> <view class="OrderStatus" @tap="goEVALUATED('EVALUATED')">
<image src="/static/finished.png" mode=""></image> <image src="/static/finished.png" mode=""></image>
<span>已完成</span> <span>已完成</span>
<!-- <view class="orderCount" v-if="list.evaluatedCount>0&&list.evaluatedCount<100">
{{list.evaluatedCount}}
</view>
<view class="orderCount" v-if="list.evaluatedCount>=100">
99+
</view> -->
</view> </view>
</view> </view>
</view> </view>
@ -29,14 +53,34 @@
<image src="../../static/jiantou.png" mode=""></image> <image src="../../static/jiantou.png" mode=""></image>
</view> </view>
</view> </view>
<u-toast ref="uToast" />
</view> </view>
</template> </template>
<script> <script>
import {
orderCount
} from '@/api/order/index.js'
export default { export default {
data() { data() {
return { return {
list: null,
}
},
onShow() {
let that = this
const value = uni.getStorageSync('patientId');
if (value) {
orderCount(value).then(res => {
this.list = res.data
})
} else {
that.$refs.uToast.show({
title: '请登录',
type: 'error',
duration: '1000',
url: '/pages/login/login'
})
} }
}, },
methods: { methods: {
@ -76,7 +120,7 @@
url: `/pages/CommodityOrder/CommodityOrder?orderStatus=${item}` url: `/pages/CommodityOrder/CommodityOrder?orderStatus=${item}`
}) })
}, },
} },
} }
</script> </script>
@ -129,14 +173,31 @@
justify-content: space-around; justify-content: space-around;
image { image {
width: 83rpx; width: 100rpx;
height: 72rpx; height: 80rpx;
margin-left: 50%; margin-left: 50%;
transform: translateX(-50%); transform: translateX(-50%);
} }
.OrderStatus { .OrderStatus {
margin-top: 8%; padding-top: 50rpx;
position: relative;
.orderCount {
background-color: red;
color: #FFFFFF;
border-radius: 50%;
text-align: center;
// padding: 0 5rpx ;
line-height: 40rpx;
width: 40rpx;
height: 40rpx;
font-size: 20rpx;
// display: inline-block;
position: absolute;
top: 30rpx;
right: -20rpx;
}
} }
} }

View File

@ -1,20 +1,115 @@
.app { .app {
padding: 0;
.submits {
width: 501rpx;
height: 71rpx;
background: #4C7BC9;
border-radius: 26rpx;
text-align: center;
line-height: 71rpx;
color: #ffffff;
font-size: 34rpx;
margin-top: 5%;
margin-left: 15%;
}
// 弹框确认收货
.chat {
.word {
font-size: 26rpx;
color: #010000;
line-height: 36rpx;
width: 70%;
margin: 50rpx auto;
text-align: center;
}
.image {
position: relative;
.blackground {
width: 183rpx;
height: 69rpx;
background: #030303;
opacity: 0.5;
color: #ffffff;
font-size: 36rpx;
text-align: center;
line-height: 69rpx;
position: absolute;
bottom: 0%;
left: 50%;
transform: translateX(-50%);
}
image {
width: 182rpx;
display: block;
margin: 0 auto;
height: 182rpx;
}
}
}
.payment {
width: 100%;
font-size: 42rpx;
color: #000000;
line-height: 120rpx;
text-align: center;
span {}
image {
width: 31rpx;
height: 31rpx;
position: absolute;
right: 5%;
top: 5%;
}
}
.time{ .time{
height: 80rpx; height: 80rpx;
width: 95%; width: 95%;
text-align: center; text-align: center;
line-height: 80rpx; line-height: 80rpx;
background-color: #fff; background-color: #fff;
margin: 0 auto 10rpx; margin: 30rpx auto 0;
border-radius: 20rpx; border-radius: 20rpx;
} }
.OrderStatus{
text-align: center;
width: 300rpx;
height: 70rpx;
margin: 30rpx auto 0;
line-height: 70rpx;
background-color:#4C7BC9 ;
border-radius: 50rpx;
// color: #4C7BC9;
color: #FFFFFF;
border: 1rpx solid #4C7BC9;
}
.buy { .buy {
background: #FFFFFF; background: #FFFFFF;
position: fixed; position: fixed;
bottom: 0; bottom: 0;
height: 100rpx; height: 100rpx;
width: 100%; width: 100%;
.logistics{
width: 216rpx;
height: 68rpx;
text-align: center;
color: #ffffff;
border-radius: 26rpx;
font-size: 36rpx;
line-height: 68rpx;
position: absolute;
right: 260rpx;
top: 50%;
background: #E1AE3C;
transform: translateY(-50%);
z-index: 999;
}
.pay { .pay {
width: 216rpx; width: 216rpx;
height: 68rpx; height: 68rpx;

View File

@ -5,6 +5,9 @@
<u-count-down style='' :timestamp="timestamp"> <u-count-down style='' :timestamp="timestamp">
</u-count-down> </u-count-down>
</view> </view>
<view class="OrderStatus" v-if="order.orderStatus=='REFUNDED'||order.orderStatus=='CANCEL'">
订单已关闭
</view>
<!-- <custom-nav nav='To' Url="/pages/CommodityOrder/CommodityOrder" title='商品订单'></custom-nav> --> <!-- <custom-nav nav='To' Url="/pages/CommodityOrder/CommodityOrder" title='商品订单'></custom-nav> -->
<view class="content"> <view class="content">
<view class="name"> <view class="name">
@ -42,7 +45,6 @@
<view class="refund" v-if="order.orderStatus=='CANCEL'"> <view class="refund" v-if="order.orderStatus=='CANCEL'">
已取消 已取消
</view> </view>
</view> </view>
</view> </view>
<view class="payinfo"> <view class="payinfo">
@ -51,7 +53,7 @@
</view> </view>
</view> </view>
</view> </view>
<view class="info" v-if="order.orderStatus != ' WAIT_PAY'&& order.orderStatus!='CANCEL'"> <view class="info">
<span>收货人<text>{{order.receiver}}</text></span> <span>收货人<text>{{order.receiver}}</text></span>
<span>联系电话<text>{{order.phone}}</text></span> <span>联系电话<text>{{order.phone}}</text></span>
<span>收货地址<text>{{order.receiveAddress}}</text></span> <span>收货地址<text>{{order.receiveAddress}}</text></span>
@ -66,7 +68,41 @@
去支付 去支付
</view> </view>
</view> </view>
<view class="buy" v-if="order.orderStatus == 'EVALUATED'" @tap='golookrate'>
<view class="pay" style="background-color: #4C7BC9;">
查看评价
</view>
</view>
<view class="buy" v-if="order.orderStatus == 'RECEIVED_GOODS'" @tap='rate'>
<view class="pay" style="background-color: #60c5f1;">
去评价
</view>
</view>
<view class="buy" v-if="order.orderStatus == 'WAIT_RECEIVED_GOODS'">
<view class="logistics" style="" @tap='gologistics'>查看物流
</view>
<view class="pay" style="background-color: #4C7BC9;" @tap='Receipt'>
确认收货
</view>
</view>
<u-toast ref="uToast" /> <u-toast ref="uToast" />
<!-- // -->
<view class="frame">
<u-popup v-model="show" mode="bottom" length="45%" border-radius="30">
<view class="payment">
<span>确认收到货了吗</span>
<image src="../../static/gb.png" mode="" @tap="show = false"></image>
</view>
<view class="chat">
<view class="image">
<image :src="baseurl+order.attributePitureUrl" mode=""></image>
<view class="blackground">共1件</view>
</view>
<view class="word">为了保证你的售后权益请收到商品确认无误后再确认收货</view>
</view>
<view class="submits" @tap='Receipts'>确定</view>
</u-popup>
</view>
</view> </view>
</template> </template>
@ -74,6 +110,9 @@
import { import {
appletGoodsOrderPay appletGoodsOrderPay
} from '@/api/confirmOrder/index.js' } from '@/api/confirmOrder/index.js'
import {
confirmReceipt
} from '@/api/CommodityOrder/index.js'
import { import {
goodsOrder goodsOrder
} from '@/api/CommodityOrder/index.js' } from '@/api/CommodityOrder/index.js'
@ -84,14 +123,65 @@
baseurl: '', baseurl: '',
order: null, order: null,
patientId: '', patientId: '',
openid:null, openid: null,
show: false, //
orderStatus: '', orderStatus: '',
pageSize: 10, pageSize: 10,
pageNum: 1, pageNum: 1,
timestamp: 0, timestamp: 0,
goodsOrderId: null,
} }
}, },
methods: { methods: {
//
golookrate() {
uni.navigateTo({
url: `/pages/lookrate/lookrate?item=${JSON.stringify(this.order)}`
})
},
//
Receipts() {
confirmReceipt(this.order.goOrderNo).then(res => {
if (res.code == 200) {
this.$refs.uToast.show({
title: '收货成功',
type: 'success',
duration: '1000'
})
this.show = false
uni.setStorageSync("Refresh", 'Refresh')
this.goodsOrderinfo()
setTimeout(e => {
uni.navigateTo({
url: `/pages/goodsorderRate/goodsorderRate?item=${JSON.stringify(this.order)}&delta=${4}`
})
}, 1000)
} else {
this.$refs.uToast.show({
title: '收货失败',
type: 'error',
duration: '1000'
})
this.show = false
}
})
},
//
Receipt() {
this.show = true
},
//
gologistics() {
uni.navigateTo({
url: `/pages/logistics/logistics?item=${JSON.stringify(this.order)}`
})
},
//
rate() {
uni.navigateTo({
url: `/pages/goodsorderRate/goodsorderRate?item=${JSON.stringify(this.order)}&delta=${4}`
})
},
// //
pay() { pay() {
var that = this var that = this
@ -110,10 +200,12 @@
signType: response.data.signType, signType: response.data.signType,
paySign: response.data.paySign, paySign: response.data.paySign,
success: function(res) { success: function(res) {
uni.setStorageSync("Refresh", 'Refresh')
this.goodsOrderinfo()
that.$refs.uToast.show({ that.$refs.uToast.show({
title: '支付成功', title: '支付成功',
type: 'success', type: 'success',
toast: 1500, duration: 1500,
url: '/pages/paysuccess/paysuccess' url: '/pages/paysuccess/paysuccess'
}) })
}, },
@ -121,7 +213,7 @@
that.$refs.uToast.show({ that.$refs.uToast.show({
title: '取消支付', title: '取消支付',
type: 'error', type: 'error',
toast: 1500 duration: 1500
}) })
} }
}); });
@ -129,7 +221,7 @@
that.$refs.uToast.show({ that.$refs.uToast.show({
title: response.msg, title: response.msg,
type: 'error', type: 'error',
toast: 1500 duration: 1500
}) })
} }
}) })
@ -140,10 +232,11 @@
url: `/pages/refundType/refundType?order=${JSON.stringify(this.order)}` url: `/pages/refundType/refundType?order=${JSON.stringify(this.order)}`
}) })
}, },
goodsOrderinfo(goodsOrderId) { goodsOrderinfo() {
goodsOrder(this.patientId, this.orderStatus, goodsOrderId, this.pageSize, this.pageNum).then(res => { goodsOrder(this.patientId, this.orderStatus, this.goodsOrderId, this.pageSize, this.pageNum).then(res => {
this.order = res.rows[0] this.order = res.rows[0]
var time = new Date(this.order.orderTime).getTime() / 1000 + (60 * 60 * 24) var ordertimes = this.order.orderTime.replaceAll(/\-/gi, "/")
var time = new Date(ordertimes).getTime() / 1000 + (60 * 60 * 24)
var times = new Date().getTime() / 1000 var times = new Date().getTime() / 1000
this.timestamp = time - times this.timestamp = time - times
}) })
@ -151,26 +244,25 @@
// //
goAftersalesdetails(item) { goAftersalesdetails(item) {
uni.navigateTo({ uni.navigateTo({
url: `/pages/Aftersalesdetails/Aftersalesdetails?goodsOrderId=${item.goodsOrderId}` url: `/pages/Aftersalesdetails/Aftersalesdetails?goodsOrderId=${this.order.goodsOrderId}`
}) })
}, },
}, },
onShow() {
this.goodsOrderinfo()
},
onLoad(options) { onLoad(options) {
this.baseurl = baseurl this.baseurl = baseurl
this.goodsOrderId = options.goodsOrderId
let that = this let that = this
try { try {
const value = uni.getStorageSync('patientId'); const value = uni.getStorageSync('patientId');
if (value) { const value2 = uni.getStorageSync('openid');
if (value && value2) {
that.patientId = value that.patientId = value
that.goodsOrderinfo(options.goodsOrderId) that.openid = value2
} }
} catch (e) {} } catch (e) {}
try {
const value = uni.getStorageSync('openid');
if (value) {
that.openid = value
} else {}
} catch (e) {}
} }
} }
</script> </script>

View File

@ -5,6 +5,9 @@
<u-count-down style='' :timestamp="timestamp"> <u-count-down style='' :timestamp="timestamp">
</u-count-down> </u-count-down>
</view> </view>
<view class="OrderStatus" v-if="order.orderStatus=='REFUNDED'||order.orderStatus=='CANCEL'">
订单已关闭
</view>
<!-- <custom-nav nav='To' Url="/pages/CommodityOrder/CommodityOrder" title='商品订单'></custom-nav> --> <!-- <custom-nav nav='To' Url="/pages/CommodityOrder/CommodityOrder" title='商品订单'></custom-nav> -->
<view class="content"> <view class="content">
<view class="name"> <view class="name">
@ -42,7 +45,6 @@
<view class="refund" v-if="order.orderStatus=='CANCEL'"> <view class="refund" v-if="order.orderStatus=='CANCEL'">
已取消 已取消
</view> </view>
</view> </view>
</view> </view>
<view class="payinfo"> <view class="payinfo">
@ -89,6 +91,7 @@
pageSize: 10, pageSize: 10,
pageNum: 1, pageNum: 1,
timestamp: 0, timestamp: 0,
goodsOrderId: null,
} }
}, },
methods: { methods: {
@ -113,7 +116,7 @@
that.$refs.uToast.show({ that.$refs.uToast.show({
title: '支付成功', title: '支付成功',
type: 'success', type: 'success',
toast: 1500, duration: 1500,
url: `/pages/paysuccess/paysuccess?delta=${3}` url: `/pages/paysuccess/paysuccess?delta=${3}`
}) })
}, },
@ -121,7 +124,7 @@
that.$refs.uToast.show({ that.$refs.uToast.show({
title: '取消支付', title: '取消支付',
type: 'error', type: 'error',
toast: 1500, duration: 1500,
}) })
} }
}); });
@ -129,7 +132,7 @@
that.$refs.uToast.show({ that.$refs.uToast.show({
title: response.msg, title: response.msg,
type: 'error', type: 'error',
toast: 2000 duration: 2000
}) })
} }
}) })
@ -143,7 +146,8 @@
goodsOrderinfo(goodsOrderId) { goodsOrderinfo(goodsOrderId) {
goodsOrder(this.patientId, this.orderStatus, goodsOrderId, this.pageSize, this.pageNum).then(res => { goodsOrder(this.patientId, this.orderStatus, goodsOrderId, this.pageSize, this.pageNum).then(res => {
this.order = res.rows[0] this.order = res.rows[0]
var time = new Date(this.order.orderTime).getTime() / 1000 + (60 * 60 * 24) var ordertimes = this.order.orderTime.replaceAll(/\-/gi, "/")
var time = new Date(ordertimes).getTime() / 1000 + (60 * 60 * 24)
var times = new Date().getTime() / 1000 var times = new Date().getTime() / 1000
this.timestamp = time - times this.timestamp = time - times
}) })
@ -157,12 +161,12 @@
}, },
onLoad(options) { onLoad(options) {
this.baseurl = baseurl this.baseurl = baseurl
this.goodsOrderId = options.goodsOrderId
let that = this let that = this
try { try {
const value = uni.getStorageSync('patientId'); const value = uni.getStorageSync('patientId');
if (value) { if (value) {
that.patientId = value that.patientId = value
that.goodsOrderinfo(options.goodsOrderId)
} }
} catch (e) {} } catch (e) {}
try { try {
@ -172,6 +176,9 @@
} else {} } else {}
} catch (e) {} } catch (e) {}
}, },
onShow() {
this.goodsOrderinfo(this.goodsOrderId)
},
onUnload() {}, onUnload() {},
} }
</script> </script>

View File

@ -1,7 +0,0 @@
// 定义混入指令用于在非nvue环境下的flex定义因为nvue没有display属性会报错
@mixin vue-flex($direction: row) {
/* #ifndef APP-NVUE */
display: flex;
flex-direction: $direction;
/* #endif */
}

View File

@ -0,0 +1,100 @@
<template>
<view class="app">
<image src="../../static/paysuccess.png" mode=""></image>
<view class="success">
评价完成
</view>
<view class="goshopping" @tap='gos'>
返回上一级
</view>
<view class="gohomepage" @tap='gohome'>
去首页
</view>
</view>
</template>
<script>
export default {
data() {
return {
delta: null,
};
},
onLoad(options) {
this.delta = options.delta
},
methods: {
gos() {
var that = this
this.delta = Number(this.delta)
if (this.delta == 4) {
uni.navigateBack({
delta: 4
});
} else if (this.delta == 3) {
uni.navigateBack({
delta: 3
});
} else if (this.delta == 2) {
uni.navigateBack({
delta: 2
});
}else{
uni.navigateBack({
delta: 2
});
}
},
gohome() {
uni.switchTab({
url: '/pages/homepage/homepage'
});
},
},
}
</script>
<style lang="scss">
.app {
font-size: 30rpx;
height: 100vh;
.goshopping,
.gohomepage {
padding: 0 30rpx;
height: 70rpx;
line-height: 65rpx;
text-align: center;
position: absolute;
top: 50%;
color: #4C7BC9;
border: 1rpx solid #4C7BC9;
border-radius: 30rpx;
}
.goshopping {
left: 10%;
}
.gohomepage {
right: 10%;
}
.success {
font-size: 42rpx;
position: absolute;
top: 35%;
left: 50%;
transform: translateX(-50%);
}
image {
width: 230rpx;
height: 230rpx;
position: absolute;
top: 8%;
left: 50%;
transform: translateX(-50%);
}
}
</style>

View File

@ -3,9 +3,8 @@
<view class="cards"> <view class="cards">
<view class="item" :style="{background:listcolor[index]}" @tap='goProductList(item)' <view class="item" :style="{background:listcolor[index]}" @tap='goProductList(item)'
v-for="(item,index) in goodsCategoryList" :key="index"> v-for="(item,index) in goodsCategoryList" :key="index">
<image :style="index==4?'top:0;border-radius: 20rpx;width:100%;height: 300rpx;':''" <image :src="item.goodsCategoryPicture" mode=""></image>
:src="item.goodsCategoryPicture" mode=""></image> <view class="title" style="font-size:42rpx">
<view class="title" style="font-size:42rpx" v-if="index!=4">
{{item.goodsCategoryName}} {{item.goodsCategoryName}}
</view> </view>
</view> </view>
@ -45,7 +44,27 @@
], // ], //
}; };
}, },
onLoad(options) { // //1.
onShareAppMessage(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
//2.
onShareTimeline(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
//
onLoad(options) {},
onShow() {
this.goodsCategory() this.goodsCategory()
}, },
methods: { methods: {
@ -58,18 +77,27 @@
// //
goodsCategory() { goodsCategory() {
goodsCategoryList(this.pageSize, this.pageNum).then(res => { goodsCategoryList(this.pageSize, this.pageNum).then(res => {
res.rows.forEach(e => { uni.removeStorageSync('Refresh');
e.goodsCategoryPicture = baseurl + e.goodsCategoryPicture if (res.code == 200) {
this.goodsCategoryList.push(e) res.rows.forEach(e => {
}) e.goodsCategoryPicture = baseurl + e.goodsCategoryPicture
this.total = res.total })
this.goodsCategoryList = res.rows
this.total = res.total
}
}) })
} }
}, },
onReachBottom() { // onReachBottom() { //
if (this.goodsCategoryList.length >= this.total) {} else { if (this.goodsCategoryList.length >= this.total) {} else {
this.pageNum++; this.pageNum++;
this.goodsCategory() goodsCategoryList(this.pageSize, this.pageNum).then(res => {
res.rows.forEach(e => {
e.goodsCategoryPicture = baseurl + e.goodsCategoryPicture
this.goodsCategoryList.push(e)
})
this.total = res.total
})
} }
}, },
onPullDownRefresh() { // onPullDownRefresh() { //
@ -89,7 +117,9 @@
</script> </script>
<style lang="scss"> <style lang="scss">
.item:nth-child(0) { .app {
image {} .cards {
padding: 22px 0 20px 0;
}
} }
</style> </style>

View File

@ -1,6 +1,6 @@
//护理站列表 //护理站列表
.app{ .app{
padding: 0; padding: 0 0 5rpx 0;
.map{ .map{
padding-top: 100rpx; padding-top: 100rpx;
z-index: 1; z-index: 1;

View File

@ -12,7 +12,9 @@
<view class="addressContent" v-for="(item,index) in nursestationlist" :key="index"> <view class="addressContent" v-for="(item,index) in nursestationlist" :key="index">
<view class="lists" @tap='godetails(item)'> <view class="lists" @tap='godetails(item)'>
<view class="nurse">{{item.nurseStationName}}</view> <view class="nurse">{{item.nurseStationName}}</view>
<view class="distance">距离您{{item.distance}}KM</view> <view class="distance"
v-show="homeLatitudeLongitude.homeLatitude&&homeLatitudeLongitude.homeLongitude">
距离您{{item.distance}}KM</view>
<image class="background" :src="item.stationPictureUrl" mode=""></image> <image class="background" :src="item.stationPictureUrl" mode=""></image>
<view class="understand"> <view class="understand">
点击了解 点击了解
@ -55,6 +57,7 @@
latitude: 39.90374, latitude: 39.90374,
longitude: 116.397827, longitude: 116.397827,
markers: [], markers: [],
homeLatitudeLongitude: null,
} }
}, },
methods: { methods: {
@ -63,29 +66,31 @@
uni.openSetting({ uni.openSetting({
success(res) { success(res) {
if (res.authSetting['scope.userLocation']) { if (res.authSetting['scope.userLocation']) {
uni.getLocation({ // uni.getLocation({
type: 'wgs84', // type: 'wgs84',
success: function(res) { // success: function(res) {
that.latitude = res.latitude // that.latitude = res.latitude
that.longitude = res.longitude // that.longitude = res.longitude
that.markers.push({ // that.markers.push({
id: 3, // id: 3,
latitude: res.Latitude, // latitude: res.Latitude,
longitude: res.Longitude, // longitude: res.Longitude,
width: 20, // width: 20,
height: 25, // height: 25,
iconPath: "../../static/locatinsmall.png" // iconPath: "../../static/locatinsmall.png"
}) // })
that.mask = false // that.mask = false
} // }
}); // });
} }
} }
}); });
}, },
requestinfo() { requestinfo() {
this.pageNum = 1;
nearbyList(this.pageSize, this.pageNum, this.longitude, this.latitude, this.nurseTypeCode).then(res => { nearbyList(this.pageSize, this.pageNum, this.longitude, this.latitude, this.nurseTypeCode).then(res => {
if (res.total > 0) { if (res.total > 0) {
uni.removeStorageSync('Refresh');
res.rows.forEach(e => { res.rows.forEach(e => {
e.stationPictureUrl = baseurl + e.stationPictureUrl e.stationPictureUrl = baseurl + e.stationPictureUrl
}) })
@ -144,90 +149,119 @@
}, },
onShow() { onShow() {
var that = this var that = this
try { const value = uni.getStorageSync('patientId');
const value = uni.getStorageSync('patientId'); if (value) {
if (value) { getPatientInfo(value).then(res => {
getPatientInfo(value).then(res => { if (res.code == 200) {
if (res.code == 200) { this.homeLatitudeLongitude = res.data
if (res.data.homeLatitude && res.data.homeLongitude) { if (res.data.homeLatitude && res.data.homeLongitude) {
that.latitude = res.data.homeLatitude that.latitude = res.data.homeLatitude
that.longitude = res.data.homeLongitude that.longitude = res.data.homeLongitude
that.markers.push({
id: 3,
latitude: res.data.homeLatitude,
longitude: res.data.homeLongitude,
width: 20,
height: 25,
iconPath: "../../static/locatinsmall.png"
})
that.requestinfo();
} else {
uni.getLocation({
type: 'wgs84',
success: function(resp) {
that.latitude = resp.latitude
that.longitude = resp.longitude
that.markers.push({
id: 3,
latitude: resp.latitude,
longitude: resp.longitude,
width: 20,
height: 25,
iconPath: "../../static/locatinsmall.png"
})
that.requestinfo();
},
fail(err) {
that.mask = true;
}
});
}
} else {
uni.getLocation({
type: 'wgs84',
success: function(resh) {
that.latitude = resh.latitude
that.longitude = resh.longitude
that.markers.push({
id: 3,
latitude: resh.latitude,
longitude: resh.longitude,
width: 20,
height: 25,
iconPath: "../../static/locatinsmall.png"
})
that.requestinfo();
},
fail(err) {
that.mask = true;
}
});
}
})
} else {
uni.getLocation({
type: 'wgs84',
success: function(res) {
that.latitude = res.latitude
that.longitude = res.longitude
that.markers.push({ that.markers.push({
id: 3, id: 3,
latitude: res.latitude, latitude: res.data.homeLatitude,
longitude: res.longitude, longitude: res.data.homeLongitude,
width: 20, width: 20,
height: 25, height: 25,
iconPath: "../../static/locatinsmall.png" iconPath: "../../static/locatinsmall.png"
}) })
that.requestinfo(); that.requestinfo();
}, } else {
fail(err) { that.latitude = that.latitude
that.mask = true; that.longitude = that.longitude
that.requestinfo();
// uni.getLocation({
// type: 'wgs84',
// success: function(resp) {
// that.latitude = resp.latitude
// that.longitude = resp.longitude
// that.markers.push({
// id: 3,
// latitude: resp.latitude,
// longitude: resp.longitude,
// width: 20,
// height: 25,
// iconPath: "../../static/locatinsmall.png"
// })
// that.requestinfo();
// },
// fail(err) {
// that.mask = true;
// }
// });
} }
}); } else if (res.code == 9999) {
}
} catch (e) {} } else {
that.latitude = that.latitude
that.longitude = that.longitude
that.requestinfo();
// that.markers.push({
// uni.getLocation({
// type: 'wgs84',
// success: function(resh) {
// that.latitude = resh.latitude
// that.longitude = resh.longitude
// that.markers.push({
// id: 3,
// latitude: resh.latitude,
// longitude: resh.longitude,
// width: 20,
// height: 25,
// iconPath: "../../static/locatinsmall.png"
// })
// that.requestinfo();
// },
// fail(err) {
// that.mask = true;
// }
// });
}
})
} else {
that.latitude = that.latitude
that.longitude = that.longitude
that.requestinfo();
// uni.getLocation({
// type: 'wgs84',
// success: function(res) {
// that.latitude = res.latitude
// that.longitude = res.longitude
// that.markers.push({
// id: 3,
// latitude: res.latitude,
// longitude: res.longitude,
// width: 20,
// height: 25,
// iconPath: "../../static/locatinsmall.png"
// })
// that.requestinfo();
// },
// fail(err) {
// that.mask = true;
// }
// });
}
}, },
onLoad() {}, onLoad() {},
//1.
onShareAppMessage(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
//2.
onShareTimeline(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
} }
</script> </script>
<style lang="scss"> <style lang="scss">

View File

@ -17,28 +17,32 @@
}; };
}, },
//1.
onShareAppMessage(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
//2.
onShareTimeline(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '泉医到家',
path: url,
}
},
onShow() { onShow() {
this.info() setTimeout(() => {
// const value = uni.getStorageSync('openid'); uni.reLaunch({
// if (value) { url: '/pages/homepage/homepage'
// existPatientInfo(value).then(res => { });
// if (res.code == 200) { }, 2000);
// if (res.msg == 'LOGIN') {
// uni.setStorageSync("LOGIN", res.msg)
// } else {}
// } else {}
// })
// } else {}
},
methods: {
info() {
setTimeout(() => {
uni.reLaunch({
url: '/pages/homepage/homepage'
});
}, 2000);
},
}, },
methods: {},
} }
</script> </script>

View File

@ -0,0 +1,167 @@
<template>
<view style="position: relative;">
<!--顶部导航栏-->
<view class="uni-top-tabbar">
<scroll-view scroll-x="true" class="uni-swiper-tab" :style="{backgroundColor:bgColor}">
<view v-for="(tabBar,index) in tabBars" :key="index" class="swiper-tab-list"
:class="{'active': tabIndex==index}" :style="{color:tabIndex==index?selectedTextColor:textColor}"
@tap="toggleTab(index)">
<view class="title">
{{tabBar.goodsCategoryName}}
</view>
<view class="swiper-tab-line"
:style="{backgroundColor:tabIndex==index?selectedBottomColor:bgColor}"></view>
</view>
</scroll-view>
<view class="fenlei" @tap='toggleTab(1111111111111)'>
<image src="../../static/fenlei.png" mode=""></image>
<view class="">
分类
</view>
</view>
</view>
</view>
</template>
<script>
export default {
name: "topTabbar",
props: {
//
tabIndex: {
type: Number,
default: 0
},
//
tabBars: {
type: Array,
default: [{
goodsCategoryName: '标签1',
id: 1
},
{
goodsCategoryName: '标签2',
id: 2
},
{
goodsCategoryName: '标签3',
id: 3
},
{
goodsCategoryName: '标签4',
id: 4
},
{
goodsCategoryName: '标签5',
id: 5
},
{
goodsCategoryName: '标签6',
id: 6
}
]
},
//
selectedBottomColor: {
type: String,
default: '#D43953'
},
//
bgColor: {
type: String,
default: '#ffffff'
},
//
selectedTextColor: {
type: String,
default: '#D43953'
},
//
textColor: {
type: String,
default: '#7d7e80'
}
},
data() {
return {}
},
methods: {
//
toggleTab(index) {
this.$emit("toggleToptab", index)
}
}
}
</script>
<style lang="scss">
.fenlei {
width: 25%;
display: inline-block;
background-color: #fff;
line-height: 70rpx;
font-weight: normal;
height: 75rpx;
text-align: center;
color: #7d7e80;
position: absolute;
right: 0;
top: 0;
view {
position: absolute;
right: 25%;
}
image {
width: 40rpx;
height: 40rpx;
position: absolute;
left: 25%;
top: 50%;
transform: translateY(-55%);
}
}
.title {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
width: 100%;
}
.uni-top-tabbar {
/* 以下3项设置用于开启底部阴影显示 */
/* position: relative;
z-index: 1;
overflow: visible; */
width: 75%;
.uni-swiper-tab {
height: 75rpx;
//
//box-shadow: rgba(170, 170, 170, 0.5) 0 2rpx 8rpx 0;
white-space: nowrap;
.swiper-tab-list {
font-size: 28rpx;
font-weight: normal;
line-height: 70rpx;
//
width: 25%;
text-align: center;
display: inline-block;
}
.active {
.swiper-tab-line {
height: 4rpx;
width: 80rpx;
margin: auto;
}
}
}
}
</style>

View File

@ -64,6 +64,16 @@
background: #FFFFFF; background: #FFFFFF;
border-radius: 0 0 20rpx 20rpx; border-radius: 0 0 20rpx 20rpx;
} }
.addressitem {
box-shadow: 0px 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
// height: 110rpx;
line-height: 80rpx;
border-bottom: 1rpx solid #D8D4D4;
background: #FFFFFF;
.address{
line-height: 50rpx;font-size: 28rpx;width: 90%;margin: 0 auto;
}
}
.item { .item {
box-shadow: 0px 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03); box-shadow: 0px 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
// height: 110rpx; // height: 110rpx;

View File

@ -7,7 +7,7 @@
<view class="img" v-else> <view class="img" v-else>
<image src="../../static/users.png" mode=""></image> <image src="../../static/users.png" mode=""></image>
</view> </view>
<view class="phone" v-if="appPersonallist.patientName!=null"> <view class="phone" v-if="appPersonallist.patientName">
{{appPersonallist.patientName}} {{appPersonallist.patientName}}
</view> </view>
<view class="nickname"> <view class="nickname">
@ -19,50 +19,57 @@
</view> </view>
</view> </view>
<view class="information"> <view class="information">
<view class="item" v-if="appPersonallist.patientName!=null"> <view class="item" v-if="appPersonallist.patientName">
姓名{{appPersonallist.patientName}} 姓名{{appPersonallist.patientName}}
</view> </view>
<view class="item" v-else> <view class="item" v-else>
姓名 姓名
</view> </view>
<view class="item" v-if="appPersonallist.phone!=null"> <view class="item" v-if="appPersonallist.phone">
电话{{appPersonallist.phone}} 电话{{appPersonallist.phone}}
</view> </view>
<view class="item" v-else> <view class="item" v-else>
电话 电话
</view> </view>
<view class="item" v-if="appPersonallist.cardNo!=null"> <view class="item" v-if="appPersonallist.cardNo">
身份证{{appPersonallist.cardNo}} 身份证{{appPersonallist.cardNo}}
</view> </view>
<view class="item" v-else> <view class="item" v-else>
身份证 身份证
</view> </view>
<view class="item" v-if="appPersonallist.streetName"> <view class="addressitem" v-if="appPersonallist.areaName">
区域{{appPersonallist.regionName}}-{{appPersonallist.streetName}} <view class="" style="padding-left: 5%;">
</view> 区域
<view class="item" v-else>
区域
</view>
<view class="item" style="height:100%" v-if="appPersonallist.address">
地址:
{{appPersonallist.address}}
</view>
<view class="item" style="height:100%" v-else>
地址:
</view>
<!-- <view class="item" style="height:100%">
<view class="" style="display: inline-block;">
位置:
</view> </view>
<view class="address" v-if="appPersonallist.homeLatitude&&appPersonallist.homeLongitude"> <view class="address" style="">
东经:{{appPersonallist.homeLongitude}}--北纬:{{ appPersonallist.homeLatitude}} {{appPersonallist.areaName}}
</view> </view>
</view> --> </view>
<view class="addressitem" v-else>
<view class="" style="padding-left: 5%;">
区域
</view>
<view class="address" style="">
</view>
</view>
<view class="addressitem" style="height:100%" v-if="appPersonallist.address">
<view class="" style="padding-left: 5%;">
地址
</view>
<view class="address" style="">
{{appPersonallist.address}}
</view>
</view>
<view class="addressitem" style="height:100%" v-else>
<view class="" style="padding-left: 5%;">
地址
</view>
</view>
<view class="disease" style="border:none;"> <view class="disease" style="border:none;">
<view class="" style="line-height: 110rpx;"> <view class="" style="line-height: 110rpx;">
疾病类型: 疾病类型:
</view> </view>
<span style="padding-right: 15rpx;font-size: 32rpx;" <span style="padding-right: 15rpx;font-size: 30rpx;"
v-for="(item,index) in appPersonallist.patientDiseaseInfoList" v-for="(item,index) in appPersonallist.patientDiseaseInfoList"
:key="index">{{item.diseaseName}}</span> :key="index">{{item.diseaseName}}</span>
</view> </view>
@ -119,9 +126,7 @@
this.baseurl = baseurl this.baseurl = baseurl
this.myInfo() this.myInfo()
}, },
onLoad(options) { onLoad(options) {},
//
},
methods: { methods: {
remove() { remove() {
let that = this let that = this
@ -133,6 +138,7 @@
uni.removeStorageSync('patientId'); uni.removeStorageSync('patientId');
uni.removeStorageSync('openid'); uni.removeStorageSync('openid');
uni.removeStorageSync('phone'); uni.removeStorageSync('phone');
uni.removeStorageSync('token');
that.$refs.uToast.show({ that.$refs.uToast.show({
title: '退出账号成功', title: '退出账号成功',
type: 'success', type: 'success',
@ -142,8 +148,8 @@
clearTimeout(that.timer) clearTimeout(that.timer)
} }
that.timer = setTimeout(e => { that.timer = setTimeout(e => {
uni.reLaunch({ uni.navigateBack({
url: '/pages/homepage/homepage' delta: 1
}) })
}, 1000) }, 1000)
} else if (res.cancel) { } else if (res.cancel) {
@ -156,49 +162,47 @@
} }
}); });
}, },
removes() {
uni.removeStorageSync('patientId');
uni.removeStorageSync('openid');
uni.removeStorageSync('phone');
uni.removeStorageSync('Refresh');
uni.removeStorageSync('token');
uni.navigateBack({
delta: 1
})
},
// //
myInfo() { myInfo() {
var that = this var that = this
const value = uni.getStorageSync('openid'); const value = uni.getStorageSync('openid');
if (value) { const value2 = uni.getStorageSync('patientId');
if (value && value2) {
existPatientInfo(value).then(res => { existPatientInfo(value).then(res => {
if (res.code == 200) { if (res.code == 200 && res.msg == 'LOGIN') {
if (res.msg == 'LOGIN') { appPersonal(value2).then(Response => {
uni.setStorageSync("LOGIN", res.msg) if (Response.code == 200) {
const value2 = uni.getStorageSync('patientId'); that.appPersonallist = Response.data
if (value2) { that.appPersonallist.homeLatitude = Number(that.appPersonallist
appPersonal(value2).then(Response => { .homeLatitude)
if (Response.code == 200) { that.appPersonallist.homeLongitude = Number(that.appPersonallist
that.appPersonallist = Response.data .homeLongitude)
} else { } else if (Response.code == 9999) {} else {
uni.navigateTo({ that.removes();
url: '/pages/login/login'
})
}
})
} }
} else { })
that.remove()
}
} else { } else {
that.remove() that.removes();
} }
}) })
} else { } else {
that.remove() that.removes();
} }
}, },
remove() {
uni.removeStorageSync('patientId');
uni.removeStorageSync('openid');
uni.removeStorageSync('phone');
uni.navigateTo({
url: '/pages/login/login'
})
},
updatainfo() { updatainfo() {
uni.navigateTo({ uni.navigateTo({
url: `/pages/modify/modify?appPersonallist=${JSON.stringify(this.appPersonallist)}` // url: `/pages/modify/modify?appPersonallist=${JSON.stringify(this.appPersonallist)}`
url: `/pages/modify/modify`
}) })
} }
}, },

BIN
static/192x192.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
static/fenlei.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB