295 lines
7.9 KiB
Vue
295 lines
7.9 KiB
Vue
<template>
|
|
<view class="app">
|
|
<view class="" style="background-color: #F4F5F7;height: 20rpx;width:100%">
|
|
</view>
|
|
<view class="userinfo info">
|
|
<view class="item">
|
|
<span>姓名:</span>
|
|
<u-input :clearable='false' v-model="query.patientName" type="text" placeholder='' maxlength='5' />
|
|
</view>
|
|
<!-- <view class="item">
|
|
<span>电话:</span>
|
|
<u-input :clearable='false' v-model="query.phone" maxlength='11' type="text" placeholder='' />
|
|
</view> -->
|
|
<view class="item">
|
|
<span>身份证号:</span>
|
|
<u-input :clearable='false' v-model="query.cardNo" type="text" placeholder='' maxlength='18' />
|
|
</view>
|
|
<view class="item" @tap='showPicker'>
|
|
<span>所属区域:</span>
|
|
<view class="address">{{address}}</view>
|
|
</view>
|
|
<view class="item">
|
|
<span>详细地址:</span>
|
|
<u-input :clearable='false' v-model="query.address" maxlength='40' type="text"
|
|
placeholder='小区、单元、门牌号' />
|
|
</view>
|
|
<view class="item" @tap='getAddress()'>
|
|
<span>所在位置:</span>
|
|
<view class="address" style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;">
|
|
{{chooseLocation}}
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="">
|
|
<m-city style='z-index: 10076;' :provinceData="list" headTitle="地区选择" ref="cityPicker"
|
|
@funcValue="getpickerParentValue" pickerSize="4">
|
|
</m-city>
|
|
</view>
|
|
<view class="info">
|
|
<view class="service">
|
|
<view class="title">
|
|
所属服务
|
|
</view>
|
|
<view class="Multiplechoice">
|
|
<view :class="query.nurseTypeIdList.find(e => e == item.id)?'choices':'choice'"
|
|
v-for="(item,index) in getNurseTypelist" :key="item.id" @tap="addnurseType(item)">
|
|
{{item.nurseTypeName}}
|
|
</view>
|
|
<view @tap="godisease(item)"
|
|
:class="query.nurseTypeIdList.find(e => e == item.id)?'choices':'choice'"
|
|
v-for="(item,index) in medicalcarelist" :key="item.id">
|
|
{{item.nurseTypeName}}
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="radio-content">
|
|
<view class="radio-right" @tap="changeRadio">
|
|
<view class="radio" :class="radio == 2 ? 'radio-default':''">
|
|
<view :class="radio == 2 ? 'radio-active':''"></view>
|
|
</view>
|
|
</view>
|
|
<view class="agreement">我已阅读并同意<text @tap='maskshow=true'
|
|
style="color: #000000;border-bottom: 1rpx solid #000000;">《用户协议》</text>
|
|
</view>
|
|
</view>
|
|
<view class="btn" @tap='informationinfo'>
|
|
提交
|
|
</view>
|
|
<!-- //用户协议 -->
|
|
<u-mask :show="maskshow" class='mask' @click='maskshow=false'>
|
|
<view class="Agreement">
|
|
<view class="title">
|
|
用户协议与隐私政策
|
|
</view>
|
|
<scroll-view scroll-y="true" class="scroll-Y" style="">
|
|
<contenttext></contenttext>
|
|
</scroll-view>
|
|
<view class="cancel" @tap='maskshow=false'>
|
|
取消
|
|
</view>
|
|
<view class="determine" @tap='tapradio'>
|
|
确定并同意
|
|
</view>
|
|
</view>
|
|
</u-mask>
|
|
<u-toast ref="uToast" />
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import {
|
|
getRegionAndStreetInfo,
|
|
getNurseType,
|
|
information
|
|
} from '@/api/information/index.js'
|
|
import {
|
|
getSubordinateRegions,
|
|
} from '@/api/modifyAddress/modifyAddress.js';
|
|
import contenttext from './text.vue'
|
|
import gkcity from "../m-city/m-city.vue";
|
|
export default {
|
|
components: {
|
|
contenttext,
|
|
"m-city": gkcity
|
|
},
|
|
data() {
|
|
return {
|
|
radio: 1,
|
|
timer: null,
|
|
arealist: [], //区街道list
|
|
areashow: false, //经纬度开关
|
|
getNurseTypelist: [], //护理类型数组
|
|
medicalcarelist: [], //医疗护理数组
|
|
address: '', //页面所属区域
|
|
maskshow: false, //用户协议
|
|
chooseLocation: '',
|
|
query: { //信息请求数组
|
|
patientName: "",
|
|
cardNo: "",
|
|
phone: "",
|
|
address: "",
|
|
areaCode: "",
|
|
nurseTypeIdList: [],
|
|
diseaseInfoList: [],
|
|
patientId: '',
|
|
},
|
|
addresslength: null,
|
|
list: [{
|
|
id: "",
|
|
localName: "请选择",
|
|
children: [],
|
|
}, ],
|
|
};
|
|
},
|
|
methods: {
|
|
//提交信息
|
|
informationinfo() {
|
|
let that = this
|
|
if (this.addresslength) {
|
|
if (this.addresslength.length > 2) {
|
|
try {
|
|
const value = uni.getStorageSync('phone');
|
|
if (value) {
|
|
that.query.phone = value
|
|
information(that.query).then(res => {
|
|
if (res.code == 200) {
|
|
that.$refs.uToast.show({
|
|
title: '完善信息成功',
|
|
type: 'success',
|
|
duration: '1500'
|
|
})
|
|
if (that.timer) {
|
|
clearTimeout(that.timer)
|
|
}
|
|
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'
|
|
})
|
|
}
|
|
} else {
|
|
that.$refs.uToast.show({
|
|
title: '所属区域应选择所在的区或街道,请重新选择!',
|
|
type: 'error'
|
|
})
|
|
}
|
|
|
|
},
|
|
//获取所在位置
|
|
getAddress() {
|
|
var that = this;
|
|
uni.chooseLocation({
|
|
success: function(res) {
|
|
that.query.locationName = res.name
|
|
that.chooseLocation = res.name
|
|
that.query.homeLongitude = res.longitude;
|
|
that.query.homeLatitude = res.latitude;
|
|
}
|
|
});
|
|
},
|
|
//护理类型请求
|
|
getNurseTypeInfo() {
|
|
getNurseType().then(res => {
|
|
this.medicalcarelist = res.data.filter(e => e.nurseTypeName == '医疗护理')
|
|
this.getNurseTypelist = res.data.filter(e => e.nurseTypeName != '医疗护理')
|
|
})
|
|
},
|
|
//区街道
|
|
areaInfo() {
|
|
getSubordinateRegions().then(res => {
|
|
this.list = res.data;
|
|
})
|
|
},
|
|
// 三级地址联动回调
|
|
getpickerParentValue(e) {
|
|
this.addresslength = e
|
|
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) {
|
|
if (this.query.nurseTypeIdList.findIndex(e => e == item.id) == -1) {
|
|
this.query.nurseTypeIdList.push(item.id)
|
|
} else {
|
|
this.query.nurseTypeIdList = this.query.nurseTypeIdList.filter(e => e != item.id)
|
|
}
|
|
},
|
|
godisease(item) {
|
|
uni.navigateTo({
|
|
url: `/pages/disease/disease?diseaseInfoList=${JSON.stringify(this.query.diseaseInfoList)}`
|
|
})
|
|
},
|
|
changeRadio() {
|
|
if (this.radio == 1) {
|
|
this.radio = 2;
|
|
} else {
|
|
this.radio = 1;
|
|
}
|
|
},
|
|
tapradio() {
|
|
this.radio = 2;
|
|
this.maskshow = false;
|
|
},
|
|
},
|
|
//进入界面加载
|
|
onLoad() {
|
|
let that = this
|
|
try {
|
|
const value = uni.getStorageSync('patientId');
|
|
if (value) {
|
|
that.query.patientId = value
|
|
}
|
|
} catch (e) {}
|
|
this.areaInfo()
|
|
this.getNurseTypeInfo();
|
|
},
|
|
//带参返回
|
|
onShow() {
|
|
let that = this
|
|
uni.$on('disease', function(data) {
|
|
that.query.diseaseInfoList = JSON.parse(data.disease)
|
|
if (that.query.diseaseInfoList.length > 0) {
|
|
that.medicalcarelist.forEach(e => {
|
|
if (that.query.nurseTypeIdList.findIndex(el => el == e.id) == -1) {
|
|
that.query.nurseTypeIdList.push(e.id)
|
|
} else {}
|
|
})
|
|
} else {
|
|
that.medicalcarelist.forEach(e => {
|
|
that.query.nurseTypeIdList = that.query.nurseTypeIdList.filter(el => el != e.id)
|
|
})
|
|
}
|
|
})
|
|
}
|
|
}
|
|
</script>
|
|
<style lang="scss">
|
|
@import './information.scss';
|
|
</style>
|