12.4更新

This commit is contained in:
zoujiandong 2023-12-04 14:49:14 +08:00
parent 63d7cb402d
commit 1e9ea2a70f
36 changed files with 1873 additions and 58 deletions

View File

@ -134,11 +134,14 @@ Page({
wx.setStorageSync('client_user_id_'+usertype, response.data.client_user_id);
app.globalData.config.userID = response.data.user_id;
app.globalData.isLogin=true;
app.imInit();
let handleGo=function(){
wx.switchTab({
url: next_url
})
}
app.imInit({path:'Pages/login/index'},1,handleGo);
//跳转页面
wx.switchTab({
url: next_url
})
}).catch(errors => {
console.error(errors);
})

View File

@ -135,10 +135,13 @@ Page({
wx.setStorageSync('user_id_'+usertype, response.data.user_id);
wx.setStorageSync('client_user_id_'+usertype, response.data.client_user_id);
app.globalData.config.userID = response.data.user_id;
app.imInit();
wx.switchTab({
url: wx.getStorageSync('next_url')
})
let handleGo=function(){
wx.switchTab({
url: wx.getStorageSync('next_url')
})
}
app.imInit({path:'Pages/mobile_login/index'},1,handleGo);
}).catch(errors => {console.error(errors);})
} else {
wx.showToast({

View File

@ -0,0 +1,88 @@
import { API } from './../../../utils/network/api'
import debounce from './../../../utils/debounce'
let api = new API()
const app = getApp()
Page({
data: {
navbarData: {
showCapsule: 1, //是否显示左上角图标 1表示显示 0表示不显示
title: '病历信息', //导航栏 中间的标题
},
height: app.globalData.height,
order_inquiry_id: "",
case_detail: {},
imglist: []
},
onLoad(options){
console.log("onLoad", options)
this.setData({
order_inquiry_id: options.order_inquiry_id
})
},
goReport:debounce(function(event){
wx.showLoading({
mask:true,
title: '正在打开文件...',
})
const url=event.currentTarget.dataset.url;
const randfile = new Date().getTime() + '检测报告';
const newPath = `${wx.env.USER_DATA_PATH}/${randfile}`;
wx.downloadFile({
// 示例 url并非真实存在
url:url,
filePath: newPath,
success: function (res) {
//const filePath = res.tempFilePath
wx.openDocument({
fileType:"pdf",
showMenu:true,
filePath: newPath,
success: function (res) {
console.log('打开文档成功');
wx.hideLoading()
},
fail:function(error){
wx.hideLoading()
wx.showToast({
title:res,
icon:"none"
})
}
})
},
fail:function(error){
wx.showToast({
title:error,
icon:"none"
})
}
})
}),
formatImgList(){
let diagnose_images = this.data.case_detail.diagnose_images?this.data.case_detail.diagnose_images:[];
let img_list = [];
diagnose_images.forEach(item => {
let img = {};
img.isImage = true;
img.url = item;
img_list.push(img);
})
this.setData({
imglist: img_list
})
},
onShow(){
//获取患者问诊病例
api.getInquiryDetail({order_inquiry_id: this.data.order_inquiry_id}).then(response => {
console.log(response);
this.setData({
case_detail: response.data
})
}).then(res => {
this.formatImgList();
}).catch(errors => {console.error(errors);})
},
})

View File

@ -0,0 +1,8 @@
{
"component": true,
"usingComponents": {
"te-nav-bar": "/commpents/te_navbar",
"van-icon": "@vant/weapp/icon/index",
"van-uploader": "@vant/weapp/uploader/index"
}
}

View File

@ -0,0 +1,114 @@
<wxs module="dateSubstr" src="./../../../utils/substr.wxs"></wxs>
<te-nav-bar navbar-data='{{navbarData}}' ></te-nav-bar>
<view class="container">
<view class="main_title">基础信息</view>
<view class="data_box">
<view class="data_box_top">
<view class="name">{{case_detail.name}}</view>
<view class="sex">{{case_detail.sex==1?'男':case_detail.sex==2?'女':'未知'}}{{case_detail.age}}岁 </view>
</view>
<view class="info">
<view class="height info_item"><text class="info_title">身高:</text><text class="info_val">{{case_detail.height==null?'未知':case_detail.height + 'CM'}}</text></view>
<view class="weight info_item"><text class="info_title">体重:</text><text class="info_val">{{case_detail.weight==null?'未知':case_detail.weight + 'KG'}}</text></view>
<view class="minzu info_item"><text class="info_title">民族:</text><text class="info_val">{{case_detail.nation_name==''?'未知':case_detail.nation_name}}</text></view>
<view class="zhiye info_item"><text class="info_title">职业:</text><text class="info_val">{{case_detail.job_name==''?'未知':case_detail.job_name}}</text></view>
<view class="hunyin info_item"><text class="info_title">婚姻:</text><text class="info_val">{{case_detail.marital_status==0?'未婚':case_detail.marital_status==1?'已婚':case_detail.marital_status==2?'离异':'未知'}}</text></view>
</view>
<view class="disease_box">
<view class="disease_box_item" wx:if="{{case_detail.disease_class_name}}">
<view class="title">所患疾病:</view>
<view class="conent">{{case_detail.disease_class_name}}</view>
</view>
<view class="disease_box_item" wx:if="{{case_detail.diagnosis_date}}">
<view class="title">确诊日期:</view>
<view class="conent" >{{dateSubstr.substring(case_detail.diagnosis_date,0,10)}}</view>
</view>
<!-- <view class="disease_box_item">
<view class="title">医生诊断:</view>
<view class="conent">{{case_detail.disease_class_name}}</view>
</view> -->
<view class="disease_box_item" wx:if="{{case_detail.diagnosis_hospital != '' && case_detail.diagnosis_hospital != null}}">
<view class="title">确诊医院:</view>
<view class="conent">{{case_detail.diagnosis_hospital}}</view>
</view>
<view class="disease_box_item" wx:if="{{case_detail.drugs_name != '' && case_detail.drugs_name != null}}">
<view class="title">正在服用的药品信息:</view>
<view class="conent">{{case_detail.drugs_name==''?'无':''}}</view>
</view>
<view class="disease_info" wx:if="{{case_detail.drugs_name != '' && case_detail.drugs_name != null}}">
详细描述:{{case_detail.drugs_name}}
</view>
<view class="disease_box_item" wx:if="{{case_detail.disease_desc}}">
<view class="title">病情描述:</view>
<view class="conent">{{case_detail.disease_desc}}</view>
</view>
<view class="disease_box_item" wx:if="{{case_detail.product.length > 0}}">
<view class="title">用药意向:</view>
<view class="conent">
<view wx:for="{{case_detail.product}}">{{item}};</view>
</view>
</view>
<view class="disease_box_item" wx:if="{{case_detail.diagnose_images.length > 0}}">
<view class="title">复诊凭证(病例/处方单/检查报告/住院单)</view>
<view class="conent" wx:if="{{case_detail.diagnose_images.length == 0}}">无</view>
</view>
<view class="img_box" >
<van-uploader image-fit="aspectFit" file-list="{{ imglist }}" show-upload="{{false}}" deletable="{{false}}" />
</view>
</view>
</view>
<view class="sugarbox" wx:if="{{case_detail.detection_project}}" data-url="{{case_detail.detection_project.detection_link}}" bindtap="goReport">
<view class="main_title">{{case_detail.detection_project_name}}</view>
<view class="data_box sugar" >
<view class="sugar_left">
<view class="name">糖组检测</view>
<view class="date">{{case_detail.detection_project.detection_time}}</view>
</view>
<van-icon name="arrow" />
</view>
</view>
<view class="main_title" wx:if="{{!(case_detail.is_taboo == null && case_detail.is_allergy_history == null && case_detail.is_family_history == null && case_detail.is_pregnant == null && case_detail.drink_wine_status == null && case_detail.smoke_status == null && case_detail.is_operation == null && case_detail.chemical_compound_status == null && case_detail.chemical_compound_status == null)}}">其他信息</view>
<view class="data_box orther" wx:if="{{!(case_detail.is_taboo == null && case_detail.is_allergy_history == null && case_detail.is_family_history == null && case_detail.is_pregnant == null && case_detail.drink_wine_status == null && case_detail.smoke_status == null && case_detail.is_operation == null && case_detail.chemical_compound_status == null && case_detail.chemical_compound_status == null)}}">
<view class="disease_box">
<view class="disease_box_item" wx:if="{{case_detail.is_taboo != null}}">
<view class="title">是否服用过您想购买的药品且无相关禁忌:</view>
<view class="conent">{{case_detail.is_taboo==0?'否':'是'}}</view>
</view>
<view class="disease_box_item" wx:if="{{case_detail.is_allergy_history != null}}">
<view class="title">过敏史:</view>
<view class="conent">{{case_detail.is_allergy_history==0?'否':case_detail.allergy_history}}</view>
</view>
<view class="disease_box_item" wx:if="{{ case_detail.is_family_history != null}}">
<view class="title">家族史:</view>
<view class="conent">{{case_detail.is_family_history==0?'否':case_detail.family_history}}</view>
</view>
<view class="disease_box_item" wx:if="{{case_detail.is_pregnant != null}}">
<view class="title">是否备孕、妊娠或者哺乳期:</view>
<view class="conent">{{case_detail.is_pregnant==0?'否':case_detail.pregnant}}</view>
</view>
<view class="disease_box_item" wx:if="{{ case_detail.drink_wine_status != null}}">
<view class="title">饮酒史:</view>
<view class="conent">{{case_detail.drink_wine_status==1?'从不':case_detail.drink_wine_status==2?'偶尔':case_detail.drink_wine_status==3?'经常':case_detail.drink_wine_status==4?'每天':case_detail.drink_wine_status==5?'已戒酒':'其他'}}</view>
</view>
<view class="disease_box_item" wx:if="{{case_detail.smoke_status != null}}">
<view class="title">吸烟史:</view>
<view class="conent">{{case_detail.smoke_status==1?'从不':case_detail.smoke_status==2?'偶尔':case_detail.smoke_status==3?'经常':case_detail.smoke_status==4?'每天':case_detail.smoke_status==5?'已戒烟':'其他'}}</view>
</view>
<view class="disease_box_item" wx:if="{{case_detail.is_operation != null}}">
<view class="title">手术史:</view>
<view class="conent">{{case_detail.is_operation==0?'否':case_detail.operation}}</view>
</view>
<view class="disease_box_item" wx:if="{{ case_detail.chemical_compound_status != null}}">
<view class="title">接触化学物:</view>
<view class="conent">{{case_detail.chemical_compound_status==1?'从不':case_detail.chemical_compound_status==2?'偶尔':case_detail.chemical_compound_status==3?'经常':case_detail.chemical_compound_status==4?'每天':'其他'}}</view>
</view>
<view class="disease_info" wx:if="{{case_detail.chemical_compound_describe != '' && case_detail.chemical_compound_describe != null}}">
详细描述:{{case_detail.chemical_compound_describe}}
</view>
</view>
</view>
<view style="height: 50rpx;">
</view>
</view>

View File

@ -0,0 +1,127 @@
page{
background-color: #F6F6F6;
}
.container{
/* width: 100vw; */
padding: 0 4vw;
}
.main_title{
font-size: 16px;
color: #000000;
margin: 30rpx 0;
}
.data_box{
margin-top: 20rpx;
width: calc(92vw - 40rpx);
background-color: #fff;
border-radius: 20rpx;
padding: 20rpx;
}
.data_box_top{
display: flex;
}
.name{
font-size: 34rpx;
color: #3CC7C0;
margin-right: 20rpx;
}
.sex{
font-size: 34rpx;
color: #666666;
}
.info{
background: #FAFAFA;
border-radius: 10rpx;
padding-top: 10rpx;
display: flex;
flex-wrap: wrap;
margin: 20rpx 0 0;
padding-bottom: 20rpx;
}
.info_item{
text-align: left;
/* width: 190rpx; */
/* height: 60rpx; */
margin-top: 10rpx;
display: flex;
align-items: center;
margin-left: 20rpx;
align-items: flex-start;
}
.info_title{
font-size: 28rpx;
color: #333333;
}
.info_val{
font-size: 28rpx;
flex: 1;
color: #666666;
}
.disease_box{
}
.disease_box_item{
margin-bottom: 30rpx;
display: flex;
}
.data_box .disease_box_item:first-child{
margin-top: 20rpx;
}
.orther .disease_box_item:first-child{
margin-top: 0rpx;
}
.title{
font-size: 30rpx;
color: #333333;
}
.conent{
flex: 1;
font-size: 28rpx;
color: #666666;
word-wrap:break-word;
word-break:break-all;
}
.disease_info{
background: #FAFAFA;
border-radius: 10rpx;
padding: 10rpx;
font-size: 26rpx;
color: #999999;
margin-bottom: 20rpx;
}
.img_box{
display: flex;
flex-wrap: wrap;
}
.van-uploader__wrapper{
display: flex !important;
}
.van-uploader__preview{
padding: 20rpx 15rpx !important;
background-color: #E4E4E4 !important;
border-radius: 15rpx;
width: 150rpx;
display: flex;
justify-content: center;
}
.orther{
margin-bottom: 50rpx;
}
.sugar{
display: flex;
align-items: center;
justify-content:space-between ;
}
.sugar .name{
color:#333;
font-size: 30rpx;
}
.sugar .date{
margin-top: 12rpx;
font-size: 24rpx;
font-weight: 400;
color: rgba(0,0,0,0.45);
}

View File

@ -1,5 +1,5 @@
import { API } from './../../../utils/network/api'
import debounce from './../../../utils/debounce'
import { API } from '../../../utils/network/api'
import debounce from '../../../utils/debounce'
let api = new API()
const app = getApp()
Page({
@ -8,16 +8,44 @@ Page({
showCapsule: 1, //是否显示左上角图标 1表示显示 0表示不显示
title: '病历信息', //导航栏 中间的标题
},
pathography_id:'',
height: app.globalData.height,
order_inquiry_id: "",
order_inquiry_id:"",
case_detail: {},
imglist: []
},
onLoad(options){
console.log("onLoad", options)
this.setData({
order_inquiry_id: options.order_inquiry_id
})
if(options.order_inquiry_id){
this.setData({
order_inquiry_id: options.order_inquiry_id
})
//获取患者问诊病例
api.getInquiryDetail({order_inquiry_id: this.data.order_inquiry_id}).then(response => {
console.log(response);
this.setData({
case_detail: response.data
})
}).then(res => {
this.formatImgList();
}).catch(errors => {console.error(errors);})
}
if(options.pathography_id){
this.setData({
pathography_id: options.pathography_id
})
//获取患者问诊病例
api.getPathographyDetail(options.pathography_id).then(response => {
this.setData({
case_detail: response.data
})
}).then(res => {
this.formatImgList();
}).catch(errors => {console.error(errors);})
}
},
goReport:debounce(function(event){
@ -74,15 +102,7 @@ Page({
})
},
onShow(){
//获取患者问诊病例
api.getDoctorInquiryCase({order_inquiry_id: this.data.order_inquiry_id}).then(response => {
console.log(response);
this.setData({
case_detail: response.data
})
}).then(res => {
this.formatImgList();
}).catch(errors => {console.error(errors);})
},
})

View File

@ -1,6 +1,7 @@
<wxs module="dateSubstr" src="./../../../utils/substr.wxs"></wxs>
<te-nav-bar navbar-data='{{navbarData}}' ></te-nav-bar>
<view class="container">
<view class="main_title">基础信息</view>
<view class="data_box">
<view class="data_box_top">
@ -10,8 +11,8 @@
<view class="info">
<view class="height info_item"><text class="info_title">身高:</text><text class="info_val">{{case_detail.height==null?'未知':case_detail.height + 'CM'}}</text></view>
<view class="weight info_item"><text class="info_title">体重:</text><text class="info_val">{{case_detail.weight==null?'未知':case_detail.weight + 'KG'}}</text></view>
<view class="minzu info_item"><text class="info_title">民族:</text><text class="info_val">{{case_detail.nation_name==''?'未知':case_detail.nation_name}}</text></view>
<view class="zhiye info_item"><text class="info_title">职业:</text><text class="info_val">{{case_detail.job_name==''?'未知':case_detail.job_name}}</text></view>
<view class="minzu info_item"><text class="info_title">民族:</text><text class="info_val">{{case_detail.nation_name?case_detail.nation_name:'未知'}}</text></view>
<view class="zhiye info_item"><text class="info_title">职业:</text><text class="info_val">{{case_detail.job_name?case_detail.job_name:'未知'}}</text></view>
<view class="hunyin info_item"><text class="info_title">婚姻:</text><text class="info_val">{{case_detail.marital_status==0?'未婚':case_detail.marital_status==1?'已婚':case_detail.marital_status==2?'离异':'未知'}}</text></view>
</view>
<view class="disease_box">
@ -108,7 +109,31 @@
</view>
</view>
</view>
<view style="height: 50rpx;">
<view wx:if="{{case_detail.order_prescription}}">
<view class="main_title">处方信息</view>
<view class="data_box">
<view class="disease_box">
<view class="disease_box_item" >
<view class="title">诊断:</view>
<view class="conent">{{case_detail.order_prescription.icd_name}}</view>
</view>
<view class="disease_box_item" >
<view class="title">时间:</view>
<view class="conent">{{case_detail.order_prescription.doctor_created_time}}</view>
</view>
<view class="disease_box_item" >
<view class="title">药品:</view>
<view class="conent" wx:for="case_detail.order_prescription.product" wx:for-item="itemName">
{{itemName}};
</view>
</view>
<view class="disease_box_item" >
<view class="title">用法:</view>
<view class="conent">{{case_detail.order_prescription.single_use}}</view>
</view>
</view>
</view>
</view>
</view>

View File

@ -30,24 +30,30 @@ page{
color: #666666;
}
.info{
background: #FAFAFA;
border-radius: 10rpx;
padding-top: 10rpx;
display: flex;
flex-wrap: wrap;
margin: 20rpx 0 0;
padding-bottom: 20rpx;
padding:10rpx 20rpx 20rpx;
}
.info_item{
text-align: left;
/* width: 190rpx; */
width: 203rpx;
/* height: 60rpx; */
margin-top: 10rpx;
display: flex;
align-items: center;
margin-left: 20rpx;
align-items: flex-start;
}
.info_item:nth-child(3n){
text-indent: 20rpx;
}
.info_title{
font-size: 28rpx;
color: #333333;

View File

@ -0,0 +1,173 @@
// Pages/yishi/medince_list/index.js
import { API } from './../../../utils/network/api'
import debounce from "./../../../utils/debounce"
let api = new API()
const app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
navbarData: {
showCapsule: 1, //是否显示左上角图标 1表示显示 0表示不显示
title: '患者病例', //导航栏 中间的标题
},
page:1,
family_id:'',
currentSick:null,
isLoding:false,
list:[],
isLock:false,
per_page:10,
keyword:'',
},
goDetail:debounce(function(event){
console.log(event)
let id=event.currentTarget.dataset.id;
console.log(id);
app.go("/Pages/yishi/case/index?order_inquiry_id="+id);
}),
goDetailbefore:debounce(function(event){
let id=event.currentTarget.dataset.id;
app.go("/Pages/yishi/case/index?pathography_id="+id);
},600),
changeInput:debounce(function(event){
const { value }= event.detail;
this.setData({
isLock:false,
page:1,
list:[],
keyword:value
})
this.handleGetList();
},600),
goSearch(){
this.setData({
isLock:false,
list:[],
page:1
})
this.handleGetList();
},
confirmSearch(event){
const { value }= event.detail;
this.setData({
isLock:false,
list:[],
page:1,
keyword:value
})
this.handleGetList();
},
lower(){
console.log('===触底了!!===');
let {page,isLock}=this.data;
if(!isLock){
page++;
this.setData({
page:page
});
this.handleGetList();
}
},
/**
* 生命周期函数--监听页面加载
*/
handleGetCurrent(){
const {order_inquiry_id}=this.data;
api.getSimpleInquiry({
order_inquiry_id
}).then(data=>{
this.setData({
currentSick:data.data
})
console.log(data);
})
},
handleGetList(){
const {page,per_page,family_id,isLoding}=this.data;
if(isLoding)return false;
this.setData({
isLoding:true
})
api.getPathography({
page,
per_page,
family_id,
}).then(data=>{
this.setData({
isLoding:false
})
let result=data.data.data;
if(result.length==0){
this.setData({
isLock:true
});
return false;
}
this.setData({
list:this.data.list.concat(result)
});
}).catch(errors => {console.error(errors);})
},
onLoad(options) {
this.setData({
family_id:options.family_id,
order_inquiry_id:options.order_inquiry_id
})
this.handleGetCurrent();
this.handleGetList();
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

View File

@ -0,0 +1,9 @@
{
"component": true,
"usingComponents": {
"te-nav-bar": "/commpents/te_navbar",
"van-empty": "@vant/weapp/empty/index",
"van-icon": "@vant/weapp/icon/index",
"van-divider": "@vant/weapp/divider/index"
}
}

View File

@ -0,0 +1,49 @@
<!--Pages/yishi/patient_sick/index.wxml-->
<!--Pages/yishi/medince_list/index.wxml-->
<view class="page">
<te-nav-bar navbar-data='{{navbarData}}' ></te-nav-bar>
<view class="container">
<!-- <view class="searchCon">
<view class="searchbox">
<input type="text" value="" class="searchIpt" placeholder="请输入药品名称" confirm-type="search" bindinput="changeInput" bindconfirm="confirmSearch"/>
<image src="../../../static/images/yishi/tabbar_icon/ss.png" mode="" class="searchImg" bindtap="goSearch"/>
</view>
</view> -->
<scroll-view scroll-y="true" class="scrollbox" bindscrolltolower="lower" wx:if="{{list.length>0 || currentSick}}" >
<view class="cell" bindtap="goDetail" data-id="{{order_inquiry_id}}">
<view class="titlebox">
<view class="title">
<view class="name">{{currentSick.patient_name}}</view>
<view class="age">{{currentSick.patient_sex==1?'男':'女'}}{{currentSick.patient_age}}岁</view>
</view>
<van-icon name="arrow" class="icon" />
</view>
<view class="row">
<text class="desc">病情描述:</text>
<text class="descdetail"> {{currentSick.disease_desc}} </text>
</view>
<view class="date">您于{{currentSick.reception_time}}接诊</view>
<view class="mark">本次问诊</view>
</view>
<view class="cell" wx:for="{{list}}" wx:key="pathography_id" bindtap="goDetailbefore" data-id="{{item.pathography_id}}">
<view class="titlebox">
<view class="title">
<view class="name">{{item.name}}</view>
<view class="age">{{item.sex==1?'男':'女'}}{{item.age}}岁</view>
</view>
<van-icon name="arrow" />
</view>
<view class="row">
<text class="desc">病情描述:</text>
<text class="descdetail"> {{item.disease_desc}} </text>
</view>
<view class="date">您与{{item.reception_time}}接诊</view>
</view>
<van-divider contentPosition="center" wx:if="{{list.length > 0 && isLock}}">到底了~</van-divider>
</scroll-view>
<van-empty description="暂无数据" wx:if="{{list.length == 0 && !currentSick}}" />
</view></view>

View File

@ -0,0 +1,160 @@
/* Pages/yishi/patient_sick/index.wxss *//* Pages/yishi/medince_list/index.wxss */
page{
height:100vh;
background-color: #F6F6F6;
}
.page{
height:100vh;
display: flex;
flex-direction: column;
}
.container{
/* height:calc(100vh - 135rpx); */
display: flex;
overflow: hidden;
/* overflow-y: scroll; */
/* -webkit-overflow-scrolling: touch; */
flex-direction: column;
}
.searchCon{
width:100%;
background:#fff;
}
.searchbox{
display: flex;
margin:32rpx;
align-items: center;
height: 80rpx;
background: #FFFFFF;
border-radius: 40rpx;
border: 2rpx solid #3CC7C0;
}
.searchIpt{
flex:1;
margin-left: 32px;
}
.searchImg{
width: 40rpx;
height:40rpx;
padding:30rpx;
}
.tips{
display: flex;
flex-direction: column;
justify-content: center;
position: absolute;
width: 200rpx;
height:200rpx;
font-size: 22rpx;
font-weight: 400;
color: #666666;
}
.desc{
text-align: center;
}
.medimgbox{
position: relative;
width: 200rpx;
height:200rpx;
margin-left: 30rpx;
display: flex;
justify-content: center;
align-items: center;
border-radius:5rpx;
}
.medImg{
width:120rpx;
height:128rpx;
}
.titlebox{
display: flex;
justify-content: space-between;
align-items: center;
}
.cell{
position: relative;
padding:20rpx 0;
background: #FFFFFF;
box-shadow: 0rpx 2rpx 16rpx 2rpx rgba(0,0,0,0.02);
border-radius: 12rpx;
margin:0 32rpx 20rpx;
}
.rightbox{
flex:1;
margin-left: 24rpx;
margin-right: 20rpx;
}
.scrollbox{
margin-top: 20rpx;
flex:1;
overflow-y: scroll;
-webkit-overflow-scrolling: touch;
}
.bottombox{
display: flex;
align-items: center;
justify-content: space-between;
}
.info .name{
word-break: break-all;
font-size: 32rpx;
font-weight: 600;
color: rgba(0,0,0,0.85);
}
.company{
margin-top: 5rpx;
font-size: 26rpx;
font-weight: 400;
color: rgba(0,0,0,0.45);
}
.cell .title{
display: flex;
font-size: 34rpx;
color: #333333;
}
.cell{
padding:20rpx;
}
.cell .name{
margin-right: 20rpx;
}
.row{
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 2; /* 设置最大显示行数 */
-webkit-box-orient: vertical;
text-overflow: ellipsis;
word-break: break-all;
margin-top: 20rpx;
font-size: 30rpx;
line-height: 42rpx;
color: #666666;
}
.date{
margin-top: 20rpx;
font-size: 26rpx;
font-weight: 400;
color: #999999;
}
.mark{
position: absolute;
bottom:0;
display: flex;
align-items: center;
justify-content: center;
right:0px;
font-size: 24rpx;
font-weight: 400;
color: #3CC7C0;
width: 126rpx;
height: 54rpx;
background: #E9FFFE;
border-radius: 10rpx 0rpx 0rpx 10rpx;
}
.icon{
color:#c3c3c3;
}

View File

@ -0,0 +1,79 @@
// Pages/sickform/index.js
Page({
/**
* 页面的初始数据
*/
data: {
navbarData: {
showCapsule: 1, //是否显示左上角图标 1表示显示 0表示不显示
title: '问诊表', //导航栏 中间的标题
},
params:null,
basic:[],
preson:[]
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
if(options.params){
this.setData({
params:options.params
});
let data=JSON.parse(options.params);
console.log(options.params)
}
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

View File

@ -0,0 +1,8 @@
{
"usingComponents": {
"te-nav-bar": "/commpents/te_navbar",
"van-radio": "@vant/weapp/radio/index",
"van-radio-group": "@vant/weapp/radio-group/index"
}
}

View File

@ -0,0 +1,229 @@
<!--Pages/sickform/index.wxml-->
<!--Pages/yishi/patient_sick/index.wxml-->
<!--Pages/yishi/medince_list/index.wxml-->
<view class="page">
<te-nav-bar navbar-data='{{navbarData}}' ></te-nav-bar>
<view class="container">
<view class="questionbox">
<view class="cellbox">
<view class="basictitle">基本信息</view>
<view class="cell" >
<view class="cellrow">
<view class="name">
1、身高CM
</view>
<view class="iptbox">
<input type="text" value="{{user_info.name}}" bindinput="handleIpt" data-id="name" placeholder="请输入身高" placeholder-class="placeholder" class="ipt" disabled="{{notallowEdit?true:false}}" />
</view>
</view>
</view>
<view class="cell" >
<view class="cellrow">
<view class="name">
2、体重KG
</view>
<view class="iptbox">
<input type="text" value="{{user_info.name}}" bindinput="handleIpt" data-id="name" placeholder="请请输入体重" placeholder-class="placeholder" class="ipt" disabled="{{notallowEdit?true:false}}" />
</view>
</view>
</view>
<view class="cell" >
<view class="cellrow">
<view class="name">
3、婚姻状况
</view>
<view class="iptbox">
<input type="text" value="{{user_info.name}}" bindinput="handleIpt" data-id="name" placeholder="请选择婚姻状况" placeholder-class="placeholder" class="ipt" disabled="{{notallowEdit?true:false}}" />
<image src="{{img_host+'/righticon.png'}}" class="righticon"></image>
</view>
</view>
</view>
<view class="cell" >
<view class="cellrow">
<view class="name">
4、民族
</view>
<view class="iptbox">
<input type="text" value="{{user_info.name}}" bindinput="handleIpt" data-id="name" placeholder="请选择民族" placeholder-class="placeholder" class="ipt" disabled="{{notallowEdit?true:false}}" />
<image src="{{img_host+'/righticon.png'}}" class="righticon"></image>
</view>
</view>
</view>
<view class="cell" >
<view class="cellrow">
<view class="name">
5、职业
</view>
<view class="iptbox">
<input type="text" value="{{user_info.name}}" bindinput="handleIpt" data-id="name" placeholder="请请选择职业" placeholder-class="placeholder" class="ipt" disabled="{{notallowEdit?true:false}}" />
<image src="{{img_host+'/righticon.png'}}" class="righticon"></image>
</view>
</view>
</view>
</view>
<view class="cellbox">
<view class="basictitle">个人情况</view>
<view class="sickHis">
<view class="list">
<view class="qa">
<view class="num">1、</view>
<view class="titlebox">
<view class="title">您是否有过敏史?</view>
<view class="radio" >
<van-radio-group value="{{ filter.numberTOstring(personInfo.is_allergy_history) }}" class="singlegroup" data-id="is_allergy_history" bind:change="onChangeRadio" direction="horizontal">
<van-radio name="1" checked-color="#3cc7c0">是</van-radio>
<van-radio name="0" checked-color="#3cc7c0">否</van-radio>
</van-radio-group>
</view>
<!-- hidden="{{checkGuomin!=1}}" -->
<view class="radiotip" hidden="{{personInfo.is_allergy_history!=1}}">
<textarea placeholder=" " show-confirm-bar="{{false}}" cursor-spacing="70" confirm-type="done" bindinput="handelFocus" value="{{personInfo.allergy_history}}" data-id="hideGuomin" data-value="allergy_history"></textarea>
<view class="textbox" hidden="{{hideGuomin}}">
<view class="desc"><text>过敏史:</text>请填写过敏源如药物请写出药名如食物请写具体如鸡蛋、牛奶等限制50个字</view>
</view>
</view>
</view>
</view>
<view class="qa">
<view class="num">2、</view>
<view class="titlebox">
<view class="title">您是否有家族病史?</view>
<view class="radio">
<van-radio-group class="singlegroup" value="{{filter.numberTOstring(personInfo.is_family_history)}}" data-id="is_family_history" bind:change="onChangeRadio" direction="horizontal">
<van-radio name="1" checked-color="#3cc7c0">是</van-radio>
<van-radio name="0" checked-color="#3cc7c0">否</van-radio>
</van-radio-group>
</view>
<view class="radiotip" hidden="{{personInfo.is_family_history!=1}}">
<textarea placeholder=" " show-confirm-bar="{{false}}" cursor-spacing="70" confirm-type="done" bindinput="handelFocus" value="{{personInfo.family_history}}" data-id="hideFamilysick" data-value="family_history"></textarea>
<view class="textbox" hidden="{{hideFamilysick}}">
<view class="desc"><text>家族病史:</text>请详细填写相关家族病史限制50个字</view>
</view>
</view>
</view>
</view>
<view class="qa" wx:if="{{sex==2}}">
<view class="num">{{startIndex}}、</view>
<view class="titlebox">
<view class="title">您是否处于备孕、妊娠、哺乳期?</view>
<view class="radio">
<van-radio-group value="{{ filter.numberTOstring(personInfo.is_pregnant) }}" bind:change="onChangeRadio" data-id="is_pregnant" direction="horizontal" class="singlegroup">
<van-radio name="1" checked-color="#3cc7c0">是</van-radio>
<van-radio name="0" checked-color="#3cc7c0">否</van-radio>
</van-radio-group>
</view>
<view class="radiotip" hidden="{{personInfo.is_pregnant!=1}}">
<textarea placeholder=" " show-confirm-bar="{{false}}" cursor-spacing="70" confirm-type="done" bindinput="handelFocus" value="{{personInfo.pregnant}}" data-id="hidePregnant" data-value="pregnant"></textarea>
<view class="textbox" hidden="{{hidePregnant}}">
<view class="desc">请描述您目前所处阶段如备孕中、哺乳期中、妊娠月份。限制50个字</view>
</view>
</view>
</view>
</view>
<view class="qa">
<view class="num">{{startIndex+1}}、</view>
<view class="titlebox">
<view class="title">是否做过手术</view>
<view class="radio">
<van-radio-group value="{{ filter.numberTOstring(personInfo.is_operation) }}" data-id="is_operation" bind:change="onChangeRadio" direction="horizontal" class="singlegroup">
<van-radio name="1" checked-color="#3cc7c0">是</van-radio>
<van-radio name="0" checked-color="#3cc7c0">否</van-radio>
</van-radio-group>
</view>
<view class="radiotip" hidden="{{personInfo.is_operation !=1}}">
<textarea placeholder=" " show-confirm-bar="{{false}}" cursor-spacing="70" confirm-type="done" bindinput="handelFocus" value="{{personInfo.operation}}" data-id="hideOperation" data-value="operation"></textarea>
<view class="textbox" hidden="{{hideOperation}}">
<view class="desc">请描述具体手术名称和做手术医院</view>
</view>
</view>
</view>
</view>
<view class="qa">
<view class="num">{{startIndex+2}}、</view>
<view class="titlebox">
<view class="title">是否有饮酒史</view>
<view class="radio">
<van-radio-group value="{{ filter.numberTOstring(personInfo.drink_wine_status) }}" data-id="drink_wine_status" bind:change="onChangeRadio" direction="horizontal" class="group">
<van-radio name="1" checked-color="#3cc7c0">从不</van-radio>
<van-radio name="2" checked-color="#3cc7c0">偶尔</van-radio>
<van-radio name="3" checked-color="#3cc7c0">经常</van-radio>
<van-radio name="4" checked-color="#3cc7c0">每天</van-radio>
<van-radio name="5" checked-color="#3cc7c0">已戒酒</van-radio>
</van-radio-group>
</view>
</view>
</view>
<view class="qa">
<view class="num">{{startIndex+3}}、</view>
<view class="titlebox">
<view class="title">是否有吸烟史</view>
<view class="radio">
<van-radio-group value="{{ filter.numberTOstring(personInfo.smoke_status) }}" data-id="smoke_status" bind:change="onChangeRadio" direction="horizontal" class="group">
<van-radio name="1" checked-color="#3cc7c0">从不</van-radio>
<van-radio name="2" checked-color="#3cc7c0">偶尔</van-radio>
<van-radio name="3" checked-color="#3cc7c0">经常</van-radio>
<van-radio name="4" checked-color="#3cc7c0">每天</van-radio>
<van-radio name="5" checked-color="#3cc7c0">已戒烟</van-radio>
</van-radio-group>
</view>
</view>
</view>
<view class="qa">
<view class="num">{{startIndex+4}}、</view>
<view class="titlebox">
<view class="title">是否有接触过化学物</view>
<view class="radio">
<van-radio-group value="{{filter.numberTOstring(personInfo.chemical_compound_status)}}" data-id="chemical_compound_status" bind:change="onChangeRadio" direction="horizontal" class="group">
<van-radio name="1" checked-color="#3cc7c0">从不</van-radio>
<van-radio name="2" checked-color="#3cc7c0">偶尔</van-radio>
<van-radio name="3" checked-color="#3cc7c0">经常</van-radio>
<van-radio name="4" checked-color="#3cc7c0">每天</van-radio>
</van-radio-group>
</view>
<view class="radiotip" wx:if="{{(personInfo.chemical_compound_status!=1 && personInfo.chemical_compound_status)}}">
<textarea placeholder=" " show-confirm-bar="{{false}}" cursor-spacing="70" confirm-type="done" value="{{personInfo.chemical_compound_describe}}" bindinput="handelFocus" data-id="hideChemical" data-value="chemical_compound_describe"></textarea>
<view class="textbox" hidden="{{hideChemical}}">
<view class="desc"><text>化学物:</text>请详细填写接触过的相关化学物限制50个字</view>
</view>
</view>
</view>
</view>
<view class="qa">
<view class="num">{{startIndex+45}}、</view>
<view class="titlebox">
<view class="title">确诊医院是?</view>
<view class="radiotip" >
<textarea placeholder=" " show-confirm-bar="{{false}}" cursor-spacing="70" confirm-type="done" bindinput="handelFocus" value="{{personInfo.family_history}}" data-id="hideFamilysick" data-value="family_history"></textarea>
<view class="textbox" hidden="{{hideFamilysick}}">
<view class="desc"><text></text>请填写确诊医院名称</view>
</view>
</view>
</view>
</view>
<view class="qa">
<view class="num">{{startIndex+6}}、</view>
<view class="titlebox">
<view class="title">服用药品是?</view>
<view class="radiotip" >
<textarea placeholder=" " show-confirm-bar="{{false}}" cursor-spacing="70" confirm-type="done" bindinput="handelFocus" value="{{personInfo.family_history}}" data-id="hideFamilysick" data-value="family_history"></textarea>
<view class="textbox" hidden="{{hideFamilysick}}">
<view class="desc"><text></text>请详细填写所服药物限制50个字</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>

View File

@ -0,0 +1,143 @@
page{
overflow: hidden;
}
.container{
height:100vh;
overflow: scroll;
background-color: #F6F6F6;
}
.cellbox{
background-color: #fff;
}
.questionbox{
overflow-y: scroll;
}
.cellbox .cell{
background-color: #fff;
align-items: center;
display: flex;
padding:0 32rpx;
}
.cellrow{
height:105rpx;
width:100%;
justify-content: space-between;
align-items: center;
display: flex;
border-bottom:1rpx solid #E3E4E5;
}
.cell:last-child .cellrow{
border-bottom: none;
}
.iptbox{
display: flex;
flex:1;
justify-content: flex-end;
}
.righticon{
width:24rpx;
height: 48rpx;
}
.name{
display: flex;
align-items: center;
}
.name .red{
margin-top: 20rpx;
color:#E34D59;
}
.placeholder{
text-align: right;
font-size: 28rpx;
font-weight: 400;
color: #C5C8CB;
}
.ipt{
width:100%;
text-align: right;
color: #666666;
font-size: 28rpx;
}
.basictitle{
margin-top: 30rpx;
font-size: 34rpx;
padding:30rpx 32rpx 10rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 500;
color: #1C2023;
}
.sickHis{
background-color: #fff;
/* margin-top: 20rpx; */
padding:1rpx 52rpx 40rpx;
}
.list .qa{
display: flex;
margin-top: 30rpx;
border-bottom:1rpx solid #E3E4E5;
}
.titlebox{
flex:1;
}
textarea{
position: relative;
z-index:1;
width:100%;
color:#333;
height:132rpx;
}
.radio{
margin: 30rpx 0rpx 30rpx 0;
}
.group .van-radio--horizontal{
margin-right: 11rpx;
}
.singlegroup .van-radio--horizontal{
margin-right:44rpx;
}
.singlegroup .van-radio--horizontal:nth-child(2n){
margin-right: 0rpx;
}
.group .van-radio--horizontal:nth-child(3n){
margin-right: 0;
}
.radiotip{
position: relative;
padding:24rpx 20rpx;
justify-content: center;
margin-top: 20rpx;
line-height: 42rpx;
background: #F2F2F2;
border-radius: 10rpx;
font-size: 28rpx;
color:#999;
margin-bottom: 20rpx;
}
.radiotip .textbox{
top:20rpx;
left:20rpx;
margin-top: 0;
width:auto;
height: 100rpx;
font-weight: normal;
z-index: 0;
position: absolute;
right:20rpx;
}
.radiotip text{
white-space: nowrap;
color:#333;
}
.van-radio__label{
padding-right:40rpx!important;
}
/* .van-radio__label:nth-child(3){
padding-right:0rpx!important;
} */
.van-radio{
margin-bottom: 10rpx!important;
}

View File

@ -0,0 +1,154 @@
// Pages/yishi/write_sickform/index.js
import { API } from './../../../utils/network/api'
import debounce from "./../../../utils/debounce"
let api = new API()
const app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
navbarData: {
showCapsule: 1, //是否显示左上角图标 1表示显示 0表示不显示
title: '问诊表', //导航栏 中间的标题
},
obj:{
height:'身高',
weight:'体重',
nation_name:'民族',
job_name:'职业',
marital_status:'婚姻状态',
allergy_history:'是否有过敏史?',
family_history:'是否有家族病史?',
is_pregnant:'是否处于备孕、妊娠、哺乳期?',
is_operation:'是否做过手术?',
drink_wine_status:'是否有饮酒史?',
smoke_status:'是否有吸烟史?',
chemical_compound_status:'是否有接触过化学物?',
diagnosis_hospital:'确诊医院是?',
is_take_medicine:'服用药品是?'
},
order_inquiry_id:'',
list1: [],
list2: [],
result: [],
},
onChange(event) {
this.setData({
result: event.detail,
});
},
toggle(event) {
const { item } = event.currentTarget.dataset;
const checkbox = this.selectComponent(`.checkboxes-${item}`);
checkbox.toggle();
},
handleList(order_inquiry_id){
api.getUnfilled({
order_inquiry_id
}).then(data=>{
let result=data.data;
let {obj}=this.data;
let arr1=[];
let arr2=[];
result.forEach(item => {
if(item=="weight" || item=="height" || item=="marital_status" || item=="nation_name" || item=="job_name"){
if(obj[item]){
arr1.push(item);
}
}else{
if(obj[item]){
arr2.push(item);
}
}
})
this.setData({
list1:arr1,
list2:arr2,
})
})
},
handleSend(){
let {order_inquiry_id,result}=this.data;
if(result.length==0){
wx.showToast({
title: '请至少选择一项',
icon:'none'
})
return false;
}
console.log(this.data.result);
api.doctorSendUnfilled({
order_inquiry_id,
fields:this.data.result
}).then(data=>{
if(data.code==200){
wx.navigateBack();
}
})
},
noop() {},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
this.setData({
order_inquiry_id:options.order_inquiry_id,
})
this.handleList(options.order_inquiry_id);
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

View File

@ -0,0 +1,9 @@
{
"usingComponents": {
"te-nav-bar": "/commpents/te_navbar",
"van-checkbox": "@vant/weapp/checkbox/index",
"van-cell": "@vant/weapp/cell/index",
"van-cell-group": "@vant/weapp/cell-group/index",
"van-checkbox-group": "@vant/weapp/checkbox-group/index"
}
}

View File

@ -0,0 +1,61 @@
<!--Pages/yishi/write_sickform/index.wxml-->
<te-nav-bar navbar-data='{{navbarData}}' ></te-nav-bar>
<view class="container" wx:if="{{list1.length>0 || list2.length>0}}">
<view class="listbox">
<van-checkbox-group value="{{ result }}" bind:change="onChange" >
<view class="box" wx:if="{{list1.length>0}}">
<view class="title">基本信息</view>
<van-cell-group >
<van-cell
wx:for="{{ list1 }}"
wx:key="index"
title="{{obj[item]}}"
value-class="value-class"
clickable
data-item="{{ item }}"
bind:click="toggle"
>
<van-checkbox
catch:tap="noop"
checked-color="#3CC7C0"
class="checkboxes-{{ item }}"
name="{{ item }}"
/>
</van-cell>
</van-cell-group>
</view>
<view class="box" wx:if="{{list2.length>0}}">
<view class="title">个人情况</view>
<van-cell-group >
<van-cell
wx:for="{{ list2 }}"
wx:key="index"
title="{{obj[item]}}"
value-class="value-class"
clickable
data-item="{{ item }}"
bind:click="toggle"
>
<van-checkbox
catch:tap="noop"
checked-color="#3CC7C0"
class="checkboxes-{{ item }}"
name="{{ item }}"
/>
</van-cell>
</van-cell-group>
</view>
</van-checkbox-group>
</view>
<view class="bottom">
<view class="btn" bindtap="handleSend">
发送给患者
</view>
</view>
</view>
<view class="nocontainer" wx:else>
<image src="../../../static/images/yishi/tabbar_icon/empty.png" class="empty"/>
<view>暂无可询问内容</view>
</view>

View File

@ -0,0 +1,68 @@
/* Pages/yishi/write_sickform/index.wxss */
page{
overflow: hidden;
background-color: #F6F6F6;
}
.van-hairline--top-bottom:after {
border-top-width: 0px!important;
}
.van-hairline--bottom:after {
border-top-width: 0px!important;
}
.listbox{
flex:1;
overflow-y: scroll;
}
.container{
width: 100vw;
height:100vh;
display:flex;
flex-direction: column;
}
.value-class {
order:-1!important;
flex: none !important;
}
.title-class{
order:2!important;
}
.box .title{
padding: 25rpx 30rpx 10rpx;
margin-top: 20rpx;
font-size: 34rpx;
font-weight: 500;
color: #1C2023;
background:#fff;
}
.bottom{
background-color: #FFFFFF;
height:274rpx;
width:100%;
}
.bottom .btn{
margin:40rpx 30rpx;
height: 80rpx;
font-size: 30rpx;
color: #FFFFFF;
display: flex;
align-items: center;
justify-content: center;
background: #3CC7C0;
border-radius: 8rpx;
}
.empty{
margin-top: 400rpx;
width:161rpx;
height:162rpx;
}
.nocontainer{
margin-top: 20rpx;
background-color: #fff;
height:100vh;
display: flex;
font-size: 24rpx;
color: #999999;
align-items: center;
flex-direction: column;
}

View File

@ -1,5 +1,5 @@
<block>
<view class="audio-message {{isMine?'my-audio':''}}">
<view class="audio-message {{isMine?'my-audio':'your-audio'}}">
<!-- 默认状态 未播放 -->
<view class='audio' wx:if="{{!isPlay}}" bindtap='audioPlay' data-id="{{message.ID}}" >
<image class="image {{isMine?'my-image':''}}" src="../../../../../static/images/sendingaudio.png"/> {{renderDom[0].second}}s

View File

@ -3,10 +3,42 @@
border-radius: 2px 10px 10px 10px;
border: 1px solid #D9D9D9;
}
.my-audio {
border-radius: 10px 2px 10px 10px;
background: rgba(0,110,255,0.10);
border: 1px solid rgba(0,110,255,0.30);
position: relative;
border-radius: 10px 10px 10px 10px;
background: rgb(212, 239, 241);
border: 1rpx solid #1ACAD3;
}
.my-audio::after{
content:'';
position: absolute;
top: 35rpx;
right: -19rpx;
transform: translate(-50%,-50%) rotate(-135deg);
width: 16rpx;
height: 16rpx;
background: rgb(212, 239, 241);
border: 1rpx solid #1ACAD3;
border-style: none none solid solid
}
.your-audio {
position: relative;
border-radius: 10px 10px 10px 10px;
background: rgb(255, 255, 255);
border: 1rpx solid #D8D8D8;
}
.your-audio::after{
content:'';
position: absolute;
top: 35rpx;
left: 0;
transform: translate(-50%,-50%) rotate(45deg);
width: 16rpx;
height: 16rpx;
background: rgb(255, 255, 255);
border: 1rpx solid #D8D8D8;
border-style: none none solid solid
}
.audio {
/*border-radius: 2px 10px 10px 10px;*/

View File

@ -206,6 +206,21 @@ Component({
}];
return renderDom;
}
//12问诊表
if (customMessage.message_type === GDXZ_CUSTOM_MSEEAGE.WENZHEN_FORM) {
let data = customMessage.data;
console.log(data)
const renderDom = [{
type: 'wenzhen_form',
order_inquiry_id:data.order_inquiry_id,
message_path:data.message_path,
case_patient_message_path:data.case_patient_message_path,
case_filled_fields:data.case_filled_fields,
case_not_fill_fields:data. case_not_fill_fields
}];
return renderDom;
}
} catch (error) {
}
// 客服咨询
@ -296,9 +311,9 @@ Component({
})
}),
goSick(event){
const url=event.currentTarget.dataset.url;
console.log(url);
app.go(url);
// const url=event.currentTarget.dataset.url;
// console.log(url);
// app.go(url);
},
openLink(e) {
@ -315,6 +330,15 @@ Component({
go(e){
let url = e.currentTarget.dataset.url;
app.go(url);
},
goList(event){
console.log(event);
const {ismine,params}=event.currentTarget.dataset;
console.log(params);
if(!ismine){
app.go('/Pages/yishi/sickform/index?params='+params)
}
// app.go(url);
}
},
});

View File

@ -126,6 +126,22 @@
</view>
<view wx:if="{{renderDom[0].type==='wenzhen_form'}}" class="wenzhen_form {{isMine?'my-custom':'your-custom'}}" bindtap="goList" data-ismine="{{isMine}}" data-params="{{isMine?renderDom[0].case_not_fill_fields:renderDom[0].case_filled_fields}}">
<view class="title" wx:if="{{renderDom[0].case_not_fill_fields}}">
<image src="../../../../../../static/images/yishi/tabbar_icon/wenzhenform.png" mode="" class="wzicon" />
<view class="name">问诊表</view>
</view>
<view class="title" wx:else>
<image src="../../../../../../static/images/yishi/tabbar_icon/wenzhenform.png" mode="" class="wzicon"/>
<view class="name">问诊表-已填写</view>
</view>
<view class="descform" wx:if="{{renderDom[0].case_not_fill_fields}}">
等待填写
</view>
<view class="descform" wx:else>
点击查看
</view>
</view>
</view>

View File

@ -362,4 +362,61 @@ color: rgba(0,0,0,0.45);
.sicklook .see{
font-size: 32rpx;
}
.wenzhen_form{
width: 60vw;
position: relative;
z-index:2;
border-radius: 10px 10px 10px 10px;
border: 1rpx solid #1ACAD3;
}
.wenzhen_form .title{
border-radius: 16rpx 16rpx 0 0;
padding:20rpx;
display: flex;
align-items: center;
font-size: 30rpx;
color: #FFFFFF;
background-color: #3CC7C0;
}
.wzicon{
margin-right: 10rpx;
width:42rpx;
height:46rpx;
}
.my-custom .wenzhen_form{
background: rgb(212, 239, 241);
}
.wenzhen_form .descform{
padding:15rpx 20rpx;
background-color: #ffff;
font-size: 28rpx;
color: #666666;
border-radius: 0 0 16rpx 16rpx;
}
.wenzhen_form.my-custom::after{
content:'';
position: absolute;
top: 35rpx;
right: -19rpx;
transform: translate(-50%,-50%) rotate(-135deg);
width: 16rpx;
height: 16rpx;
background: #3CC7C0;
border: 1rpx solid #1ACAD3;
/* background: rgb(255, 255, 255);
border: 1rpx solid #E7E7E7; */
border-style: none none solid solid;
}
.wenzhen_form.your-custom::after{
content:'';
position: absolute;
top: 35rpx;
left: 0;
transform: translate(-50%,-50%) rotate(45deg);
width: 16rpx;
height: 16rpx;
background: #3CC7C0;
border: 1rpx solid #1ACAD3;
border-style: none none solid solid
}

View File

@ -55,7 +55,12 @@ Component({
},
baseInfo: {
type: Object,
value: {}
value: {},
observer(newVal) {
this.setData({
family_id: newVal.family_id,
});
},
},
message_rounds:{
type: Number,
@ -74,6 +79,7 @@ Component({
data: {
conversation: {},
message: '',
family_id:'',
extensionArea: false,
sendMessageBtn: false,
displayFlag: '',
@ -113,26 +119,85 @@ Component({
lifetimes: {
attached() {
let _this = this;
// 加载声音录制管理器
this.recorderManager = wx.getRecorderManager();
this.recorderManager.onStop((res) => {
this.recorderManager.onStop(async(resData) => {
wx.hideLoading();
if (this.data.canSend) {
if (res.duration < 1000) {
if (resData.duration < 1000) {
wx.showToast({
title: '录音时间太短',
icon: 'none',
});
} else {
let {from}=this.data;
// res.tempFilePath 存储录音文件的临时路径
const message = wx.$TUIKit.createAudioMessage({
to: this.getToAccount(),
conversationType: this.data.conversation.type,
payload: {
file: res,
},
if(from){
await this.handlegetLastInquiry();
}
let conversationID = this.data.conversation.conversationID
let promise = wx.$TUIKit.getConversationProfile(conversationID);
promise.then((imResponse)=> {
// console.log("getConversationProfile 正在执行")
// 获取成功
// console.log(imResponse.data.conversation); // 会话资料
_this.setData({
conversation: imResponse.data.conversation
})
}).catch(function(imError) {
console.warn('getConversationProfile error:', imError); // 获取会话资料失败的相关信息
});
this.$sendTIMMessage(message);
Promise.all([promise]).then(res => {
// 获取最后一条消息
let last_message = this.data.conversation.lastMessage;
// console.log("last_message: ", last_message);
let cloudCustomData = "";
let cloudCustomDataJson = "";
if(last_message.cloudCustomData){
cloudCustomData = last_message.cloudCustomData;
}
if(cloudCustomData){
cloudCustomDataJson = JSON.parse(cloudCustomData);
}
let message_rounds = 0;
let patient_family_data = {};
patient_family_data.patient_name = this.data.baseInfo.patient_family_name;
patient_family_data.patient_sex = this.data.baseInfo.patient_family_sex;
patient_family_data.patient_age = this.data.baseInfo.patient_family_age;
if(cloudCustomDataJson){
message_rounds = cloudCustomDataJson.message_rounds;
}
let cach_message_rounds = this.data.message_rounds
message_rounds = cach_message_rounds>message_rounds?cach_message_rounds:message_rounds
const mycloudCustomData = JSON.stringify({
order_inquiry_id: this.data.order_inquiry_id,
inquiry_type: this.data.inquiry_type,
message_type: 0,
is_system: 0,
message_rounds: message_rounds,
patient_family_data: patient_family_data
});
const message = wx.$TUIKit.createAudioMessage({
to: this.getToAccount(),
conversationType: this.data.conversation.type,
payload: {
file: resData,
},
cloudCustomData:mycloudCustomData
});
_this.$sendTIMMessage(message);
}).catch(err=>{
console.log(err)
})
}
}
this.setData({
@ -144,7 +209,6 @@ Component({
text: '按住说话',
});
});
let _this = this
wx.onNetworkStatusChange(function (res) {
// console.log("onNetworkStatusChange from wenzhen: ")
// console.log(res.isConnected)
@ -222,6 +286,9 @@ Component({
text: '按住说话',
focus: false,
});
this.setData({
displayFlag: '',
});
},
// 长按录音
@ -493,7 +560,8 @@ Component({
});
break;
case '10'://查看完整病历
app.go("/Pages/yishi/case/index?order_inquiry_id="+this.data.order_inquiry_id)
// app.go("/Pages/yishi/case/index?order_inquiry_id="+this.data.order_inquiry_id)
app.go("/Pages/yishi/patient_sick/index?order_inquiry_id="+this.data.order_inquiry_id+"&family_id="+this.data.family_id)
break;
case '11'://在线开方
let _this = this;
@ -1073,6 +1141,9 @@ Component({
showChangYongYu(){
app.go("/Pages/yishi/quickreply/index?from=chat")
},
showWenZhenBiao(){
app.go("/Pages/yishi/write_sickform/index?order_inquiry_id="+this.data.order_inquiry_id)
},
},
});

View File

@ -4,7 +4,7 @@
<view class="TUI-commom-function-item" data-key="11" bindtap="handleCommonFunctions" wx:if="{{baseInfo.multi_point_status == 1 && baseInfo.inquiry_status==4 && baseInfo.multi_point_enable==1}}">在线开处方</view>
</view>
<view class="TUI-message-input">
<image class="TUI-icon" bindtap="switchAudio" wx:if="{{has_audio}}"
<image class="TUI-icon" bindtap="switchAudio"
src="{{isAudio ? '../../../../static/assets/keyboard.svg' : '../../../../static/assets/audio.svg'}}" />
<view wx:if="{{!isAudio || isEmoji}}" class="TUI-message-input-main {{ focus && 'TUI-message-input-main-focus'}}" >
<textarea focus="{{false}}" hold-keyboard id="mytextarea" class="TUI-message-input-area" adjust-position="{{false}}" cursor-spacing="0"
@ -28,12 +28,14 @@
<view class="TUI-sendMessage-btn" wx:if="{{ has_emoji }}">
<image class="TUI-icon" bindtap="handleEmoji" src="../../../../static/assets/face-emoji.svg" />
</view>
<view wx:if="{{!sendMessageBtn}}" bindtap="handleExtensions" class="TUI-sendMessage-btn">
<view class="TUI-sendMessage-btn" wx:if="{{!isAudio || isEmoji}}">
<view wx:if="{{!sendMessageBtn}}" bindtap="handleExtensions" class="TUI-sendMessage-btn">
<image class="TUI-icon" src="{{static_host}}/applet/doctor/static/images/chat/tianjia.png" />
</view>
<view wx:else class="TUI-sendMessage-btn TUI-sendMessage-btn-input" bindtap="sendTextMessage">
发送
</view>
</view>
</view>
</view>
<view wx:if="{{displayFlag === 'emoji'}}" class="TUI-Emoji-area">
@ -52,6 +54,10 @@
<image mode="widthFix" class="TUI-Extension-icon MY-TUI-Extension-icon" src="{{static_host}}/applet/doctor/static/images/chat/wenzi.png" />
<view class="TUI-Extension-slot-name MY-TUI-Extension-slot-name">常用语</view>
</view>
<view class="TUI-Extension-slot MY-TUI-Extension-slot" bindtap="showWenZhenBiao">
<image mode="widthFix" class="TUI-Extension-icon MY-TUI-Extension-icon" src="{{static_host}}/applet/doctor/static/images/chat/wenzi.png" />
<view class="TUI-Extension-slot-name MY-TUI-Extension-slot-name">问诊表</view>
</view>
<!-- <view class="TUI-Extension-slot" bindtap="handleSendPicture">
<image class="TUI-Extension-icon" src="../../../../static/assets/take-photo.svg" />
<view class="TUI-Extension-slot-name">相机</view>

View File

@ -7,6 +7,7 @@
.TUI-message-input {
display: flex;
padding-bottom: 16rpx;
align-items: center;
background-color: #fff;
width: 95vw;
overflow: scroll;

View File

@ -355,7 +355,7 @@ Component({
let show_avatar = true;
if(type === "TIMCustomElem"){
const customMessage = JSON.parse(message.payload.data);
if(Number(customMessage.message_type) != GDXZ_CUSTOM_MSEEAGE.PRESCRIBE && Number(customMessage.message_type) != GDXZ_CUSTOM_MSEEAGE.PRESCRIBE_VERIFY && Number(customMessage.message_type) != GDXZ_CUSTOM_MSEEAGE.SUGAR_CHECK){
if(Number(customMessage.message_type) != GDXZ_CUSTOM_MSEEAGE.PRESCRIBE && Number(customMessage.message_type) != GDXZ_CUSTOM_MSEEAGE.PRESCRIBE_VERIFY && Number(customMessage.message_type) != GDXZ_CUSTOM_MSEEAGE.SUGAR_CHECK && Number(customMessage.message_type) != GDXZ_CUSTOM_MSEEAGE.WENZHEN_FORM){
show_avatar = false;
}
if(Number(customMessage.message_type) == GDXZ_CUSTOM_MSEEAGE.TRABECULA && refreshBaseInfo){

View File

@ -51,6 +51,7 @@ const constant = {
BANNER_MESSAGE: 8,//8 弹框消息
SUGAR_CHECK:10,//糖组检测
PATIENT_INFO:11,//患者信息
WENZHEN_FORM:12,//问诊表;
},
OPERATING_ENVIRONMENT: 'imWxTuikit'

10
app.js
View File

@ -81,7 +81,7 @@ App({
onShow(){
// this.imInit();
},
imInit(){
imInit(options={},type=1,callback=()=>{}){
console.log("imInit")
let usertype = wx.getStorageSync('usertype');
let userID = wx.getStorageSync('user_id_'+usertype);
@ -125,9 +125,15 @@ App({
login_promise.then(function(imResponse) {
// console.log(imResponse.data); // 登录成功
callback();
}).catch(function(imError) {
console.warn('login error:', imError); // 登录失败的相关信息
if(type==1 && imError.indexOf("重复登录")!=-1){
wx.showToast({
title: '登陆失败',
icon:"none"
})
};
});

View File

@ -60,7 +60,10 @@
"Pages/agreement_page/index",
"Pages/yishi/medince_list/index",
"Pages/yishi/linkPage/linkPage",
"Pages/yishi/notify/notify"
"Pages/yishi/notify/notify",
"Pages/yishi/patient_sick/index",
"Pages/yishi/write_sickform/index",
"Pages/yishi/sickform/index"
],
"window": {
"navigationBarBackgroundColor": "#ffffff",

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -836,6 +836,68 @@ editConfig(params) {
}
})
}
//获取问诊订单病例详情-基础
getSimpleInquiry(params) {
return this.request({
url: `${this.baseUrl}/case/inquiry/simple`,
method: 'GET',
data: {
...params
}
})
}
getInquiryDetail(params) {//获取问诊订单病例详情
return this.request({
url: `${this.baseUrl}/case/inquiry`,
method: 'GET',
data: {
...params
}
})
}
getPathography(params) {//获取家庭成员病情记录列表-分页
return this.request({
url: `${this.baseUrl}/patient/pathography`,
method: 'GET',
data: {
...params
}
})
}
getPathographyDetail(id) {//获取家庭成员病情记录列表-分页
return this.request({
url: `${this.baseUrl}/patient/pathography/${id}`,
method: 'GET'
})
}
getUnfilled(params) {//获取问诊订单病例缺少字段
return this.request({
url: `${this.baseUrl}/case/fields/unfilled`,
method: 'GET',
data: {
...params
}
})
}
doctorSendUnfilled(params) {//医生发送缺少字段至患者
return this.request({
url: `${this.baseUrl}/case/fields/doctor`,
method: 'POST',
data: {
...params
}
})
}
patientSendFilled(params) {//患者填写缺少字段至医生
return this.request({
url: `${this.baseUrl}/case/fields/patient`,
method: 'POST',
data: {
...params
}
})
}

View File

@ -17,7 +17,7 @@ class HTTP {
url,
data = {},
method = 'GET',
contentType = 'application/x-www-form-urlencoded',
contentType = 'application/json',
showLoading = true
}){
return new Promise((resolve, reject) => {
@ -25,7 +25,7 @@ class HTTP {
})
}
_request(url, resolve, reject, data = {}, method = 'GET', contentType = 'application/x-www-form-urlencoded', showLoading = true) {
_request(url, resolve, reject, data = {}, method = 'GET', contentType = 'application/json', showLoading = true) {
if(showLoading) wx.showLoading();
let usertype = wx.getStorageSync('usertype');
wx.request({