details.vue 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648
  1. <template>
  2. <view class="">
  3. <uni-section title="基本信息" style="padding: 0 62rpx;" titleColor="5F5F5F" titleFontSize="28rpx">
  4. <uni-forms ref="form1" :modelValue="form" :border="true">
  5. <uni-forms-item name="cname" label="店铺名称">
  6. <uni-easyinput v-model="form.cname" class="right-align" placeholder-class="placeholder-right"
  7. placeholder="请输入内容" :inputBorder="false">
  8. </uni-easyinput>
  9. </uni-forms-item>
  10. <uni-forms-item name="corpsFilesList" label="店面照片">
  11. <view style="display: flex;align-items: center;">
  12. <uni-file-picker v-model="form.corpsFilesList" return-type="array" limit="9"
  13. :imageStyles="imageStyles" :auto-upload="false" @select="corpsfileSelect" @delete="fileDelete"></uni-file-picker>
  14. <image class="photo" src="@/static/images/home/store/photo.png" />
  15. </view>
  16. </uni-forms-item>
  17. <uni-forms-item name="businessLicense" label="营业执照">
  18. <view style="display: flex;align-items: center;">
  19. <uni-file-picker v-model="form.businessLicense" return-type="object" limit="1" :del-icon="false"
  20. disable-preview :imageStyles="imageStyles" file-mediatype="image"
  21. @select="businessLicenseSelect">
  22. </uni-file-picker>
  23. <image class="photo" src="@/static/images/home/store/photo.png" />
  24. </view>
  25. </uni-forms-item>
  26. <uni-forms-item name="contacts" label="联系人">
  27. <uni-easyinput v-model="form.contacts" class="right-align" placeholder-class="placeholder-right"
  28. placeholder="请输入内容" :inputBorder="false"></uni-easyinput>
  29. </uni-forms-item>
  30. <uni-forms-item name="contactsPhone" label="电话">
  31. <uni-easyinput v-model="form.contactsPhone" class="right-align"
  32. placeholder-class="placeholder-right" placeholder="请输入内容" :inputBorder="false"></uni-easyinput>
  33. </uni-forms-item>
  34. <uni-forms-item name="address" label="所属区域">
  35. <uni-data-picker v-model="form.address" :localdata="addressData" popup-title="请选择所属区域"
  36. :map="mapObject" :inputBorder="false"></uni-data-picker>
  37. </uni-forms-item>
  38. <uni-forms-item name="detailedAddress" label="详细地址">
  39. <uni-easyinput v-model="form.detailedAddress" class="right-align"
  40. placeholder-class="placeholder-right" placeholder="请输入内容" :inputBorder="false"></uni-easyinput>
  41. </uni-forms-item>
  42. </uni-forms>
  43. </uni-section>
  44. <uni-section title="店面分类" style="padding: 0 62rpx;margin-top: 30rpx;" titleColor="5F5F5F" titleFontSize="28rpx">
  45. <uni-forms ref="form2" :modelValue="form" :border="true">
  46. <uni-forms-item name="corpsTypeName" label="店面分类">
  47. <view style="display: flex;align-items: center;height: 36px;">
  48. <view @click="corpsTypeShow=true" style="width: 100%;text-align: right;"
  49. :style="form.corpsTypeName?'color:#000;':'color:#B5B4B4;'">
  50. {{form.corpsTypeName||'请选择'}}
  51. </view>
  52. <uni-icons v-if="!form.corpsTypeName" type="down" size="14" color='#999999'
  53. @click="corpsTypeShow=true"></uni-icons>
  54. <uni-icons v-if="form.corpsTypeName" type="clear" size="24" color='#c0c4cc'
  55. @click="clear('corpsTypeName')"></uni-icons>
  56. </view>
  57. <u-picker :show="corpsTypeShow" :columns="corpsTypeList" keyName="cname" @confirm="corpsTypeConfirm"
  58. @cancel="corpsTypeShow=false" @close="corpsTypeShow=false" closeOnClickOverlay></u-picker>
  59. </uni-forms-item>
  60. <uni-forms-item name="storeAttributes" label="店面属性">
  61. <view>
  62. <view style="display: flex;align-items: center;height: 36px;">
  63. <view @click="storeAttributesShow=true" style="width: 100%;text-align: right;"
  64. :style="form.storeAttributes?'color:#000;':'color:#B5B4B4;'">
  65. {{form.storeAttributes||'请选择'}}
  66. </view>
  67. <uni-icons v-if="!form.storeAttributes" type="down" size="14" color='#999999'
  68. @click="storeAttributesShow=true"></uni-icons>
  69. <uni-icons v-if="form.storeAttributes" type="clear" size="24" color='#c0c4cc'
  70. @click="form.storeAttributes=null"></uni-icons>
  71. </view>
  72. <u-picker :show="storeAttributesShow" :columns="storeAttributesList" keyName="dictValue"
  73. @confirm="storeAttributesConfirm" @cancel="storeAttributesShow=false"
  74. @close="storeAttributesShow=false" closeOnClickOverlay></u-picker>
  75. </view>
  76. </uni-forms-item>
  77. <uni-forms-item name="chainAttribute" label="连锁属性">
  78. <view>
  79. <view style="display: flex;align-items: center;height: 36px;">
  80. <view @click="chainAttributeShow=true" style="width: 100%;text-align: right;"
  81. :style="form.chainAttribute?'color:#000;':'color:#B5B4B4;'">
  82. {{form.chainAttribute||'请选择'}}
  83. </view>
  84. <uni-icons v-if="!form.chainAttribute" type="down" size="14" color='#999999'
  85. @click="chainAttributeShow=true"></uni-icons>
  86. <uni-icons v-if="form.chainAttribute" type="clear" size="24" color='#c0c4cc'
  87. @click="form.chainAttribute=null"></uni-icons>
  88. </view>
  89. <u-picker :show="chainAttributeShow" :columns="chainAttributeList" keyName="dictValue"
  90. @confirm="chainAttributeConfirm" @cancel="chainAttributeShow=false"
  91. @close="chainAttributeShow=false" closeOnClickOverlay></u-picker>
  92. </view>
  93. </uni-forms-item>
  94. <uni-forms-item name="label" label="店面标签">
  95. <view>
  96. <view style="display: flex;align-items: center;height: 36px;">
  97. <view class="slot-box" @click="openPopup">
  98. <view v-for="(item,index) in sliceArray(form.label)" :key="index"
  99. class="slot-content-item">
  100. {{item}}
  101. </view>
  102. <view v-if="form.label.length > 2" class="slot-content-item">
  103. +{{form.label.length - 2}}</view>
  104. <view v-if="form.label.length == 0" style="color:#B5B4B4;">
  105. 请选择
  106. </view>
  107. </view>
  108. <uni-icons v-if="!form.label.length" type="down" size="14" color='#999999'
  109. @click="openPopup"></uni-icons>
  110. <uni-icons v-if="form.label.length" type="clear" size="24" color='#c0c4cc'
  111. @click="form.label=[]"></uni-icons>
  112. </view>
  113. <uni-popup ref="popup" type="bottom">
  114. <view class="popup-content">
  115. <view class="popup-content-checkbox">
  116. <scroll-view scroll-y="true" style="height: 600rpx;" :show-scrollbar="false">
  117. <uni-data-checkbox mode="tag" multiple v-model="form.label"
  118. :localdata="labelList" @change="onChange" selectedColor='#03803B'
  119. :map="labelObject" />
  120. </scroll-view>
  121. </view>
  122. <button class="confirm-btn" @click="labelConfirm">确认</button>
  123. </view>
  124. </uni-popup>
  125. </view>
  126. </uni-forms-item>
  127. </uni-forms>
  128. </uni-section>
  129. <uni-section title="商务政策" style="padding: 0 62rpx;margin-top: 30rpx;" titleColor="5F5F5F" titleFontSize="28rpx">
  130. <uni-forms ref="form3" :modelValue="form" :border="true">
  131. <uni-forms-item name="signingLevel" label="签约级别">
  132. <!-- <uni-data-select v-model="form.signingLevel" :localdata="signingLevelList">
  133. </uni-data-select> -->
  134. <view>
  135. <view style="display: flex;align-items: center;height: 36px;">
  136. <view @click="signingLevelShow=true" style="width: 100%;text-align: right;"
  137. :style="form.signingLevel?'color:#000;':'color:#B5B4B4;'">
  138. {{form.signingLevel||'请选择'}}
  139. </view>
  140. <uni-icons v-if="!form.signingLevel" type="down" size="14" color='#999999'
  141. @click="signingLevelShow=true"></uni-icons>
  142. <uni-icons v-if="form.signingLevel" type="clear" size="24" color='#c0c4cc'
  143. @click="form.signingLevel=null"></uni-icons>
  144. </view>
  145. <u-picker :show="signingLevelShow" :columns="signingLevelList" keyName="dictValue"
  146. @confirm="signingLevelConfirm" @cancel="signingLevelShow=false"
  147. @close="signingLevelShow=false" closeOnClickOverlay></u-picker>
  148. </view>
  149. </uni-forms-item>
  150. <uni-forms-item name="signingNumber" label="签约条数">
  151. <uni-easyinput v-model="form.signingNumber" class="right-align"
  152. placeholder-class="placeholder-right" placeholder="请输入内容" :inputBorder="false"></uni-easyinput>
  153. </uni-forms-item>
  154. <uni-forms-item name="signingPeriodEnd" label="签约期限">
  155. <uni-datetime-picker v-model="form.signingPeriodEnd" type="date" :clear-icon="false" :border="false"
  156. placeholder="请选择签约期限"></uni-datetime-picker>
  157. </uni-forms-item>
  158. <uni-forms-item name="checkStatus" label="门店状态">
  159. <view style="display: flex;justify-content: flex-end;align-items: center;height: 70rpx;">
  160. <text v-if="form.checkStatus=='录入'" style="color:#e6a23c">
  161. 录入
  162. </text>
  163. <text v-if="form.checkStatus=='提交'" style="color:#409EFF">
  164. 提交
  165. </text>
  166. <text v-if="form.checkStatus=='审核通过'" style="color:#67c23a">
  167. 审核通过
  168. </text>
  169. <text v-if="form.checkStatus=='审核驳回'" style="color:#f56c6c">
  170. 审核驳回
  171. </text>
  172. </view>
  173. </uni-forms-item>
  174. </uni-forms>
  175. </uni-section>
  176. <view style="height: 200rpx;display: flex;align-items: center;justify-content: center;">
  177. <button v-if="!form.id||form.checkStatus=='审核通过'"
  178. style="color:#ffffff;backgroundColor:#03803B;width: 400rpx;" @click="submit">保存</button>
  179. <view v-if="form.checkStatus=='录入'||form.checkStatus=='审核驳回'" style="display: flex;">
  180. <button
  181. style="color:#ffffff;backgroundColor:#03803B;width: 200rpx;border-top-right-radius:0rpx;border-bottom-right-radius:0rpx"
  182. @click="submit">保存</button>
  183. <button type="warn"
  184. style="color:#ffffff;width: 200rpx;border-top-left-radius:0rpx;border-bottom-left-radius:0rpx"
  185. @click="approval">审批</button>
  186. </view>
  187. </view>
  188. </view>
  189. </template>
  190. <script>
  191. import http from '@/http/api.js'
  192. import {
  193. clientId,
  194. clientSecret
  195. } from '@/common/setting'
  196. import {
  197. submit,
  198. getDetail,
  199. review,
  200. selectType,
  201. selectLabel,
  202. fileRemove
  203. } from '@/api/home/store.js'
  204. export default {
  205. data() {
  206. return {
  207. corpsTypeShow: false,
  208. storeAttributesShow: false,
  209. chainAttributeShow: false,
  210. signingLevelShow: false,
  211. form: {
  212. corpsTypeId: null,
  213. corpsTypeName: null,
  214. storeAttributes: null,
  215. chainAttribute: null,
  216. signingLevel: null,
  217. label: [],
  218. corpsFilesList: [],
  219. businessLicense: {}
  220. },
  221. imageStyles: {
  222. width: 46,
  223. height: 46
  224. },
  225. mapObject: {
  226. text: 'name',
  227. value: 'code',
  228. children: 'children'
  229. },
  230. labelObject: {
  231. text: 'label',
  232. value: 'label',
  233. },
  234. addressData: [],
  235. labelList: [],
  236. corpsTypeList: [],
  237. storeAttributesList: [],
  238. chainAttributeList: [],
  239. signingLevelList: []
  240. }
  241. },
  242. onLoad(option) {
  243. this.addressData = JSON.parse(uni.getStorageSync("addressData"))
  244. this.getSelectType()
  245. this.getLabel()
  246. this.getDictionary()
  247. if (option && option.id) {
  248. this.getDetail(option.id)
  249. }
  250. },
  251. methods: {
  252. openPopup() {
  253. this.$refs.popup.open()
  254. },
  255. onChange(e) {
  256. console.log('当前选中:', e.detail.value)
  257. },
  258. labelConfirm() {
  259. this.$refs.popup.close()
  260. // 提交选中值逻辑...
  261. },
  262. clear(name) {
  263. if (name == 'corpsTypeName') {
  264. this.form.corpsTypeId = null
  265. this.form.corpsTypeName = null
  266. }
  267. },
  268. corpsTypeConfirm(row) {
  269. this.form.corpsTypeId = row.value[0].id
  270. this.form.corpsTypeName = row.value[0].cname
  271. this.corpsTypeShow = false
  272. },
  273. storeAttributesConfirm(row) {
  274. this.form.storeAttributes = row.value[0].dictValue
  275. this.storeAttributesShow = false
  276. },
  277. chainAttributeConfirm(row) {
  278. this.form.chainAttribute = row.value[0].dictValue
  279. this.chainAttributeShow = false
  280. },
  281. signingLevelConfirm(row) {
  282. this.form.signingLevel = row.value[0].dictValue
  283. this.signingLevelShow = false
  284. },
  285. getDictionary() {
  286. this.$u.api.dictionary('storeAttributes').then(res => {
  287. this.storeAttributesList = [res.data]
  288. })
  289. this.$u.api.dictionary('chainAttribute').then(res => {
  290. this.chainAttributeList = [res.data]
  291. })
  292. this.$u.api.dictionary('signingLevel').then(res => {
  293. this.signingLevelList = [res.data]
  294. })
  295. },
  296. sliceArray(ls) {
  297. if (Array.isArray(ls)) {
  298. return ls.slice(0, 2)
  299. }
  300. return ls
  301. },
  302. getSelectType() {
  303. selectType().then(res => {
  304. this.corpsTypeList = [res.data]
  305. })
  306. },
  307. getLabel() {
  308. selectLabel().then(res => {
  309. this.labelList = res.data
  310. })
  311. },
  312. getFileExtension(filename) {
  313. return filename.slice(((filename.lastIndexOf(".") - 1) >>> 0) + 2);
  314. },
  315. businessLicenseSelect(files) {
  316. files.tempFiles.forEach(file => {
  317. uni.showLoading({
  318. title: '加载中',
  319. mask: true
  320. });
  321. uni.uploadFile({
  322. url: http.config.baseURL +
  323. '/blade-resource/oss/endpoint/put-file', // 仅为示例,非真实的接口地址
  324. filePath: file.path,
  325. header: {
  326. // 客户端认证参数
  327. 'Authorization': 'Basic ' + Base64.encode(clientId + ':' + clientSecret),
  328. 'Blade-Auth': 'bearer ' + uni.getStorageSync('accessToken')
  329. },
  330. name: 'file',
  331. success: (res) => {
  332. const data = JSON.parse(res.data).data
  333. this.form.businessLicense = {
  334. url: data.link,
  335. name: data.originalName,
  336. extname: this.getFileExtension(data.originalName)
  337. }
  338. this.form.businessLicenseUrl = data.link
  339. uni.showToast({
  340. title: '上传成功',
  341. icon: 'none'
  342. });
  343. },
  344. fail: (err) => {
  345. uni.showToast({
  346. title: '上传失败',
  347. icon: 'none'
  348. });
  349. },
  350. complete: () => {
  351. uni.hideLoading()
  352. }
  353. })
  354. })
  355. },
  356. fileDelete(row) {
  357. if (row.tempFile.id) {
  358. uni.showLoading({
  359. title: '加载中',
  360. mask: true
  361. });
  362. fileRemove(row.tempFile.id).then(res => {
  363. uni.showToast({
  364. title: '删除成功',
  365. icon: 'none'
  366. });
  367. this.form.corpsFilesList = this.removeByIdFilter(this.form.corpsFilesList, row
  368. .tempFile.id);
  369. }).finally(() => {
  370. uni.hideLoading()
  371. });
  372. }
  373. },
  374. removeByIdFilter(arr, id) {
  375. return arr.filter(item => item.id !== id);
  376. },
  377. corpsfileSelect(files) {
  378. uni.showLoading({
  379. title: '加载中',
  380. mask: true
  381. });
  382. files.tempFiles.forEach(file => {
  383. uni.uploadFile({
  384. url: http.config.baseURL +
  385. '/blade-resource/oss/endpoint/put-file', // 仅为示例,非真实的接口地址
  386. filePath: file.path,
  387. header: {
  388. // 客户端认证参数
  389. 'Authorization': 'Basic ' + Base64.encode(clientId + ':' + clientSecret),
  390. 'Blade-Auth': 'bearer ' + uni.getStorageSync('accessToken')
  391. },
  392. name: 'file',
  393. success: (res) => {
  394. const data = JSON.parse(res.data).data
  395. this.form.corpsFilesList.push({
  396. url: data.link,
  397. name: data.originalName,
  398. extname: this.getFileExtension(data.originalName)
  399. })
  400. uni.showToast({
  401. title: '上传成功',
  402. icon: 'none'
  403. });
  404. },
  405. fail: (err) => {
  406. uni.showToast({
  407. title: '上传失败',
  408. icon: 'none'
  409. });
  410. },
  411. complete: () => {
  412. uni.hideLoading()
  413. }
  414. })
  415. })
  416. },
  417. async submit() {
  418. if (!this.form.cname) {
  419. uni.showToast({
  420. title: '请输入店铺名称',
  421. icon: 'none'
  422. });
  423. return
  424. }
  425. if (this.form.corpsFilesList.length == 0) {
  426. uni.showToast({
  427. title: '请上传店面照片',
  428. icon: 'none'
  429. });
  430. return
  431. }
  432. if (!this.form.corpsTypeId) {
  433. uni.showToast({
  434. title: '请选择店面分类',
  435. icon: 'none'
  436. });
  437. return
  438. }
  439. if (!this.form.contacts) {
  440. uni.showToast({
  441. title: '联系人',
  442. icon: 'none'
  443. });
  444. return
  445. }
  446. if (!this.form.contactsPhone) {
  447. uni.showToast({
  448. title: '电话',
  449. icon: 'none'
  450. });
  451. return
  452. }
  453. if (!this.form.address) {
  454. uni.showToast({
  455. title: '所属区域',
  456. icon: 'none'
  457. });
  458. return
  459. }
  460. if (!this.form.detailedAddress) {
  461. uni.showToast({
  462. title: '请输入详细地址',
  463. icon: 'none'
  464. });
  465. return
  466. }
  467. let obj = await this.convertData(this.$deepClone(this.form))
  468. uni.showLoading({
  469. title: '加载中',
  470. mask: true
  471. });
  472. submit(obj).then(res => {
  473. setTimeout(() => {
  474. uni.showToast({
  475. title: '保存成功',
  476. icon: 'none',
  477. });
  478. }, 10);
  479. this.getDetail(res.data.id)
  480. })
  481. .finally(() => {
  482. uni.hideLoading()
  483. });
  484. },
  485. getDetail(id) {
  486. let obj = {
  487. id: id
  488. }
  489. uni.showLoading({
  490. title: '加载中',
  491. mask: true
  492. });
  493. getDetail(obj).then(res => {
  494. if (res.data.corpsFilesList.length) {
  495. res.data.corpsFilesList.forEach(item => {
  496. item.name = item.fileName
  497. })
  498. }
  499. if (res.data.businessLicense) {
  500. res.data.businessLicense = JSON.parse(res.data.businessLicense)
  501. }
  502. if (res.data.label) {
  503. res.data.label = res.data.label?res.data.label.split(","):[]
  504. }
  505. this.form = res.data
  506. })
  507. .finally(() => {
  508. uni.hideLoading()
  509. });
  510. },
  511. async approval() {
  512. let obj = await this.convertData(this.$deepClone(this.form))
  513. let _this = this
  514. uni.showModal({
  515. title: '提示',
  516. content: '是否通过审批?',
  517. confirmText: '通过',
  518. cancelText: '驳回',
  519. success: function(res) {
  520. if (res.confirm) {
  521. obj.type = 1
  522. uni.showLoading({
  523. title: '加载中',
  524. mask: true
  525. });
  526. review(obj).then(res => {
  527. uni.showToast({
  528. title: '操作成功',
  529. icon: 'none',
  530. duration: 2000
  531. });
  532. _this.getDetail(res.data.id)
  533. })
  534. .finally(() => {
  535. uni.hideLoading()
  536. });
  537. } else if (res.cancel) {
  538. obj.type = 2
  539. uni.showLoading({
  540. title: '加载中',
  541. mask: true
  542. });
  543. review(obj).then(res => {
  544. uni.showToast({
  545. title: '操作成功',
  546. icon: 'none',
  547. duration: 2000
  548. });
  549. _this.getDetail(res.data.id)
  550. })
  551. .finally(() => {
  552. uni.hideLoading()
  553. });
  554. }
  555. }
  556. });
  557. },
  558. async convertData(obj) {
  559. if (obj.corpsFilesList.length) {
  560. obj.corpsFilesList.forEach((item, index) => {
  561. if (index == 0) {
  562. item.mainImage = 1
  563. }
  564. item.fileName = item.name
  565. })
  566. }
  567. if (obj.businessLicense) {
  568. obj.businessLicense = JSON.stringify(obj.businessLicense)
  569. }
  570. obj.label = obj.label?obj.label.join(","):null
  571. if (obj.signingPeriodEnd) {
  572. obj.signingPeriodEnd = obj.signingPeriodEnd.slice(0, 10) + ' 00:00:00'
  573. }
  574. return obj
  575. }
  576. }
  577. }
  578. </script>
  579. <style lang="scss" scoped>
  580. .right-align {
  581. text-align: right;
  582. }
  583. .photo {
  584. margin-left: 20rpx;
  585. width: 38rpx;
  586. height: 32rpx;
  587. }
  588. ::v-deep .uni-section .uni-section-header {
  589. font-weight: bold !important;
  590. padding: 12px 0px !important;
  591. border-bottom: 2px solid #F6F6F6;
  592. }
  593. ::v-deep .uni-file-picker__container {
  594. justify-content: flex-end !important;
  595. }
  596. .slot-content-item {
  597. border-radius: 13rpx;
  598. border: 2rpx solid #03803B;
  599. padding: 1rpx 5rpx;
  600. color: #03803B;
  601. }
  602. .slot-content-item-placeholder {
  603. font-weight: 400 !important;
  604. font-size: 28rpx !important;
  605. height: 38rpx !important;
  606. color: #B5B4B4 !important;
  607. }
  608. .slot-box {
  609. gap: 5px;
  610. display: flex;
  611. flex-wrap: wrap;
  612. justify-content: flex-end;
  613. width: 100%;
  614. }
  615. .popup-content {
  616. background: #fff;
  617. padding: 40rpx 20rpx;
  618. border-radius: 24rpx 24rpx 0 0;
  619. }
  620. .popup-content-checkbox {
  621. height: 600rpx;
  622. }
  623. .confirm-btn {
  624. margin-top: 30rpx;
  625. color: #ffffff;
  626. background: #03803B;
  627. width: 400rpx;
  628. }
  629. </style>