Browse Source

注册流程页面

main
kola 4 months ago
parent
commit
815f96c785
  1. 12
      .editorconfig
  2. 31
      .eslintrc.js
  3. 1
      .gitignore
  4. 10
      .neoconf.json
  5. 29
      .prettierrc
  6. 5
      README.md
  7. 5
      dist.sh
  8. 28
      eslint.config.mjs
  9. 18
      package.json
  10. 3076
      pnpm-lock.yaml
  11. 62
      project.private.config.json
  12. BIN
      src/.DS_Store
  13. 21
      src/app.json
  14. 9
      src/app.scss
  15. 42
      src/app.ts
  16. 6
      src/components/navbar/index.json
  17. 0
      src/components/navbar/index.scss
  18. 43
      src/components/navbar/index.ts
  19. 1
      src/components/navbar/index.wxml
  20. 5
      src/components/navigation-bar/navigation-bar.json
  21. 96
      src/components/navigation-bar/navigation-bar.scss
  22. 105
      src/components/navigation-bar/navigation-bar.ts
  23. 64
      src/components/navigation-bar/navigation-bar.wxml
  24. 6
      src/components/upload/index.json
  25. 9
      src/components/upload/index.scss
  26. 24
      src/components/upload/index.ts
  27. 4
      src/components/upload/index.wxml
  28. 25
      src/echart/components/ec-canvas/echarts.js
  29. BIN
      src/images/.DS_Store
  30. BIN
      src/images/c-doctor-result.png
  31. BIN
      src/images/credentials1.png
  32. BIN
      src/images/credentials2.png
  33. BIN
      src/images/credentials3.png
  34. BIN
      src/images/empty-1.png
  35. BIN
      src/images/icon-error.png
  36. BIN
      src/images/icon-search.png
  37. BIN
      src/images/icon-tel.png
  38. BIN
      src/images/invite-bg.png
  39. BIN
      src/images/invite-title.png
  40. BIN
      src/images/login-bg.png
  41. BIN
      src/images/login-protool-title.png
  42. BIN
      src/images/login-title.png
  43. BIN
      src/images/set-info-bg.png
  44. BIN
      src/images/set-info-result-title.png
  45. BIN
      src/images/start-bg.png
  46. BIN
      src/images/start-title.png
  47. BIN
      src/images/triangle-down.png
  48. BIN
      src/images/user.png
  49. 13
      src/miniprogram_npm/dayjs/index.js
  50. 1
      src/miniprogram_npm/dayjs/index.js.map
  51. 5
      src/module1/pages/cDoctor/index.json
  52. 122
      src/module1/pages/cDoctor/index.scss
  53. 37
      src/module1/pages/cDoctor/index.ts
  54. 50
      src/module1/pages/cDoctor/index.wxml
  55. 3
      src/module1/pages/cDoctorResult/index.json
  56. 56
      src/module1/pages/cDoctorResult/index.scss
  57. 6
      src/module1/pages/cDoctorResult/index.ts
  58. 18
      src/module1/pages/cDoctorResult/index.wxml
  59. 3
      src/module1/pages/invite/index.json
  60. 117
      src/module1/pages/invite/index.scss
  61. 8
      src/module1/pages/invite/index.ts
  62. 35
      src/module1/pages/invite/index.wxml
  63. 5
      src/module1/pages/login/index.json
  64. 102
      src/module1/pages/login/index.scss
  65. 8
      src/module1/pages/login/index.ts
  66. 32
      src/module1/pages/login/index.wxml
  67. 3
      src/module1/pages/loginProtool/index.json
  68. 54
      src/module1/pages/loginProtool/index.scss
  69. 8
      src/module1/pages/loginProtool/index.ts
  70. 437
      src/module1/pages/loginProtool/index.wxml
  71. 7
      src/module1/pages/sDoctor/index.json
  72. 105
      src/module1/pages/sDoctor/index.scss
  73. 11
      src/module1/pages/sDoctor/index.ts
  74. 32
      src/module1/pages/sDoctor/index.wxml
  75. 7
      src/module1/pages/setInfo/index.json
  76. 178
      src/module1/pages/setInfo/index.scss
  77. 34
      src/module1/pages/setInfo/index.ts
  78. 70
      src/module1/pages/setInfo/index.wxml
  79. 3
      src/module1/pages/setInfoResult/index.json
  80. 56
      src/module1/pages/setInfoResult/index.scss
  81. 6
      src/module1/pages/setInfoResult/index.ts
  82. 24
      src/module1/pages/setInfoResult/index.wxml
  83. 5
      src/pages/index/index.json
  84. 62
      src/pages/index/index.scss
  85. 54
      src/pages/index/index.ts
  86. 28
      src/pages/index/index.wxml
  87. 5
      src/pages/logs/logs.json
  88. 16
      src/pages/logs/logs.scss
  89. 21
      src/pages/logs/logs.ts
  90. 7
      src/pages/logs/logs.wxml
  91. 4
      src/pages/start/index.json
  92. 36
      src/pages/start/index.scss
  93. 6
      src/pages/start/index.ts
  94. 6
      src/pages/start/index.wxml
  95. 2
      src/utils/dayjs/day-zh-cn.js
  96. 24
      src/utils/dayjs/relativeTime.d.ts
  97. 1
      src/utils/dayjs/relativeTime.js
  98. 62
      src/utils/page.ts
  99. 69
      src/utils/request.ts
  100. 3
      tsconfig.json
  101. Some files were not shown because too many files have changed in this diff Show More

12
.editorconfig

@ -0,0 +1,12 @@
# EditorConfig is awesome: https://EditorConfig.org
# top-most EditorConfig file
root = true
[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

31
.eslintrc.js

@ -1,31 +0,0 @@
/*
* Eslint config file
* Documentation: https://eslint.org/docs/user-guide/configuring/
* Install the Eslint extension before using this feature.
*/
module.exports = {
env: {
es6: true,
browser: true,
node: true,
},
ecmaFeatures: {
modules: true,
},
parserOptions: {
ecmaVersion: 2018,
sourceType: 'module',
},
globals: {
wx: true,
App: true,
Page: true,
getCurrentPages: true,
getApp: true,
Component: true,
requirePlugin: true,
requireMiniProgram: true,
},
// extends: 'eslint:recommended',
rules: {},
}

1
.gitignore vendored

@ -1 +1,2 @@
node_modules node_modules
src/images/.svn

10
.neoconf.json

@ -0,0 +1,10 @@
{
"emmet_language_server": {
"init_options": {
"preferences": {
"css.intUnit": "rpx",
"css.floatUnitr": "rpx"
}
}
}
}

29
.prettierrc

@ -0,0 +1,29 @@
{
"$schema": "http://json.schemastore.org/prettierrc",
"printWidth": 120,
"tabWidth": 2,
"useTabs": false,
"semi": false,
"singleQuote": true,
"bracketSpacing": true,
"trailingComma": "all",
"arrowParens": "always",
"endOfLine": "auto",
"htmlWhitespaceSensitivity": "ignore",
"singleAttributePerLine": false,
"overrides": [
{
"files": "*.wxml",
"options": { "parser": "html" }
},
{
"files": "*.wxss",
"options": { "parser": "css" }
},
{
"files": "*.wxs",
"options": { "parser": "babel" }
}
]
}

5
README.md

@ -2,3 +2,8 @@
2. 判断图片是否涂抹 2. 判断图片是否涂抹
3. 图像识别模糊 可以反向确认 通过ocr识别接口 接入ocr同时识别不到 姓名,年龄等字样,及判断该病例已被涂抹 3. 图像识别模糊 可以反向确认 通过ocr识别接口 接入ocr同时识别不到 姓名,年龄等字样,及判断该病例已被涂抹
images svn 地址
svn://39.106.86.127:28386/projects/takeda/proj_src/shop/frontend/web/wt

5
dist.sh

@ -0,0 +1,5 @@
#!/bin/bash
cd ./src/images/ || exit
svn add . --no-ignore --force
svn ci -m "版本更新"
exit

28
eslint.config.mjs

@ -0,0 +1,28 @@
// eslint.config.mjs
import antfu from '@antfu/eslint-config'
import prettierConfig from 'eslint-config-prettier'
export default antfu(
{
env: {
es6: true,
},
stylistic: false,
parserOptions: { project: ['./tsconfig.json'] },
globals: {
wx: true,
App: true,
Page: true,
getCurrentPages: true,
getApp: true,
Component: true,
requirePlugin: true,
requireMiniProgram: true,
},
rules: {
'eslint-comments/no-unlimited-disable': 'off',
'ts/no-require-imports': 'off',
},
},
prettierConfig,
)

18
package.json

@ -1,16 +1,24 @@
{ {
"name": "miniprogram-ts-less-quickstart", "name": "wutian",
"version": "1.0.0", "version": "1.0.0",
"description": "", "description": "",
"scripts": {},
"keywords": [],
"author": "", "author": "",
"license": "", "license": "",
"keywords": [],
"scripts": {
"lint:fix": "eslint . --fix"
},
"dependencies": { "dependencies": {
"@vant/weapp": "^1.11.6", "@vant/weapp": "^1.11.6",
"miniprogram-licia": "^1.39.2" "dayjs": "^1.11.13",
"miniprogram-licia": "^1.39.2",
"typescript": "^5.3.3"
}, },
"devDependencies": { "devDependencies": {
"miniprogram-api-typings": "^2.8.3-1" "@antfu/eslint-config": "^3.7.3",
"eslint": "^9.12.0",
"eslint-config-prettier": "^9.1.0",
"miniprogram-api-typings": "^2.8.3-1",
"prettier": "^3.3.3"
} }
} }

3076
pnpm-lock.yaml

File diff suppressed because it is too large Load Diff

62
project.private.config.json

@ -3,5 +3,67 @@
"projectname": "wutian-miniprogram", "projectname": "wutian-miniprogram",
"setting": { "setting": {
"compileHotReLoad": true "compileHotReLoad": true
},
"condition": {
"miniprogram": {
"list": [
{
"name": "医生认证结果页",
"pathName": "module1/pages/setInfoResult/index",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "创建医院结果页",
"pathName": "module1/pages/cDoctorResult/index",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "创建医院",
"pathName": "module1/pages/cDoctor/index",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "选择医院",
"pathName": "module1/pages/sDoctor/index",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "医生认证",
"pathName": "module1/pages/setInfo/index",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "邀约下级医生",
"pathName": "module1/pages/invite/index",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "注册隐私协议",
"pathName": "module1/pages/loginProtool/index",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "登录",
"pathName": "module1/pages/login/index",
"query": "",
"launchMode": "default",
"scene": null
}
]
}
} }
} }

