This commit is contained in:
2023-10-12 09:47:40 +08:00
parent 13c4cc9c24
commit 09247c0698
15 changed files with 1341 additions and 646 deletions

View File

@ -1,29 +1,30 @@
export function getSex(idCard) {
if (idCard.length === 15) {
return ['女', '男'][idCard.substr(14, 1) % 2]
} else if (idCard.length === 18) {
return ['女', '男'][idCard.substr(16, 1) % 2]
}
return ''
if (idCard.length === 15) {
return ['女', '男'][idCard.substr(14, 1) % 2]
} else if (idCard.length === 18) {
return ['女', '男'][idCard.substr(16, 1) % 2]
}
return ''
}
export function getBirthday(idCard) {
var birthday = "";
if (idCard != null && idCard != "") {
if (idCard.length == 15) {
birthday = "19" + idCard.substr(6, 6);
} else if (idCard.length == 18) {
birthday = idCard.substr(6, 8);
}
// birthday = birthday.replace(/(.{4})(.{2})/, "$1-$2-");
}
return birthday;
var birthday = "";
if (idCard != null && idCard != "") {
if (idCard.length == 15) {
birthday = "19" + idCard.substr(6, 6);
} else if (idCard.length == 18) {
birthday = idCard.substr(6, 8);
}
birthday = birthday.replace(/(.{4})(.{2})/, '$1-$2-')
}
return birthday;
};
// 出生日期转年龄
export function getAgeFun(value) {
var birthdays = new Date(value.replace(/-/g, "/")); //value 是传入的值
var time = new Date(); //当前时间
var age = time.getFullYear() - birthdays.getFullYear() - (time.getMonth() < birthdays.getMonth() || (time.getMonth() == birthdays.getMonth() &&
time.getDate() < birthdays.getDate()) ? 1 : 0);
return age;
var birthdays = new Date(value.replace(/-/g, "/")); //value 是传入的值
var time = new Date(); //当前时间
var age = time.getFullYear() - birthdays.getFullYear() - (time.getMonth() < birthdays.getMonth() || (time
.getMonth() == birthdays.getMonth() &&
time.getDate() < birthdays.getDate()) ? 1 : 0);
return age;
}

View File

@ -0,0 +1,47 @@
import request from "@/api/request.js"
// 获取区划列表
export function arealist(pid, region) {
return request({
url: `/applet/signinfo/area/list/${pid}`,
method: 'get',
header: {
region: region
}
})
}
//提交签约
export function applysave(data, region) {
return request({
url: `/applet/sign/apply/save`,
method: 'post',
data: data,
header: {
region: region
}
})
}
//人群
export function getCrowd(identity, region) {
return request({
url: `/applet/signinfo/getCrowd/${identity}`,
method: 'get',
header: {
region: region
}
})
}
//服务包
export function getPackageByCrowdNo(data, region) {
return request({
url: `/applet/signinfo/getPackageByCrowdNo`,
method: 'post',
data: data,
header: {
region: region
}
})
}

View File

@ -0,0 +1,12 @@
import request from "@/api/request.js"
// 获取区划列表
export function getDoctorList(pageNum, orgNo, region) {
return request({
url: `/applet/signinfo/getDoctorList?pageNum=${pageNum}&orgNo=${orgNo}`,
method: 'get',
header: {
region: region
}
})
}

View File

@ -0,0 +1,25 @@
import request from "@/api/request.js"
export function getCounty(data, region) {
return request({
url: `/applet/signinfo/getCounty`,
method: 'post',
data: data,
header: {
region: region
}
})
}
export function getNearbyOrg(data, region) {
return request({
url: `/applet/signinfo/getNearbyOrg`,
method: 'get',
data: data,
header: {
region: region
}
})
}

View File

@ -13,7 +13,7 @@ var request = function(config) {
url: baseurl + config.url,
data: config.data,
method: config.method,
timeout: 10000,
timeout: 60000,
header: config.header,
success(res) {
uni.hideLoading();
@ -27,4 +27,4 @@ var request = function(config) {
})
}
export default request
export default request

View File

@ -414,13 +414,6 @@
"enablePullDownRefresh": false
}
},
{
"path": "Signingagency/Signingagency",
"style": {
"navigationBarTitleText": "在线签约",
"enablePullDownRefresh": false
}
},
{
"path": "Filinginformation/Filinginformation",
"style": {
@ -495,6 +488,21 @@
"navigationBarTitleText": "咨询医生",
"enablePullDownRefresh": false
}
}, {
"path": "choosedoctor/choosedoctor",
"style": {
"navigationBarTitleText": "选择医生",
"onReachBottomDistance": 40, // px
"enablePullDownRefresh": true //true
}
}, {
"path": "selectInstitution/selectInstitution",
"style": {
"navigationBarTitleText": "选择签约机构",
"onReachBottomDistance": 40, // px
"enablePullDownRefresh": true //true
}
}
]
}],
@ -535,14 +543,6 @@
"selectedIconPath": "static/myinformations.png",
"text": "我的"
}
// ,
// {
// "path": "Mysigning/Mysigning",
// "style": {
// "navigationBarTitleText": "我的签约",
// "enablePullDownRefresh": false
// }
// }
]
}
}

View File

