index.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979
  1. <template>
  2. <view :data-theme="theme">
  3. <view v-if="!successful">
  4. <form report-submit='true'>
  5. <view class='merchantsSettled'>
  6. <view class="merchantBg">
  7. <image class="bag" :src="merchantBg" alt="" srcset="" />
  8. </view>
  9. <view v-if="!merchantData.name" class="application-record" @click="jumpToList">
  10. 申请记录
  11. <text class="iconfont icon-xiangyou"></text>
  12. </view>
  13. <view class='list'>
  14. <view class="item">
  15. <view class="acea-row row-middle required">
  16. <text class="item-name">商户名称</text>
  17. <input :disabled="merchantData.auditStatus&&parseFloat(merchantData.auditStatus)<3"
  18. type="text" :maxlength="isCn ? '16' : '16'" placeholder="商户名称"
  19. v-model="merchantData.name" @change="validateBtn" placeholder-class='placeholder' />
  20. </view>
  21. </view>
  22. <view class="item">
  23. <view class="acea-row row-middle required">
  24. <text class="item-name">用户姓名</text>
  25. <input :disabled="merchantData.auditStatus&&parseFloat(merchantData.auditStatus)<3"
  26. type="text" placeholder="用户姓名" v-model="merchantData.realName" @change="validateBtn"
  27. placeholder-class='placeholder' />
  28. </view>
  29. </view>
  30. <view class="item">
  31. <view class="acea-row row-middle required">
  32. <text class="item-name">联系电话</text>
  33. <input :disabled="merchantData.auditStatus&&parseFloat(merchantData.auditStatus)<3"
  34. type="number" class="texts" v-model="merchantData.phone" placeholder="联系电话"
  35. style="margin:0;width: 252rpx;" />
  36. </view>
  37. </view>
  38. <view class="item rel"
  39. v-if="(isKey&&parseFloat(merchantData.auditStatus)>2) || (!isKey&&!merchantData.auditStatus)">
  40. <view class="acea-row row-middle required">
  41. <text class="item-name">验证码</text>
  42. <input :disabled="merchantData.auditStatus&&parseFloat(merchantData.auditStatus)<3"
  43. type="text" placeholder="验证码" v-model="merchantData.captcha" @change="validateBtn"
  44. class="codeIput" placeholder-class='placeholder' />
  45. <button class="code" :disabled="disabled" :class="disabled === true ? 'on' : ''"
  46. @click="code">
  47. {{ text }}
  48. </button>
  49. </view>
  50. </view>
  51. <view class="item">
  52. <view class="uni-list">
  53. <view class="uni-list-cell">
  54. <view class="uni-list-cell-db acea-row row-middle required">
  55. <text class="item-name">商户分类</text>
  56. <picker
  57. :disabled="merchantData.auditStatus&&parseFloat(merchantData.auditStatus)<3"
  58. @change="bindPickerChange" :value="merchantCategoryIndex"
  59. :range="merchantClassify" range-key="name">
  60. <input placeholder="商户分类" type="text" readonly disabled
  61. v-model="merchantCategoryName" @change="validateBtn">
  62. <view class='iconfont icon-xiangyou'></view>
  63. </picker>
  64. </view>
  65. </view>
  66. </view>
  67. </view>
  68. <view class="item">
  69. <view class="uni-list">
  70. <view class="uni-list-cell">
  71. <view class="uni-list-cell-db acea-row row-middle required">
  72. <text class="item-name">商户类型</text>
  73. <picker
  74. :disabled="merchantData.auditStatus&&parseFloat(merchantData.auditStatus)<3"
  75. @change="bindPickerChange1" :value="merchantTypeIndex" :range="merchantType"
  76. range-key="name">
  77. <input placeholder="商户类型" type="text" readonly disabled
  78. v-model="merchantTypeName" @change="validateBtn">
  79. <view class='iconfont icon-xiangyou'></view>
  80. </picker>
  81. </view>
  82. </view>
  83. </view>
  84. </view>
  85. <view class="item">
  86. <view class="acea-row row-middle">
  87. <text class="item-name">关键字</text>
  88. <input :disabled="merchantData.auditStatus&&parseFloat(merchantData.auditStatus)<3"
  89. type="text" maxlength="30" placeholder="关键字" v-model="merchantData.keywords"
  90. placeholder-class='placeholder' />
  91. </view>
  92. </view>
  93. <view class="item no-border">
  94. <text class="acea-row row-middle required item-title">请上传营业执照及行业相关资质证明图片</text>
  95. <text v-if="merchantTypeInfo" class="item-title">( {{merchantTypeInfo}} )</text>
  96. <text class="item-desc">(图片最多可上传5张,格式支持JPG、PNG、JPEG)</text>
  97. <view class="upload">
  98. <view class='pictrue' v-for="(item,index) in pics" :key="index" :data-index="index"
  99. @click="getPhotoClickIdx">
  100. <image :src='item'></image>
  101. <text
  102. v-if="(isKey&&parseFloat(merchantData.auditStatus)>2) || (!isKey&&!merchantData.auditStatus)"
  103. class='iconfont icon-guanbi1' @click.stop='DelPic(index)'></text>
  104. </view>
  105. <view class='pictrue acea-row row-center-wrapper row-column' @click='uploadpic'
  106. v-if="pics.length < 5 && ((isKey&&parseFloat(merchantData.auditStatus)>2) || (!isKey&&!merchantData.auditStatus))">
  107. <text class='iconfont icon-icon25201'></text>
  108. <view>上传凭证</view>
  109. </view>
  110. </view>
  111. </view>
  112. <view
  113. v-if="(isKey&&parseFloat(merchantData.auditStatus)>2) || (!isKey&&!merchantData.auditStatus)"
  114. class="item no-border acea-row row-center row-middle">
  115. <checkbox-group @change='ChangeIsAgree' class="acea-row row-middle">
  116. <checkbox class="checkbox" :checked="isAgree ? true : false" />
  117. <span class="ml-4">已阅读并同意</span>
  118. </checkbox-group>
  119. <button class="settleAgree" @click="showProtocol = true">《入驻协议》</button>
  120. </view>
  121. <button
  122. v-if="(isKey&&parseFloat(merchantData.auditStatus)>2) || (!isKey&&!merchantData.auditStatus)"
  123. :disabled="merchantData.auditStatus&&parseFloat(merchantData.auditStatus)<3"
  124. class='submitBtn' :class="successful === true ? 'on':''" @click="formSubmit">提交申请</button>
  125. </view>
  126. </view>
  127. </form>
  128. <view class="settlementAgreement" v-if="showProtocol">
  129. <view class="setAgCount">
  130. <i class="icon iconfont icon-guanbi" @click="showProtocol = false"></i>
  131. <div class="title">商户入驻协议</div>
  132. <view class="content">
  133. <jyf-parser :html="protocol" ref="article" :tag-style="tagStyle"></jyf-parser>
  134. </view>
  135. </view>
  136. </view>
  137. <view class='loadingicon acea-row row-center-wrapper' v-if="loading">
  138. <text class='loading iconfont icon-jiazai' :hidden='loading==false'></text>
  139. </view>
  140. </view>
  141. <view class="settledSuccessMain" v-else>
  142. <view class="settledSuccessful">
  143. <image class="image" src="../static/images/settledSuccessful.svg" alt="" />
  144. <view class="title">恭喜,您的资料提交成功!</view>
  145. <view class="info">预计15个工作日内审核完毕,平台客服会及时与您联系!</view>
  146. <view class="goHome" hover-class="none" @click="goHome">
  147. 返回首页
  148. </view>
  149. </view>
  150. </view>
  151. <Verify @success="handlerOnVerSuccess" :captchaType="'clickWord'" :imgSize="{ width: '330px', height: '155px' }"
  152. ref="verify"></Verify>
  153. </view>
  154. </template>
  155. <script>
  156. // +----------------------------------------------------------------------
  157. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  158. // +----------------------------------------------------------------------
  159. // | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
  160. // +----------------------------------------------------------------------
  161. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  162. // +----------------------------------------------------------------------
  163. // | Author: CRMEB Team <admin@crmeb.com>
  164. // +----------------------------------------------------------------------
  165. import {
  166. agreementInfo
  167. } from '@/api/api.js'
  168. import {
  169. toLogin
  170. } from '@/libs/login.js';
  171. import {
  172. getMerSettledApplyApi,
  173. sendSettledCodeApi,
  174. } from '@/api/merchant.js';
  175. import {
  176. mapGetters
  177. } from "vuex";
  178. import parser from "../components/jyf-parser/jyf-parser";
  179. import sendVerifyCode from "@/mixins/SendVerifyCode";
  180. import Verify from '../components/verifition/verify.vue';
  181. import {
  182. Debounce
  183. } from '@/utils/validate.js'
  184. const app = getApp();
  185. export default {
  186. components: {
  187. "jyf-parser": parser,
  188. Verify
  189. },
  190. watch: {
  191. 'merchantData.name': function(val) {
  192. let pattern = new RegExp('[\u4E00-\u9FA5]+');
  193. let pattern2 = new RegExp('[A-Za-z]+');
  194. if (pattern.test(val)) {
  195. this.isCn = true;
  196. } else if (pattern2.test(val)) {
  197. this.isCn = false;
  198. }
  199. },
  200. },
  201. data() {
  202. return {
  203. windowHeight: app.globalData.windowHeight,
  204. isCn: true,
  205. text: '获取验证码',
  206. disabled: false,
  207. isAgree: false,
  208. showProtocol: false,
  209. isShowCode: false,
  210. loading: false,
  211. merchantData: {
  212. name: "",
  213. realName: "",
  214. phone: "",
  215. captcha: '',
  216. categoryId: 0,
  217. handlingFee: '',
  218. keywords: '',
  219. qualificationPicture: '',
  220. typeId: 0
  221. },
  222. validate: false,
  223. successful: false,
  224. codeVal: "",
  225. protocol: "",
  226. timer: "",
  227. merchantCategoryIndex: 0,
  228. merchantTypeIndex: 0,
  229. merchantCategoryName: '',
  230. merchantTypeName: '',
  231. pics: [],
  232. tagStyle: {
  233. img: 'width:100%;display:block;'
  234. },
  235. checkType: 'country',
  236. country: 'China',
  237. isType: false,
  238. merchantTypeInfo: '',
  239. theme: app.globalData.theme,
  240. merchantBg: '',
  241. isKey: '',
  242. };
  243. },
  244. mixins: [sendVerifyCode],
  245. beforeDestroy() {
  246. clearTimeout(this.timer)
  247. },
  248. computed: mapGetters(['globalData','isLogin', 'merchantClassify', 'merchantType', 'merSttledData']),
  249. mounted() {
  250. this.$store.dispatch('MerCategoryList');
  251. this.$store.dispatch('MerTypeList');
  252. this.merchantBg = `../static/images/${this.theme}.jpg`;
  253. },
  254. onShow() {
  255. if (!this.isLogin) {
  256. toLogin();
  257. }
  258. this.getConfig()
  259. },
  260. onLoad(options) {
  261. let that = this;
  262. uni.getSystemInfo({
  263. success: function(res) {
  264. that.windowHeight = res.windowHeight + 'px'
  265. },
  266. });
  267. if (options.key !== '1') {
  268. this.$store.commit('MERSTTLEDDATA', {});
  269. this.isKey = '';
  270. } else {
  271. this.isKey = options.key;
  272. }
  273. this.merchantData = Object.assign({}, this.merSttledData);
  274. if (this.merchantData.qualificationPicture) {
  275. this.pics = this.merchantData.qualificationPicture;
  276. }
  277. let idx = this.merchantData.categoryId;
  278. let index = this.merchantClassify.findIndex(item => item.id == idx);
  279. this.merchantCategoryIndex = index;
  280. if (this.merchantClassify[index]) {
  281. this.merchantCategoryName = this.merchantClassify[index].name;
  282. this.merchantData.handlingFee = this.merchantClassify[index].handlingFee;
  283. }
  284. let idxn = this.merchantData.typeId;
  285. let indexn = this.merchantType.findIndex(item => item.id == idxn);
  286. this.merchantTypeIndex = indexn;
  287. if (this.merchantType[indexn]) {
  288. this.merchantTypeName = this.merchantType[indexn].name;
  289. this.merchantTypeInfo = this.merchantType[indexn].info;
  290. }
  291. },
  292. methods: {
  293. scroll(){
  294. uni.$emit('scroll');
  295. },
  296. moveHandle() {},
  297. getConfig() {
  298. // 获取配置
  299. agreementInfo('merincomminginfo').then(res => {
  300. if (res.data) {
  301. this.protocol = JSON.parse(res.data).agreement
  302. }
  303. }).catch(err => {
  304. return this.$util.Tips({
  305. title: err
  306. });
  307. });
  308. },
  309. bindPickerChange: function(e) {
  310. this.index = e.target.value
  311. let idx = e.target.value
  312. if (this.merchantClassify[idx]) {
  313. this.merchantData.categoryId = this.merchantClassify[idx]['id']
  314. this.merchantCategoryName = this.merchantClassify[idx]['name']
  315. this.merchantData.handlingFee = this.merchantClassify[idx]['handlingFee']
  316. }
  317. },
  318. bindPickerChange1: function(e) {
  319. this.merchantTypeIndex = e.target.value
  320. let idx = e.target.value
  321. if (this.merchantType[idx]) {
  322. this.merchantData.typeId = this.merchantType[idx]['id']
  323. this.merchantTypeName = this.merchantType[idx]['name']
  324. this.merchantTypeInfo = this.merchantType[idx]['info']
  325. }
  326. },
  327. /*店铺类型说明*/
  328. getAgreement() {
  329. this.showProtocol = true;
  330. this.isType = true
  331. },
  332. // 图片预览
  333. // 获得相册 idx
  334. getPhotoClickIdx(e) {
  335. let _this = this;
  336. let idx = e.currentTarget.dataset.index;
  337. _this.imgPreview(_this.pics, idx);
  338. },
  339. // 图片预览
  340. imgPreview: function(list, idx) {
  341. // list:图片 url 数组
  342. if (list && list.length > 0) {
  343. uni.previewImage({
  344. current: list[idx], // 传 Number H5端出现不兼容
  345. urls: list
  346. });
  347. }
  348. },
  349. toggleTab(str) {
  350. this.$refs[str].show();
  351. },
  352. // 首页
  353. goHome() {
  354. uni.switchTab({
  355. url: '/pages/index/index'
  356. });
  357. },
  358. /**
  359. * 上传文件
  360. *
  361. */
  362. uploadpic: function() {
  363. let that = this;
  364. that.$util.uploadImageOne({
  365. url: 'upload/image',
  366. name: 'multipart',
  367. model: "user",
  368. pid: 0
  369. }, function(res) {
  370. that.pics.push(res);
  371. that.$set(that, 'pics', that.pics);
  372. });
  373. },
  374. /**
  375. * 删除图片
  376. *
  377. */
  378. DelPic: function(index) {
  379. let that = this,
  380. pic = this.pics[index];
  381. that.pics.splice(index, 1);
  382. that.$set(that, 'pics', that.pics);
  383. },
  384. //滑块验证成功后
  385. handlerOnVerSuccess(data) {
  386. this.$refs.verify.hide();
  387. this.codeSend();
  388. },
  389. codeSend() {
  390. sendSettledCodeApi({
  391. phone: this.merchantData.phone
  392. }).then(res => {
  393. this.$util.Tips({
  394. title: res.message
  395. });
  396. this.sendCode();
  397. }).catch(err => {
  398. return this.$util.Tips({
  399. title: err
  400. });
  401. });
  402. },
  403. code: Debounce(function() {
  404. if (this.disabled) return;
  405. if (!this.merchantData.phone) return this.$util.Tips({
  406. title: '请填写手机号'
  407. });
  408. this.$refs.verify.show();
  409. }),
  410. onConfirm(val) {
  411. this.region = val.checkArr[0] + '-' + val.checkArr[1] + '-' + val.checkArr[2];
  412. },
  413. ChangeIsAgree: function(e) {
  414. this.isAgree = !this.isAgree;
  415. this.validateBtn();
  416. },
  417. formSubmit: Debounce(function(e) {
  418. if (this.validateForm() && this.validate) {
  419. if (this.pics.length == 0) return this.$util.Tips({
  420. title: "请上传资质图片"
  421. });
  422. if (this.pics) {
  423. this.merchantData.qualificationPicture = JSON.stringify(this.pics)
  424. }
  425. this.merchantData.address = this.country + ',' + this.address
  426. getMerSettledApplyApi(this.merchantData).then(data => {
  427. this.loading = true;
  428. this.timer = setTimeout(() => {
  429. this.successful = true;
  430. }, 1000)
  431. }).catch(res => {
  432. this.$util.Tips({
  433. title: res
  434. });
  435. })
  436. }
  437. }),
  438. validateBtn: function() {
  439. let that = this,
  440. value = that.merchantData;
  441. if (value.name && value.realName && value.categoryId &&
  442. value.captcha && that.isAgree && value.typeId && value.pics) {
  443. if (that.codeVal) {
  444. that.validate = true;
  445. } else {
  446. that.validate = false;
  447. }
  448. }
  449. },
  450. validateForm: function() {
  451. let that = this,
  452. value = that.merchantData;
  453. if (!value.name) return that.$util.Tips({
  454. title: '请输入商户名称'
  455. });
  456. if (!value.realName) return that.$util.Tips({
  457. title: '请输入姓名'
  458. });
  459. if (!value.captcha) return that.$util.Tips({
  460. title: '请填写验证码'
  461. });
  462. if (!value.categoryId) return that.$util.Tips({
  463. title: '请选择商户分类'
  464. });
  465. if (!that.isAgree) return that.$util.Tips({
  466. title: '请勾选并同意入驻协议'
  467. });
  468. that.validate = true;
  469. return true;
  470. },
  471. jumpToList() {
  472. uni.navigateTo({
  473. url: "/pages/merchant/application_record/index"
  474. })
  475. },
  476. }
  477. }
  478. </script>
  479. <style scoped lang="scss">
  480. /deep/.uni-scroll-view{
  481. overflow: hidden auto !important;
  482. }
  483. .select_code {
  484. width: 16px;
  485. height: 8px;
  486. display: inline-block;
  487. margin-left: 16rpx;
  488. }
  489. .flag {
  490. width: 40rpx;
  491. height: 26rpx;
  492. display: inline-block;
  493. }
  494. .uni-input-placeholder {
  495. color: #B2B2B2;
  496. }
  497. .item-name {
  498. width: 160rpx;
  499. }
  500. .uni-list-cell {
  501. position: relative;
  502. .iconfont {
  503. font-size: 14px;
  504. color: #7a7a7a;
  505. position: absolute;
  506. right: 15px;
  507. top: 7rpx;
  508. }
  509. .icon-guanbi2 {
  510. right: 35px;
  511. }
  512. }
  513. .merchantsSettled {
  514. @include main_bg_color(theme);
  515. height: 140vh;
  516. }
  517. .merchantsSettled .merchantBg {
  518. width: 100%;
  519. height: 900rpx;
  520. .bag {
  521. width: 100%;
  522. height: 100%;
  523. }
  524. .merchantBg-title {
  525. text-align: center;
  526. color: #fff;
  527. font-size: 60rpx;
  528. font-weight: 600;
  529. margin-bottom: 20rpx;
  530. }
  531. .merchantBg-join {
  532. text-align: center;
  533. color: #fff;
  534. font-size: 36rpx;
  535. }
  536. }
  537. .merchantsSettled .list {
  538. background-color: #fff;
  539. border-radius: 12px;
  540. margin: 0 24rpx;
  541. position: absolute;
  542. top: 417rpx;
  543. width: calc(100% - 24px);
  544. }
  545. .application-record {
  546. position: absolute;
  547. display: flex;
  548. align-items: center;
  549. top: 318rpx;
  550. right: 0;
  551. color: #fff;
  552. font-size: 22rpx;
  553. background-color: rgba(0, 0, 0, 0.3);
  554. padding: 8rpx 18rpx;
  555. border-radius: 20px 0px 0px 20px;
  556. }
  557. .merchantsSettled .list .item {
  558. padding: 40rpx 0 12px;
  559. border-bottom: 1rpx solid #eee;
  560. position: relative;
  561. margin: 0 20rpx;
  562. &.no-border {
  563. border-bottom: none;
  564. padding-left: 0;
  565. padding-right: 0;
  566. }
  567. .item-title {
  568. color: #666666;
  569. font-size: 28rpx;
  570. display: block;
  571. }
  572. .item-desc {
  573. color: #B2B2B2;
  574. font-size: 22rpx;
  575. display: block;
  576. margin-top: 9rpx;
  577. line-height: 36rpx;
  578. }
  579. }
  580. .acea-row,
  581. .upload {
  582. display: -webkit-box;
  583. display: -moz-box;
  584. display: -webkit-flex;
  585. display: -ms-flexbox;
  586. display: flex;
  587. -webkit-box-lines: multiple;
  588. -moz-box-lines: multiple;
  589. -o-box-lines: multiple;
  590. -webkit-flex-wrap: wrap;
  591. -ms-flex-wrap: wrap;
  592. flex-wrap: wrap;
  593. }
  594. .upload {
  595. margin-top: 20rpx;
  596. }
  597. .merchantsSettled .list .item .pictrue {
  598. width: 130rpx;
  599. height: 130rpx;
  600. margin: 24rpx 22rpx 0 0;
  601. position: relative;
  602. font-size: 11px;
  603. color: #bbb;
  604. &:nth-child(4n) {
  605. margin-right: 0;
  606. }
  607. &:nth-last-child(1) {
  608. border: 0.5px solid #ddd;
  609. box-sizing: border-box;
  610. }
  611. uni-image,
  612. image {
  613. width: 100%;
  614. height: 100%;
  615. border-radius: 1px;
  616. img {
  617. -webkit-touch-callout: none;
  618. -webkit-user-select: none;
  619. -moz-user-select: none;
  620. display: block;
  621. position: absolute;
  622. top: 0;
  623. left: 0;
  624. opacity: 0;
  625. width: 100%;
  626. height: 100%;
  627. }
  628. }
  629. .icon-guanbi1 {
  630. font-size: 33rpx;
  631. position: absolute;
  632. top: -10px;
  633. right: -10px;
  634. }
  635. }
  636. .uni-list-cell-db {
  637. position: relative;
  638. }
  639. .wenhao {
  640. width: 34rpx;
  641. height: 34rpx;
  642. display: flex;
  643. align-items: center;
  644. justify-content: center;
  645. font-size: 28rpx;
  646. border-radius: 50%;
  647. background: #E3E3E3;
  648. color: #ffffff !important;
  649. margin-left: 4rpx;
  650. position: absolute;
  651. left: 122rpx;
  652. }
  653. .merchantsSettled .list .item .imageCode {
  654. position: absolute;
  655. top: 7px;
  656. right: 0;
  657. }
  658. .merchantsSettled .list .item .icon {
  659. font-size: 40rpx;
  660. color: #b4b1b4;
  661. }
  662. .merchantsSettled .list .item input {
  663. width: 470rpx;
  664. font-size: 30rpx;
  665. }
  666. .merchantsSettled .list .item .placeholder {
  667. color: #b2b2b2;
  668. }
  669. .merchantsSettled .default {
  670. padding: 0 30rpx;
  671. height: 90rpx;
  672. background-color: #fff;
  673. margin-top: 23rpx;
  674. }
  675. .merchantsSettled .default checkbox {
  676. margin-right: 15rpx;
  677. }
  678. .merchantsSettled .acea-row uni-image {
  679. // width: 20px;
  680. // height: 20px;
  681. display: block;
  682. }
  683. .merchantsSettled .list .item .codeIput {
  684. width: 125px;
  685. }
  686. .uni-input-input {
  687. display: block;
  688. height: 100%;
  689. background: none;
  690. color: inherit;
  691. opacity: 1;
  692. -webkit-text-fill-color: currentcolor;
  693. font: inherit;
  694. line-height: inherit;
  695. letter-spacing: inherit;
  696. text-align: inherit;
  697. text-indent: inherit;
  698. text-transform: inherit;
  699. text-shadow: inherit;
  700. }
  701. .merchantsSettled .list .item .code {
  702. position: absolute;
  703. width: 93px;
  704. line-height: 27px;
  705. @include coupons_border_color(theme);
  706. border-radius: 15px;
  707. @include main_color(theme);
  708. text-align: center;
  709. bottom: 8px;
  710. right: 0;
  711. font-size: 12px;
  712. }
  713. .merchantsSettled .list .item .code.on {
  714. background-color: #bbb;
  715. color: #fff;
  716. border-color: #bbb;
  717. }
  718. .merchantsSettled .submitBtn {
  719. width: 588rpx;
  720. margin: 25px auto 25px auto;
  721. height: 86rpx;
  722. border-radius: 25px;
  723. text-align: center;
  724. line-height: 86rpx;
  725. font-size: 15px;
  726. color: #fff;
  727. @include main_bg_color(theme);
  728. }
  729. .merchantsSettled .submitBtn.on {
  730. @include main_bg_color(theme);
  731. }
  732. uni-checkbox-group,
  733. .settleAgree {
  734. display: inline-block;
  735. font-size: 24rpx;
  736. }
  737. uni-checkbox-group {
  738. color: #b2b2b2 !important;
  739. }
  740. checkbox /deep/.uni-checkbox-input.uni-checkbox-input-checked {
  741. @include coupons_border_color(theme);
  742. @include main_color(theme);
  743. }
  744. .settleAgree {
  745. @include main_color(theme);
  746. }
  747. .merchantsSettled uni-checkbox .uni-checkbox-wrapper {
  748. width: 30rpx;
  749. height: 30rpx;
  750. border: 2rpx solid #C3C3C3;
  751. border-radius: 15px;
  752. }
  753. .settlementAgreement {
  754. width: 100%;
  755. height: 100%;
  756. position: fixed;
  757. top: 0;
  758. left: 0;
  759. background: rgba(0, 0, 0, .5);
  760. z-index: 10;
  761. }
  762. .settlementAgreement .setAgCount {
  763. background: #fff;
  764. width: 656rpx;
  765. height: 458px;
  766. position: absolute;
  767. top: 50%;
  768. left: 50%;
  769. border-radius: 12rpx;
  770. -webkit-border-radius: 12rpx;
  771. padding: 20rpx 52rpx !important;
  772. -webkit-transform: translate(-50%, -50%);
  773. -moz-transform: translate(-50%, -50%);
  774. transform: translate(-50%, -50%);
  775. overflow-y: scroll;
  776. .content {
  777. height: 740rpx !important;
  778. overflow-y: scroll;
  779. /deep/ p {
  780. font-size: 13px;
  781. line-height: 22px;
  782. }
  783. /deep/ img {
  784. max-width: 100%;
  785. }
  786. }
  787. }
  788. .settlementAgreement .setAgCount .icon {
  789. font-size: 24rpx;
  790. color: #b4b1b4;
  791. position: absolute;
  792. top: 40rpx;
  793. right: 15rpx;
  794. }
  795. .settlementAgreement .setAgCount .title {
  796. color: #333;
  797. font-size: 32rpx;
  798. text-align: center;
  799. font-weight: bold;
  800. }
  801. .settlementAgreement .setAgCount .content {
  802. margin-top: 32rpx;
  803. color: #333;
  804. font-size: 26rpx;
  805. line-height: 22px;
  806. text-align: justify;
  807. text-justify: distribute-all-lines;
  808. height: 756rpx;
  809. overflow-y: scroll;
  810. }
  811. .settledSuccessMain {
  812. height: 100vh;
  813. display: flex;
  814. flex-direction: column;
  815. background: #fff;
  816. }
  817. .settledSuccessful {
  818. flex: 1;
  819. width: 100%;
  820. padding: 0 56px;
  821. height: auto;
  822. background: #fff;
  823. text-align: center;
  824. }
  825. .settledSuccessful .image {
  826. width: 189px;
  827. height: 157px;
  828. margin-top: 66px;
  829. }
  830. .settledSuccessful .title {
  831. color: #333333;
  832. font-size: 16px;
  833. font-weight: bold;
  834. margin-top: 35px;
  835. }
  836. .settledSuccessful .info {
  837. color: #A0A0A0;
  838. font-size: 13px;
  839. margin-top: 12px;
  840. }
  841. .settledSuccessful .goHome {
  842. margin: 60px auto 0;
  843. line-height: 43px;
  844. color: #282828;
  845. font-size: 15px;
  846. border: 1px solid #B4B4B4;
  847. border-radius: 60px;
  848. }
  849. /deep/ uni-checkbox .uni-checkbox-input {
  850. width: 15px;
  851. height: 15px;
  852. margin-right: 10rpx;
  853. position: relative;
  854. }
  855. /deep/ uni-checkbox .uni-checkbox-input.uni-checkbox-input-checked:before {
  856. font-size: 14px;
  857. }
  858. .loadingicon {
  859. height: 100vh;
  860. overflow: hidden;
  861. position: absolute;
  862. top: 0;
  863. left: 0;
  864. }
  865. .icon-xiangyou {
  866. font-size: 22rpx;
  867. }
  868. // #ifdef MP
  869. checkbox-group {
  870. display: inline-block;
  871. }
  872. // #endif
  873. .setAgCount {
  874. /deep/ table {
  875. border: 1rpx solid #DDD;
  876. border-bottom: none;
  877. border-right: none;
  878. }
  879. /deep/ td,
  880. th {
  881. padding: 5rpx 10rpx;
  882. border-bottom: 1rpx solid #DDD;
  883. border-right: 1rpx solid #DDD;
  884. }
  885. }
  886. .required::before {
  887. content: '* ';
  888. color: red;
  889. margin-right: 4rpx;
  890. }
  891. /deep/.uni-input-input {
  892. width: 85%;
  893. overflow: hidden;
  894. text-overflow: ellipsis;
  895. white-space: nowrap
  896. }
  897. </style>