BIN
src/.DS_Store vendored

Binary file not shown.

21
src/app.json

@ -1,16 +1,35 @@
{ {
"$schema": "https://dldir1.qq.com/WechatWebDev/editor-extension/wx-json/app.schema.json", "$schema": "https://dldir1.qq.com/WechatWebDev/editor-extension/wx-json/app.schema.json",
"pages": ["pages/index/index", "pages/logs/logs"], "pages": ["pages/start/index"],
"subPackages": [ "subPackages": [
{ {
"root": "echart", "root": "echart",
"pages": [] "pages": []
},
{
"root": "module1",
"pages": [
"pages/login/index",
"pages/loginProtool/index",
"pages/invite/index",
"pages/setInfo/index",
"pages/setInfoResult/index",
"pages/sDoctor/index",
"pages/cDoctor/index",
"pages/cDoctorResult/index"
]
} }
], ],
"window": { "window": {
"backgroundTextStyle": "light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTitleText": "Weixin",
"navigationBarTextStyle": "black", "navigationBarTextStyle": "black",
"navigationStyle": "custom" "navigationStyle": "custom"
}, },
"resolveAlias": {
"@/*": "/*"
},
"rendererOptions": { "rendererOptions": {
"skyline": { "skyline": {
"defaultDisplayBlock": true, "defaultDisplayBlock": true,

9
src/app.scss

@ -1,10 +1 @@
/**app.wxss**/ /**app.wxss**/
.container {
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
padding: 200rpx 0;
box-sizing: border-box;
}

42
src/app.ts

@ -1,15 +1,23 @@
// app.ts import relativeTime from '@/utils/dayjs/relativeTime.js'
const licia = require("miniprogram-licia"); import page from '@/utils/page'
import { request } from "./utils/request";
import { request } from '@/utils/request'
const dayjs = require('dayjs')
const licia = require('miniprogram-licia')
require('/utils/dayjs/day-zh-cn.js')
dayjs.locale('zh-cn') // 全局使用
dayjs.extend(relativeTime)
App<IAppOption>({ App<IAppOption>({
globalData: { globalData: {
// 测试号 wx2b0bb13edf717c1d // 测试号 wx2b0bb13edf717c1d
// dev // dev
// appid:wxaae50c206446a964 // appid:wxaae50c206446a964
url: "https://m.takeda.hbraas.com", url: 'https://m.takeda.hbraas.com',
upFileUrl: "https://m.takeda.hbraas.com/", upFileUrl: 'https://m.takeda.hbraas.com/',
imageUrl: "https://m.takeda.hbraas.com/zd/", imageUrl: 'https://m.takeda.hbraas.com/wt/',
// pro // pro
// appid:wx96f45ca4f1fa36ec // appid:wx96f45ca4f1fa36ec
// url: 'https://m.takeda.hbraas.com', // url: 'https://m.takeda.hbraas.com',
@ -17,18 +25,26 @@ App<IAppOption>({
// imageUrl: 'https://m.takeda.hbraas.com/zd/', // imageUrl: 'https://m.takeda.hbraas.com/zd/',
}, },
onLaunch() { onLaunch() {
wx.ajax = licia.curry(request)({ gUrl: this.globalData.url }); Page = page as WechatMiniprogram.Page.Constructor
wx.ajax = licia.curry(request)({ gUrl: this.globalData.url })
wx.login({ wx.login({
success: (res) => { success: (res) => {
console.log("code", res); console.log('code', res)
}, },
}); })
}, },
waitLogin() { waitLogin() {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
resolve(true); resolve(true)
reject(false); reject(false)
}); })
},
getMenuInfo(self) {
const menuButtonInfo = wx.getMenuButtonBoundingClientRect()
self.setData({
menuButtonInfo,
})
}, },
}); })

6
src/components/navbar/index.json

@ -0,0 +1,6 @@
{
"component": true,
"usingComponents": {
"van-nav-bar": "@vant/weapp/nav-bar/index"
}
}

0
src/components/navbar/index.scss

43
src/components/navbar/index.ts

@ -0,0 +1,43 @@
const _app = getApp<IAppOption>()
// pages/story/a.ts
Component({
/**
*
*/
properties: {
title: String,
fixed: {
type: Boolean,
},
placeholder: {
type: Boolean,
},
leftText: String,
rightText: String,
customStyle: String,
leftArrow: Boolean,
border: {
type: Boolean,
value: true,
},
zIndex: {
type: Number,
value: 1,
},
safeAreaInsetTop: {
type: Boolean,
value: true,
},
},
/**
*
*/
data: {},
/**
*
*/
methods: {},
})

1
src/components/navbar/index.wxml

@ -0,0 +1 @@
<van-nav-bar title="{{title}}" left-text="{{leftText}}" left-arrow></van-nav-bar>

5
src/components/navigation-bar/navigation-bar.json

@ -1,5 +0,0 @@
{
"component": true,
"styleIsolation": "apply-shared",
"usingComponents": {}
}

96
src/components/navigation-bar/navigation-bar.scss

@ -1,96 +0,0 @@
.weui-navigation-bar {
--weui-FG-0:rgba(0,0,0,.9);
--height: 44px;
--left: 16px;
}
.weui-navigation-bar .android {
--height: 48px;
}
.weui-navigation-bar {
overflow: hidden;
color: var(--weui-FG-0);
flex: none;
}
.weui-navigation-bar__inner {
position: relative;
top: 0;
left: 0;
height: calc(var(--height) + env(safe-area-inset-top));
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
padding-top: env(safe-area-inset-top);
width: 100%;
box-sizing: border-box;
}
.weui-navigation-bar__left {
position: relative;
padding-left: var(--left);
display: flex;
flex-direction: row;
align-items: flex-start;
height: 100%;
box-sizing: border-box;
}
.weui-navigation-bar__btn_goback_wrapper {
padding: 11px 18px 11px 16px;
margin: -11px -18px -11px -16px;
}
.weui-navigation-bar__btn_goback_wrapper.weui-active {
opacity: 0.5;
}
.weui-navigation-bar__btn_goback {
font-size: 12px;
width: 12px;
height: 24px;
-webkit-mask: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='24' viewBox='0 0 12 24'%3E %3Cpath fill-opacity='.9' fill-rule='evenodd' d='M10 19.438L8.955 20.5l-7.666-7.79a1.02 1.02 0 0 1 0-1.42L8.955 3.5 10 4.563 2.682 12 10 19.438z'/%3E%3C/svg%3E") no-repeat 50% 50%;
mask: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='24' viewBox='0 0 12 24'%3E %3Cpath fill-opacity='.9' fill-rule='evenodd' d='M10 19.438L8.955 20.5l-7.666-7.79a1.02 1.02 0 0 1 0-1.42L8.955 3.5 10 4.563 2.682 12 10 19.438z'/%3E%3C/svg%3E") no-repeat 50% 50%;
-webkit-mask-size: cover;
mask-size: cover;
background-color: var(--weui-FG-0);
}
.weui-navigation-bar__center {
font-size: 17px;
text-align: center;
position: relative;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
font-weight: bold;
flex: 1;
height: 100%;
}
.weui-navigation-bar__loading {
margin-right: 4px;
align-items: center;
}
.weui-loading {
font-size: 16px;
width: 16px;
height: 16px;
display: block;
background: transparent url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg width='80px' height='80px' viewBox='0 0 80 80' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Ctitle%3Eloading%3C/title%3E%3Cdefs%3E%3ClinearGradient x1='94.0869141%25' y1='0%25' x2='94.0869141%25' y2='90.559082%25' id='linearGradient-1'%3E%3Cstop stop-color='%23606060' stop-opacity='0' offset='0%25'%3E%3C/stop%3E%3Cstop stop-color='%23606060' stop-opacity='0.3' offset='100%25'%3E%3C/stop%3E%3C/linearGradient%3E%3ClinearGradient x1='100%25' y1='8.67370605%25' x2='100%25' y2='90.6286621%25' id='linearGradient-2'%3E%3Cstop stop-color='%23606060' offset='0%25'%3E%3C/stop%3E%3Cstop stop-color='%23606060' stop-opacity='0.3' offset='100%25'%3E%3C/stop%3E%3C/linearGradient%3E%3C/defs%3E%3Cg stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' opacity='0.9'%3E%3Cg%3E%3Cpath d='M40,0 C62.09139,0 80,17.90861 80,40 C80,62.09139 62.09139,80 40,80 L40,73 C58.2253967,73 73,58.2253967 73,40 C73,21.7746033 58.2253967,7 40,7 L40,0 Z' fill='url(%23linearGradient-1)'%3E%3C/path%3E%3Cpath d='M40,0 L40,7 C21.7746033,7 7,21.7746033 7,40 C7,58.2253967 21.7746033,73 40,73 L40,80 C17.90861,80 0,62.09139 0,40 C0,17.90861 17.90861,0 40,0 Z' fill='url(%23linearGradient-2)'%3E%3C/path%3E%3Ccircle id='Oval' fill='%23606060' cx='40.5' cy='3.5' r='3.5'%3E%3C/circle%3E%3C/g%3E%3C/g%3E%3C/svg%3E%0A") no-repeat;
background-size: 100%;
margin-left: 0;
animation: loading linear infinite 1s;
}
@keyframes loading {
from {
transform: rotate(0);
}
to {
transform: rotate(360deg);
}
}

105
src/components/navigation-bar/navigation-bar.ts

@ -1,105 +0,0 @@
Component({
options: {
multipleSlots: true // 在组件定义时的选项中启用多slot支持
},
/**
*
*/
properties: {
extClass: {
type: String,
value: ''
},
title: {
type: String,
value: ''
},
background: {
type: String,
value: ''
},
color: {
type: String,
value: ''
},
back: {
type: Boolean,
value: true
},
loading: {
type: Boolean,
value: false
},
homeButton: {
type: Boolean,
value: false,
},
animated: {
// 显示隐藏的时候opacity动画效果
type: Boolean,
value: true
},
show: {
// 显示隐藏导航,隐藏的时候navigation-bar的高度占位还在
type: Boolean,
value: true,
observer: '_showChange'
},
// back为true的时候,返回的页面深度
delta: {
type: Number,
value: 1
},
},
/**
*
*/
data: {
displayStyle: ''
},
lifetimes: {
attached() {
const rect = wx.getMenuButtonBoundingClientRect()
wx.getSystemInfo({
success: (res) => {
const isAndroid = res.platform === 'android'
const isDevtools = res.platform === 'devtools'
this.setData({
ios: !isAndroid,
innerPaddingRight: `padding-right: ${res.windowWidth - rect.left}px`,
leftWidth: `width: ${res.windowWidth - rect.left }px`,
safeAreaTop: isDevtools || isAndroid ? `height: calc(var(--height) + ${res.safeArea.top}px); padding-top: ${res.safeArea.top}px` : ``
})
}
})
},
},
/**
*
*/
methods: {
_showChange(show: boolean) {
const animated = this.data.animated
let displayStyle = ''
if (animated) {
displayStyle = `opacity: ${
show ? '1' : '0'
};transition:opacity 0.5s;`
} else {
displayStyle = `display: ${show ? '' : 'none'}`
}
this.setData({
displayStyle
})
},
back() {
const data = this.data
if (data.delta) {
wx.navigateBack({
delta: data.delta
})
}
this.triggerEvent('back', { delta: data.delta }, {})
}
},
})

64
src/components/navigation-bar/navigation-bar.wxml

@ -1,64 +0,0 @@
<view class="weui-navigation-bar {{extClass}}">
<view class="weui-navigation-bar__inner {{ios ? 'ios' : 'android'}}" style="color: {{color}}; background: {{background}}; {{displayStyle}}; {{innerPaddingRight}}; {{safeAreaTop}};">
<!-- 左侧按钮 -->
<view class='weui-navigation-bar__left' style="{{leftWidth}};">
<block wx:if="{{back || homeButton}}">
<!-- 返回上一页 -->
<block wx:if="{{back}}">
<view class="weui-navigation-bar__buttons weui-navigation-bar__buttons_goback">
<view
bindtap="back"
class="weui-navigation-bar__btn_goback_wrapper"
hover-class="weui-active"
hover-stay-time="100"
aria-role="button"
aria-label="返回"
>
<view class="weui-navigation-bar__button weui-navigation-bar__btn_goback"></view>
</view>
</view>
</block>
<!-- 返回首页 -->
<block wx:if="{{homeButton}}">
<view class="weui-navigation-bar__buttons weui-navigation-bar__buttons_home">
<view
bindtap="home"
class="weui-navigation-bar__btn_home_wrapper"
hover-class="weui-active"
aria-role="button"
aria-label="首页"
>
<view class="weui-navigation-bar__button weui-navigation-bar__btn_home"></view>
</view>
</view>
</block>
</block>
<block wx:else>
<slot name="left"></slot>
</block>
</view>
<!-- 标题 -->
<view class='weui-navigation-bar__center'>
<view wx:if="{{loading}}" class="weui-navigation-bar__loading" aria-role="alert">
<view
class="weui-loading"
aria-role="img"
aria-label="加载中"
></view>
</view>
<block wx:if="{{title}}">
<text>{{title}}</text>
</block>
<block wx:else>
<slot name="center"></slot>
</block>
</view>
<!-- 右侧留空 -->
<view class='weui-navigation-bar__right'>
<slot name="right"></slot>
</view>
</view>
</view>

6
src/components/upload/index.json

@ -0,0 +1,6 @@
{
"component": true,
"usingComponents": {
"van-uploader": "@vant/weapp/uploader/index"
}
}

9
src/components/upload/index.scss

@ -0,0 +1,9 @@
.button {
padding: 0;
line-height: 1;
background-color: transparent;
&::after {
border: none;
outline: none;
}
}

24
src/components/upload/index.ts

@ -0,0 +1,24 @@
const _app = getApp<IAppOption>()
// pages/story/a.ts
Component({
/**
*
*/
properties: {
chooseAvatar: {
type: Boolean,
value: false,
},
},
/**
*
*/
data: {},
/**
*
*/
methods: {},
})

4
src/components/upload/index.wxml

@ -0,0 +1,4 @@
<button class="button" wx:if="{{chooseAvatar}}" open-type="chooseAvatar"><slot></slot></button>
<van-uploader wx:else max-count="{{1}}">
<slot></slot>
</van-uploader>

25
src/echart/components/ec-canvas/echarts.js

File diff suppressed because one or more lines are too long

BIN
src/images/.DS_Store vendored

Binary file not shown.

BIN
src/images/c-doctor-result.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

BIN
src/images/credentials1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

BIN
src/images/credentials2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

BIN
src/images/credentials3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

BIN
src/images/empty-1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
src/images/icon-error.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 886 B

BIN
src/images/icon-search.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 946 B

BIN
src/images/icon-tel.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 953 B

BIN
src/images/invite-bg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 KiB

BIN
src/images/invite-title.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

BIN
src/images/login-bg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 KiB

BIN
src/images/login-protool-title.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
src/images/login-title.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
src/images/set-info-bg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 KiB

BIN
src/images/set-info-result-title.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

BIN
src/images/start-bg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

BIN
src/images/start-title.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
src/images/triangle-down.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 287 B

BIN
src/images/user.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

13
src/miniprogram_npm/dayjs/index.js

File diff suppressed because one or more lines are too long

1
src/miniprogram_npm/dayjs/index.js.map

File diff suppressed because one or more lines are too long

5
src/module1/pages/cDoctor/index.json

@ -0,0 +1,5 @@
{
"navigationBarTitleText": "提交新医院",
"navigationStyle": "default",
"usingComponents": {}
}

122
src/module1/pages/cDoctor/index.scss

@ -0,0 +1,122 @@
page {
background-color: rgba(246, 246, 246, 1);
}
.reject {
padding: 22rpx 32rpx;
font-size: 28rpx;
color: rgba(237, 79, 57, 1);
background-color: rgba(255, 237, 234, 1);
.icon {
width: 32rpx;
height: 32rpx;
vertical-align: -6rpx;
}
}
.page {
padding: 32rpx;
border-radius: 16rpx;
.form {
padding: 0 32rpx;
border-radius: 16rpx;
background-color: #fff;
.row {
padding: 32rpx 0;
display: flex;
border-bottom: 1px solid rgba(224, 224, 224, 0.5);
.label {
flex-shrink: 0;
width: 6em;
font-size: 32rpx;
color: rgba(133, 133, 133, 1);
&.required::before {
margin-right: 10rpx;
content: '*';
color: rgba(206, 52, 31, 1);
}
&::before {
margin-right: 28rpx;
content: '';
}
}
.content {
flex: 1;
.input {
font-size: 32rpx;
color: #000;
}
.place-input {
color: rgba(205, 205, 205, 1);
}
}
.select-wrap {
flex: 1;
.select {
display: flex;
.content {
flex: 1;
color: #000;
&:empty::after {
content: attr(data-place);
font-size: 32rpx;
color: rgba(205, 205, 205, 1);
}
}
.icon {
width: 32rpx;
height: 32rpx;
}
}
}
.select-btn {
display: flex;
gap: 16rpx;
flex-wrap: wrap;
.btn {
padding: 10rpx 30rpx;
font-size: 32rpx;
color: rgba(133, 133, 133, 1);
line-height: 44rpx;
border-radius: 68rpx;
background-color: rgba(246, 246, 246, 1);
&.active {
color: #fff;
background-color: rgba(0, 180, 197, 1);
}
}
}
}
}
.footer {
position: fixed;
bottom: 0;
left: 0;
padding: 32rpx 32rpx calc(env(safe-area-inset-bottom) + 32rpx);
width: 100%;
box-sizing: border-box;
display: flex;
align-items: center;
justify-content: space-between;
background-color: #fff;
box-shadow: 0 -10rpx 20rpx rgba(0, 0, 0, 0.1);
.cancel {
width: 332rpx;
height: 88rpx;
text-align: center;
line-height: 88rpx;
font-size: 32rpx;
color: rgba(1, 180, 197, 1);
border-radius: 96rpx 96rpx 96rpx 96rpx;
border: 1rpx solid #01b4c5;
}
.submit {
width: 330rpx;
height: 88rpx;
text-align: center;
line-height: 88rpx;
font-size: 32rpx;
color: #fff;
background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%);
border-radius: 96rpx;
}
}
}

37
src/module1/pages/cDoctor/index.ts

@ -0,0 +1,37 @@
const _app = getApp<IAppOption>()
Page({
data: {
selectList1: [
{
name: '一级',
},
{
name: '二级',
},
{
name: '三级',
},
],
selectList2: [
{
name: '特等',
},
{
name: '甲等',
},
{
name: '乙等',
},
{
name: '丙等',
},
],
},
onLoad() {},
handleSubmit() {
wx.navigateTo({
url: '/module1/pages/cDoctorResult/index',
})
},
})

50
src/module1/pages/cDoctor/index.wxml

@ -0,0 +1,50 @@
<view class="reject">
<image class="icon" src="/images/icon-error.png"></image>
审核不通过原因:提交信息有误。</view>
<view class="page">
<view class="form">
<view class="row">
<view class="label required">医院名称</view>
<view class="content">
<input placeholder="请输入医院名称" type="text" class="input" placeholder-class="place-input" />
</view>
</view>
<view class="row">
<view class="label">医院简称</view>
<view class="content">
<input placeholder="请输入医院简称" type="text" class="input" placeholder-class="place-input" />
</view>
</view>
<view class="row">
<view class="label required">城市地区</view>
<picker class="select-wrap">
<view class="select">
<view class="content" data-place="请选择省份/城市/地区"></view>
<image class="icon" src="/images/triangle-down.png"></image>
</view>
</picker>
</view>
<view class="row">
<view class="label">详细地址</view>
<view class="content">
<input placeholder="请输入详细地址" type="text" class="input" placeholder-class="place-input" />
</view>
</view>
<view class="row">
<view class="label">医院分级</view>
<view class="select-btn">
<view class="btn {{index===0&&'active'}}" wx:for="{{selectList1}}" wx:key="index">{{item.name}}</view>
</view>
</view>
<view class="row">
<view class="label">医院分等</view>
<view class="select-btn">
<view class="btn {{index===0&&'active'}}" wx:for="{{selectList2}}" wx:key="index">{{item.name}}</view>
</view>
</view>
</view>
<view class="footer">
<view class="cancel">取消</view>
<view class="submit" bind:tap="handleSubmit">提交</view>
</view>
</view>

3
src/module1/pages/cDoctorResult/index.json

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

56
src/module1/pages/cDoctorResult/index.scss

@ -0,0 +1,56 @@
.page {
padding: 0 32rpx 200rpx;
width: 100vw;
min-height: 100vh;
box-sizing: border-box;
.container {
margin: 200rpx 20rpx 0;
padding: 122rpx 12rpx 64rpx;
position: relative;
border-radius: 48rpx 48rpx 48rpx 48rpx;
background: linear-gradient(180deg, #ffffff 0%, #e7fbff 100%);
text-align: center;
.result {
position: absolute;
left: 50%;
top: -100rpx;
transform: translateX(-50%);
width: 200rpx;
height: 200rpx;
background-color: #fff;
border-radius: 50%;
}
.title {
font-size: 48rpx;
color: rgba(20, 21, 21, 1);
font-weight: bold;
}
.notice {
margin-top: 30rpx;
font-size: 32rpx;
color: rgba(153, 153, 153, 1);
line-height: 48rpx;
.link {
font-size: 32rpx;
color: rgba(0, 180, 197, 1);
}
}
.code {
margin: 48rpx auto 0;
display: block;
width: 382rpx;
height: 382rpx;
}
.tip {
margin-top: 36rpx;
font-size: 32rpx;
color: rgba(153, 153, 153, 1);
}
}
.back-home {
margin-top: 74rpx;
font-size: 32rpx;
color: rgba(255, 255, 255, 1);
text-align: center;
}
}

6
src/module1/pages/cDoctorResult/index.ts

@ -0,0 +1,6 @@
const _app = getApp<IAppOption>();
Page({
data: {},
onLoad() {},
});

18
src/module1/pages/cDoctorResult/index.wxml

@ -0,0 +1,18 @@
<view
class="page"
style="background: url({{imageUrl}}invite-bg.png?r={{Timestamp}}) no-repeat top right/832rpx 1714rpx;padding-top:{{menuButtonInfo.bottom}}px;"
>
<view class="container">
<image class="result" src="/images/c-doctor-result.png"></image>
<view class="title">医院信息提交成功</view>
<image
class="code"
src="https://pic1.zhimg.com/50/v2-dcfbab1219ae4f7a7a6db168bb1580a2_720w.jpg?source=2c26e567"
></image>
<view class="tip">
<view>扫码关注公众号</view>
<view>获取审核通知</view>
</view>
</view>
<view class="back-home">回到首页</view>
</view>

3
src/module1/pages/invite/index.json

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

117
src/module1/pages/invite/index.scss

@ -0,0 +1,117 @@
.page {
padding: 0 32rpx 200rpx;
.title {
margin-top: 40rpx;
width: 592rpx;
height: 250rpx;
}
.container-wrap {
margin: 140rpx 30rpx 0;
padding: 12rpx;
border-radius: 48rpx 48rpx 48rpx 48rpx;
border: 2rpx solid #ffffff;
background: linear-gradient(180deg, #ffffff 0%, #e7fbff 100%);
.container {
padding: 96rpx 30rpx 58rpx;
position: relative;
border: 2rpx solid #a4e6ee;
border-radius: 48rpx 48rpx 48rpx 48rpx;
.avatar {
position: absolute;
left: 50%;
top: -84rpx;
transform: translateX(-50%);
padding: 4rpx;
width: 160rpx;
height: 160rpx;
border-radius: 50%;
background-color: #fff;
.a-img {
width: 100%;
height: 100%;
border-radius: 50%;
}
}
.user {
display: flex;
align-items: center;
justify-content: center;
.name {
font-size: 36rpx;
color: rgba(20, 21, 21, 1);
font-weight: bold;
}
.label {
margin-left: 16rpx;
font-size: 28rpx;
color: rgba(20, 21, 21, 1);
}
}
.hostipal {
margin-top: 16rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 28rpx;
color: rgba(20, 21, 21, 1);
.tag {
margin-left: 20rpx;
padding: 0 8rpx;
font-size: 24rpx;
color: #fff;
line-height: 32rpx;
border-radius: 4rpx;
background-color: rgba(0, 180, 197, 1);
}
}
.code {
margin: 38rpx auto 0;
width: 320rpx;
height: 320rpx;
.c-img {
width: 100%;
height: 100%;
}
}
.btn {
margin: 28rpx auto 0;
width: 236rpx;
padding: 10rpx 0;
font-size: 36rpx;
text-align: center;
line-height: 44rpx;
color: #fff;
border-radius: 132rpx;
box-sizing: border-box;
background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%);
}
}
}
.footer {
margin-top: 68rpx;
display: flex;
justify-content: space-between;
align-items: center;
gap: 24rpx;
.save {
flex: 1;
height: 88rpx;
font-size: 32rpx;
color: rgba(255, 255, 255, 1);
text-align: center;
line-height: 88rpx;
border-radius: 96rpx 96rpx 96rpx 96rpx;
border: 1rpx solid #ffffff;
}
.share {
flex: 1;
height: 88rpx;
text-align: center;
line-height: 88rpx;
font-size: 32rpx;
color: rgba(0, 180, 197, 1);
background: #ffffff;
border-radius: 96rpx 96rpx 96rpx 96rpx;
}
}
}

8
src/module1/pages/invite/index.ts

@ -0,0 +1,8 @@
const app = getApp<IAppOption>()
Page({
data: {
menuButtonInfo: {},
},
onLoad() {},
})

35
src/module1/pages/invite/index.wxml

@ -0,0 +1,35 @@
<view
class="page"
style="background: url({{imageUrl}}invite-bg.png?r={{Timestamp}}) no-repeat top center/100vw 100%;padding-top:{{menuButtonInfo.bottom}}px;"
>
<image class="title" src="/images/invite-title.png"></image>
<view class="container-wrap">
<view class="container">
<view class="avatar">
<image
class="a-img"
src="https://pic1.zhimg.com/50/v2-dcfbab1219ae4f7a7a6db168bb1580a2_720w.jpg?source=2c26e567"
></image>
</view>
<view class="user">
<view class="name">徐萌</view>
<view class="label">主任医师</view>
</view>
<view class="hostipal">
北京天坛医院
<view class="tag">三甲</view>
</view>
<view class="code">
<image
class="c-img"
src="https://pic1.zhimg.com/50/v2-dcfbab1219ae4f7a7a6db168bb1580a2_720w.jpg?source=2c26e567"
></image>
</view>
<view class="btn">扫码进入</view>
</view>
</view>
<view class="footer">
<view class="save">保存到手机</view>
<view class="share">分享给微信好友</view>
</view>
</view>

5
src/module1/pages/login/index.json

@ -0,0 +1,5 @@
{
"usingComponents": {
"van-divider": "@vant/weapp/divider/index"
}
}

102
src/module1/pages/login/index.scss

@ -0,0 +1,102 @@
.page {
.container {
padding: 234rpx 30rpx 80rpx;
.title {
width: 584rpx;
height: 144rpx;
}
.form {
padding-top: 66rpx;
.tel {
.input {
padding: 24rpx 32rpx;
font-size: 32rpx;
color: #000;
line-height: 44rpx;
background: #f6f6f6;
border-radius: 96rpx 96rpx 96rpx 96rpx;
}
.place-input {
color: rgba(205, 205, 205, 1);
}
}
.code {
margin-top: 32rpx;
display: flex;
align-items: center;
gap: 30rpx;
.input {
padding: 24rpx 32rpx;
font-size: 32rpx;
color: #000;
line-height: 44rpx;
background: #f6f6f6;
border-radius: 96rpx 96rpx 96rpx 96rpx;
}
.place-input {
color: rgba(205, 205, 205, 1);
}
.btn {
width: 262rpx;
height: 92rpx;
font-size: 32rpx;
color: rgba(0, 180, 197, 1);
text-align: center;
line-height: 92rpx;
background: #d8f7fa;
border-radius: 96rpx 96rpx 96rpx 96rpx;
}
}
.submit {
margin-top: 64rpx;
height: 88rpx;
text-align: center;
line-height: 88rpx;
font-size: 32rpx;
color: rgba(255, 255, 255, 1);
background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%);
border-radius: 96rpx 96rpx 96rpx 96rpx;
}
}
.or {
margin: 60rpx auto 0;
width: 300rpx;
font-size: 28rpx;
color: rgba(153, 153, 153, 1);
}
.tel-btn {
margin: 28rpx auto 0;
padding: 0 28rpx;
border-radius: 52rpx;
width: 280rpx;
font-size: 24rpx;
color: rgba(153, 153, 153, 1);
display: flex;
align-items: center;
justify-content: center;
outline: none;
.icon {
width: 48rpx;
height: 48rpx;
}
&::after {
border: none;
outline: none;
}
}
.protool {
margin-top: 128rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 28rpx;
color: rgba(153, 153, 153, 1);
.radio {
transform: scale(0.7);
}
.link {
color: rgba(0, 180, 197, 1);
}
}
}
}

8
src/module1/pages/login/index.ts

@ -0,0 +1,8 @@
const app = getApp<IAppOption>()
Page({
data: {
menuButtonInfo: {},
},
onLoad() {},
})

32
src/module1/pages/login/index.wxml

@ -0,0 +1,32 @@
<view
class="page"
style="background: url({{imageUrl}}login-bg.png?r={{Timestamp}}) no-repeat top center/100% 300rpx;padding-top:{{menuButtonInfo.bottom}}px;"
>
<view class="container">
<image class="title" src="/images/login-title.png"></image>
<view class="form">
<view class="tel">
<input class="input" placeholder-class="place-input" type="tel" placeholder="请输入手机号" />
</view>
<view class="code">
<input class="input" placeholder-class="place-input" type="number" placeholder="请输入验证码" />
<view class="btn">发送验证码</view>
</view>
<view class="submit">立即加入</view>
</view>
<view class="or">
<van-divider contentPosition="center" custom-style="color:rgba(153, 153, 153, 1);font-size:28rpx;">
或者
</van-divider>
</view>
<button class="tel-btn" open-type="getPhoneNumber" bindgetphonenumber="handleWxSubmit">
<image class="icon" src="/images/icon-tel.png"></image>
手机号快捷登录
</button>
<view class="protool">
<radio class="radio"></radio>
我已阅读并同意
<text class="link">《用户隐私协议》</text>
</view>
</view>
</view>

3
src/module1/pages/loginProtool/index.json

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

54
src/module1/pages/loginProtool/index.scss

@ -0,0 +1,54 @@
.page {
.container {
padding: 0 40rpx 0;
display: flex;
flex-direction: column;
justify-content: space-between;
height: 100vh;
box-sizing: border-box;
.title {
margin-top: 204rpx;
flex-shrink: 0;
width: 464rpx;
height: 44rpx;
}
.rule {
margin-top: 32rpx;
flex: 1;
overflow-y: auto;
overflow-x: hidden;
font-size: 28rpx;
color: rgba(133, 133, 133, 1);
line-height: 48rpx;
}
.footer {
margin: 0 -40rpx;
padding: 32rpx 32rpx calc(env(safe-area-inset-bottom) + 32rpx);
flex-shrink: 0;
display: flex;
gap: 24rpx;
background-color: #fff;
box-shadow: 0 -10rpx 20rpx #ccc;
.cancel {
flex: 1;
height: 88rpx;
text-align: center;
line-height: 88rpx;
font-size: 32rpx;
color: rgba(1, 180, 197, 1);
border-radius: 96rpx 96rpx 96rpx 96rpx;
border: 1rpx solid #01b4c5;
}
.sure {
flex: 1;
height: 88rpx;
text-align: center;
line-height: 88rpx;
font-size: 32rpx;
color: #fff;
background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%);
border-radius: 96rpx 96rpx 96rpx 96rpx;
}
}
}
}

8
src/module1/pages/loginProtool/index.ts

@ -0,0 +1,8 @@
const app = getApp<IAppOption>()
Page({
data: {
menuButtonInfo: {},
},
onLoad() {},
})

437
src/module1/pages/loginProtool/index.wxml

@ -0,0 +1,437 @@
<view
class="page"
style="background: url({{imageUrl}}login-bg.png?r={{Timestamp}}) no-repeat top center/100% 300rpx;"
>
<view class="container" style="padding-top:{{menuButtonInfo.bottom}}px;">
<image class="title" src="/images/login-protool-title.png"></image>
<view class="rule">
Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit
vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et,
similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti
blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde
neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis
deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias
quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa
reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae
molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit.
Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas
fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing
elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam
quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur
adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam
corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet
consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium
veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor
sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit
laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem
ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae,
reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique
cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis
sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et,
similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti
blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde
neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis
deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias
quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa
reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae
molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit.
Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas
fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing
elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam
quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur
adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam
corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet
consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium
veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor
sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit
laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem
ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae,
reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique
cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis
sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et,
similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti
blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde
neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis
deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias
quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa
reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae
molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit.
Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas
fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing
elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam
quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur
adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam
corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet
consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium
veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor
sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit
laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem
ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae,
reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique
cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis
sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et,
similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti
blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde
neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis
deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias
quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa
reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae
molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit.
Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas
fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing
elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam
quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur
adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam
corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet
consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium
veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor
sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit
laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem
ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae,
reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique
cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis
sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et,
similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti
blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde
neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis
deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias
quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa
reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae
molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit.
Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas
fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing
elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam
quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur
adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam
corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet
consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium
veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor
sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit
laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem
ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae,
reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique
cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis
sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et,
similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti
blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde
neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis
deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias
quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa
reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae
molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit.
Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas
fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing
elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam
quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur
adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam
corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet
consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium
veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor
sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit
laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem
ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae,
reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique
cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis
sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et,
similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti
blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde
neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis
deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias
quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa
reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae
molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit.
Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas
fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing
elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam
quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur
adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam
corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet
consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium
veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor
sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit
laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem
ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae,
reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique
cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis
sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et,
similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti
blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde
neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis
deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias
quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa
reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae
molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit.
Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas
fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing
elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam
quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur
adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam
corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet
consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium
veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor
sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit
laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem
ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae,
reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique
cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis
sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et,
similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti
blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde
neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis
deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias
quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa
reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae
molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit.
Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas
fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing
elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam
quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur
adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam
corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet
consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium
veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor
sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit
laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem
ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae,
reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique
cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis
sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et,
similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti
blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde
neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis
deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias
quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa
reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae
molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit.
Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas
fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing
elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam
quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur
adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam
corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet
consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium
veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor
sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit
laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem
ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae,
reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique
cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis
sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et,
similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti
blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde
neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis
deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias
quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa
reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae
molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit.
Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas
fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing
elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam
quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur
adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam
corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet
consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium
veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor
sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit
laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem
ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae,
reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique
cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis
sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et,
similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti
blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde
neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis
deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias
quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa
reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae
molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit.
Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas
fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing
elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam
quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur
adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam
corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet
consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium
veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor
sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit
laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem
ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae,
reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique
cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis
sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et,
similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti
blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde
neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis
deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias
quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa
reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae
molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit.
Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas
fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing
elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam
quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur
adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam
corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet
consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium
veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor
sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit
laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem
ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae,
reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique
cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis
sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et,
similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti
blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde
neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis
deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias
quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa
reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae
molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit.
Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas
fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing
elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam
quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur
adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam
corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet
consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium
veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor
sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit
laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem
ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae,
reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique
cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis
sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et,
similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti
blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde
neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis
deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias
quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa
reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae
molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit.
Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas
fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing
elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam
quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur
adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam
corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet
consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium
veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor
sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit
laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem
ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae,
reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique
cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis
sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et,
similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti
blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde
neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis
deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias
quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa
reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae
molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit.
Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas
fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing
elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam
quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur
adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam
corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet
consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium
veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor
sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit
laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem
ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae,
reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique
cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis
sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et,
similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti
blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde
neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis
deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias
quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa
reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae
molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit.
Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas
fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing
elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam
quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur
adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam
corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet
consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium
veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor
sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit
laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem
ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae,
reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique
cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis
sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et,
similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti
blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde
neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis
deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias
quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa
reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae
molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit.
Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas
fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing
elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam
quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur
adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam
corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet
consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium
veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor
sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit
laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem
ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae,
reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique
cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis
sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et,
similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti
blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde
neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis
deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias
quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa
reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae
molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit.
Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas
fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing
elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam
quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur
adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam
corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet
consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium
veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor
sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit
laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem
ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae,
reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique
cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis
sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et,
similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti
blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde
neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis
deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias
quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa
reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae
molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit.
Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas
fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing
elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam
quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur
adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam
corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet
consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium
veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor
sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit
laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem
ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae,
reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique
cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis
sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et,
similique cumque.
</view>
<view class="footer">
<view class="cancel">不同意</view>
<view class="sure">同意</view>
</view>
</view>
</view>

7
src/module1/pages/sDoctor/index.json

@ -0,0 +1,7 @@
{
"navigationBarTitleText": "选择医院",
"navigationStyle": "default",
"usingComponents": {
"van-icon": "@vant/weapp/icon/index"
}
}

105
src/module1/pages/sDoctor/index.scss

@ -0,0 +1,105 @@
page {
background-color: rgba(246, 246, 246, 1);
}
.page {
.header {
padding: 32rpx;
background-color: #fff;
border-radius: 0 0 32rpx 32rpx;
display: flex;
gap: 32rpx;
align-items: center;
justify-content: space-between;
.region {
flex-shrink: 0;
font-size: 28rpx;
color: rgba(20, 21, 21, 1);
}
.search {
flex: 1;
padding: 16rpx 32rpx;
border-radius: 96rpx;
display: flex;
gap: 16rpx;
align-items: center;
background-color: rgba(246, 246, 246, 1);
.icon {
flex-shrink: 0;
width: 32rpx;
height: 32rpx;
}
.input {
flex: 1;
font-size: 28rpx;
color: #000;
}
.place-input {
color: rgba(205, 205, 205, 1);
}
}
}
.tip {
margin: 32rpx 0 0;
text-align: center;
font-size: 28rpx;
color: rgba(133, 133, 133, 1);
.link {
color: rgba(0, 180, 197, 1);
}
}
.list {
padding: 32rpx;
.list-item {
margin-bottom: 24rpx;
padding: 32rpx;
background-color: #fff;
border-radius: 16rpx;
.title {
.name {
margin-right: 12rpx;
display: inline-block;
font-size: 32rpx;
color: rgba(20, 21, 21, 1);
font-weight: bold;
}
.tag {
vertical-align: 2px;
padding: 0 8rpx;
line-height: 32rpx;
display: inline-block;
font-size: 24rpx;
border-radius: 4rpx;
color: rgba(255, 255, 255, 1);
background-color: rgba(0, 180, 197, 1);
}
}
.site {
margin-top: 16rpx;
font-size: 28rpx;
color: rgba(133, 133, 133, 1);
}
}
}
.empty {
margin: 174rpx auto 0;
text-align: center;
.e-img {
width: 356rpx;
height: 280rpx;
}
.e-tip {
font-size: 32rpx;
color: rgba(153, 153, 153, 1);
}
.e-submit {
margin: 60rpx auto 0;
width: 214rpx;
height: 72rpx;
font-size: 28rpx;
line-height: 72rpx;
color: rgba(255, 255, 255, 1);
border-radius: 32rpx;
background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%);
}
}
}

11
src/module1/pages/sDoctor/index.ts

@ -0,0 +1,11 @@
const _app = getApp<IAppOption>()
Page({
data: {},
onLoad() {},
handlePushDoctor() {
wx.navigateTo({
url: '/module1/pages/cDoctor/index',
})
},
})

32
src/module1/pages/sDoctor/index.wxml

@ -0,0 +1,32 @@
<view class="page">
<view class="header">
<view class="region">
地区
<van-icon name="arrow-down" />
</view>
<view class="search">
<image class="icon" src="/images/icon-search.png"></image>
<input class="input" placeholder-class="搜索医院名称" type="text" placeholder="搜索" />
</view>
</view>
<view class="tip">
没找到您的医院?
<text class="link" bind:tap="handlePushDoctor">这里录入</text>
</view>
<view class="list">
<view class="list-item">
<view class="title">
<view class="name">
中山大学附属第一医院
<view class="tag">三甲</view>
</view>
</view>
<view class="site">广东省广州市越秀区中山二路58号</view>
</view>
</view>
<view class="empty">
<image class="e-img" src="/images/empty-1.png"></image>
<view class="e-tip">没有找到您搜索的医院哦!</view>
<view class="e-submit" bind:tap="handlePushDoctor">提交新医院</view>
</view>
</view>

7
src/module1/pages/setInfo/index.json

@ -0,0 +1,7 @@
{
"navigationBarTitleText": "医生认证",
"navigationStyle": "default",
"usingComponents": {
"upload": "/components/upload/index"
}
}

178
src/module1/pages/setInfo/index.scss

@ -0,0 +1,178 @@
.page {
overflow: hidden;
.container {
margin-top: 244rpx;
padding: 32rpx 32rpx 250rpx;
background: rgba(246, 246, 246, 1) linear-gradient(180deg, #e5f5f7 0%, #f6f6f6 50%) top center/100% 258rpx;
border-radius: 32rpx 32rpx 0 0;
.invite {
padding: 22rpx 28rpx;
border-radius: 16rpx;
font-size: 32rpx;
color: #fff;
background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%);
}
.card {
margin-top: 24rpx;
padding: 0 32rpx;
border-radius: 16rpx;
background-color: #fff;
.row {
padding: 32rpx 0;
display: flex;
border-bottom: 1px solid rgba(224, 224, 224, 0.5);
.label {
flex-shrink: 0;
width: 6rem;
font-size: 32rpx;
color: rgba(133, 133, 133, 1);
&.required {
position: relative;
display: flex;
align-items: flex-start;
&::before {
margin-right: 10rpx;
flex-shrink: 0;
content: '*';
font-size: 32rpx;
color: rgba(206, 52, 31, 1);
}
}
}
.error-wrap {
flex: 1;
.error {
margin-top: 16rpx;
font-size: 28rpx;
color: rgba(237, 79, 57, 1);
}
}
.content {
flex: 1;
.input {
font-size: 32rpx;
color: #000;
}
.place-input {
color: rgba(205, 205, 205, 1);
}
}
.select-wrap {
flex: 1;
display: flex;
align-items: center;
.select {
flex: 1;
font-size: 32rpx;
color: #000;
&:empty::after {
content: attr(data-place);
color: rgba(205, 205, 205, 1);
}
}
.icon {
flex-shrink: 0;
width: 32rpx;
height: 32rpx;
}
}
.select-btn {
display: flex;
gap: 16rpx 20rpx;
flex-wrap: wrap;
.btn {
padding: 10rpx 26rpx;
font-size: 32rpx;
color: rgba(133, 133, 133, 1);
background: #f6f6f6;
border-radius: 68rpx 68rpx 68rpx 68rpx;
&.active {
color: #fff;
background-color: rgba(0, 180, 197, 1);
}
}
}
.credentials {
flex: 1;
.c-title {
display: flex;
justify-content: space-between;
align-items: center;
.tip {
font-size: 32rpx;
color: rgba(205, 205, 205, 1);
}
.ex {
font-size: 32rpx;
color: rgba(0, 180, 197, 1);
}
}
.files {
margin-top: 26rpx;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
gap: 20rpx;
.upload {
padding: 16rpx;
background: #f6f6f6;
box-sizing: border-box;
border-radius: 16rpx 16rpx 16rpx 16rpx;
.u-img {
display: block;
width: 160rpx;
height: 103rpx;
}
}
}
}
.avatar-wrap {
flex: 1;
display: flex;
align-items: center;
.avatar {
.upload {
.u-img {
width: 160rpx;
height: 160rpx;
}
}
}
}
}
}
}
.footer {
position: fixed;
bottom: 0;
left: 0;
padding: 32rpx 32rpx calc(env(safe-area-inset-bottom) + 32rpx);
width: 100%;
box-sizing: border-box;
display: flex;
align-items: center;
justify-content: space-between;
background-color: #fff;
box-shadow: 0 -10rpx 20rpx rgba(0, 0, 0, 0.1);
.cancel {
width: 332rpx;
height: 88rpx;
text-align: center;
line-height: 88rpx;
font-size: 32rpx;
color: rgba(1, 180, 197, 1);
border-radius: 96rpx 96rpx 96rpx 96rpx;
border: 1rpx solid #01b4c5;
}
.submit {
width: 330rpx;
height: 88rpx;
text-align: center;
line-height: 88rpx;
font-size: 32rpx;
color: #fff;
background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%);
border-radius: 96rpx;
}
}
}

