index.vue 21 KB

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