index.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774
  1. <template>
  2. <view class="content">
  3. <view class="head">
  4. <text>订单号: {{formData.orderNo}}</text>
  5. </view>
  6. <view class="striping"></view>
  7. <view class="head" @click="telFun">
  8. <text>驾驶员: {{formData.driver1Name == null ? '' : formData.driver1Name}}&nbsp;电话:&nbsp;{{formData.driver1mobile == null ? '' : formData.driver1mobile}}</text>
  9. </view>
  10. <u-collapse>
  11. <!-- <u-collapse-item title="报销费用" name="claim expense"> -->
  12. <view class="box-box">
  13. <view class="box">
  14. <view class="data">
  15. <text class="key">ETC金额</text>
  16. <input class="value" :disabled="disabled" inputmode="decimal" @input="checkUnLoadetc"
  17. v-model="formData.loadetc" />
  18. </view>
  19. <view class="data">
  20. <text class="key">现金过路费</text>
  21. <input class="value" :disabled="disabled" inputmode="decimal" @input="checkUnLoadtoll"
  22. v-model="formData.loadtoll" />
  23. </view>
  24. </view>
  25. <view class="box">
  26. <view class="data">
  27. <text class="key">公司加油(升)</text>
  28. <input class="value" :disabled="disabled" inputmode="decimal" @input="checkUnOilhomeQty"
  29. v-model="formData.oilhomeQty" />
  30. </view>
  31. <view class="data">
  32. <text class="key">加油金额</text>
  33. <input class="value" :disabled="disabled" inputmode="decimal" @input="checkUnOilhomeAmt"
  34. v-model="formData.oilhomeAmt" />
  35. </view>
  36. </view>
  37. <view class="box">
  38. <view class="data-two">
  39. <text class="key">定点加油</text>
  40. <view class="list">
  41. <uni-data-select :localdata="gasStationList" v-model="formData.gasstation1"
  42. :clear="false"></uni-data-select>
  43. </view>
  44. </view>
  45. </view>
  46. <view class="box">
  47. <view class="data">
  48. <text class="key">升数</text>
  49. <input class="value" :disabled="disabled" inputmode="decimal" @input="checkUnOilappoint1Qty"
  50. placeholder="请输入升数" v-model="formData.oilappoint1Qty" />
  51. </view>
  52. <view class="data">
  53. <text class="key">金额</text>
  54. <input class="value" :disabled="disabled" inputmode="decimal" @input="checkUnOilappoint1Amt"
  55. placeholder="请输入金额" v-model="formData.oilappoint1Amt" />
  56. </view>
  57. </view>
  58. <!-- <view class="box-list vertical-layout"> -->
  59. <!-- <view class="iconfont icon-jiayouzhan icon"></view> -->
  60. <!-- <view class="icon" style="color: #3c9cff;">定点加油</view>
  61. <view> -->
  62. <!-- <u-radio-group class="list" :disabled="disabled" v-model="formData.gasstation1"
  63. @change="groupChangeOne">
  64. <u-radio :customStyle="{marginBottom: '20rpx', marginRight: '30rpx'}"
  65. v-for="(item, index) in gasStationList" :key="index" :label="item.cname"
  66. :name="item.cname" @change="radioChangeOne">
  67. </u-radio>
  68. </u-radio-group> -->
  69. <!-- <view class="list">
  70. <uni-data-select :localdata="gasStationList" v-model="formData.gasstation1"
  71. :clear="false"></uni-data-select>
  72. </view> -->
  73. <!-- <view class="quantity-aum vertical-layout">
  74. <view class="aaa vertical-layout">
  75. <text style="color: #3c9cff;">升数</text>
  76. <input class="key" :disabled="disabled" inputmode="decimal"
  77. @input="checkUnOilappoint1Qty" placeholder="请输入升数"
  78. v-model="formData.oilappoint1Qty" />
  79. </view>
  80. <view class="bbb vertical-layout">
  81. <text style="color: #3c9cff;">金额</text>
  82. <input class="value" :disabled="disabled" inputmode="decimal"
  83. @input="checkUnOilappoint1Amt" placeholder="请输入金额"
  84. v-model="formData.oilappoint1Amt" />
  85. </view>
  86. </view>
  87. </view>
  88. </view> -->
  89. <view class="box">
  90. <view class="data-two">
  91. <text class="key">定点加油</text>
  92. <view class="list">
  93. <uni-data-select :localdata="gasStationList" v-model="formData.gasstation2"
  94. :clear="false"></uni-data-select>
  95. </view>
  96. </view>
  97. </view>
  98. <view class="box">
  99. <view class="data">
  100. <text class="key">升数</text>
  101. <input class="value" :disabled="disabled" inputmode="decimal" @input="checkUnOilappoint2Qty"
  102. placeholder="请输入升数" v-model="formData.oilappoint2Qty" />
  103. </view>
  104. <view class="data">
  105. <text class="key">金额</text>
  106. <input class="value" :disabled="disabled" inputmode="decimal" @input="checkUnOilappoint2Amt"
  107. placeholder="请输入金额" v-model="formData.oilappoint2Amt" />
  108. </view>
  109. </view>
  110. <!-- <view class="box-list vertical-layout"> -->
  111. <!-- <view class="iconfont icon-jiayouzhan icon"></view> -->
  112. <!-- <view class="icon" style="color: #3c9cff;">定点加油</view>
  113. <view> -->
  114. <!-- <u-radio-group class="list" :disabled="disabled" v-model="formData.gasstation2"
  115. @change="groupChangeTwo">
  116. <u-radio :customStyle="{marginBottom: '20rpx', marginRight: '30rpx'}"
  117. v-for="(item, index) in gasStationList" :key="index" :label="item.cname"
  118. :name="item.cname" @change="radioChangeTwo">
  119. </u-radio>
  120. </u-radio-group> -->
  121. <!-- <view class="list">
  122. <uni-data-select :localdata="gasStationList" v-model="formData.gasstation2"
  123. :clear="false"></uni-data-select>
  124. </view>
  125. <view class="quantity-aum vertical-layout">
  126. <view class="aaa vertical-layout">
  127. <text style="color: #3c9cff;">升数</text>
  128. <input class="key" :disabled="disabled" inputmode="decimal"
  129. @input="checkUnOilappoint2Qty" placeholder="请输入升数"
  130. v-model="formData.oilappoint2Qty" />
  131. </view>
  132. <view class="bbb vertical-layout">
  133. <text style="color: #3c9cff;">金额</text>
  134. <input class="value" :disabled="disabled" inputmode="decimal"
  135. @input="checkUnOilappoint2Amt" placeholder="请输入金额"
  136. v-model="formData.oilappoint2Amt" />
  137. </view>
  138. </view>
  139. </view>
  140. </view> -->
  141. <view class="box">
  142. <view class="data">
  143. <text class="key">现金加油(升)</text>
  144. <input class="value" :disabled="disabled" inputmode="decimal" @input="checkUnOilcash1Qty"
  145. v-model="formData.oilcash1Qty" />
  146. </view>
  147. <view class="data">
  148. <text class="key">加油金额</text>
  149. <input class="value" :disabled="disabled" inputmode="decimal" @input="checkUnOilcash1Amt"
  150. v-model="formData.oilcash1Amt" />
  151. </view>
  152. </view>
  153. <view class="box">
  154. <view class="data">
  155. <text class="key">油卡加油(升)</text>
  156. <input class="value" :disabled="disabled" inputmode="decimal" @input="checkUnOilcardQty"
  157. v-model="formData.oilcardQty" />
  158. </view>
  159. <view class="data">
  160. <text class="key">加油金额</text>
  161. <input class="value" :disabled="disabled" inputmode="decimal" @input="checkUnOilcardAmt"
  162. v-model="formData.oilcardAmt" />
  163. </view>
  164. </view>
  165. <!-- </u-collapse-item> -->
  166. </view>
  167. <u-collapse-item title="其他费用" name="cost breakdown">
  168. <view class="table">
  169. <view class="data vertical-layout" v-for="(item, index) in itemsList" :key="index">
  170. <view class="name">
  171. <text style="color: #3c9cff;">{{ item.cname }}</text>
  172. </view>
  173. <view class="sum">
  174. <input class="value" :disabled="disabled" inputmode="decimal"
  175. @input="checkUnAmt(item.amt, index)" cursor-spacing="15" :adjust-position="true"
  176. v-model="item.amt" />
  177. </view>
  178. </view>
  179. </view>
  180. </u-collapse-item>
  181. </u-collapse>
  182. <view class="cushion">
  183. </view>
  184. <view class="bottom vertical-layout" v-if="status376 == 2">
  185. <button class="submit" iconColor="#3c9cff" type="primary" @click="submit">提交费用</button>
  186. </view>
  187. <!-- 遮盖罩 -->
  188. <u-loading-page :loading="loading"></u-loading-page>
  189. <!-- 消息提示 -->
  190. <u-toast ref="uToast"></u-toast>
  191. </view>
  192. </template>
  193. <script>
  194. import {
  195. getGasStations,
  196. getItems,
  197. insertLoadFeeItems,
  198. getLoadFeeItems
  199. } from "@/api/reimbursement"
  200. export default {
  201. data() {
  202. return {
  203. aaa: [],
  204. // 遮盖罩
  205. loading: true,
  206. formData: {
  207. itemsVoList: [],
  208. oilappoint1Qty: 1,
  209. oilappoint2Qty: 1
  210. },
  211. // 报销费用list
  212. gasStationList: [],
  213. // 其他费用list
  214. itemsList: [],
  215. // 其他费用被选中
  216. selectedIndexs: [],
  217. radioValueOne: '', // 当前 radio 的值
  218. numOne: 0, //用于区分是否是重复选中
  219. radioValueTwo: '', // 当前 radio 的值
  220. numTwo: 0, //用于区分是否是重复选中
  221. // 输入框禁用
  222. disabled: false,
  223. status376: 0
  224. }
  225. },
  226. onUnload() {
  227. this.formData = {};
  228. this.loading = true;
  229. },
  230. onLoad: function(option) {
  231. this.status376 = option.status376;
  232. // 报销费用下拉选
  233. getGasStations().then(res => {
  234. // this.gasStationList = res.data
  235. for (var item in res.data) {
  236. var data = {
  237. text: res.data[item].cname,
  238. value: res.data[item].cname
  239. };
  240. this.gasStationList.push(data);
  241. }
  242. getItems().then(res => {
  243. this.itemsList = res.data
  244. getLoadFeeItems(option.orderNo).then(res => {
  245. this.formData = res.data;
  246. var costBreakdownList = res.data.loadFeeItemsList;
  247. this.itemsList = costBreakdownList;
  248. if (res.data.billStatus == 6) {
  249. this.disabled = true;
  250. }
  251. // for (var inex in this.itemsList) {
  252. // for (var inexs in costBreakdownList) {
  253. // // 金额赋值
  254. // if (this.itemsList[inex].itemId == costBreakdownList[inexs]
  255. // .itemId) {
  256. // this.itemsList[inex].amt = costBreakdownList[inexs].amt
  257. // }
  258. // }
  259. // }
  260. this.loading = false;
  261. })
  262. })
  263. })
  264. },
  265. methods: {
  266. // 保存内容
  267. submit() {
  268. if (this.formData.billStatus == 6) {
  269. this.$refs.uToast.show({
  270. type: 'warning',
  271. icon: false,
  272. message: "不允许保存!",
  273. iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/warning.png'
  274. })
  275. } else if (this.formData.billStatus == 2) {
  276. this.loading = true;
  277. var list = [];
  278. for (var item in this.itemsList) {
  279. var amt = this.itemsList[item].amt;
  280. if (amt != null) {
  281. var items = this.itemsList[item];
  282. list.push(items);
  283. }
  284. }
  285. this.formData.itemsVoList = list;
  286. insertLoadFeeItems(this.formData).then(res => {
  287. this.loading = false;
  288. if (res.code == 200) {
  289. // 保存成功弹窗提示
  290. this.$refs.uToast.show({
  291. type: 'success',
  292. message: "保存成功!",
  293. iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/success.png'
  294. })
  295. } else {
  296. // 保存失败消息
  297. this.$refs.uToast.show({
  298. icon: false,
  299. message: "保存失败请重试!",
  300. iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/error.png'
  301. })
  302. }
  303. })
  304. }
  305. },
  306. // 点击拨打电话
  307. telFun() {
  308. if (this.formData.driver1mobile != null && this.formData.driver1mobile != '') {
  309. uni.makePhoneCall({
  310. phoneNumber: this.formData.driver1mobile, //电话号码
  311. success: function(e) {
  312. // console.log(e);
  313. },
  314. fail: function(e) {
  315. // console.log(e);
  316. }
  317. })
  318. }
  319. },
  320. // 其他费用表格勾选事件
  321. selectionChange(e) {
  322. this.selectedIndexs = e.detail.index;
  323. },
  324. groupChangeOne(n) {
  325. if (n == this.radioValueOne && this.numOne == 0) {
  326. // 第一次相等即执行以下代码
  327. this.numOne++
  328. } else {
  329. // 第一次后相等即执行以下代码
  330. // 置空 radioGroupValue 即取消选中的值
  331. this.formData.gasstation1 = ''
  332. // 初始化 num
  333. this.numOne = 0
  334. }
  335. },
  336. radioChangeOne(n) {
  337. this.radioValueOne = n
  338. // 切换选项后需要初始化 num
  339. this.numOne = 0
  340. },
  341. groupChangeTwo(n) {
  342. if (n == this.radioValueTwo && this.numTwo == 0) {
  343. // 第一次相等即执行以下代码
  344. this.numTwo++
  345. } else {
  346. // 第一次后相等即执行以下代码
  347. // 置空 radioGroupValue 即取消选中的值
  348. this.formData.gasstation2 = ''
  349. // 初始化 num
  350. this.numTwo = 0
  351. }
  352. },
  353. radioChangeTwo(n) {
  354. this.radioValueTwo = n
  355. // 切换选项后需要初始化 num
  356. this.numTwo = 0
  357. },
  358. checkUnLoadetc(e) {
  359. //正则表达试
  360. e.target.value = (e.target.value.match(/^\d*(\.?\d{0,2})/g)[0]) || null
  361. //重新赋值给input
  362. this.$nextTick(() => {
  363. this.formData.loadetc = e.target.value
  364. })
  365. },
  366. checkUnLoadtoll(e) {
  367. //正则表达试
  368. e.target.value = (e.target.value.match(/^\d*(\.?\d{0,2})/g)[0]) || null
  369. //重新赋值给input
  370. this.$nextTick(() => {
  371. this.formData.loadtoll = e.target.value
  372. })
  373. },
  374. checkUnOilhomeQty(e) {
  375. //正则表达试
  376. e.target.value = (e.target.value.match(/^\d*(\.?\d{0,3})/g)[0]) || null
  377. //重新赋值给input
  378. this.$nextTick(() => {
  379. this.formData.oilhomeQty = e.target.value
  380. })
  381. },
  382. checkUnOilhomeAmt(e) {
  383. //正则表达试
  384. e.target.value = (e.target.value.match(/^\d*(\.?\d{0,2})/g)[0]) || null
  385. //重新赋值给input
  386. this.$nextTick(() => {
  387. this.formData.oilhomeAmt = e.target.value
  388. })
  389. },
  390. checkUnOilappoint1Qty(e) {
  391. //正则表达试
  392. e.target.value = (e.target.value.match(/^\d*(\.?\d{0,3})/g)[0]) || null
  393. //重新赋值给input
  394. this.$nextTick(() => {
  395. this.formData.oilappoint1Qty = e.target.value
  396. })
  397. },
  398. checkUnOilappoint1Amt(e) {
  399. //正则表达试
  400. e.target.value = (e.target.value.match(/^\d*(\.?\d{0,2})/g)[0]) || null
  401. //重新赋值给input
  402. this.$nextTick(() => {
  403. this.formData.oilappoint1Amt = e.target.value
  404. })
  405. },
  406. checkUnOilappoint2Qty(e) {
  407. //正则表达试
  408. e.target.value = (e.target.value.match(/^\d*(\.?\d{0,3})/g)[0]) || null
  409. //重新赋值给input
  410. this.$nextTick(() => {
  411. this.formData.oilappoint2Qty = e.target.value
  412. })
  413. },
  414. checkUnOilappoint2Amt(e) {
  415. //正则表达试
  416. e.target.value = (e.target.value.match(/^\d*(\.?\d{0,2})/g)[0]) || null
  417. //重新赋值给input
  418. this.$nextTick(() => {
  419. this.formData.oilappoint2Amt = e.target.value
  420. })
  421. },
  422. checkUnOilcash1Qty(e) {
  423. //正则表达试
  424. e.target.value = (e.target.value.match(/^\d*(\.?\d{0,3})/g)[0]) || null
  425. //重新赋值给input
  426. this.$nextTick(() => {
  427. this.formData.oilcash1Qty = e.target.value
  428. })
  429. },
  430. checkUnOilcash1Amt(e) {
  431. //正则表达试
  432. e.target.value = (e.target.value.match(/^\d*(\.?\d{0,2})/g)[0]) || null
  433. //重新赋值给input
  434. this.$nextTick(() => {
  435. this.formData.oilcash1Amt = e.target.value
  436. })
  437. },
  438. checkUnOilcardQty(e) {
  439. //正则表达试
  440. e.target.value = (e.target.value.match(/^\d*(\.?\d{0,3})/g)[0]) || null
  441. //重新赋值给input
  442. this.$nextTick(() => {
  443. this.formData.oilcardQty = e.target.value
  444. })
  445. },
  446. checkUnOilcardAmt(e) {
  447. //正则表达试
  448. e.target.value = (e.target.value.match(/^\d*(\.?\d{0,2})/g)[0]) || null
  449. //重新赋值给input
  450. this.$nextTick(() => {
  451. this.formData.oilcardAmt = e.target.value
  452. })
  453. },
  454. checkUnAmt(amt, index) {
  455. var amt = (amt.match(/^\d*(\.?\d{0,2})/g)[0]) || null
  456. //重新赋值给input
  457. this.$nextTick(() => {
  458. this.itemsList[index].amt = amt
  459. })
  460. }
  461. }
  462. }
  463. </script>
  464. <style lang="scss">
  465. // 修改布局方向为纵向布局
  466. .vertical-layout {
  467. display: flex;
  468. }
  469. // 分割线
  470. .striping {
  471. width: 100%;
  472. height: 4rpx;
  473. background-color: #f0f0f0f0;
  474. }
  475. .box-box {
  476. padding-left: 50rpx;
  477. padding-right: 50rpx;
  478. }
  479. .content {
  480. box-sizing: border-box;
  481. background-color: white;
  482. .head {
  483. color: #3c9cff;
  484. // width: 100%;
  485. height: 100rpx;
  486. padding-left: 30rpx;
  487. vertical-align: middle;
  488. display: table-cell;
  489. font-size: 34rpx;
  490. font-weight: 900;
  491. // background-color: red;
  492. }
  493. .box-list {
  494. color: #3b3b3b;
  495. width: 100%;
  496. border-bottom: 2rpx solid #f0f0f0f0;
  497. // padding-left: 50rpx;
  498. font-size: 30rpx;
  499. color: #3b3b3b;
  500. .icon {
  501. // width: 100rpx;
  502. margin-top: 50rpx;
  503. // font-size: 50rpx;
  504. // color: #4888ff;
  505. }
  506. .list {
  507. margin-top: 30rpx;
  508. margin-bottom: 20rpx;
  509. width: 100%;
  510. height: 100%;
  511. // background-color: pink;
  512. height: auto;
  513. display: flex;
  514. flex-wrap: wrap;
  515. font-size: 30rpx;
  516. }
  517. .quantity-aum {
  518. margin-bottom: 25rpx;
  519. .aaa {
  520. width: 50%;
  521. .key {
  522. display: inline-block;
  523. width: 50%;
  524. margin-left: 20rpx;
  525. // margin-right: 80rpx;
  526. border-bottom: 2rpx dotted #000;
  527. }
  528. }
  529. .bbb {
  530. width: 50%;
  531. .value {
  532. width: 50%;
  533. margin-left: 20rpx;
  534. // margin-right: 20rpx;
  535. border-bottom: 2rpx dotted #000;
  536. }
  537. }
  538. }
  539. }
  540. // .box {
  541. // color: #3b3b3b;
  542. // overflow: hidden;
  543. // height: 100rpx;
  544. // border-bottom: 2rpx solid #f0f0f0f0;
  545. // font-size: 30rpx;
  546. // display: flex;
  547. // align-items: center;
  548. // .data {
  549. // width: 50%;
  550. // height: 100%;
  551. // // background-color: pink;
  552. // display: flex;
  553. // align-items: center;
  554. // .key {
  555. // // background-color: indianred;
  556. // width: 80%;
  557. // }
  558. // .value {
  559. // color: #3b3b3b;
  560. // width: 45%;
  561. // margin-right: 20rpx;
  562. // border-bottom: 2rpx dotted #000;
  563. // }
  564. // }
  565. // }
  566. .box {
  567. color: #3b3b3b;
  568. // overflow: hidden;
  569. height: 100rpx;
  570. border-bottom: 2rpx solid #f0f0f0f0;
  571. font-size: 30rpx;
  572. display: flex;
  573. align-items: center;
  574. .data {
  575. width: 50%;
  576. display: flex;
  577. align-items: center;
  578. .key {
  579. width: 55%;
  580. text-align: right;
  581. color: #3c9cff;
  582. }
  583. .value {
  584. margin-left: 20rpx;
  585. width: 45%;
  586. color: #3b3b3b;
  587. border-bottom: 2rpx dotted #000;
  588. }
  589. }
  590. .data-two {
  591. width: 100%;
  592. display: flex;
  593. align-items: center;
  594. .key {
  595. width: 35%;
  596. text-align: right;
  597. color: #3c9cff;
  598. }
  599. .list {
  600. margin-top: 30rpx;
  601. margin-bottom: 20rpx;
  602. width: 100%;
  603. height: 100%;
  604. // background-color: pink;
  605. height: auto;
  606. display: flex;
  607. flex-wrap: wrap;
  608. font-size: 30rpx;
  609. }
  610. }
  611. }
  612. .table {
  613. margin-left: 20rpx;
  614. margin-right: 20rpx;
  615. .data {
  616. font-size: 30rpx;
  617. width: 100%;
  618. height: 100rpx;
  619. border-bottom: 2rpx solid #f0f0f0f0;
  620. align-items: center;
  621. .name {
  622. text-align: right;
  623. width: 20%;
  624. margin-left: 20rpx;
  625. color: #000;
  626. }
  627. .sum {
  628. margin-left: 20rpx;
  629. margin-right: 80rpx;
  630. border-bottom: 2rpx dotted #000;
  631. }
  632. }
  633. }
  634. .primary {
  635. background-color: #0b68ffff;
  636. }
  637. .attention {
  638. padding: 30rpx;
  639. padding-left: 50rpx;
  640. padding-bottom: 40rpx;
  641. }
  642. // 底部提交按钮
  643. .bottom {
  644. display: block;
  645. position: fixed;
  646. bottom: calc(var(--window-bottom));
  647. width: 100%;
  648. height: 100rpx;
  649. .submit {
  650. background-color: #0b68ffff;
  651. }
  652. }
  653. .cushion {
  654. width: 100%;
  655. height: 104rpx;
  656. background-color: #f0f0f0f0;
  657. }
  658. }
  659. </style>