34
src/module1/pages/setInfo/index.ts

@ -0,0 +1,34 @@
const app = getApp<IAppOption>()
Page({
data: {
titleList: [
{
name: '主任医师',
},
{
name: '副主任医师',
},
{
name: '主治医师',
},
{
name: '住院医师',
},
{
name: '其他',
},
],
},
onLoad() {},
handleDoctor() {
wx.navigateTo({
url: '/module1/pages/sDoctor/index',
})
},
handleSubmit() {
wx.navigateTo({
url: '/module1/pages/setInfoResult/index',
})
},
})

70
src/module1/pages/setInfo/index.wxml

@ -0,0 +1,70 @@
<view
class="page"
style="background: url({{imageUrl}}set-info-bg.png?r={{Timestamp}}) no-repeat top center/100% 356rpx;"
>
<view class="container">
<view class="invite">刘玉医生为您的邀约医生</view>
<view class="card">
<view class="row">
<view class="label required">您的姓名</view>
<view class="content">
<input class="input" placeholder-class="place-input" placeholder="请输入您的真实姓名" type="text" />
</view>
</view>
<view class="row">
<view class="label required">所在医院</view>
<view class="error-wrap">
<view class="select-wrap" bind:tap="handleDoctor">
<view class="select" data-place="请选择您所在医院"></view>
<image class="icon" src="/images/triangle-down.png"></image>
</view>
<view class="error">您提交的北京市第三人民医院医院信息待审核</view>
</view>
</view>
<view class="row">
<view class="label required">您的头衔</view>
<view class="select-btn">
<view class="btn {{index===0 && 'active'}}" wx:for="{{titleList}}">{{item.name}}</view>
</view>
</view>
</view>
<view class="card">
<view class="row">
<view class="label required">您的姓名</view>
<view class="credentials">
<view class="c-title">
<view class="tip">请上传高清图片</view>
<view class="ex">查看示例</view>
</view>
<view class="files">
<upload class="upload">
<image class="u-img" src="/images/credentials1.png"></image>
</upload>
<upload class="upload">
<image class="u-img" src="/images/credentials2.png"></image>
</upload>
<upload class="upload">
<image class="u-img" src="/images/credentials3.png"></image>
</upload>
</view>
</view>
</view>
</view>
<view class="card">
<view class="row">
<view class="label">您的头像</view>
<view class="avatar-wrap">
<view class="avatar">
<upload class="upload" chooseAvatar>
<image class="u-img" src="/images/user.png"></image>
</upload>
</view>
</view>
</view>
</view>
</view>
<view class="footer">
<view class="cancel">取消</view>
<view class="submit" bind:tap="handleSubmit">提交</view>
</view>
</view>

