master
271556543@qq.com 3 years ago
parent 9d1a68b05f
commit f88cdec345

@ -86,15 +86,16 @@
&::after {
content: '';
width: 24rpx;
height: 24rpx;
width: 16rpx;
height: 16rpx;
border: 2rpx solid #2EC28B;
box-sizing: border-box;
border-radius: 100%;
animation: icon-scale 3s linear infinite;
position: absolute;
top: -10rpx;
left: -10rpx;
top: -2rpx;
left: -2rpx;
}
@keyframes icon-scale {
@ -103,7 +104,7 @@
30%,
100%,
40% {
transform: scale(0.7, 0.7);
transform: scale(1.5, 1.5);
}
70% {

@ -1,77 +1,77 @@
{
"name" : "uni",
"appid" : "__UNI__3136F4B",
"description" : "",
"versionName" : "1.0.0",
"versionCode" : "100",
"transformPx" : false,
/* 5+App */
"app-plus" : {
"usingComponents" : true,
"nvueStyleCompiler" : "uni-app",
"compilerVersion" : 3,
"splashscreen" : {
"alwaysShowBeforeRender" : true,
"waiting" : true,
"autoclose" : true,
"delay" : 0
},
/* */
"modules" : {},
/* */
"distribute" : {
/* android */
"android" : {
"permissions" : [
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
]
},
/* ios */
"ios" : {},
/* SDK */
"sdkConfigs" : {}
}
},
/* */
"quickapp" : {},
/* */
"mp-weixin" : {
"appid" : "wx2129de75c4937c40",
"setting" : {
"urlCheck" : false
},
"usingComponents" : true,
"permission" : {
"scope.userLocation" : {
"desc" : "获取位置"
}
}
},
"mp-alipay" : {
"usingComponents" : true
},
"mp-baidu" : {
"usingComponents" : true
},
"mp-toutiao" : {
"usingComponents" : true
},
"uniStatistics" : {
"enable" : false
},
"vueVersion" : "2"
"name": "uni",
"appid": "__UNI__3136F4B",
"description": "",
"versionName": "1.0.0",
"versionCode": "100",
"transformPx": false,
/* 5+App */
"app-plus": {
"usingComponents": true,
"nvueStyleCompiler": "uni-app",
"compilerVersion": 3,
"splashscreen": {
"alwaysShowBeforeRender": true,
"waiting": true,
"autoclose": true,
"delay": 0
},
/* */
"modules": {},
/* */
"distribute": {
/* android */
"android": {
"permissions": [
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
]
},
/* ios */
"ios": {},
/* SDK */
"sdkConfigs": {}
}
},
/* */
"quickapp": {},
/* */
"mp-weixin": {
"appid": "wx958ba927f572e88f",
"setting": {
"urlCheck": false
},
"usingComponents": true,
"permission": {
"scope.userLocation": {
"desc": "获取位置"
}
}
},
"mp-alipay": {
"usingComponents": true
},
"mp-baidu": {
"usingComponents": true
},
"mp-toutiao": {
"usingComponents": true
},
"uniStatistics": {
"enable": false
},
"vueVersion": "2"
}

@ -57,6 +57,13 @@
"style": {
"navigationStyle": "custom"
}
},
{
"path": "uview-ui/components/u-avatar-cropper/u-avatar-cropper",
"style": {
"navigationBarTitleText": "头像裁剪",
"navigationBarBackgroundColor": "#000000"
}
}
],
"subPackages": [{

@ -19,10 +19,18 @@
</view>
</view>
<view class="right">
<template v-if="detail.status === 0">
<view class="icon1"></view>
<view>待护理</view>
</template>
<template v-if="detail.status === 1">
<view class="icon3"></view>
<view>进行中</view>
</template>
<template v-if="detail.status === 2">
<view class="icon2"></view>
<view>已完成</view>
</template>
</view>
</view>
@ -35,7 +43,7 @@
</view>
<view class="address">
<u-icon name="map" width="28" height="28" color="#1479FF"></u-icon>
<view>通园路666号地图通园路66号</view>
<view>{{ addressFormat(detail.customer.customer_address) }}</view>
</view>
<view class="phone">
<u-icon name="phone" width="28" height="28" color="#1479FF"></u-icon>
@ -60,7 +68,7 @@
<view class="content-item" v-for="(item,index) in detail.product.product_skus" :key='item.id'>
<view class="checkbox">
<u-checkbox v-model="form[index].isSelect" shape="circle"></u-checkbox>
<view>{{item.sku_id}}</view>
<view>{{item.sku.name}}</view>
</view>
<view class="input">
<u-input v-model="form[index].time" :custom-style="inputStyle" placeholder="请输入"
@ -75,11 +83,11 @@
<!-- 打卡 -->
<view class="clock">
<view class="btn">
<view class="btn" :class="{'btn-active':isClick && type === 1}" @click="punch">
<view class="text1">过程打卡</view>
<view class="text2">1</view>
</view>
<view class="btn" @click="locate">
<view class="btn" :class="{'btn-active':isClick && type === 2}" @click="locate">
<view class="text1">更新定位</view>
<view class="text2">{{$u.timeFormat(time,'hh:MM:ss')}}</view>
</view>
@ -99,6 +107,8 @@
export default {
data() {
return {
isClick: false,
type: '',
qqmapsdk: null,
inputStyle: {
fontSize: "24rpx",
@ -106,6 +116,12 @@
width: "140rpx",
background: "#F9F9F9"
},
btnStyle: {
width: '100rpx',
height: '100rpx',
borderRadius: '100%',
background: 'blue'
},
form: [],
detail: {},
time: new Date(),
@ -132,30 +148,80 @@
this.form = res.product.product_skus.map(item => {
return {
isSelect: false,
sku_id: item.id,
time: ''
}
})
},
save(type) {
this.$u.api.nurseSave({
id: this.detail.id,
sku_time_list: this.form.filter(item => {
return item.isSelect
}),
logs: [{
lat: this.location.lat,
lng: this.location.lng,
address: this.location.address,
type
}]
}).then(res => {
if (type === 1) {
uni.showToast({
icon: 'success',
title: '打卡成功'
})
}
if (type === 2) {
uni.showToast({
icon: 'success',
title: '更新定位成功'
})
}
})
},
punch() {
this.$u.throttle(() => {
this.type = 1
this.isClick = true
this.save(1)
setTimeout(() => {
this.isClick = false
}, 10000)
}, 10000)
},
//
locate() {
this.$u.throttle(() => {
this.type = 2
this.isClick = true
setTimeout(() => {
this.isClick = false
}, 10000)
uni.getLocation().then(res => {
this.location.lat = res[1]?.latitude
this.location.lng = res[1]?.longitude
this.location.time = this.time
this.qqmapsdk.reverseGeocoder({
location: {
latitude: this.location.lat,
longitude: this.location.lng
},
success: (r) => {
this.location.address = r.result.address
}
new Promise((reject, resolve) => {
this.qqmapsdk.reverseGeocoder({
location: {
latitude: this.location.lat,
longitude: this.location.lng
},
success: (r) => {
reject(r)
}
})
}).then(res => {
this.location.address = res.result.address
this.save(2)
})
})
}, 5000)
}, 10000)
},
},
computed: {
@ -163,6 +229,13 @@
return function(birth) {
return new Date().getFullYear() - new Date(birth).getFullYear()
}
},
addressFormat() {
return function(addresses) {
return addresses.filter(item => {
item.default === 1
})[0]?.address || addresses[0]?.address || '无'
}
}
},
onLoad(option) {
@ -182,64 +255,6 @@
display: inline !important;
}
//
.icon1 {
width: 16rpx;
height: 16rpx;
background: #FDB030;
border-radius: 100%;
margin-right: 14rpx;
}
//
.icon2 {
width: 16rpx;
height: 16rpx;
background: #1173FF;
border-radius: 100%;
margin-right: 14rpx;
}
//
.icon3 {
width: 12rpx;
height: 12rpx;
background: #2EC28B;
border-radius: 100%;
margin-right: 14rpx;
position: relative;
&::after {
content: '';
width: 24rpx;
height: 24rpx;
border: 2rpx solid #2EC28B;
border-radius: 100%;
animation: icon-scale 3s linear infinite;
position: absolute;
top: -8rpx;
left: -8rpx;
}
@keyframes icon-scale {
0%,
30%,
100%,
40% {
transform: scale(0.7, 0.7);
}
70% {
transform: scale(1, 1);
}
}
}
.user-info {
width: 710rpx;
background: #FFFFFF;
@ -508,6 +523,33 @@
.text2 {
@extend .text-class;
}
&-active {
&::after {
content: '';
width: 80rpx;
height: 80rpx;
background: rgba(180, 180, 180, 0.5);
border-radius: 100%;
animation: ripper 270ms linear forwards;
position: absolute;
top: calc(50% - 40rpx);
left: calc(50% - 40rpx);
}
@keyframes ripper {
from {
opacity: 0.8;
}
to {
opacity: 0.1;
transform: scale(2.6, 2.6);
}
}
}
}
}

@ -129,7 +129,7 @@
</view>
<scroll-view :scroll-y="true" style="height: 320rpx;">
<view class="info-list">
<view class="info-list" v-if="infoList && infoList.length > 0">
<view v-for="(item,index) in infoList" :key="index" class="info-item">
<view class="info-icon">
<u-image src="/static/home/chat.png" height="40" width="40"></u-image>
@ -144,6 +144,10 @@
</view>
</view>
</view>
<view v-else class="no-data">
<u-empty></u-empty>
</view>
</scroll-view>
</view>
</view>
@ -176,15 +180,7 @@
value: 136,
type: 1
}],
infoList: [{
title: "学习护理让老年人活动康复的训练",
time: "2022-06-26 12:23:45"
},
{
title: "学习护理让老年人活动康复的训练",
time: "2022-06-26 12:23:45"
}
]
infoList: []
}
},
methods: {
@ -202,6 +198,10 @@
async getStatistic() {
let res = await this.$u.api.statistic()
console.log(res);
},
async getRemind() {
let res = await this.$u.api.noticeList()
this.infoList = res.data
}
},
computed: {
@ -209,6 +209,7 @@
},
onShow() {
this.getStatistic()
this.getRemind()
}
}
</script>
@ -636,5 +637,12 @@
}
}
}
.no-data {
transform: translate(-50%, -50%);
position: absolute;
top: 50%;
left: 50%;
}
}
</style>

