MainPage.vue 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591
  1. <template>
  2. <div class="page">
  3. <Head :activeTab='activeTab' :allMoudles='allMoudles' :progress='progress'/>
  4. <!-- <div class="progress-bar">
  5. <div class="title">
  6. <span :class="{'active':activeTab==i.type}" :style="{width:(100/allMoudles.length)+'%'}" v-for="i in allMoudles">{{i.name}}</span>
  7. </div>
  8. <div class="progress">
  9. <p :style="{width:progress}"></p>
  10. </div>
  11. </div> -->
  12. <div class="wrapper">
  13. <div class="scrollPart" :style="{'paddingBottom':pdbm}">
  14. <!--<div class="right clearfix">
  15. <img src="../assets/patient.png" alt="" class="fr">
  16. <div class="content fr">
  17. <p>医生您好!我想咨询新型冠状病毒。(个人信息:{{userInfo.patientName}}{{userInfo.patientSex?','+userInfo.patientSex:''}}{{userInfo.patientAge?','+userInfo.patientAge+'岁':''}})</p>
  18. </div>
  19. </div>-->
  20. <div class="left clearfix">
  21. <img src="../images/doctor.png" alt="" class="fl">
  22. <div class="content fl">
  23. <p>欢迎来到{{userInfo.hospitalName}}!候诊期间请先填写自己的实际症状,信息会马上传送到您的预约医生,便于您实现快速就诊。</p>
  24. </div>
  25. </div>
  26. <!--<div class="left clearfix" @click="selectToggle(2,disData.symptom.result,true)">
  27. <img src="../assets/doctor.png" alt="" class="fl">
  28. <div class="content fl">
  29. <p>您哪里不舒服?</p>
  30. </div>
  31. </div>-->
  32. <UsualSymptom v-if="showUsual" @selectUsual="selectUsual"></UsualSymptom>
  33. <div class="right clearfix" v-if="selectedSymptom.name">
  34. <img src="../images/patient.png" alt="" class="fr">
  35. <div class="content fr">
  36. <p>{{selectedSymptom.description||selectedSymptom.name}}</p>
  37. </div>
  38. <span v-if="!canceledSym&&activeNum==0&&cancelNum===-1" class="edit" @click="cancelSymptom">修改</span>
  39. </div>
  40. <div v-for="(item,idx) in symptomQasList" :key="'0'+idx+item.id" v-if="activeTab">
  41. <Dialog :idx="idx" v-if="item.show" :item="item" @cancel="cancelSelected" :num="activeNum" :cancelNum="cancelNum" :extNum ="[]"/>
  42. </div>
  43. <div v-for="(item,idx) in diagnoseQasList" :key="'1'+idx+item.id" v-if="activeTab==moduleKeys[1]||activeTab==moduleKeys[2]||activeTab==moduleKeys[3]">
  44. <Dialog :idx="idx" v-if="item.show" :item="item" @cancel="cancelSelected" :num="activeNum" :extNum ="[symptomQasList.length]" :cancelNum="cancelNum"/>
  45. </div>
  46. <div v-for="(item,idx) in othersQasList" :key="'2'+idx+item.id" v-if="activeTab==moduleKeys[2]||activeTab==moduleKeys[3]">
  47. <Dialog :idx="idx" v-if="item.show" :item="item" @cancel="cancelSelected" :num="activeNum" :extNum ="[symptomQasList.length,diagnoseQasList.length]" :cancelNum="cancelNum"/>
  48. </div>
  49. <div v-for="(item,idx) in addContentQasList" :key="'3'+idx+item.id" v-if="activeTab==moduleKeys[3]">
  50. <Dialog :idx="idx" v-if="item.show" :item="item" @cancel="cancelSelected" :num="activeNum" :extNum ="[symptomQasList.length,diagnoseQasList.length,othersQasList.length]" :cancelNum="cancelNum"/>
  51. </div>
  52. </div>
  53. </div>
  54. <MultSelect @updataResult="updataResultSingle" :num="num" :symptomResult="symptomResult" v-if="type==3"></MultSelect>
  55. <Select @updataResult="updataResultSingle" :num="num" @warning="showWarn" @getExtQa="addExtQa" :symptomResult="symptomResult" v-if="type == 2"></Select>
  56. <Radio @updataResultSingle="updataResultSingle" @warning="showWarn" @getExtQa="addExtQa" :num="num" :symptomResult="symptomResult" v-if="type == 1"></Radio>
  57. <!--普通单列拨盘-->
  58. <Picker v-if="type==10" @confirm="updataResultSingle" :columns="getColumns().arr" :columnsp="getColumns().arrp" :num="num" :defaultIndex = "defaultIndex"></Picker>
  59. <!--时间拨盘,拨盘内容写死-->
  60. <Picker v-if="type == 9" :symptomResult="symptomResult" :columns="timeColumns" :columnsp="timeColumns" :defaultVal="pickDVal" @confirm="updataResultSingle" :num="num" :defaultIndex = "defaultIndex"></Picker>
  61. <PushSymptom v-if="type == 99" @updataResult="updataResultSingle" :num="num" @warning="showWarn"></PushSymptom>
  62. <!-- 上传图片 -->
  63. <UploadImg v-if="type==4"
  64. :num="num"
  65. :item="symptomResult"
  66. :moduleType="symptomResult.type"
  67. @warning="showWarn"
  68. @updataResult="updataResultSingle"
  69. :imgList="imgs"/>
  70. <!-- 输入框 -->
  71. <!--<Input v-if="type==7"
  72. :num="num"
  73. :item="symptomResult"
  74. :key="symptomResult.id"
  75. @updata="updataResultSingle"/>-->
  76. <!-- 文本域 -->
  77. <ComTextArea v-if="type == 5"
  78. :num="num"
  79. :item="symptomResult"
  80. width="92%"
  81. @updata="updataResultSingle"/>
  82. <div class="submit" v-if="showPreview">
  83. <a href="javascript:void(0)" @click="previewRes">提交并预览</a>
  84. </div>
  85. <!--<div v-if="wrong" class="tip">{{waring}}</div>-->
  86. <TipWarning v-if="wrong" :text="waring" @close="closeTip"/>
  87. </div>
  88. </template>
  89. <script>
  90. import BScroll from 'better-scroll';
  91. import Radio from '../common/Radio';
  92. import Select from '../common/Select';
  93. import Dialog from '../common/Dialog';
  94. import Picker from '../common/Picker';
  95. import Label from '../common/Label.vue';
  96. import ComTextArea from '../common/ComTextArea.vue';
  97. /*import Input from '../common/Input.vue';*/
  98. import PickTime from '../common/PickTime.vue';
  99. import UploadImg from '../common/UploadImg.vue';
  100. import PushSymptom from '../common/PushSymptom.vue';
  101. import ConfirmBox from '../common/ConfirmBox'
  102. import UsualSymptom from '../common/UsualSymptom';
  103. import MultSelect from '../common/MultSelect.vue';
  104. import TipWarning from '../common/TipWarning.vue';
  105. import Head from '../common/Head.vue';
  106. import api from "../utils/api.js";
  107. import {mapState} from 'vuex';
  108. import {moduleCP,moduleConfig,getValuesArr,getNSum} from '@utils/tools'
  109. export default {
  110. name:'MainPage',
  111. data(){
  112. return {
  113. noAllowed:false, //未登录
  114. num:-1,//题目计数
  115. pickDVal:'1天', //时间控件默认值
  116. allMoudles:[],
  117. showUsual:false, //常用症状显示
  118. timeColumns:[], //固定2列时间滑块数据
  119. activeTab:1, //当前模块
  120. activeNum:0, //当前问题的index,整体顺序
  121. scroll:null,
  122. canceledSym:false, //是否已修改过主症状
  123. canceledQa:-1, //在对应模块的排行
  124. cancelNum:-1, //整体排行
  125. cancelTab:-1,
  126. deledUpload:[], //被删除的上传控件数据(记录用于修改时恢复)
  127. type :-1, //当前显示的控件类型
  128. showPreview:false,//显示预览按钮
  129. selectedSymptom:{},
  130. symptomResult:'',//症状选择
  131. connectResult:[],//关联问题的id
  132. contentResult:{},//选中的结果val医生端显示,valp患者端显示
  133. symptomQasList:[],//症状详情所有的问题
  134. diagnoseQasList:[], //诊疗详情所有问题
  135. othersQasList:[],//其他情况所有问题
  136. addContentQasList:[],
  137. moduleMap:{
  138. 1:'symptom',
  139. 51:'diagnose',
  140. 3:'others',
  141. 52:'addContent'
  142. },
  143. defaultIndex: 0, //温度默认值
  144. order:0,
  145. userInfo: {}, //用户信息
  146. pdbm:'8.5rem',
  147. waring:'', //错误提示语
  148. wrong:false, //是否显示错误toast
  149. showConfirm: false,
  150. time:1000,
  151. }
  152. },
  153. created() {
  154. //const userInfo= JSON.parse(localStorage.getItem("userInfo"))
  155. const userInfo = this.$store.state.pathInfo;
  156. if(!userInfo.hospitalCode){ //用户数据丢失,刷新或本页面分享时,跳回登录页
  157. this.noAllowed=true;
  158. this.$router.push({
  159. path:'/'
  160. });
  161. return;
  162. }
  163. this.userInfo = userInfo;
  164. let tmpModule = moduleConfig(this.config,this.tmpAllMoudles);
  165. this.allMoudles = tmpModule.data;
  166. this.getTimeColumns();
  167. this.updata()
  168. },
  169. mounted(){
  170. if(this.noAllowed)return;
  171. this.$nextTick(()=>{
  172. let bs = new BScroll('.wrapper', {
  173. probeType: 3,
  174. click:true
  175. });
  176. this.scroll = bs
  177. })
  178. // this.tmpSymptom = JSON.parse(JSON.stringify(data))
  179. //this.symptomResult = data.symptom.result;
  180. },
  181. computed:{
  182. ...mapState({
  183. imgs: state => state.diagnose.imgSrc,
  184. tmpAllMoudles: state => state.allMoudles,
  185. config: state => state.sysConfig,
  186. }),
  187. moduleKeys(){
  188. return this.allMoudles.map((it)=>{
  189. return it.type;
  190. });
  191. },
  192. progress(){
  193. if(this.num===-1){
  194. return '0.1px';
  195. }
  196. const moduleName = this.moduleMap[this.activeTab]+'QasList';
  197. const precent = (this.num+1)/this[moduleName].length;
  198. return precent*100+"%";
  199. }
  200. },
  201. watch:{
  202. num:function(){
  203. let n=0;
  204. let numArr=this.moduleKeys.map((i,index)=>{
  205. if(this.activeTab!==-1&&i===this.activeTab){
  206. n=index;
  207. }
  208. return this[this.moduleMap[i]+'QasList'].length;
  209. });
  210. let numArrCopy=[...numArr];
  211. numArrCopy.length=this.cancelTab!==-1?this.cancelTab:0;
  212. numArr.length=n;
  213. this.cancelNum = getNSum(numArrCopy)+this.canceledQa;
  214. this.activeNum = getNSum(numArr)+this.num;
  215. }
  216. },
  217. methods:{
  218. getColumns(){ //后台数据为空,则使用默认值
  219. const obj=getValuesArr(this.symptomResult.questionDetailList);
  220. const arr=obj.vals.length>0?obj.vals:undefined;
  221. const arrp=obj.vals.length>0?obj.valsp:undefined;
  222. return {arr,arrp};
  223. },
  224. previewRes(){
  225. this.$router.push({
  226. path:'/preview'
  227. })
  228. },
  229. updata(){
  230. this.symptomQasList = [];
  231. //this.pdbm = '8.5rem';
  232. this.showUsual=true;
  233. this.num = 0;
  234. },
  235. selectToggle(type,result,flg,idx,order){
  236. return
  237. if(flg){
  238. this.num = 1
  239. }
  240. this.symptomResult = result
  241. this.type = type
  242. this.order = order
  243. this.scrollDown()
  244. },
  245. getTimeColumns(){
  246. let num = [];
  247. for(let i = 1; i <=60; i++) {
  248. num.push(i)
  249. }
  250. let unit = ['分钟', '小时', '天', '周', '月','年'];
  251. this.timeColumns= [
  252. {
  253. values:num,
  254. className:'column1',
  255. defaultIndex: 0
  256. },
  257. {
  258. values:unit,
  259. className:'column2',
  260. defaultIndex: 2
  261. },
  262. ]
  263. },
  264. cancelSelected(){ //修改题目
  265. let moduleName='',tmpArr=[],tmpPreItem={},tmpNowItem={};
  266. moduleName = this.moduleMap[this.activeTab]+'QasList';
  267. tmpArr = this[moduleName];
  268. tmpNowItem = tmpArr[this.num];
  269. this.type = -1;
  270. if(tmpNowItem){
  271. tmpNowItem.show = false;
  272. }else{//最后一题时没有下一题
  273. this.showPreview=false;
  274. }
  275. const keyIdx = this.moduleKeys.findIndex((i)=>i==this.activeTab);
  276. if(this.activeTab!==this.moduleKeys[0]&&this.num===0){ //取消上一阶段的最后一题时
  277. this.activeTab=this.moduleKeys[keyIdx-1];
  278. this.cancelTab=keyIdx-1;
  279. moduleName = this.moduleMap[this.activeTab]+'QasList';
  280. const n = this[moduleName].length-1;
  281. tmpPreItem = this[moduleName][n];
  282. this.num=n;
  283. }else{
  284. this.cancelTab=keyIdx;
  285. tmpPreItem = tmpArr[this.num-1];
  286. this.num=this.num-1;
  287. }
  288. this.delExtQa(tmpPreItem,this.num); //修改时已关联的问题先删除
  289. +tmpPreItem.controlType===5?'':tmpPreItem.content='';
  290. this.symptomResult = tmpPreItem;
  291. const timer = setTimeout(()=>{
  292. this.type = tmpPreItem.controlType;
  293. clearTimeout(timer);
  294. });
  295. this.canceledQa=this.num; //记录被修改过的题目,只可修改一次
  296. },
  297. formatQaArr(obj){
  298. let arr = [],nobj=JSON.parse(JSON.stringify(obj));
  299. for(let i in nobj){
  300. arr.push(Object.assign({},nobj[i]));
  301. }
  302. return arr;
  303. },
  304. addExtQa(obj,i,selectedN){
  305. const mName=this.moduleMap[this.activeTab];
  306. let moduleName = mName+'QasList';
  307. const dataArr = this.formatQaArr(obj);
  308. this[moduleName][i].selectedNum=selectedN; //选中项关联子问题的个数
  309. this[moduleName].splice(i+1,0,...dataArr);
  310. this.$store.commit("setModuleDatas",{data:this[moduleName],mName});
  311. },
  312. delExtQa(obj,i){//修改时已关联的问题先删除
  313. const mName=this.moduleMap[this.activeTab];
  314. let moduleName = mName+'QasList';
  315. let n = obj.selectedNum;
  316. if(n){
  317. this[moduleName].splice(i+1,n);
  318. }
  319. this.$store.commit("setModuleDatas",{data:this[moduleName],mName});
  320. },
  321. updataResultSingle(result,contentResult,num){
  322. this.num = num;
  323. this.type = -1;
  324. const mkeys =this.moduleKeys;
  325. let moduleName = this.moduleMap[this.activeTab]+'QasList';
  326. let tmpArr = JSON.parse(JSON.stringify(this[moduleName]));
  327. tmpArr[num-1].content = contentResult.valp;
  328. //选没有可上传报告,则上传控件不显示
  329. const noUpload = this.symptomResult.id===999999&&contentResult.valp.indexOf("没有")!==-1;
  330. if(noUpload&&this.deledUpload.length===0){ //是否可上传没有被修改过
  331. this.deledUpload=tmpArr.splice(num,1);
  332. this.$store.commit("cancelImgs");
  333. }else if(this.symptomResult.id===999999&&!noUpload&&this.deledUpload.length>0){
  334. tmpArr.splice(num,0,...this.deledUpload);
  335. this.$store.commit("cancelImgs");
  336. }
  337. this[moduleName] = tmpArr;
  338. //上传的图片及是否有可上传***答案不显示在预览所以不记录到state.diagnose.text中
  339. if(this.symptomResult.id!==999999&&this.symptomResult.controlType!=4){
  340. this.$store.commit('setText', { type: this.activeTab,
  341. text: contentResult.val,
  342. textP: contentResult.valp,
  343. idx:contentResult.idx,
  344. flag:contentResult.flag,
  345. isEdit:this.num-1==this.canceledQa
  346. });
  347. }
  348. //console.log(this.$store.state); //最后一题答完
  349. if(+num===this[moduleName].length||(noUpload&&+num===this[moduleName].length+1)){
  350. if(this.activeTab===mkeys[mkeys.length-1]){ //最后一个模块时显示预览按钮
  351. this.showPreview=true;
  352. return;
  353. }
  354. const state = this.$store.state;
  355. const tabIndx = this.moduleKeys.findIndex((i)=>i==this.activeTab);
  356. this.activeTab=this.moduleKeys[+tabIndx+1]; //进入下一个阶段问题
  357. moduleName = this.moduleMap[this.activeTab]+'QasList';
  358. const mDataName = this.moduleMap[this.activeTab];
  359. this[moduleName] = JSON.parse(JSON.stringify(state[mDataName].datas));
  360. let tmpArrDetail1 = JSON.parse(JSON.stringify(this[moduleName][0]));
  361. this[moduleName][0] = tmpArrDetail1;
  362. let timer = setTimeout(() => {
  363. this.num = 0;
  364. const tmpNowItem = this[moduleName][this.num];
  365. this.type = tmpNowItem.controlType;
  366. tmpNowItem.show = true;
  367. //console.log(tmpNowItem)
  368. this.symptomResult = tmpNowItem;
  369. });
  370. this.$nextTick(()=>{
  371. this.scroll.refresh()
  372. this.scroll.scrollTo(0, this.scroll.maxScrollY,500)
  373. })
  374. return;
  375. }
  376. let tmpArrDetailResult = JSON.parse(JSON.stringify(this[moduleName][num]));
  377. let tmpArrDetail = JSON.parse(JSON.stringify(tmpArr[num]));
  378. let timer = setTimeout(() => {
  379. this.type = tmpArrDetail.controlType;
  380. tmpArrDetail.show = true;
  381. tmpArr[num] = tmpArrDetail;
  382. this.symptomResult = tmpArrDetailResult;
  383. clearTimeout(timer)
  384. }, this.time);
  385. this.$nextTick(()=>{
  386. this.scroll.refresh()
  387. this.scroll.scrollTo(0, this.scroll.maxScrollY,500)
  388. })
  389. },
  390. showWarn(text){
  391. this.waring=text;
  392. this.wrong=true;
  393. },
  394. closeTip(){
  395. this.wrong=false;
  396. },
  397. cancelSymptom(){ //修改(即删除)已选主症
  398. this.symptomQasList = [];//console.log(this.$store.state)
  399. this.selectedSymptom=[];
  400. this.showUsual=true;
  401. this.canceledSym = true;
  402. this.type=-1;
  403. this.$store.commit("clearDeledBuried"); //症状修改删除原埋点暂存数据
  404. this.$store.commit('setChoose', { choose: [], type: moduleCP['symp'] });
  405. },
  406. selectUsual(sym){
  407. this.getSymptomQas(sym.questionId); //获取症状下的关联问题
  408. sym.idx=1; //标记主诉
  409. this.$store.commit('setChoose', { choose: [sym], type: moduleCP['symp'] });
  410. this.selectedSymptom = sym; //设置搜索选中症状
  411. this.showUsual=false; //关闭症状选择进入下一个问题
  412. this.pdbm = '10.2rem'
  413. setTimeout(() => {
  414. this.scrollDown()
  415. }, 0);
  416. },
  417. getSymptomQas(id){
  418. const param = {
  419. age:this.userInfo.patientAge,
  420. id:id,
  421. sexType:this.userInfo.sexType
  422. };
  423. api.getById(param).then((res) => {
  424. const result = res.data;
  425. if(result.code==='0'){
  426. const data = result.data;
  427. if(!data){
  428. return ;
  429. }
  430. let qaLis = data.questionMapping;
  431. if(qaLis.length===0){
  432. this.wrong = true;
  433. this.waring ='该症状数据未维护';
  434. return ;
  435. }
  436. //qaLis.length=2; //开发测试代码,要删除
  437. qaLis[0].show=true; //第一题自动显示
  438. this.type = qaLis[0].controlType;
  439. this.symptomResult = qaLis[0];
  440. this.$store.commit('setSymptomDatas',qaLis);
  441. this.symptomQasList = this.$store.state.symptom.origin;
  442. }else{
  443. }
  444. });
  445. },
  446. scrollDown(){
  447. this.scroll.scrollTo(0, this.scroll.maxScrollY)
  448. },
  449. },
  450. components:{
  451. Radio,
  452. Select,
  453. Dialog,
  454. Picker,
  455. Label,
  456. ComTextArea,
  457. /*Input,*/
  458. PickTime,
  459. UploadImg,
  460. PushSymptom,
  461. ConfirmBox,
  462. UsualSymptom,
  463. MultSelect,
  464. TipWarning,
  465. Head
  466. }
  467. }
  468. </script>
  469. <style lang="less" scoped>
  470. @import "../less/base.less";
  471. .wrapper {
  472. height: 100%;
  473. width: 100%;
  474. position: fixed;
  475. box-sizing: border-box;
  476. overflow: hidden;
  477. top: 0.86rem;
  478. }
  479. .scrollPart {
  480. // padding-bottom: 5rem;
  481. // padding-top: 1.44rem;
  482. // box-sizing: border-box;
  483. }
  484. .progress-bar {
  485. height: .8rem;
  486. line-height: 0.44rem;
  487. background: #fff;
  488. color: #aaa;
  489. /*margin-bottom:.4rem;*/
  490. .title{
  491. height: 100%;
  492. }
  493. span{
  494. display: inline-block;
  495. font-size: .26rem;
  496. color: #aaa;
  497. text-align: center;
  498. &:not(:last-child):after{
  499. content: ">";
  500. float: right;
  501. color: #aaa;
  502. }
  503. }
  504. .active{
  505. font-size: #font[dialog];
  506. color: #colors[theme];
  507. font-weight: 500;
  508. }
  509. .progress{
  510. height:0.06rem;
  511. background:#F5F5F5;
  512. p{
  513. width:.1px;
  514. height: 100%;
  515. background: #colors[theme];
  516. }
  517. }
  518. }
  519. .right {
  520. padding-top: .2rem;
  521. margin-bottom: .12rem;
  522. padding-right: .24rem;
  523. .content {
  524. max-width: 5rem;
  525. background-color: #colors[theme];
  526. border-radius: .24rem 0 .24rem .24rem;
  527. margin-top: .3rem;
  528. font-size: #font[dialog];
  529. padding: .24rem;
  530. display: inline-block;
  531. p {
  532. color: #fff;
  533. }
  534. }
  535. img {
  536. width: 0.8rem;
  537. height: 0.8rem;
  538. margin-left: .24rem;
  539. }
  540. }
  541. .left {
  542. margin-bottom: .2rem;
  543. padding-top: .12rem;
  544. padding-left: .24rem;
  545. .content {
  546. max-width: 5rem;
  547. background-color: #colors[bgques];
  548. border-radius: 0 .24rem .24rem .24rem;
  549. margin-top: .3rem;
  550. font-size: #font[dialog];
  551. padding: .24rem;
  552. display: inline-block;
  553. }
  554. img {
  555. width: 0.8rem;
  556. height: 0.8rem;
  557. margin-right: .24rem;
  558. }
  559. }
  560. .edit{
  561. color: #colors[theme];
  562. font-style: normal;
  563. font-size: #font[dialog];
  564. float: right;
  565. display: inline-block;
  566. margin-top: .56rem;
  567. margin-right: .24rem;
  568. }
  569. .submit{
  570. position: fixed;
  571. bottom: 0;
  572. width: 100%;
  573. a{
  574. display: inline-block;
  575. width: 100%;
  576. height: 0.88rem;
  577. font-size: #font[dialog];
  578. background-color: #colors[btn];
  579. line-height: 0.88rem;
  580. margin-top: 0.8rem;
  581. text-align: center;
  582. color: #fff;
  583. }
  584. }
  585. </style>