@ -122,29 +122,31 @@
//
detailinfo(url1, url2) {
detail(this.identity, this.region).then(res => {
if (res.code == 500) {
// detail('372424194703207523', '1').then(res => {
if (res.code == 200) {
uni.navigateTo({
url: url2 + `?item=${JSON.stringify(res.data)}`
})
} else {
this.$refs.uToast.show({
title: '未签约,请先签约',
type: 'error',
duration: '1000',
url: url1
})
} else {
uni.navigateTo({
url: url2
})
}
})
},
//
goonline() {
uni.navigateTo({
url: '/pagesC/Onlinesigning/Onlinesigning'
url:"/pagesC/Onlinesigning/Onlinesigning"
})
// this.detailinfo('/pagesC/Onlinesigning/Onlinesigning', '/pagesB/mysigning/mysigning')
if (!this.userinfo && !this.identity) {
// this.gologin();
} else {
this.detailinfo('/pagesC/Onlinesigning/Onlinesignin', '/pagesB/mysigning/mysigning')
// this.detailinfo('/pagesC/Onlinesigning/Onlinesigning', '/pagesB/mysigning/mysigning')
}
},
//

View File

@ -8,30 +8,23 @@
</view>
<view class="name">
<view class="text">
张三
{{list.residentName}}
</view>
<view class="card">
高血压
</view>
<view class="card">
糖尿病
<view class="card" v-for='item in list.crowdsName'>
{{item}}
</view>
</view>
<view class="item">
&nbsp;&nbsp;&nbsp; 65
{{list.gender=='2'?'女':''}}{{list.gender=='1'?'':''}}&nbsp;&nbsp;&nbsp; 65
</view>
<view class="item">
1786982345
{{list.phone}}
</view>
<view class="item">
37029828873746473
{{list.identity}}
</view>
<view class="item">
山东省济南市槐荫区腊山河街道首诺城市之光
山东省济南市槐荫区腊山河街道首诺城市之光
山东省济南市槐荫区腊山河街道首诺城市之光
山东省济南市槐荫区腊山河街道首诺城市之光
山东省济南市槐荫区腊山河街道首诺城市之光
{{list.address}}
</view>
<view class="border">
</view>
@ -42,14 +35,14 @@
</view>
</view>
<view class="item">
年限2023年1月12日-2024年1月12日
年限{{list.signTime}}-{{list.signDeadline}}
</view>
<view class="item">
机构河口区卫生服务中心
机构{{list.orgName}}
</view>
<view class="item flexitem">
<view class="left">
医生张三
医生{{list.userName}}
</view>
<view class="right" @tap="goseekadvicefrom">
<image src="../../static/pagesB/zixun.png" mode=""></image>
@ -69,11 +62,8 @@
我的服务包
</view>
</view>
<view class="item">
高血压个性服务包
</view>
<view class="item">
糖尿病个性服务包
<view class="item" v-for='item in list.packagesName'>
{{item}}
</view>
<view class="lookbtn" @tap='goperformancedetails'>
查看履约详情
@ -95,7 +85,7 @@
export default {
data() {
return {
list: {},
};
},
methods: {
@ -123,6 +113,11 @@
url: `/pagesC/seekadvicefrom/seekadvicefrom?title=咨询医生`
})
},
},
onLoad(options) {
this.list = JSON.parse(options.item)
this.list.crowdsName = this.list.crowdsName.split(',')
this.list.packagesName = this.list.packagesName.split(',')
}
}
</script>
@ -229,7 +224,7 @@
font-size: 18rpx;
font-weight: 400;
color: #FFA115;
width: 85rpx;
padding: 0 15rpx;
height: 35rpx;
line-height: 35rpx;
background: #FFFFFF;
@ -259,4 +254,4 @@
}
}
}
</style>
</style>

View File

@ -0,0 +1,291 @@
page {
background-color: #F4F5F7;
}
.app {
width: 96%;
margin: 20rpx auto;
background-color: #F7F5F5;
padding: 30rpx 0 200rpx 0;
background: #FFFFFF;
box-shadow: 0rpx 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
border-radius: 5rpx;
::v-deep .u-checkbox {
width: 100% !important;
height: 80rpx !important;
}
.signing {
width: 637rpx;
height: 198rpx;
background: #FFFFFF;
border: 1rpx solid #26A888;
opacity: 0.8;
border-radius: 5rpx;
margin: 50rpx auto;
.agency {
// width: 96rpx;
padding: 22rpx 30rpx 6rpx 30rpx;
// height: 21rpx;
font-size: 22rpx;
font-weight: 500;
color: #EE8F15;
line-height: 38rpx;
}
.word {
font-size: 22rpx;
font-weight: 400;
color: #8E8E8E;
line-height: 38rpx;
padding: 0 30rpx 0 30rpx;
}
}
.radio-content {
width: 100%;
height: 100rpx;
text-align: center;
font-size: 22rpx;
margin: 0 auto;
display: flex;
align-items: center;
.agreement {
color: #333333;
width: 80%;
text-align: left;
padding-left: 20rpx;
}
.radio-right {
width: 20%;
.radio {
display: inline-block;
width: 30rpx;
height: 30rpx;
border-radius: 70%;
border: 2rpx solid #26A888;
position: relative;
float: right;
.radio-active {
width: 15rpx;
height: 15rpx;
border-radius: 50%;
background-color: #178ffb;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
}
}
}
.submititem {
display: flex;
justify-content: space-evenly;
margin: 47rpx 0px 20rpx 0px;
.submit {
width: 289rpx;
height: 61rpx;
background: #26A888;
border-radius: 5rpx;
line-height: 62rpx;
text-align: center;
color: #fff;
}
.laststep {
width: 290rpx;
height: 62rpx;
background: #FFFFFF;
border: 1rpx solid #26A888;
border-radius: 5rpx;
line-height: 62rpx;
text-align: center;
color: #26A888;
}
}
.content {
width: 95%;
height: 300rpx;
margin: 15rpx auto;
position: relative;
}
.nextpage {
width: 496rpx;
height: 61rpx;
background: #26A888;
border-radius: 5rpx;
line-height: 61rpx;
color: white;
text-align: center;
margin: 100rpx auto;
}
.contentbottom {
position: relative;
top: 20%;
}
.name {
padding: 10rpx 30rpx 0 7%;
font-size: 30rpx;
font-weight: 400;
color: #333333;
line-height: 38rpx;
::v-deep .u-input {
width: 636rpx;
height: 63rpx;
background: #F6F6F6;
margin: 12rpx auto;
border: none;
border-radius: 5rpx;
}
::v-deep.uni-input-placeholder {
color: #8E8E8E !important;
font-size: 20rpx;
}
::v-deep .u-input__input.data-v-fdbb9fe6 {
font-size: 26rpx !important;
}
::v-deep.input-placeholder {
color: #8E8E8E !important;
font-size: 20rpx;
}
.select {
width: 636rpx;
height: 63rpx;
background: #F6F6F6;
margin: 12rpx auto;
border-radius: 5rpx;
display: flex;
position: relative;
text {
padding: 0 60rpx 0 20rpx;
line-height: 63rpx;
font-size: 20rpx;
font-weight: 400;
color: #8E8E8E;
// text-overflow: -o-ellipsis-lastline;
// overflow: hidden;
// text-overflow: ellipsis;
// display: -webkit-box;
// -webkit-line-clamp: 1;
// line-clamp: 1;
// -webkit-box-orient: vertical;
// white-space:normal;
// word-break:break-all;
}
image {
width: 9rpx;
height: 17rpx;
position: absolute;
right: 40rpx;
top: 50%;
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
}
}
}
.numberone {
width: 90rpx;
height: 90rpx;
position: absolute;
top: 6%;
left: 15%;
background: #F0F1F6;
border-radius: 50%;
color: #fff;
line-height: 90rpx;
text-align: center;
font-size: 50rpx;
.information {
width: 160rpx;
margin: 22rpx 8rpx 8rpx -30rpx;
font-size: 26rpx;
font-weight: 400;
color: #8E8E8E;
line-height: 38rpx;
}
}
.numberones {
background: #26A888;
.information {
color: #26A888;
}
}
// ::v-deep .uni-input-input {
// left: 20rpx;
// }
.number {
width: 180rpx;
height: 150rpx;
position: absolute;
top: 6%;
left: 65%;
.numbertwo {
width: 90rpx;
height: 90rpx;
left: 50%;
transform: translateX(50%);
background: #F0F1F6;
border-radius: 50%;
line-height: 90rpx;
text-align: center;
font-size: 50rpx;
// border: 1rpx solid #A6C8C0;
color: #fff;
}
.information {
padding-top: 20rpx;
font-size: 26rpx;
font-weight: 400;
color: #8E8E8E;
line-height: 38rpx;
text-align: center;
}
.numbertwos {
background: #26A888;
color: #fff;
}
.informations {
color: #26A888;
}
}
.item {
position: absolute;
width: 202rpx;
height: 1rpx;
top: 25%;
left: 34%;
background: linear-gradient(-90deg, #E6E6E6, #26A888);
}
}

View File

@ -1,267 +1,444 @@
<template>
<view class="app">
<view class="content">
<view class="numberone">1
<view class="numberone" :class="stepnumber==1?'numberones':''" @tap='tapstep(1)'>1
<view class="information">
填写个人信息
</view>
</view>
<view class="item">
</view>
<view class="number">
<view class="numbertwo">
<view class="number" @tap='tapstep(2)'>
<view class="numbertwo" :class="stepnumber==2?'numbertwos':''">
2
</view>
<view class="information">
<view class="information" :class="stepnumber==2?'informations':''">
选择签约机构
</view>
</view>
<view class="contentbottom">
<view class="name">
姓名
<u-input v-model="value" :border="border" placeholder="请输入姓名" />
</view>
<view class="name">
身份证号
<u-input v-model="value" :border="border" placeholder="请输入身份证号" />
</view>
<view class="name">
手机号码
<u-input v-model="value" :border="border" placeholder="请输入手机号码" />
</view>
<view class="name">
现任区县
<view class="select">
<text>请选择现任区县</text>
<image src="../../static/huijiantou.png" mode=""></image>
</view>
</view>
<view class="name">
乡镇
<view class="select">
<text>请选择乡镇</text>
<image src="../../static/huijiantou.png" mode=""></image>
</view>
</view>
<view class="name">
/社区
<view class="select">
<text>请选择村/社区</text>
<image src="../../static/huijiantou.png" mode=""></image>
</view>
</view>
<view class="name">
详细地址
<u-input v-model="value" :border="border" placeholder="请输入详细地址" />
</view>
<view class="contentbottom" v-if="stepnumber==1">
<view class="name">
姓名
<u-input v-model="query.residentName" :border="true" placeholder="请输入姓名" />
</view>
<view class="name">
身份证号
<u-input v-model="query.identity" :border="true" placeholder="请输入身份证号" />
</view>
<view class="name">
手机号码
<u-input v-model="query.phone" :border="true" placeholder="请输入手机号码" />
</view>
<view class="name" @tap='countyshow=true'>
现住区县
<view class="select">
<text v-if="query.countyName" style="font-size: 26rpx;color: #303133;">{{query.countyName}}</text>
<text v-else>请选择现住区县</text>
<image src="../../static/huijiantou.png" mode=""></image>
</view>
</view>
<view class="nextpage" @tap="gonextstep">
下一步
<u-select v-model="countyshow" mode="single-column" :list="countylist" @confirm="countyconfirm"
value-name='areaCode' label-name='name'></u-select>
<view class="name" @tap='Townshipshowtrue'>
街道/乡镇
<view class="select">
<text v-if="query.townName" style="font-size: 26rpx;color: #303133;">{{query.townName}}</text>
<text v-else>请选择街道/乡镇</text>
<image src="../../static/huijiantou.png" mode=""></image>
</view>
</view>
<u-select v-model="Townshipshow" mode="single-column" :list="Townshiplist" @confirm="Townshipconfirm"
value-name='streetCode' label-name='name'></u-select>
<view class="name" @tap='villageshowtrue'>
/社区
<view class="select">
<text v-if="query.committeeName"
style="font-size: 26rpx;color: #303133;">{{query.committeeName}}</text>
<text v-else>请选择村/社区</text>
<image src="../../static/huijiantou.png" mode=""></image>
</view>
</view>
<u-select v-model="villageshow" mode="single-column" :list="villagelist" @confirm="villageconfirm"
value-name='committeeCode' label-name='name'></u-select>
<view class="name">
详细地址
<u-input v-model="query.address" :border="true" placeholder="请输入详细地址" />
</view>
</view>
</view>
<view class="nextpage" v-if="stepnumber==1" @tap="tapstep('+')">
下一步
</view>
<view class="contentbottom" v-if="stepnumber==2">
<view class="name" @tap='goselectInstitution'>
签约机构
<view class="select">
<text v-if="query.orgName" style="font-size: 26rpx;color: #303133;">{{query.orgName}}</text>
<text v-else>请选择签约机构</text>
<image src="../../static/huijiantou.png" mode=""></image>
</view>
</view>
<view class="name" @tap='gochoosedoctor'>
医生
<view class="select">
<text v-if="query.userName" style="font-size: 26rpx;color: #303133;">{{query.userName}}</text>
<text v-else>请选择医生</text>
<image src="../../static/huijiantou.png" mode=""></image>
</view>
</view>
<view class="name" @tap='changeCrowd'>
所属人群
<view class="select" style="height: 100%;">
<text v-if="query.crowdsName" style="font-size: 26rpx;color: #303133;">{{query.crowdsName}}</text>
<text v-else>请选择所属人群</text>
<image src="../../static/huijiantou.png" mode=""></image>
</view>
</view>
<view class="name" @tap='changePackages'>
服务包
<view class="select" style="height: 100%;">
<text v-if="query.packagesName"
style="font-size: 26rpx;color: #303133;">{{query.packagesName}}</text>
<text v-else>请选择服务包</text>
<image src="../../static/huijiantou.png" mode=""></image>
</view>
</view>
<view class="signing">
<view class="agency">
签约提醒:
</view>
<view class="word">
1.已根据您的地址智能配对签约机构点击可修改
</view>
<view class="word">
2.意向签约医生仅供参考最终签约结果已签约医院确认信 息为准
</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>
<view class="agreement">同意并签署<text style="color: #26A888;">家庭医生签约服务协议</text>
</view>
</view>
<view class="submititem">
<view class="laststep" @tap="tapstep('-')"> 上一步 </view>
<view class="submit" @tap='updata'>
提交
</view>
</view>
</view>
<u-popup v-model="popupShow" mode="right" @close="closeCrowds" width='50%'>
<scroll-view scroll-y="true" style="height: 100vh;padding: 40rpx 10rpx 100rpx">
<u-checkbox-group @change="crowdscheckboxGroupChange" v-model="query.crowdsName" v-if="showGroup == 1"
label-size='20rpx'>
<u-checkbox v-model="item.checked" v-for="(item, index) in crowdslist" :key="index"
:name="item.crowdNo" label-size='20rpx'>{{item.crowdName}}</u-checkbox>
</u-checkbox-group>
<u-checkbox-group @change="packagescheckboxGroupChange" v-model="query.packagesName"
v-if="showGroup == 2" label-size='20rpx'>
<u-checkbox v-model="item.checked" v-for="(item, index) in packageslist" :key="index"
:name="item.packageNo" label-size='20rpx'>{{item.packageName}}</u-checkbox>
</u-checkbox-group>
</scroll-view>
</u-popup>
<u-toast ref="uToast" />
</view>
</template>
<script>
import {
arealist,
applysave,
getCrowd,
getPackageByCrowdNo
} from '@/api/pagesC/Onlinesigning/index.js'
import {
getSex,
getBirthday
} from '@/api/conversion.js'
export default {
data() {
return {
value: '',
type: 'text',
border: true
showGroup: 1,
packageslist: [],
crowdslist: [],
popupShow: false, //
countyshow: false, //
countylist: [], //
Townshiplist: [], //
Townshipshow: false, //
villagelist: [], //
villageshow: false, //
radio: '',
stepnumber: 1,
query: {
province: '370000000000',
provinceName: '山东省',
residentName: null,
identity: null,
phone: null,
city: '371400000000',
cityName: '德州市',
county: null,
countyName: null,
town: null,
townName: null,
committee: null,
committeeName: null,
orgName: null,
orgNo: null,
userName: null,
userNo: null,
teamNo: null,
teamName: null,
crowdsName: null,
packagesName: null,
crowdList: [],
crowdNoList: null,
packageList: [],
packageNoList: null,
}
}
},
methods: {
gonextstep() {
uni.navigateTo({
url: '/pagesC/Signingagency/Signingagency'
updata() {
if (this.radio == 2) {
if (this.query.identity) {
this.query.birthday = getBirthday(this.query.identity)
let gender = getSex(this.query.identity)
if (gender == '女') {
this.query.gender = 2
} else if (gender == '男') {
this.query.gender = 1
} else {
this.query.gender = 99
}
}
applysave(this.query).then(res => {
if (res.code == 200) {
this.$refs.uToast.show({
title: '签约成功',
type: 'success',
})
uni.redirectTo({
url: "/pagesB/mysigning/mysigning"
})
} else {
this.$refs.uToast.show({
title: '签约失败,请重新签约',
type: 'error',
})
}
})
} else {
this.$refs.uToast.show({
title: '请先同意并签署服务协议',
type: 'error',
})
}
},
//
changeRadio() {
this.radio == 1 ? this.radio = 2 : this.radio = 1
},
//
tapstep(val) {
if (val == 1) {
this.stepnumber = 1
} else if (val == 2) {
this.stepnumber = 2
} else if (val == '+') {
this.stepnumber++
} else if (val == '-') {
this.stepnumber--
}
},
//
countyconfirm(e) {
this.query.county = e[0].value
this.query.countyName = e[0].label
const pid = this.countylist.find(m => m.areaCode === e[0].value).id
this.arealistinfo(pid, '1', 'Township')
},
//
Townshipconfirm(e) {
this.query.town = e[0].value
this.query.townName = e[0].label
const pid = this.Townshiplist.find(m => m.streetCode === e[0].value).id
this.arealistinfo(pid, '1', 'village')
},
//
villageconfirm(e) {
this.query.committee = e[0].value
this.query.committeeName = e[0].label
},
//list
arealistinfo(code, code2, list) {
arealist(code, code2).then(res => {
if (list == 'county') {
this.countylist = res.data
} else if (list == 'Township') {
this.Townshiplist = res.data
} else if (list == 'village') {
this.villagelist = res.data
}
})
},
}
//
gochoosedoctor() {
if (!this.query.orgNo) {
this.$refs.uToast.show({
title: '请先选择签约机构',
type: 'error',
})
} else {
uni.navigateTo({
url: `/pagesC/choosedoctor/choosedoctor?orgNo=${this.query.orgNo}`
})
}
},
//
goselectInstitution() {
uni.navigateTo({
url: "/pagesC/selectInstitution/selectInstitution"
})
},
//
Townshipshowtrue() {
if (!this.query.county) {
this.$refs.uToast.show({
title: '请先选择区县',
type: 'error',
})
} else {
this.Townshipshow = true
}
},
//
villageshowtrue() {
if (!this.query.town) {
this.$refs.uToast.show({
title: '请先选择街道/乡镇',
type: 'error',
})
} else {
this.villageshow = true
}
},
//
changeCrowd() {
this.showGroup = 1
this.popupShow = true
},
//
changePackages() {
if (!this.query.crowdNoList) {
this.$refs.uToast.show({
title: '请先选择所属人群',
type: 'error',
})
return
}
if (!this.query.orgNo) {
this.$refs.uToast.show({
title: '请先选择签约机构',
type: 'error',
})
return
}
var obj = {
crowdNoList: this.query.crowdNoList,
orgNo: this.query.orgNo
}
getPackageByCrowdNo(obj, '1').then(res => {
res.data.forEach(e => {
e.checked = false
})
this.packageslist = res.data
this.showGroup = 2
this.popupShow = true
})
},
//list
getCrowdinfo() {
getCrowd('370882199909092123', '1').then(res => {
res.data.forEach(e => {
e.checked = false
})
this.crowdslist = res.data
})
},
closeCrowds() {
this.popupShow = false
if (this.showGroup == 1) {
this.query.crowdList = []
this.query.crowdsName = ''
this.query.crowdNoList.forEach(el => {
this.crowdslist.forEach(ele => {
if (el == ele.crowdNo) {
var obj = {
crowdNo: ele.crowdNo,
crowdName: ele.crowdName
}
this.query.crowdList.push(obj)
this.query.crowdsName = ele.crowdName + ',' + this.query.crowdsName
}
})
})
} else {
this.query.packageList = []
this.query.packagesName = ''
this.query.packageNoList.forEach(el => {
this.packageslist.forEach(ele => {
if (el == ele.packageNo) {
var obj = {
packageNo: ele.packageNo,
packageName: ele.packageName
}
this.query.packageList.push(obj)
this.query.packagesName = ele.packageName + ',' + this.query.packagesName
}
})
})
}
},
crowdscheckboxGroupChange(e) {
this.query.crowdNoList = e
},
packagescheckboxGroupChange(e) {
this.query.packageNoList = e
},
},
onLoad(options) {
this.arealistinfo('371400000000 ', '1', 'county');
this.getCrowdinfo();
},
onShow() {
var that = this
uni.$on('data', function(data) {
let item = JSON.parse(data.data)
that.query.orgName = item.orgName
that.query.orgNo = item.orgNo
uni.$off('data')
})
uni.$on('doctordata', function(data) {
let item = JSON.parse(data.data)
that.query.userName = item.realname
that.query.userNo = item.userNo
that.query.teamNo = item.teamNo
that.query.teamName = item.teamName
uni.$off('doctordata')
})
},
}
</script>
<style lang="scss">
.app {
height: 100vh;
background-color: #F7F5F5;
padding: 30rpx 0 0 0;
.content {
width: 95%;
height: 100%;
overflow: scroll;
background: #FFFFFF;
box-shadow: 0rpx 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
border-radius: 5rpx;
margin: 15rpx auto;
position: relative;
.nextpage {
width: 496rpx;
height: 61rpx;
background: #26A888;
border-radius: 5rpx;
line-height: 61rpx;
color: white;
text-align: center;
position: relative;
left: 50%;
transform: translateX(-50%);
top: 23%;
}
.contentbottom {
position: relative;
top: 20%;
}
.name {
padding: 10rpx 30rpx 0 7%;
font-size: 30rpx;
font-family: Source Han Sans CN;
font-weight: 400;
color: #333333;
line-height: 38rpx;
::v-deep .u-input {
width: 636rpx;
height: 63rpx;
background: #F6F6F6;
margin: 12rpx auto;
border: none;
border-radius: 5rpx;
}
::v-deep.uni-input-placeholder {
color: #8E8E8E !important;
font-size: 20rpx;
}
::v-deep .u-input__input.data-v-fdbb9fe6 {
font-size: 26rpx !important;
}
::v-deep.input-placeholder{
color: #8E8E8E !important;
font-size: 20rpx;
}
.select {
width: 636rpx;
height: 63rpx;
background: #F6F6F6;
margin: 12rpx auto;
border-radius: 5rpx;
display: flex;
position: relative;
text {
padding-left: 20rpx;
line-height: 63rpx;
font-size: 20rpx;
font-family: Source Han Sans CN;
font-weight: 400;
color: #8E8E8E;
}
image {
width: 9rpx;
height: 17rpx;
position: absolute;
right: 40rpx;
top: 50%;
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
}
}
}
.numberone {
width: 90rpx;
height: 90rpx;
position: absolute;
top: 6%;
left: 15%;
background: #26A888;
border-radius: 50%;
color: #fff;
line-height: 90rpx;
text-align: center;
font-size: 50rpx;
font-family: Source Han Sans CN;
font-weight: bold;
.information {
width: 160rpx;
margin: 11px 4px 4px -10px;
font-size: 26rpx;
font-family: Source Han Sans CN;
font-weight: 400;
color: #26A888;
line-height: 38rpx;
}
}
.number {
.numbertwo:hover {
background-color: #26A888;
color: #fff;
}
.information:hover {
color: #26A888;
}
}
// ::v-deep .uni-input-input {
// left: 20rpx;
// }
.number {
width: 180rpx;
height: 150rpx;
position: absolute;
top: 6%;
left: 65%;
.numbertwo {
width: 90rpx;
height: 90rpx;
left: 50%;
transform: translateX(50%);
background: #F0F1F6;
border-radius: 50%;
line-height: 90rpx;
text-align: center;
font-size: 50rpx;
font-family: Source Han Sans CN;
font-weight: bold;
// border: 1rpx solid #A6C8C0;
color: #A6C8C0;
}
.information {
padding-top: 20rpx;
font-size: 26rpx;
font-family: Source Han Sans CN;
font-weight: 400;
color: #8E8E8E;
line-height: 38rpx;
text-align: center;
}
}
.item {
position: absolute;
width: 202rpx;
height: 1rpx;
top: 10%;
left: 34%;
background: linear-gradient(-90deg, #E6E6E6, #26A888);
}
}
}
@import "./Onlinesigning.scss";
</style>

View File

@ -1,343 +0,0 @@
<template>
<view class="app">
<view class="content">
<view class="numberone">
1
<view class="information">
填写个人信息
</view>
</view>
<view class="item">
</view>
<view class="number">
<view class="numbertwo">
2
</view>
<view class="information">
选择签约机构
</view>
</view>
<view class="contentbottom">
<view class="name">
社区
<view class="select">
<text>请选择社区卫生服务中心</text>
<image src="../../static/huijiantou.png" mode=""></image>
</view>
</view>
<view class="name">
医生
<view class="select">
<text>请选择乡镇</text>
<image src="../../static/huijiantou.png" mode=""></image>
</view>
</view>
<view class="signing">
<view class="agency">
签约提醒:
</view>
<view class="word">
1.已根据您的地址智能配对签约机构点击可修改
</view>
<view class="word">
2.意向签约医生仅供参考最终签约结果已签约医院确认信 息为准
</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: #26A888;">东营市家庭医生签约服务协议</text>
</view>
</view>
<view class="submititem">
<view class="laststep">
上一步
</view>
<view class="submit">
提交
</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
value: '',
type: 'text',
border: true,
radio: '',
}
},
methods: {
changeRadio() {
if (this.radio == 1) {
this.radio = 2;
} else {
this.radio = 1;
}
},
}
}
</script>
<style lang="scss">
.app {
height: 100vh;
background-color: #F7F5F5;
padding: 30rpx 0 0 0;
.content {
width: 95%;
height: 100%;
background: #FFFFFF;
box-shadow: 0rpx 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
border-radius: 5rpx;
margin: 15rpx auto;
position: relative;
.contentbottom {
position: absolute;
top: 20%;
.name {
padding: 10rpx 30rpx 0 30rpx;
font-size: 30rpx;
font-family: Source Han Sans CN;
font-weight: 400;
color: #333333;
line-height: 38rpx;
.select {
width: 636rpx;
height: 63rpx;
background: #F6F6F6;
margin: 12rpx auto;
border-radius: 5rpx;
display: flex;
position: relative;
text {
padding-left: 20rpx;
line-height: 63rpx;
font-size: 20rpx;
font-family: Source Han Sans CN;
font-weight: 400;
color: #8E8E8E;
}
image {
width: 9rpx;
height: 17rpx;
position: absolute;
right: 40rpx;
top: 50%;
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
}
}
}
}
.signing {
width: 637rpx;
height: 198rpx;
background: #FFFFFF;
border: 1rpx solid #26A888;
opacity: 0.8;
border-radius: 5rpx;
margin: 50rpx auto;
.agency {
// width: 96rpx;
padding: 22rpx 30rpx 6rpx 30rpx;
// height: 21rpx;
font-size: 22rpx;
font-family: Source Han Sans CN;
font-weight: 500;
color: #EE8F15;
line-height: 38rpx;
}
.word {
font-size: 22rpx;
font-family: Source Han Sans CN;
font-weight: 400;
color: #8E8E8E;
line-height: 38rpx;
padding: 0 30rpx 0 30rpx;
}
}
.submititem {
display: flex;
justify-content: space-evenly;
margin: 47rpx 0px 20rpx 0px;
.submit {
width: 289rpx;
height: 61rpx;
background: #26A888;
border-radius: 5rpx;
line-height: 62rpx;
text-align: center;
color: #fff;
}
.laststep {
width: 290rpx;
height: 62rpx;
background: #FFFFFF;
border: 1rpx solid #26A888;
border-radius: 5rpx;
line-height: 62rpx;
text-align: center;
color: #26A888;
}
}
.radio-content {
width: 56%;
text-align: center;
font-size: 19rpx;
position: relative;
left: 54%;
-webkit-transform: translateX(-50%);
transform: translateX(-50%);
.agreement {
position: absolute;
transform: translateY(-50%);
color: #333333;
}
.radio-right {
height: 100rpx;
.radio {
display: inline-block;
width: 22rpx;
height: 22rpx;
border-radius: 70%;
border: 2rpx solid #26A888;
position: absolute;
top: 100%;
left: -9%;
transform: translateY(-50%);
.radio-active {
width: 10rpx;
height: 10rpx;
border-radius: 50%;
background-color: #178ffb;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
}
}
}
.numberone {
width: 90rpx;
height: 90rpx;
position: absolute;
top: 6%;
left: 15%;
background: #F0F1F6;
border: 1rpx solid #A6C8C0;
border-radius: 50%;
color: #A6C8C0;
line-height: 90rpx;
text-align: center;
font-size: 50rpx;
font-family: Source Han Sans CN;
font-weight: bold;
.information {
width: 160rpx;
margin: 11px 4px 4px -10px;
font-size: 26rpx;
font-family: Source Han Sans CN;
font-weight: 400;
color: #8E8E8E;
line-height: 38rpx;
}
}
// .number {
.numberone:hover {
background-color: #26A888;
color: #fff;
}
.information:hover {
color: #26A888;
}
::v-deep .uni-input-input {
left: 20rpx;
}
.number {
width: 180rpx;
height: 150rpx;
position: absolute;
top: 6%;
left: 65%;
.numbertwo {
width: 90rpx;
height: 90rpx;
left: 50%;
transform: translateX(50%);
background: #F0F1F6;
border-radius: 50%;
color: #fff;
line-height: 90rpx;
text-align: center;
font-size: 50rpx;
background-color: #26A888;
font-family: Source Han Sans CN;
font-weight: bold;
}
.information {
padding-top: 20rpx;
font-size: 26rpx;
font-family: Source Han Sans CN;
font-weight: 400;
color: #26A888;
line-height: 38rpx;
text-align: center;
}
}
.item {
position: absolute;
width: 202rpx;
height: 1rpx;
top: 10%;
left: 34%;
background: linear-gradient(-90deg, #E6E6E6, #26A888);
}
}
}
</style>

View File

@ -0,0 +1,125 @@
page {
background-color: #F4F5F7;
}
.app {
width: 100%;
.inputs {
background-color: #fff;
margin: 20rpx auto;
box-shadow: 0rpx 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
border: 1px solid #f0f0f0;
width: 96%;
height: 65rpx;
margin: 10rpx 0 10rpx 50%;
transform: translateX(-50%);
border-radius: 5rpx;
background-color: #Ffffff;
z-index: 999;
.input {
margin: 0 auto;
position: absolute;
height: 65rpx;
// top: 8%;
left: 10%;
width: 90%;
font-size: 26rpx;
color: #000000;
}
.icon {
background: url(@/static/pagesB/sousuo.png) no-repeat;
width: 30rpx;
height: 28rpx;
background-size: cover;
position: absolute;
top: 30%;
left: 3%;
}
}
.list {
background-color: #fff;
width: 96%;
margin: 20rpx auto;
.item {
width: 96%;
margin: 0 auto;
padding-bottom: 60rpx;
border-bottom: 2rpx solid #E6E6E6;
position: relative;
height: 300rpx;
border-radius: 5rpx;
.zixunbtn {
width: 169rpx;
height: 61rpx;
background: #26A888;
border-radius: 5rpx;
font-size: 28rpx;
font-weight: 400;
color: #FFFFFF;
line-height: 61rpx;
text-align: center;
position: absolute;
top: 65%;
right: 10rpx;
}
.title {
position: absolute;
top: 70%;
left: 210rpx;
font-size: 18rpx;
font-weight: 500;
color: #FFA733;
line-height: 40rpx;
height: 40rpx;
background: #FFFFFF;
border: 1px solid #FFA115;
border-radius: 5rpx;
text-align: center;
padding: 0 15rpx;
}
.address {
position: absolute;
top: 38%;
left: 210rpx;
font-size: 28rpx;
font-weight: 400;
color: #959595;
text-overflow: -o-ellipsis-lastline;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
line-clamp: 2;
-webkit-box-orient: vertical;
white-space: normal;
word-break: break-all;
}
.name {
position: absolute;
font-size: 28rpx;
font-weight: 500;
color: #333333;
top: 20%;
left: 210rpx;
}
image {
position: absolute;
top: 50%;
transform: translateY(-50%);
left: 5rpx;
width: 180rpx;
height: 180rpx;
}
}
}
}

View File

@ -0,0 +1,83 @@
<template>
<view class="app">
<view class="inputs">
<i class="icon"></i>
<input type="text" name="" id="" class="input" placeholder="请输入医生姓名">
</view>
<view class="list">
<view class="item" v-for="item in doctorlist" @tap='emitdata(item)'>
<image src="../../static/docHead.png" mode=""></image>
<view class="name">
{{item.realname?item.realname:''}}
</view>
<view class="address">
{{item.teamName?item.teamName:''}}
</view>
<view class="title">
{{item.teamMemberTypeName?item.teamMemberTypeName:''}}
</view>
<view class="zixunbtn">
选TA
</view>
</view>
</view>
</view>
</template>
<script>
import {
getDoctorList
} from '@/api/pagesC/choosedoctor/index.js'
export default {
data() {
return {
orgNo: null,
doctorlist: [],
doctortotal: 0,
pageNum: 1,
};
},
methods: {
getDoctorListinfo() {
getDoctorList(this.pageNum, this.orgNo, '1').then(res => {
this.doctorlist = res.rows
this.doctortotal = res.total
})
},
emitdata(item) {
uni.$emit('doctordata', {
data: JSON.stringify(item),
})
uni.navigateBack({
delta: 1
});
},
},
onLoad(options) {
this.orgNo = options.orgNo
this.getDoctorListinfo();
},
onReachBottom() { //
if (this.doctorlist.length >= this.doctortotal) {} else {
this.pageNum++;
getDoctorList(this.pageNum, this.orgNo, '1').then(res => {
res.rows.forEach(e => {
this.doctorlist.push(e)
})
this.doctortotal = res.total
})
}
},
onPullDownRefresh() { //
this.pageNum = 1;
this.getDoctorListinfo()
setTimeout(function() {
uni.stopPullDownRefresh();
}, 1000);
},
}
</script>
<style lang="scss">
@import './choosedoctor.scss';
</style>

View File

@ -0,0 +1,280 @@
<template>
<view class="app">
<view class="top">
<u-dropdown active-color='#26A888'>
<u-dropdown-item v-model="address" :title="addressname" :options="addressoptions"
@change='dropitemchange'></u-dropdown-item>
</u-dropdown>
<view class="inputs">
<i class="icon"></i>
<input type="text" name="" id="" class="input" placeholder="搜签约机构">
</view>
</view>
<view class="text">
请选择您想要签约的机构
</view>
<view class="list">
<view class="item" v-for="item in institutionlist" @tap='emitdata(item)'>
<view class="title">
{{item.orgName?item.orgName:''}}
</view>
<view class="address">
{{item.address?item.address:''}}
</view>
<view class="distance" v-if="item.distance">
<image src="../../static/pages/address.png" mode=""></image>
<view class="">
{{item.distance}} KM
</view>
</view>
<view class="Selected">
已选择
</view>
</view>
</view>
</view>
</template>
<script>
import {
getCounty,
getNearbyOrg
} from '@/api/pagesC/selectInstitution/index.js'
export default {
data() {
return {
address: 1,
addressname: '全部',
addressoptions: [{
label: '全部',
value: '',
}, ],
query: {
lat: '',
lng: '',
pageSize: 10,
pageNum: 1
},
institutionlist: [],
institutiontotal: 0,
};
},
methods: {
dropitemchange(e) {
this.addressname = this.addressoptions.find(m => m.value === e).label
this.query.countyNo = e
this.getNearbyOrginfo()
},
getCountyinfo() {
var obj = {
pageSize: 10,
pageNum: 1
}
getCounty(obj, '1').then(respp => {
respp.data = respp.data.forEach(e => {
e.label = e.orgName
e.value = e.orgNo
this.addressoptions.push(e)
})
})
},
getNearbyOrginfo() {
getNearbyOrg(this.query, '1').then(respp => {
this.institutionlist = respp.rows
this.institutiontotal = respp.total
})
},
emitdata(item) {
uni.$emit('data', {
data: JSON.stringify(item),
})
uni.navigateBack({
delta: 1
});
},
},
onLoad(options) {
this.getCountyinfo()
var that = this
uni.getLocation({
type: 'wgs84',
success: function(resp) {
that.query.lat = resp.latitude
that.query.lng = resp.longitude
that.getNearbyOrginfo()
},
fail: function(err) {},
});
},
onReachBottom() { //
if (this.institutionlist.length >= this.institutiontotal) {} else {
this.query.pageNum++;
getNearbyOrg(this.query, '1').then(respp => {
respp.rows.forEach(e => {
this.institutionlist.push(e)
})
})
}
},
onPullDownRefresh() { //
this.pageNum = 1;
this.getNearbyOrginfo()
setTimeout(function() {
uni.stopPullDownRefresh();
}, 1000);
},
}
</script>
<style lang="scss">
page {
background-color: #F4F5F7;
}
.app {
width: 94%;
margin: 20rpx auto;
padding: 20rpx 0 100rpx 0;
background-color: #fff;
font-size: 24rpx;
.text {
width: 92%;
margin: 30rpx auto;
font-weight: 500;
color: #EE8F15;
}
.list {
width: 92%;
margin: 0 auto;
.item {
margin: 40rpx auto;
height: 120rpx;
position: relative;
border-bottom: 2rpx solid #E6E6E6;
.Selected {
width: 108rpx;
height: 40rpx;
border: 1px solid #26A888;
border-radius: 5rpx;
position: absolute;
right: 0%;
top: 10%;
font-weight: 500;
color: #26A888;
line-height: 40rpx;
text-align: center;
}
.title {
font-size: 30rpx;
font-weight: 500;
color: #333333;
}
.address {
font-weight: 400;
color: #8E8E8E;
position: absolute;
left: 0%;
bottom: 10%;
}
.distance {
font-weight: 400;
color: #8E8E8E;
position: absolute;
right: 0%;
bottom: 10%;
display: flex;
align-items: center;
image {
padding-right: 10rpx;
width: 17rpx;
height: 21rpx;
}
}
}
}
.top {
width: 90%;
margin: 0 auto;
display: flex;
height: 84rpx;
justify-content: space-around;
.inputs {
background-color: #fff;
width: 65%;
height: 60rpx;
border-radius: 5rpx;
background-color: #Ffffff;
z-index: 999;
position: relative;
top: 50%;
transform: translateY(-50%);
background: #F6F6F6;
border: 1px solid #F6F6F6;
border-radius: 38rpx;
.input {
margin: 0 auto;
position: absolute;
height: 60rpx;
// top: 8%;
left: 13%;
width: 80%;
font-size: 26rpx;
color: #000000;
}
.icon {
background: url(@/static/pagesB/sousuo.png) no-repeat;
width: 30rpx;
height: 28rpx;
background-size: cover;
position: absolute;
top: 50%;
transform: translateY(-50%);
left: 3%;
}
}
::v-deep .u-flex {
width: 100% !important;
}
::v-deep .u-dropdown__content {
overflow-y: scroll !important;
height: 500rpx;
.u-flex {
width: 0 !important;
}
}
::v-deep .u-dropdown__content__mask {
background: none !important;
}
::v-deep .u-dropdown__menu__item {
width: 100% !important;
}
::v-deep .u-cell__value {
flex: 0;
}
::v-deep .u-dropdown {
:v-deep .u-dropdown__menu {}
}
::v-deep .u-cell-box {}
}
}
</style>