first commit
commit
215b9d6f08
@ -0,0 +1,15 @@
|
||||
{
|
||||
"pages": [
|
||||
"pages/index/index",
|
||||
"pages/record/record",
|
||||
"pages/order/order"
|
||||
],
|
||||
"window": {
|
||||
"backgroundTextStyle": "light",
|
||||
"navigationBarBackgroundColor": "#fff",
|
||||
"navigationBarTitleText": "病案申请",
|
||||
"navigationBarTextStyle": "black"
|
||||
},
|
||||
"style": "v2",
|
||||
"sitemapLocation": "sitemap.json"
|
||||
}
|
@ -0,0 +1,105 @@
|
||||
/**app.wxss**/
|
||||
@import "colorui/main.wxss";
|
||||
@import "colorui/icon.wxss";
|
||||
|
||||
.container {
|
||||
margin-top: 200px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.nav-list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
padding: 0px 40rpx 0px;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.nav-li {
|
||||
padding: 30rpx;
|
||||
border-radius: 12rpx;
|
||||
width: 45%;
|
||||
margin: 0 2.5% 40rpx;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.nav-li::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
z-index: -1;
|
||||
background-color: inherit;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
bottom: -10%;
|
||||
border-radius: 10rpx;
|
||||
opacity: 0.2;
|
||||
transform: scale(0.9, 0.9);
|
||||
}
|
||||
|
||||
.nav-li.cur {
|
||||
color: #fff;
|
||||
background: rgb(94, 185, 94);
|
||||
box-shadow: 4rpx 4rpx 6rpx rgba(94, 185, 94, 0.4);
|
||||
}
|
||||
|
||||
.nav-title {
|
||||
font-size: 32rpx;
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
.nav-title::first-letter {
|
||||
font-size: 40rpx;
|
||||
margin-right: 4rpx;
|
||||
}
|
||||
|
||||
.nav-name {
|
||||
font-size: 28rpx;
|
||||
text-transform: Capitalize;
|
||||
margin-top: 20rpx;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.nav-name::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
display: block;
|
||||
width: 40rpx;
|
||||
height: 6rpx;
|
||||
background: #fff;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.nav-name::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
display: block;
|
||||
width: 100rpx;
|
||||
height: 1px;
|
||||
background: #fff;
|
||||
bottom: 0;
|
||||
right: 40rpx;
|
||||
opacity: 0.3;
|
||||
}
|
||||
|
||||
.nav-name::first-letter {
|
||||
font-weight: bold;
|
||||
font-size: 36rpx;
|
||||
margin-right: 1px;
|
||||
}
|
||||
|
||||
.nav-li text {
|
||||
position: absolute;
|
||||
right: 30rpx;
|
||||
top: 30rpx;
|
||||
font-size: 52rpx;
|
||||
width: 60rpx;
|
||||
height: 60rpx;
|
||||
text-align: center;
|
||||
line-height: 60rpx;
|
||||
}
|
||||
|
||||
.text-light {
|
||||
font-weight: 300;
|
||||
}
|
@ -0,0 +1,184 @@
|
||||
/*
|
||||
Animation 微动画
|
||||
基于ColorUI组建库的动画模块 by 文晓港 2019年3月26日19:52:28
|
||||
*/
|
||||
|
||||
/* css 滤镜 控制黑白底色gif的 */
|
||||
.gif-black{
|
||||
mix-blend-mode: screen;
|
||||
}
|
||||
.gif-white{
|
||||
mix-blend-mode: multiply;
|
||||
}
|
||||
|
||||
|
||||
/* Animation css */
|
||||
[class*=animation-] {
|
||||
animation-duration: .5s;
|
||||
animation-timing-function: ease-out;
|
||||
animation-fill-mode: both
|
||||
}
|
||||
|
||||
.animation-fade {
|
||||
animation-name: fade;
|
||||
animation-duration: .8s;
|
||||
animation-timing-function: linear
|
||||
}
|
||||
|
||||
.animation-scale-up {
|
||||
animation-name: scale-up
|
||||
}
|
||||
|
||||
.animation-scale-down {
|
||||
animation-name: scale-down
|
||||
}
|
||||
|
||||
.animation-slide-top {
|
||||
animation-name: slide-top
|
||||
}
|
||||
|
||||
.animation-slide-bottom {
|
||||
animation-name: slide-bottom
|
||||
}
|
||||
|
||||
.animation-slide-left {
|
||||
animation-name: slide-left
|
||||
}
|
||||
|
||||
.animation-slide-right {
|
||||
animation-name: slide-right
|
||||
}
|
||||
|
||||
.animation-shake {
|
||||
animation-name: shake
|
||||
}
|
||||
|
||||
.animation-reverse {
|
||||
animation-direction: reverse
|
||||
}
|
||||
|
||||
@keyframes fade {
|
||||
0% {
|
||||
opacity: 0
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes scale-up {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: scale(.2)
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: scale(1)
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes scale-down {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: scale(1.8)
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: scale(1)
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes slide-top {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translateY(-100%)
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: translateY(0)
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes slide-bottom {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translateY(100%)
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: translateY(0)
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes shake {
|
||||
|
||||
0%,
|
||||
100% {
|
||||
transform: translateX(0)
|
||||
}
|
||||
|
||||
10% {
|
||||
transform: translateX(-9px)
|
||||
}
|
||||
|
||||
20% {
|
||||
transform: translateX(8px)
|
||||
}
|
||||
|
||||
30% {
|
||||
transform: translateX(-7px)
|
||||
}
|
||||
|
||||
40% {
|
||||
transform: translateX(6px)
|
||||
}
|
||||
|
||||
50% {
|
||||
transform: translateX(-5px)
|
||||
}
|
||||
|
||||
60% {
|
||||
transform: translateX(4px)
|
||||
}
|
||||
|
||||
70% {
|
||||
transform: translateX(-3px)
|
||||
}
|
||||
|
||||
80% {
|
||||
transform: translateX(2px)
|
||||
}
|
||||
|
||||
90% {
|
||||
transform: translateX(-1px)
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes slide-left {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translateX(-100%)
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: translateX(0)
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes slide-right {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translateX(100%)
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: translateX(0)
|
||||
}
|
||||
}
|
@ -0,0 +1,54 @@
|
||||
const app = getApp();
|
||||
Component({
|
||||
/**
|
||||
* 组件的一些选项
|
||||
*/
|
||||
options: {
|
||||
addGlobalClass: true,
|
||||
multipleSlots: true
|
||||
},
|
||||
/**
|
||||
* 组件的对外属性
|
||||
*/
|
||||
properties: {
|
||||
bgColor: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
isCustom: {
|
||||
type: [Boolean, String],
|
||||
default: false
|
||||
},
|
||||
isBack: {
|
||||
type: [Boolean, String],
|
||||
default: false
|
||||
},
|
||||
bgImage: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
},
|
||||
/**
|
||||
* 组件的初始数据
|
||||
*/
|
||||
data: {
|
||||
StatusBar: app.globalData.StatusBar,
|
||||
CustomBar: app.globalData.CustomBar,
|
||||
Custom: app.globalData.Custom
|
||||
},
|
||||
/**
|
||||
* 组件的方法列表
|
||||
*/
|
||||
methods: {
|
||||
BackPage() {
|
||||
wx.navigateBack({
|
||||
delta: 1
|
||||
});
|
||||
},
|
||||
toHome(){
|
||||
wx.reLaunch({
|
||||
url: '/pages/index/index',
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
@ -0,0 +1,4 @@
|
||||
{
|
||||
"component": true,
|
||||
"usingComponents": {}
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
<view class="cu-custom" style="height:{{CustomBar}}px">
|
||||
<view class="cu-bar fixed {{bgImage!=''?'none-bg text-white bg-img':''}} {{bgColor}}" style="height:{{CustomBar}}px;padding-top:{{StatusBar}}px;{{bgImage?'background-image:url(' + bgImage+')':''}}">
|
||||
<view class="action" bindtap="BackPage" wx:if="{{isBack}}">
|
||||
<text class="cuIcon-back"></text>
|
||||
<slot name="backText"></slot>
|
||||
</view>
|
||||
<view class="action border-custom" wx:if="{{isCustom}}" style="width:{{Custom.width}}px;height:{{Custom.height}}px;margin-left:calc(750rpx - {{Custom.right}}px)">
|
||||
<text class="cuIcon-back" bindtap="BackPage"></text>
|
||||
<text class="cuIcon-homefill" bindtap="toHome"></text>
|
||||
</view>
|
||||
<view class="content" style="top:{{StatusBar}}px">
|
||||
<slot name="content"></slot>
|
||||
</view>
|
||||
<slot name="right"></slot>
|
||||
</view>
|
||||
</view>
|
@ -0,0 +1 @@
|
||||
/* colorui/components/cu-custom.wxss */
|
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
Binary file not shown.
After Width: | Height: | Size: 56 KiB |
@ -0,0 +1,19 @@
|
||||
{
|
||||
"requires": true,
|
||||
"lockfileVersion": 1,
|
||||
"dependencies": {
|
||||
"@types/wechat-miniprogram": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npm.taobao.org/@types/wechat-miniprogram/download/@types/wechat-miniprogram-3.2.0.tgz",
|
||||
"integrity": "sha1-a0A0FVhW0xzZ80Lv0hfbwn6oD7k="
|
||||
},
|
||||
"@vant/weapp": {
|
||||
"version": "1.5.3",
|
||||
"resolved": "https://registry.npm.taobao.org/@vant/weapp/download/@vant/weapp-1.5.3.tgz",
|
||||
"integrity": "sha1-X6PCNzL/3rhck5tPRc/Fiy64BfQ=",
|
||||
"requires": {
|
||||
"@types/wechat-miniprogram": "^3.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
Component({
|
||||
options: {
|
||||
addGlobalClass: true,
|
||||
},
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
elements: [{
|
||||
title: '病历申请',
|
||||
name: 'record',
|
||||
color: 'cyan',
|
||||
icon: 'newsfill'
|
||||
},{
|
||||
title: '申请记录',
|
||||
name: 'order',
|
||||
color: 'blue',
|
||||
icon: 'order'
|
||||
}]
|
||||
},
|
||||
|
||||
})
|
@ -0,0 +1,3 @@
|
||||
{
|
||||
"component": true
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
<scroll-view scroll-y class="scrollPage" >
|
||||
<view class="container">
|
||||
<view class='nav-list'>
|
||||
<navigator open-type="navigate" hover-class='none' url="/pages/{{item.name}}/{{item.name}}" class="nav-li bg-{{item.color}}" wx:for="{{elements}}" wx:key>
|
||||
<view class="nav-title">{{item.title}}</view>
|
||||
<view class="nav-name">{{item.name}}</view>
|
||||
<text class='cuIcon-{{item.icon}}'></text>
|
||||
</navigator>
|
||||
</view>
|
||||
</view>
|
||||
<button class="action bg-red round shadow" open-type="contact">
|
||||
<view class="cuIcon-service"></view>
|
||||
客服
|
||||
</button>
|
||||
</scroll-view>
|
@ -0,0 +1 @@
|
||||
/* pages/home/home.wxss */
|
@ -0,0 +1,26 @@
|
||||
// index.js
|
||||
// 获取应用实例
|
||||
const app = getApp()
|
||||
Page({
|
||||
data: {
|
||||
status: 3,
|
||||
flag:1,
|
||||
interval: null
|
||||
},
|
||||
onLoad() {
|
||||
let that=this
|
||||
that.setData({
|
||||
interval:setInterval(() => {
|
||||
app.utils.util.getSessionId(that.bindData)
|
||||
}, 1000)});
|
||||
},
|
||||
bindData(){
|
||||
this.setData({
|
||||
status: app.globalData.status,
|
||||
flag: app.globalData.flag
|
||||
})
|
||||
if(this.data.interval){
|
||||
clearInterval(this.data.interval)
|
||||
}
|
||||
}
|
||||
})
|
@ -0,0 +1,7 @@
|
||||
{
|
||||
"usingComponents": {
|
||||
"home":"../home/home",
|
||||
"verify":"../verify/verify",
|
||||
"verify-loading": "../verify-loading/verify-loading"
|
||||
}
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
<home wx:if="{{status===0&&flag===1}}"></home>
|
||||
<verify wx:if="{{status===2}}" bind:reflush="bindData"></verify>
|
||||
<verify-loading wx:if="{{(status===0&&flag===0)||status===1}}" bind:reflush="bindData"></verify-loading>
|
||||
<view wx:if="{{status===3}}">
|
||||
<view class="bg-white">
|
||||
<image src="/images/loading-1.gif" mode="aspectFit" class="gif-white response" style="height: 98vh"></image>
|
||||
</view>
|
||||
</view>
|
||||
|
@ -0,0 +1 @@
|
||||
/**index.wxss**/
|
@ -0,0 +1,117 @@
|
||||
// pages/order/order.js
|
||||
const app=getApp();
|
||||
Page({
|
||||
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
TabCur: 0,
|
||||
scrollLeft:0,
|
||||
tabItem: ['全部','申请中','已完成'],
|
||||
page: 1,
|
||||
listData: [],
|
||||
hasNext: true,
|
||||
keyword: '',
|
||||
textContent: ''
|
||||
},
|
||||
tabSelect(e) {
|
||||
this.setData({
|
||||
TabCur: e.currentTarget.dataset.id,
|
||||
scrollLeft: (e.currentTarget.dataset.id-1)*60,
|
||||
page: 1,
|
||||
listData: [],
|
||||
hasNext: true
|
||||
})
|
||||
this.loadData()
|
||||
},
|
||||
getKeyword(e){
|
||||
this.setData({
|
||||
keyword: e.detail.value
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad: function (options) {
|
||||
this.loadData()
|
||||
},
|
||||
searchData(){
|
||||
this.setData({
|
||||
page: 1,
|
||||
listData: [],
|
||||
hasNext: true
|
||||
})
|
||||
this.loadData()
|
||||
},
|
||||
loadNextData(){
|
||||
let that=this;
|
||||
if(!that.data.hasNext)
|
||||
return
|
||||
let nextPage=that.data.page+1;
|
||||
that.setData({
|
||||
page: nextPage
|
||||
})
|
||||
that.loadData()
|
||||
},
|
||||
loadData(){
|
||||
let that=this;
|
||||
let status = null;
|
||||
if(that.data.TabCur===1){
|
||||
status=0
|
||||
}else if(that.data.TabCur===2){
|
||||
status=1
|
||||
}
|
||||
app.utils.util.request({
|
||||
url:'/orderList',
|
||||
data:{
|
||||
keyword: that.data.keyword,
|
||||
status: status,
|
||||
page: that.data.page
|
||||
},
|
||||
success: function(res){
|
||||
if(res.data.length){
|
||||
res.data.forEach(e => {
|
||||
that.data.listData.push(e)
|
||||
});
|
||||
that.setData({
|
||||
listData: that.data.listData
|
||||
})
|
||||
}else{
|
||||
wx.showModal({
|
||||
title: '提示',
|
||||
content: '暂无更多数据',
|
||||
showCancel: false
|
||||
})
|
||||
that.setData({
|
||||
hasNext: false
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
hideModal(e) {
|
||||
this.setData({
|
||||
modalName: null
|
||||
})
|
||||
},
|
||||
showDownUrl(e){
|
||||
console.log(e.currentTarget.dataset.downurl)
|
||||
this.setData({
|
||||
textContent: e.currentTarget.dataset.downurl,
|
||||
modalName: e.currentTarget.dataset.target
|
||||
})
|
||||
},
|
||||
copyText(){
|
||||
let that=this;
|
||||
wx.setClipboardData({
|
||||
//准备复制的数据内容
|
||||
data: that.data.textContent,
|
||||
success: function (res) {
|
||||
wx.showToast({
|
||||
title: '复制成功',
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
})
|
@ -0,0 +1,4 @@
|
||||
{
|
||||
"usingComponents": {},
|
||||
"navigationBarTitleText":"病案申请-记录"
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
<view class="cu-bar search bg-white">
|
||||
<view class="search-form round">
|
||||
<text class="cuIcon-search"></text>
|
||||
<input type="text" placeholder="输入病案号或姓名" bindinput="getKeyword"></input>
|
||||
</view>
|
||||
<view class="action">
|
||||
<button class="cu-btn bg-green shadow-blur round" style="width:20vw" bindtap="loadData">搜索</button>
|
||||
</view>
|
||||
</view>
|
||||
<scroll-view scroll-x class="bg-white nav">
|
||||
<view class="flex text-center">
|
||||
<view class="cu-item flex-sub {{index==TabCur?'text-orange cur':''}}" wx:for="{{tabItem}}" wx:key="index" bindtap="tabSelect" data-id="{{index}}">
|
||||
{{tabItem[index]}}
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
<scroll-view scroll-y style="height:calc(100vh - 194rpx)" bindscrolltolower="loadNextData">
|
||||
<view class="cu-list menu-avatar">
|
||||
<view class="cu-item" wx:for="{{listData}}" wx:key="id" style="height:172rpx">
|
||||
<text class="cu-avatar lg cuIcon-form" style="height:130rpx"></text>
|
||||
<view class="content">
|
||||
<view class="text-grey text-lg">{{item.mrNumber}}</view>
|
||||
<view class="text-gray">患者:{{item.patientName}},就诊次数:{{item.times}}</view>
|
||||
<view class="text-gray text-sm">出院日期:{{item.dischargeDate}}</view>
|
||||
</view>
|
||||
<view class="action" style="width:200rpx">
|
||||
<view class="text-grey text-xs">{{item.type}}</view>
|
||||
<view class="cu-tag round bg-grey" wx:if="{{item.type==='原件寄回'||item.status!=='已完成'}}">{{item.status}}</view>
|
||||
<view class="cu-tag round bg-grey" wx:if="{{item.type==='电子扫描件'&&item.status==='已完成'}}" bindtap="showDownUrl" data-target="Modal" data-downurl="{{item.downUrl}}">下载地址</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
|
||||
<view class="cu-modal {{modalName=='Modal'?'show':''}}">
|
||||
<view class="cu-dialog">
|
||||
<view class="cu-bar bg-white justify-end">
|
||||
<view class="content">下载地址</view>
|
||||
<view class="action" bindtap="hideModal">
|
||||
<text class="cuIcon-close text-red"></text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="padding-xl">
|
||||
<text>{{textContent}}</text>
|
||||
</view>
|
||||
<view class="cu-bar bg-white justify-end">
|
||||
<view class="action">
|
||||
<button class="cu-btn line-green text-green" bindtap="hideModal" size="mini">取消</button>
|
||||
<button class="cu-btn bg-green margin-left" bindtap="copyText" size="mini">复制</button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
@ -0,0 +1 @@
|
||||
/* pages/order/order.wxss */
|
@ -0,0 +1,67 @@
|
||||
const app=getApp();
|
||||
Page({
|
||||
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
index: '1',
|
||||
picker: ['病案原件寄回', '电子版扫描件'],
|
||||
date: '2018-12-25',
|
||||
address: ''
|
||||
},
|
||||
onLoad:function(){
|
||||
this.setData({
|
||||
address: app.globalData.address
|
||||
})
|
||||
},
|
||||
PickerChange(e) {
|
||||
console.log(this.data.index);
|
||||
this.setData({
|
||||
index: e.detail.value
|
||||
})
|
||||
},
|
||||
submitForm(e){
|
||||
// 验证参数
|
||||
let formData=e.detail.value;
|
||||
if(!formData.mrNumber){
|
||||
wx.showToast({
|
||||
title: '病案号必填',
|
||||
icon: 'error',
|
||||
})
|
||||
return;
|
||||
}
|
||||
if(!formData.patientName){
|
||||
wx.showToast({
|
||||
title: '患者姓名必填',
|
||||
icon: 'error',
|
||||
})
|
||||
return;
|
||||
}
|
||||
if(!formData.times){
|
||||
wx.showToast({
|
||||
title: '就诊次数必填',
|
||||
icon: 'error',
|
||||
})
|
||||
return;
|
||||
}
|
||||
if(formData.type==='0'&&!formData.address){
|
||||
wx.showToast({
|
||||
title: '寄送地址必填',
|
||||
icon: 'error',
|
||||
})
|
||||
return;
|
||||
}
|
||||
// 请求接口
|
||||
app.utils.util.request({
|
||||
url: '/order',
|
||||
data: formData,
|
||||
success: function(res){
|
||||
// 跳转页面
|
||||
wx.reLaunch({
|
||||
url:"../order/order"
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
})
|
@ -0,0 +1,3 @@
|
||||
{
|
||||
"usingComponents": {}
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
<form bindsubmit="submitForm">
|
||||
<view class="cu-form-group margin-top">
|
||||
<view class="title">申请类型</view>
|
||||
<picker bindchange="PickerChange" value="{{index}}" range="{{picker}}" name="type">
|
||||
<view class="picker">
|
||||
{{index?picker[index]:'请选择'}}
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
<view class="cu-form-group margin-top">
|
||||
<view class="title">病案号</view>
|
||||
<input placeholder="请输入病案号" name="mrNumber"></input>
|
||||
</view>
|
||||
<view class="cu-form-group">
|
||||
<view class="title">患者姓名</view>
|
||||
<input placeholder="请输入患者姓名" name="patientName"></input>
|
||||
</view>
|
||||
<view class="cu-form-group">
|
||||
<view class="title">就诊次数</view>
|
||||
<input type="number" placeholder="请输入患者就诊次数" name="times"></input>
|
||||
</view>
|
||||
<view class="cu-form-group">
|
||||
<view class="title">出院日期</view>
|
||||
<picker mode="date" value="{{date}}" bindchange="DateChange" name="dischargeDate">
|
||||
<view class="picker">
|
||||
{{date}}
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
<view class="cu-form-group" wx:if="{{index==0}}">
|
||||
<view class="title">收货地址</view>
|
||||
<input placeholder="请输入收货地址" name="address" value="{{address}}"></input>
|
||||
</view>
|
||||
|
||||
<button class="cu-btn round shadow-blur button-hover block bg-blue margin-tb-lg lg" form-type="submit">提交</button>
|
||||
</form>
|
@ -0,0 +1 @@
|
||||
/* pages/record/record.wxss */
|
@ -0,0 +1,37 @@
|
||||
// pages/verify-loading/verify-loading.js
|
||||
const app = getApp();
|
||||
Component({
|
||||
options: {
|
||||
addGlobalClass: true,
|
||||
},
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
canLogin: true,
|
||||
inteval: null
|
||||
},
|
||||
lifetimes:{
|
||||
attached: function(){
|
||||
this.setData({
|
||||
canLogin: app.globalData.status !== 1
|
||||
})
|
||||
let that=this;
|
||||
this.data.inteval=setInterval(() => {
|
||||
app.utils.util.request({
|
||||
url: '/info',
|
||||
success: function(res){
|
||||
if(res.data.flag===1&&res.data.status===0){
|
||||
app.globalData.status = res.data.status
|
||||
app.globalData.flag = res.data.flag
|
||||
that.triggerEvent('reflush')
|
||||
}
|
||||
}
|
||||
})
|
||||
}, 5000);
|
||||
},
|
||||
detached: function(){
|
||||
clearInterval(this.data.inteval);
|
||||
}
|
||||
}
|
||||
})
|
@ -0,0 +1,3 @@
|
||||
{
|
||||
"component": true
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
<view class="flex cu-card case justify-center align-center" style="height:100vh">
|
||||
<view class="cu-item shadow">
|
||||
<view class="solids-bottom padding-xs flex align-center" wx:if="{{canLogin}}">
|
||||
<view class="padding">
|
||||
<text class="cuIcon-loading2 iconfont-spin"></text>
|
||||
</view>
|
||||
<view class="flex-sub">
|
||||
<view class="padding">客服审核中。。。。。。</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="solids-bottom padding-xs flex align-center" wx:if="{{!canLogin}}">
|
||||
<view class="padding">
|
||||
<text class="cuIcon-warnfill text-red text-lg"></text>
|
||||
</view>
|
||||
<view class="flex-sub">
|
||||
<view class="padding">您的账号已被停用</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
@ -0,0 +1 @@
|
||||
/* pages/verify-loading/verify-loading.wxss */
|
@ -0,0 +1,102 @@
|
||||
// pages/verify/verify.js
|
||||
const app = getApp()
|
||||
Component({
|
||||
options: {
|
||||
addGlobalClass: true,
|
||||
},
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
userInfo: {},
|
||||
hasUserInfo: false,
|
||||
canIUse: wx.canIUse('button.open-type.getUserInfo'),
|
||||
hospital: '',
|
||||
name: '',
|
||||
phone: ''
|
||||
},
|
||||
lifetimes:{
|
||||
attached: function(){
|
||||
if (app.globalData.userInfo) {
|
||||
this.setData({
|
||||
userInfo: app.globalData.userInfo,
|
||||
hasUserInfo: true
|
||||
})
|
||||
}else if (this.data.canIUse) {
|
||||
// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
|
||||
// 所以此处加入 callback 以防止这种情况
|
||||
app.userInfoReadyCallback = res => {
|
||||
this.setData({
|
||||
userInfo: res.userInfo,
|
||||
hasUserInfo: true
|
||||
})
|
||||
}
|
||||
} else {
|
||||
// 在没有 open-type=getUserInfo 版本的兼容处理
|
||||
wx.getUserInfo({
|
||||
success: res => {
|
||||
app.globalData.userInfo = res.userInfo
|
||||
this.setData({
|
||||
userInfo: res.userInfo,
|
||||
hasUserInfo: true
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
signIn(e){
|
||||
let formData=e.detail.value;
|
||||
let userInfo=this.data.userInfo;
|
||||
let that=this;
|
||||
// 验证数据
|
||||
if(!formData.hospital){
|
||||
wx.showToast({
|
||||
title: '医院名称必填',
|
||||
icon: 'error',
|
||||
})
|
||||
return;
|
||||
}
|
||||
if(!formData.name){
|
||||
wx.showToast({
|
||||
title: '姓名必填',
|
||||
icon: 'error',
|
||||
})
|
||||
return;
|
||||
}
|
||||
if(!formData.phone){
|
||||
wx.showToast({
|
||||
title: '手机号必填',
|
||||
icon: 'error',
|
||||
})
|
||||
return;
|
||||
}
|
||||
app.utils.util.request({
|
||||
url: '/signIn',
|
||||
data: {
|
||||
nickName: userInfo.nickName,
|
||||
avatar: userInfo.avatarUrl,
|
||||
gender: userInfo.gender,
|
||||
phone: formData.phone,
|
||||
hospital: formData.hospital,
|
||||
name: formData.name
|
||||
},
|
||||
success: function(res) {
|
||||
app.globalData.status = 0
|
||||
that.triggerEvent("reflush")
|
||||
}
|
||||
})
|
||||
},
|
||||
getUserInfo(e) {
|
||||
if (e.detail.userInfo) {
|
||||
//用户按了允许授权按钮
|
||||
app.globalData.userInfo = e.detail.userInfo
|
||||
this.setData({
|
||||
userInfo: e.detail.userInfo,
|
||||
hasUserInfo: true
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
@ -0,0 +1,3 @@
|
||||
{
|
||||
"component": true
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
<view class="flex cu-card case justify-center align-center" style="height:100vh" wx:if="{{!hasUserInfo && canIUse}}">
|
||||
<button class="cu-btn text-green line-green block lg" open-type="getUserInfo" bindgetuserinfo="getUserInfo">点击授权</button>
|
||||
</view>
|
||||
<form wx:if="{{hasUserInfo}}" bindsubmit="signIn">
|
||||
<view class="cu-form-group margin-top">
|
||||
<view class="title">医院</view>
|
||||
<input placeholder="请输入医院名称" focus="true" value="{{hospital}}" name="hospital"></input>
|
||||
</view>
|
||||
<view class="cu-form-group">
|
||||
<view class="title">姓名</view>
|
||||
<input placeholder="请输入您的姓名" value="{{name}}" name="name"></input>
|
||||
</view>
|
||||
<view class="cu-form-group">
|
||||
<view class="title">手机</view>
|
||||
<input type="number" placeholder="请输入您的手机号" value="{{phone}}" name="phone"></input>
|
||||
</view>
|
||||
<button class="cu-btn round shadow-blur button-hover block bg-blue margin-tb-lg lg" form-type="submit">提交</button>
|
||||
</form>
|
@ -0,0 +1 @@
|
||||
/* pages/verify/verify.wxss */
|
@ -0,0 +1,75 @@
|
||||
{
|
||||
"description": "项目配置文件",
|
||||
"packOptions": {
|
||||
"ignore": []
|
||||
},
|
||||
"setting": {
|
||||
"urlCheck": false,
|
||||
"es6": true,
|
||||
"enhance": false,
|
||||
"postcss": true,
|
||||
"preloadBackgroundData": false,
|
||||
"minified": true,
|
||||
"newFeature": false,
|
||||
"coverView": true,
|
||||
"nodeModules": false,
|
||||
"autoAudits": false,
|
||||
"showShadowRootInWxmlPanel": true,
|
||||
"scopeDataCheck": false,
|
||||
"uglifyFileName": false,
|
||||
"checkInvalidKey": true,
|
||||
"checkSiteMap": true,
|
||||
"uploadWithSourceMap": true,
|
||||
"compileHotReLoad": false,
|
||||
"useMultiFrameRuntime": true,
|
||||
"useApiHook": true,
|
||||
"useApiHostProcess": true,
|
||||
"babelSetting": {
|
||||
"ignore": [],
|
||||
"disablePlugins": [],
|
||||
"outputPath": ""
|
||||
},
|
||||
"enableEngineNative": false,
|
||||
"bundle": false,
|
||||
"useIsolateContext": true,
|
||||
"useCompilerModule": true,
|
||||
"userConfirmedUseCompilerModuleSwitch": false,
|
||||
"userConfirmedBundleSwitch": false,
|
||||
"packNpmManually": false,
|
||||
"packNpmRelationList": [],
|
||||
"minifyWXSS": true
|
||||
},
|
||||
"compileType": "miniprogram",
|
||||
"libVersion": "2.15.0",
|
||||
"appid": "wxa35fbc494f55cdd1",
|
||||
"projectname": "applyCase",
|
||||
"debugOptions": {
|
||||
"hidedInDevtools": []
|
||||
},
|
||||
"scripts": {},
|
||||
"staticServerOptions": {
|
||||
"baseURL": "",
|
||||
"servePath": ""
|
||||
},
|
||||
"isGameTourist": false,
|
||||
"condition": {
|
||||
"search": {
|
||||
"list": []
|
||||
},
|
||||
"conversation": {
|
||||
"list": []
|
||||
},
|
||||
"game": {
|
||||
"list": []
|
||||
},
|
||||
"plugin": {
|
||||
"list": []
|
||||
},
|
||||
"gamePlugin": {
|
||||
"list": []
|
||||
},
|
||||
"miniprogram": {
|
||||
"list": []
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
{
|
||||
"desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
|
||||
"rules": [{
|
||||
"action": "allow",
|
||||
"page": "*"
|
||||
}]
|
||||
}
|
@ -0,0 +1,97 @@
|
||||
const formatTime = date => {
|
||||
const year = date.getFullYear()
|
||||
const month = date.getMonth() + 1
|
||||
const day = date.getDate()
|
||||
const hour = date.getHours()
|
||||
const minute = date.getMinutes()
|
||||
const second = date.getSeconds()
|
||||
|
||||
return `${[year, month, day].map(formatNumber).join('/')} ${[hour, minute, second].map(formatNumber).join(':')}`
|
||||
}
|
||||
|
||||
const formatNumber = n => {
|
||||
n = n.toString()
|
||||
return n[1] ? n : `0${n}`
|
||||
}
|
||||
|
||||
var util = {};
|
||||
|
||||
function getSessionId(suc,fail) {
|
||||
wx.login({
|
||||
success: r => {
|
||||
// console.log(r);
|
||||
// 发送 r.code 到后台换取 openId, sessionKey, unionId
|
||||
wx.request({
|
||||
url: getApp().globalData.url + '/autoLogin',
|
||||
data: {
|
||||
wxCode: r.code
|
||||
},
|
||||
header: {
|
||||
"Content-Type": "application/x-www-form-urlencoded",
|
||||
},
|
||||
method: 'POST',
|
||||
success: result => {
|
||||
let resultData = result.data;
|
||||
if (resultData.code===0) {
|
||||
let data = resultData.data;
|
||||
getApp().globalData.token = data.token;
|
||||
getApp().globalData.status = data.status;
|
||||
getApp().globalData.flag = data.flag;
|
||||
getApp().globalData.address = data.address
|
||||
}
|
||||
if(suc && typeof suc === 'function'){
|
||||
suc()
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function myRequest(res) {
|
||||
let host = getApp().globalData.url;
|
||||
let token = getApp().globalData.token;
|
||||
wx.request({
|
||||
url: host + res.url,
|
||||
data: res.data ? res.data : {},
|
||||
header: {
|
||||
"Content-Type": "application/json",
|
||||
"token": token
|
||||
},
|
||||
method: res.method ? res.method : 'POST',
|
||||
dataType: 'json',
|
||||
success: function(data) {
|
||||
if (data.data.code === 403) {
|
||||
getSessionId();
|
||||
return
|
||||
}
|
||||
if (data.data.code === 500) {
|
||||
wx.showToast({
|
||||
title: data.data.msg,
|
||||
icon: 'error',
|
||||
mask: true
|
||||
})
|
||||
return
|
||||
}
|
||||
if (typeof res.success == "function") {
|
||||
res.success(data.data);
|
||||
}
|
||||
},
|
||||
fail: function(data) {
|
||||
if (typeof res.doFail == "function") {
|
||||
res.doFail();
|
||||
}
|
||||
},
|
||||
complete: function() {
|
||||
if (typeof res.doComplete == "function") {
|
||||
res.doComplete();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
util.request = myRequest, util.getSessionId = getSessionId
|
||||
|
||||
module.exports = {
|
||||
formatTime,
|
||||
util
|
||||
}
|
Loading…
Reference in New Issue