3
src/module1/pages/setInfoResult/index.json

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

56
src/module1/pages/setInfoResult/index.scss

@ -0,0 +1,56 @@
.page {
padding: 0 32rpx 200rpx;
width: 100vw;
min-height: 100vh;
box-sizing: border-box;
.p-title {
margin: 80rpx auto 0;
display: block;
width: 612rpx;
height: 173rpx;
}
.container {
margin: 100rpx 20rpx 0;
padding: 122rpx 12rpx 64rpx;
position: relative;
border-radius: 48rpx 48rpx 48rpx 48rpx;
background: linear-gradient(180deg, #ffffff 0%, #e7fbff 100%);
text-align: center;
.result {
position: absolute;
left: 50%;
top: -100rpx;
transform: translateX(-50%);
width: 200rpx;
height: 200rpx;
background-color: #fff;
border-radius: 50%;
}
.title {
font-size: 48rpx;
color: rgba(20, 21, 21, 1);
font-weight: bold;
}
.notice {
margin-top: 30rpx;
font-size: 32rpx;
color: rgba(153, 153, 153, 1);
line-height: 48rpx;
.link {
font-size: 32rpx;
color: rgba(0, 180, 197, 1);
}
}
.code {
margin: 48rpx auto 0;
display: block;
width: 382rpx;
height: 382rpx;
}
.tip {
margin-top: 36rpx;
font-size: 32rpx;
color: rgba(153, 153, 153, 1);
}
}
}

6
src/module1/pages/setInfoResult/index.ts

@ -0,0 +1,6 @@
const _app = getApp<IAppOption>();
Page({
data: {},
onLoad() {},
});

24
src/module1/pages/setInfoResult/index.wxml

@ -0,0 +1,24 @@
<view
class="page"
style="background: url({{imageUrl}}invite-bg.png?r={{Timestamp}}) no-repeat top right/832rpx 1714rpx;padding-top:{{menuButtonInfo.bottom}}px;"
>
<image class="p-title" src="/images/set-info-result-title.png"></image>
<view class="container">
<image class="result" src="/images/c-doctor-result.png"></image>
<view class="title">医院信息提交成功</view>
<view class="notice">
已将信息提交给
<text class="link">王大志医生</text>
<view></view>
审核通过后,您可进入罕心守护项目
</view>
<image
class="code"
src="https://pic1.zhimg.com/50/v2-dcfbab1219ae4f7a7a6db168bb1580a2_720w.jpg?source=2c26e567"
></image>
<view class="tip">
<view>扫码关注公众号</view>
<view>获取审核通知</view>
</view>
</view>
</view>

5
src/pages/index/index.json

@ -1,5 +0,0 @@
{
"usingComponents": {
"navigation-bar": "/components/navigation-bar/navigation-bar"
}
}

62
src/pages/index/index.scss

@ -1,62 +0,0 @@
/**index.scss**/
page {
height: 100vh;
display: flex;
flex-direction: column;
}
.scrollarea {
flex: 1;
overflow-y: hidden;
}
.userinfo {
display: flex;
flex-direction: column;
align-items: center;
color: #aaa;
width: 80%;
}
.userinfo-avatar {
overflow: hidden;
width: 128rpx;
height: 128rpx;
margin: 20rpx;
border-radius: 50%;
}
.usermotto {
margin-top: 200px;
}
.avatar-wrapper {
padding: 0;
width: 56px !important;
border-radius: 8px;
margin-top: 40px;
margin-bottom: 40px;
}
.avatar {
display: block;
width: 56px;
height: 56px;
}
.nickname-wrapper {
display: flex;
width: 100%;
padding: 16px;
box-sizing: border-box;
border-top: .5px solid rgba(0, 0, 0, 0.1);
border-bottom: .5px solid rgba(0, 0, 0, 0.1);
color: black;
}
.nickname-label {
width: 105px;
}
.nickname-input {
flex: 1;
}

54
src/pages/index/index.ts

@ -1,54 +0,0 @@
// index.ts
// 获取应用实例
const app = getApp<IAppOption>()
const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'
Component({
data: {
motto: 'Hello World',
userInfo: {
avatarUrl: defaultAvatarUrl,
nickName: '',
},
hasUserInfo: false,
canIUseGetUserProfile: wx.canIUse('getUserProfile'),
canIUseNicknameComp: wx.canIUse('input.type.nickname'),
},
methods: {
// 事件处理函数
bindViewTap() {
wx.navigateTo({
url: '../logs/logs',
})
},
onChooseAvatar(e: any) {
const { avatarUrl } = e.detail
const { nickName } = this.data.userInfo
this.setData({
"userInfo.avatarUrl": avatarUrl,
hasUserInfo: nickName && avatarUrl && avatarUrl !== defaultAvatarUrl,
})
},
onInputChange(e: any) {
const nickName = e.detail.value
const { avatarUrl } = this.data.userInfo
this.setData({
"userInfo.nickName": nickName,
hasUserInfo: nickName && avatarUrl && avatarUrl !== defaultAvatarUrl,
})
},
getUserProfile() {
// 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认,开发者妥善保管用户快速填写的头像昵称,避免重复弹窗
wx.getUserProfile({
desc: '展示用户信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
success: (res) => {
console.log(res)
this.setData({
userInfo: res.userInfo,
hasUserInfo: true
})
}
})
},
},
})

28
src/pages/index/index.wxml

@ -1,28 +0,0 @@
<!--index.wxml-->
<navigation-bar title="Weixin" back="{{false}}" color="black" background="#FFF"></navigation-bar>
<scroll-view class="scrollarea" scroll-y type="list">
<view class="container">
<view class="userinfo">
<block wx:if="{{canIUseNicknameComp && !hasUserInfo}}">
<button class="avatar-wrapper" open-type="chooseAvatar" bind:chooseavatar="onChooseAvatar">
<image class="avatar" src="{{userInfo.avatarUrl}}"></image>
</button>
<view class="nickname-wrapper">
<text class="nickname-label">昵称</text>
<input type="nickname" class="nickname-input" placeholder="请输入昵称" bind:change="onInputChange" />
</view>
</block>
<block wx:elif="{{!hasUserInfo}}">
<button wx:if="{{canIUseGetUserProfile}}" bindtap="getUserProfile"> 获取头像昵称 </button>
<view wx:else> 请使用2.10.4及以上版本基础库 </view>
</block>
<block wx:else>
<image bindtap="bindViewTap" class="userinfo-avatar" src="{{userInfo.avatarUrl}}" mode="cover"></image>
<text class="userinfo-nickname">{{userInfo.nickName}}</text>
</block>
</view>
<view class="usermotto">
<text class="user-motto">{{motto}}</text>
</view>
</view>
</scroll-view>

5
src/pages/logs/logs.json

@ -1,5 +0,0 @@
{
"usingComponents": {
"navigation-bar": "/components/navigation-bar/navigation-bar"
}
}

16
src/pages/logs/logs.scss

@ -1,16 +0,0 @@
page {
height: 100vh;
display: flex;
flex-direction: column;
}
.scrollarea {
flex: 1;
overflow-y: hidden;
}
.log-item {
margin-top: 20rpx;
text-align: center;
}
.log-item:last-child {
padding-bottom: env(safe-area-inset-bottom);
}

21
src/pages/logs/logs.ts

@ -1,21 +0,0 @@
// logs.ts
// const util = require('../../utils/util.js')
import { formatTime } from '../../utils/util'
Component({
data: {
logs: [],
},
lifetimes: {
attached() {
this.setData({
logs: (wx.getStorageSync('logs') || []).map((log: string) => {
return {
date: formatTime(new Date(log)),
timeStamp: log
}
}),
})
}
},
})

7
src/pages/logs/logs.wxml

@ -1,7 +0,0 @@
<!--logs.wxml-->
<navigation-bar title="查看启动日志" back="{{true}}" color="black" background="#FFF"></navigation-bar>
<scroll-view class="scrollarea" scroll-y type="list">
<block wx:for="{{logs}}" wx:key="timeStamp" wx:for-item="log">
<view class="log-item">{{index + 1}}. {{log.date}}</view>
</block>
</scroll-view>

4
src/pages/start/index.json

@ -0,0 +1,4 @@
{
"usingComponents": {}
}

36
src/pages/start/index.scss

@ -0,0 +1,36 @@
/**index.scss**/
page {
height: 100vh;
display: flex;
flex-direction: column;
}
.page {
position: relative;
height: 100vh;
.container {
padding: 530rpx 0 0;
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 998rpx;
text-align: center;
box-sizing: border-box;
background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #ffffff 100%);
.title {
width: 612rpx;
height: 148rpx;
}
.btn {
margin: 38rpx auto 0;
width: 686rpx;
height: 88rpx;
font-size: 32rpx;
color: rgba(255, 255, 255, 1);
text-align: center;
line-height: 88rpx;
background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%);
border-radius: 96rpx 96rpx 96rpx 96rpx;
}
}
}

