creatingSituations.vue 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768
  1. <template>
  2. <view class="creatingSituations">
  3. <uni-popup ref="popup" type="bottom" :maskClick="true" @change="popupChangehandle">
  4. <tm-radio-group v-if="popupType==1" :list="situationTypeList" :defaultValue='situationPreview.situationType'
  5. :setting="{
  6. value: 'situationType',
  7. name: 'situationTypeName'
  8. }" :openkeys="[0]" @change="situationTypeChanged" />
  9. <tm-radio-group v-if="popupType==2" :list="templateList" :defaultValue='situationPreview.pageTemplateId'
  10. :setting="{
  11. value: 'id',
  12. name: 'name'
  13. }" :openkeys="[0]" @change="templateTypeChanged" />
  14. </uni-popup>
  15. <check-map-detail v-if="showCheckMapDetail"></check-map-detail>
  16. <view v-else class="page-wrap" :style="{paddingBottom: stepActive !== 0 ? '75rpx' : 0}">
  17. <tm-steps class="tm-steps" :options="options" :active="stepActive"></tm-steps>
  18. <scroll-view scroll-y="true" class="component-wrap">
  19. <!-- <component :is="options[active].component"></component> -->
  20. <!-- 当流程下标为0且非职能科室负责人执行计划设置时展示 -->
  21. <theme v-if="stepActive==0&&!isPlanSet"></theme>
  22. <div v-if="theme.type == 'NORMAL'">
  23. <condition v-if="stepActive==1&&theme.id != 0"></condition>
  24. <!-- 个案情境条件 -->
  25. <conditionCard v-if="stepActive==1&&theme.id == 0"></conditionCard>
  26. <checkRent v-if="stepActive==2"></checkRent>
  27. <checkMap v-if="stepActive==3"></checkMap>
  28. <checkPlan v-if="stepActive==4"></checkPlan>
  29. <situationPreview v-if="stepActive==5"></situationPreview>
  30. </div>
  31. <div v-if="isPlanSet">
  32. <!--自查督查计划设置 -->
  33. <condition v-if="stepActive==0"></condition>
  34. <person v-if="stepActive==1"></person>
  35. <checkMap v-if="stepActive==2"></checkMap>
  36. <checkPlan v-if="stepActive==3"></checkPlan>
  37. <taskPreview v-if="stepActive==4"></taskPreview>
  38. </div>
  39. <div v-if="theme.type == 'MULTI'">
  40. <!--创建 自查+督查 -->
  41. <typeList v-if="stepActive==1"></typeList>
  42. <typeList v-if="stepActive==2" :isMultiMode="true"></typeList>
  43. <planPreview v-if="stepActive==3"></planPreview>
  44. </div>
  45. </scroll-view>
  46. <tm-simple-btn-group v-if="stepActive != 0 || isPlanSet" :options="botmBtnGroup" v-on:callback="changeStep">
  47. </tm-simple-btn-group>
  48. </view>
  49. <check-map-add v-if="showCheckMapAdd"></check-map-add>
  50. </view>
  51. </template>
  52. <script>
  53. import {
  54. mapState
  55. } from "vuex";
  56. import theme from "./components/theme.vue";
  57. import condition from "./components/condition.vue";
  58. import checkRent from "./components/checkRent.vue";
  59. import checkMap from "./components/checkMap.vue";
  60. import checkMapDetail from "./components/checkMapDetail.vue";
  61. import checkMapAdd from "./components/checkMapAdd.vue";
  62. import checkPlan from "./components/checkPlan.vue";
  63. import situationPreview from "./components/situationPreview.vue";
  64. import typeList from "./components/type.vue"
  65. import planPreview from "./components/preview.vue"
  66. import taskPreview from "./components/taskPreview.vue"
  67. import person from "./components/person.vue"
  68. import conditionCard from "./components/conditionCard.vue";
  69. import {
  70. themeList,
  71. normalBtnGroup,
  72. btnGroupPlan1,
  73. btnGroupPlan2,
  74. btnGroupSituationPreview,
  75. optionsHandle,
  76. checkDep,
  77. firstStepBtnGroup,
  78. checkGroup,
  79. editCondition,
  80. editCheckRent,
  81. editCheckMap,
  82. editCheckPlan,
  83. checkPlanList,
  84. editSituationPreview
  85. } from "./components/utils.js";
  86. import {
  87. dateHandle
  88. } from "../../utils/dateHandle.js";
  89. export default {
  90. data() {
  91. return {
  92. isPlanSet: false, //自查督查负责人操作计划设置
  93. saveType: 'POST',
  94. editID: '',
  95. }
  96. },
  97. computed: {
  98. ...mapState({
  99. popupType: state => state.creatingSituations.popupType,
  100. showCheckMapDetail: state => state.creatingSituations.showCheckMapDetail,
  101. showCheckMapAdd: state => state.creatingSituations.showCheckMapAdd,
  102. showCheckPlan1: state => state.creatingSituations.showCheckPlan1,
  103. stepActive: state => state.creatingSituations.stepActive,
  104. theme: state => state.creatingSituations.theme,
  105. condition: state => state.creatingSituations.condition,
  106. checkRent: state => state.creatingSituations.checkRent,
  107. checkMap: state => state.creatingSituations.checkMap,
  108. checkPlan: state => state.creatingSituations.checkPlan,
  109. situationPreview: state => state.creatingSituations.situationPreview,
  110. templateList: state => state.creatingSituations.templateList,
  111. situationTypeList: state => state.creatingSituations.situationTypeList,
  112. showPopupSelectorList: state => state.creatingSituations.showPopupSelectorList,
  113. zhinengDepartments:state=>state.creatingSituations.zhinengDepartments,
  114. typeList:state=>state.creatingSituations.typeList,
  115. checkPerson:state=>state.creatingSituations.checkPerson,
  116. conditionCard: state => state.creatingSituations.conditionCard
  117. }),
  118. situationTypeName() {
  119. const temp = this.situationTypeList.filter(item => item.situationType == this.situationPreview
  120. .situationType);
  121. return temp[0].situationTypeName;
  122. },
  123. botmBtnGroup: function() {
  124. if(this.stepActive === 0){
  125. return firstStepBtnGroup;
  126. }
  127. if (this.stepActive === 4 && this.theme.id != 2) {
  128. if (this.showCheckPlan1) {
  129. return btnGroupPlan1;
  130. } else {
  131. return btnGroupPlan2;
  132. }
  133. } else if (this.stepActive === 5 || (this.stepActive === 3 && this.theme.type == 'MULTI')||(this.stepActive === 4&&this.theme.id == 2)) {
  134. //普通情境和自查督查
  135. return btnGroupSituationPreview;
  136. } else {
  137. return normalBtnGroup;
  138. }
  139. },
  140. dataIsNull() {
  141. let data = this.checkMap.list.filter((item) => item.status !== 'disable');
  142. return data.length === 0;
  143. },
  144. themeType() {
  145. //planSet 职能科室负责人操作计划设置
  146. return this.theme.type?this.theme.type:'planSet'
  147. },
  148. options() {
  149. if (this.theme.type == 'MULTI'&&!this.isPlanSet) {
  150. //管理员创建自查督查
  151. return [{
  152. id: 'theme',
  153. title: '主题',
  154. component: theme
  155. },
  156. {
  157. id: 'typeList',
  158. title: '类型',
  159. component: typeList,
  160. hint: '追踪条件'
  161. },
  162. {
  163. id: 'departmentList',
  164. title: '职能科室',
  165. component: typeList,
  166. hint: '查核组'
  167. },
  168. {
  169. id: 'checkRent',
  170. title: '预览',
  171. component: checkRent,
  172. hint: '查核组'
  173. },
  174. ]
  175. }
  176. if (this.isPlanSet) {
  177. //自查督查负责人操作计划设置流程集合
  178. return [
  179. {
  180. id: 'condition',
  181. title: '条件',
  182. component: condition,
  183. hint: '追踪条件'
  184. },
  185. {
  186. id: 'person',
  187. title: '人员',
  188. component: person,
  189. hint: '人员'
  190. },
  191. {
  192. id: 'checkMap',
  193. title: '地图',
  194. component: checkMap,
  195. hint: '地图'
  196. },
  197. {
  198. id: 'checkPlan',
  199. title: '计划',
  200. component: checkPlan,
  201. hint: '制定计划'
  202. },
  203. {
  204. id: 'situationPreview',
  205. title: '预览',
  206. component: situationPreview
  207. },
  208. ]
  209. }
  210. //普通情境流程
  211. return [{
  212. id: 'theme',
  213. title: '主题',
  214. component: theme
  215. },
  216. {
  217. id: 'condition',
  218. title: '条件',
  219. component: condition,
  220. hint: '追踪条件'
  221. },
  222. {
  223. id: 'checkRent',
  224. title: '查核组',
  225. component: checkRent,
  226. hint: '查核组'
  227. },
  228. {
  229. id: 'checkMap',
  230. title: '地图',
  231. component: checkMap,
  232. hint: '地图'
  233. },
  234. {
  235. id: 'checkPlan',
  236. title: '计划',
  237. component: checkPlan,
  238. hint: '制定计划'
  239. },
  240. {
  241. id: 'situationPreview',
  242. title: '预览',
  243. component: situationPreview
  244. },
  245. ]
  246. }
  247. },
  248. watch: {
  249. /**
  250. * @param {Boolen} newVal
  251. * @param {Boolen} oldVal
  252. */
  253. showPopupSelectorList: function(newVal, oldVal) {
  254. if (newVal) {
  255. this.$refs.popup.open();
  256. } else {
  257. this.$refs.popup.close();
  258. }
  259. }
  260. },
  261. onLoad: function({
  262. id,
  263. type,
  264. actTarget,
  265. situationId,
  266. themeName, //情境名
  267. systemSituationType, //系统情境类型 0 个案 1 普通 2自查督查
  268. }) {
  269. this.isPlanSet = actTarget == 'planSet';
  270. this.situationId = situationId;
  271. this.saveType = type ? type : 'POST';
  272. if(systemSituationType == 2){
  273. this.myCommit('theme', {
  274. ...this.theme,
  275. id: systemSituationType, title:themeName, des: null,
  276. situationId:situationId,
  277. }); // 设置为自查督查
  278. this.myCommit('checkPerson', {
  279. ...this.checkPerson,
  280. situationId:situationId
  281. }); // 自查督查时,人员获取需要适用情境筛选
  282. }
  283. this.dispatch('getSituationTypes').then(res => {
  284. this.myCommit('situationTypeList', res);
  285. });
  286. if (id) {
  287. this.editID = id;
  288. this.dispatch('detialConfig', {
  289. id
  290. }).then((data) => {
  291. if (data) {
  292. const {
  293. topic
  294. } = data;
  295. let theme = themeList[Number(topic)],
  296. condition = editCondition(data),
  297. editConfig = {};
  298. this.myCommit('theme', theme); // 主题
  299. if (type === 'PUT') { // 编辑
  300. let checkRent = editCheckRent(data),
  301. checkMap = editCheckMap(data),
  302. checkPlan = editCheckPlan(data),
  303. situationPreview = editSituationPreview(data);
  304. this.myCommit('checkPlan', checkPlan); // 查核计划
  305. this.myCommit('situationPreview', situationPreview); // 预览
  306. editConfig = {
  307. theme,
  308. condition,
  309. checkRent,
  310. checkMap,
  311. checkPlan,
  312. situationPreview
  313. };
  314. } else { // 复制创建
  315. this.myCommit('condition', condition); // 条件
  316. editConfig = {
  317. theme,
  318. condition,
  319. };
  320. }
  321. this.myCommit('editConfig', editConfig);
  322. // 回到第一步或者第三步
  323. this.myCommit('stepActive', type === 'PUT' ? 0 : 2);
  324. }
  325. });
  326. }
  327. },
  328. methods: {
  329. situationTypeChanged(type, name) {
  330. // console.log({type,name});
  331. this.$store.commit('creatingSituations/comChangeState', {
  332. key: 'situationPreview',
  333. data: {
  334. ...this.situationPreview,
  335. situationType: type
  336. }
  337. });
  338. },
  339. templateTypeChanged(type, item) {
  340. // console.log({type,item});
  341. this.$store.commit('creatingSituations/comChangeState', {
  342. key: 'situationPreview',
  343. data: {
  344. ...this.situationPreview,
  345. pageTemplateId: type,
  346. templateName: item.name
  347. }
  348. });
  349. },
  350. zichaduchaSave: function() {
  351. let data = {
  352. name:this.situationPreview.sitName,
  353. checkPlanStartDate:'',
  354. checkPlanEndDate:'',
  355. functionCodes:this.zhinengDepartments.checkedItems.map(v=>v.id),
  356. filterCodes:this.typeList.checkedItems.map(v=>v.id),
  357. permission:1
  358. }
  359. this.dispatch(`addDuchazichaSituation`, data).then((data) => {
  360. if (data) {
  361. // 保存成功先清空数据
  362. this.clearData();
  363. uni.navigateTo({
  364. url: '/pages/situationsCenter/situationsCenter'
  365. });
  366. }
  367. });
  368. },
  369. zichaduchaPlanSave(){
  370. //自查督查计划保存
  371. const param = {
  372. name:this.theme.title,
  373. topic: this.theme.id,
  374. id:this.situationId,
  375. num: this.checkPlan.checkList.length,
  376. checkPlanEndDate:`${this.checkPlan.dateObj.end} 23:59`,
  377. checkPlanStartDate:`${this.checkPlan.dateObj.start} 00:00`,
  378. day:this.checkPlan.dateObj.dayNum,
  379. employeeList:this.checkPerson.checkedItems,
  380. filterCondition:this.condition.checkedItems,
  381. frequency:this.checkPlan.checkedItem.value,
  382. planList: [...this.checkPlan.checkList].map((date, i) => {
  383. return {
  384. startDate:`${date} 00:00`,
  385. endDate: `${dateHandle.getNewData(date, this.checkPlan.checkedItem.model - 1)} 23:59`
  386. }
  387. }),
  388. filterDepartments:this.checkMap.list.map(item=>item.departmentId)
  389. }
  390. this.dispatch(`saveZichaduchaPlan`, param).then((data) => {
  391. if (data) {
  392. // 保存成功先清空数据
  393. this.clearData();
  394. uni.navigateTo({
  395. url: '/pages/situationsCenter/situationsCenter'
  396. });
  397. }
  398. });
  399. },
  400. save: function() {
  401. const {
  402. sitName,
  403. preDay,
  404. preH,
  405. startDay,
  406. description,
  407. situationType,
  408. showNotApplicable,
  409. showCountNum,
  410. pageTemplateId
  411. } = this.situationPreview;
  412. const {
  413. dateObj,
  414. checkedItem,
  415. checkList
  416. } = this.checkPlan;
  417. const {
  418. depType,
  419. options,
  420. conditionIds
  421. } = this.condition;
  422. if (!sitName || sitName.length < 2) {
  423. uni.showModal({
  424. title: '温馨提示',
  425. content: `情境名称不能为空也不能少于2个字!`,
  426. showCancel: false
  427. });
  428. return;
  429. }
  430. if (preDay > 31) {
  431. uni.showModal({
  432. title: '温馨提示',
  433. content: `提醒天数不得大于31天!`,
  434. showCancel: false
  435. });
  436. return;
  437. }
  438. if (preH > 24) {
  439. uni.showModal({
  440. title: '温馨提示',
  441. content: `提醒天数不得大于24小时!`,
  442. showCancel: false
  443. });
  444. return;
  445. }
  446. if (preDay != null && !/^\d+$/.test(preDay)) {
  447. uni.showModal({
  448. title: '温馨提示',
  449. content: `提醒天数不能是小数!`,
  450. showCancel: false
  451. });
  452. return;
  453. }
  454. if (preH != null && !/^\d+$/.test(preH)) {
  455. uni.showModal({
  456. title: '温馨提示',
  457. content: `提醒小时不能是小数!`,
  458. showCancel: false
  459. });
  460. return;
  461. }
  462. let data = {
  463. description,
  464. name: sitName,
  465. topic: this.theme.id,
  466. checkPlanStartDate: dateObj.start,
  467. checkPlanEndDate: dateObj.end,
  468. remindPlanDay: preDay,
  469. remindPlanHour: preH,
  470. remindCheckDay: startDay,
  471. depType,
  472. showNotApplicable: showNotApplicable,
  473. subtotal: showCountNum,
  474. situationType: situationType,
  475. pageTemplateId: pageTemplateId,
  476. filterCondition:optionsHandle(options, conditionIds),
  477. checkGroup: checkGroup(this.checkRent),
  478. checkDep: checkDep(this.checkMap.list),
  479. planConfig: {
  480. frequency: checkedItem.value,
  481. day: checkedItem.model,
  482. startDate: dateObj.start,
  483. endDate: dateObj.end,
  484. num: checkList.length
  485. },
  486. planList: [...checkList].map((date, i) => {
  487. return {
  488. startDate: date,
  489. endDate: dateHandle.getNewData(date, checkedItem.model - 1)
  490. }
  491. })
  492. };
  493. if (this.saveType === 'PUT') {
  494. data.id = this.editID;
  495. }
  496. this.dispatch(`save${this.saveType}`, data).then((data) => {
  497. if (data) {
  498. // 保存成功先清空数据
  499. this.clearData();
  500. uni.navigateTo({
  501. url: '/pages/situationsCenter/situationsCenter'
  502. });
  503. }
  504. });
  505. },
  506. changeStep: function(id) {
  507. // console.log({id,'stepActive':this.stepActive,'this.options':this.options});
  508. switch (id) {
  509. case 'goback':
  510. uni.navigateBack({
  511. delta: 1
  512. });
  513. break;
  514. case 'pre': // 上一步
  515. if (this.stepActive > 0){
  516. this.myCommit('needReload', false);
  517. this.myCommit('stepActive', this.stepActive - 1);
  518. }else {
  519. console.log({'this.stepActive':this.stepActive});
  520. }
  521. break;
  522. case 'next': // 下一步
  523. if (this.stepActive < this.options.length)
  524. this.nextHandle(this.stepActive);
  525. break;
  526. case 'checkPlanCreate': // 生成查核计划
  527. if (this.checkPlan.checkList.length === 0 && this.checkPlan.dateObj.dayNum < 1) {
  528. uni.showModal({
  529. title: '错误提示',
  530. content: '查核频次必须大于或等于1!',
  531. showCancel: false
  532. });
  533. } else {
  534. console.log('checkPlanCreate');
  535. this.myCommit('showCheckPlan1', false);
  536. }
  537. break;
  538. case 'checkPlanCallback': // 生成查核计划-返回
  539. this.myCommit('showCheckPlan1', true);
  540. break;
  541. case 'situationPreviewOK': // 完成
  542. if (this.theme.type == 'MULTI') {
  543. //自查督查
  544. this.zichaduchaSave();
  545. break;
  546. }
  547. if (this.theme.id == 2) {
  548. //自查督查
  549. this.zichaduchaPlanSave();
  550. break;
  551. }
  552. this.save();
  553. break;
  554. }
  555. },
  556. /**
  557. * 处理【下一步】逻辑
  558. */
  559. nextHandle: function(stepActive) {
  560. console.log({stepActive,'themeType':this.themeType})
  561. let flage = false;
  562. if (this.themeType == 'NORMAL') {
  563. //非督查+自查
  564. switch (stepActive) {
  565. case 1:
  566. if(this.theme.id == 0){
  567. //创建个案情境
  568. flage = this.errorHandle(this.condition.conditionIds.length >= this.conditionCard.requireds.length, 1);
  569. }else{
  570. flage = this.errorHandle(this.condition.conditionIds.length > 0, 1);
  571. }
  572. break;
  573. case 2:
  574. const {
  575. points
  576. } = this.checkRent.checkedItem;
  577. let condition = this.checkRent.checkedItem.id !== null && points;
  578. flage = this.errorHandle(condition, 2);
  579. break;
  580. case 3:
  581. flage = this.errorHandle(!this.dataIsNull, 3);
  582. break;
  583. case 4:
  584. const {
  585. checkList
  586. } = this.checkPlan;
  587. flage = this.errorHandle(checkList.length > 0, 4);
  588. break;
  589. case 5:
  590. this.dispatch('getSituationTypes').then(res => {
  591. console.log({
  592. res
  593. });
  594. })
  595. break;
  596. default:
  597. flage = true;
  598. break;
  599. }
  600. }
  601. if (this.themeType == 'MULTI') {
  602. //管理员创建 督查+自查
  603. switch (stepActive) {
  604. case 1:
  605. flage = true;
  606. break;
  607. case 2:
  608. flage = true;
  609. break;
  610. case 3:
  611. flage = true;
  612. break;
  613. default:
  614. flage = true;
  615. break;
  616. }
  617. }
  618. if(this.isPlanSet){
  619. //职能科室负责人 督查+自查 计划设置
  620. switch (stepActive) {
  621. case 1:
  622. flage = true;
  623. break;
  624. case 2:
  625. flage = true;
  626. break;
  627. case 3:
  628. flage = true;
  629. break;
  630. default:
  631. flage = true;
  632. break;
  633. }
  634. }
  635. if (flage) {
  636. this.myCommit('needReload', true);
  637. this.myCommit('stepActive', stepActive + 1);
  638. }
  639. },
  640. /**
  641. * 错误处理,满足条件返回true
  642. * @param {Object} condition 条件
  643. * @param {Object} index 当前下标
  644. */
  645. errorHandle: function(condition, index) {
  646. if (condition) {
  647. return true;
  648. } else {
  649. uni.showModal({
  650. title: '温馨提示',
  651. content: index === 3 ? '查核地图不能为空' : `请先选择${this.options[index].hint}!`,
  652. showCancel: false
  653. });
  654. return false;
  655. }
  656. },
  657. myCommit: function(key, data) {
  658. this.$store.commit({
  659. type: 'creatingSituations/comChangeState',
  660. key,
  661. data
  662. });
  663. },
  664. dispatch: function(key, data) {
  665. return this.$store.dispatch({
  666. type: 'creatingSituations/commActions',
  667. key,
  668. data
  669. });
  670. },
  671. clearData: function() {
  672. checkPlanList[5].model = null;
  673. this.$store.commit({
  674. type: 'creatingSituations/setInit'
  675. });
  676. },
  677. popupChangehandle: function(data) {
  678. const {
  679. show
  680. } = data;
  681. this.$store.commit('creatingSituations/comChangeState', {
  682. key: 'showPopupSelectorList',
  683. data: show
  684. });
  685. },
  686. },
  687. destroyed() {
  688. this.clearData();
  689. },
  690. components: {
  691. checkMapDetail,
  692. checkMapAdd,
  693. theme,
  694. condition,
  695. checkRent,
  696. checkMap,
  697. checkPlan,
  698. situationPreview,
  699. typeList,
  700. person,
  701. planPreview,
  702. taskPreview,
  703. conditionCard
  704. }
  705. }
  706. </script>
  707. <style lang="less">
  708. .creatingSituations {
  709. width: 100%;
  710. height: 100%;
  711. background-color: #F5F6FA;
  712. .page-wrap {
  713. padding-bottom: 75rpx;
  714. width: 100%;
  715. height: 100%;
  716. .tm-steps {
  717. height: auto;
  718. }
  719. .component-wrap {
  720. padding-bottom: 87.5rpx;
  721. }
  722. }
  723. }
  724. </style>