選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

order_payment.vue 22KB

8ヶ月前
8ヶ月前
8ヶ月前
8ヶ月前
1年前
8ヶ月前
8ヶ月前
5ヶ月前
5ヶ月前
1年前
1年前
1年前
1年前
8ヶ月前
1年前
1年前
8ヶ月前
9ヶ月前
1年前
1年前
1年前
1年前
6ヶ月前
5ヶ月前
9ヶ月前
1年前
1年前
6ヶ月前
8ヶ月前
8ヶ月前
8ヶ月前
8ヶ月前
8ヶ月前
8ヶ月前
8ヶ月前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874
  1. <template>
  2. <navBar title="订单支付" :scrollTop="scrollTop" :orderId="state.orderId" navbgClass="nav-bgXin" fontColor='#fff'>
  3. </navBar>
  4. <navBgCar :activeNum='5'></navBgCar>
  5. <view class="content-value">
  6. <view class="t-card">
  7. <view @click="savaHandle(item)" class="ul-item" v-for="(item, index) in state.dataArray" :key="index">
  8. <image style="width: 100%; height: 146rpx;" :src="`${$imgUrl}issuance/equity-bg.png`"
  9. mode='scaleToFill'>
  10. </image>
  11. <view class="item-value">
  12. <view class="money">
  13. <text class='unit'>¥</text>
  14. <text>{{ item.fee * 0.01 }}</text>
  15. </view>
  16. <view class="content">
  17. <view class="title">
  18. {{ item.payName }}
  19. </view>
  20. </view>
  21. <view class="r-btn">
  22. {{ item.payStatusName }}
  23. </view>
  24. </view>
  25. </view>
  26. </view>
  27. </view>
  28. </template>
  29. <script setup lang="ts">
  30. import { onLoad, onPageScroll, onShow } from "@dcloudio/uni-app";
  31. import { reactive, ref } from "vue";
  32. import {
  33. PAYMENTORDERAPPLY,
  34. aliPayConfigIdTwo,
  35. obtainUserId,
  36. getOpenId, payApply, payQuery, orderQueryDetail, payAfterOrder
  37. } from "@/utils/network/api.js";
  38. import { request, requestNew } from "@/utils/network/request.js";
  39. import { stringToJson } from "@/utils/network/encryption";
  40. import { fileURL } from "@/datas/fileURL.js";
  41. import navBgCar from "./components/nav-bg-car1";
  42. import navBar from "@/components/nav-bar/nav-bar2.vue";
  43. const imgURL = `${fileURL}image/`;
  44. import { confirm, navTo } from "@/utils/utils";
  45. import {
  46. OrderStatus
  47. } from "@/datas/enum";
  48. import useOrderSkip from "@/composables/order/useOrderSkip";
  49. import {
  50. setItem, getItem
  51. } from "@/utils/storage";
  52. const tools = require("../../static/etcUtil/tools.js");
  53. const { gotoActiveOrder } = useOrderSkip();
  54. let imageUrl = ""
  55. let logo
  56. const scrollTop = ref(0); //滚动距离
  57. var counter = 0;
  58. function myFunc() {
  59. counter++;
  60. console.log("====")
  61. if (counter == 2) {
  62. clearInterval(intervalId);
  63. state.isclick = true
  64. console.log("改为true");
  65. }
  66. }
  67. var intervalId = setInterval(myFunc, 2000);
  68. const savaHandle = (val) => {
  69. console.log("val", val, state.isclick)
  70. if (state.isclick) {
  71. if (val.payStatus == "SUCCESS") {
  72. return;
  73. }
  74. state.isclick = false
  75. console.log("state.isclick", state.isclick, val.payStatus)
  76. payMethods(val)
  77. }
  78. };
  79. const payMethods = (val) => {
  80. console.log("val===", val)
  81. if (val.payStatus === 'UNPAY') {
  82. myFunc()
  83. // #ifdef MP-ALIPAY
  84. my.getAuthCode({
  85. scopes: 'auth_base',
  86. success: res => {
  87. const optionsUser = {
  88. type: 2,
  89. data: {
  90. payConfigId: aliPayConfigIdTwo,
  91. code: res.authCode
  92. },
  93. method: "POST",
  94. showLoading: true,
  95. };
  96. console.log('支付宝用户编号请求:', optionsUser)
  97. requestNew(obtainUserId, optionsUser).then((res) => {
  98. console.log('支付宝用户编号返回:', res)
  99. const data = res;
  100. const optionsali = {
  101. type: 2,
  102. data: {
  103. orderId: state.orderId,
  104. wxOpenid: data.openId ? data.openId : data.alipayUserId,
  105. payType: val.payType
  106. },
  107. method: "POST",
  108. showLoading: true,
  109. };
  110. console.log('支付下单请求:', optionsali)
  111. requestNew(PAYMENTORDERAPPLY, optionsali).then((res) => {
  112. const data = res;
  113. console.log('支付下单返回:', data)
  114. my.tradePay({
  115. // 调用统一收单交易创建接口(alipay.trade.create),获得返回字段支付宝交易号 trade_no
  116. tradeNO: data.tranPackage,
  117. success: res => {
  118. console.log("支付成功", res);
  119. refresh();
  120. },
  121. fail: res => {
  122. console.log("支付失败", res);
  123. },
  124. });
  125. },
  126. (err) => {
  127. state.isclick = true
  128. console.log("err")
  129. }
  130. );
  131. });
  132. },
  133. fail: err => {
  134. console.log('my.getAuthCode 调用失败', err)
  135. state.isclick = true
  136. }
  137. });
  138. // #endif
  139. // #ifdef MP-WEIXIN
  140. const options = {
  141. type: 2,
  142. data: {
  143. orderNo: val.orderNo,
  144. subOpenId: state.openidData.openid,
  145. // payType: val.payType,
  146. orderPayId: val.orderPayId,
  147. "customerId": "",
  148. "h5Type": "",
  149. // "spbillCreateIp": "",
  150. "staffId": "",
  151. },
  152. method: "POST",
  153. showLoading: true,
  154. };
  155. requestNew(payApply, options).then((res) => {
  156. const data = res;
  157. console.log("data======111", data)
  158. if (data) {
  159. console.log("进来了111")
  160. uni.requestPayment({
  161. provider: "wxpay",
  162. orderInfo: "",
  163. timeStamp: data.timeStamp,
  164. nonceStr: data.nonceStr,
  165. package: data.wxPackage ? data.wxPackage : "",
  166. signType: data.signType,
  167. paySign: data.paySign,
  168. success: function (e) {
  169. console.log("支付成功", res);
  170. state.payOK = true
  171. refresh();
  172. },
  173. fail: function (err) {
  174. state.isclick = true
  175. confirm(err, () => { }, "支付失败", false);
  176. },
  177. });
  178. } else {
  179. state.isclick = true
  180. console.log("state.isclick", state.isclick)
  181. }
  182. },
  183. (err) => {
  184. state.isclick = true
  185. console.log("err")
  186. }
  187. );
  188. // #endif
  189. }
  190. }
  191. const refresh = () => {
  192. state.isclick = true
  193. let source = ""
  194. // #ifdef MP-ALIPAY
  195. source = "ALI"
  196. // #endif
  197. // #ifdef MP-WEIXIN
  198. source = "WECHAT"
  199. // #endif
  200. var data = {
  201. orderNo: state.orderId,
  202. wxOpenId: state.openidData.openid,
  203. };
  204. const options = {
  205. type: 2,
  206. data: data,
  207. method: "POST",
  208. showLoading: true,
  209. };
  210. console.log("输出内容", options);
  211. requestNew(payQuery, options).then((res) => {
  212. console.log("res====", res)
  213. const data = res;
  214. console.log(data);
  215. if (data.paymentStatus == 1) {
  216. // gotoEditUserOrUnitInfo()
  217. }
  218. state.dataArray = data.datas;
  219. for (let i = 0; i < state.dataArray.length; i++) {
  220. if (state.dataArray[i].payType === 'HANDLE') {
  221. state.dataArray[i].payName = '权益金'
  222. } else if (state.dataArray[i].payType === 'MARGIN') {
  223. state.dataArray[i].payName = '保证金'
  224. } else if (state.dataArray[i].payType === 'PRESTORE') {
  225. state.dataArray[i].payName = '预存金'
  226. } else if (state.dataArray[i].payType === 'EQUITY') {
  227. state.dataArray[i].payName = '权益费'
  228. } else if (state.dataArray[i].payType === 'REPAIROBU') {
  229. state.dataArray[i].payName = '增补obu'
  230. } else if (state.dataArray[i].payType === 'CHANGECARD') {
  231. state.dataArray[i].payName = '更换卡'
  232. } else if (state.dataArray[i].payType === 'CHANGEOBU') {
  233. state.dataArray[i].payName = '更换签'
  234. } else if (state.dataArray[i].payType === 'CHANGEALL') {
  235. state.dataArray[i].payName = '更换卡签'
  236. } else {
  237. state.dataArray[i].payName = '未知费'
  238. }
  239. if (state.dataArray[i].payStatus === 'SUCCESS') {
  240. state.dataArray[i].payStatusName = '已支付'
  241. } else if (state.dataArray[i].payStatus === 'PAYING') {
  242. state.dataArray[i].payStatusName = '支付中'
  243. } else if (state.dataArray[i].payStatus === 'FAILED') {
  244. state.dataArray[i].payStatusName = '支付失败'
  245. } else if (state.dataArray[i].payStatus === 'UNPAY') {
  246. state.dataArray[i].payStatusName = '未支付'
  247. } else if (state.dataArray[i].payStatus === 'CLOSED') {
  248. state.dataArray[i].payStatusName = '已关闭'
  249. } else if (state.dataArray[i].payStatus === 'CANCELED') {
  250. state.dataArray[i].payStatusName = '已撤销'
  251. } else if (state.dataArray[i].payStatus === 'REFUND') {
  252. state.dataArray[i].payStatusName = '转入退费'
  253. } else {
  254. state.dataArray[i].payStatusName = '未知'
  255. }
  256. }
  257. console.log("state.dataArray", state.dataArray)
  258. });
  259. }
  260. onShow(() => {
  261. // 支付完跳转到广告页,回来再次查询跳转 (签约完回来也要查询)
  262. if (state.payOK) {
  263. console.log("刷新页面",state)
  264. refreshFirst()
  265. }
  266. })
  267. onLoad((option : any) => {
  268. console.log("传递过来的到支付页面", option)
  269. state.orderId = option.orderId;
  270. state.isValueCard = option.isValueCard;
  271. state.vehicleId = option.vehicleId;
  272. state.orderQuery = option.orderQuery;
  273. state.qdSignUrl = option.qdSignUrl;
  274. state.qdSignAppId = option.qdSignAppId;
  275. state.qtSign = option.qtSign;
  276. state.cardType = option.cardType;
  277. // #ifdef MP-WEIXIN
  278. uni.login({
  279. provider: "weixin",
  280. success: function (e) {
  281. const options1 = {
  282. type: 2,
  283. data: {
  284. "jsCode": e.code
  285. },
  286. method: "POST",
  287. showLoading: true,
  288. };
  289. requestNew(getOpenId, options1).then((res) => {
  290. const result = res;
  291. console.log("获取openid返回数据:", res)
  292. state.openidData = stringToJson(result.bizContent);
  293. refreshFirst()
  294. })
  295. },
  296. })
  297. // #endif
  298. // #ifdef MP-ALIPAY
  299. refreshFirst()
  300. // #endif
  301. });
  302. // 车辆详情
  303. const orderDetail = () => {
  304. const options = {
  305. type: 2,
  306. data: {
  307. orderNo: state.orderId
  308. },
  309. method: "POST",
  310. showLoading: true,
  311. };
  312. return new Promise(async (resolve, reject) => {
  313. const res = await requestNew(orderQueryDetail, options);
  314. setItem('orderQueryActivate', res)
  315. resolve(res);
  316. }).catch((error) => {
  317. reject(error);
  318. });
  319. }
  320. const refreshFirst = () => {
  321. let source = ""
  322. // #ifdef MP-ALIPAY
  323. imageUrl = imgURL + "applyCard/alibaba.png";
  324. source = "ALI"
  325. // #endif
  326. // #ifdef MP-WEIXIN
  327. imageUrl = imgURL + "applyCard/wechat.png";
  328. source = "WECHAT"
  329. // #endif
  330. var data = {
  331. orderNo: state.orderId,
  332. wxOpenId: state.openidData.openid,
  333. "customerId": "",
  334. };
  335. const options = {
  336. type: 2,
  337. data: data,
  338. method: "POST",
  339. showLoading: true,
  340. };
  341. console.log("输出内容", options);
  342. requestNew(payQuery, options).then((res) => {
  343. const data = res;
  344. console.log("1111",data);
  345. if (data.paymentStatus == 1) {
  346. gotoEditUserOrUnitInfo();
  347. // isValueCard 1 储值卡 2 记账卡
  348. // if (state.orderQuery == '1') {
  349. // console.log("state.qtSign", state.qtSign, state.qtSign == '0')
  350. // // 记账卡
  351. // if (state.cardType == '1') {
  352. // // 去诺德签约
  353. // if (state.qtSign == '0') {
  354. // // 去签约,已经签约完,回来查订单详情,如果是激活就去激活
  355. // orderDetail().then((res) => {
  356. // if (res['orderStep'] == OrderStatus['待激活']) {
  357. // // 已签约
  358. // gotoActiveOrder(getItem('orderQueryActivate'))
  359. // } else {
  360. // // 未签约
  361. // if (state.qdSignAppId) {
  362. // uni.navigateToMiniProgram({
  363. // appId: state.qdSignAppId,
  364. // path: state.qdSignUrl,
  365. // extraData: {},
  366. // envVersion: 'trial',
  367. // success(res) {
  368. // state.payOK = true
  369. // console.log(res);
  370. // },
  371. // complete(res) {
  372. // console.log(res);
  373. // },
  374. // fail(res) {
  375. // console.log(res);
  376. // // 未成功跳转到车主小程序
  377. // },
  378. // });
  379. // } else {
  380. // const params = encodeURIComponent(JSON.stringify(state.qdSignUrl))
  381. // tools.toUrl(`/subpackage/personal-center/webview?url=` + params)
  382. // }
  383. // }
  384. // })
  385. // } else {
  386. // console.log("前往签约3")
  387. // // 签约
  388. // uni.redirectTo({
  389. // url: `/subpackage/orders/release-products?orderId=${state.orderId}&orderQuery=${state.orderQuery}`
  390. // });
  391. // }
  392. // } else {
  393. // gotoActiveOrder(getItem('orderQueryActivate'))
  394. // }
  395. // } else {
  396. // if (state.isValueCard == 1) {
  397. // // 不签约
  398. // uni.switchTab({
  399. // url: "/pages/order/order"
  400. // })
  401. // } else {
  402. // console.log("前往签约2")
  403. // // 签约
  404. // uni.redirectTo({
  405. // url: `/subpackage/orders/release-products?orderId=${state.orderId}&orderQuery=${state.orderQuery}`
  406. // });
  407. // }
  408. // }
  409. }
  410. state.dataArray = data.datas;
  411. for (let i = 0; i < state.dataArray.length; i++) {
  412. if (state.dataArray[i].payType === 'HANDLE') {
  413. state.dataArray[i].payName = '权益金'
  414. } else if (state.dataArray[i].payType === 'MARGIN') {
  415. state.dataArray[i].payName = '保证金'
  416. } else if (state.dataArray[i].payType === 'PRESTORE') {
  417. state.dataArray[i].payName = '预存金'
  418. } else if (state.dataArray[i].payType === 'EQUITY') {
  419. state.dataArray[i].payName = '权益费'
  420. } else if (state.dataArray[i].payType === 'REPAIROBU') {
  421. state.dataArray[i].payName = '增补obu'
  422. } else if (state.dataArray[i].payType === 'CHANGECARD') {
  423. state.dataArray[i].payName = '更换卡'
  424. } else if (state.dataArray[i].payType === 'CHANGEOBU') {
  425. state.dataArray[i].payName = '更换签'
  426. } else if (state.dataArray[i].payType === 'CHANGEALL') {
  427. state.dataArray[i].payName = '更换卡签'
  428. } else {
  429. state.dataArray[i].payName = '未知费'
  430. }
  431. if (state.dataArray[i].payStatus === 'SUCCESS') {
  432. state.dataArray[i].payStatusName = '已支付'
  433. } else if (state.dataArray[i].payStatus === 'PAYING') {
  434. state.dataArray[i].payStatusName = '支付中'
  435. } else if (state.dataArray[i].payStatus === 'FAILED') {
  436. state.dataArray[i].payStatusName = '支付失败'
  437. } else if (state.dataArray[i].payStatus === 'UNPAY') {
  438. state.dataArray[i].payStatusName = '未支付'
  439. } else if (state.dataArray[i].payStatus === 'CLOSED') {
  440. state.dataArray[i].payStatusName = '已关闭'
  441. } else if (state.dataArray[i].payStatus === 'CANCELED') {
  442. state.dataArray[i].payStatusName = '已撤销'
  443. } else if (state.dataArray[i].payStatus === 'REFUND') {
  444. state.dataArray[i].payStatusName = '转入退费'
  445. } else {
  446. state.dataArray[i].payStatusName = '未知'
  447. }
  448. }
  449. console.log("state.dataArray", state.dataArray)
  450. });
  451. }
  452. //解析URL获取参数
  453. const getRequest = (urlStr) => {
  454. if (typeof urlStr == "undefined") {
  455. // 获取url中"?"符后的字符串
  456. var url = decodeURI(location.search);
  457. } else {
  458. var url = "?" + urlStr.split("?")[1];
  459. }
  460. var theRequest = new Object();
  461. if (url.indexOf("?") != -1) {
  462. var str = url.substr(1);
  463. var strs = str.split("&");
  464. for (var i = 0; i < strs.length; i++) {
  465. theRequest[strs[i].split("=")[0]] = decodeURI(strs[i].split("=")[1]);
  466. }
  467. }
  468. return theRequest;
  469. };
  470. //监听页面滚动
  471. onPageScroll((e) => {
  472. scrollTop.value = e.scrollTop;
  473. });
  474. // isValueCard 1 储值卡 2 记账卡
  475. const gotoEditUserOrUnitInfo = () => {
  476. // if (state.orderQuery == '1') {
  477. const options = {
  478. type: 2,
  479. data: {
  480. orderNo: state.orderId
  481. },
  482. method: "POST",
  483. showLoading: true,
  484. }
  485. requestNew(payAfterOrder, options).then((res) => {
  486. console.log("res",res)
  487. if (res.orderStep === 'WAITING_ACTIVE') {
  488. // 前往激活
  489. console.log("前往激活")
  490. if(state.jhOk){
  491. uni.showModal({
  492. title: "*激活检测*",
  493. content: "您还没有激活成功,将要去激活",
  494. showCancel: false,
  495. confirmText: "我知道了",
  496. success() {
  497. state.jhOk = true
  498. gotoActiveOrder(getItem('orderQueryActivate'));
  499. }
  500. });
  501. }else{
  502. state.jhOk = true
  503. gotoActiveOrder(getItem('orderQueryActivate'));
  504. }
  505. } else if (res.orderStep === 'ORDER_PAID') {
  506. // 前往签约
  507. console.log("前往签约1")
  508. uni.redirectTo({
  509. url: `/subpackage/orders/release-products?orderId=${state.orderId}&orderQuery=${state.orderQuery}`
  510. });
  511. // if (res.qtSign) {
  512. // // 黔通智联签约
  513. // uni.redirectTo({
  514. // url: `/subpackage/orders/release-products?orderId=${state.orderId}&orderQuery=${state.orderQuery}`
  515. // });
  516. // } else if (res.qdAppId){
  517. // // 其他渠道签约
  518. // uni.navigateToMiniProgram({
  519. // appId: res.qdAppId,
  520. // path: res.qdSignUrl,
  521. // extraData: {},
  522. // envVersion: 'trial',
  523. // success(res) {
  524. // state.payOK = true
  525. // console.log(res);
  526. // },
  527. // complete(res) {
  528. // console.log(res);
  529. // },
  530. // fail(res) {
  531. // console.log(res);
  532. // // 未成功跳转到车主小程序
  533. // },
  534. // });
  535. // } else {
  536. // // 其他渠道签约
  537. // const params = encodeURIComponent(JSON.stringify(res.qdSignUrl))
  538. // tools.toUrl(`/subpackage/personal-center/webview?url=` + params);
  539. // }
  540. }else{
  541. uni.showModal({
  542. content: "订单待审核,可在ETC订单查看",
  543. showCancel: false,
  544. confirmText: "我知道了",
  545. success() {
  546. uni.redirectTo({
  547. url: `/pages/order/order?indexPage=1`
  548. });
  549. }
  550. });
  551. }
  552. });
  553. // if (state.cardType == '1') {
  554. // if (state.qtSign == '0') {
  555. // if (state.qdSignAppId) {
  556. // // 去外边签约
  557. // uni.navigateToMiniProgram({
  558. // appId: state.qdSignAppId,
  559. // path: state.qdSignUrl,
  560. // extraData: {},
  561. // envVersion: 'trial',
  562. // success(res) {
  563. // state.payOK = true
  564. // console.log(res);
  565. // },
  566. // complete(res) {
  567. // console.log(res);
  568. // },
  569. // fail(res) {
  570. // console.log(res);
  571. // // 未成功跳转到车主小程序
  572. // },
  573. // });
  574. // } else {
  575. // const params = encodeURIComponent(JSON.stringify(state.qdSignUrl))
  576. // tools.toUrl(`/subpackage/personal-center/webview?url=` + params)
  577. // }
  578. // } else {
  579. // // 签约
  580. // uni.redirectTo({
  581. // url: `/subpackage/orders/release-products?orderId=${state.orderId}&orderQuery=${state.orderQuery}`
  582. // });
  583. // }
  584. // } else {
  585. // gotoActiveOrder(getItem('orderQueryActivate'))
  586. // }
  587. // } else {
  588. // if (state.isValueCard == 1) {
  589. // // 不签约
  590. // uni.switchTab({
  591. // url: "/pages/order/order"
  592. // })
  593. // } else {
  594. // uni.redirectTo({
  595. // url: `/subpackage/orders/release-products?orderId=${state.orderId}&orderQuery=${state.orderQuery}`
  596. // });
  597. // }
  598. // }
  599. }
  600. const state = reactive({
  601. isValueCard: 1, //卡的类型
  602. radiolist1: [], //选择卡的数据列表
  603. choiceCardShow: false, //选择卡的弹出框
  604. isSign: '',
  605. id: "",
  606. orderId: "",
  607. userType: 1, //1 个人 2单位
  608. type: 0, //0 客车 1货车
  609. vehiclePlateColor: "",
  610. data: {
  611. show: false,
  612. src: imgURL + "applyCard/edit.png",
  613. },
  614. dataArray: [],
  615. list: [
  616. {
  617. bg: imgURL + "applyCard/product-bg.png",
  618. icon: imgURL + "applyCard/wechat.png",
  619. title: "【货车】微信车主服务",
  620. tip: "绑定微信支付,无需绑定银行卡",
  621. },
  622. ],
  623. openid: "",
  624. isclick: true,//防止重复点击
  625. vehicleId: "",
  626. orderQuery: "0",
  627. openidData: {},
  628. qdSignUrl: "",
  629. qdSignAppId: "",
  630. qtSign: "",
  631. payOK: false,
  632. jhOk: false,
  633. cardType: "",
  634. });
  635. </script>
  636. <style lang="scss" scoped>
  637. ::v-deep .u-radio {
  638. display: flex !important;
  639. align-items: center !important;
  640. float: none !important;
  641. }
  642. ::v-deep .u-icon__icon {
  643. top: -4px !important;
  644. }
  645. .bottomTip {
  646. margin-top: 100rpx;
  647. text-align: center;
  648. font-size: 28rpx;
  649. font-family: Microsoft YaHei;
  650. font-weight: 400;
  651. color: #b3b3b3;
  652. }
  653. .content-value {
  654. position: absolute;
  655. top: 370rpx;
  656. width: 100%;
  657. min-height: calc(100% - 370rpx);
  658. box-sizing: border-box;
  659. padding: 0 30rpx 210rpx;
  660. .t-card {
  661. background-color: #fff;
  662. padding: 40rpx 30rpx;
  663. border-radius: 12rpx;
  664. }
  665. .img-pos {
  666. position: absolute;
  667. left: 500rpx;
  668. top: -38rpx;
  669. right: 50rpx;
  670. .img-flex {
  671. display: flex;
  672. justify-content: space-between;
  673. align-items: center;
  674. .car-img {
  675. width: 86rpx;
  676. height: 42rpx;
  677. }
  678. .flag-img {
  679. width: 30rpx;
  680. height: 35rpx;
  681. }
  682. }
  683. }
  684. }
  685. .flex {
  686. display: flex;
  687. align-items: center;
  688. }
  689. .action {
  690. margin-top: 30rpx;
  691. padding-left: 20rpx;
  692. padding-right: 20rpx;
  693. padding-bottom: 30rpx;
  694. .button {
  695. height: 80rpx;
  696. background: linear-gradient(-90deg, #43a1e0 0%, #13e7c1 100%);
  697. border-radius: 40rpx;
  698. font-size: 32rpx;
  699. font-weight: 400;
  700. color: #ffffff;
  701. line-height: 80rpx;
  702. }
  703. }
  704. .action-btn {
  705. margin-left: 45rpx;
  706. width: 121rpx;
  707. height: 61rpx;
  708. border: 1px solid rgba(255, 255, 255, 1);
  709. border-radius: 30rpx;
  710. background: rgba(255, 255, 255, 0.2);
  711. text-align: center;
  712. font-size: 30rpx;
  713. font-family: Microsoft YaHei;
  714. font-weight: 400;
  715. color: #ffffff;
  716. line-height: 61rpx;
  717. }
  718. .tag1 {
  719. padding: 5rpx;
  720. background: rgba(0, 179, 139, 0.5);
  721. border-radius: 6rpx;
  722. font-size: 22rpx;
  723. font-family: Microsoft YaHei;
  724. font-weight: 400;
  725. color: #ffffff;
  726. }
  727. .tag3 {
  728. padding: 5rpx;
  729. background: rgba(139, 112, 228, 0.5);
  730. border-radius: 6rpx;
  731. font-size: 22rpx;
  732. font-family: Microsoft YaHei;
  733. font-weight: 400;
  734. color: #ffffff;
  735. }
  736. .tag2 {
  737. padding: 5rpx;
  738. background: rgba(249, 97, 60, 0.5);
  739. border-radius: 6rpx;
  740. font-size: 22rpx;
  741. font-family: Microsoft YaHei;
  742. font-weight: 400;
  743. color: #ffffff;
  744. }
  745. .ul-item {
  746. display: flex;
  747. align-items: center;
  748. &:nth-child(n+2) {
  749. margin-top: 30rpx;
  750. }
  751. .item-value {
  752. padding: 20rpx;
  753. position: absolute;
  754. display: flex;
  755. align-items: center;
  756. width: 81%;
  757. box-sizing: border-box;
  758. height: 146rpx;
  759. .money {
  760. color: #fff;
  761. font-size: 46rpx;
  762. font-family: SourceHanSansCN, SourceHanSansCN;
  763. font-weight: 400;
  764. flex: 1;
  765. .unit {
  766. font-size: 29rpx;
  767. margin-right: 2rpx;
  768. }
  769. }
  770. .content {
  771. margin-left: 60rpx;
  772. flex: 2;
  773. .title {
  774. font-weight: 400;
  775. font-family: SourceHanSansCN, SourceHanSansCN;
  776. font-size: 36rpx;
  777. color: #2C3246;
  778. }
  779. }
  780. .r-btn {
  781. width: 139rpx;
  782. height: 65rpx;
  783. background: radial-gradient(at 0% 0%, #C6B077 0%, #DFCC96 100%);
  784. border-radius: 33rpx;
  785. font-family: SourceHanSansCN, SourceHanSansCN;
  786. font-weight: 400;
  787. font-size: 26rpx;
  788. color: #FFFFFF;
  789. line-height: 65rpx;
  790. text-align: center;
  791. flex: 1;
  792. }
  793. }
  794. .icon-tip {
  795. width: 100rpx;
  796. height: 100rpx;
  797. }
  798. }
  799. ::v-deep .u-mode-center-box {
  800. border-radius: 10rpx;
  801. }
  802. .squire {
  803. padding: 30rpx 30rpx 50rpx 50rpx;
  804. }
  805. .mask-close {
  806. text-align: right;
  807. }
  808. .icon-closed {
  809. width: 48rpx;
  810. height: 48rpx;
  811. }
  812. .mask-title {
  813. text-align: center;
  814. font-size: 32rpx;
  815. color: $uni-text-color-black;
  816. margin-bottom: 50rpx;
  817. }
  818. </style>