6
src/pages/start/index.ts

@ -0,0 +1,6 @@
const app = getApp<IAppOption>()
Page({
data: {},
onLoad() {},
})

6
src/pages/start/index.wxml

@ -0,0 +1,6 @@
<view class="page" style="background: url({{imageUrl}}start-bg.png?r={{Timestamp}}) no-repeat top center/100% 1624rpx;">
<view class="container">
<image class="title" src="/images/start-title.png"></image>
<view class="btn">欢迎进入</view>
</view>
</view>

2
src/utils/dayjs/day-zh-cn.js

@ -0,0 +1,2 @@
!function(e,_){"object"==typeof exports&&"undefined"!=typeof module?module.exports=_(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],_):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_zh_cn=_(e.dayjs)}(this,(function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=_(e),d={name:"zh-cn",weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(e,_){return"W"===_?e+"周":e+"日"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},meridiem:function(e,_){var t=100*e+_;return t<600?"凌晨":t<900?"早上":t<1100?"上午":t<1300?"中午":t<1800?"下午":"晚上"}};return t.default.locale(d,null,!0),d}));

24
src/utils/dayjs/relativeTime.d.ts vendored

@ -0,0 +1,24 @@
import { PluginFunc, ConfigType } from 'dayjs'
declare interface RelativeTimeThreshold {
l: string
r?: number
d?: string
}
declare interface RelativeTimeOptions {
rounding?: (num: number) => number
thresholds?: RelativeTimeThreshold[]
}
declare const plugin: PluginFunc<RelativeTimeOptions>
export = plugin
declare module 'dayjs' {
interface Dayjs {
fromNow(withoutSuffix?: boolean): string
from(compared: ConfigType, withoutSuffix?: boolean): string
toNow(withoutSuffix?: boolean): string
to(compared: ConfigType, withoutSuffix?: boolean): string
}
}

