inquiryForm2_1.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838
  1. <template>
  2. <view class="content">
  3. <view class="main">
  4. <u-alert fontSize="16" description = "尊敬的用户,您好!
  5. 为了您的健康,请认真填写以下内容,以便药师为您更好的分析,提供更有针对性的解决方案!"></u-alert>
  6. <view class="chose-patient">
  7. <view class="title-box" @click="addPatient()" v-if="patient==null">
  8. <text class="title">选择就诊人</text>
  9. <view class="right" >
  10. <text class="value">请点击添加</text>
  11. <image src="/static/images/arrow_gray.png" mode=""></image>
  12. </view>
  13. </view>
  14. <view class="patient" @click="addPatient()" v-if="patient!=null">
  15. <view class="left">
  16. <view class="name">{{patient.patientName}}</view>
  17. <view class="info">
  18. <text class="text" v-if="patient.sex==1">男</text>
  19. <text class="text" v-if="patient.sex==2">女</text>
  20. <text class="text">{{$getAge(patient.birthday)}}岁</text>
  21. <text class="text">{{$parseIdCard(patient.idCard)}}</text>
  22. </view>
  23. </view>
  24. <view class="right" >
  25. <image src="/static/images/arrow_gray.png" mode=""></image>
  26. </view>
  27. </view>
  28. </view>
  29. <view class="cont">
  30. <u-form :rules="rules" :model="form" ref="uForm" labelPosition="left">
  31. <!-- <view class="title-box">
  32. <view class="line"></view>
  33. <view class="title">您的基本情况填写</view>
  34. </view>
  35. <view class="form">
  36. <u-form-item :required="true" labelWidth="200rpx" borderBottom label="身高(厘米)" prop="height">
  37. <u-input type="number" border="none" placeholder="请输入身高" v-model="form.height" />
  38. </u-form-item>
  39. <u-form-item :required="true" labelWidth="200rpx" borderBottom label="体重(公斤)" prop="weight">
  40. <u-input type="number" border="none" placeholder="请输入体重" v-model="form.weight" />
  41. </u-form-item>
  42. <u-form-item :required="true" labelWidth="200rpx" maxlength="11" borderBottom label="联系电话" prop="mobile">
  43. <u-input type="number" border="none" placeholder="请输入电话" v-model="form.mobile" />
  44. </u-form-item> -->
  45. <!-- <u-form-item :required="true" labelWidth="200rpx" borderBottom label="学习进度" prop="study">
  46. <u-input border="none" placeholder="请输入第几期第几课" v-model="form.study" />
  47. </u-form-item> -->
  48. <!-- <u-form-item :required="true" labelWidth="200rpx" borderBottom label="用药情况" prop="medication">
  49. <u--textarea v-model="form.medication" placeholder="请输入用药情况" count ></u--textarea>
  50. </u-form-item>
  51. <u-form-item :required="true" @click="usageShow = true;" labelWidth="200rpx" label="期望会诊方式" prop="usage">
  52. <u-input
  53. v-model="form.usage"
  54. disabled
  55. disabledColor="#ffffff"
  56. placeholder="请选择"
  57. border="none"
  58. ></u-input>
  59. <template #right>
  60. <u-icon
  61. name="arrow-right"
  62. ></u-icon>
  63. </template>
  64. </u-form-item>
  65. <u-action-sheet
  66. :show="usageShow"
  67. :actions="usages"
  68. title="请选择"
  69. @close="usageShow = false"
  70. @select="usageSelect"
  71. >
  72. </u-action-sheet>
  73. </view> -->
  74. <!-- <view class="title-box">
  75. <view class="line"></view>
  76. <view class="title">您的头面部健康状况自我检查</view>
  77. </view>
  78. <view class="form">
  79. <view class="option-box">
  80. <view class="option-item" v-for="(item,index) in temps" >
  81. <view v-if="item.tempType==1" class="title">{{index+1}} {{item.title}}</view>
  82. <view class="options">
  83. <u-checkbox-group
  84. v-if="item.tempType==1"
  85. v-model="item.checks"
  86. placement="column"
  87. >
  88. <u-checkbox
  89. size="28"
  90. shape="circle"
  91. activeColor="#2583EB"
  92. v-for="(option, subIndex) in item.options"
  93. :key="option.name"
  94. :label="option.name"
  95. :name="option.name"
  96. >
  97. </u-checkbox>
  98. </u-checkbox-group>
  99. </view>
  100. </view>
  101. </view>
  102. </view>
  103. <view class="title-box">
  104. <view class="line"></view>
  105. <view class="title">您的四肢肩颈健康状况自我检查</view>
  106. </view>
  107. <view class="form">
  108. <view class="option-box">
  109. <view class="option-item" v-for="(item,index) in temps" >
  110. <view v-if="item.tempType==2" class="title">{{index+1}} {{item.title}}</view>
  111. <view class="options">
  112. <u-checkbox-group
  113. v-if="item.tempType==2"
  114. v-model="item.checks"
  115. placement="column"
  116. >
  117. <u-checkbox
  118. size="28"
  119. shape="circle"
  120. activeColor="#2583EB"
  121. v-for="(option, subIndex) in item.options"
  122. :key="option.name"
  123. :label="option.name"
  124. :name="option.name"
  125. >
  126. </u-checkbox>
  127. </u-checkbox-group>
  128. </view>
  129. </view>
  130. </view>
  131. </view>
  132. <view class="title-box">
  133. <view class="line"></view>
  134. <view class="title">您的胸腹部健康状况自我检查</view>
  135. </view>
  136. <view class="form">
  137. <view class="option-box">
  138. <view class="option-item" v-for="(item,index) in temps" >
  139. <view v-if="item.tempType==3" class="title">{{index+1}} {{item.title}}</view>
  140. <view class="options">
  141. <u-checkbox-group
  142. v-if="item.tempType==3"
  143. v-model="item.checks"
  144. placement="column"
  145. >
  146. <u-checkbox
  147. size="28"
  148. shape="circle"
  149. activeColor="#2583EB"
  150. v-for="(option, subIndex) in item.options"
  151. :key="option.name"
  152. :label="option.name"
  153. :name="option.name"
  154. >
  155. </u-checkbox>
  156. </u-checkbox-group>
  157. </view>
  158. </view>
  159. </view>
  160. </view>
  161. <view class="title-box">
  162. <view class="line"></view>
  163. <view class="title">其他身体状况自我检查</view>
  164. </view>
  165. <view class="form">
  166. <view class="option-box">
  167. <view class="option-item" v-for="(item,index) in temps" >
  168. <view v-if="item.tempType==4" class="title">{{index+1}} {{item.title}}</view>
  169. <view class="options">
  170. <u-checkbox-group
  171. v-if="item.tempType==4"
  172. v-model="item.checks"
  173. placement="column"
  174. >
  175. <u-checkbox
  176. size="28"
  177. shape="circle"
  178. activeColor="#2583EB"
  179. v-for="(option, subIndex) in item.options"
  180. :key="option.name"
  181. :label="option.name"
  182. :name="option.name"
  183. >
  184. </u-checkbox>
  185. </u-checkbox-group>
  186. </view>
  187. </view>
  188. </view>
  189. </view> -->
  190. <!-- <view class="title-box">
  191. <view class="line"></view>
  192. <view class="title">补充信息</view>
  193. </view> -->
  194. <view class="form">
  195. <!-- <u-form-item labelWidth="140rpx" borderBottom label="舌苔照片" prop="avatar">
  196. <view class="form-item">
  197. <image @click="showImg(1)" class="icon" src="/static/images/question.png"></image>
  198. <u-upload
  199. :fileList="fileList1"
  200. @afterRead="afterRead"
  201. @delete="deletePic"
  202. name="1"
  203. multiple
  204. :maxCount="4"
  205. >
  206. </u-upload>
  207. </view>
  208. </u-form-item>
  209. <u-form-item labelWidth="140rpx" borderBottom label="面部照片" prop="avatar">
  210. <view class="form-item">
  211. <image @click="showImg(2)" class="icon" src="/static/images/question.png"></image>
  212. <u-upload
  213. :fileList="fileList2"
  214. @afterRead="afterRead"
  215. @delete="deletePic"
  216. name="2"
  217. multiple
  218. :maxCount="4"
  219. >
  220. </u-upload>
  221. </view>
  222. </u-form-item>
  223. <u-form-item labelWidth="140rpx" borderBottom label="相关报告" prop="avatar">
  224. <view class="form-item">
  225. <view class="icon"></view>
  226. <u-upload
  227. :fileList="fileList3"
  228. @afterRead="afterRead"
  229. @delete="deletePic"
  230. name="3"
  231. multiple
  232. :maxCount="4"
  233. >
  234. </u-upload>
  235. </view>
  236. </u-form-item> -->
  237. <u-form-item :required="true" labelWidth="200rpx" label="您最想咨询医生的问题是什么?" prop="title">
  238. <u--textarea v-model="form.title" placeholder="请输入内容" count maxlength="500"></u--textarea>
  239. </u-form-item>
  240. <u-form-item :required="true" labelWidth="200rpx" borderBottom label="此次病情是否去医院就诊过" prop="isVisit">
  241. <u-radio-group
  242. v-model="form.isVisit"
  243. iconPlacement="left">
  244. <u-radio :customStyle="{marginRight: '5px'}"
  245. v-for="(item, index) in isVisits"
  246. :key="index"
  247. :label="item.name"
  248. :name="item.name" activeColor="#2583EB"
  249. ></u-radio>
  250. </u-radio-group>
  251. </u-form-item>
  252. <u-form-item labelWidth="200rpx" borderBottom label="上传检测报告或患处照片" >
  253. <view class="form-item">
  254. <view class="icon"></view>
  255. <u-upload
  256. :fileList="fileList3"
  257. @afterRead="afterRead"
  258. @delete="deletePic"
  259. name="3"
  260. multiple
  261. :maxCount="4"
  262. >
  263. </u-upload>
  264. </view>
  265. </u-form-item>
  266. </view>
  267. </u-form>
  268. </view>
  269. </view>
  270. <view class="btn-box">
  271. <view class="btn" @click="submitOrder()">预约会诊</view>
  272. </view>
  273. </view>
  274. </template>
  275. <script>
  276. import {bindCompanyUser} from '@/api/companyUser.js'
  277. import {create,confirm,getInquiryTemp} from '@/api/inquiryOrder.js'
  278. export default {
  279. data() {
  280. return {
  281. companyId:null,
  282. companyUserId:null,
  283. statusBarHeight: uni.getStorageSync('menuInfo').statusBarHeight,
  284. temps:[],
  285. usageShow:false,
  286. usages: [
  287. {
  288. name: '图文问诊',
  289. },
  290. {
  291. name: '语音问诊',
  292. },
  293. ],
  294. isVisits: [
  295. {
  296. name: '未就诊',
  297. disabled: false
  298. },
  299. {
  300. name: '就诊过',
  301. disabled: false
  302. }
  303. ],
  304. orderKey:null,
  305. patient:null,
  306. inquiryType:null,
  307. inquirySubType:null,
  308. orderType:null,
  309. fileList1: [],
  310. fileList2: [],
  311. fileList3: [],
  312. form:{
  313. title:"",
  314. isVisit:"就诊过",
  315. },
  316. rules: {
  317. height: [
  318. {
  319. required: true,
  320. message: '请输入身高',
  321. // 可以单个或者同时写两个触发验证方式
  322. trigger: ['change','blur'],
  323. }
  324. ],
  325. weight: [
  326. {
  327. required: true,
  328. message: '请输入体重',
  329. // 可以单个或者同时写两个触发验证方式
  330. trigger: ['change','blur'],
  331. }
  332. ],
  333. mobile: [
  334. {
  335. required: true,
  336. message: '请输入联系电话',
  337. // 可以单个或者同时写两个触发验证方式
  338. trigger: ['change','blur'],
  339. }
  340. ],
  341. isVisit: [
  342. {
  343. required: true,
  344. message: '请选择是否去医院就诊过',
  345. // 可以单个或者同时写两个触发验证方式
  346. trigger: ['change','blur'],
  347. }
  348. ],
  349. }
  350. }
  351. },
  352. onLoad(options) {
  353. if(!this.$isEmpty(options.isShare)){
  354. this.isShare=options.isShare
  355. }
  356. else{
  357. //uni.hideShareMenu()
  358. }
  359. if(!this.$isEmpty(options.companyId)){
  360. this.companyId=options.companyId == 'undefined' || options.companyId == 'null' ? null: options.companyId
  361. }
  362. if(!this.$isEmpty(options.companyUserId)){
  363. this.companyUserId=options.companyUserId == 'undefined' || options.companyUserId == 'null'? null: options.companyUserId
  364. }
  365. console.log(this.companyId)
  366. console.log(this.companyUserId)
  367. this.inquiryType=options.inquiryType;
  368. this.inquirySubType=options.inquirySubType;
  369. this.orderType=options.orderType;
  370. //this.getInquiryTemp();
  371. },
  372. onReady() {
  373. this.$refs.uForm.setRules(this.rules);
  374. },
  375. onShow() {
  376. if(this.$isLogin()){
  377. if(!this.$isEmpty(this.companyUserId)){
  378. let data = {companyUserId:this.companyUserId};
  379. bindCompanyUser(data).then(
  380. res => {
  381. if(res.code==200){
  382. }
  383. },
  384. rej => {}
  385. );
  386. }
  387. }
  388. var that=this;
  389. uni.$on('refreshOrderPatient', (res) => {
  390. that.patient=res
  391. })
  392. this.confirm();
  393. },
  394. onShareAppMessage(res) {
  395. //禁止二次转发--
  396. // uni.showShareMenu({
  397. // withShareTicket: true
  398. // });
  399. wx.updateShareMenu({
  400. isPrivateMessage: true,
  401. withShareTicket: true,
  402. success(res) {
  403. console.log('updateShareMenu: ', res);
  404. },
  405. fail() {}
  406. });
  407. //禁止二次转发--end
  408. return {
  409. title: "中康未来互联网医院--健康会诊",
  410. path: "/pages/store/inquiryForm2_1?inquiryType=2&orderType=2&inquirySubType="+this.inquirySubType+"&companyId="+this.companyId+"&companyUserId="+this.companyUserId
  411. }
  412. },
  413. methods: {
  414. showImg(type){
  415. if(type==1){
  416. var imgs=[
  417. "https://zkzh-2025.oss-cn-beijing.aliyuncs.com/appimgs/0640bd4b80ba4491842b9d20d7238616.png"
  418. ];
  419. uni.previewImage({
  420. current: 0,
  421. urls: imgs
  422. });
  423. }
  424. else if(type==2){
  425. var imgs=[
  426. "https://zkzh-2025.oss-cn-beijing.aliyuncs.com/appimgs/2c9f24e5c3fc458f8bcb30a4fb0619be.png"
  427. ];
  428. uni.previewImage({
  429. current: 0,
  430. urls: imgs
  431. });
  432. }
  433. },
  434. leftClick() {
  435. console.log('leftClick');
  436. uni.showModal({
  437. title: '提示',
  438. content: '确认关闭吗',
  439. success: function (res) {
  440. if (res.confirm) {
  441. uni.navigateBack()
  442. } else if (res.cancel) {
  443. }
  444. }
  445. });
  446. },
  447. confirm(){
  448. let data = {};
  449. confirm(data).then(
  450. res => {
  451. if(res.code==200){
  452. this.orderKey=res.orderKey
  453. console.log("this.orderKey==111",this.orderKey)
  454. }
  455. },
  456. rej => {}
  457. );
  458. },
  459. usageSelect(e){
  460. this.form.usage = e.name
  461. this.$refs.uForm.validateField('usage')
  462. },
  463. submitOrder(){
  464. if(this.patient==null){
  465. uni.showToast({
  466. icon:'none',
  467. title: '请选择就诊人',
  468. });
  469. return;
  470. }
  471. if(this.form.isVisit=='未就诊'){
  472. uni.showToast({
  473. icon:'none',
  474. title: '仅支持复诊',
  475. });
  476. return;
  477. }
  478. console.log("this.orderKey==",this.orderKey)
  479. if(this.orderKey==null){
  480. this.confirm();
  481. }
  482. var reportImages=[];
  483. this.fileList3.forEach(function(element) {
  484. reportImages.push(element.url)
  485. });
  486. var tongueImages=[];
  487. this.fileList1.forEach(function(element) {
  488. tongueImages.push(element.url)
  489. });
  490. var faceImages=[];
  491. this.fileList2.forEach(function(element) {
  492. faceImages.push(element.url)
  493. });
  494. // var forms=[];
  495. // this.temps.forEach(function(element) {
  496. // var item={
  497. // title:element.title,
  498. // option:element.checks,
  499. // }
  500. // forms.push(item)
  501. // });
  502. console.log("2222",this.orderKey)
  503. var that=this;
  504. this.$refs.uForm.validate().then(res => {
  505. var data={
  506. companyId:that.companyId,
  507. companyUserId:that.companyUserId,
  508. orderKey:that.orderKey,
  509. patientId:that.patient.patientId,
  510. title:that.form.title,
  511. inquiryType:that.inquiryType,
  512. inquirySubType:that.inquirySubType,
  513. orderType: 2, // 1图文 2语音
  514. doctorId:that.doctorId,
  515. height:that.form.height,
  516. weight:that.form.weight,
  517. mobile:that.form.mobile,
  518. // study:that.form.study,
  519. medication:that.form.medication,
  520. usage:that.form.usage,
  521. reportImages:reportImages.toString(),
  522. tongueImages:tongueImages.toString(),
  523. faceImages:faceImages.toString(),
  524. isVisit:that.form.isVisit,
  525. // formJson:JSON.stringify(forms)
  526. }
  527. console.log("2222",this.orderKey)
  528. //#ifdef APP-PLUS
  529. data.source=2;
  530. //#endif
  531. //#ifdef H5
  532. data.source=3;
  533. //#endif
  534. uni.showLoading({
  535. title: '正在处理中...'
  536. });
  537. create(data).then(
  538. res => {
  539. uni.hideLoading()
  540. if(res.code==200){
  541. setTimeout(function(){
  542. uni.redirectTo({
  543. url: './inquiryPay?orderId='+res.order.orderId
  544. })
  545. },200);
  546. return;
  547. }
  548. else{
  549. uni.showToast({
  550. icon:'none',
  551. title: res.msg,
  552. });
  553. }
  554. },
  555. rej => {}
  556. );
  557. }).catch(errors => {
  558. })
  559. },
  560. // getInquiryTemp(){
  561. // let data = {};
  562. // getInquiryTemp(data).then(
  563. // res => {
  564. // if(res.code==200){
  565. // this.temps=res.data;
  566. // this.temps.forEach(function(element) {
  567. // element.options=JSON.parse(element.itemJson)
  568. // });
  569. // // this.temps1=temps.filter((item) => {
  570. // // return item.tempType==1;
  571. // // });
  572. // // this.temps2=temps.filter((item) => {
  573. // // return item.tempType==2;
  574. // // });
  575. // // this.temps3=temps.filter((item) => {
  576. // // return item.tempType==3;
  577. // // });
  578. // // this.temps4=temps.filter((item) => {
  579. // // return item.tempType==4;
  580. // // });
  581. // console.log(this.temps1)
  582. // }
  583. // },
  584. // rej => {}
  585. // );
  586. // },
  587. addPatient(){
  588. uni.navigateTo({
  589. url: '/pages/user/patient'
  590. })
  591. },
  592. deletePic(event) {
  593. this[`fileList${event.name}`].splice(event.index, 1)
  594. },
  595. async afterRead(event) {
  596. // 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
  597. let lists = [].concat(event.file)
  598. let fileListLen = this[`fileList${event.name}`].length
  599. lists.map((item) => {
  600. this[`fileList${event.name}`].push({
  601. ...item,
  602. status: 'uploading',
  603. message: '上传中'
  604. })
  605. })
  606. for (let i = 0; i < lists.length; i++) {
  607. const result = await this.uploadFilePromise(lists[i].url)
  608. let item = this[`fileList${event.name}`][fileListLen]
  609. this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
  610. status: 'success',
  611. message: '',
  612. url: result
  613. }))
  614. fileListLen++
  615. }
  616. },
  617. uploadFilePromise(url) {
  618. return new Promise((resolve, reject) => {
  619. let a = uni.uploadFile({
  620. url: uni.getStorageSync('requestPath')+'/app/common/uploadOSS', // 仅为示例,非真实的接口地址
  621. filePath: url,
  622. name: 'file',
  623. formData: {
  624. user: 'test'
  625. },
  626. success: (res) => {
  627. setTimeout(() => {
  628. console.log(JSON.parse(res.data).url)
  629. resolve(JSON.parse(res.data).url)
  630. }, 1000)
  631. }
  632. });
  633. })
  634. },
  635. }
  636. }
  637. </script>
  638. <style lang="scss">
  639. page{
  640. background: #f1f6fc;
  641. }
  642. </style>
  643. <style scoped lang="scss">
  644. .content{
  645. position: relative;
  646. .main{
  647. .cont{
  648. padding-bottom: 160upx;
  649. .title-box{
  650. margin: 15rpx;
  651. display: flex;
  652. flex-direction: row;
  653. align-items: center;
  654. justify-content: flex-start;
  655. .title{
  656. font-size: 32upx;
  657. font-family: PingFang SC;
  658. font-weight: bold;
  659. color: #111111;
  660. }
  661. .line{
  662. margin-right: 15rpx;
  663. height: 30rpx;
  664. width: 6rpx;
  665. background-color: #2583EB;
  666. }
  667. }
  668. .form{
  669. border-radius: 15rpx;
  670. margin: 0rpx 15rpx;
  671. padding: 0rpx 30rpx;
  672. background-color: #fff;
  673. .option-box{
  674. padding: 15rpx;
  675. .option-item{
  676. .title{
  677. font-size: 32upx;
  678. font-family: PingFang SC;
  679. font-weight: bold;
  680. color: #111111;
  681. }
  682. .options{
  683. }
  684. }
  685. }
  686. }
  687. }
  688. .chose-patient{
  689. margin: 15rpx;
  690. padding: 30rpx;
  691. box-shadow: 0px 0px 5px 2px rgba(0,0,0,0.05);
  692. background-color: #fff;
  693. border-radius: 15rpx;
  694. .title-box{
  695. display: flex;
  696. align-items: center;
  697. justify-content: space-between;
  698. .title{
  699. font-size: 32upx;
  700. font-family: PingFang SC;
  701. font-weight: bold;
  702. color: #111111;
  703. }
  704. .right{
  705. height: 100%;
  706. display: flex;
  707. align-items: center;
  708. justify-content: center;
  709. .value{
  710. font-size: 28upx;
  711. font-family: PingFang SC;
  712. color: #999;
  713. margin-right: 10rpx;
  714. }
  715. image{
  716. width: 15upx;
  717. height: 30upx;
  718. }
  719. }
  720. }
  721. .patient{
  722. display: flex;
  723. align-items: center;
  724. justify-content: space-between;
  725. height: 110upx;
  726. .left{
  727. .name{
  728. font-size: 30upx;
  729. line-height: 1;
  730. font-family: PingFang SC;
  731. font-weight: bold;
  732. color: #111111;
  733. }
  734. .info{
  735. margin-top: 30rpx;
  736. display: flex;
  737. align-items: center;
  738. .text{
  739. font-size: 26upx;
  740. font-family: PingFang SC;
  741. line-height: 1;
  742. font-weight: 500;
  743. color: #999;
  744. margin-right: 19upx;
  745. }
  746. }
  747. }
  748. .right{
  749. display: flex;
  750. align-items: center;
  751. image{
  752. width: 15upx;
  753. height: 30upx;
  754. }
  755. }
  756. }
  757. }
  758. }
  759. .btn-box{
  760. height: 140upx;
  761. z-index: 9999;
  762. width: 100%;
  763. padding: 0rpx 30upx;
  764. position: fixed;
  765. bottom: 0;
  766. left: 0;
  767. box-sizing: border-box;
  768. background-color: #ffffff;
  769. display: flex;
  770. align-items: center;
  771. justify-content: center;
  772. .btn{
  773. width: 100%;
  774. height: 88upx;
  775. line-height: 88upx;
  776. text-align: center;
  777. font-size: 34upx;
  778. font-family: PingFang SC;
  779. font-weight: 400;
  780. color: #FFFFFF;
  781. background: #2583EB;
  782. border-radius: 10upx;
  783. }
  784. }
  785. }
  786. .form-item{
  787. display: flex;
  788. align-items: center;
  789. justify-content: flex-start;
  790. .icon{
  791. min-width: 30rpx;
  792. margin-right: 15rpx;
  793. width: 30rpx;
  794. height:30rpx;
  795. }
  796. }
  797. </style>