@ -15,10 +15,12 @@
<!-- 下拉菜单 -->
<view class="drop-down">
<u-dropdown @open="calendarShow" @close="calendarHide">
<u-dropdown-item v-model="select.status" title="状态" :options="optionsStatus" @change='getList()'>
<u-dropdown @open="calendarShow" @close="calendarHide" ref="dropdown">
<u-dropdown-item v-model="select.status" :title="statusComputed(select.status)"
:options="optionsStatus" @change='nursingList = [],getList()'>
</u-dropdown-item>
<u-dropdown-item v-model="select.sex" title="性别" :options="optionsSex" @change="getList()">
<u-dropdown-item v-model="select.sex" :title="select.sex || '全部'" :options="optionsSex"
@change="nursingList = [],getList()">
</u-dropdown-item>
<u-dropdown-item title="时间">
</u-dropdown-item>
@ -76,7 +78,7 @@
</view>
<view class="distance-text">{{item.distance}}公里</view>
</view>
<view class="to-there">
<view class="to-there" @click="toThere(item)">
<view class="to-there-text">去那里</view>
<view class="to-there-icon">
<u-image src="/static/todayNursing/to-there.png" height="46" width="46"></u-image>
@ -95,7 +97,9 @@
<u-loadmore :status="status" :load-text='loadText' @loadmore='select.page++,getList()' />
<u-calendar v-model="isShowCalendar" @change='datePick'></u-calendar>
<u-calendar v-model="isShowCalendar" mode="range" @change='datePick'>
</u-calendar>
</view>
</template>
@ -110,8 +114,12 @@
fontWeight: "500"
},
optionsStatus: [{
label: '全部',
value: ''
},
{
label: '待护理',
value: 0,
value: '0',
},
{
label: '护理中',
@ -121,15 +129,21 @@
label: '已护理',
value: 2,
},
],
optionsSex: [{
label: '全部',
value: ''
},
{
label: '男',
value: '男',
},
{
label: '女',
value: '女',
}
},
],
status: 'loadmore',
loadText: {
@ -144,10 +158,11 @@
page_size: 10,
page: 1,
sex: '',
date: '',
status: '',
lat: '',
lng: ''
lng: '',
start_time: '',
end_time: '',
},
}
},
@ -161,24 +176,57 @@
this.isShowCalendar = false
},
datePick(e) {
this.select.date = e.result
console.log(e);
this.select.start_time = e.startDate
this.select.end_time = `${e.endDate} 23:59:59`
this.$refs['dropdown'].close()
this.nursingList = []
this.getList()
},
async getList() {
let res = await this.$u.api.nurseList(this.select)
if (res.data.length > 0 && res.data) {
this.nursingList.push(...res.data)
this.status = 'loadmore'
} else {
this.status = 'nomore'
this.select.page--
}
this.$u.throttle(async () => {
let res = await this.$u.api.nurseList(this.select)
if (res.data.length > 0 && res.data) {
this.nursingList.push(...res.data)
this.status = 'loadmore'
} else {
this.status = 'nomore'
if (this.select.page > 1) {
this.select.page--
}
}
})
},
toThere(item) {
this.$u.throttle(() => {
uni.openLocation({
latitude: Number(item.customer.lat),
longitude: Number(item.customer.lng),
name: item.customer.address
})
})
}
},
computed: {
statusComputed() {
return function(status) {
switch (status) {
case '0':
return "待护理"
break;
case 1:
return "护理中"
break;
case 2:
return "已护理"
break;
default:
return '全部'
}
}
}
},
onShow() {
uni.getLocation().then(res => {
@ -191,6 +239,7 @@
onReachBottom() {
this.select.page++
this.status = 'loading';
this.getList()
}
}
</script>

@ -4,16 +4,24 @@
<map id="map" :latitude="location.latitude" :longitude="location.longitude" @markertap="markertap"></map>
<u-popup v-model="isShowPopup" mode="bottom" :mask="false" height="294rpx" :border-radius="40">
<u-popup v-model="isShowPopup" mode="bottom" :mask="false" height="auto" :border-radius="40">
<view class="top">
<view class="left">
<view class="name">{{selectMarker.info.customer.name}}</view>
<view class="sex">{{selectMarker.info.customer.sex}}</view>
</view>
<view class="right">
<view class="right" v-if="selectMarker.info.status === 1">
<view class="icon icon3"></view>
<view class="text">进行中</view>
</view>
<view class="right" v-if="selectMarker.info.status === 0">
<view class="icon icon1"></view>
<view class="text">待护理</view>
</view>
<view class="right" v-else>
<view class="icon icon2"></view>
<view class="text">已完成</view>
</view>
</view>
<view class="center">
@ -65,6 +73,7 @@
[2, '/static/map/done.png'],
]),
isShowPopup: false,
popHeight: '294rpx',
selectMarker: null,
}
},
@ -187,7 +196,6 @@
computed: {
},
async onReady() {
await this.getNowLocation()
@ -270,8 +278,7 @@
.center {
padding-left: 40rpx;
padding-top: 18rpx;
padding: 18rpx 0 20rpx 40rpx;
.tel {
height: 40rpx;
@ -289,12 +296,10 @@
}
.address {
height: 40rpx;
font-size: 28rpx;
font-family: PingFang-SC-Medium, PingFang-SC;
font-weight: 500;
color: #36596A;
line-height: 40rpx;
display: flex;
margin-top: 8rpx;
@ -311,7 +316,7 @@
justify-content: space-between;
align-items: center;
margin-top: 20rpx;
padding-bottom: 20rpx;
.distance {
align-items: center;

@ -115,7 +115,7 @@
export default {
data() {
return {
testDay: [{
statusDay: [{
date: 1,
status: 2
},
@ -166,18 +166,15 @@
page: 1,
date: '',
lat: '',
lng: ''
lng: '',
sex: '',
status: '',
lng: '',
lat: ''
}
}
},
methods: {
//
dateIn(date) {
let res = this.testDay.filter(item => {
return item.date === date
})
return res[0] ? res[0].status : false
},
monthPlus() {
this.$u.throttle(() => {
if (this.select.month < 12) {
@ -295,6 +292,21 @@
})
})
},
getCalendarStatus() {
this.$u.api.nurseList({
start_time: `${this.select.year}-${this.select.month.toString().padStart(2,'0')}-01`,
end_time: `${this.select.year}-${this.select.month.toString().padStart(2,'0')}-${31} 23:59:59`,
page_size: 999,
page: 1,
}).then(res => {
this.statusDay = res.data.map(item => {
return {
date: new Date(item.date).getDate(),
status: item.status
}
})
})
}
},
computed: {
getDay() {
@ -323,6 +335,15 @@
}
}
},
//
dateIn() {
return function(date) {
let res = this.statusDay.filter(item => {
return item.date === date
})
return res[0] ? res[0].status : false
}
},
},
watch: {
select: {
@ -331,6 +352,7 @@
this.selector.date = `${this.select.year}-${this.select.month}-${this.select.date}`
this.getList()
this.getCalendarStatus()
},
immediate: true,
deep: true

@ -1,207 +1,248 @@
<template>
<view>
<cpn-navbar title="设置" :isBack="true"></cpn-navbar>
<view>
<!-- 个人信息 -->
<view class="user-info">
<view class="user-info-title">个人信息</view>
<view class="user-info-content">
<view class="head-img">
<view class="text">头像</view>
<view style="display: flex">
<view class="avatar">
<u-image
:src="vuex_user.avatar || '/static/logo.png'"
height="104"
width="104"
shape="circle"
></u-image>
</view>
<view class="arrow">
<u-icon name="arrow-right" size="24"></u-icon>
</view>
</view>
</view>
<view class="line"></view>
<view class="name">
<view class="name-text">账户名</view>
<view class="name-user">{{ vuex_user.name || "" }}</view>
</view>
</view>
</view>
<!-- 版本信息 -->
<view class="sys-info">
<view class="sys-info-title">版本信息</view>
<view class="sys-info-content">
<view>当前版本</view>
<view>V{{ vuex_version }}</view>
</view>
</view>
<view class="logout">
<u-button :hair-line="false" :custom-style="btnStyle" @click="logout"
>退出登录</u-button
>
</view>
</view>
</view>
<view>
<cpn-navbar title="设置" :isBack="true"></cpn-navbar>
<view>
<!-- 个人信息 -->
<view class="user-info">
<view class="user-info-title">个人信息</view>
<view class="user-info-content">
<view class="head-img">
<view class="text">头像</view>
<view style="display: flex">
<view class="avatar">
<u-image :src="vuex_user.avatar || '/static/logo.png'" height="104" width="104"
shape="circle"></u-image>
</view>
<view class="arrow" @click="chooseAvatar">
<u-icon name="arrow-right" size="24"></u-icon>
</view>
</view>
</view>
<view class="line"></view>
<view class="name">
<view class="name-text">账户名</view>
<view class="name-user">{{ vuex_user.name || "" }}</view>
</view>
</view>
</view>
<!-- 版本信息 -->
<view class="sys-info">
<view class="sys-info-title">版本信息</view>
<view class="sys-info-content">
<view>当前版本</view>
<view>V{{ vuex_version }}</view>
</view>
</view>
<view class="logout">
<u-button :hair-line="false" :custom-style="btnStyle" @click="logout">退</u-button>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
btnStyle: {
width: "670rpx",
height: "76rpx",
color: "#1479FF",
border: "2rpx solid #1479FF",
},
};
},
methods: {
logout() {
this.$u.api.logout().then((res) => {
uni.showToast({
title: res.msg,
icon: 'none'
export default {
data() {
return {
btnStyle: {
width: "670rpx",
height: "76rpx",
color: "#1479FF",
border: "2rpx solid #1479FF",
},
};
},
methods: {
logout() {
this.$u.api.logout().then((res) => {
uni.showToast({
title: res.msg,
icon: 'none'
})
setTimeout(() => {
uni.navigateTo({
url: "/pages/login/login",
fail: (err) => {
console.log(err);
},
});
uni.clearStorageSync();
}, 1500)
});
},
chooseAvatar() {
// uView"-JS"uniuni.navigateTo
this.$u.route({
// ""
url: '/uview-ui/components/u-avatar-cropper/u-avatar-cropper',
//
params: {
// px
destWidth: 300,
// px
rectWidth: 200,
// 'png'"jpg"
fileType: 'jpg',
}
})
setTimeout(()=>{
uni.navigateTo({
url: "/pages/login/login",
fail: (err) => {
console.log(err);
},
});
uni.clearStorageSync();
},1500)
});
},
},
computed: {},
};
},
},
computed: {
},
created() {
//
uni.$on('uAvatarCropper', path => {
this.avatar = path;
//
uni.uploadFile({
url: 'http://sstt.ali251.langye.net/api/nurse/upload-file',
header: {
Authorization: `Bearer ${this.vuex_token}`
},
filePath: path,
name: 'file',
complete: (res) => {
this.$u.api.save({
avatar: JSON.parse(res.data).id
}).then(() => {
uni.showToast({
icon: "none",
title: '更换头像成功'
})
this.$store.dispatch('me')
})
}
});
})
},
};
</script>
<style scoped lang="scss">
.user-info {
margin-top: 28rpx;
&-title {
height: 40rpx;
font-size: 28rpx;
font-family: PingFang-SC-Medium, PingFang-SC;
font-weight: 500;
color: #abaebe;
line-height: 40rpx;
padding-left: 40rpx;
}
&-content {
width: 750rpx;
background: #ffffff;
box-shadow: 0rpx 4rpx 10rpx 0rpx rgba(219, 218, 218, 0.5);
margin: 26rpx auto 0 auto;
.head-img {
display: flex;
justify-content: space-between;
align-items: center;
& > view > view {
align-self: center;
}
.text {
font-size: 32rpx;
font-family: PingFang-SC-Medium, PingFang-SC;
font-weight: 500;
color: #333333;
padding-left: 40rpx;
}
.avatar {
padding: 18rpx 0rpx;
}
.arrow {
padding: 0 50rpx 0 40rpx;
}
}
.line {
width: 670rpx;
height: 2rpx;
border: 2rpx solid #eeeff5;
margin: 0 auto;
}
.name {
display: flex;
align-items: center;
justify-content: space-between;
padding: 20rpx 40rpx;
&-text {
font-size: 32rpx;
font-family: PingFang-SC-Medium, PingFang-SC;
font-weight: 500;
color: #333333;
}
&-user {
font-size: 32rpx;
font-family: PingFang-SC-Medium, PingFang-SC;
font-weight: 500;
color: #333333;
}
}
}
}
.sys-info {
margin-top: 34rpx;
&-title {
font-size: 28rpx;
font-family: PingFang-SC-Medium, PingFang-SC;
font-weight: 500;
color: #abaebe;
padding: 0 0 26rpx 36rpx;
}
&-content {
background: #ffffff;
box-shadow: 0rpx 4rpx 10rpx 0rpx rgba(219, 218, 218, 0.5);
display: flex;
justify-content: space-between;
align-items: center;
padding: 22rpx 40rpx;
& > view {
font-size: 32rpx;
font-family: PingFang-SC-Medium, PingFang-SC;
font-weight: 500;
color: #333333;
}
}
}
.logout {
margin-top: 40rpx;
}
.user-info {
margin-top: 28rpx;
&-title {
height: 40rpx;
font-size: 28rpx;
font-family: PingFang-SC-Medium, PingFang-SC;
font-weight: 500;
color: #abaebe;
line-height: 40rpx;
padding-left: 40rpx;
}
&-content {
width: 750rpx;
background: #ffffff;
box-shadow: 0rpx 4rpx 10rpx 0rpx rgba(219, 218, 218, 0.5);
margin: 26rpx auto 0 auto;
.head-img {
display: flex;
justify-content: space-between;
align-items: center;
&>view>view {
align-self: center;
}
.text {
font-size: 32rpx;
font-family: PingFang-SC-Medium, PingFang-SC;
font-weight: 500;
color: #333333;
padding-left: 40rpx;
}
.avatar {
padding: 18rpx 0rpx;
}
.arrow {
padding: 0 50rpx 0 40rpx;
}
}
.line {
width: 670rpx;
height: 2rpx;
border: 2rpx solid #eeeff5;
margin: 0 auto;
}
.name {
display: flex;
align-items: center;
justify-content: space-between;
padding: 20rpx 40rpx;
&-text {
font-size: 32rpx;
font-family: PingFang-SC-Medium, PingFang-SC;
font-weight: 500;
color: #333333;
}
&-user {
font-size: 32rpx;
font-family: PingFang-SC-Medium, PingFang-SC;
font-weight: 500;
color: #333333;
}
}
}
}
.sys-info {
margin-top: 34rpx;
&-title {
font-size: 28rpx;
font-family: PingFang-SC-Medium, PingFang-SC;
font-weight: 500;
color: #abaebe;
padding: 0 0 26rpx 36rpx;
}
&-content {
background: #ffffff;
box-shadow: 0rpx 4rpx 10rpx 0rpx rgba(219, 218, 218, 0.5);
display: flex;
justify-content: space-between;
align-items: center;
padding: 22rpx 40rpx;
&>view {
font-size: 32rpx;
font-family: PingFang-SC-Medium, PingFang-SC;
font-weight: 500;
color: #333333;
}
}
}
.logout {
margin-top: 40rpx;
}
</style>

@ -60,7 +60,7 @@
</view>
<view class="distance-text">{{item.distance}}公里</view>
</view>
<view class="to-there">
<view class="to-there" @click.stop="toThere(item)">
<view class="to-there-text">去那里</view>
<view class="to-there-icon">
<u-image src="/static/todayNursing/to-there.png" height="46" width="46"></u-image>
@ -116,6 +116,16 @@
let res = await this.$u.api.nurseList(this.select)
console.log(res);
this.nursingList = res.data
},
toThere(item) {
this.$u.throttle(() => {
uni.openLocation({
latitude: Number(item.customer.lat),
longitude: Number(item.customer.lng),
name: item.customer.address
})
})
}
},
computed: {

@ -58,6 +58,7 @@ const store = new Vuex.Store({
saveLifeData(saveKey, state[saveKey])
},
logout(state) {
state.vuex_user = null
state.vuex_loginStatus = 0

Loading…
Cancel
Save