1
src/utils/dayjs/relativeTime.js

@ -0,0 +1 @@
!function(r,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(r="undefined"!=typeof globalThis?globalThis:r||self).dayjs_plugin_relativeTime=e()}(this,(function(){"use strict";return function(r,e,t){r=r||{};var n=e.prototype,o={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function i(r,e,t,o){return n.fromToBase(r,e,t,o)}t.en.relativeTime=o,n.fromToBase=function(e,n,i,d,u){for(var f,a,s,l=i.$locale().relativeTime||o,h=r.thresholds||[{l:"s",r:44,d:"second"},{l:"m",r:89},{l:"mm",r:44,d:"minute"},{l:"h",r:89},{l:"hh",r:21,d:"hour"},{l:"d",r:35},{l:"dd",r:25,d:"day"},{l:"M",r:45},{l:"MM",r:10,d:"month"},{l:"y",r:17},{l:"yy",d:"year"}],m=h.length,c=0;c<m;c+=1){var y=h[c];y.d&&(f=d?t(e).diff(i,y.d,!0):i.diff(e,y.d,!0));var p=(r.rounding||Math.round)(Math.abs(f));if(s=f>0,p<=y.r||!y.r){p<=1&&c>0&&(y=h[c-1]);var v=l[y.l];u&&(p=u(""+p)),a="string"==typeof v?v.replace("%d",p):v(p,n,y.l,s);break}}if(n)return a;var M=s?l.future:l.past;return"function"==typeof M?M(a):M.replace("%s",a)},n.to=function(r,e){return i(r,e,this,!0)},n.from=function(r,e){return i(r,e,this)};var d=function(r){return r.$u?t.utc():t()};n.toNow=function(r){return this.to(d(this),r)},n.fromNow=function(r){return this.from(d(this),r)}}}));

62
src/utils/page.ts

@ -0,0 +1,62 @@
/**
* 使
* 1app.js const page = require('xx/xx/page);
* 2app.js onLaunch Page = page
*/
const originalPage = Page;
function page(
config: WechatMiniprogram.Page.Instance<
WechatMiniprogram.IAnyObject,
WechatMiniprogram.IAnyObject
>,
) {
const originalOnLoad = config.onLoad;
config.onLoad = function (options) {
setImageParams(this);
getApp().getMenuInfo(this)
if (originalOnLoad) {
originalOnLoad.call(this, options);
}
};
const originalOnShareAppMessage = config.onShareAppMessage;
config.onShareAppMessage = function (options) {
if (originalOnShareAppMessage) {
return originalOnShareAppMessage.call(this, options);
} else {
// const date = new Date();
// const Timestamp = date.getTime();
// const pages = getCurrentPages();
// const currentPage = pages[pages.length - 1];
// const url = currentPage.route;
return {
title: "武田",
path: "/pages/start/index",
// imageUrl: `${getApp().globalData.imageUrl}1/1.png?t=${Timestamp}`,
};
}
};
return originalPage(config);
}
function setImageParams(
currPage: WechatMiniprogram.Page.Instance<
WechatMiniprogram.IAnyObject,
WechatMiniprogram.IAnyObject
>,
) {
const date = new Date();
const Timestamp = date.getTime();
currPage.setData({
imageUrl: getApp().globalData.imageUrl,
Timestamp: Timestamp,
});
}
export default page;

69
src/utils/request.ts

@ -1,32 +1,17 @@
interface IGlobalParams { interface IGlobalParams {
gUrl: string; gUrl: string
}
interface IAgaxParams extends WechatMiniprogram.RequestOption {
showMsg?: boolean;
loading?: boolean;
isJSON?: boolean;
} }
export const request = function ( export const request = function (
{ gUrl }: IGlobalParams, { gUrl }: IGlobalParams,
{ { url, method, data, header, showMsg = true, loading = false, isJSON = false, ...options }: IAgaxParams,
url,
method,
data,
header,
showMsg = true,
loading = false,
isJSON = false,
...options
}: IAgaxParams,
): Promise<any> { ): Promise<any> {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
if (loading) { if (loading) {
wx.showLoading({ wx.showLoading({
title: "加载中...", title: '加载中...',
mask: true, mask: true,
}); })
} }
wx.request({ wx.request({
header: { header: {
@ -34,59 +19,53 @@ export const request = function (
...header, ...header,
}, },
url: gUrl + url, url: gUrl + url,
method: method, method,
data: { data: {
loginState: getApp().globalData.loginState, loginState: getApp().globalData.loginState,
...(data as object), ...(data as object),
}, },
...options, ...options,
success(res: any) { success(res: any) {
const { code, data } = res.data; const { code, data } = res.data
if (isJSON) { if (isJSON) {
resolve(res.data); resolve(res.data)
} else if (code === 0) { } else if (code === 0) {
resolve(data); resolve(data)
} else if (showMsg) { } else if (showMsg) {
const msg = errPicker(res.data); const msg = errPicker(res.data)
if (loading) { if (loading) {
setTimeout(() => { setTimeout(() => {
wx.showToast({ wx.showToast({
title: msg, title: msg,
icon: "none", icon: 'none',
}); })
}, 30); }, 30)
} else { } else {
wx.showToast({ wx.showToast({
title: msg, title: msg,
icon: "none", icon: 'none',
}); })
reject(res); reject(res)
} }
} else { } else {
reject(res); reject(res)
} }
}, },
fail(err) { fail(err) {
reject(err); reject(err)
}, },
complete() { complete() {
if (loading) { if (loading) {
wx.hideLoading(); wx.hideLoading()
} }
}, },
}); })
}); })
}; }
function errPicker(err: any) { function errPicker(err: any) {
if (typeof err === "string") { if (typeof err === 'string') {
return err; return err
} }
return ( return err.data || err.msg || err.errMsg || (err.detail && err.detail.errMsg) || '未知错误'
err.data ||
err.msg ||
err.errMsg ||
(err.detail && err.detail.errMsg) ||
"未知错误"
);
} }

3
tsconfig.json

@ -29,6 +29,9 @@
"paths": { "paths": {
"@vant/weapp/*": [ "@vant/weapp/*": [
"path/to/node_modules/@vant/weapp/dist/*" "path/to/node_modules/@vant/weapp/dist/*"
],
"@/*": [
"src/*"
] ]
}, },
}, },

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save