propertyEditor.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712
  1. <template>
  2. <div class="propertyEditor">
  3. <ul class="detailUl">
  4. <li class="detailLi">
  5. <span class="liName">
  6. <span style="color: red;margin-right: 5rpx">*</span>
  7. 父级
  8. </span>
  9. <div class="inputBox" @tap="showPop('父级')">
  10. <input placeholder="园区、楼盘、楼栋数" disabled class="myIpt" v-model="buildFa">
  11. <van-icon name="arrow-down" />
  12. </div>
  13. </li>
  14. <li class="detailLi">
  15. <span class="liName">
  16. <span style="color: red;margin-right: 5rpx">*</span>
  17. 区域
  18. </span>
  19. <div class="inputBox" @tap="showArea('区域')">
  20. <input placeholder="请选择" disabled class="myIpt" v-model="postData.region">
  21. <van-icon name="arrow-down" />
  22. </div>
  23. </li>
  24. <li class="detailLi">
  25. <span class="liName">
  26. <span style="color: red;margin-right: 5rpx">*</span>
  27. 楼层
  28. </span>
  29. <div class="inputBox" @tap="showArea('楼层')">
  30. <input placeholder="请选择" disabled class="myIpt" v-model="postData.floor">
  31. <van-icon name="arrow-down" />
  32. </div>
  33. </li>
  34. <li class="detailLi">
  35. <span class="liName">
  36. <span style="color: red;margin-right: 5rpx">*</span>
  37. 出租单元名称
  38. </span>
  39. <input placeholder="请填写" class="myIpt" style="padding-right: 30rpx" v-model="postData.roomNo">
  40. </li>
  41. <li class="detailLi">
  42. <span class="liName">
  43. 平面图号
  44. </span>
  45. <input placeholder="请填写" class="myIpt" style="padding-right: 30rpx" v-model="postData.imgNo">
  46. </li>
  47. <li class="detailLi">
  48. <span class="liName">
  49. <span style="color: red;margin-right: 5rpx">*</span>
  50. 面积(㎡)
  51. </span>
  52. <input placeholder="请填写" class="myIpt" v-model="postData.size" style="padding-right: 30rpx">
  53. </li>
  54. <li class="detailLi">
  55. <span class="liName">
  56. <span style="color: red;margin-right: 5rpx">*</span>
  57. 用途
  58. </span>
  59. <div class="inputBox" @tap="showArea('用途')">
  60. <input placeholder="请选择" disabled class="myIpt" v-model="postData.roomUseLabel">
  61. <van-icon name="arrow-down" />
  62. </div>
  63. </li>
  64. <li class="detailLi">
  65. <span class="liName">
  66. 物业性质
  67. </span>
  68. <div class="inputBox" @tap="showArea('物业性质')">
  69. <input placeholder="请选择" disabled class="myIpt" v-model="postData.propertyNatureLabel">
  70. <van-icon name="arrow-down" />
  71. </div>
  72. </li>
  73. <li class="detailLi">
  74. <span class="liName">
  75. <span style="color: red;margin-right: 5rpx">*</span>
  76. 朝向
  77. </span>
  78. <div class="inputBox" @tap="showArea('朝向')">
  79. <input placeholder="请选择" disabled class="myIpt" v-model="postData.direction">
  80. <van-icon name="arrow-down" />
  81. </div>
  82. </li>
  83. <li class="detailLi">
  84. <span class="liName">
  85. <span style="color: red;margin-right: 5rpx">*</span>
  86. 装修情况
  87. </span>
  88. <div class="inputBox" @tap="showArea('装修情况')">
  89. <input placeholder="请选择" disabled class="myIpt" v-model="postData.decorationSituation">
  90. <van-icon name="arrow-down" />
  91. </div>
  92. </li>
  93. <li class="detailLi">
  94. <span class="liName">
  95. 层高
  96. </span>
  97. <input placeholder="请填写" class="myIpt" style="padding-right: 30rpx" v-model="postData.floorHeight">
  98. </li>
  99. <li class="detailLi2" >
  100. <div class="titleBox" >
  101. <span class="liName">承重情况</span>
  102. </div>
  103. <van-field
  104. autosize
  105. :value="postData.bearing"
  106. type="textarea"
  107. placeholder="请输入"
  108. class="myField"
  109. maxlength="1000"
  110. show-word-limit
  111. @change="changeBearing"
  112. />
  113. </li>
  114. <li class="detailLi2" >
  115. <div class="titleBox" >
  116. <span class="liName">用电说明</span>
  117. </div>
  118. <van-field
  119. :value="postData.electricity"
  120. autosize
  121. type="textarea"
  122. placeholder="请输入"
  123. class="myField"
  124. maxlength="1000"
  125. show-word-limit
  126. @change="changeElectricity"
  127. />
  128. </li>
  129. <li class="detailLi2" >
  130. <div class="titleBox" >
  131. <span style="color: red;margin-right: 5rpx">*</span>
  132. <span class="liName">出租指导价(元/㎡/月)</span>
  133. </div>
  134. <van-field
  135. :value="postData.guidePrice"
  136. autosize
  137. type="textarea"
  138. placeholder="请输入"
  139. class="myField"
  140. @change="changeGuidePrice"
  141. />
  142. </li>
  143. <li class="detailLi2" >
  144. <div class="titleBox" >
  145. <span class="liName">备注</span>
  146. </div>
  147. <van-field
  148. :value="postData.remark"
  149. @change="changeRemark"
  150. autosize
  151. type="textarea"
  152. placeholder="请输入"
  153. class="myField"
  154. maxlength="1000"
  155. show-word-limit
  156. />
  157. </li>
  158. <li class="detailLi2" >
  159. <div class="titleBox" style="margin-bottom: 24rpx">
  160. <span class="liName">
  161. 房型图
  162. <span style="color: #B3B3B3;font-size: 28rpx">(只能上传jpg/png格式,限制上传9张)</span>
  163. </span>
  164. </div>
  165. <van-uploader
  166. :max-count="9"
  167. @delete="deleteRYXXZP"
  168. :file-list="fileList"
  169. @after-read="uploadRYXXZP"
  170. :show-upload="true"
  171. />
  172. </li>
  173. <li class="detailLi2" >
  174. <div class="titleBox" style="margin-bottom: 24rpx">
  175. <span class="liName">
  176. 室内外环境
  177. <span style="color: #B3B3B3;font-size: 28rpx">(只能上传jpg/png格式,限制上传6张)</span>
  178. </span>
  179. </div>
  180. <van-uploader
  181. :max-count="6"
  182. @delete="deleteRYXXZP2"
  183. :file-list="fileList2"
  184. @after-read="uploadRYXXZP2"
  185. :show-upload="true"
  186. />
  187. </li>
  188. <li class="detailLi2" style="position:relative;">
  189. <div class="titleBox" >
  190. <span class="liName">出租位置</span>
  191. </div>
  192. <van-field
  193. :value="postData.address"
  194. @change="changeAddress"
  195. autosize
  196. type="textarea"
  197. placeholder="请选择地址"
  198. class="myField"
  199. style="padding-right: 120rpx;box-sizing: border-box"
  200. />
  201. <div class="locationBox" @tap="showMap">
  202. <van-icon name="location" />
  203. 地图
  204. </div>
  205. </li>
  206. <li class="detailLi">
  207. <span class="liName">
  208. 当前可用状态
  209. </span>
  210. <div class="inputBox" @tap="showArea('可用状态')">
  211. <input placeholder="请选择" disabled class="myIpt" v-model="postData.enableLabel">
  212. <van-icon name="arrow-down" />
  213. </div>
  214. </li>
  215. <li class="detailLi" style="border-bottom: none">
  216. <span class="liName">
  217. 租赁状态
  218. </span>
  219. <div class="inputBox" @tap="showArea('租赁状态')">
  220. <input placeholder="请选择" disabled class="myIpt" v-model="postData.stateLabel">
  221. <van-icon name="arrow-down" />
  222. </div>
  223. </li>
  224. </ul>
  225. <button class="commitBtn" @tap="commit">保存</button>
  226. <van-popup
  227. :show="showTree"
  228. round position="bottom"
  229. custom-style="height:50%;"
  230. >
  231. <van-cascader
  232. :value="cascaderValue"
  233. title="请选择所在地区"
  234. :options="options"
  235. @close="showTree = false"
  236. @finish="onFinish"
  237. :field-names="fieldNames"
  238. />
  239. </van-popup>
  240. <van-popup
  241. :show="show"
  242. position="bottom"
  243. custom-style="height: 50%;"
  244. >
  245. <van-picker v-show="popType==='区域'" :columns="areaList" show-toolbar @cancel="show=false" @confirm="onConfirm" value-key="label"/>
  246. <van-picker v-show="popType==='楼层'" :columns="floorList" show-toolbar @cancel="show=false" @confirm="onConfirm" value-key="label"/>
  247. <van-picker v-show="popType==='用途'" :columns="usegeList" show-toolbar @cancel="show=false" @confirm="onConfirm" value-key="label"/>
  248. <van-picker v-show="popType==='物业性质'" :columns="natureList" show-toolbar @cancel="show=false" @confirm="onConfirm" value-key="label"/>
  249. <van-picker v-show="popType==='朝向'" :columns="cxList" show-toolbar @cancel="show=false" @confirm="onConfirm" value-key="label"/>
  250. <van-picker v-show="popType==='装修情况'" :columns="situationList" show-toolbar @cancel="show=false" @confirm="onConfirm" value-key="label"/>
  251. <van-picker v-show="popType==='可用状态'" :columns="enableList" show-toolbar @cancel="show=false" @confirm="onConfirm" value-key="label"/>
  252. <van-picker v-show="popType==='租赁状态'" :columns="statusList" show-toolbar @cancel="show=false" @confirm="onConfirm" value-key="label"/>
  253. </van-popup>
  254. </div>
  255. </template>
  256. <script>
  257. import {
  258. getTreeData2,
  259. parkRoomGetById,
  260. getByCodes,
  261. parkRoomEdit
  262. } from "@/js_sdk/http";
  263. export default {
  264. name: "propertyEditor",
  265. data(){
  266. return{
  267. dic_key: [
  268. "MNP_BUILDING_LCQY",
  269. "MNP_BUILDING_LC",
  270. "HOUSE_USAGE",
  271. "PROPERTY_NATURE",
  272. "MNP_BUILDING_CX",
  273. "DECORATION_SITUATION",
  274. "HOUSE_ENABLE",
  275. "HOUSE_STATUS"
  276. ],
  277. fileList: [],
  278. fileList2: [],
  279. buildFa:'',
  280. show:false,
  281. showTree:false,
  282. cascaderValue: null,
  283. fieldNames: {
  284. text: 'label',
  285. value: 'value',
  286. children: 'children',
  287. },
  288. options:[
  289. ],
  290. areaList:[],
  291. floorList:[],
  292. usegeList:[],
  293. natureList:[],
  294. enableList:[],
  295. cxList:[],
  296. situationList:[],
  297. statusList:[],
  298. popType:'',
  299. postData:{
  300. groupName:'',
  301. floorDiscName: '',
  302. buildName: '',
  303. roomNo: '',
  304. region: '',
  305. size: '',
  306. imgNo: '',
  307. floor:'',
  308. roomUse:'',
  309. roomUseLabel:'',
  310. propertyNature:'',
  311. direction:'',
  312. decorationSituation:'',
  313. floorHeight:'',
  314. bearing:'',
  315. electricity:'',
  316. guidePrice:'',
  317. remark:'',
  318. environmentPicture:'',
  319. planPicture:'',
  320. address:'',
  321. }
  322. }
  323. },
  324. onLoad(options){
  325. console.log('id',options.id)
  326. this.getTree()
  327. if (options.id){
  328. this.getByCodes(options.id)
  329. }
  330. },
  331. methods:{
  332. changeBearing(e){
  333. this.postData.bearing = e.detail
  334. },
  335. changeElectricity(e){
  336. this.postData.electricity = e.detail
  337. },
  338. changeGuidePrice(e){
  339. this.postData.guidePrice = e.detail
  340. },
  341. changeRemark(e){
  342. this.postData.remark = e.detail
  343. },
  344. changeAddress(e){
  345. this.postData.address = e.detail
  346. },
  347. showMap(){
  348. const _this = this
  349. uni.chooseLocation({
  350. success: function (res) {
  351. console.log('选择的位置:', res.name);
  352. _this.postData.address = res.name
  353. console.log('纬度:' + res.latitude + ',经度:' + res.longitude);
  354. _this.postData.latitude = res.latitude
  355. _this.postData.longitude = res.longitude
  356. _this.$forceUpdate();
  357. // 其他业务逻辑
  358. },
  359. fail: function (error) {
  360. console.error('Choose location failed: ' + JSON.stringify(error));
  361. },
  362. complete: function () {
  363. console.log('chooseLocation operation is complete');
  364. }
  365. });
  366. },
  367. getTree(){
  368. getTreeData2().then(res=>{
  369. console.log(res.data)
  370. this.options = res.data
  371. })
  372. },
  373. commit(){
  374. if (this.fileList.length > 0){
  375. let pictureArr = []
  376. this.fileList.forEach(e=>{
  377. pictureArr.push(e.id)
  378. })
  379. this.postData.planPicture = pictureArr.toString()
  380. }
  381. if (this.fileList2.length > 0){
  382. let pictureArr2 = []
  383. this.fileList2.forEach(e=>{
  384. pictureArr2.push(e.id)
  385. })
  386. this.postData.environmentPicture = pictureArr2.toString()
  387. }
  388. if (!this.buildFa){
  389. this.$showToast('请选择父级')
  390. return
  391. }
  392. if (!this.postData.region){
  393. this.$showToast('请选择区域')
  394. return
  395. }
  396. if (!this.postData.floor){
  397. this.$showToast('请选择楼层')
  398. return
  399. }
  400. if (!this.postData.roomNo){
  401. this.$showToast('请输入出租单元名称')
  402. return
  403. }
  404. if (!this.postData.size){
  405. this.$showToast('请输入面积')
  406. return
  407. }
  408. if (!this.postData.roomUseLabel){
  409. this.$showToast('请选择用途')
  410. return
  411. }
  412. if (!this.postData.direction){
  413. this.$showToast('请选择朝向')
  414. return
  415. }
  416. if (!this.postData.decorationSituation){
  417. this.$showToast('请选择装修情况')
  418. return
  419. }
  420. if (!this.postData.guidePrice){
  421. this.$showToast('请填写出租指导价')
  422. return
  423. }
  424. parkRoomEdit(this.postData).then(res=>{
  425. if (res.code == 200){
  426. this.$showToast('保存成功')
  427. }
  428. })
  429. },
  430. async getByCodes(id) {
  431. let data = await getByCodes(JSON.stringify(this.dic_key));
  432. this.dic_SelectList = this.$common.handleDicList(data);
  433. this.areaList = this.dic_SelectList.MNP_BUILDING_LCQY
  434. this.floorList = this.dic_SelectList.MNP_BUILDING_LC
  435. this.usegeList = this.dic_SelectList.HOUSE_USAGE
  436. this.natureList = this.dic_SelectList.PROPERTY_NATURE
  437. this.cxList = this.dic_SelectList.MNP_BUILDING_CX
  438. this.situationList = this.dic_SelectList.DECORATION_SITUATION
  439. this.enableList = this.dic_SelectList.HOUSE_ENABLE
  440. this.statusList = this.dic_SelectList.HOUSE_STATUS
  441. parkRoomGetById(id).then(res=>{
  442. this.postData = res
  443. this.buildFa = res.groupName + '/' + res.floorDiscName+'/' + res.buildName
  444. this.dataCheck(res)
  445. })
  446. },
  447. showPop(e){
  448. this.showTree = true
  449. },
  450. showArea(e){
  451. this.popType = e
  452. this.show = true
  453. },
  454. onFinish(e){
  455. this.postData.groupName = e.detail.selectedOptions[0].label
  456. this.postData.floorDiscName = e.detail.selectedOptions[1].label
  457. this.postData.buildName = e.detail.selectedOptions[2].label
  458. console.log(e)
  459. const fieldValue = e.detail.selectedOptions
  460. .map((option) => option.label)
  461. .join('/');
  462. this.buildFa = fieldValue
  463. this.showTree = false
  464. },
  465. onConfirm(e){
  466. console.log(e)
  467. switch (this.popType) {
  468. case "区域":
  469. this.postData.region = e.detail.value.label
  470. break;
  471. case "楼层":
  472. this.postData.floor = e.detail.value.label
  473. break;
  474. case "用途":
  475. this.postData.roomUse = e.detail.value.value
  476. this.postData.roomUseLabel = e.detail.value.label
  477. break;
  478. case "物业性质":
  479. this.postData.propertyNature = e.detail.value.value
  480. this.postData.propertyNatureLabel = e.detail.value.label
  481. break;
  482. case "朝向":
  483. this.postData.direction = e.detail.value.label
  484. break;
  485. case "装修情况":
  486. this.postData.decorationSituation = e.detail.value.label
  487. break;
  488. case "可用状态":
  489. this.postData.isEnable = e.detail.value.value
  490. this.postData.enableLabel = e.detail.value.label
  491. break;
  492. case "租赁状态":
  493. this.postData.state = e.detail.value.value
  494. this.postData.stateLabel = e.detail.value.label
  495. break;
  496. }
  497. this.show = false
  498. },
  499. deleteRYXXZP(event) {
  500. this.fileList.splice(event.detail.index, 1);
  501. this.$forceUpdate();
  502. },
  503. deleteRYXXZP2(event) {
  504. this.fileList2.splice(event.detail.index, 1);
  505. this.$forceUpdate();
  506. },
  507. uploadRYXXZP(event) {
  508. console.log(event)
  509. let that = this;
  510. const { file } = event.detail;
  511. uni.uploadFile({
  512. url: that.$constant.BASE_URI + "/wx/fileController/upload",
  513. filePath: file.url,
  514. name: "file",
  515. formData: { user: "test" },
  516. success(res) {
  517. // 上传完成需要更新 fileList
  518. let data = JSON.parse(res.data);
  519. that.fileList.push({
  520. imgUrl: "/FileController/download/" + data.data[0],
  521. id: data.data[0],
  522. url:
  523. that.$constant.BASE_URI +
  524. "/FileController/download/" +
  525. data.data[0],
  526. isImage: true,
  527. });
  528. },
  529. fail(res) {},
  530. });
  531. },
  532. uploadRYXXZP2(event) {
  533. console.log(event)
  534. let that = this;
  535. const { file } = event.detail;
  536. uni.uploadFile({
  537. url: that.$constant.BASE_URI + "/wx/fileController/upload",
  538. filePath: file.url,
  539. name: "file",
  540. formData: { user: "test" },
  541. success(res) {
  542. // 上传完成需要更新 fileList
  543. let data = JSON.parse(res.data);
  544. that.fileList2.push({
  545. imgUrl: "/FileController/download/" + data.data[0],
  546. id: data.data[0],
  547. url:
  548. that.$constant.BASE_URI +
  549. "/FileController/download/" +
  550. data.data[0],
  551. isImage: true,
  552. });
  553. },
  554. fail(res) {},
  555. });
  556. },
  557. dataCheck(res){
  558. this.postData.roomUseLabel = this.usegeList.find(e=>{
  559. return e.value === res.roomUse
  560. }).label
  561. this.postData.propertyNatureLabel = this.natureList.find(e=>{
  562. return e.value === res.propertyNature
  563. }).label
  564. this.postData.enableLabel = this.enableList.find(e=>{
  565. return e.value === res.isEnable
  566. }).label
  567. this.postData.stateLabel = this.statusList.find(e=>{
  568. return e.value === res.state
  569. }).label
  570. const trimmedString = res.environmentPicture.replace(/,$/, '');
  571. const trimmedString2 = res.planPicture.replace(/,$/, '');
  572. let environmentList = trimmedString.split(',')
  573. let planPictureList = trimmedString2.split(',')
  574. environmentList.forEach(id=>{
  575. this.fileList2.push({
  576. imgUrl: "/FileController/download/" + id,
  577. id: id,
  578. url:
  579. this.$constant.BASE_URI +
  580. "/FileController/download/" +
  581. id,
  582. isImage: true,
  583. });
  584. })
  585. planPictureList.forEach(id=>{
  586. this.fileList.push({
  587. imgUrl: "/FileController/download/" + id,
  588. id: id,
  589. url:
  590. this.$constant.BASE_URI +
  591. "/FileController/download/" +
  592. id,
  593. isImage: true,
  594. });
  595. })
  596. },
  597. }
  598. }
  599. </script>
  600. <style lang="scss">
  601. .propertyEditor{
  602. padding-bottom: 150rpx;
  603. .detailUl{
  604. margin-top: 20rpx;
  605. background: white;
  606. padding: 24rpx 32rpx;
  607. .liName{
  608. font-size: 32rpx;
  609. color: rgba(51, 51, 51, 1);
  610. white-space: nowrap;
  611. .callNumber{
  612. color: rgba(24, 23, 42, 1);
  613. font-size: 36rpx;
  614. font-weight: 600;
  615. }
  616. .callName{
  617. color: rgba(102, 102, 102, 1);
  618. font-size: 28rpx;
  619. }
  620. }
  621. .phoneIcon{
  622. width: 64rpx;
  623. height: 64rpx;
  624. }
  625. .detailLi{
  626. display: flex;
  627. justify-content: space-between;
  628. align-items: center;
  629. padding: 32rpx 0;
  630. border-bottom: 2rpx solid #E6E6E6;
  631. .liInfo{
  632. display: inline-block;
  633. text-align: right;
  634. max-width: 428rpx;
  635. color: rgba(102, 102, 102, 1);
  636. font-size: 32rpx;
  637. line-height: 38rpx;
  638. overflow: hidden;
  639. word-wrap: break-word;
  640. }
  641. .inputBox{
  642. display: flex;
  643. align-items: center;
  644. }
  645. .myIpt{
  646. text-align: right;
  647. margin-right: 20rpx;
  648. color: rgba(102, 102, 102, 1);
  649. }
  650. }
  651. .detailLi2{
  652. display: flex;
  653. flex-direction: column;
  654. padding: 32rpx 0;
  655. border-bottom: 2rpx solid #E6E6E6;
  656. .detailLi2BoxTop{
  657. display: flex;
  658. flex-wrap: wrap;
  659. justify-content: space-between;
  660. margin: 12rpx 0;
  661. .checkItem{
  662. width: 128rpx;
  663. height: 64rpx;
  664. font-size: 28rpx;
  665. color: #666666;
  666. display: flex;
  667. align-items: center;
  668. justify-content: center;
  669. background: #F5F7FA;
  670. border-radius: 8rpx;
  671. margin: 12rpx 0;
  672. }
  673. .checked{
  674. background: #0365F9;
  675. color: white;
  676. }
  677. }
  678. .locationBox{
  679. position: absolute;
  680. right: 24rpx;
  681. top: 100rpx;
  682. }
  683. .van-cell {
  684. background: #F5F7FA !important;
  685. border-radius: 8rpx;
  686. font-size: 28rpx;
  687. margin-top: 16rpx;
  688. }
  689. }
  690. }
  691. .commitBtn{
  692. width: 654rpx;
  693. height: 96rpx;
  694. background: rgba(3, 101, 249, 1);
  695. margin: 64rpx 48rpx;
  696. display: flex;
  697. align-items: center;
  698. justify-content: center;
  699. font-size: 36rpx;
  700. color: white;
  701. }
  702. }
  703. </style>