index.vue 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804
  1. <template>
  2. <view class="container">
  3. <view class="step-bar">
  4. <view v-for="(step, index) in steps" :key="index">
  5. <view >
  6. <view class="h-num">
  7. <text>{{ index + 1 }}</text>
  8. </view>
  9. <view v-if="index !== steps.length - 1" class="separator"></view>
  10. </view>
  11. <view class="">{{ step }}</view>
  12. </view>
  13. </view>
  14. <view class="form">
  15. <view v-if="currentStep === 0" class="h-content-wrap">
  16. <u--form labelPosition="top" :model="userInfo" :rules="rules" ref="form1">
  17. <u-form-item labelWidth="auto" labelAlign="right" label="老系统手机号" prop="phone">
  18. <u--input v-model="userInfo.phone" disabledColor="#ffffff" placeholder="填写老系统电话" border="bottom"
  19. maxlength="11"></u--input>
  20. </u-form-item>
  21. <u-form-item label="老系统会员姓名" prop="memberName" labelPosition="top" labelWidth="auto" labelAlign="right">
  22. <u--input v-model="userInfo.memberName" disabledColor="#ffffff" placeholder="填写姓名" border="bottom"
  23. maxlength="16"></u--input>
  24. </u-form-item>
  25. <u-form-item label="当前手机号" prop="phonenumber" labelWidth="auto" labelAlign="right">
  26. <u--input v-model="userInfo.phonenumber" disabledColor="#ffffff" placeholder="填写当前手机号"
  27. border="bottom" maxlength="11"></u--input>
  28. </u-form-item>
  29. <u-form-item labelWidth="auto" labelAlign="right" label="验证码" prop="smsCode" width="120">
  30. <u--input v-model="userInfo.smsCode" disabledColor="#ffffff" placeholder="请输入验证码" border="bottom"
  31. maxlength="6"></u--input>
  32. <template #right>
  33. <view class="identifying-code">
  34. <u-code ref="uCode2" @change="codeChange2" keep-running start-text="获取验证码"></u-code>
  35. <text @tap="getCode2" :text="tips2" class="u-page__code-text">{{ tips2 }}</text>
  36. </view>
  37. </template>
  38. </u-form-item>
  39. </u--form>
  40. </view>
  41. <view v-if="currentStep === 1">
  42. <view class="h-content">
  43. <view class="h-basic-info">
  44. <view class="h-value">
  45. <view class="h-name">会员编号</view>
  46. <view class="h-text">{{ userMemberInfo.memberNo }}</view>
  47. </view>
  48. <view class="h-value">
  49. <view class="h-name">会员卡号</view>
  50. <view class="h-text">{{ userMemberInfo.memberCard }}</view>
  51. </view>
  52. <view class="h-value">
  53. <view class="h-name">会员姓名</view>
  54. <view class="h-text">{{ userMemberInfo.memberName }}</view>
  55. </view>
  56. <view class="h-value">
  57. <view class="h-name">手机号码</view>
  58. <view class="h-text">{{ userMemberInfo.phone }}</view>
  59. </view>
  60. <view class="h-value">
  61. <view class="h-name">积分</view>
  62. <view class="h-text">{{ userMemberInfo.integral }}</view>
  63. </view>
  64. <view class="h-value">
  65. <view class="h-name">账户余额</view>
  66. <view class="h-text">¥{{ userMemberInfo.nowBalance }}</view>
  67. </view>
  68. <!-- <view class="h-value">
  69. <view class="h-name">赠送余额</view>
  70. <view class="h-text">¥{{userMemberInfo.nowBalance}}</view>
  71. </view> -->
  72. </view>
  73. <view class="h-record">
  74. <!-- 导航-->
  75. <view class="service-order-tab-bar">
  76. <view class="service-order-tab-item" :class="{ active: currentServiceTab === 'orderTab1' }"
  77. @click="changeServiceTab('orderTab1')">
  78. <text :class="{ underline: currentServiceTab === 'orderTab1' }">充值记录</text>
  79. </view>
  80. <view class="service-order-tab-item" :class="{ active: currentServiceTab === 'orderTab2' }"
  81. @click="changeServiceTab('orderTab2')">
  82. <text :class="{ underline: currentServiceTab === 'orderTab2' }">消费记录</text>
  83. </view>
  84. </view>
  85. <view class="custom-line"></view>
  86. <!-- order -->
  87. <view v-if="currentServiceTab == 'orderTab1'" class="store-order-wrap">
  88. <view v-for="(item, index) in memberInfoRecords" class="store-order">
  89. <view class="h-content">
  90. <view class="h-row">
  91. <view class="h-value">
  92. <text>储值记录</text>
  93. </view>
  94. <view class="h-value">
  95. <text>+ ¥{{ item.rechargeAmount }}</text>
  96. </view>
  97. </view>
  98. <view class="h-row">
  99. <view class="h-value">
  100. <text class="h-text">{{ item.rechargeTime }}</text>
  101. </view>
  102. <view class="h-value h-name">
  103. <text class="h-text">账户余额:¥{{ item.nowBalance }}</text>
  104. </view>
  105. </view>
  106. </view>
  107. <view class="custom-line"></view>
  108. </view>
  109. </view>
  110. <view v-if="currentServiceTab == 'orderTab2'" class="store-order-wrap">
  111. <view v-for="(item, index) in memberInfoRecords" class="store-order">
  112. <view class="h-content">
  113. <view class="h-row">
  114. <view class="h-value">
  115. <text>消费记录</text>
  116. </view>
  117. <view class="h-value">
  118. <text>- ¥{{ item.consumeAmount }}</text>
  119. </view>
  120. </view>
  121. <view class="h-row">
  122. <view class="h-value">
  123. <text class="h-text">{{ item.consumeTime }}</text>
  124. </view>
  125. <view class="h-value h-name">
  126. <text class="h-text">账户余额:¥{{ item.nowBalance }}</text>
  127. </view>
  128. </view>
  129. </view>
  130. <view class="custom-line"></view>
  131. </view>
  132. </view>
  133. </view>
  134. </view>
  135. </view>
  136. <view v-if="currentStep === 2" class="">
  137. <view class="letter-commitment">
  138. <view class="h-title">
  139. <text>个人信息真实承诺书</text>
  140. </view>
  141. <view class="">
  142. <text>会员姓名:{{ userInfo.memberName }}</text>
  143. </view>
  144. <view class="">
  145. <text>老系统手机号: {{ userInfo.phone }}</text>
  146. </view>
  147. <view class="">
  148. <text>当前手机号: {{ userInfo.phonenumber }}</text>
  149. </view>
  150. <view class="">
  151. <text>为系统迁移: 本人郑重承诺</text>
  152. </view>
  153. <view class="h-content">
  154. <view class="" v-html="termOfService.aboutContent"></view>
  155. </view>
  156. </view>
  157. </view>
  158. </view>
  159. <view v-if="currentStep === 3" class="">
  160. <view class="h-content-step-end">
  161. <view class="h-success">
  162. <u-icon name="edit-pen-fill" color="#333" size="30"></u-icon>
  163. </view>
  164. <view class="h-name">
  165. <text>账户迁移成功</text>!
  166. </view>
  167. <view @click="nextStep(3)" class="h-btn">
  168. <text>确认</text>
  169. </view>
  170. </view>
  171. </view>
  172. <view v-if="currentStep == 0" class="button-group">
  173. <!-- <button @click="prevStep" :disabled="currentStep === 0">上一步</button> -->
  174. <button class="h-btn" @click="nextStep(0)" :disabled="currentStep === steps.length - 1">开始查询</button>
  175. </view>
  176. <view v-if="currentStep == 1" class="button-group">
  177. <button @click="prevStep" :disabled="currentStep === 0">上一步</button>
  178. <view class="h-btn" @click="nextStep(1)" :disabled="currentStep === steps.length - 1">
  179. <text>下一步</text>
  180. </view>
  181. </view>
  182. <view v-if="currentStep == 2" class="button-group">
  183. <button @click="prevStep" :disabled="currentStep === 0">上一步</button>
  184. <view class="h-btn" @click="nextStep(2)" :disabled="currentStep === steps.length - 1">
  185. <text>确认并迁移</text>
  186. </view>
  187. </view>
  188. </view>
  189. </template>
  190. <script>
  191. import signature from '../components/sign/sign';
  192. export default {
  193. components: {
  194. signature
  195. },
  196. data() {
  197. return {
  198. showCanvas: false,
  199. currentStep: 0,
  200. steps: ['账户查询', '信息确认', '用户承诺', '账户迁移'], // 步骤条的文字内容
  201. step1Value: '',
  202. step2Value: '',
  203. step3Value: '',
  204. userInfo: {
  205. auth: true,
  206. phone: '',
  207. memberName: '',
  208. phonenumber: '',
  209. smsCode: '',
  210. memberNo: null,
  211. type: 7,
  212. requstForm: true
  213. },
  214. // 服务条款对象信息
  215. termOfService: {
  216. aboutContent: "<p>会员协议会员协议会员协议会员协议会员协议会员协议</p>",
  217. aboutType: "1",
  218. createBy: "admin",
  219. createTime: "2023-07-30 08:53:17",
  220. id: "1685574269874098178",
  221. status: "0",
  222. updateBy: "admin",
  223. updateTime: "2023-07-30 21:04:51"
  224. },
  225. userMemberInfo: {
  226. memberNo: "string",
  227. pingYinCode: "string",
  228. memberName: "string",
  229. integral: 0,
  230. sex: 0,
  231. birthday: "string",
  232. phone: "string",
  233. memberPassword: "string",
  234. height: "string",
  235. weight: "string",
  236. memberCard: "string",
  237. address: "string",
  238. nowBalance: 0,
  239. totalConsumeAmount: 0,
  240. debt: 0,
  241. remarks: "string",
  242. joinTime: "string",
  243. memberStatus: 0,
  244. referencesNo: "string",
  245. consumeCycle: "string",
  246. otherInfo: "string",
  247. photoUrl: "string"
  248. },
  249. memberInfoRecords: [{
  250. orderNo: "string",
  251. memberNo: "string",
  252. memberName: "string",
  253. phone: "string",
  254. consumeAmount: 0,
  255. realPayAmount: 0,
  256. profit: 0,
  257. integral: 0,
  258. remainDebt: 0,
  259. consumeTime: "string",
  260. remarks: "string",
  261. consumeStore: "string",
  262. consumeType: "string",
  263. discountAmount: 0,
  264. bedName: "string",
  265. payInfo: "string",
  266. memberStore: "string",
  267. payType: "string"
  268. }],
  269. show: false,
  270. currentTab: 'tab1', // 当前选中的 Tab
  271. currentServiceTab: 'orderTab1', // 当前选中的 Tab
  272. defaultColor: '#CCCCCC',
  273. currentColor: '#FF0000',
  274. completedColor: '#00FF00',
  275. content: '一、本人所提供的个人信息 证明材料、证件',
  276. signType: '',
  277. signImg1: '',
  278. tips2: '',
  279. rules: {
  280. phone: [
  281. {
  282. required: true,
  283. min: 10,
  284. max: 12,
  285. message: '请输入11位电话号码',
  286. trigger: ['blur', 'change'],
  287. },
  288. {
  289. // 此为同步验证,可以直接返回true或者false,如果是异步验证,稍微不同,见下方说明
  290. validator: (rule, value, callback) => {
  291. // 调用uView自带的js验证规则,详见:https://www.uviewui.com/js/test.html
  292. return !this.$isDataEmpty(value);
  293. },
  294. message: "请认真填写电话号码",
  295. trigger: ['blur', 'change'],
  296. }
  297. ],
  298. memberName: [
  299. {
  300. required: true,
  301. message: '请输入名字',
  302. trigger: ['blur', 'change'],
  303. },
  304. ],
  305. phonenumber: [
  306. {
  307. required: true,
  308. min: 10,
  309. max: 12,
  310. message: '请输入11位电话号码',
  311. trigger: ['blur', 'change'],
  312. },
  313. {
  314. // 此为同步验证,可以直接返回true或者false,如果是异步验证,稍微不同,见下方说明
  315. validator: (rule, value, callback) => {
  316. // 调用uView自带的js验证规则,详见:https://www.uviewui.com/js/test.html
  317. return !this.$isDataEmpty(value);
  318. },
  319. message: "请认真填写电话号码",
  320. trigger: ['blur', 'change'],
  321. }
  322. ],
  323. smsCode: {
  324. required: true,
  325. min: 4,
  326. max: 6,
  327. message: '请认真填写验证码',
  328. trigger: ['blur', 'change'],
  329. },
  330. },
  331. };
  332. },
  333. onLoad() {
  334. // 获取服务条款数据
  335. this.getTermOfServiceByType();
  336. },
  337. onReady() {
  338. this.$refs.form1.setRules(this.rules)
  339. },
  340. methods: {
  341. // 关闭签名框
  342. closeCanvas() {
  343. this.showCanvas = false;
  344. },
  345. // 选择签名类型
  346. personSing(type) {
  347. this.showCanvas = true;
  348. this.signType = type;
  349. },
  350. // 保存签名信息
  351. saveCanvasImg(path) {
  352. console.log(path)
  353. let that = this;
  354. uni.uploadFile({
  355. url: this.$host + '/resource/oss/upload', //仅为示例,非真实的接口地址
  356. filePath: path,
  357. name: 'file',
  358. header: {
  359. 'Authorization': 'Bearer ' + that.$store.state.loginState.accessToken,
  360. },
  361. success: (uploadFileRes) => {
  362. let res = JSON.parse(uploadFileRes.data)
  363. console.log(res)
  364. that.showCanvas = false;
  365. }
  366. });
  367. },
  368. codeChange2(text) {
  369. this.tips2 = text;
  370. },
  371. getCode2() {
  372. if (this.$refs.uCode2.canGetCode) {
  373. this.$api.getSmsCode();
  374. } else {
  375. uni.$u.toast('倒计时结束后再发送');
  376. }
  377. },
  378. // 获取手机验证码
  379. getSmsCode() {
  380. let that = this;
  381. // 模拟向后端请求验证码
  382. uni.showLoading({
  383. title: '正在获取验证码'
  384. })
  385. this.$api.getSmsCode({ data: { phonenumber: this.userInfo.phonenumber, auth: true } }).then((res) => {
  386. uni.hideLoading();
  387. // 这里此提示会被this.start()方法中的提示覆盖
  388. uni.$u.toast('验证码已发送');
  389. // 通知验证码组件内部开始倒计时
  390. that.$refs.uCode2.start();
  391. }).catch(() => {
  392. uni.showToast({
  393. title: "操作失败"
  394. })
  395. });
  396. },
  397. getStepClass(index) {
  398. if (index < this.currentStep) {
  399. return 'step';
  400. } else if (index === this.currentStep) {
  401. return ['step', 'active'];
  402. } else {
  403. return ['step', 'default'];
  404. }
  405. },
  406. // 查询老会员系统数据
  407. getOldMember() {
  408. let that = this;
  409. this.$api.getOldMember({ data: that.userInfo }).then((res) => {
  410. if (!that.$isDataEmpty(res)) {
  411. that.userMemberInfo = res;
  412. that.userInfo.memberNo = res.memberNo;
  413. if (that.currentStep < that.steps.length - 1) {
  414. that.currentStep++;
  415. }
  416. // 查询充值记录
  417. that.$api.getOrderRechargeOldList();
  418. } else {
  419. uni.$u.toast('未查询到数据');
  420. }
  421. }).catch(() => {
  422. uni.showToast({
  423. title: "操作失败"
  424. })
  425. });
  426. },
  427. // 查询会员消费记录
  428. getOrderConsumeLogOld() {
  429. let that = this;
  430. this.$api.getOrderConsumeLogOld({ data: this.userInfo }).then((res) => {
  431. console.log(res)
  432. that.memberInfoRecords = res;
  433. }).catch(() => {
  434. uni.showToast({
  435. title: "操作失败"
  436. })
  437. });
  438. },
  439. // 查询叶会员充值记录
  440. getOrderRechargeOldList() {
  441. this.$api.getOrderRechargeOldList({ data: this.userInfo }).then((res) => {
  442. console.log(res)
  443. this.memberInfoRecords = res;
  444. }).catch(() => {
  445. uni.showToast({
  446. title: "操作失败"
  447. })
  448. });
  449. },
  450. // 提交保存
  451. submitOldData() {
  452. let that = this;
  453. this.$api.submitOldData(null, { data: that.userInfo }).then((res) => {
  454. console.log(res)
  455. if (this.currentStep < this.steps.length - 1) {
  456. this.currentStep++;
  457. }
  458. }).catch(() => {
  459. uni.showToast({
  460. title: "操作失败"
  461. })
  462. });
  463. },
  464. nextStep(idx) {
  465. if (idx == 0) { // 查询数据
  466. this.$refs.form1.validate().then(res => {
  467. this.$api.getOldMember();
  468. }).catch(errors => {
  469. uni.$u.toast('校验失败,请认真填写')
  470. })
  471. }
  472. if (idx == 1) { // 显示查询数据
  473. if (this.currentStep < this.steps.length - 1) {
  474. this.currentStep++;
  475. }
  476. }
  477. if (idx == 2) { // 用户签名确认
  478. this.$api.submitOldData();
  479. }
  480. if (idx == 3) { // 迁移成功,重新设置用户数据
  481. // 刷新用户信息
  482. this.$refreshUserLoginInfo();
  483. uni.navigateTo({
  484. url: '/pages/index/index',
  485. })
  486. }
  487. },
  488. prevStep() {
  489. if (this.currentStep > 0) {
  490. this.currentStep--;
  491. }
  492. },
  493. changeTab(tab) {
  494. this.currentTab = tab;
  495. },
  496. // 服务订单
  497. changeServiceTab(tab) {
  498. if (tab == 'orderTab1') {
  499. this.$api.getOrderRechargeOldList();
  500. } else if (tab == 'orderTab2') {
  501. this.$api.getOrderConsumeLogOld();
  502. }
  503. this.currentServiceTab = tab;
  504. },
  505. // 获取服务条款信息
  506. getTermOfServiceByType() {
  507. // 获取数据
  508. this.$api.getTermOfServiceByType({ data: this.userInfo }).then((res) => {
  509. if (res.aboutContent) {
  510. this.termOfService.aboutContent = res.aboutContent
  511. } else {
  512. this.termOfService.aboutContent = "暂无信息!!!"
  513. }
  514. }).catch(() => {
  515. uni.showToast({
  516. title: "操作失败"
  517. })
  518. });
  519. },
  520. }
  521. };
  522. </script>
  523. <style scoped lang="scss">
  524. .h-content-step-end {
  525. height: 300px;
  526. background: #fff;
  527. text-align: center;
  528. padding-top: 60px;
  529. font-family: PingFangSC-Regular, PingFang SC;
  530. .h-success {
  531. margin: 0 auto;
  532. display: flex;
  533. justify-content: center;
  534. height: 80px;
  535. width: 80px;
  536. background: #f7fbf3;
  537. border-radius: 40px;
  538. }
  539. .h-name {
  540. margin-top: 20px;
  541. height: 22px;
  542. font-size: 14px;
  543. font-weight: 400;
  544. color: #666666;
  545. line-height: 22px;
  546. }
  547. .h-btn {
  548. margin: 0 auto;
  549. margin-top: 40px;
  550. width: 319px;
  551. height: 42px;
  552. background: #FFE05C;
  553. border-radius: 27px;
  554. display: flex;
  555. justify-content: center;
  556. align-items: center;
  557. font-size: 14px;
  558. }
  559. }
  560. .letter-commitment {
  561. padding: 12px;
  562. background: #fff;
  563. .h-title {
  564. text-align: center;
  565. font-size: 14px;
  566. }
  567. }
  568. .col-border-2 {
  569. margin-top: 12px;
  570. .sign-wrap {
  571. display: flex;
  572. justify-content: center;
  573. align-items: center;
  574. height: 120px;
  575. background: #FFFFFF;
  576. }
  577. }
  578. .sign-agree {
  579. font-size: 14px;
  580. font-weight: 400;
  581. color: #666666;
  582. line-height: 50px;
  583. text-align: center;
  584. }
  585. .h-content-wrap {
  586. background: #fff;
  587. padding-left: 12px;
  588. padding-right: 12px;
  589. }
  590. .h-content {
  591. margin-bottom: 12px;
  592. background-color: #fff;
  593. .h-basic-info {
  594. padding: 12px;
  595. background: #fff;
  596. border-radius: 6px;
  597. .h-value {
  598. display: flex;
  599. font-family: PingFangSC-Regular, PingFang SC;
  600. font-size: 14px;
  601. font-weight: 400;
  602. .h-name {
  603. width: 56px;
  604. height: 22px;
  605. color: #999999;
  606. line-height: 22px;
  607. margin-right: 12px;
  608. }
  609. .h-text {
  610. height: 22px;
  611. color: #333333;
  612. line-height: 22px;
  613. }
  614. }
  615. }
  616. .h-record {
  617. margin-top: 12px;
  618. /* 服务订单内容*/
  619. .service-order-tab-bar {
  620. background: #fff;
  621. display: flex;
  622. justify-content: space-around;
  623. height: 50px;
  624. background-color: #f5f5f5;
  625. .service-order-tab-item {
  626. flex: 1;
  627. display: flex;
  628. align-items: center;
  629. justify-content: center;
  630. font-size: 16px;
  631. color: #333;
  632. line-height: 26px;
  633. }
  634. .service-order-tab-item.active {
  635. color: #ff0000;
  636. }
  637. .underline {
  638. border-bottom: 2px solid #ff0000;
  639. }
  640. }
  641. }
  642. }
  643. .store-order-wrap {
  644. padding: 12px;
  645. .store-order {
  646. background: #fff;
  647. padding: 10px;
  648. border-radius: 3px;
  649. font-family: PingFangSC-Regular, PingFang SC;
  650. .h-content {
  651. .h-row {
  652. display: flex;
  653. justify-content: space-between;
  654. }
  655. .h-text {
  656. font-size: 12px;
  657. font-weight: 400;
  658. color: #999999;
  659. line-height: 20px;
  660. }
  661. }
  662. }
  663. }
  664. .h-footer {
  665. text-align: right;
  666. }
  667. .signature-wrap {
  668. height: 120px;
  669. width: 300px;
  670. }
  671. .step-bar {
  672. padding: 12px;
  673. display: flex;
  674. justify-content: space-between;
  675. margin-bottom: 20px;
  676. }
  677. .step {
  678. position: relative;
  679. /* width: 100%; */
  680. // height: 40px;
  681. /* background-color: #ccc; */
  682. display: flex;
  683. align-items: center;
  684. justify-content: center;
  685. color: #fff;
  686. height: 30px;
  687. width: 30px;
  688. background: green;
  689. border-radius: 15px;
  690. margin: 0 auto;
  691. }
  692. //.h-num {
  693. // // height: 30px;
  694. // // width: 30px;
  695. // // background: #fff;
  696. // // border-radius: 15px;
  697. // // display: flex;
  698. // // align-items: center;
  699. // // justify-content: center;
  700. //}
  701. .step.default {
  702. color: #333;
  703. background: #fff;
  704. }
  705. .step.active {
  706. color: #333;
  707. background: #FFE05C;
  708. }
  709. .separator {
  710. position: absolute;
  711. top: 50%;
  712. left: 130%;
  713. transform: translateY(-50%);
  714. width: 50px;
  715. height: 2px;
  716. border: 1px dashed #000;
  717. }
  718. .form {
  719. margin-bottom: 20px;
  720. border-radius: 6px;
  721. }
  722. .button-group {
  723. height: 60px;
  724. position: fixed;
  725. bottom: 0px;
  726. left: 0px;
  727. right: 0px;
  728. display: flex;
  729. justify-content: space-between;
  730. background: #fff;
  731. .h-btn {
  732. margin: 0 auto;
  733. margin-top: 8px;
  734. width: 200px;
  735. height: 42px;
  736. background: #FFE05C;
  737. border-radius: 27px;
  738. display: flex;
  739. justify-content: center;
  740. align-items: center;
  741. font-size: 14px;
  742. }
  743. }
  744. .identifying-code {
  745. image {
  746. width: 80px;
  747. height: 30px;
  748. }
  749. }
  750. </style>