This commit is contained in:
曹辉 2022-10-31 09:04:45 +08:00
parent cb6394a742
commit ae7bf6fce8
36 changed files with 1196 additions and 874 deletions

View File

@ -22,9 +22,7 @@
width: 94%;
box-shadow: 0px 0px 30rpx 0px rgba(108, 99, 255, 0.16);
background-color: #fff;
position: absolute;
top: 3%;
left: 3%;
margin: 0 auto;
display: flex;
justify-content: space-evenly;
flex-wrap: wrap;

View File

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

View File

@ -1,2 +1,4 @@
var baseurl = "http://192.168.16.81:8080";
var baseurl = "http://192.168.16.30:8080";
// var baseurl = "http://192.168.16.48:8081";
// var baseurl = "http://192.168.16.76:8080";
export default baseurl

10
api/confirmOrder/index.js Normal file
View File

@ -0,0 +1,10 @@
import request from "../request.js"
//确认支付
export function addStationGoodsOrder(data) {
return request({
url: `/nurseApplet/nursingStationGoods/addStationGoodsOrder`,
method: 'post',
data
})
}

View File

@ -13,7 +13,7 @@ export function getRegionAndStreetInfo() {
//完善信息登录
export function information(data) {
return request({
url: `/nurseApp/login/information`,
url: `/nurseApp/login/appInformation`,
method: 'POST',
data
})

View File

@ -1,16 +1,9 @@
import request from "../request.js"
//密码
export function appLoginpwd(account, password) {
export function appLoginpwd(phone, password) {
return request({
url: `/nurseApp/login/appLogin?account=${account}&password=${password}`,
url: `/nurseApp/login/appLogin?phone=${phone}&password=${password}`,
method: 'POST'
})
}
//验证码
export function appLoginvfn(account, verification) {
return request({
url: `/nurseApp/login/appLogin?account=${account}&verification=${verification}`,
method: 'POST'
})
}
}

View File

@ -9,14 +9,6 @@ export function introductionList(id) {
}
// export function getAppStationItemInfo(id) {
// return request({
// url: `/nurseApp/login/getAppStationItemInfo?patientId=${id}`,
// method: 'GET'
// })
// }
export function itemList(id,pageSize,pageNum) {
return request({
url: `/nurseApplet/nearbyNursingStation/itemList?pageSize=${pageSize}&pageNum=${pageNum}&nurseStationId=${id}`,

View File

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

View File

@ -17,7 +17,9 @@
"delay" : 0
},
/* */
"modules" : {},
"modules" : {
"Geolocation" : {}
},
/* */
"distribute" : {
/* android */
@ -25,30 +27,31 @@
"permissions" : [
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.INTERNET\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>"
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
]
},
/* ios */
"ios" : {},
/* SDK */
"sdkConfigs" : {
"maps" : {
"amap" : {
"appkey_ios" : "",
"appkey_android" : "b38c6aa0cb9a6323f48b05ea6462aed5"
}
},
"maps" : {},
"geolocation" : {
"amap" : {
"__platform__" : [ "android" ],
"appkey_ios" : "",
"appkey_android" : "b38c6aa0cb9a6323f48b05ea6462aed5"
},
"system" : {
"__platform__" : [ "android" ]
}

View File

@ -3,10 +3,8 @@
<uni-swiper-dot :info="info" :current="current" field="content" :mode="mode" @clickItem='clickItem'
style='background-color: #fff;height:750rpx'>
<swiper class="swiper-box" @change="change" :current="swiperDotIndex" style="height:100%">
<!-- <swiper-item v-for="(item ,index) in info" :key="index">
</swiper-item> -->
<swiper-item>
<image style='width:100%;height:750rpx' :src="baseurl+goodsDetailslist.goodsPictureUrl" mode="">
<swiper-item v-for="(item ,index) in info" :key="index">
<image style='width:100%;height:750rpx' :src="baseurl+item.goodsPictureUrl" mode="">
</image>
</swiper-item>
</swiper>
@ -74,8 +72,11 @@
<view class="price">
{{updata.goodsPrice}}
</view>
<view class="goodsStock" v-show="goodshow">
库存数量:{{updata.goodsStock}}
</view>
</view>
<view class="centercontent topcontent">
<view class="centercontent topcontent" v-show="goodshow">
<view class="header">
商品规格
</view>
@ -98,7 +99,7 @@
数量
</view>
<view class="number">
<u-number-box :min="1" :max="999" v-model="updata.goodsCount"></u-number-box>
<u-number-box :min="1" :max="updata.goodsStock" v-model="updata.goodsCount"></u-number-box>
</view>
</view>
<view class="buy" @tap="tapbuy">
@ -106,6 +107,21 @@
</view>
</view>
</u-mask>
<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>
@ -113,43 +129,96 @@
import {
goodsDetails
} from '@/api/CommodityDetails/CommodityDetails.js'
import {
AppIdentification
} from '@/api/AppIdentification/index.js'
import baseurl from '@/api/baseurl.js'
export default {
data() {
return {
usershow: false, //
baseurl: '', //url
goodsPrice: '', //
goodsDetailslist: [], //list
goodDetailsLists: [], //
goodshow: true, //
buyshow: false, //
info: [{}],
info: [], //list
current: 0, //
mode: 'dot', //
swiperDotIndex: 0, //
number: 1, //
updata: { //
updata: { //
goodsPrice: 0.00,
goodsName: "",
goodsAttributeName: '',
goodsCount: 1,
nurseStationId: '',
img: '',
totalprice: null,
totalPrice: null,
patientId: '',
goodsStock: 0, //
goodsAttributeContent: '', //
giveIntegral: 0, //
transportPrice: 0.00, //
discountPrice: 0.00, //
buySource: '', // 'NURSE_STATIONSHOPPING_MALL'
orderChannel: 'MOBILE_APP', // AppMOBILE_APPWECHAT_APPLETALI_PAY_APPLET'
receiver: "", //
receiveAddress: "", //
phone: '', //
attributeDetailsId: '', //id
goodsAttributeId: '',
goodsAttributeDetailsId: '',
}
};
},
methods: {
//
goinformation() {
uni.navigateTo({
url: '/pages/information/information'
})
},
//
tapbuy() {
this.updata.totalprice = (this.updata.goodsPrice * this.updata.goodsCount).toFixed(2)
console.log(this.updata)
AppIdentification(this.updata.patientId).then(res => {
console.log(res)
if (res.data.loginFlag) {
if (this.goodshow == true) {
if (this.updata.goodsAttributeName == '') {
this.$refs.uToast.show({
title: '未选择商品',
type: 'error'
})
} else if (this.updata.goodsStock == 0) {
this.$refs.uToast.show({
title: '库存数量不足,无法购买',
type: 'error'
})
} else {
this.updata.totalPrice = (this.updata.goodsPrice * this.updata.goodsCount).toFixed(
2)
uni.navigateTo({
url: `/pages/confirmOrder/confirmOrder?updata=${JSON.stringify(this.updata)}`
})
}
} else {
uni.navigateTo({
url: `/pages/confirmOrder/confirmOrder?updata=${JSON.stringify(this.updata)}`
})
}
} else {
this.buyshow = false
this.usershow = true
}
})
},
// tapbuy() {
// this.goodsDetailslist.goodDetailsLists.forEach(e => {
// e.goodAttributeDetailsLists.forEach(el => {
// if (el.isActive == true) {
// this.updata.goodsAttributeName += el.attributeDetailsName + ' '
// this.updata.totalprice = (this.updata.goodsPrice * this.updata.goodsCount)
// this.updata.totalPrice = (this.updata.goodsPrice * this.updata.goodsCount)
// .toFixed(2)
// }
// })
@ -163,6 +232,10 @@
this.goodDetailsLists.forEach(e => {
e.isActive = false
})
this.updata.goodsAttributeName = ''
this.updata.goodsPrice = 0
this.updata.attributeDetailsId = ''
this.updata.goodsStock = 0
} else {
this.goodDetailsLists.forEach(e => {
e.isActive = false
@ -171,6 +244,10 @@
this.updata.goodsAttributeName = item.attributeDetailsName
this.updata.goodsPrice = item.goodsPrice
this.updata.goodsPrice = this.updata.goodsPrice.toFixed(2)
this.updata.attributeDetailsId = item.attributeDetailsId
this.updata.goodsStock = item.goodsStock
this.updata.goodsAttributeId = item.goodsAttributeId
this.updata.goodsAttributeDetailsId = item.attributeDetailsId
}
},
@ -202,9 +279,21 @@
//
goodsDetailsinfo(goodsInfoId) {
goodsDetails(goodsInfoId).then(res => {
res.data[0].goodDetailsLists.forEach(e => {
e.isActive = false
})
res.data[0].goodsPictureUrl = this.baseurl + res.data[0].goodsPictureUrl
if (res.data[0].goodDetailsLists == null) {
this.goodshow = false
} else if (res.data[0].goodDetailsLists.length == 0) {
this.goodshow = false
} else {
res.data[0].goodDetailsLists.forEach(e => {
e.isActive = false
})
this.goodshow = true
}
var obj = {
image: res.data[0].goodsPictureUrl
}
this.info.push(obj)
this.goodsDetailslist = res.data[0]
this.updata.goodsName = this.goodsDetailslist.goodsName
this.updata.nurseStationId = this.goodsDetailslist.nurseStationId
@ -233,6 +322,16 @@
},
},
onLoad(options) { //
this.updata.buySource = options.buySource
this.usershow = false
let that = this
uni.getStorage({
key: 'patientId',
success: function(res) {
that.updata.patientId = res.data
console.log(that.updata)
}
});
this.goodsPrice = options.goodsPrice //
this.baseurl = baseurl;
this.goodsDetailsinfo(options.goodsInfoId)

View File

@ -1,4 +1,51 @@
.app {
padding: 0;
.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;
}
}
}
.mask {
.PurchasePage {
position: fixed;
@ -23,26 +70,27 @@
padding-bottom: 24rpx;
border-bottom: 1rpx solid #D8D4D4;
position: relative;
.goodsStock{
font-size: 24rpx;
position: absolute;
top: 73%;
left: 75%;
}
.price {
color: #D43953;
position: absolute;
top: 60%;
top: 70%;
left: 37%;
}
.title {
font-size: 36rpx;
position: absolute;
top: 12%;
top: 0%;
left: 38%;
font-weight: 600;
width: 58%;
height: 85rpx;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
}
.image {
@ -96,19 +144,18 @@
.productmodel {
font-size: 24rpx;
display: inline-block;
width: 30%;
height: 60rpx;
border: 1rpx solid #D8D4D4;
line-height: 60rpx;
border-radius: 25rpx;
text-align: center;
margin: 15rpx 10rpx 0 0;
padding: 0 15rpx;
margin: 15rpx 15rpx 0 0;
}
.Productmodel {
font-size: 24rpx;
display: inline-block;
width: 30%;
height: 60rpx;
background: #ECF1FA;
border: 1rpx solid #4C7BC9;
@ -116,7 +163,8 @@
border-radius: 25rpx;
color: #4C7BC9;
text-align: center;
margin: 15rpx 10rpx 0 0;
padding: 0 15rpx;
margin: 15rpx 15rpx 0 0;
}
}
}

View File

@ -1,7 +1,7 @@
<template>
<view class="app">
<view class="cards">
<view class="item" style="background-color: #9E4DD0;">
<view class="item" style="background-color: #9E4DD0;" @tap='gouser'>
<image src="../../static/user.png" mode=""></image>
<view class="title">
个人信息
@ -30,12 +30,20 @@
data() {
return {};
},
methods: {},
methods: {
//
gouser(){
uni.navigateTo({
url:'/pages/user/user'
})
},
},
}
</script>
<style lang="scss">
.app {
height: 100vh;
.cards {
.item {
height: 295rpx;

View File

@ -52,7 +52,7 @@
//
goCommodityDetails(item) {
uni.navigateTo({
url: `/pages/CommodityDetails/CommodityDetails?goodsPrice=${item.goodsPrice}&goodsInfoId=${item.goodsInfoId}`
url: `/pages/CommodityDetails/CommodityDetails?goodsPrice=${item.goodsPrice}&goodsInfoId=${item.goodsInfoId}&buySource=${'SHOPPING_MALL'}`
})
},
},
@ -82,6 +82,7 @@
<style lang="scss">
.app {
padding: 0;
.productlist {
width: 100%;
margin: 0 auto;

View File

@ -1,12 +1,16 @@
.app {
font-size: 34rpx;
padding-top: 10rpx;
.addition{
color: #666666;
}
.money {
font-size: 32rpx;
color: #D43953;
margin-left: 90%;
position: absolute;
right:5%;
top:20%;
}
font-size: 36rpx;
padding-top: 10rpx;
.user {
background: #FFFFFF;
width: 94%;
@ -39,7 +43,7 @@
height: 382rpx;
margin: 10rpx auto;
padding: 3%;
font-size: 35rpx;
font-size: 34rpx;
height: 96rpx;
background: #FFFFFF;
border-radius: 20rpx;
@ -52,52 +56,50 @@
}
.priceback {
width: 99%;
height: 40rpx;
background: #FFFFFF;
// margin-top: 10rpx;
// position:fixed;
// bottom:0;
height: 100rpx;
position:absolute;
bottom:0;
padding-bottom: 20rpx;
display: flex;
justify-content: space-around;
.prices {
font-size: 54rpx;
font-size: 48rpx;
color: #D43953;
line-height: 73rpx;
// margin-top: 5%;
line-height: 100rpx;
}
.xiugai {
width: 205rpx;
height: 71rpx;
width: 200rpx;
height: 70rpx;
background: #E1AE3C;
border-radius: 26rpx;
margin-left: 20%;
margin-top: 5%;
line-height: 71rpx;
margin-top: 15rpx;
line-height: 70rpx;
text-align: center;
color: #ffffff;
}
.queren {
width: 227rpx;
height: 71rpx;
width: 200rpx;
height: 70rpx;
background: #4C7BC9;
border-radius: 26rpx;
margin-top: 5%;
line-height: 71rpx;
margin: 15rpx 0 0 15rpx;
line-height: 70rpx;
text-align: center;
color: #ffffff;
}
}
.radio-content {
height: 80rpx;
line-height: 2rpx;
font-size: 34rpx;
padding-top: 20rpx;
.agreement {
font-size: 34rpx;
color: #878987;
margin-left: 14%;
}
}
.radio-right {
margin-left: 66rpx;
.radio-default {
@ -125,48 +127,47 @@
/* 耗材包 */
.Consumablespackage {
width: 94%;
// height: 188rpx;
margin: 10rpx auto;
padding: 3%;
font-size: 35rpx;
height: 188rpx;
font-size: 34rpx;
background: #FFFFFF;
border-radius: 20rpx;
margin-top: 2%;
position: relative;
padding-bottom: 40rpx;
.detail {
width: 301rpx;
height: 31rpx;
line-height: 31rpx;
font-size: 33rpx;
font-size: 32rpx;
color: #666666;
line-height: 31rpx;
margin-left: 20%;
margin: 20rpx 0 0 40rpx;
}
}
/* 套餐 */
.Package {
width: 94%;
// height: 243rpx;
height: 150rpx;
margin: 10rpx auto;
padding: 3%;
font-size: 35rpx;
height: 243rpx;
font-size: 34rpx;
background: #FFFFFF;
border-radius: 20rpx;
margin-top:2%;
position: relative;
.detail {
width: 301rpx;
height: 31rpx;
line-height: 31rpx;
font-size: 33rpx;
font-size: 32rpx;
color: #666666;
line-height: 31rpx;
margin-left: 20%;
position: absolute;
left:10%;
top:60%;
}
}
.message {
width: 94%;
// height: 96rpx;
background: white;
border-radius: 20rpx;
margin: 0 auto;

View File

@ -1,53 +1,54 @@
<template>
<view class="app">
<view class="message">请填写下面的信息</view>
<!-- <view class="message">请填写下面的信息</view> -->
<view class="user">
<view class="item">
<span>姓名</span>
<span>{{personInfo.patientName}}</span>
<span class='addition'>{{personInfo.patientName}}</span>
</view>
<view class="item">
<span>电话</span>
<span>{{personInfo.phone}}</span>
<span class='addition'>{{personInfo.phone}}</span>
</view>
<view class="item">
<span>地址</span>
<span>{{personInfo.address}}</span>
<span class='addition'>{{personInfo.address}}</span>
</view>
<view class="selecttime" @tap='timeshow=true'>
<span>时间</span>
<text v-if="usertime==''" style="color: black;">请选择时间
<image src="../../static/jiantou.png"></image></text>
<text v-else style="color: black;">{{usertime}}</text>
<text v-if="usertime==''" class='addition'>请选择时间
<image src="../../static/jiantou.png"></image>
</text>
<text v-else class='addition'>{{usertime}}</text>
</view>
</view>
<view class="remarks">
服务时长:{{orderlist.serveDurationUnit}}
服务时长:
<span style='padding-left: 30rpx;' class='addition'>{{orderlist.serveDurationUnit}}</span>
</view>
<view class="Package">套餐信息
<text class="money">{{orderlist.nurseItemPrice}}</text>
<text class="detail">
·{{orderlist.nurseItemName}}
·<span style='padding-left: 10rpx;'>{{orderlist.nurseItemName}}</span>
</text>
</view>
<view class="Consumablespackage">耗材包详情
<text class="money">{{orderlist.consumableTotalPrice}}</text>
<text class="detail">
{{orderlist.itemConsumableList}}
</text>
<view class="detail" v-for="(item,index) in orderlist.itemConsumableList">
·<span style='padding-left: 10rpx;'>{{item.consumableDetail}}</span>
</view>
</view>
<view class="remarks">
<span>备注</span>
<input placeholder="">
</view>
<view class="radio-content">
<view class="radio-content" @tap="changeRadio">
<view class="radio-right">
<view class="radio" :class="radio1 == 2 ? 'radio-default':''" @tap="changeRadio2">
<view :class="radio1 == 2 ? 'radio-active':''"></view>
<view class="radio" :class="radio == 2 ? 'radio-default':''">
<view :class="radio == 2 ? 'radio-active':''"></view>
</view>
</view>
<text class="agreement" @tap="changeRadio2">我已阅读并同意</text>
<text class="agreement">我已阅读并同意</text>
<text @tap='maskshow=true;showRegectAgreeButton=false'>用户协议</text>
</view>
<view class="priceback">
@ -66,14 +67,14 @@
submitAppointment
} from '@/api/appointmenttime/appointmenttime.js'
import baseurl from '@/api/baseurl.js'
import upicker from './@/pages/u-picker/u-picker.vue'
import upicker from '../picker/picker.vue'
export default {
components: {
upicker
},
data() {
return {
timeparams: {
timeparams: { //picker
year: true,
month: true,
day: true,
@ -82,93 +83,129 @@
minute: true,
endminute: true,
},
timeshow: false,
maskshow: false,
timeshow: false, //
maskshow: false, //
radio: 1, //
personInfo: [], //
patientId: null,
usertime: '', //
orderlist: {
"patientId": '',
"stationId": 2,
"stationItemId": 2,
"stationItemPriceId": 3,
"serviceAddress": "",
"serviceDate": "",
"serviceStartTime": "",
"serviceEndTime": "",
"nurseItemName": "",
"nurseItemPrice": '',
"serveDurationUnit": "",
"consumableTotalPrice": '',
"totalPrice": '',
"remark": "",
"orderCount": 1,
"orderConsumableList": []
orderCount: 1,
patientId: '',
stationId: '',
stationItemId: '',
stationItemPriceId: '',
serviceAddress: "",
serviceDate: "",
serviceStartTime: "",
serviceEndTime: "",
nurseItemName: "",
nurseItemPrice: '',
serveDurationUnit: "",
consumableTotalPrice: '',
totalPrice: '',
remark: "",
orderConsumableList: []
},
maskshow: false,
userlist: [],
patientId: 46,
phone: '',
patientName: '',
address: '',
usertime: '',
radio1: 1,
stationId: 2,
stationItemId: 2,
stationItemPriceId: 3,
username: "",
personInfo: [],
}
},
onLoad(options) {
console.log(options)
this.getInfo()
this.getPatientInfo()
//id
this.personInfo.patientId = options.patientId
this.orderlist.stationId = options.stationId
this.orderlist.stationItemId = options.stationItemId
this.orderlist.stationItemPriceId = options.stationItemPriceId
if (options.updata) {
this.orderlist = JSON.parse(options.updata)
}
if (options.useritem) {
let useritem = JSON.parse(options.useritem)
this.orderlist.serviceAddress = useritem.address
this.personInfo.patientName = useritem.receiveName
this.personInfo.phone = useritem.receivePhone
this.personInfo.address = useritem.address
console.log(this.personInfo)
} else {
this.userinfo();
}
//
// this.getPatientInfo(options.stationId, options.stationItemId, options.stationItemPriceId)
this.getPatientInfo(options.stationId, options.stationItemId, options.stationItemPriceId)
},
methods: {
//
timeconfirm(e) {
console.log(e)
this.orderlist.serviceDate = e.year + '-' + e.month + '-' + e.day
this.orderlist.serviceStartTime = e.hour + ":" + e.minute
this.orderlist.serviceEndTime = e.endhour + ":" + e.endminute
this.usertime = e.year + '年' + e.month + '月' + e.day + '日' + e.hour + ":" + e.minute + '至' +e.endhour + ":" + e.endminute
console.log(this.orderlist,this.usertime)
userinfo() {
//patientId
var that = this
uni.getStorage({
key: 'patientId',
success: function(res) {
that.patientId = res.data
//
getAppPatientList(that.patientId).then(response => {
// response.data.forEach(e => {
// e.address = e.sysAreaVOList[0].provinceName + e.sysAreaVOList[
// 0].cityName + e.sysAreaVOList[0].regionName + e
// .sysAreaVOList[0].streetName + e.receiveAddress
// })
that.personInfo = response.data[0]
console.log(that.personInfo)
that.orderlist.patientId = response.data[0].patientId
that.orderlist.serviceAddress = response.data[0]
.address
})
}
});
},
getInfo() { //
getAppPatientList(this.patientId).then(res => {
this.personInfo = res.data[0]
console.log("this.personInfo", this.personInfo);
})
},
//
getPatientInfo(stationId, stationItemId, stationItemPriceId) {
getAppStationItemInfo(this.stationId, this.stationItemId, this.stationItemPriceId).then(res => {
console.log(res)
this.orderlist = res.data
//
let that = this;
getAppStationItemInfo(stationId, stationItemId, stationItemPriceId).then(res => {
if (res.code == 200) {
this.orderlist = res.data
}
})
},
//
updata() {
this.orderlist.orderCount = 1;
// console.log(this.orderlist)
submitAppointment(this.orderlist).then(res => {
if (this.radio == 1) {
this.$refs.uToast.show({
title: '请阅读用户协议并同意',
type: 'error',
})
} else {
this.orderlist.orderCount = 1;
submitAppointment(this.orderlist).then(res => {
if (res.code == 500) {
this.$refs.uToast.show({
title: res.msg,
type: 'error',
})
} else if (res.code == 200) {
this.$refs.uToast.show({
title: '预约成功',
type: 'success',
toast: 1500
})
setTimeout(() => {
uni.reLaunch({
url: `/pages/Personal/Personal`
})
}, 1500)
}
})
}
}
)
},
changeRadio2() {
this.radio1 = 2;
// console.log("")
changeRadio() {
if (this.radio == 1) {
this.radio = 2;
} else {
this.radio = 1;
}
},
//
timeconfirm(e) {
this.orderlist.serviceDate = e.year + '-' + e.month + '-' + e.day
this.orderlist.serviceStartTime = e.hour + ":" + e.minute
this.orderlist.serviceEndTime = e.endhour + ":" + e.endminute
this.usertime = e.year + '年' + e.month + '月' + e.day + '日' + e.hour + ":" + e.minute + '至' + e.endhour +
":" + e.endminute
console.log(this.orderlist, this.usertime)
},
}
}
</script>

View File

@ -1,36 +1,46 @@
.app{
padding: 0;
height: 100vh;
}
.header {
display: inline-block;
vertical-align: middle;
font-size: 36rpx;
color: #969394;
margin-left: 9%;
margin-left: 7%;
}
.number {
display: inline-block;
position: absolute;
right: 10%;
right: 8%;
}
.bodys {
height: 590rpx;
height: 480rpx;
background: #4C7BC9;
.addressinfo {
position: relative;
font-size: 36rpx;
font-size: 32rpx;
color: #FFFFFF;
line-height: 65rpx;
top: 25%;
top: 15%;
margin-left: 8%;
.address{
margin-top: 20rpx;
width:92%;
font-size: 28rpx;
line-height: 32rpx;
}
.namephone{
width: 70%;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
.picture {
float: right;
font-size: 32rpx;
line-height: 67rpx;
margin-right: 5%;
margin-top: -5%;
position: absolute;
top:0%;
right:5%;
image {
width: 18rpx;
@ -49,35 +59,38 @@
box-shadow: 0rpx 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
border-radius: 20rpx;
margin: 0 auto;
margin-top: -35%;
margin-top: -25%;
.commodityInfo {
height: 235rpx;
// background-color: red;
border-bottom: 1rpx solid #D8D4D4;
width: 97%;
display: flex;
margin: 0 auto;
position: relative;
image {
width: 174rpx;
height: 174rpx;
margin-top: 34rpx;
margin-left: 45rpx;
margin-top: 30rpx;
margin-left: 30rpx;
}
.infos {
position: absolute;
top:10%;
left: 35%;
width: 60%;
font-size: 36rpx;
.detail {
font-size: 36rpx;
color: #000000;
line-height: 67rpx;
margin-top: 54rpx;
margin-left: 20rpx;
span {
.spangoodsName{
width: 100%;
overflow:hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.spanprice {
color: #969394;
line-height: 67rpx;
margin-left: 50rpx;
}
}
@ -85,7 +98,6 @@
font-size: 33rpx;
color: #969394;
line-height: 67rpx;
margin-left: 20rpx;
}
}
@ -120,13 +132,11 @@
.priceinfo{
margin: 0 auto;
padding-top: 20rpx;
width: 95%;
width: 100%;
}
.freight{
margin: 0 auto;
width: 95%;
width: 100%;
margin-top:10rpx ;
border-top: 1rpx solid #D8D4D4;
@ -142,31 +152,32 @@
position: fixed;
bottom:0;
// margin-top: 50rpx;
padding-left: 3%;
width:100%;
height: 141rpx;
height: 140rpx;
background: #FFFFFF;
box-shadow: 0px 9rpx 31rpx 9rpx rgba(0,0,0,0.03);
.moneys{
display: inline-block;
vertical-align: middle;
height: 141rpx;
height: 140rpx;
font-size: 54rpx;
color: #D43953;
line-height: 141rpx;
position: absolute;
left:3%;
}
.submit{
display: inline-block;
vertical-align: middle;
text-align: center;
width: 226rpx;
height: 71rpx;
line-height: 71rpx;
height: 80rpx;
line-height: 80rpx;
background: #4C7BC9;
border-radius: 26rpx;
font-size: 34rpx;
color: #FFFFFF;
margin-left: 43%;
position: absolute;
right:3%;
top:30rpx;
// float: right;
}
}

View File

@ -2,37 +2,41 @@
<view class="app">
<view class="bodys">
<view class="addressinfo">
<view class="item">
某某,15688888888
<view class="namephone">
{{updata.receiver}},{{updata.phone}}
</view>
<view class="picture">
<span @tap='upaddress()'>修改地址</span>
<image src="../../static/right.png" mode=""></image>
<u-icon name="arrow-right" color="#ffffff" size="32"></u-icon>
</view>
<view class="item">
某某市某某区详细地址
<view class="address">
{{updata.receiveAddress}}
</view>
</view>
</view>
<view class="commodity">
<view class="commodityInfo">
<image src="../../static/spjtcs.png" mode=""></image>
<!-- <image src="../../static/fuwutu.png" mode=""></image> -->
<view class="infos">
<view class="detail">
酒精棉片 200 <span>36.0</span>
<view class="spangoodsName">
{{updata.goodsName}}
</view>
<view class="spanprice"> {{updata.goodsPrice}}</view>
</view>
<view class="model">
型号<span>酒精棉片</span><span>8</span>
型号:<span>{{updata.goodsAttributeName}}</span>
</view>
</view>
</view>
<view class="quantity">
<view class="header">
数量
</view>
<view class="number">
<u-number-box :min="1" :max="999"></u-number-box>
<u-number-box :min="1" :max="updata.goodsStock" v-model="updata.goodsCount" @minus='delnumber'
@plus='addnumber'>
</u-number-box>
</view>
</view>
</view>
@ -50,7 +54,7 @@
商品金额
</view>
<view class="number money">
36.0
{{updata.totalPrice}}
</view>
</view>
<view class="priceinfo">
@ -63,14 +67,13 @@
</view>
<view class="freight">
<view class="number total">
36.0
{{updata.totalPrice}}
</view>
</view>
</view>
<view class="bottom">
<view class="moneys">
36.0
{{updata.totalPrice}}
</view>
<view class="submit" @tap='show=true'>
提交订单
@ -84,32 +87,81 @@
<view class="cencel" @tap="show = false">
<image src="../../static/gb.png" mode=""></image>
</view>
</view>
<view class="chat">
<image src="/static/chat.png" mode=""></image>
<span>微信支付</span>
</view>
<view class="submits" @tap='show=true'>
<span>确认支付</span><span>28</span>
<view class="submits" @tap='buy'>
<span>确认支付</span><span>{{updata.totalPrice}}</span>
</view>
</u-popup>
</view>
<u-toast ref="uToast" />
</view>
</template>
<script>
import baseurl from '@/api/baseurl.js'
import {
addStationGoodsOrder
} from '@/api/confirmOrder/index.js'
import {
goodPatientInfo
} from '@/api/modifyAddress/modifyAddress.js';
export default {
data() {
return {
show: false
show: false,
updata: {},
Patient: {},
}
},
methods: {
buy() {
addStationGoodsOrder(this.updata).then(res => {
console.log(res)
if (res.code == 500) {
this.$refs.uToast.show({
title: res.msg,
type: 'error'
})
}
})
},
delnumber(e) {
this.updata.totalPrice = (e.value * this.updata.goodsPrice).toFixed(2)
},
addnumber(e) {
this.updata.totalPrice = (e.value * this.updata.goodsPrice).toFixed(2)
},
upaddress() {
uni.navigateTo({
url: '/pages/modifyAddress/modifyAddress'
url: `/pages/modifyAddress/modifyAddress?updata=${JSON.stringify(this.updata)}`
})
},
//
goodsList() {
goodPatientInfo(this.updata.patientId).then(res => {
res.data.forEach(e => {
e.address = e.sysAreaVOList[0].provinceName + e.sysAreaVOList[0].cityName + e
.sysAreaVOList[0].regionName + e.sysAreaVOList[0].streetName + e.receiveAddress
})
this.updata.receiver = res.data[0].receiveName
this.updata.receiveAddress = res.data[0].address
this.updata.phone = res.data[0].receivePhone
})
},
},
onLoad(options) {
this.updata = JSON.parse(options.updata)
if (options.useritem) {
let useritem = JSON.parse(options.useritem)
this.updata.receiver = useritem.receiveName
this.updata.phone = useritem.receivePhone
this.updata.receiveAddress = useritem.address
} else {
this.goodsList()
}
}
}

View File

@ -1,7 +1,6 @@
.app {
height: 100%;
padding-bottom: 70rpx;
padding: 30rpx 0 70rpx;
.btn {
width: 217rpx;
height: 68rpx;

View File

@ -1,7 +1,5 @@
<template>
<view class="app">
<view style="height: 20rpx;background-color: #F4F5F7;">
</view>
<view class="items">
<view class="item"
:style="disease.find(e => e.id == item.id)?'background-color: #4C7BC9;color: #ffffff;':''"
@ -78,78 +76,5 @@
</script>
<style lang="scss">
.app {
height: 100%;
padding-bottom: 70rpx;
.btn {
width: 217rpx;
height: 68rpx;
background: #4C7BC9;
border-radius: 26rpx;
font-size: 32rpx;
color: #FFFFFF;
line-height: 68rpx;
margin: 100rpx 0 0 60%;
}
.items {
width: 90%;
margin: 0 auto;
text-align: center;
color: #000000;
.other {
margin: 0 auto;
height: 93rpx;
display: flex;
background-color: #fff;
border-radius: 20rpx;
width: 100%;
box-shadow: 0px 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
margin: 20rpx auto;
line-height: 93rpx;
view {
height: 93rpx;
font-size: 32rpx;
line-height: 93rpx;
}
span {
display: inline-block;
line-height: 93rpx;
height: 93rpx;
width: 30%;
font-size: 32rpx;
}
::v-deep .u-input__input {
height: 93rpx;
font-size: 32rpx;
}
::v-deep .uni-input-wrapper {
height: 93rpx;
line-height: 93rpx;
}
::v-deep .u-input {
width: 70%;
height: 93rpx;
line-height: 93rpx;
}
}
.item {
width: 100%;
height: 93rpx;
background: #ffffff;
box-shadow: 0px 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
border-radius: 20rpx;
margin: 20rpx auto;
line-height: 93rpx;
}
}
}
@import './disease.scss';
</style>

View File

@ -1,7 +1,7 @@
<template>
<view class="app">
<view class="cards">
<view class="nursing item">
<view class="nursing item" @tap="gosite">
<image src="../../static/jjhl.png" mode=""></image>
<view class="title">
护理站
@ -47,6 +47,12 @@
return {};
},
methods: {
//
gosite() {
uni.navigateTo({
url: '/pages/site/site'
})
},
//
goshopping() {
uni.navigateTo({
@ -65,6 +71,8 @@
<style lang="scss">
.app {
height: 100vh;
.cards {
.shopping {
background: #F58540;

View File

@ -1,4 +1,6 @@
.app {
padding:0;
height:100vh;
.service {
width: 90%;
margin: 0 auto;
@ -8,6 +10,7 @@
font-size: 32rpx;
color: #FFFFFF;
width: 100%;
margin-top: 40rpx;
.choices {
background: #4C7BC9;
@ -17,7 +20,7 @@
width: 190rpx;
height: 70rpx;
border-radius: 26rpx;
margin: 30rpx 30rpx 0 0;
margin: 0 20rpx 20rpx 0;
}
.choice {
@ -28,7 +31,7 @@
height: 70rpx;
background: #BFBFBF;
border-radius: 26rpx;
margin: 30rpx 30rpx 0 0;
margin: 0 20rpx 20rpx 0;
}
}
@ -92,50 +95,4 @@
border: 0;
}
}
.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;
}
}
}
}

View File

@ -1,19 +1,5 @@
<template>
<view class="app">
<u-mask :show="usershow" class='mask'>
<view class="information">
<image src="../../static/information.png" mode=""></image>
<view class="title">
请完善个人信息
</view>
<view class="cancel">
取消
</view>
<view class="determine">
去完善
</view>
</view>
</u-mask>
<view class="" style="background-color: #F4F5F7;height: 20rpx;width:100%">
</view>
<view class="userinfo info">
@ -55,7 +41,7 @@
v-for="(item,index) in getNurseTypelist" :key="item.id" @tap="addnurseType(item)">
{{item.nurseTypeName}}
</view>
<view @tap="godisease()" :class="query.diseaseInfoList.length>0?'choices':'choice'"
<view @tap="godisease(item)" :class="query.diseaseInfoList.length>0?'choices':'choice'"
v-for="(item,index) in medicalcarelist" :key="item.id">
{{item.nurseTypeName}}
</view>
@ -77,7 +63,6 @@
export default {
data() {
return {
usershow: false, //
arealist: [], //list
areashow: false, //
getNurseTypelist: [], //
@ -91,6 +76,7 @@
areaCode: "",
nurseTypeIdList: [],
diseaseInfoList: [],
patientId: '',
}
};
},
@ -105,12 +91,11 @@
url: '',
duration: '1500'
})
setInterval(() => {
//TODO
uni.switchTab({
url: '/pages/homepage/homepage',
})
}, 1500);
// setInterval(() => {
// uni.navigateBack({
// delta: 1, //2
// })
// }, 1500);
} else if (res.code == 500) {
this.$refs.uToast.show({
title: res.msg,
@ -168,7 +153,7 @@
this.query.nurseTypeIdList = this.query.nurseTypeIdList.filter(e => e != item.id)
}
},
godisease() {
godisease(item) {
uni.navigateTo({
url: `/pages/disease/disease?diseaseInfoList=${JSON.stringify(this.query.diseaseInfoList)}`
})
@ -176,6 +161,13 @@
},
//
onLoad() {
let that = this
uni.getStorage({
key: 'patientId',
success: function(res) {
that.query.patientId = res.data
}
});
this.areaInfo()
this.getNurseTypeInfo();
},
@ -188,10 +180,13 @@
that.medicalcarelist.forEach(e => {
if (that.query.nurseTypeIdList.findIndex(el => el == e.id) == -1) {
that.query.nurseTypeIdList.push(e.id)
} else {
that.query.nurseTypeIdList = that.query.nurseTypeIdList.filter(ele => ele != e
.id)
}
} else {}
})
} else {
console.log(that.query.nurseTypeIdList)
that.medicalcarelist.forEach(e => {
console.log(e)
that.query.nurseTypeIdList = that.query.nurseTypeIdList.filter(el => el != e.id)
})
}
})

View File

@ -2,7 +2,7 @@
font-family: DengXian;
color: #C3C1C1;
font-weight: 400;
height:100vh;
.switch {
text-align: center;
height: 100rpx;
@ -57,15 +57,7 @@
position: absolute;
left: 10%;
.obtaincode {
text-align: center;
font-size: 37rpx;
color: #4C7BC9;
line-height: 162rpx;
position: absolute;
left: 65%;
top: 0%;
}
::v-deep .u-input__input {
padding-left: 20rpx;

View File

@ -6,26 +6,14 @@
<view class="loginphone">
<input class="phone" type="text" placeholder="手机号码" maxlength="11" v-model="phone" />
</view>
<view class="logincode loginphone" style="top: 40%;" v-if='switchs'>
<view class="logincode loginphone" style="top: 40%;">
<u-input class='code phone' placeholder="密码" maxlength="10" v-model="password" type="password"
:border="true" :password-icon="true" />
</view>
<view class="logincode loginphone" style="top: 40%;" v-else>
<input class="code phone" type="text" placeholder="验证码" maxlength="6" v-model="verification" />
<view class="obtaincode get-code" :style="{'color':getCodeBtnColor}" @click.stop="getCode()">
{{getCodeText}}
</view>
</view>
<view class="loginbtn" @tap='pwdlogin' v-if='switchs'>
<view class="loginbtn" @tap='pwdlogin'>
登录
</view>
<view class="loginbtn" @tap='verificationlogin' v-else>
登录
</view>
<view class="switch" @tap='switchs=!switchs'>
{{switchs?'切换手机验证码登录':'切换密码登录'}}
</view>
<view class="switch" @tap='goregister' style="left:55%" v-if="switchs">
<view class="switch" @tap='goregister' style="left:55%">
没有账号,请先注册
</view>
<u-toast ref="uToast" />
@ -33,72 +21,36 @@
</template>
<script>
import {
appLoginpwd,
appLoginvfn
appLoginpwd
} from '../../api/login/index.js'
export default {
data() {
return {
phone: '13645678913',
password: '123456',
verification: '111111',
getCodeText: '获取验证码', //
getCodeBtnColor: "#4C7BC9", //color
getCodeisWaiting: false, //
switchs: false, //
};
},
//
onLoad(options) {
this.switchs = options.switchs
},
onLoad(options) {},
methods: {
//
verificationlogin() {
appLoginvfn(this.phone, this.verification).then(res => {
console.log(res)
if (res.code == 200) {
if (res.data.registerFlag == false) {
this.$refs.uToast.show({
title: res.data.message,
type: 'success',
url: '',
duration: '1500'
})
setInterval(() => {
//TODO
uni.switchTab({
url: '/pages/homepage/homepage',
})
}, 1500);
} else {
this.$refs.uToast.show({
title: res.data.message,
type: 'error'
})
}
} else {
console.log(res)
this.$refs.uToast.show({
title: res.msg,
type: 'error'
})
}
})
},
//
pwdlogin() {
appLoginpwd(this.phone, this.password).then(res => {
if (res.code == 200) {
if (res.data.registerFlag == false) {
uni.setStorage({
key: 'patientId',
data: res.data.patientId,
success: function() {
console.log('patientId保存成功');
}
});
this.$refs.uToast.show({
title: res.data.message,
type: 'success',
url: '',
duration: '1500'
})
setInterval(() => {
//TODO
setTimeout(() => {
uni.switchTab({
url: '/pages/homepage/homepage',
})
@ -110,7 +62,6 @@
})
}
} else {
console.log(res)
this.$refs.uToast.show({
title: res.msg,
type: 'error'
@ -124,135 +75,14 @@
url: '/pages/register/register'
})
},
//
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)
},
doReg() {
// uni.hideKeyboard() //
// //
// if (!(/^1(3|4|5|6|7|8|9)\d{9}$/.test(this.phoneNumber))) { //
// uni.showToast({
// title: '',
// icon: "none"
// });
// return false;
// }
// //使
// if (this.code != 1234) {
// uni.showToast({
// title: '',
// icon: "none"
// });
// return false;
// }
// uni.showLoading({
// title: '...'
// })
// //使
// setTimeout(() => {
// uni.getStorage({
// key: 'UserList',
// success: (res) => {
// //md5
// res.data.push({
// username: this.phoneNumber,
// passwd: md5(this.passwd)
// })
// uni.setStorage({
// key: 'UserList',
// data: res.data,
// success: function() {
// uni.hideLoading()
// uni.showToast({
// title: '',
// icon: "success"
// });
// setTimeout(function() {
// uni.navigateBack();
// }, 1000)
// }
// });
// },
// fail: (e) => {
// uni.hideLoading()
// console.log('error');
// //UserList
// uni.setStorage({
// key: 'UserList',
// data: [{
// username: this.phoneNumber,
// passwd: md5(this.passwd)
// }],
// success: function() {
// uni.hideLoading()
// uni.showToast({
// title: '',
// icon: "success"
// });
// setTimeout(function() {
// uni.navigateBack();
// }, 1000)
// },
// fail: function(e) {
// console.log('set error:' + JSON.stringify(e));
// }
// });
// }
// });
// }, 1000)
},
toLogin() {
// uni.hideKeyboard() //
// uni.redirectTo({
// url: 'login'
// }); //
// uni.navigateBack(); //
}
},
toLogin() {
// uni.hideKeyboard() //
// uni.redirectTo({
// url: 'login'
// }); //
// uni.navigateBack(); //
}
}
</script>

View File

@ -35,6 +35,7 @@
<style lang="scss">
.app {
height: 100vh;
.cards {
padding: 40rpx 0 500rpx 0;

View File

@ -1,50 +1,50 @@
.app {
background-color: #F4F5F7;
width: 100%;
position: relative;
color: #000000;
background-color: #F4F5F7;
width: 100%;
position: relative;
height: 100vh;
padding: 4%;
height: 100%;
padding-bottom: 100rpx;
.address {
width: 99%;
height: 280rpx;
background: #FFFFFF;
box-shadow: 0rpx 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
border-radius: 20rpx;
margin: 0 auto;
margin-bottom: 20rpx;
margin: 0 auto 20rpx;
padding-bottom: 10rpx;
.item {
width: 90%;
height: 101rpx;
font-size: 36rpx;
color: #000000;
line-height: 101rpx;
line-height: 100rpx;
margin: 0 auto;
}
.detail {
border-bottom: 5rpx solid #F4F5F7;
margin-top: -20rpx;
height:100%;
font-size: 32rpx;
line-height: 50rpx;
padding-bottom: 20rpx;
}
.update {
display: flex;
margin: 18rpx 18rpx 18rpx 432rpx;
margin: 18rpx 18rpx 18rpx 50%;
}
.up {
width: 114rpx;
height: 64rpx;
line-height: 64rpx;
text-align: center;
background: #FFFFFF;
border: 1rpx solid #969394;
border-radius: 26px;
border-radius: 26rpx;
font-size: 31rpx;
color: #969394;
}
@ -113,8 +113,9 @@
.area {
image {
width: 18rpx;
height: 26rpx;
width: 20rpx;
height: 32rpx;
vertical-align:middle;
}
}

View File

@ -2,14 +2,15 @@
<view class="app">
<view class="address" v-for="(item,index) in goodPatient" :key="index">
<view class="addressinfo">
<view class="item">
{{item.receiveName}},{{item.receivePhone}}
<view class="item" @tap='goorder(item)'>
{{item.receiveName}},
{{item.receivePhone}}
</view>
<view class="item detail">
{{item.receiveAddress}}
<view class="item detail" @tap='goorder(item)'>
{{item.address}}
</view>
<view class="update">
<view class="up ups" @tap='updata(item)'>
<view class="up ups" @tap='updataxg(item)'>
修改
</view>
<view class="up" @tap='del(item)'>
@ -24,10 +25,8 @@
添加收货地址
</span>
</view>
<!-- 弹框 -->
<u-popup v-model="show" mode="center" width="80%" height="55%" border-radius="30">
<u-popup v-model="show" mode="center" width="80%" height="50%" border-radius="30">
<view class="payment">
<span>{{shipAddress}}</span>
<view class="cencel" @tap="cencel()">
@ -87,25 +86,43 @@
receivePhone: '',
receiveAddress: '',
areaCode: '',
patientId: 2,
patientId: '',
address: '', //
},
goodPatient: [], //
patientId: 2,
patientId: null,
}
},
onLoad(options) {
let that = this
uni.getStorage({
key: 'patientId',
success: function(res) {
that.patientId = res.data
that.infolist.patientId = res.data
}
});
this.updata = JSON.parse(options.updata)
//
this.goodsList()
this.areaInfo()
},
methods: {
//
goorder(item) {
uni.navigateTo({
url: `/pages/confirmOrder/confirmOrder?updata=${JSON.stringify(this.updata)}&useritem=${JSON.stringify(item)}`
})
},
//
goodsList() {
goodPatientInfo(this.patientId).then(res => {
res.data.forEach(e => {
e.address = e.sysAreaVOList[0].provinceName + e.sysAreaVOList[0].cityName + e
.sysAreaVOList[0].regionName + e.sysAreaVOList[0].streetName + e.receiveAddress
})
this.goodPatient = res.data
console.log(this.goodPatient)
})
},
//
@ -139,14 +156,13 @@
}
},
//
updata(item) {
updataxg(item) {
this.shipAddress = '修改收货地址'
this.isedit = false
nursingStationGoodsinfo(item.id).then(res => {
this.infolist = res.data
getSubordinate(res.data.areaCode).then(res => {
this.infolist.address = res.data.regionName + '-' +res.data.streetName
console.log(this.infolist)
this.infolist.address = res.data.regionName + '-' + res.data.streetName
this.show = true
})
})
@ -158,7 +174,7 @@
receivePhone: '',
receiveAddress: '',
areaCode: '',
patientId: 2,
patientId: this.patientId,
}
this.isedit = true
this.show = true
@ -214,7 +230,6 @@
},
//
areaconfirm(e) {
console.log(e)
this.infolist.areaCode = e[e.length - 1].value
// this.address = e[0].label + '-' + e[1].label
this.infolist.address = e[0].label + '-' + e[1].label

View File

@ -1,16 +1,64 @@
.app {
.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;
}
}
}
.app {
font-size: 36rpx;
padding-top: 10rpx;
padding:10rpx 0 300rpx 0;
.tive {
width: 94%;
background-color: #ffffff;
margin: 0 auto;
margin-top: 3%;
margin-top: 20rpx;
border-radius: 11px;
padding-bottom: 60rpx;
.item {
width: 99%;
height: 184rpx;
width: 100%;
height: 100%;
position: relative;
padding: 30rpx 30rpx;
image {
width: 170rpx;
height: 170rpx;
@ -19,36 +67,50 @@
.servicetime {
color: #999999;
line-height: 37rpx;
margin-left: 35%;
font-size: 30rpx;
position: absolute;
top:35%;
left:35%;
}
.appointment {
width: 125rpx;
height: 71rpx;
width: 120rpx;
height: 70rpx;
background: #4C7BC9;
border-radius: 26rpx;
float: right;
margin-top: -5%;
color: #ffffff;
text-align: center;
line-height: 71rpx;
line-height: 70rpx;
position: absolute;
top:40%;
right:5%;
}
.buy{
position: absolute;
top: 55%;
}
.price {
color: red;
font-size: 32rpx;
margin-top: 3%;
margin-left: 35%;
position: absolute;
top:65%;
left:35%;
}
.product {
margin-top: -26%;
margin-left: 28%;
color: #000000;
width: 60%;
position: absolute;
top:14%;
left:32%;
font-size: 28rpx;
}
.huanyao {
margin-left: 35%;
margin-top: -24%;
color: #000000;
.pingfen {
float: right;
}
position: absolute;
top:10%;
left:35%;
}
.pingfen {
float: right;
}
}
.tab-box {
@ -66,7 +128,7 @@
width: 50%;
position: absolute;
left: 50%;
bottom: 20rpx;
bottom: 10rpx;
border-bottom: 6rpx solid #D43953;
border-radius: 4rpx;
}
@ -77,7 +139,7 @@
position: absolute;
left: 50%;
transform: translateX(-50%) scaleX(1);
bottom: 20rpx;
bottom: 10rpx;
border-bottom: 6rpx solid red;
}
}
@ -86,45 +148,45 @@
}
.Nursestationconfiguration {
width: 94%;
height: 184rpx;
height: 100%;
background: #FFFFFF;
border-radius: 20rpx;
margin: 0 auto;
padding-bottom: 30rpx;
margin: 20rpx auto;
.configuration {
font-size: 31rpx;
color: #333333;
line-height: 12rpx;
padding: 6%;
margin-left: -3%;
margin-top: 3%;
.config {
display: flex;
.measure {
background: #F6F6F6;
border-radius: 33rpx;
text-align: center;
line-height: 50rpx;
// display: inline-block;
margin-left: 10%;
}
padding: 3%;
.text {
margin-top: 32rpx;
display: inline;
padding: 10rpx 20rpx;
margin-right: 28rpx;
line-height: 50rpx;
background-color: #f6f6f6;
border-radius: 34rpx;
font-size: 24rpx;
color: #666666;
}
}
}
.detail {
position: relative;
width: 94%;
height: 443rpx;
height: 100%;
margin: 0 auto;
background: #FFFFFF;
border-radius: 20rpx;
margin-top: 3%;
font-size: 31rpx;
padding: 3%;
padding-bottom: 50rpx;
.textInfo {
font-size: 29rpx;
text-indent: 2rem;
line-height: 42rpx;
color: #666666;
padding-top: 30rpx;
}
.Introduction {
font-size: 31rpx;
@ -154,7 +216,7 @@
font-size: 33rpx;
}
.call {
display: flex;
// display: flex;
.Navigation {
width: 103rpx;
height: 48rpx;
@ -173,7 +235,7 @@
}
}
.callme {
width: 149rpx;
width: 150rpx;
height: 48rpx;
background: #D43953;
border-radius: 24px;
@ -183,6 +245,19 @@
margin-left: 35%;
margin-top: 3%;
text-align: center;
position: relative;
.icon{
position: absolute;
left:10%;
top:50%;
transform: translateY(-50%);
}
.text{
position: absolute;
top:50%;
right:10%;
transform: translateY(-50%);
}
}
}
.address {

View File

@ -2,21 +2,20 @@
<view>
<view class="app">
<view class="righttext">
<image class="picture" src="../../static/mentoutu.png"></image>
<image class="picture" :src="list.stationIntroducePcitureUrl"></image>
<view class="title">
{{list.nurseStationName}}
</view>
<view class="address">{{list.address}} </view>
<view class="call">
<view class="callme" @tap="gophone()">
<u-icon name="phone-fill" color="#ffffff" size="28"></u-icon>
联系我们
<u-icon class='icon' name="phone-fill" color="#ffffff" size="30"></u-icon>
<view class="text">联系我们</view>
</view>
<view class="Navigation">
<!-- <view class="Navigation">
<image src="/static/daohang.png" mode="">导航</image>
</view>
</view> -->
</view>
</view>
<view class="detail">
<view class="Introduction">机构简介</view>
@ -27,11 +26,10 @@
<view class="Nursestationconfiguration">
<view class="configuration">
护理站配置
<view class="config" v-for="(item,index) in nurseStationLabelList" :key="index">
<view class="measure">
<text>{{item.labelDescription}}</text>
<view class="" style="margin-top: 30rpx;">
<view class="text" v-for="(item,index) in nurseStationLabelList" :key="index">
{{item.labelDescription}}
</view>
</view>
</view>
</view>
@ -43,56 +41,64 @@
</view>
</view>
<view class="item" v-for="item in servelist" :key="" v-show='choicetab==false'>
<image src="../../static/fuwutu.png"></image>
<image :src="item.itemPictureUrl"></image>
<view class="huanyao">{{item.nurseItemName}}
<view class="pingfen">
<u-rate :count="5" value="2"></u-rate>
</view>
</view>
<!-- <view class="pingfen">
<u-rate :count="5" value="2"></u-rate>
</view> -->
<view class="servicetime">服务时长:{{item.serveDurationUnit}}</view>
<view class="appointment" @tap='goappointments(item)'>预约</view>
<view class="price">{{item.price}}</view>
</view>
<view class="item" v-show='choicetab' v-for="(item,index) in productlist" :key="index">
<view>
<image src="../../static/fuwutu.png"></image>
</view>
<image :src="item.goodsPictureUrl"></image>
<view class="product">{{item.goodsName}}</view>
<view class="appointment">购买</view>
<view class="buy appointment" @tap="goCommodityDetails(item)">购买</view>
</view>
</view>
</view>
<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 {
introductionList,
itemList,
productInformation,
} from '@/api/nursestation/nursestation.js';
import baseurl from '@/api/baseurl.js'
export default {
data() {
return {
patientId: '',
usershow: false, //
choicetab: false, //
list: [],
servelist: [], //
productlist: [], //
stationid: '', //id
nurseStationId:'',
nurseStationLabelList: [], //
nearbyNursingStationItemList: [],
patientId: 46,
nurseStationId: '',
pageNum: 1,
stationId: 2,
stationItemId: 2,
stationItemPriceId: 3,
pageSize: 10,
tabIndex: 0,
tabList: [{
@ -104,50 +110,74 @@
}
},
onLoad(options) {
console.log(options)
this.list.stationId = options.stationId
this.getInfo(),
this.serveinfo(),
this.productinfo()
this.usershow = false
let that = this
uni.getStorage({
key: 'patientId',
success: function(res) {
that.patientId = res.data
}
});
this.nurseStationId = options.nurseStationId
this.getInfo()
this.serveinfo()
this.productinfo()
},
methods: {
goappointments(item) {
console.log(item)
uni.navigateTo({
url: `/pages/appointmenttime/appointmenttime?stationId=${item.stationId}&stationItemId=${item.stationItemId}&stationItemPriceId=${item.stationItemPriceId}`,
AppIdentification(this.patientId).then(res => {
if (res.data.loginFlag) {
uni.navigateTo({
url: `/pages/appointmenttime/appointmenttime?stationId=${item.stationId}&stationItemId=${item.stationItemId}&stationItemPriceId=${item.stationItemPriceId}`,
})
this.usershow = false
} else {
this.usershow = true
}
})
},
getInfo() {
introductionList(this.nurseStationId).then(res => {
res[0].stationIntroducePcitureUrl = baseurl + res[0].stationIntroducePcitureUrl
this.list = res[0]
console.log(this.list)
if(res[0].nurseStationLabelList){
if (res[0].nurseStationLabelList) {
this.nurseStationLabelList = res[0].nurseStationLabelList
}
// this.nearbyNursingStationItemList = res[0].nearbyNursingStationItemList
// (this.nurseStationLabelList);
})
},
serveinfo() {
itemList(this.nurseStationId, this.pageSize, this.pageNum).then(res => {
res.rows.forEach(e => {
e.itemPictureUrl = baseurl + e.itemPictureUrl
})
this.servelist = res.rows
console.log(this.servelist)
})
},
productinfo() {
productInformation(this.nurseStationId, this.pageNum, this.pageSize).then(res => {
res.rows.forEach(e => {
e.goodsPictureUrl = baseurl + e.goodsPictureUrl
})
this.productlist = res.rows
console.log(this.productlist)
})
},
testTabClick(index) {
console.log(index)
this.tabIndex = index
this.choicetab = !this.choicetab
}
this.choicetab = this.tabIndex
},
//
goCommodityDetails(item) {
uni.navigateTo({
url: `/pages/CommodityDetails/CommodityDetails?goodsPrice=${item.goodsPrice}&goodsInfoId=${item.goodsInfoId}&buySource=${'NURSE_STATION'}`
})
},
//
goinformation() {
uni.navigateTo({
url: '/pages/information/information'
})
},
},
gophone() {
var that = this
uni.getSystemInfo({
@ -180,6 +210,8 @@
}
</script>
<style lang="scss" scoped>
<style lang="scss">
@import './nursestation.scss'
</style>

View File

@ -1,19 +1,97 @@
.app {
font-family: DengXian;
color: #C3C1C1;
font-weight: 400;
height:100vh;
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%;
}
}
.radio-content {
padding-top: 50rpx;
height: 80rpx;
line-height: 11rpx;
font-size: 28rpx;
.agreement {
color: #878987;
margin-left: 25%;
}
.radio-right {
margin-left: 20%;
.radio-default {
border: 2rpx solid #0fbda6;
}
.radio {
width: 30rpx;
height: 30rpx;
border-radius: 70%;
border: 2rpx solid #178ffb;
margin: 6px 25px -20rpx -5rpx;
.radio-active {
width: 16rpx;
height: 16rpx;
border-radius: 50%;
background-color: #178ffb;
margin-left: 26%;
margin-top: 22%;
// margin: 0 auto;
}
}
}
}
.switch {
text-align: center;
line-height: 60rpx;
color: #46ABD7;
position: absolute;
top: 66%;
left: 10%;
top: 70%;
}
.loginbtn {
width: 80%;
width: 70%;
height: 100rpx;
text-align: center;
line-height: 100rpx;
@ -23,58 +101,7 @@
color: #FFFFFF;
position: absolute;
top: 57%;
left: 10%;
left: 15%;
}
.loginphone {
background-color: #fff;
width: 80%;
height: 162rpx;
position: absolute;
left: 10%;
top: 23%;
input {
font-size: 40rpx;
color: #000000;
}
::v-deep .uni-input-placeholder {
padding-left: 40rpx;
font-size: 41rpx;
font-weight: 400;
color: #C3C1C1;
}
.phone {
padding-left: 40rpx;
height: 100%;
box-shadow: 0px 9px 31px 9px rgba(0, 0, 0, 0.03);
}
}
.logincode {
position: absolute;
left: 10%;
::v-deep .u-input__input {
padding-left: 20rpx;
color: #000000;
font-size: 41rpx;
font-weight: 400;
height: 100%;
}
}
.title {
height: 50rpx;
font-size: 52rpx;
font-weight: bold;
color: #000000;
line-height: 44rpx;
position: absolute;
top: 13%;
left: 13%;
}
}

View File

@ -1,19 +1,53 @@
<template>
<view class="app">
<view class="title">
注册账号
<view class="item">
<view class="lefttext">
姓名
</view>
<input class="righttext" type="text" placeholder="请输入" v-model="patientName" />
</view>
<view class="loginphone">
<input class="phone" type="text" placeholder="手机号码" maxlength="11" v-model="phone" />
<view class="item">
<view class="lefttext">
输入密码
</view>
<u-input class='righttext' style='left:30%' placeholder="请输入密码" maxlength="10" v-model="password"
type="password" :border="false" :password-icon="true" />
</view>
<view class="logincode loginphone" style="top: 40%;">
<u-input class='code phone' placeholder="密码" maxlength="10" v-model="password" type="password"
:border="true" :password-icon="true" />
<view class="item">
<view class="lefttext">
重复密码
</view>
<u-input class='righttext' style='left:30%' placeholder="请再次输入密码" maxlength="10" v-model="password"
type="password" :border="false" :password-icon="true" />
</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="radio-content" @tap="changeRadio">
<view class="radio-right">
<view class="radio" :class="radio == 2 ? 'radio-default':''">
<view :class="radio == 2 ? 'radio-active':''"></view>
</view>
</view>
<text class="agreement">我已阅读并同意</text>
<text @tap='maskshow=true;showRegectAgreeButton=false'>用户协议</text>
</view>
<view class="loginbtn" @tap='register'>
立即注册
注册
</view>
<view class="switch" style="left:55%" @tap='gologin'>
<view class="switch" style="right:5%" @tap='gologin'>
已有账号,去登录
</view>
<u-toast ref="uToast" />
@ -26,14 +60,21 @@
export default {
data() {
return {
phone: '13234353453',
password: '123456'
radio: 1, //
patientName: '',
phone: '13645678913',
password: '123456',
verification: '111111',
getCodeText: '获取验证码', //
getCodeBtnColor: "#4C7BC9", //color
getCodeisWaiting: false, //
};
},
methods: {
//
register() {
appRegister(this.phone, this.password).then(res => {
console.log(this.patientName)
appRegister(this.patientName, this.phone, this.password, this.verification).then(res => {
console.log(res)
if (res.code == 200) {
this.$refs.uToast.show({
@ -53,9 +94,135 @@
//
gologin() {
uni.navigateTo({
url: `/pages/login/login?switchs=${true}`
url: `/pages/login/login`
})
},
//
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)
},
doReg() {
// uni.hideKeyboard() //
// //
// if (!(/^1(3|4|5|6|7|8|9)\d{9}$/.test(this.phoneNumber))) { //
// uni.showToast({
// title: '',
// icon: "none"
// });
// return false;
// }
// //使
// if (this.code != 1234) {
// uni.showToast({
// title: '',
// icon: "none"
// });
// return false;
// }
// uni.showLoading({
// title: '...'
// })
// //使
// setTimeout(() => {
// uni.getStorage({
// key: 'UserList',
// success: (res) => {
// //md5
// res.data.push({
// username: this.phoneNumber,
// passwd: md5(this.passwd)
// })
// uni.setStorage({
// key: 'UserList',
// data: res.data,
// success: function() {
// uni.hideLoading()
// uni.showToast({
// title: '',
// icon: "success"
// });
// setTimeout(function() {
// uni.navigateBack();
// }, 1000)
// }
// });
// },
// fail: (e) => {
// uni.hideLoading()
// console.log('error');
// //UserList
// uni.setStorage({
// key: 'UserList',
// data: [{
// username: this.phoneNumber,
// passwd: md5(this.passwd)
// }],
// success: function() {
// uni.hideLoading()
// uni.showToast({
// title: '',
// icon: "success"
// });
// setTimeout(function() {
// uni.navigateBack();
// }, 1000)
// },
// fail: function(e) {
// console.log('set error:' + JSON.stringify(e));
// }
// });
// }
// });
// }, 1000)
},
changeRadio() {
if (this.radio == 1) {
this.radio = 2;
} else {
this.radio = 1;
}
},
},
}
</script>

View File

@ -3,7 +3,7 @@
<view class="cards">
<view class="item" :style="{background:listcolor[index]}" @tap='goProductList(item)'
v-for="(item,index) in goodsCategoryList" :key="index">
<image :src="baseurl+item.goodsCatrgoryPicture" mode=""></image>
<image :src="item.goodsCatrgoryPicture" mode=""></image>
<view class="title" style="font-size:42rpx">
{{item.goodsCategoryName}}
</view>
@ -21,7 +21,6 @@
export default {
data() {
return {
baseurl: '', //url
pageNum: 1, //
pageSize: 10, //
total: 0, //list
@ -30,7 +29,6 @@
};
},
onLoad(options) { //
this.baseurl = baseurl
this.goodsCategory()
},
methods: {
@ -45,6 +43,7 @@
goodsCategory() {
goodsCategoryList(this.pageSize, this.pageNum).then(res => {
res.rows.forEach(e => {
e.goodsCatrgoryPicture = baseurl + e.goodsCatrgoryPicture
this.goodsCategoryList.push(e)
})
this.total = res.total
@ -58,9 +57,11 @@
}
},
onPullDownRefresh() { //
// console.log('refresh');
this.pageNum = 1;
goodsCategoryList(this.pageSize, this.pageNum).then(res => {
res.rows.forEach(e => {
e.goodsCatrgoryPicture = baseurl + e.goodsCatrgoryPicture
})
this.goodsCategoryList = res.rows
this.total = res.total
})

View File

@ -1,11 +1,23 @@
//护理站列表
.app{
padding: 0;
.map{
padding-top: 100rpx;
z-index: 1;
.map{
z-index: 1;
}
}
}
.conNew {
width: 96%;
z-index: 999;
position: absolute;
top: 400rpx;
left: 2%;
// z-index: 999;
// position: fixed;
// top: 450rpx;
margin: 0 auto;
// left: 2%;
height: 100%;
.addressContent {
width: 100%;
}
@ -28,7 +40,7 @@
.distance {
position: absolute;
top: 40%;
font-size: 14rpx;
font-size: 28rpx;
margin-left: 35%;
color: #666666;
}
@ -36,7 +48,6 @@
.background {
width: 180rpx;
height: 180rpx;
background-color: #4C7BC9;
position: absolute;
top: 12%;
left: 7%;
@ -60,10 +71,9 @@
.background image {
width: 99rpx;
height: 99rpx;
// margin: 0 auto;
text-align: center;
margin-top: 5%;
margin-left: 20%;
display: block;
margin: 10% auto;
}
.understand {
@ -82,7 +92,7 @@
}
.masks {
height: 100%;
height: 100vh;
width: 100%;
position: absolute;
opacity: 0.9;
@ -95,6 +105,7 @@
background-color: #fff;
margin: 47% auto;
border-radius: 30rpx;
z-index: 999;
padding: 3%;
.picture {
@ -151,7 +162,7 @@
.nursetation {
width: 80%;
position: absolute;
top: 20px;
top: 5px;
left: 10%;
float: left;
border: 1px solid #f0f0f0;

View File

@ -1,47 +1,37 @@
<template>
<view class="app">
<view class="nursetation" @tap='detailed()'>
<text class="what">什么是护理站</text>
<u-icon class="icon" name="arrow-right"></u-icon>
</view>
<view class="map">
<map style="width:100%; height:40vh;" scale="17" :latitude="latitude" :longitude="longitude"
<view class="map" style="height:35vh;">
<map style="width:100%; height:100%" scale="17" :latitude="latitude" :longitude="longitude"
:markers="markers"></map>
</view>
<view class="conNew">
<view class="addressContent" v-for="(item,index) in nursestationlist" :key="index">
<view class="lists">
<view class="nurse">{{item.nurseStationName}}</view>
<view class="distance">距离您{{item.distance}}</view>
<view class="background">
<image src="/static/logo.png" mode=""></image>
<text class="qyttext">泉医通</text>
<text class="lianmeng">济卫护理联盟NO.1</text>
</view>
<image class="background" :src="item.stationPictureUrl" mode=""></image>
<view class="understand" @tap='godetails(item)'>
点击了解
</view>
</view>
</view>
</view>
<view class="masks" style="" v-if="mask">
<view class="mask">
<view class="picture">
<image src="../../static/locatinsmall.png"></image>
</view>
<view class="text">
请打开系统定位
</view>
<view class="btns">
<view class="bt" @tap='cancel()'>取消</view>
<view class="btn" @tap='getsite()'>确定</view>
<view class="btn" @tap='getlocation()'>确定</view>
</view>
</view>
</view>
</view>
@ -55,59 +45,69 @@
data() {
return {
nursestationlist: [],
mask: true,
mask: false,
pageNum: 1,
pageSize: 10,
total: 0,
//map
id: 0, // 使 marker id
latitude: 39.909,
longitude: 116.39742,
// latitude: 39.909,
// longitude: 116.39742,
latitude: 36.649372,
longitude: 116.977102,
markers: [],
covers: []
covers: [],
}
},
onReachBottom() {
this.pageNum++;
if (this.nurseTypeCode != undefined) {
nearbyList(this.pageSize, this.pageNum, this.longitude, this.latitude, this.nurseTypeCode, this.iptVal)
.then(res => {
if (res.total == this.nursestationlist.length) {
} else {
res.rows.forEach(e => {
this.nursestationlist.push(e)
})
}
})
} else {
uni.request({
url: baseurl +
`/nurseApplet/nearbyNursingStation/nearbyList?pageSize=${this.pageSize}&pageNum=${this.pageNum}&homeLongitude=${this.longitude}&homeLatitude=${this.latitude}&nurseStationName=${this.iptVal}`, //
success: (res) => {
if (res.data.total == this.nursestationlist.length) {} else {
res.data.rows.forEach(e => {
this.nursestationlist.push(e)
})
}
console.log(this.nearbylist)
}
});
}
},
watch: {
iptVal() {
// this.requestinfo()
},
},
onShow() {},
onLoad() {
var that = this
this.requestinfo()
},
methods: {
getlocation() {
uni.getLocation({
type: 'gcj02',
success: res => {
console.log(res)
this.latitude = res.latitude
this.longitude = res.longitude
this.requestinfo();
},
fail: error => {
console.log("获取定位失败了", error)
uni.showModal({
title: '提示',
content: '获取定位失败,是否授权打开定位',
success: (res) => {
if (res.confirm) {
uni.getSystemInfo({
success: (sys) => {
if (sys.platform == 'ios') {
plus.runtime.openURL(
"app-settings://");
} else {
var main = plus.android
.runtimeMainActivity();
var Intent = plus.android.importClass(
"android.content.Intent");
//=> android.settings.APPLICATION_SETTINGS
var mIntent = new Intent(
'android.settings.LOCATION_SOURCE_SETTINGS'
);
main.startActivity(mIntent);
}
}
})
}
}
})
}
});
},
requestinfo() {
nearbyList(this.pageSize, this.pageNum, this.longitude, this.latitude, this.nurseTypeCode, ).then(res => {
res.rows.forEach(e => {
e.stationPictureUrl = baseurl + e.stationPictureUrl
})
this.nursestationlist = res.rows
this.mask = false
this.total = res.total
// console.log(this.nursestationlist)
})
},
@ -126,9 +126,29 @@
this.mask = false
},
},
onReachBottom() {
if (this.nursestationlist.length >= this.total) {} else {
this.pageNum++;
nearbyList(this.pageSize, this.pageNum, this.longitude, this.latitude, this.nurseTypeCode, this.iptVal)
.then(res => {
res.rows.forEach(e => {
e.stationPictureUrl = baseurl + e.stationPictureUrl
this.nursestationlist.push(e)
})
})
}
},
watch: {
iptVal() {
// this.requestinfo()
},
},
onShow() {},
onLoad() {
this.requestinfo()
},
}
</script>
<style lang="scss">
@import './site.scss'
@import './site.scss'
</style>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB