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

# Conflicts:
#	components/ld-select/ld-select.vue
This commit is contained in:
2023-10-10 14:39:49 +08:00
commit 68f339a587
20 changed files with 1847 additions and 828 deletions

29
api/conversion.js Normal file
View File

@ -0,0 +1,29 @@
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 ''
}
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;
};
// 出生日期转年龄
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;
}

View File

@ -4,14 +4,31 @@ import request from "../../request.js"
export function getOpenId(code) {
return request({
url: `/applet/register/getOpenId/${code}`,
method: 'GET'
method: 'GET',
header: {
// Authorization: 'Bearer' + ' ' + uni.getStorageSync('token')
},
})
}
// 获取当前注册居民
export function getCurrentUser(data) {
export function getCurrentUser(openid, cityCode) {
return request({
url: `/applet/register/getCurrentResident/${data.openid}/${data.cityCode}`,
method: 'GET'
url: `/applet/register/getCurrentResident/${openid}/${cityCode}`,
method: 'GET',
header: {
// Authorization: 'Bearer' + ' ' + uni.getStorageSync('token')
},
})
}
// 获取签约信息
export function detail(identity,region) {
return request({
url: `/applet/signinfo/detail/${identity}`,
method: 'GET',
header: {
region: region,
// Authorization: 'Bearer' + ' ' + uni.getStorageSync('token')
},
})
}

View File

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

View File

@ -6,4 +6,11 @@ export function getPoserInfoListByType() {
method: 'GET'
})
}
// 获取当前预约详情
export function getScreening(patientId) {
return request({
url: `/nurseApplet/screening/record/getScreening/${patientId}`,
method: 'GET'
})
}

View File

@ -1,9 +1,9 @@
import request from "../../request.js"
// 注册
export function register(data) {
export function registerdata(data) {
return request({
url: `/applet/register`,
url: '/applet/register',
method: 'POST',
data: data
})

View File

@ -0,0 +1,15 @@
import request from "../../request.js"
// 获取预约列表
export function getOrderList(patientId,pageNum,pageSize) {
return request({
url: `/nurseApplet/screening/record/list?patientId=${patientId}&pageNum=${pageNum}&pageSize=${pageSize}` ,
// data: data,
method: 'get'
})
}
// export function inviteFriends(patientId) {
// return request({
// url: `/nurseApplet/patientInfo/inviteFriends?inviteId=${patientId}`,
// method: 'post'
// })
// }

View File

@ -0,0 +1,242 @@
// import request from '../jsIndex'
import request from "../../request.js"
// 济南
// 预约
export function screenOrder(data) {
return request({
url: '/nurseApplet/screening/record/save',
data: data,
method: 'post'
})
}
// 获取当前预约详情
export function getScreening(registerId) {
return request({
url: `/screening/getScreening/${registerId}`,
method: 'GET'
})
}
// 取消预约
export function cancelOrder(screeningId) {
return request({
url: `/screening/cancel/${screeningId}`,
method: 'GET'
})
}
// 保存血压
export function saveBP(data) {
return request({
url: '/health/saveBP',
data: data,
method: 'post'
})
}
// 保存血糖
export function saveBG(data) {
return request({
url: '/health/saveBG',
data: data,
method: 'post'
})
}
// 绑定设备
export function jnBindDevice(data) { //bindDevice
return request({
url: '/bind/bindDevice',
data: data,
method: 'post'
})
}
// 查询绑定设备
export function getbindDeviceList(registerId) {
return request({
url: `/bind/findList/${registerId}`,
method: 'get'
})
}
// 解绑设备
export function deleteDevice(data) {
return request({
url: `/bind/del/${data.registerId}/${data.sn}`,
method: 'get'
})
}
// 激活服务
export function activateServe(data) {
return request({
url: '/resident/activatePackage',
data: data,
method: 'post'
})
}
// 是否已激活服务
export function whetherActivate(registerId) {
return request({
url: `/resident/getByResident/${registerId}`,
method: 'get'
})
}
// 获取最新的处方记录
export function newPrescription(registerId) {
return request({
url: `/prescriptionRecord/getLastRecord/${registerId}`,
method: 'get'
})
}
// 查询处方记录
export function prescriptionRecord(registerId) {
return request({
url: `/prescriptionRecord/getByResident/${registerId}`,
method: 'get'
})
}
// 查询处方详情
export function prescriptionDetail(recordId) {
return request({
url: `/preRecordDetail/getByRecord/${recordId}`,
method: 'get'
})
}
// 获取筛查结果列表
export function screeningResultList(registerId) {
return request({
url: `/screening/record?registerId=${registerId}`,
method: 'get'
})
}
// 获取最新的筛查结果
export function lastScreeningResult(registerId) {
return request({
url: `/screening/last/${registerId}`,
method: 'get'
})
}
// 获取筛查结果详情
export function screeningResultDetail(screeningId) {
return request({
url: `/screening/detail/${screeningId}`,
method: 'get'
})
}
// 每日健康 添加饮食
export function addDiet(data) {
return request({
url: '/health/saveDiet',
data: data,
method: 'post'
})
}
// 每日健康 添加运动
export function addSport(data) {
return request({
url: '/health/saveSport',
data: data,
method: 'get'
})
}
// 每日健康 添加用药
export function addMedication(data) {
return request.post({
url: '/health/saveMedication',
data: data
})
}
// 获取每日健康记录
export function getEverydayHealthRecord(data) {
return request.get({
url: `/health/getInfo/${data.registerId}/${data.date}`
})
}
// 获取某天饮食记录
export function getDietOfDayHealthRecord(data) {
return request.get({
url: `/health/getDietOfDay/${data.registerId}/${data.date}`
})
}
// 获取某天运动记录
export function getSportOfDayHealthRecord(data) {
return request.get({
url: `/health/getSportOfDay/${data.registerId}/${data.date}`
})
}
// 获取某天用药记录
export function getMedicationOfDayHealthRecord(data) {
return request.get({
url: `/health/getMedicationOfDay/${data.registerId}/${data.date}`
})
}
// 获取筛查结果 图片
export function getScreeningResultPic(fileId) {
return request.get({
url: `/system/file/view/${fileId}`
})
}
// 修改用户信息
export function changeUserInfo(data) {
return request.post({
url: '/register/update',
data: data
})
}
// 获取机构列表
export function getDeptList() {
return request({
url: `/nurseApplet/hospital/getList`,
method: 'get'
})
}
// 获取筛查项目列表
export function getProlist(data) {
return request({
url: '/nurseApplet/screening/project/list',
data: data,
method: 'get'
})
}
// 获取预约列表
export function getOrderList(data) {
return request.get({
url: '/screening/list',
data: data
})
}
// 获取最后一次血糖记录
export function getLastBgRecord(registerId) {
return request.get({
url: `/health/getLastBG/${registerId}`,
})
}
// 获取最后一次血压 心率 记录
export function getLastBpAndHrRecord(registerId) {
return request.get({
url: `/health/getLastBP/${registerId}`,
})
}
// 获取复诊记录时间轴
export function getSubsequentVisitTime(identity) {
return request.get({
url: `/performance/timelineList/${identity}`,
})
}
// 获取复诊记录详情
export function getSubsequentVisitDetail(perRecordId) {
return request.get({
url: `/performance/getDetail/${perRecordId}`,
})
}
// 推送筛查项目跳转查询推荐详情
export function getScreeningDetail(assessRecordId) {
return request.get({
url: `/screening/getInfo/${assessRecordId}`,
})
}
// end

View File

@ -1,5 +1,6 @@
import baseurl from './baseurl.js'
// Authorization: 'Bearer' + ' ' + uni.getStorageSync('token')
var request = function(config) {
return new Promise((resolve, rejected) => {
uni.showLoading({
@ -10,9 +11,7 @@ var request = function(config) {
data: config.data,
method: config.method,
timeout: 10000,
header: {
Authorization: 'Bearer' + ' ' + uni.getStorageSync('token')
},
header:config.header,
success(res) {
uni.hideLoading();
resolve(res.data)

View File

@ -232,6 +232,10 @@
</style>
<style lang="scss" scoped>
::v-deep .input.data-v-2ee6bce8{
border: none;
}
.main{
font-size: 28rpx;
}

View File

@ -50,7 +50,7 @@
"quickapp" : {},
/* */
"mp-weixin" : {
"appid" : "wxdc32268eca6b78f9",
"appid" : "wxccb16a452ab5e4b4",
"setting" : {
"urlCheck" : false,
"postcss" : true,

View File

@ -64,6 +64,15 @@
"enablePullDownRefresh": false
}
},
{
"path": "orderlist/orderlist",
"style": {
"navigationBarTitleText": "预约详情",
"enablePullDownRefresh": false,
// "navigationStyle": "default",
"navigationBarBackgroundColor": "#4ac4ab"
}
},
{
"path": "screenorder/screenorder",
"style": {
@ -394,6 +403,7 @@
"enablePullDownRefresh": false
}
}
]
}, {
"root": "pagesC",

View File

@ -9,6 +9,7 @@
请拍摄本人头像
</view>
</view>
<view class="contentV">
<view class="mark"></view>
<image v-if="tempImg" mode="widthFix" :src="tempImg" />
@ -16,6 +17,7 @@
flash="off" resolution='high' />
<view v-show="!tempImg && tipsText" class="tipV">{{ tipsText }}</view>
</view>
<view class="footerV">
<view style="width: 100%;">
<view v-if="!tempImg" style="width: 100%;">
@ -157,6 +159,7 @@
if (this.tipsText != "" && this.tipsText != "请拍照") {
return;
}
uni.getSetting({
success: (res) => {
if (!res.authSetting['scope.camera']) {
@ -177,6 +180,9 @@
tempImagePath
}) => {
this.tempImg = tempImagePath
//
// uni.$emit("headPictureUrl",this.tempImg)
console.log("=======tempImg:", this.tempImg)
}
})
@ -197,10 +203,14 @@
duration: 2000,
})
}, 2000);
uni.navigateTo({
url:`/pages/register/register?headPictureUrl=${this.tempImg}`
})
},
// -
handleCancelClick() {
console.log(this.tempImg)
this.tempImg = ''
}
}

View File

@ -2,9 +2,10 @@
<view class="app">
<view class="content">
<image src="/static/pageC/homepage.png" mode=""></image>
<view class="loginmount" @tap='gologin'>
<view class="loginmount">
<image src="/static/pageC/TAB.png" mode=""></image>
<text>你好,请登录</text>
<text v-if="patientName">{{patientName}}</text>
<text @tap="login" v-else>你好,请登录</text>
</view>
</view>
<view class="contentcenter">
@ -26,7 +27,7 @@
服务预约
</view>
</view>
<view class="home">
<view class="home" @tap="count">
<image src="/static/pageC/exchange.png" mode=""></image>
<view class="name">
积分兑换
@ -66,22 +67,65 @@
<script>
import {
getOpenId,
getCurrentUser
getCurrentUser,
detail
} from '@/api/pages/homepage/homepage.js'
export default {
data() {
return {
openid: null,
title: 'Hello',
patientName:'',
userinfo:{},
identity:'',
cityCode:'',
Code:'',
}
},
onLoad() {
// this.login()
},
onShow() {
this.openid = uni.getStorageSync('openid');
var that = this
this.userinfo= uni.getStorageSync('userinfo');
this.cityCode = this.userinfo.cityCode;
var openid = this.userinfo.openid;
that.identity = this.userinfo.cardNo;
if (!openid && !that.cityCode) {
// that.appPersonallist = null
that.$refs.uToast.show({
title: '您未登录,请先登录',
type: 'error',
duration: '1000',
})
} else {
}
if(openid&&that.cityCode){
// isWxBing(openid, cityCode) {
getCurrentUser(openid,that.cityCode).then(res => {
this.patientName=res.data.patientName
console.log(res);
// if (!res.data) {
// //
// }
})
// }
}
},
methods: {
nologin() {
//
login(){
this.gologin();
},
gologin() {
this.$refs.uToast.show({
title: '您未登录,请先登录',
type: 'error',
@ -89,115 +133,214 @@
url: '/pages/login/login'
})
},
//
//
parentinfo() {
this.$refs.uToast.show({
title: '未签约,请先签约',
type: 'error',
duration: '1000',
// url: '/pages/login/login'
})
},
//
// detailinfo(){
// this.region=this.cityCode
// detail(this.identity,this.region).then(res => {
// this.Code=res.code
// if(this.Code==500){
// this.$refs.uToast.show({
// title: res.msg,
// type: 'error',
// duration: '1000',
// // url: '/pages/login/login'
// })
// }
// })
// },
//
goonline() {
if (this.openid) {
if(!this.userinfo){
this.gologin();
}else{
if(this.identity){
this.region=this.cityCode
detail(this.identity,this.region).then(res => {
this.Code=res.code
if(this.Code==500){
this.$refs.uToast.show({
title: '未签约,请先签约',
type: 'error',
duration: '1000',
})
}else{
uni.navigateTo({
url: '/pagesB/mysigning/mysigning'
})
// uni.navigateTo({
// url: '/pagesC/Onlinesigning/Onlinesigning'
// })
} else {
this.nologin()
}
})
}else{
}
}
},
//
//
count(){
if(!this.userinfo){
this.gologin();
}else{
if(this.identity){
this.region=this.cityCode
detail(this.identity,this.region).then(res => {
this.Code=res.code
if(this.Code==500){
this.$refs.uToast.show({
title: '未签约,请先签约',
type: 'error',
duration: '1000',
})
}else{
uni.navigateTo({
url: ''
})
}
})
}else{
}
}
},
//
goHealthrecords() {
if (this.openid) {
if(!this.userinfo){
this.gologin();
}else{
uni.navigateTo({
url: '/pagesC/Healthrecords/Healthrecords'
})
} else {
this.nologin()
}
},
//
gorecords() {
if (this.openid) {
if(!this.userinfo){
this.gologin();
}else{
uni.navigateTo({
url: '/pagesC/Screeningrecords/Screeningrecords'
})
} else {
this.nologin()
}
},
//
healthtest() {
if (this.openid) {
if(!this.userinfo){
this.gologin();
}else{
uni.navigateTo({
url: '/pagesC/healthtest/healthtest'
})
} else {
this.nologin()
}
},
//
sign() {
if (this.openid) {
if(!this.userinfo){
this.gologin();
}else{
uni.navigateTo({
url: '/pagesC/Physicalexamination/Physicalexamination'
})
} else {
this.nologin()
}
},
//
goappoint() {
if (this.openid) {
if(!this.userinfo){
this.gologin();
}else{
if(this.identity){
this.region=this.cityCode
detail(this.identity,this.region).then(res => {
this.Code=res.code
if(this.Code==500){
this.$refs.uToast.show({
title: '未签约,请先签约',
type: 'error',
duration: '1000',
})
}else{
uni.navigateTo({
url: '/pagesC/ServiceAppointment/ServiceAppointment'
})
} else {
this.nologin()
}
})
}else{
}
}
},
//
servicerecord() {
if (this.openid) {
if(!this.userinfo){
this.gologin();
}else{
uni.navigateTo({
url: '/pagesC/servicerecord/servicerecord'
})
} else {
this.nologin()
}
},
//
myappointment() {
if (this.openid) {
if(!this.userinfo){
this.gologin();
}else{
uni.navigateTo({
url: '/pagesC/Myappointment/Myappointment'
})
} else {
this.nologin()
}
},
gologin() {
uni.navigateTo({
url: '/pages/login/login'
})
},
login() {
const _this = this
uni.login({
success(res) {
getOpenId(res.code).then(Res => {
if (Res.code == 200) {
_this.isWxBing(Res.msg, '1')
}
})
}
})
},
isWxBing(openid, cityCode) {
getCurrentUser(openid, cityCode).then(res => {
console.log(res);
if (!res.data) {
//
}
})
}
// login() {
// const _this = this
// uni.login({
// success(res) {
// getOpenId(res.code).then(Res => {
// if (Res.code == 200) {
// _this.isWxBing(Res.msg, '1')
// }
// })
// }
// })
// },
}
}
</script>

View File

@ -21,6 +21,7 @@
return {
phonecode: undefined,
logincode: undefined,
code:undefined,
timer: undefined,
scenenurseStationId: undefined
};
@ -28,6 +29,7 @@
onShow() {
this.phonecode = undefined
this.logincode = undefined
this.code = undefined
this.scenenurseStationId = uni.getStorageSync('scenenurseStationId');
},
methods: {
@ -38,16 +40,19 @@
wx.login({
provider: 'weixin',
success: function(loginRes) {
that.logincode = loginRes.code
console.log(loginRes)
// uni.$emit('code',loginRes.code)
that.code = loginRes.code
that.pwdlogin();
}
});
}
},
login() {
getWeChatUser(this.logincode, this.phonecode).then(res => {
getWeChatUser(this.code).then(res => {
if (res.code == 200) {
uni.setStorageSync("openid", res.data.openid)
uni.setStorageSync("openid", res.data)
uni.setStorageSync("patientId", res.data.id)
uni.setStorageSync("phone", res.data.phone)
this.$refs.uToast.show({
@ -55,17 +60,18 @@
type: 'success',
duration: '1500'
})
console.log(this.logincode)
this.phonecode = undefined
this.logincode = undefined
uni.setStorageSync("Refresh", 'Refresh')
if (this.timer) {
clearTimeout(this.timer)
}
this.timer = setTimeout(e => {
uni.navigateBack({
delta: 1
})
}, 500)
// this.timer = setTimeout(e => {
// uni.navigateBack({
// delta: 1
// })
// }, 500)
} else {
this.$refs.uToast.show({
title: '登录失败',
@ -78,13 +84,17 @@
pwdlogin() {
var that = this
uni.clearStorageSync();
createMobileToken().then(res => {
uni.setStorageSync("token", res.data.token)
if (this.scenenurseStationId) {
uni.setStorageSync("scenenurseStationId", this.scenenurseStationId)
}
that.login()
uni.navigateTo({
url:`/pages/register/register?code=${this.logincode}`
})
that.login()
// createMobileToken().then(res => {
// uni.setStorageSync("token", res.data.token)
// if (this.scenenurseStationId) {
// uni.setStorageSync("scenenurseStationId", this.scenenurseStationId)
// }
// that.login()
// })
},
}, //1.
onShareAppMessage(res) {

View File

@ -46,7 +46,8 @@
mapActions
} from "vuex";
import {
getPoserInfoListByType
getPoserInfoListByType,
getScreening
} from '@/api/pages/medicalservice/index.js'
import {
getHeathHousingList
@ -58,6 +59,7 @@
pageNum: 1,
pageSize: 5,
informationCategoryVOList: [], //
patientId:'',
};
},
onShow() {
@ -66,9 +68,57 @@
},
methods: {
goAppointmentscreening(){
//
// this.userInfo
// let userInfo = uni.getStorageSync('userInfo')
// if (!userInfo) {
// uni.showModal({
// title: "",
// content: "",
// confirmText: '',
// cancelText: '',
// success(res) {
// if (res.confirm) {
// uni.redirectTo({
// url: "/pages/login/login?mode="
// })
// } else {
// wx.exitMiniProgram()
// }
// },
// })
// } else {
// if (!uni.getStorageSync('userInfo').identity) {
// uni.navigateTo({
// url: '../../pagesB/modifyInfo/modifyInfo'
// })
// return
// }
this.patientId = uni.getStorageSync('patientId');
getScreening(this.patientId).then(res => {
if (res.data.code == 200) {
// let userInfo = JSON.stringify(this.userInfo)
if (!res.data) {
uni.navigateTo({
url: '/pagesB/screenorder/screenorder'
})
} else {
uni.navigateTo({
url: '/pagesB/orderlist/orderlist'
})
}
}
})
// }
// uni.navigateTo({
// url: '/pagesB/screenorder/screenorder'
// })
uni.navigateTo({
url: '/pagesB/orderlist/orderlist'
})
},
//item
gohealthitem(item) {

View File

@ -1,48 +1,49 @@
<template>
<view class="register">
<view class="head" @tap="Face">
<image class="Facecollection" src="../../static/pages/Facecollection.png"></image>
<image class="Facecollection" :src="query.headPictureUrl" v-if="this.query.headPictureUrl"></image>
<image class="Facecollection" src="../../static/pages/Facecollection.png" v-else></image>
<span>人脸采集</span>
</view>
<view class="form">
<u-form :model="form" ref="uForm">
<u-form :model="query" ref="uForm">
<span>姓名</span>
<u-form-item prop="name" :border-bottom="false">
<u-input v-model="form.name" placeholder="请输入姓名" />
<u-input v-model="query.patientName" placeholder="请输入姓名" />
</u-form-item>
<view class="name">
性别
<view class="sex">
<u-radio-group v-model="query.sex" size='30'>
<u-radio @change='sexchange' v-for="(item, index) in sexlist" :key="index" :name="item.name" active-color="#26A888"
:disabled="item.disabled">
<u-radio @change='sexchange' v-for="(item, index) in sexlist" :key="index" :name="item.name"
active-color="#26A888" :disabled="item.disabled">
{{item.name}}
</u-radio>
</u-radio-group>
</view>
</view>
<view class="name">
出生日期
<view class="select" @tap='timeshow=true'>
<text>请选择出生日期</text>
<text v-if="query.birthDate==''">请选择出生日期</text>
<text v-else class="testitem">{{query.birthDate}}</text>
<image src="../../static/huijiantou.png" mode=""></image>
</view>
</view>
<span>手机号</span>
<u-form-item prop="phone" :border-bottom="false">
<u-input v-model="form.phone" placeholder="请输入手机号" />
<u-input v-model="query.phone" placeholder="请输入手机号" />
</u-form-item>
<span>身份证号</span>
<u-form-item prop="indent" :border-bottom="false">
<u-input v-model="form.indent" placeholder="请输入身份证号" />
<u-form-item prop="cardNo" :border-bottom="false">
<u-input v-model="query.cardNo" placeholder="请输入身份证号" />
</u-form-item>
<view class="name">
所属区域
<view class="select">
<text>请选择所属区域</text>
<!-- <text>{{address}}</text> -->
<view class="select" @tap='showPicker'>
<text v-if="!address">请选择所属区域</text>
<text v-else class="testitem">{{address}}</text>
<!-- <image src="../../static/huijiantou.png" mode=""></image> -->
</view>
</view>
@ -60,33 +61,41 @@
<view class="name">
所在位置
<view class="select" @tap='getAddress()'>
<text>请选择所在位置</text>
<!-- <text>{{query.locationName}}</text> -->
<text v-if="query.locationName ==''">请选择所在位置</text>
<text class="testitem">{{query.locationName}}</text>
</view>
</view>
<view class="">
<m-city style='z-index: 10076;' :provinceData="list" headTitle="地区选择" ref="cityPicker"
@funcValue="getpickerParentValue" pickerSize="4">
</m-city>
</view>
<view class="name">
基础疾病
<view class="select" @tap="godisease">
<text>请选择基础疾病</text>
<!-- <text v-for="(item,index) in query.diseaseInfoList">{{item.diseaseName}}</text> -->
<image src="../../static/huijiantou.png" mode=""></image>
<!-- <text v-if="!query.diseaseInfoList">请选择基础疾病</text> -->
<ld-select :multiple="true" :list="options" label-key="label" value-key="value"
placeholder="请选择" v-model="value2" @change="selectChange" @cancel="cancel"
@confirm="confirm"></ld-select>
<!-- <text v-else v-for="(item,index) in query.diseaseInfoList">{{item.diseaseName}}</text>
<image src="../../static/huijiantou.png" mode=""></image> -->
</view>
</view>
</u-form>
</view>
<view class="bottom">
<view class="radio">
<u-radio-group style="display: inline-block;position: relative;top: 5rpx;left: 26rpx;" size='20' @change="onChange" v-model="selected">
<u-radio shape="circle" active-color="#26A888" name="1"/>
<u-radio-group style="display: inline-block;position: relative;top: 5rpx;left: 26rpx;" size='20'
@change="onChange" v-model="selected">
<u-radio shape="circle" active-color="#26A888" name="1" />
<!-- <radio value="1" active-color="#26A888"></radio> -->
</u-radio-group>
<view class="agreement">我已阅读并同意<text @tap='maskshow=true'
>用户协议</text>
<view class="agreement">我已阅读并同意<text @tap='maskshow=true'>用户协议</text>
</view>
</view>
<view class="sbumit" @tap="informationinfo">
<view class="sbumit" @tap="submit">
提交
</view>
@ -130,10 +139,17 @@
getSubordinateRegions,
} from '@/api/pagesB/modifyAddress/modifyAddress.js';
import gkcity from "../../components/m-city/m-city.vue";
import ldSelect from '../../components/ld-select/ld-select.vue';
import {
registerdata
} from '@/api/pages/register/register.js'
export default {
components: {
contenttext,
"m-city": gkcity},
ldSelect,
"m-city": gkcity,
},
// components: {ldSelect},
onReady() {
this.$refs.uForm.setRules(this.rules);
},
@ -145,6 +161,7 @@
phone: '',
indent: ''
},
value2: [],
timeshow: false, //
params: {
year: true,
@ -164,8 +181,21 @@
}
],
// radio: 1,
radio:false,
selected:'',
selected: '',
options: [{
value: '1',
label: '高血压'
}, {
value: '2',
label: '高血糖'
}, {
value: '3',
label: '高血脂'
}, {
value: '0',
label: '无'
}],
// checked:false,
// chooseLocation: '', //
@ -181,8 +211,10 @@
medicalcarelist: [], //
address: '', //
query: { //
headPictureUrl: '',
couponId: null,
patientName: "",
cardNo: "",
phone: "",
address: "",
@ -191,20 +223,37 @@
homeLatitude: null,
nurseTypeIdList: [],
diseaseInfoList: [],
diseaseList: [],
patientId: '',
locationName: '',
sex: '',
birthDate: '',
cityCode: '1'
},
timer: null,
addresslength: null,
patientDiseaseInfoList: [], //
rules: {
name: [{
patientName: [{
required: true,
message: '请输入姓名',
trigger: ['change', 'blur'],
}],
sex: [{
required: true,
message: '请选择性别',
trigger: ['change', 'blur'],
}],
address: [{
required: true,
message: '请输入详细地址',
trigger: ['change', 'blur'],
}],
birthDate: [{
required: true,
message: '请选择出生日期',
trigger: ['change', 'blur'],
}],
phone: [{
required: true,
message: '请输入手机号',
@ -216,7 +265,7 @@
message: '手机号码不正确',
trigger: ['blur'],
}],
indent: [{
cardNo: [{
required: true,
message: '请输入身份证号',
trigger: ['change', 'blur'],
@ -230,26 +279,101 @@
}
}
},
onLoad() {
},
// onload(){
// },
// onUnload() {
// //
// uni.$off('code');
// },
methods: {
onChange(e) {
console.log(e)
this.selected=e
// console.log(e)
// this.allChecked = !this.allChecked;
// this.selected = e.detail.value;
},
//
selectChange(val) {
console.log(val);
},
cancel() {
},
confirm(e) {
this.query.diseaseList = e.map(Number)
console.log(e)
},
submit() {
uni.navigateTo({
url:'/pagesB/information/information'
console.log(this.query)
// this.query.openid = uni.getStorageSync('openid');
// uni.navigateTo({
// url: '/pagesB/information/information'
// })
var that = this
that.query.openid = uni.getStorageSync('openid');
if (that.query.sex == '男') {
that.query.sex = 'MALE';
} else if (that.query.sex == '女') {
that.query.sex = 'FEMALE';
}
if(that.query.sex==""){
that.$refs.uToast.show({
title: '请选择性别',
type: 'error'
})
// this.$refs.uForm.validate(valid => {
// if (valid) {
// console.log('');
// } else {
// console.log('');
// }
// });
}
console.log(that.selected)
if (!that.query.locationName) {
that.$refs.uToast.show({
title: '请选择所在位置',
type: 'error'
})
}
if (!that.query.birthDate) {
that.$refs.uToast.show({
title: '请选择出生日期',
type: 'error'
})
}
that.$refs.uForm.validate(valid => {
console.log(valid)
if (valid) {
if (!that.selected) {
that.$refs.uToast.show({
title: '请审核并同意用户协议',
type: 'error'
})
}else{
registerdata(that.query).then(res => {
if (res.code == 500) {
that.$refs.uToast.show({
title: res.msg,
type: 'error',
})
}else{
uni.setStorageSync("userinfo", that.query)
that.$refs.uToast.show({
title: '注册成功',
type: 'success',
duration: '1000',
})
uni.switchTab({
url: '/pages/homepage/homepage' ,
});
}
})
}
} else {
console.log('验证失败');
}
});
},
//
sexchange(e) {
@ -260,9 +384,9 @@
}
},
//
Face(){
Face() {
uni.navigateTo({
url:'/pages/facecollection/facecollection'
url: '/pages/facecollection/facecollection'
})
},
@ -428,9 +552,9 @@
}
},
godisease(item) {
uni.navigateTo({
url: `/pagesB/disease/disease?diseaseInfoList=${JSON.stringify(this.query.diseaseInfoList)}`
})
// uni.navigateTo({
// url: `/pagesB/disease/disease?diseaseInfoList=${JSON.stringify(this.query.diseaseInfoList)}`
// })
},
changeRadio() {
if (this.radio == 1) {
@ -440,12 +564,14 @@
}
},
tapradio() {
this.radio = 2;
this.selected = 1;
this.maskshow = false;
},
},
//
onLoad(options) {
console.log(options, '00')
this.query.headPictureUrl = options.headPictureUrl
let that = this
this.query.couponId = Number(options.couponId)
const value = uni.getStorageSync('patientId');
@ -455,9 +581,18 @@
this.areaInfo()
this.getNurseTypeInfo();
},
// onUnload() {
// //
// uni.$off('code');
// },
//
// onShow
onShow() {
// uni.$on('headPictureUrl',(res)=>{
// console.log(res, '000') // B
// // this.usnerinfo = options;
// })
var that = this
const invitationPatientId = uni.getStorageSync('invitationPatientId')
if (invitationPatientId) {
@ -497,7 +632,6 @@
}
</script>
<style lang="less" scoped>
@ -506,6 +640,92 @@
flex-direction: column;
justify-content: center;
align-items: center;
.Agreement{
width: 100%;
background-color: #fff;
text-align: center;
height: 1000rpx;
position: absolute;
top:5%;
font-size: 30rpx;
.title{
height: 100rpx;
line-height: 100rpx;
border-bottom: 1px solid #eeeeee;
font-size: 34rpx;
margin: 0px auto;
width: 100%;
text-align: center;
}
.scroll-Y{
height:830rpx ;
overflow-y:scroll;
text-align: left;
text-indent: 2em;
}
.cancel {
height:70rpx;
line-height: 70rpx;
font-size: 32rpx;
background-color: #F4F5F7;
position: absolute;
border-top: 1rpx solid #000000;
bottom:0;
right:0;
width: 50%;
color: #000000;
}
.determine {
height:70rpx;
line-height: 70rpx;
font-size: 32rpx;
width: 50%;
color: #F4F5F7;
background: #26A888;
position: absolute;
bottom:0;
left:0;
}
}
.radio-content {
margin: 50rpx auto;
width: 70%;
text-align: center;
font-size: 28rpx;
position: relative;
.agreement {
position: absolute;
top:50%;
left:20%;
transform: translateY(-50%);
color: #878987;
}
.radio-right {
height: 100rpx;
.radio {
display: inline-block;
width: 50rpx;
height: 50rpx;
border-radius: 70%;
border: 2rpx solid #178ffb;
position: absolute;
top:50%;
left:5%;
transform: translateY(-50%);
.radio-active {
width: 16rpx;
height: 16rpx;
border-radius: 50%;
background-color: #178ffb;
position: absolute;
top:50%;
left:50%;
transform: translate(-50%,-50%);
}
}
}
}
.head {
margin-top: 60rpx;
@ -529,7 +749,9 @@
// margin: 12rpx auto;
border: none;
border-radius: 5rpx;
.u-input__input{
.u-input__input {
font-size: 26rpx;
font-family: Source Han Sans CN;
font-weight: 400;
@ -539,17 +761,20 @@
}
}
::v-deep.input-placeholder{
::v-deep.input-placeholder {
color: #8E8E8E !important;
font-size: 20rpx;
font-family: Source Han Sans CN;
font-weight: 400;
}
::v-deep.uni-input-placeholder{
::v-deep.uni-input-placeholder {
color: #8E8E8E !important;
font-size: 20rpx;
}
.name {
// padding: 25rpx 30rpx 0 30rpx;
font-size: 30rpx;
@ -559,7 +784,7 @@
line-height: 38rpx;
.sex{
.sex {
width: 630rpx;
height: 63rpx;
background: #F6F6F6;
@ -569,7 +794,7 @@
}
::v-deep .u-radio.data-v-643b3322{
::v-deep .u-radio.data-v-643b3322 {
margin-top: 8rpx;
margin-left: 30rpx;
@ -588,12 +813,21 @@
width: 630rpx;
height: 63rpx;
background: #F6F6F6;
margin: 12rpx 0 12rpx 0;
margin: 20rpx 0 20rpx 0;
// border: 1rpx solid #F6F6F6;
border-radius: 5rpx;
display: flex;
position: relative;
.testitem {
font-size: 26rpx;
font-family: Source Han Sans CN;
font-weight: 400;
color: #000000;
}
text {
padding-left: 20rpx;
line-height: 63rpx;
@ -633,10 +867,12 @@
font-size: 30rpx;
}
}
.bottom{
.bottom {
position: relative;
width: 100%;
.radio{
.radio {
position: relative;
width: 44%;
left: 50%;
@ -645,7 +881,7 @@
bottom: 20rpx;
.agreement{
.agreement {
// width: 225rpx;
// height: 17rpx;
font-size: 18rpx;
@ -656,7 +892,8 @@
display: inline-block;
}
}
.sbumit{
.sbumit {
width: 496rpx;
height: 61rpx;
line-height: 61rpx;

View File

@ -0,0 +1,150 @@
<template>
<view class="orderlist">
<view class="orderbtn" @click="goScreenOrder">
新增预约
</view>
<template v-for="(item, index) in pageList">
<view class="content" @click="goitemDetail(item)" :key="index">
<view class="c_top" >
<view class="c_right">
<text>预约项目{{ item.projectName }}</text>
<text>预约时间{{ item.applyStartTime ? item.applyStartTime.substring(0, 16) : '' + '-' + item.applyEndTime ? item.applyEndTime.substring(10, 16) : '' }}</text>
<text>预约机构{{ item.hospitalName }}</text>
<text>登记状态
<text v-if="item.screeningStatus < 3">未登记</text>
<!-- <text v-if="item.screeningStatus == 2">取消预约</text> -->
<text v-if="item.screeningStatus >= 3">已登记</text>
<!-- <text v-else>已完成</text> -->
</text>
<view style="color:#333;margin-bottom: 30rpx;">
预约状态
<uni-tag v-if="item.exceedStatus == '0'" text="生效中" size="mini" type="success" />
<uni-tag v-if="item.exceedStatus == '1'" size="mini" text="已过期" />
</view>
<text v-if="item.registrationDate">登记时间{{ item.registrationDate }}</text>
</view>
<image style="width: 100%;" :src="item.applyBarcode"></image>
</view>
</view>
</template>
</view>
</template>
<script>
import {
getOrderList
} from '@/api/pagesB/orderlist/orderlist.js'
export default {
data() {
return {
pageList: {},
patientId: "",
userInfo: {},
pageSize:10,
pageNum:1,
}
},
// onLoad(e) {
// if (e) {
// this.userInfo = JSON.parse(e.userInfo)
// this.registerId = this.userInfo.registerId
// }
// },
onShow() {
this.getOrderList()
},
// onUnload() {
// uni.navigateBack({
// delta: 1
// })
// },
methods: {
getOrderList() {
this.patientId = uni.getStorageSync('patientId');
console.log(this.pageNum,'55')
getOrderList(this.patientId,this.pageNum,this.pageSize).then(res => {
// console.log(res,'999')
if (res.code == 200) {
this.pageList = res.rows
console.log(this.pageList,'999')
}
})
},
goScreenOrder() {
// let userInfo = JSON.stringify(this.userInfo)
uni.navigateTo({
// url: `/pagesB/screenorder/screenorder?userInfo=${userInfo}`
url: '/pagesB/screenorder/screenorder'
})
// redirectTo
},
// goitemDetail(e) {
// uni.navigateTo({
// url: `../../pagesB/screensuccess/screensuccess?screenInfo=${encodeURIComponent(JSON.stringify(e))}`
// })
// }
}
}
</script>
<style lang="scss">
.orderlist {
padding: 20rpx 30rpx;
.orderbtn {
border: 2rpx solid #4AC4AB;
border-radius: 10rpx;
padding: 15rpx 0;
color: #4AC4AB;
text-align: center;
}
.content {
padding: 20rpx;
margin-top: 40rpx;
border-radius: 20rpx;
background: #fff;
.c_top {
// display: flex;
image {
// min-width: 220rpx;
// max-width: 220rpx;
// height: 220rpx;
height: 160rpx;
}
.c_right {
font-size: 28rpx;
margin-left: 25rpx;
display: flex;
flex-direction: column;
justify-content: center;
text {
// line-height: 75rpx;
color: #333;
margin-bottom: 30rpx;
}
}
}
}
button {
color: white;
background: red;
}
}
/deep/ .checklist-text {
font-size: 15px !important;
}
/deep/ .uni-tag--success.data-v-1516016e,
.uni-tag--mini.data-v-1516016e {
color: #fff !important;
border-radius: 10rpx !important;
}
</style>

View File

@ -6,7 +6,7 @@
<view style="margin-right: 30rpx; color: #333">年龄{{userInfo.age}}</view>
<view style="color: #333;">性别{{userInfo.gender}}</view>
</view>
<view class="illness">
<!-- <view class="illness">
<view v-show="userInfo.disease.indexOf('0') != -1">
<span></span>
</view>
@ -19,7 +19,7 @@
<view v-show="userInfo.disease.indexOf('3') != -1">
<span>高血脂</span>
</view>
</view>
</view> -->
</view>
<view class="line"></view>
<view class="title">
@ -30,13 +30,15 @@
<u-form labelPosition="left" :model="formData" :rules="rules" ref="form1">
<u-form-item label="预约机构" labelWidth="80">
<view class="uniDataSelectClass">
<uni-data-select v-model="formData.deptId" :localdata="DeptList" @change="changeDept" :clear="false">
<uni-data-select v-model="formData.hospitalId" :localdata="DeptList" @change="changeDept"
:clear="false">
</uni-data-select>
</view>
</u-form-item>
<u-form-item label="预约项目" labelWidth="80">
<view class="uniDataSelectClass">
<uni-data-select v-model="formData.projectId" :localdata="ProList" @change="changePro" :clear="false">
<uni-data-select v-model="formData.projectId" :localdata="ProList" @change="changePro"
:clear="false">
</uni-data-select>
</view>
</u-form-item>
@ -47,7 +49,7 @@
<!-- <view style="display: flex;justify-content: center;margin-top: 80rpx;"><uni-data-checkbox multiple v-model="test" :localdata="test1"></uni-data-checkbox></view> -->
<view style="height: 180rpx;"></view>
<view class="btn">
<u-button type="primary" text="提交预约信息" @click="submit"></u-button>
<u-button type="success" text="提交预约信息" @click="submit">提交预约信息</u-button>
</view>
<u-action-sheet :show="showSex" :actions="actions" title="请选择性别" @close="showSex = false" @select="sexSelect">
</u-action-sheet>
@ -55,16 +57,16 @@
</template>
<script>
// import {
// screenOrder,
// getDeptList,
// getProlist
// } from '@/service/api/jsApi.js'
// import {
// getSex,
// getBirthday,
// getAgeFun
// } from '@/utils/conversion.js'
import {
screenOrder,
getDeptList,
getProlist
} from '@/api/pagesB/screenOrder/index.js'
import {
getSex,
getBirthday,
getAgeFun
} from '@/api/conversion.js'
export default {
data() {
return {
@ -74,19 +76,19 @@
test: ['1'],
formData: {
residentName: '',
identity: '',
identity: '370921199810180329',
certType: '1',
gender: '',
birthday: '',
phone: '',
birthday: '1998-10-18',
phone: '18854188230',
address: '',
disease: '',
height: '',
weight: '',
applyStartTime: '',
applyEndTime: '',
deptId: '',
deptName: '',
hospitalId: '',
hospitalName: '',
projectId: '',
projectName: ''
},
@ -181,47 +183,51 @@
}
},
onLoad(e) {
if (e) {
this.userInfo = JSON.parse(e.userInfo)
this.diseaseValue = this.userInfo.disease.split(',')
if (this.userInfo.gender == '1') {
this.userInfo.gender = '男'
} else {
this.userInfo.gender = '女'
}
this.userInfo.age = getAgeFun(this.userInfo.birthday)
}
console.log(e, '55')
// if (e) {
// this.userInfo = JSON.parse(e.userInfo)
// this.diseaseValue = this.userInfo.disease.split(',')
// if (this.userInfo.gender == '1') {
// this.userInfo.gender = ''
// } else {
// this.userInfo.gender = ''
// }
// this.userInfo.age = getAgeFun(this.userInfo.birthday)
// }
// this.init()
this.getDeptAndPro()
},
methods: {
getDeptAndPro() {
getDeptList(this.userInfo.registerId).then(res => {
if (res.data.code == 200) {
this.DeptList = res.data.data.map(item => {
getDeptList().then(res => {
console.log(res, '1')
// if (res.data.code == 200) {
this.DeptList = res.data.map(item => {
console.log(item, '888')
return {
text: item.deptName,
value: item.deptId
text: item.hospitalName,
value: item.id
}
})
}
// }
})
getProlist({
projectType: 1,
status: 0
}).then(res => {
if (res.data.code == 200) {
this.ProList = res.data.data.map(item => {
// if (res.data.code == 200) {
this.ProList = res.data.map(item => {
console.log(item, '999')
return {
text: item.projectName,
value: item.projectId
}
})
}
// }
})
},
changeDept(e) {
this.formData.deptName = this.DeptList.find(item => item.value == e).text
this.formData.hospitalName = this.DeptList.find(item => item.value == e).text
},
changePro(e) {
this.formData.projectName = this.ProList.find(item => item.value == e).text
@ -267,7 +273,9 @@
},
process() {
let _this = this
if (!this.formData.deptId) {
console.log(this.formData, '123')
if (!this.formData.hospitalId) {
uni.showModal({
title: '提示',
content: '请选择预约机构',
@ -288,9 +296,10 @@
})
return
}
this.formData.registerId = this.userInfo.registerId
this.formData.identity = this.userInfo.identity
this.formData.disease = this.userInfo.disease
this.formData.patientId = uni.getStorageSync('patientId');
// this.formData.identity = this.userInfo.identity
// this.formData.disease = this.userInfo.disease
this.formData.applyStartTime = this.datetimerange[0]
this.formData.applyEndTime = this.datetimerange[1]
if (this.formData.gender == '男') {
@ -299,35 +308,39 @@
this.formData.gender = '2'
}
screenOrder(this.formData).then(res => {
this.formData.disease = this.formData.disease.split(',')
// this.formData.disease = this.formData.disease.split(',')
if (this.formData.gender == '1') {
this.formData.gender = '男'
} else {
this.formData.gender = '女'
}
if (res.data.code == '200') {
console.log(res,'55')
if (res.code == 200) {
uni.showToast({
title: '预约成功',
duration: 1000
});
setTimeout(() => {
// uni.navigateTo({
// // url: `../screensuccess/screensuccess?registerId=${res.data.data}`
// url: `../orderlist/orderlist?registerId=${_this.userInfo.registerId}`
// url: `../screensuccess/screensuccess?registerId=${res.data.data}`
// url: `/pageB/orderlist/orderlist?patientId=${this.formData.patientId}`
// url: '/pageB/orderlist/orderlist'/
// })
uni.navigateBack({
delta:1
delta: 1
})
}, 1000)
}
})
},
submit() {
this.$refs.form1.validate().then(res => {
// console.log(8)
// this.$refs.form1.validate().then(res => {
// console.log(res,'555')
this.process()
}).catch(errors => {
// }).catch(errors => {
return
})
// })
},
IdentityBlur(e) {
this.formData.gender = getSex(e)
@ -343,6 +356,11 @@
// z-index: 99;
// }
// }
::v-deep.u-btn--success.data-v-3bf2dba7 {
color: #ffffff;
border-color: #4AC4AB;
background-color: #4AC4AB !important;
}
.user_info {
border: 1px solid #4AC4AB;

View File

@ -3,6 +3,65 @@
padding: 20rpx 0 0;
background-color: #fff;
}
::v-deep .u-navbar-placeholder {
background-color: #F7F5F5;
z-index: 999;
}
.u-navbar {
display: block;
// height: 200rpx;
image {
margin: 0 4% 0 4%;
width: 20rpx;
height: 30rpx;
}
.title {
width: 31%;
font-size: 34rpx;
font-weight: 500;
color: #FFFFFF;
}
.inputitem {
position: relative;
// margin-left: 4%;
box-shadow: 0rpx 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
width: 60%;
height: 65rpx;
border-radius: 31rpx;
z-index: 999;
background: #65c0a9;
color: #FFFFFF;
.placeholder {
color: #FFFFFF;
}
.input {
margin: 0 auto;
position: absolute;
height: 65rpx;
// top: 8%;
left: 18%;
width: 80%;
font-size: 26rpx;
color: #FFFFFF;
}
.icon {
background: url(@/static/pagesB/sousuo.png) no-repeat;
width: 30rpx;
height: 28rpx;
background-size: cover;
position: absolute;
top: 28%;
left: 4%;
}
}
}
::v-deep .u-swiper-item{
}
::v-deep .u-swiper-image {

View File

@ -1,9 +1,20 @@
<template>
<view class="app">
<view class="inputs">
<!-- <view class="inputs">
<i class="icon"></i>
<input v-model="searchName" type="text" name="" id="" class="input" placeholder="请输入">
</view> -->
<u-navbar :is-back="false" :background="background" class="u-navbar">
<image src="@/static/pagesB/fanhui.png" mode="" @tap="goprevious"></image>
<view class="title" @tap="goprevious">
护理服务
</view>
<view class="inputitem">
<i class="icon"></i>
<input v-model="searchName" type="text" name="" id="" class="input" placeholder="搜索商品"
placeholder-class="placeholder">
</view>
</u-navbar>
<view class="Classificationlist">
<view v-for="(item,index) in nurseItemClassifyInfoList" :key="index" @tap='tapitemclass(item)'
:class="item.id == itemClassId?'itemclass':'item'">
@ -71,6 +82,9 @@
export default {
data() {
return {
background: {
backgroundColor: '#26A888',
},
nurseAgencyClassifyInfoList: [], //
conNewcurrent: 0,
nurseItemClassifyInfoList: [], //
@ -92,6 +106,11 @@
}
},
methods: {
goprevious() {
uni.navigateBack({
delta: 1
})
},
//swiper
goswiper(index) {
if (this.lbinfo[index].jumpLink == '/pages/medicalservice/medicalservice' || this.lbinfo[index].jumpLink ==