details.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740
  1. <template>
  2. <view class="">
  3. <uni-section title="基本信息" style="padding: 0 62rpx;" titleColor="5F5F5F" titleFontSize="28rpx">
  4. <template v-slot:right>
  5. <text style="color: #5F5F5F;">
  6. {{form.claimNo}}
  7. </text>
  8. </template>
  9. <uni-forms ref="form1" :modelValue="form" :border="true">
  10. <uni-forms-item name="consumerName" label="联系人">
  11. <uni-easyinput v-model="form.consumerName" class="right-align" placeholder-class="placeholder-right"
  12. placeholder="请输入内容" :inputBorder="false" :disabled="form.auditStatus>0"></uni-easyinput>
  13. </uni-forms-item>
  14. <uni-forms-item name="consumerPhone" label="电话">
  15. <uni-easyinput v-model="form.consumerPhone" class="right-align"
  16. placeholder-class="placeholder-right" placeholder="请输入内容" :inputBorder="false"
  17. :disabled="form.auditStatus>0"></uni-easyinput>
  18. </uni-forms-item>
  19. <uni-forms-item name="vehicleNumber" label="车牌号">
  20. <uni-easyinput v-model="form.vehicleNumber" class="right-align"
  21. placeholder-class="placeholder-right" placeholder="请输入内容" :inputBorder="false"
  22. :disabled="form.auditStatus>0"></uni-easyinput>
  23. </uni-forms-item>
  24. <uni-forms-item name="tyreSpecs" label="规格型号">
  25. <uni-easyinput v-model="form.tyreSpecs" class="right-align" placeholder-class="placeholder-right"
  26. placeholder="请输入内容" :inputBorder="false" :disabled="form.auditStatus>0"></uni-easyinput>
  27. </uni-forms-item>
  28. <uni-forms-item name="tyreNo" label="胎号">
  29. <uni-easyinput v-model="form.tyreNo" class="right-align" placeholder-class="placeholder-right"
  30. placeholder="请输入内容" :inputBorder="false" :disabled="form.auditStatus>0"></uni-easyinput>
  31. </uni-forms-item>
  32. <uni-forms-item name="tireQuantity" label="轮胎数量">
  33. <uni-easyinput v-model="form.tireQuantity" class="right-align" placeholder-class="placeholder-right"
  34. placeholder="请输入数量" :inputBorder="false" :disabled="form.auditStatus>0" type="number"
  35. @input="handleInput"></uni-easyinput>
  36. </uni-forms-item>
  37. <uni-forms-item name="claimAmount" label="索赔金额">
  38. <uni-easyinput v-model="form.claimAmount" class="right-align" placeholder-class="placeholder-right"
  39. placeholder="请输入金额" :inputBorder="false" :disabled="form.auditStatus>0"
  40. type="number"></uni-easyinput>
  41. </uni-forms-item>
  42. <uni-forms-item name="claimReason" label="理赔原因">
  43. <uni-easyinput v-model="form.claimReason" class="right-align" type="textarea"
  44. placeholder-class="placeholder-right" placeholder="请输入内容" :inputBorder="false"
  45. :disabled="form.auditStatus>0"></uni-easyinput>
  46. </uni-forms-item>
  47. </uni-forms>
  48. </uni-section>
  49. <uni-section title="轮胎证据" style="padding: 0 62rpx 60rpx 62rpx;margin-top: 30rpx;" titleColor="5F5F5F"
  50. titleFontSize="28rpx">
  51. <view class="photo-upload">
  52. <view>
  53. <view class="photo-upload-text">示例照片</view>
  54. <view>
  55. <image class="photo-upload-img" src="@/static/images/home/claim/em1.png" />
  56. </view>
  57. </view>
  58. <view>
  59. <view class="photo-upload-text" style="color: #B5B4B4;">上传车辆整体照片</view>
  60. <view class="photo-upload-upload">
  61. <uni-file-picker v-model="form.file1" return-type="object" limit="1" disable-preview
  62. :imageStyles="imageStyles" file-mediatype="image" @select="fileSelect1" @delete="fileDelete"
  63. @success='fileSuccess' @fail='fileFail' :readonly="form.auditStatus>0">
  64. <image class="photo-upload-img2" src="@/static/images/home/claim/upload.png" />
  65. </uni-file-picker>
  66. </view>
  67. </view>
  68. </view>
  69. <view class="photo-upload">
  70. <view>
  71. <view class="photo-upload-text">示例照片</view>
  72. <view>
  73. <image class="photo-upload-img" src="@/static/images/home/claim/em2.png" />
  74. </view>
  75. </view>
  76. <view>
  77. <view class="photo-upload-text" style="color: #B5B4B4;">轮胎DOT</view>
  78. <view class="photo-upload-upload">
  79. <uni-file-picker v-model="form.file2" return-type="object" limit="1" disable-preview
  80. :imageStyles="imageStyles" file-mediatype="image" @select="fileSelect2" @delete="fileDelete"
  81. @success='fileSuccess' @fail='fileFail' :readonly="form.auditStatus>0">
  82. <image class="photo-upload-img2" src="@/static/images/home/claim/upload.png" />
  83. </uni-file-picker>
  84. </view>
  85. </view>
  86. </view>
  87. <view class="photo-upload">
  88. <view>
  89. <view class="photo-upload-text">示例照片</view>
  90. <view>
  91. <image class="photo-upload-img" src="@/static/images/home/claim/em3.png" />
  92. </view>
  93. </view>
  94. <view>
  95. <view class="photo-upload-text" style="color: #B5B4B4;">花纹深度</view>
  96. <view class="photo-upload-upload">
  97. <uni-file-picker v-model="form.file3" return-type="object" limit="1" disable-preview
  98. :imageStyles="imageStyles" file-mediatype="image" @select="fileSelect3" @delete="fileDelete"
  99. @success='fileSuccess' @fail='fileFail' :readonly="form.auditStatus>0">
  100. <image class="photo-upload-img2" src="@/static/images/home/claim/upload.png" />
  101. </uni-file-picker>
  102. </view>
  103. </view>
  104. </view>
  105. <view class="photo-upload">
  106. <view>
  107. <view class="photo-upload-text">示例照片</view>
  108. <view>
  109. <image class="photo-upload-img" src="@/static/images/home/claim/em4.png" />
  110. </view>
  111. </view>
  112. <view>
  113. <view class="photo-upload-text" style="color: #B5B4B4;">鼓包处照片</view>
  114. <view class="photo-upload-upload">
  115. <uni-file-picker v-model="form.file4" return-type="object" limit="1" disable-preview
  116. :imageStyles="imageStyles" file-mediatype="image" @select="fileSelect4" @delete="fileDelete"
  117. @success="fileSuccess" @fail="fileFail" :readonly="form.auditStatus>0">
  118. <image class="photo-upload-img2" src="@/static/images/home/claim/upload.png" />
  119. </uni-file-picker>
  120. </view>
  121. </view>
  122. </view>
  123. </uni-section>
  124. <!-- <view style="height: 200rpx;display: flex;align-items: center;justify-content: center;">
  125. <button style="color:#ffffff;backgroundColor:#03803B;width: 400rpx;" @click="submit">保存</button>
  126. </view> -->
  127. </view>
  128. </template>
  129. <script>
  130. import http from '@/http/api.js'
  131. import {
  132. clientId,
  133. clientSecret
  134. } from '@/common/setting'
  135. import {
  136. submit,
  137. getDetail
  138. } from '@/api/home/claim.js'
  139. export default {
  140. data() {
  141. return {
  142. form: {
  143. file1: {},
  144. file2: {},
  145. file3: {},
  146. file4: {},
  147. claimAttachmentList: [],
  148. },
  149. imageStyles: {
  150. width: 145,
  151. height: 145,
  152. border: false,
  153. },
  154. mapObject: {
  155. text: 'name',
  156. value: 'code',
  157. children: 'children'
  158. },
  159. addressData: [],
  160. labelList: [],
  161. corpsTypeList: [],
  162. storeAttributesList: [],
  163. chainAttributeList: [],
  164. signingLevelList: []
  165. }
  166. },
  167. onLoad(option) {
  168. this.addressData = JSON.parse(uni.getStorageSync("addressData"))
  169. if (option && option.id) {
  170. this.getDetail(option.id)
  171. }
  172. },
  173. methods: {
  174. removeByIdFilter(arr, id) {
  175. return arr.filter(item => item.id !== id);
  176. },
  177. handleInput(value) {
  178. const decimalRegex = /^-?\d+\.\d+$/ // 小数正则
  179. if (decimalRegex.test(value)) {
  180. uni.showToast({
  181. title: '请输入正整数',
  182. icon: 'none'
  183. });
  184. this.form.tireQuantity = 1
  185. }
  186. },
  187. fileDelete(row) {
  188. if (row.tempFile.id) {
  189. uni.showLoading({
  190. title: '加载中',
  191. mask: true
  192. });
  193. fileRemove(row.tempFile.id).then(res => {
  194. uni.showToast({
  195. title: '删除成功',
  196. icon: 'none'
  197. });
  198. this.form.claimAttachmentList = this.removeByIdFilter(this.form.claimAttachmentList, row
  199. .tempFile.id);
  200. }).finally(() => {
  201. uni.hideLoading()
  202. });
  203. }
  204. },
  205. getFileExtension(filename) {
  206. return filename.slice(((filename.lastIndexOf(".") - 1) >>> 0) + 2);
  207. },
  208. fileSelect1(files) {
  209. files.tempFiles.forEach(file => {
  210. uni.showLoading({
  211. title: '加载中',
  212. mask: true
  213. });
  214. uni.uploadFile({
  215. url: http.config.baseURL +
  216. '/blade-resource/oss/endpoint/put-file', // 仅为示例,非真实的接口地址
  217. filePath: file.path,
  218. header: {
  219. // 客户端认证参数
  220. 'Authorization': 'Basic ' + Base64.encode(clientId + ':' + clientSecret),
  221. 'Blade-Auth': 'bearer ' + uni.getStorageSync('accessToken')
  222. },
  223. name: 'file',
  224. success: (res) => {
  225. const data = JSON.parse(res.data).data
  226. this.form.file1 = {
  227. ...this.form.file1,
  228. id: 1111111,
  229. url: data.link,
  230. name: data.originalName,
  231. extname: this.getFileExtension(data.originalName)
  232. }
  233. uni.showToast({
  234. title: '上传成功',
  235. icon: 'none'
  236. });
  237. },
  238. fail: (err) => {
  239. uni.showToast({
  240. title: '上传失败',
  241. icon: 'none'
  242. });
  243. },
  244. complete: () => {
  245. uni.hideLoading()
  246. }
  247. })
  248. })
  249. },
  250. fileSelect2(files) {
  251. files.tempFiles.forEach(file => {
  252. uni.showLoading({
  253. title: '加载中',
  254. mask: true
  255. });
  256. uni.uploadFile({
  257. url: http.config.baseURL +
  258. '/blade-resource/oss/endpoint/put-file', // 仅为示例,非真实的接口地址
  259. filePath: file.path,
  260. header: {
  261. // 客户端认证参数
  262. 'Authorization': 'Basic ' + Base64.encode(clientId + ':' + clientSecret),
  263. 'Blade-Auth': 'bearer ' + uni.getStorageSync('accessToken')
  264. },
  265. name: 'file',
  266. success: (res) => {
  267. const data = JSON.parse(res.data).data
  268. this.form.file2 = {
  269. ...this.form.file2,
  270. url: data.link,
  271. name: data.originalName,
  272. extname: this.getFileExtension(data.originalName)
  273. }
  274. uni.showToast({
  275. title: '上传成功',
  276. icon: 'none'
  277. });
  278. },
  279. fail: (err) => {
  280. uni.showToast({
  281. title: '上传失败',
  282. icon: 'none'
  283. });
  284. },
  285. complete: () => {
  286. uni.hideLoading()
  287. }
  288. })
  289. })
  290. },
  291. fileSelect3(files) {
  292. files.tempFiles.forEach(file => {
  293. uni.showLoading({
  294. title: '加载中',
  295. mask: true
  296. });
  297. uni.uploadFile({
  298. url: http.config.baseURL +
  299. '/blade-resource/oss/endpoint/put-file', // 仅为示例,非真实的接口地址
  300. filePath: file.path,
  301. header: {
  302. // 客户端认证参数
  303. 'Authorization': 'Basic ' + Base64.encode(clientId + ':' + clientSecret),
  304. 'Blade-Auth': 'bearer ' + uni.getStorageSync('accessToken')
  305. },
  306. name: 'file',
  307. success: (res) => {
  308. const data = JSON.parse(res.data).data
  309. this.form.file3 = {
  310. ...this.form.file3,
  311. url: data.link,
  312. name: data.originalName,
  313. extname: this.getFileExtension(data.originalName)
  314. }
  315. uni.showToast({
  316. title: '上传成功',
  317. icon: 'none'
  318. });
  319. },
  320. fail: (err) => {
  321. uni.showToast({
  322. title: '上传失败',
  323. icon: 'none'
  324. });
  325. },
  326. complete: () => {
  327. uni.hideLoading()
  328. }
  329. })
  330. })
  331. },
  332. fileSelect4(files) {
  333. files.tempFiles.forEach(file => {
  334. uni.showLoading({
  335. title: '加载中',
  336. mask: true
  337. });
  338. uni.uploadFile({
  339. url: http.config.baseURL +
  340. '/blade-resource/oss/endpoint/put-file', // 仅为示例,非真实的接口地址
  341. filePath: file.path,
  342. header: {
  343. // 客户端认证参数
  344. 'Authorization': 'Basic ' + Base64.encode(clientId + ':' + clientSecret),
  345. 'Blade-Auth': 'bearer ' + uni.getStorageSync('accessToken')
  346. },
  347. name: 'file',
  348. success: (res) => {
  349. const data = JSON.parse(res.data).data
  350. this.form.file4 = {
  351. ...this.form.file4,
  352. url: data.link,
  353. name: data.originalName,
  354. extname: this.getFileExtension(data.originalName)
  355. }
  356. uni.showToast({
  357. title: '上传成功',
  358. icon: 'none'
  359. });
  360. },
  361. fail: (err) => {
  362. uni.showToast({
  363. title: '上传失败',
  364. icon: 'none'
  365. });
  366. },
  367. complete: () => {
  368. uni.hideLoading()
  369. }
  370. })
  371. })
  372. },
  373. async submit() {
  374. if (!this.form.consumerName) {
  375. uni.showToast({
  376. title: '请输入联系人',
  377. icon: 'none'
  378. });
  379. return
  380. }
  381. if (!this.form.consumerPhone) {
  382. uni.showToast({
  383. title: '请输入电话',
  384. icon: 'none'
  385. });
  386. return
  387. }
  388. if (!this.form.vehicleNumber) {
  389. uni.showToast({
  390. title: '请输入车牌号',
  391. icon: 'none'
  392. });
  393. return
  394. }
  395. if (!this.form.tyreSpecs) {
  396. uni.showToast({
  397. title: '请输入规格型号',
  398. icon: 'none'
  399. });
  400. return
  401. }
  402. if (!this.form.tyreNo) {
  403. uni.showToast({
  404. title: '请输入胎号',
  405. icon: 'none'
  406. });
  407. return
  408. }
  409. const decimalRegex = /^-?\d+\.\d+$/ // 小数正则
  410. if (!Number(this.form.tireQuantity) || decimalRegex.test(Number(this.form.tireQuantity))) {
  411. uni.showToast({
  412. title: '请正确输入轮胎数量',
  413. icon: 'none'
  414. });
  415. return
  416. }
  417. if (!this.form.claimReason) {
  418. uni.showToast({
  419. title: '请输入理赔原因',
  420. icon: 'none'
  421. });
  422. return
  423. }
  424. if (!this.form.file1) {
  425. uni.showToast({
  426. title: '请上传车辆整体照片',
  427. icon: 'none'
  428. });
  429. return
  430. }
  431. if (!this.form.file2) {
  432. uni.showToast({
  433. title: '请上传轮胎DOT',
  434. icon: 'none'
  435. });
  436. return
  437. }
  438. if (!this.form.file3) {
  439. uni.showToast({
  440. title: '请上传花纹深度',
  441. icon: 'none'
  442. });
  443. return
  444. }
  445. if (!this.form.file4) {
  446. uni.showToast({
  447. title: '请上传鼓包处照片',
  448. icon: 'none'
  449. });
  450. return
  451. }
  452. let obj = await this.convertData(this.$deepClone(this.form))
  453. uni.showLoading({
  454. title: '加载中',
  455. mask: true
  456. });
  457. submit(obj).then(res => {
  458. setTimeout(() => {
  459. uni.showToast({
  460. title: '保存成功',
  461. icon: 'none',
  462. });
  463. }, 10);
  464. this.getDetail(res.data.id)
  465. })
  466. .finally(() => {
  467. uni.hideLoading()
  468. });
  469. },
  470. approval() {
  471. let obj = {
  472. id: this.form.id
  473. }
  474. let _this = this
  475. uni.showModal({
  476. title: '提示',
  477. content: '是否提交审批?',
  478. success: function(res) {
  479. if (res.confirm) {
  480. uni.showLoading({
  481. title: '加载中',
  482. mask: true
  483. });
  484. submitApproval(obj).then(res => {
  485. setTimeout(() => {
  486. uni.showToast({
  487. title: '操作成功',
  488. icon: 'none',
  489. duration: 2000
  490. });
  491. }, 10);
  492. _this.getDetail(_this.form.id)
  493. })
  494. .finally(() => {
  495. uni.hideLoading()
  496. });
  497. }
  498. }
  499. });
  500. },
  501. revoke() {
  502. let obj = {
  503. id: this.form.id
  504. }
  505. let _this = this
  506. uni.showModal({
  507. title: '提示',
  508. content: '是否撤销审批?',
  509. success: function(res) {
  510. if (res.confirm) {
  511. uni.showLoading({
  512. title: '加载中',
  513. mask: true
  514. });
  515. revokeApproval(obj).then(res => {
  516. setTimeout(() => {
  517. uni.showToast({
  518. title: '操作成功',
  519. icon: 'none',
  520. duration: 2000
  521. });
  522. }, 10);
  523. _this.getDetail(_this.form.id)
  524. })
  525. .finally(() => {
  526. uni.hideLoading()
  527. });
  528. }
  529. }
  530. });
  531. },
  532. getDetail(id) {
  533. let obj = {
  534. id: id
  535. }
  536. uni.showLoading({
  537. title: '加载中',
  538. mask: true
  539. });
  540. getDetail(obj).then(res => {
  541. res.data.claimAttachmentList.forEach(item => {
  542. if (item.fileProperties == 1) {
  543. res.data.file1 = {
  544. ...item,
  545. url: item.fileUrl,
  546. name: item.fileName,
  547. extname: item.fileType
  548. }
  549. }
  550. if (item.fileProperties == 2) {
  551. res.data.file2 = {
  552. ...item,
  553. url: item.fileUrl,
  554. name: item.fileName,
  555. extname: item.fileType
  556. }
  557. }
  558. if (item.fileProperties == 3) {
  559. res.data.file3 = {
  560. ...item,
  561. url: item.fileUrl,
  562. name: item.fileName,
  563. extname: item.fileType
  564. }
  565. }
  566. if (item.fileProperties == 4) {
  567. res.data.file4 = {
  568. ...item,
  569. url: item.fileUrl,
  570. name: item.fileName,
  571. extname: item.fileType
  572. }
  573. }
  574. })
  575. this.form = res.data
  576. })
  577. .finally(() => {
  578. uni.hideLoading()
  579. });
  580. },
  581. async convertData(obj) {
  582. let fileList = []
  583. if (obj.file1 && Object.keys(obj.file1).length) {
  584. fileList.push({
  585. ...obj.file1,
  586. fileProperties: 1,
  587. })
  588. }
  589. if (obj.file2 && Object.keys(obj.file2).length) {
  590. fileList.push({
  591. ...obj.file2,
  592. fileProperties: 2,
  593. })
  594. }
  595. if (obj.file3 && Object.keys(obj.file3).length) {
  596. fileList.push({
  597. ...obj.file3,
  598. fileProperties: 3,
  599. })
  600. }
  601. if (obj.file4 && Object.keys(obj.file4).length) {
  602. fileList.push({
  603. ...obj.file4,
  604. fileProperties: 4
  605. })
  606. }
  607. //附件明细为空时直接赋值
  608. if (obj.claimAttachmentList.length == 0) {
  609. fileList.forEach(item => {
  610. obj.claimAttachmentList.push({
  611. fileProperties: item.fileProperties,
  612. fileUrl: item.url,
  613. fileName: item.name,
  614. fileType: item.extname
  615. })
  616. })
  617. } else {
  618. //附件明细有明细区分赋值
  619. fileList.forEach(item => {
  620. if (obj.claimAttachmentList.filter(row => row.fileProperties == item.fileProperties)
  621. .length == 0) {
  622. //原附件明细不存在,直接push新元素
  623. obj.claimAttachmentList.push({
  624. fileProperties: item.fileProperties,
  625. fileUrl: item.url,
  626. fileName: item.name,
  627. fileType: item.extname
  628. })
  629. } else {
  630. //原附件存在明细时,对应赋值
  631. obj.claimAttachmentList.forEach(row => {
  632. if (item.fileProperties == row.fileProperties) {
  633. row.fileUrl = item.url
  634. row.fileName = item.name
  635. row.fileType = item.extname
  636. }
  637. })
  638. }
  639. })
  640. }
  641. console.log(obj)
  642. return obj
  643. }
  644. }
  645. }
  646. </script>
  647. <style lang="scss" scoped>
  648. .right-align {
  649. text-align: right;
  650. }
  651. .photo {
  652. margin-left: 20rpx;
  653. width: 38rpx;
  654. height: 32rpx;
  655. }
  656. .photo-upload {
  657. display: flex;
  658. justify-content: space-around;
  659. margin-top: 45rpx;
  660. .photo-upload-text {
  661. font-weight: 400;
  662. font-size: 28rpx;
  663. color: #5F5F5F;
  664. line-height: 32rpx;
  665. text-align: center;
  666. margin-bottom: 15rpx;
  667. }
  668. .photo-upload-img {
  669. width: 280rpx;
  670. height: 280rpx;
  671. background: #D13B34;
  672. border-radius: 7rpx;
  673. }
  674. .photo-upload-upload {
  675. width: 280rpx;
  676. height: 280rpx;
  677. background: #F6F6F6;
  678. border-radius: 7rpx;
  679. display: flex;
  680. justify-content: center;
  681. align-items: center;
  682. .photo-upload-img2 {
  683. width: 219rpx;
  684. height: 219rpx;
  685. }
  686. }
  687. }
  688. ::v-deep .uni-file-picker__container {
  689. margin: 0 !important;
  690. }
  691. ::v-deep .file-picker__box-content {
  692. margin: 0 !important;
  693. }
  694. ::v-deep .file-picker__progress {
  695. display: none;
  696. }
  697. ::v-deep .uni-section .uni-section-header {
  698. font-weight: bold !important;
  699. padding: 12px 0px !important;
  700. border-bottom: 2px solid #F6F6F6;
  701. }
  702. .slot-content-item {
  703. border-radius: 13rpx;
  704. border: 2rpx solid #03803B;
  705. padding: 1rpx 5rpx;
  706. color: #03803B;
  707. }
  708. .slot-content-item-placeholder {
  709. font-weight: 400 !important;
  710. font-size: 28rpx !important;
  711. height: 38rpx !important;
  712. color: #B5B4B4 !important;
  713. }
  714. .slot-box {
  715. gap: 5px;
  716. display: flex;
  717. flex-wrap: wrap;
  718. justify-content: flex-end;
  719. }
  720. </style>