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

index.vue 26KB

1年前
1年前
1年前
1年前
11ヶ月前
1年前
1年前
1年前
1年前
1年前
1年前
11ヶ月前
1年前
1年前
1年前
11ヶ月前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
2年前
2年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109
  1. <template>
  2. <filter>
  3. <view class="wrapper">
  4. <view class="top_title">畅行高速·全国通行95折</view>
  5. <view class="top_bg nav">
  6. <view class="item-box"
  7. @click="showMask(1)">
  8. <view class="item">
  9. <image :src="fileURL + 'image/yxb/yxb6.png'" mode="aspectFill" />
  10. </view>
  11. <view class="text">客车ETC</view>
  12. </view>
  13. <view class="item-box"
  14. @click="$util.navTo('/subpackage/after-sale/progress-query/select-car',true)">
  15. <view class="item ">
  16. <image :src="fileURL + 'image/yxb/yxb10.png'" mode="aspectFill" />
  17. </view>
  18. <view class="text">业务审核查询</view>
  19. </view>
  20. <view class="item-box"
  21. @click="$util.navTo('/subpackage/personal-center/install-activation-order',true)">
  22. <view class="item">
  23. <image :src="fileURL + 'image/yxb/yxb8.png'" mode="aspectFill" />
  24. </view>
  25. <view class="text">首次激活</view>
  26. </view>
  27. <view class="item-box" @click="$util.navTo(`/subpackage/after-sale/onlineService`,true)">
  28. <view class="item">
  29. <image :src="fileURL + 'image/yxb/yxb9.png'" mode="aspectFill" />
  30. </view>
  31. <view class="text">在线客服</view>
  32. </view>
  33. </view>
  34. <view class="entrance">
  35. <view class="triangle"></view>
  36. <view class="tips">
  37. <view class="tips_left">
  38. <image class="etc_picture" :src="fileURL + 'image/yxb/yxb1.png'" mode=""></image>
  39. <view>仅展示,产品以实物为准</view>
  40. </view>
  41. <view class="tips_right">
  42. <view class="title">客车ETC申办</view>
  43. <view class="title1">设备邮寄到家,国家三包,故障免费换新,防乱扣费,0元注销</view>
  44. <view class="title2"><text>全国通用</text><text>极速发货</text><text>售后无忧</text></view>
  45. </view>
  46. </view>
  47. <view class="handle" @click="showMask(1)">立即办理</view>
  48. <view class="quickly">
  49. <view><image :src="fileURL + 'image/yxb/yxb2.png'"></image>极速处理</view>
  50. <view><image :src="fileURL + 'image/yxb/yxb4.png'"></image>安全可靠</view>
  51. <view><image :src="fileURL + 'image/yxb/yxb3.png'"></image>专业售后</view>
  52. </view>
  53. </view>
  54. <view class="show_banner">
  55. <image :src="fileURL + 'image/yxb/yxb5.png'" mode="scaleToFill" style="width: 100%;height: 100%"></image>
  56. </view>
  57. <!-- Banner -->
  58. <!-- <view class="banner">
  59. <swiper class="swiper" circular :indicator-dots="swiper.indicatorDots" :autoplay="swiper.autoplay"
  60. :interval="swiper.interval" :duration="swiper.duration"
  61. indicator-active-color="rgba(0, 179, 139, 1)" :easing-function="swiper.easing">
  62. <block v-if="state.swiperList.length >0" v-for="item in state.swiperList" :key="item.id">
  63. <swiper-item class="swiper-item" @click="link(item)">
  64. <image :src="fileURLList + item.imgUrl" mode="widthFix"></image>
  65. </swiper-item>
  66. </block>
  67. </swiper>
  68. <view class="notice">
  69. <image class="icon" :src="fileURL + 'image/index/icon-notice.png'" lazy-load="false"
  70. mode="aspectFill">
  71. </image>
  72. <uni-notice-bar style="width: 100%;" scrollable single :text="state.notice" @click="tip()">
  73. </uni-notice-bar>
  74. </view>
  75. </view> -->
  76. <!-- 按钮导航 -->
  77. <view class="nav">
  78. <!-- <view class="item-box" @click="cardRecharge(1)">
  79. <view class="item item-1">
  80. <image :src="fileURL + 'image/index/item-1.png'" mode="aspectFill" />
  81. </view>
  82. <view class="text">储值卡充值</view>
  83. </view> -->
  84. <!-- <view class="item-box" @click="$util.navTo('/pages/bluetooth/bluetooth?routeType=4', true)">
  85. <view class="item item-2">
  86. <image :src="fileURL + 'image/index/item-2.png'" mode="aspectFill" />
  87. </view>
  88. <view class="text">卡签信息查询</view>
  89. <<<<<<< HEAD
  90. </view> -->
  91. <!-- <view class="item-box"
  92. @click="$util.navTo('/subpackage/after-sale/activation-once-again/select-car',true)">
  93. <view class="item item-3">
  94. <image :src="fileURL + '20230511/24e179d44e2d4e5687339bff_obucxjh.png'" mode="aspectFill" />
  95. </view>
  96. <view class="text">OBU重新激活</view>
  97. =======
  98. >>>>>>> 3114cbaf2a3200b3a868c339aa30e37b3e66882c
  99. </view>
  100. <view class="item-box"
  101. @click="$util.navTo('/subpackage/personal-center/install-activation-order',true)">
  102. <view class="item item-4">
  103. <image :src="fileURL + 'image/index/item-4.png'" mode="aspectFill" />
  104. </view>
  105. <<<<<<< HEAD
  106. <view class="text">首次激活</view>
  107. </view> -->
  108. <!--
  109. =======
  110. <view class="text">激活服务</view>
  111. </view>
  112. >>>>>>> 3114cbaf2a3200b3a868c339aa30e37b3e66882c
  113. <view class="item-box" @click="cardRecharge(3)">
  114. <view class="item item-5">
  115. <image :src="fileURL + 'image/index/item-5.png'" mode="aspectFill" />
  116. </view>
  117. <view class="text">设备注销</view>
  118. </view>
  119. <view class="item-box" @click="$util.navTo(`/subpackage/after-sale/equipment-upgrade/select-car`,true)">
  120. <view class="item item-6">
  121. <image :src="fileURL + 'image/index/item-6.png'" mode="aspectFill" />
  122. </view>
  123. <view class="text">设备升级</view>
  124. <<<<<<< HEAD
  125. </view> -->
  126. <!-- <view class="item-box"
  127. @click="$util.navTo(`/subpackage/personal-center/setting/personal-information/corrections`,true)">
  128. <view class="item item-7">
  129. <image :src="fileURL + 'image/index/item-7.png'" mode="aspectFill" />
  130. </view>
  131. <view class="text">基础信息变更</view>
  132. </view> -->
  133. <!-- <view class="item-box" @click="$util.navTo(`/subpackage/after-sale/onlineService`,true)">
  134. =======
  135. </view>
  136. <view class="item-box" @click="$util.navTo(`/subpackage/after-sale/onlineService`,true)">
  137. >>>>>>> 3114cbaf2a3200b3a868c339aa30e37b3e66882c
  138. <view class="item item-7">
  139. <image :src="fileURL + 'image/index/item-7.png'" mode="aspectFill" />
  140. </view>
  141. <view class="text">在线客服</view>
  142. </view> -->
  143. <!-- <view class="item-box" @click="$util.navTo(`/pages/service/service`,true)">
  144. <view class="item item-8">
  145. <image :src="fileURL + 'image/index/item-more.png'" mode="aspectFill" />
  146. </view>
  147. <view class="text">更多</view>
  148. </view> -->
  149. </view>
  150. <!--快速办理通道 -->
  151. <!-- <view class="express-lane">
  152. <view class="title">快速办理</view>
  153. <view class="lane">
  154. <view class="lane-item lane-1" :style="{ '--background': bgOrange }" @click="showMask(1)">
  155. <image :src="fileURL + 'image/index/icon-car.png'" mode="aspectFill"></image>
  156. <view class="text">
  157. <text class="head">客车用户</text>
  158. </view>
  159. </view>
  160. <view class="lane-item lane-2" :style="{ '--background': bgBlue }" @click="showMask(2)">
  161. <image :src="fileURL + 'image/index/icon-truck.png'" mode="aspectFill"></image>
  162. <view class="text">
  163. <text class="head">货车用户</text>
  164. </view>
  165. </view>
  166. </view>
  167. </view> -->
  168. <!-- 办理流程 -->
  169. <view class="flow-path">
  170. <scroll-view scroll-x="true" class="scroll-view">
  171. <view class="top-menu">
  172. <view :class="item == state.tabActive ? 'tab active' : 'tab'"
  173. v-for="item in state.flowPathTabList" :key="item" @click="flowPathTabHandle(item)">
  174. <view class="border"></view>{{ item }}
  175. </view>
  176. </view>
  177. </scroll-view>
  178. <view v-if="state.tabActive === '办理流程'">
  179. <view class="flow-list">
  180. <flow-path-list :options="state.flowList"></flow-path-list>
  181. </view>
  182. </view>
  183. <view v-else-if="state.tabActive === '办理条件'">
  184. <view class="flow-list as-gravity-center"> {{state.processeConditionText}} </view>
  185. </view>
  186. <view v-else-if="state.tabActive === '常见问题'">
  187. <view class="flow-list as-gravity-center"> {{state.commonQuestionText}} </view>
  188. </view>
  189. </view>
  190. </view>
  191. <!-- 高速快讯 -->
  192. <!-- <view class="news" v-if="state.highMsgData.length!=0">
  193. <view class="title">高速快讯</view>
  194. <view class="news-box">
  195. <view class="news-item" v-for="(item,index) in state.highMsgData" :key='index' @click="link(item)">
  196. <view class="left-text">
  197. <view class="tit description">{{item.title}}</view>
  198. <view class="span">{{item.copywriting}}</view>
  199. </view>
  200. <view class="image-box">
  201. <image :src="fileURLList + item.imgUrl" mode="aspectFill"></image>
  202. </view>
  203. </view>
  204. <view v-if="state.highMsgData.length!=0" class="more"
  205. @click="$util.navTo('/subpackage/orders/moreHighMsg/moreHighMsg',true)">查看更多</view>
  206. </view>
  207. </view> -->
  208. </filter>
  209. <!-- ETC选择弹窗 -->
  210. <view class="mask" v-if="isShowMask">
  211. <view class="mask-content">
  212. <filter>
  213. <view class="mask-close">
  214. <image :src="fileURL + 'image/index/icon-close.png'" class="icon-closed" @click="closeMask"></image>
  215. </view>
  216. <view class="mask-title" :style="{ '--color': color }">选择ETC用户类型</view>
  217. <view class="mask-tab">
  218. <view class="tab-item active" @click="toCreatOrder('1')">
  219. <image :src="fileURL + 'image/index/icon-personal.png'" mode="aspectFill"></image>
  220. <text class="tab-tit on">个人办理</text>
  221. </view>
  222. <view class="tab-item" @click="toCreatOrder('2')">
  223. <image :src="fileURL + 'image/index/icon-unit.png'" mode="aspectFill"></image>
  224. <text class="tab-tit on">单位办理</text>
  225. </view>
  226. </view>
  227. </filter>
  228. </view>
  229. </view>
  230. </template>
  231. <script setup lang="ts">
  232. import {
  233. onMounted,
  234. ref
  235. } from "vue";
  236. import {
  237. onPageScroll,
  238. onLoad, onReachBottom
  239. } from "@dcloudio/uni-app";
  240. import flowPathList from "./components/flow-path-list.vue";
  241. import filter from '@/components/filter/filter.vue';
  242. import {
  243. request
  244. } from "@/utils/network/request.js";
  245. import {
  246. stringToJson
  247. } from "@/utils/network/encryption.js";
  248. import {
  249. useUserStore
  250. } from "@/stores/user";
  251. import {
  252. getItem,
  253. setItem,
  254. StorageKeys
  255. } from "@/utils/storage";
  256. import {
  257. queryKey,
  258. querySwiper,
  259. envs,
  260. infoQuery,
  261. queryHighMsg,
  262. orderList
  263. } from "@/utils/network/api.js";
  264. import {
  265. reactive
  266. } from "vue";
  267. import {
  268. fileURL, fileURLList
  269. } from "@/datas/fileURL.js";
  270. import {
  271. navTo,
  272. msg,
  273. noticeUser,
  274. confirm
  275. } from "@/utils/utils";
  276. import {
  277. getCodeName
  278. } from "@/datas/queryKey.js";
  279. // import { jump } from "@/datas/9901Jump.js";
  280. import navBar from "@/components/nav-bar/nav-bar2.vue";
  281. const tools = require("../../static/etcUtil/tools.js");
  282. const bgOrange = `url(${fileURL}image/index/bg-orange.png) center center no-repeat`;
  283. const bgBlue = `url(${fileURL}image/index/bg-blue.png) center center no-repeat`;
  284. const list = reactive(["您有一条待办事项,还未办理完成"])
  285. const scrollTop = ref(0);
  286. const isBack = ref(false);
  287. const swiper = reactive({
  288. indicatorDots: true,
  289. autoplay: true,
  290. interval: 3000,
  291. duration: 3000,
  292. easing: "easeInOutCubic"
  293. })
  294. console.log('输出内容==============', getItem(StorageKeys.OpenId), '==============')
  295. const state = reactive({
  296. type: 0, //1客车 2货车
  297. userType: 1, //1个人 2单位
  298. notice: "",
  299. swiperList: [],
  300. noticeList: [], //公告栏列表
  301. flowPathTabList: ["办理流程", "办理条件", "常见问题"],
  302. tabActive: "办理流程",
  303. flowList: [
  304. //办理流程数据
  305. {
  306. title: "第一步:产品选择",
  307. desc: "选择购买的发行产品",
  308. },
  309. {
  310. title: "第二步:信息校验",
  311. desc: "提交车牌号、车牌颜色、收货地址相关信息",
  312. },
  313. {
  314. title: "第三步:证件上传",
  315. desc: "上传身份证、行驶证等相关信息",
  316. },
  317. {
  318. title: "第四步:订单支付",
  319. desc: "支付完成订单",
  320. },
  321. {
  322. title: "第五步:签约代扣",
  323. desc: "选择签约账户并关联",
  324. },
  325. ],
  326. highMsgData: '',//高速快讯内容
  327. processeConditionText: "", //办理条件文本
  328. commonQuestionText: "", //常见问题文本
  329. isEnableSetGray: false
  330. });
  331. const isShowMask = ref(false);
  332. const isShowBar = ref(false)
  333. const userStore = useUserStore();
  334. const type = 0;
  335. const title = ref("我是测试");
  336. const statusBarHeight = ref(0)
  337. //监听页面滚动
  338. onPageScroll((e) => {
  339. if (e.scrollTop > statusBarHeight.value) {
  340. isShowBar.value = true;
  341. } else {
  342. isShowBar.value = false;
  343. }
  344. scrollTop.value = e.scrollTop;
  345. });
  346. onLoad((options) => {
  347. console.log("wechatSignNo",options)
  348. getInfo();
  349. quanKeyAction().then((val : any) => {
  350. setItem('key', val.dictTypeAndItem)
  351. })
  352. })
  353. onMounted(() => {
  354. uni.getSystemInfo({
  355. success: (e : any) => {
  356. statusBarHeight.value = e.statusBarHeight;
  357. }
  358. })
  359. getSwiper()
  360. });
  361. onReachBottom(() => {
  362. // highMsg(); //高速快讯
  363. })
  364. const tip = () => {
  365. const params = encodeURIComponent(JSON.stringify("https://webzeus.hltgz.com/throughBilManager/index"))
  366. tools.toUrl(`/subpackage/personal-center/webview?url=` + params);
  367. }
  368. //获取轮播
  369. const getSwiper = () => {
  370. let options = {
  371. type: 2, //type: 2,JSON格式提交数据(默认表单形式提交)
  372. data: {
  373. }, //请求参数
  374. method: "POST", //提交方式(默认POST)
  375. showLoading: true, //是否显示加载中(默认显示)
  376. };
  377. //调用方式
  378. request(querySwiper, options).then((res) => {
  379. console.log(stringToJson(res.bizContent));
  380. const data = stringToJson(res.bizContent)
  381. console.log("轮播图", data)
  382. state.swiperList = data.swipers ? data.swipers : []
  383. })
  384. .catch((err) => {
  385. console.log(err);
  386. });
  387. };
  388. //办理流程tab选择
  389. const flowPathTabHandle = (tab) => {
  390. state.tabActive = tab;
  391. if (tab == "办理条件") {
  392. processeCondition();//办理条件
  393. } else if (tab == "常见问题") {
  394. commonQuestion();
  395. }
  396. };
  397. //全量枚举值查询
  398. const quanKeyAction = () => {
  399. var data = {};
  400. const options = {
  401. type: 2,
  402. data: data,
  403. method: "POST",
  404. showLoading: true,
  405. };
  406. return new Promise(async (resolve, reject) => {
  407. const res = await request(queryKey, options);
  408. const data = stringToJson(res.bizContent);
  409. resolve(data);
  410. }).catch((error) => {
  411. reject(error);
  412. });
  413. }
  414. const toCreatOrder = (val : number) => {
  415. console.log(typeof (val));
  416. state.userType = val;
  417. navTo(`/subpackage/orders/choice-product?type=${state.type}&&userType=${state.userType}`)
  418. closeMask();
  419. };
  420. const showMask = (val : any) => {
  421. state.type = val; //1 客车 2货车
  422. isShowMask.value = true;
  423. };
  424. const closeMask = () => {
  425. isShowMask.value = false;
  426. };
  427. // 获取文本信息----用户协议
  428. const getInfo = () => {
  429. //参数说明
  430. let options = {
  431. type: 2, //type: 2,JSON格式提交数据(默认表单形式提交)
  432. data: {
  433. businessType: 'BROADCAST' //广播栏信息
  434. }, //请求参数
  435. method: "POST", //提交方式(默认POST)
  436. showLoading: true, //是否显示加载中(默认显示)
  437. };
  438. //调用方式
  439. request(infoQuery, options)
  440. .then((res) => {
  441. let data = stringToJson(res.bizContent)
  442. console.log(data);
  443. state.notice = data.text
  444. })
  445. .catch((err) => {
  446. console.log(err);
  447. });
  448. }
  449. // 高速快讯查询接口
  450. const highMsg = () => {
  451. let options = {
  452. type: 2, //type: 2,JSON格式提交数据(默认表单形式提交)
  453. data: {
  454. pageNo: 1,
  455. pageSize: 2
  456. }, //请求参数
  457. method: "POST", //提交方式(默认POST)
  458. showLoading: true, //是否显示加载中(默认显示)
  459. };
  460. //调用方式
  461. request(queryHighMsg, options).then((res) => {
  462. console.log("高速快讯查询接口", stringToJson(res.bizContent));
  463. state.highMsgData = stringToJson(res.bizContent).data
  464. for (var i = 0; i < state.highMsgData.length; i++) {
  465. state.highMsgData[i]["copywriting"] = getCodeName('COPYWRITING', state.highMsgData[i]["copywriting"])
  466. if (state.highMsgData[i]["type"] == 3) {
  467. state.highMsgData[i]["title"] = state.highMsgData[i]["hyperLink"]
  468. }
  469. }
  470. state.highMsgData.sort(function (a, b) {
  471. return a.sequence - b.sequence//正序
  472. })
  473. }).catch((err) => { console.log(err) });
  474. }
  475. const link = (item : any) => {
  476. if (item.type == 1) {
  477. const params = encodeURIComponent(JSON.stringify(item.hyperLink))
  478. tools.toUrl(`/subpackage/personal-center/webview?url=` + params);
  479. } else if (item.type == 2) {
  480. navTo(item.hyperLink)
  481. } else if (item.type == 3) {
  482. const param = encodeURIComponent(JSON.stringify(item))
  483. tools.toUrl(`/subpackage/orders/moreHighMsg/textDetails?item=` + param);
  484. } else if (item.type == 4) {
  485. uni.navigateToMiniProgram({
  486. appId: item.hyperLink,
  487. path: item.speedUrl,
  488. success(res) {
  489. console.log(res);
  490. },
  491. complete(res) {
  492. console.log(res);
  493. },
  494. fail(res) {
  495. console.log(res);
  496. // 未成功跳转到车主小程序
  497. },
  498. });
  499. }
  500. }
  501. const processeCondition = () => {
  502. let options = {
  503. type: 2, //type: 2,JSON格式提交数据(默认表单形式提交)
  504. data: {
  505. businessType: 'PROCESSING_CONDITIONS' //办理条件
  506. }, //请求参数
  507. method: "POST", //提交方式(默认POST)
  508. showLoading: true, //是否显示加载中(默认显示)
  509. };
  510. //调用方式
  511. request(infoQuery, options)
  512. .then((res) => {
  513. let data = stringToJson(res.bizContent)
  514. console.log("办理条件", data)
  515. state.processeConditionText = data.text
  516. })
  517. .catch((err) => {
  518. console.log(err);
  519. });
  520. }
  521. const commonQuestion = () => {
  522. let options = {
  523. type: 2, //type: 2,JSON格式提交数据(默认表单形式提交)
  524. data: {
  525. businessType: 'COMMON_PROBLEM' //常见问题
  526. }, //请求参数
  527. method: "POST", //提交方式(默认POST)
  528. showLoading: true, //是否显示加载中(默认显示)
  529. };
  530. //调用方式
  531. request(infoQuery, options)
  532. .then((res) => {
  533. let data = stringToJson(res.bizContent)
  534. console.log("常见问题", data)
  535. state.commonQuestionText = data.text
  536. })
  537. .catch((err) => {
  538. console.log(err);
  539. });
  540. }
  541. // 代办事项
  542. const doSomething = () => {
  543. let options = {
  544. type: 2, //type: 2,JSON格式提交数据(默认表单形式提交)
  545. data: {
  546. "opId": getItem(StorageKeys.OpenId),
  547. "source": "WECHAT",
  548. "vehiclePlate": "",
  549. "tabIndex": 3 + '',
  550. "pageNo": 1,
  551. "pageSize": 100,
  552. "promotionModes": 1
  553. },
  554. method: "POST", //提交方式(默认POST)
  555. };
  556. //调用方式
  557. request(orderList, options)
  558. .then((res) => {
  559. let data = stringToJson(res.bizContent)
  560. let obj = {};
  561. obj["id"] = 1;
  562. obj['title'] = "您有" + data.data.length + "条未完成订单,前往处理"
  563. state.noticeList.push(obj)
  564. console.log("代办事项", data.data)
  565. })
  566. .catch((err) => {
  567. console.log(err);
  568. });
  569. }
  570. const cardRecharge = (val) => {
  571. // #ifdef MP-ALIPAY
  572. if (val == 1 || val == 2 || val == 3) {
  573. msg("业务升级中,请前往九州ETC公众号进行办理。或拨打客服电话400-800-8787")
  574. }
  575. // #endif
  576. // #ifdef MP-WEIXIN
  577. if (val == 1) {
  578. navTo('/pages/recharge/recharge-pay', true)
  579. } else if (val == 2) {
  580. navTo('/subpackage/after-sale/rescind-carId/rescind-carId-select', true)
  581. } else if (val == 3) {
  582. navTo('/subpackage/after-sale/ETC-log-off/select-car', true)
  583. }
  584. // #endif
  585. }
  586. </script>
  587. <style>
  588. page {
  589. background: #eef7f7;
  590. }
  591. </style>
  592. <style lang="scss" scoped>
  593. .statusBar {
  594. width: 100%;
  595. position: sticky;
  596. background: linear-gradient(-90deg, #43a1e0 0%, #13e7c1 100%);
  597. top: 0;
  598. left: 0;
  599. z-index: 999;
  600. }
  601. .banner {
  602. position: relative;
  603. }
  604. .banner swiper {
  605. height: 470rpx;
  606. width: 750rpx;
  607. }
  608. .banner .notice {
  609. position: absolute;
  610. background: rgba(0, 0, 0, 0.28);
  611. border-radius: 30rpx;
  612. width: 500rpx;
  613. height: 60rpx;
  614. bottom: 46rpx;
  615. left: 125rpx;
  616. display: flex;
  617. justify-content: center;
  618. align-items: center;
  619. padding: 0 20rpx;
  620. box-sizing: border-box;
  621. ::v-deep .uni-noticebar {
  622. background: none !important;
  623. margin-bottom: 0;
  624. text {
  625. font-size: 24rpx !important;
  626. color: #ffffff !important;
  627. }
  628. }
  629. }
  630. .banner .notice .icon {
  631. width: 40rpx;
  632. height: 40rpx;
  633. margin: 10rpx;
  634. }
  635. .banner .notice .notice-text {
  636. font-size: 24rpx;
  637. color: #ffffff;
  638. flex: 1;
  639. }
  640. .swiper-item image {
  641. width: 100%;
  642. height: auto;
  643. }
  644. .nav {
  645. display: flex;
  646. flex-wrap: wrap;
  647. padding: 0 35rpx;
  648. font-size: 28rpx;
  649. }
  650. .nav .item-box {
  651. // display: flex;
  652. // flex-direction: column;
  653. // justify-content: center;
  654. // align-items: center;
  655. text-align: center;
  656. }
  657. .nav .item {
  658. width: 80rpx;
  659. height: 80rpx;
  660. border-radius: 30rpx;
  661. display: flex;
  662. justify-content: center;
  663. align-items: center;
  664. margin: 50rpx 45rpx 20rpx 45rpx;
  665. }
  666. .nav .text {
  667. font-size: 24rpx;
  668. color: white;
  669. }
  670. .item-1 {
  671. background: linear-gradient(133deg, #5fff9b 0%, #00b38b 100%);
  672. }
  673. .item-2 {
  674. background: linear-gradient(-50deg, #018ffd 0%, #27fcff 100%);
  675. }
  676. .item-3 {
  677. background: linear-gradient(-47deg, #f88721 0%, #fecd61 100%);
  678. }
  679. .item-4 {
  680. background: linear-gradient(-47deg, #018ffd 0%, #27fcff 100%);
  681. }
  682. .item-5 {
  683. background: linear-gradient(-44deg, #018ffd 0%, #27fcff 100%);
  684. }
  685. .item-6 {
  686. background: linear-gradient(-50deg, #f88721 0%, #fecd61 100%);
  687. }
  688. .item-7 {
  689. background: linear-gradient(129deg, #5fff9b 0%, #00b38b 100%);
  690. }
  691. .item-8 {
  692. background: linear-gradient(124deg, #b8f0f2 0%, #62aeb1 100%);
  693. }
  694. .item image {
  695. width: 80rpx;
  696. height: 80rpx;
  697. }
  698. .express-lane {
  699. font-size: 36rpx;
  700. font-weight: 400;
  701. color: #000000;
  702. padding-top: 30rpx;
  703. }
  704. .express-lane .title {
  705. padding-left: 30rpx;
  706. margin: 0rpx 0 20rpx;
  707. font-size: 32rpx;
  708. font-weight: bold;
  709. }
  710. .lane {
  711. display: flex;
  712. justify-content: space-evenly;
  713. }
  714. .lane-item {
  715. width: 330rpx;
  716. height: 150rpx;
  717. border-radius: 20rpx;
  718. display: flex;
  719. justify-content: center;
  720. align-items: center;
  721. }
  722. .lane-item image {
  723. width: 120rpx;
  724. height: 100rpx;
  725. margin: 0 18rpx;
  726. }
  727. .lane-item .text {
  728. display: flex;
  729. flex-direction: column;
  730. justify-content: center;
  731. color: #ffffff;
  732. flex: 1;
  733. }
  734. .lane-item .head {
  735. font-size: 30rpx;
  736. font-weight: bold;
  737. }
  738. .lane-item .decribe {
  739. font-size: 24rpx;
  740. }
  741. .lane-1 {
  742. background: var(--background);
  743. }
  744. .lane-2 {
  745. background: var(--background);
  746. }
  747. .news {
  748. padding: 30rpx 30rpx 0 30rpx;
  749. }
  750. .news .title {
  751. font-size: 32rpx;
  752. font-weight: bold;
  753. }
  754. .news .left-text {
  755. flex: 1;
  756. margin-right: 100rpx;
  757. }
  758. .news-box {
  759. background: #ffffff;
  760. border-radius: 20rpx;
  761. padding: 0 32rpx;
  762. box-shadow: 0rpx 2rpx 6rpx 0rpx rgba(223, 223, 223, 0.8);
  763. margin: 20rpx 0 50rpx;
  764. }
  765. .news .tit {
  766. font-size: 26rpx;
  767. color: #172843;
  768. }
  769. .news .news-item {
  770. display: flex;
  771. border-bottom: 1px solid #dcdcdc;
  772. padding: 32rpx 0 15rpx;
  773. }
  774. .news .image-box image {
  775. width: 100rpx;
  776. height: 100rpx;
  777. border-radius: 10rpx;
  778. }
  779. .news .span {
  780. font-size: 22rpx;
  781. display: inline-block;
  782. text-align: center;
  783. background: #bae0f1;
  784. border-radius: 6rpx;
  785. color: #0a8f8a;
  786. padding: 4rpx 8rpx;
  787. }
  788. .news .more {
  789. font-size: 24rpx;
  790. text-align: center;
  791. color: #0a8f8a;
  792. padding: 22rpx 0;
  793. }
  794. .mask {
  795. background: $uni-bg-color-mask;
  796. position: fixed;
  797. left: 0;
  798. top: 0;
  799. right: 0;
  800. bottom: 0;
  801. }
  802. .mask-content {
  803. background: $uni-bg-color;
  804. width: 570rpx;
  805. height: 480rpx;
  806. position: absolute;
  807. left: 50%;
  808. top: 50%;
  809. transform: translate(-50%, -50%);
  810. display: flex;
  811. flex-direction: column;
  812. border-radius: 20rpx;
  813. }
  814. .mask-close {
  815. text-align: right;
  816. }
  817. .mask-title {
  818. text-align: center;
  819. font-size: 32rpx;
  820. color: $uni-text-color-black;
  821. margin-bottom: 50rpx;
  822. }
  823. .mask-tab {
  824. display: flex;
  825. justify-content: space-evenly;
  826. }
  827. .icon-closed {
  828. width: 48rpx;
  829. height: 48rpx;
  830. margin: 24rpx 24rpx 0 0;
  831. }
  832. .tab-item {
  833. display: flex;
  834. flex-direction: column;
  835. justify-content: center;
  836. align-items: center;
  837. }
  838. .tab-tit {
  839. font-size: 32rpx;
  840. margin-top: 20rpx;
  841. color: #666;
  842. }
  843. .tab-item image {
  844. width: 160rpx;
  845. height: 160rpx;
  846. }
  847. .backlog-notice {
  848. margin: 50rpx 30rpx 0rpx;
  849. }
  850. .flow-path {
  851. padding: 20rpx 0rpx 20rpx;
  852. .scroll-view {
  853. white-space: nowrap;
  854. top: 0;
  855. }
  856. .top-menu {
  857. display: flex;
  858. }
  859. .top-menu .tab {
  860. font-size: 28rpx;
  861. padding: 38rpx 30rpx;
  862. color: #666666;
  863. position: relative;
  864. }
  865. .top-menu .active .border {
  866. position: absolute;
  867. width: 70%;
  868. height: 16rpx;
  869. background: #00b38b;
  870. opacity: 0.3;
  871. bottom: 40rpx;
  872. z-index: -99;
  873. left: 15%;
  874. border-radius: 6rpx;
  875. }
  876. .top-menu .active {
  877. font-weight: bold;
  878. font-size: 32rpx;
  879. color: #0d0f26;
  880. }
  881. .top-menu .active::before {
  882. width: 100%;
  883. height: 16rpx;
  884. background: #00b38b;
  885. opacity: 0.3;
  886. }
  887. .flow-list {
  888. margin: 0rpx 30rpx;
  889. min-height: 700rpx;
  890. background: #ffffff;
  891. box-shadow: 0rpx 2rpx 6rpx 0rpx rgba(223, 223, 223, 0.8);
  892. border-radius: 20rpx;
  893. padding: 55rpx 30rpx 30rpx;
  894. }
  895. }
  896. .description {
  897. overflow: hidden;
  898. -webkit-line-clamp: 2;
  899. text-overflow: ellipsis;
  900. display: -webkit-box;
  901. -webkit-box-orient: vertical;
  902. }
  903. // 新样式
  904. .top_bg{
  905. background-color: $uni-theme-color;
  906. height: 25vh;
  907. // width: 100%;
  908. border-radius: 0 0 20rpx 20rpx;
  909. }
  910. .entrance{
  911. width: 90%;
  912. height: 40vh;
  913. background-color: white;
  914. margin: 0 auto;
  915. margin-top: -80rpx;
  916. border-radius: 20rpx;
  917. }
  918. .top_title{
  919. color: white;
  920. font-size: 34rpx;
  921. background: $uni-theme-color;
  922. padding-left: 36rpx;
  923. }
  924. .triangle{
  925. width: 0;
  926. height: 0;
  927. border-left: 20px solid transparent;
  928. border-right: 20px solid transparent;
  929. border-bottom: 10px solid white; /* 箭头颜色 */
  930. position: relative;
  931. top: -18rpx;
  932. left: 40rpx;
  933. }
  934. .etc_picture{
  935. width: 150rpx;
  936. height: 100rpx;
  937. margin-bottom: 45rpx;
  938. margin-top: 10rpx;
  939. }
  940. .tips{
  941. display: flex;
  942. justify-content: space-between;
  943. font-size: 26rpx;
  944. padding: 0 30rpx;
  945. }
  946. .tips_left{
  947. width: 35%;
  948. display: flex;
  949. flex-direction: column;
  950. align-items: center;
  951. font-size: 21rpx;
  952. color: #93969E ;
  953. }
  954. .tips_right{
  955. width: 60%;
  956. }
  957. .tips_right .title{
  958. color: $uni-theme-color;
  959. font-weight: bold;
  960. }
  961. .tips_right .title1{
  962. color: #93969E;
  963. margin: 20rpx 0;
  964. }
  965. .tips_right .title2{
  966. color: $uni-theme-color;
  967. }
  968. .tips_right .title2 text{
  969. border: 1rpx solid $uni-theme-color;
  970. border-radius: 4rpx;
  971. font-size: 22rpx;
  972. padding: 2rpx 4rpx;
  973. margin-right: 14rpx;
  974. }
  975. .handle{
  976. width: 90%;
  977. height: 72rpx;
  978. background: $uni-theme-color;
  979. color: white;
  980. font-weight: bold;
  981. font-size: 30rpx;
  982. text-align: center;
  983. margin: 30rpx auto;
  984. line-height: 72rpx;
  985. border-radius: 10rpx;
  986. }
  987. .quickly{
  988. font-size: 26rpx;
  989. display: flex;
  990. justify-content: space-evenly;
  991. align-items: center;
  992. color: #93969E;
  993. }
  994. .quickly>view>image{
  995. width: 30rpx;
  996. height: 30rpx;
  997. vertical-align: baseline;
  998. }
  999. .quickly>view{
  1000. display: flex;
  1001. align-items: center;
  1002. }
  1003. .show_banner{
  1004. height: 150rpx;
  1005. margin: 30rpx 0;
  1006. width: 100%;
  1007. position:relative;
  1008. left:0;
  1009. top:0;
  1010. }
  1011. .wrapper{
  1012. width: 100%;
  1013. overflow: hidden;
  1014. }
  1015. </style>