ソースを参照

解决冲突

yxb
不甘寂寞 2年前
コミット
0c9a5d2018

+ 116
- 129
App.vue ファイルの表示

@@ -1,136 +1,123 @@
<script setup>
import {
request
} from "@/utils/network/request.js"
import {
etcQYAction
} from "@/utils/network/api.js"
import {
msg,
} from "./utils/utils";
import {
getItem
} from "./utils/storage";
import {
onLaunch,
onShow,
onLoad,
onHide
} from '@dcloudio/uni-app';
onLaunch((option) => {
console.log('App Launch', uni.getLaunchOptionsSync().path)
// #ifdef MP-WEIXIN
uni.setStorageSync("extraData", option.referrerInfo.extraData)
//获取小程序更新机制兼容
if (uni.canIUse('getUpdateManager')) {
// pdateManager,用于管理小程序更新。
const updateManager = uni.getUpdateManager();
updateManager.onCheckForUpdate(function(res) {
// 请求完新版本信息的回调
if (res.hasUpdate) {
updateManager.onUpdateReady(function() {
uni.showModal({
title: '更新提示',
content: '新版本已经准备好,是否重启应用?',
success: function(res) {
if (res.confirm) {
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
updateManager.applyUpdate()
}
}
})
});
updateManager.onUpdateFailed(function() {
// 新的版本下载失败
uni.showModal({
title: '已经有新版本了哟~',
content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~',
showCancel: false,
confirmText: '我知道了'
})
});
}
});
} else {
// 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示
uni.showModal({
title: '提示',
content: '当前微信版本过低,无法更好体验程序,请升级到最新微信版本后重试。',
showCancel: false,
confirmText: '我知道了'
});
}
// #endif
});
<script>
import { request } from "@/utils/network/request.js";
import { etcQYAction, queryKey } from "@/utils/network/api.js";
import { msg } from "./utils/utils";
import { getItem } from "./utils/storage";
import { log } from "console";
export default {
onLaunch: function (option) {
wx.setStorageSync("extraData", option.referrerInfo.extraData);

onShow((option) => {
console.log(option);
// #ifdef MP-WEIXIN
if (option && option.scene === 1038) {
// 场景值1038:从被打开的小程序返回
const {
appId,
extraData
} = option.referrerInfo;
if (appId == "wxbcad394b3d99dac9") {
console.log(getItem("QYorder"));
const orders = getItem("QYorder")
// appId为wxbcad394b3d99dac9:从车主小程序跳转回来
// TODO
// 客户端小程序不确定授权结果,需要发起‘查询车牌服务开通信息’确认授权结果
console.log("App Launch", uni.getLaunchOptionsSync().path);
// #ifdef MP-WEIXIN
//获取小程序更新机制兼容
if (uni.canIUse("getUpdateManager")) {
// pdateManager,用于管理小程序更新。
const updateManager = uni.getUpdateManager();
updateManager.onCheckForUpdate(function (res) {
// 请求完新版本信息的回调
if (res.hasUpdate) {
updateManager.onUpdateReady(function () {
uni.showModal({
title: "更新提示",
content: "新版本已经准备好,是否重启应用?",
success: function (res) {
if (res.confirm) {
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
updateManager.applyUpdate();
}
},
});
});
updateManager.onUpdateFailed(function () {
// 新的版本下载失败
uni.showModal({
title: "已经有新版本了哟~",
content: "新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~",
showCancel: false,
confirmText: "我知道了",
});
});
}
});
} else {
// 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示
uni.showModal({
title: "提示",
content:
"当前微信版本过低,无法更好体验程序,请升级到最新微信版本后重试。",
showCancel: false,
confirmText: "我知道了",
});
}
// #endif
},
onShow: function (option) {
console.log(option);
if (option && option.scene === 1038) {
// 场景值1038:从被打开的小程序返回
const { appId, extraData } = option.referrerInfo;
if (appId == "wxbcad394b3d99dac9") {
console.log(getItem("QYorder"));
const orders = getItem("QYorder");
// appId为wxbcad394b3d99dac9:从车主小程序跳转回来
// TODO
// 客户端小程序不确定授权结果,需要发起‘查询车牌服务开通信息’确认授权结果

var data = {
orderId: orders.orderId,
subOpenId: orders.openid,
};
const options = {
type: 2,
data: data,
method: "POST",
showLoading: true,
};
request(etcQYAction, options).then((res) => {
console.log(res);
var data = {
orderId: orders.orderId,
subOpenId: orders.openid,
};
const options = {
type: 2,
data: data,
method: "POST",
showLoading: true,
};
request(etcQYAction, options).then((res) => {
console.log(res);

msg("授权成功");
//如果我当前路由是签约页面才能跳转
let routes = getCurrentPages();
let curRoute = routes[routes.length - 1].route
console.log(curRoute)
if (curRoute === 'applyCard/sign-up') {
uni.navigateTo({
url: `/applyCard/product-detail?orderId=${orders.orderId}&&clientFee=${getItem("clientFee")}&&id=${getItem("productId")}`,
});
}
if (curRoute === 'pages/app/sign') {
//扫描签约成功
uni.switchTab({
url: "/pages/index/index"
})
}
});
return;
}
}
// #endif
console.log(option);
});

onLoad((option) => {
console.log(option)
});
onHide((option) => {
console.log(option)
});
msg("授权成功");
//如果我当前路由是签约页面才能跳转
let routes = getCurrentPages();
let curRoute = routes[routes.length - 1].route;
console.log(curRoute);
if (curRoute === "applyCard/sign-up") {
uni.navigateTo({
url: `/applyCard/product-detail?orderId=${
orders.orderId
}&&clientFee=${getItem("clientFee")}&&id=${getItem("productId")}`,
});
}
if (curRoute === "pages/app/sign") {
//扫描签约成功
uni.switchTab({
url: "/pages/index/index",
});
}
});
return;
}
}
console.log(option);
},
onLoad: function (option) {
console.log(option);
console.log("进入主视图");
},
onHide: function () {
console.log("App Hide");
},
};
</script>

<style lang="scss">
/*每个页面公共css */
@import './static/css/common.scss';
/*每个页面公共css */
@import "./static/css/common.scss";

// @import './uni_modules/vk-uview-ui/index.scss';
page {
font-family: "Microsoft Yahei";
// filter: grayscale(1)
}
</style>
// @import './uni_modules/vk-uview-ui/index.scss';
page {
font-family: "Microsoft Yahei";
// filter: grayscale(1)
}
</style>

+ 8
- 30
after-sale/additional-equipment/additional-equipment-verification.vue ファイルの表示

@@ -30,7 +30,7 @@
</u-radio-group>
</view>
</u-form-item>
<u-form-item prop="phone">
<!-- <u-form-item prop="phone">
<view class="from_item" style="background-color: #f7f7f7">
<text><text style="color: red"></text>手机号:</text>
<u-input v-model="form.mobile" :disabled="true" class="input" />
@@ -47,7 +47,7 @@
}}</view>
</view>
</view>
</u-form-item>
</u-form-item> -->
</view>
</u-form>
<button style="margin-top: 50rpx;" class="submit" @click="toPage()">OBU增补申请</button>
@@ -275,34 +275,12 @@
//下一步
const toPage = () => {
myForm.value.validate((valid) => {
if (valid) {
const options = {
type: 2,
data: {
mobile: form.mobile,
code: form.code
},
method: "POST",
showLoading: true,
};
request(checkCode, options)
.then(() => {
queryOBUAddAction().then(val => {
navTo(
`/after-sale/additional-equipment/result`
)
})
})
.catch((err) => {
console.log(err);
});
} else {
console.log("验证未通过");
}
});
queryOBUAddAction().then(val => {
navTo(
`/after-sale/additional-equipment/result`
)
})
};
</script>

+ 23
- 23
after-sale/replace-equipment/verification.vue ファイルの表示

@@ -27,7 +27,7 @@
</view>
</u-form-item>
<u-form-item prop="phone">
<!-- <u-form-item prop="phone">
<view class="from_item" style="background-color: #f7f7f7">
<text><text style="color: red"></text>手机号:</text>
<u-input v-model="form.mobile" :disabled="true" class="input" />
@@ -44,7 +44,7 @@
}}</view>
</view>
</view>
</u-form-item>
</u-form-item> -->
</view>
</u-form>
<button style="margin-top: 50rpx;" class="submit" v-if="apply.data.status === 'APPLY'||!apply.data.status"
@@ -274,19 +274,19 @@
//下一步
const toPage = () => {
myForm.value.validate((valid) => {
if (valid) {
const options = {
type: 2,
data: {
mobile: form.mobile,
code: form.code
},
method: "POST",
showLoading: true,
};
request(checkCode, options)
.then(() => {
// myForm.value.validate((valid) => {
// if (valid) {
// const options = {
// type: 2,
// data: {
// mobile: form.mobile,
// code: form.code
// },
// method: "POST",
// showLoading: true,
// };
// request(checkCode, options)
// .then(() => {
if (apply.data.status === 'APPLY') {
navTo(
`/after-sale/replace-equipment/form?orderId=${params.orderId}&&id=${apply.data.id}`
@@ -312,14 +312,14 @@
})
}
})
.catch((err) => {
console.log(err);
});
} else {
console.log("验证未通过");
}
});
// })
// .catch((err) => {
// console.log(err);
// });
// } else {
// console.log("验证未通过");
// }
// });
};
</script>

+ 25
- 25
after-sale/to-bookkeeping-card/verification.vue ファイルの表示

@@ -2,7 +2,7 @@
<view class="oderPage">
<u-form :model="form" ref="myForm" :error-type="errorType">
<view class="from">
<u-form-item prop="phone">
<!-- <u-form-item prop="phone">
<view class="from_item" style="background-color: #f7f7f7">
<text><text style="color: red"></text>手机号:</text>
<u-input v-model="form.mobile" :disabled="true" class="input" />
@@ -19,7 +19,7 @@
}}</view>
</view>
</view>
</u-form-item>
</u-form-item> -->
</view>
</u-form>
@@ -140,7 +140,8 @@
//申请
const queryCckChangejzCardAction = () => {
var data = {
orderId:params.orderId
orderId:params.orderId,
};
const options = {
type: 2,
@@ -160,33 +161,32 @@
//下一步
const toPage = () => {
myForm.value.validate((valid) => {
if (valid) {
const options = {
type: 2,
data: {
mobile: form.mobile,
code: form.code
},
method: "POST",
showLoading: true,
};
request(checkCode, options)
.then(() => {
// myForm.value.validate((valid) => {
// if (valid) {
// const options = {
// type: 2,
// data: {
// mobile: form.mobile,
// code: form.code
// },
// method: "POST",
// showLoading: true,
// };
// request(checkCode, options)
// .then(() => {
queryCckChangejzCardAction().then(val => {
navTo(
`/after-sale/to-bookkeeping-card/mailing_information?orderId=${params.orderId}&&applyId=${val.applyId}`
)
})
})
.catch((err) => {
console.log(err);
});
} else {
console.log("验证未通过");
}
});
// })
// .catch((err) => {
// console.log(err);
// });
// } else {
// console.log("验证未通过");
// }
// });
};
</script>

+ 17
- 17
after-sale/transfer-ownership/transfer-verification.vue ファイルの表示

@@ -15,7 +15,7 @@
</view>
</u-form-item>
<u-form-item prop="phone">
<!-- <u-form-item prop="phone">
<view class="from_item" style="background-color: #f7f7f7">
<text><text style="color: red"></text>手机号:</text>
<u-input v-model="form.mobile" :disabled="true" class="input" />
@@ -32,7 +32,7 @@
}}</view>
</view>
</view>
</u-form-item>
</u-form-item> -->
</view>
</u-form>
<button class="submit" @click="toPage()">下一步</button>
@@ -137,25 +137,25 @@
} else {
form.serviceType = 'WITHCUSTOMER'
}
const options = {
type: 2,
data: {
mobile: form.mobile,
code: form.code
},
method: "POST",
showLoading: true,
};
request(checkCode, options)
.then((res) => {
// const options = {
// type: 2,
// data: {
// mobile: form.mobile,
// code: form.code
// },
// method: "POST",
// showLoading: true,
// };
// request(checkCode, options)
// .then((res) => {
uni.$emit('queryCardlossStatus', {
type: form.serviceType
})
uni.navigateBack()
})
.catch((err) => {
console.log(err);
});
// })
// .catch((err) => {
// console.log(err);
// });
};
</script>

+ 39
- 10
pages/index/index.vue ファイルの表示

@@ -27,13 +27,13 @@
</view>
<view class="text">储值卡充值</view>
</view>
<view class="item-box" @click="$util.msg('该功能正在开发中,敬请期待!')">
<view class="item-box" @click="$util.navTo('/service/search/select-car',true)">
<view class="item item-2">
<image :src="fileURL + 'image/index/item-2.png'" />
</view>
<view class="text">账单查询</view>
</view>
<view class="item-box" @click="$util.msg('该功能正在开发中,敬请期待!')">
<view class="item-box" @click="$util.navTo('/invoice/Invoice-mannager',true)">
<view class="item item-3">
<image :src="fileURL + 'image/index/item-3.png'" />
</view>
@@ -46,7 +46,7 @@
<view class="text">设备激活</view>
</view>
<view class="item-box" @click="$util.msg('该功能正在开发中,敬请期待!')">
<view class="item-box" @click="$util.navTo('/after-sale/card-loss-reporting/select-car',true)">
<view class="item item-5">
<image :src="fileURL + 'image/index/item-5.png'" />
</view>
@@ -218,6 +218,12 @@
getItem,
StorageKeys
} from "../../utils/storage";
// import {
// onLoad,
// } from "@dcloudio/uni-app";
import {
queryKey
} from "@/utils/network/api.js";
import {
reactive
} from "vue";
@@ -303,9 +309,9 @@
isShowBar.value = false;
}
});
onLoad(() => {
getInfo()
})
// onLoad(() => {
// getInfo()
// })
onMounted(() => {
uni.getSystemInfo({
@@ -359,6 +365,30 @@ onLoad(() => {
});
};
onLoad(() => {
quanKeyAction().then((val: any) => {
console.log(val)
})
});
const quanKeyAction = (val: any) => {
var data = {};
const options = {
type: 2,
data: data,
method: "POST",
showLoading: true,
};
return new Promise(async (resolve, reject) => {
const res = await request(queryKey, options);
const data = stringToJson(res.bizContent);
resolve(data);
}).catch((error) => {
reject(error);
});
}
const toCreatOrder = (val: any) => {
state.userType = val;
if (val === "1") {
@@ -393,8 +423,8 @@ onLoad(() => {
const closeMask = () => {
isShowMask.value = false;
};
// 获取文本信息----用户协议
const getInfo = () => {
@@ -419,7 +449,6 @@ onLoad(() => {
console.log(err);
});
}
</script>
<style>
@@ -845,4 +874,4 @@ onLoad(() => {
padding: 55rpx 30rpx 30rpx;
}
}
</style>
</style>

+ 380
- 491
pages/service/service.vue ファイルの表示

@@ -1,492 +1,381 @@
<template>
<view class="wrapper">
<navBar title="九州ETC"></navBar>
<view class="search-box">
<image :src="`${$imgUrl}service/icon-search.png`" class="icon"></image>
<input class="search" placeholder="请输入业务名称" />
</view>
<view class="content">
<view class="left">
<view
:class="activeTab === '业务服务' ? 'menu active' : 'menu'"
@click="tabHandle('业务服务')"
>
<view
:class="activeTab === '业务服务' ? 'border on' : 'border'"
></view>
<view class="menu-text">业务服务</view>
</view>
<view
:class="activeTab === '资金服务' ? 'menu active' : 'menu'"
@click="tabHandle('资金服务')"
>
<view
:class="activeTab === '资金服务' ? 'border on' : 'border'"
></view>
<view class="menu-text">资金服务</view>
</view>
<view
:class="activeTab === '查询服务' ? 'menu active' : 'menu'"
@click="tabHandle('查询服务')"
>
<view
:class="activeTab === '查询服务' ? 'border on' : 'border'"
></view>
<view class="menu-text">查询服务</view>
</view>
<view
:class="activeTab === '信息管理' ? 'menu active' : 'menu'"
@click="tabHandle('信息管理')"
>
<view
:class="activeTab === '信息管理' ? 'border on' : 'border'"
></view>
<view class="menu-text">信息管理</view>
</view>
<view
:class="activeTab === '其他服务' ? 'menu active' : 'menu'"
@click="tabHandle('其他服务')"
>
<view
:class="activeTab === '其他服务' ? 'border on' : 'border'"
></view>
<view class="menu-text">其他服务</view>
</view>
</view>
<view class="right">
<view class="right-content" v-if="activeTab === '业务服务'">
<view
class="item-box"
@click="
toNext('/after-sale/card-deactivation-activation/select-car')
"
>
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/kqty.png`" />
</view>
<view class="text">卡签停用卡签启用</view>
</view>
<view
class="item-box"
@click="toNext('/after-sale/card-loss-reporting/select-car')"
>
<view class="item bg-orange" :style="{ '--background': bgOrange }">
<image :src="`${$imgUrl}service/imgs/gs.png`" />
</view>
<view class="text text-orange">卡签挂失解除挂失</view>
</view>
<view
class="item-box"
@click="toNext('/after-sale/ETC-log-off/select-car')"
>
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/zx.png`" />
</view>
<view class="text">卡签注销</view>
</view>
<view class="item-box" style="display: none">
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/xxcx.png`" />
</view>
<view class="text">卡签信息重写</view>
</view>
<view
class="item-box"
@click="toNext('/after-sale/card-supplement/reissueForm')"
style="display: none"
>
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/hkhq.png`" />
</view>
<view class="text">补卡换卡补签换签</view>
</view>
<view
class="item-box"
@click="
toNext(
'/after-sale/additional-equipment/select-car'
)
"
>
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/zbOBUsb.png`" />
</view>
<view class="text">增补OBU设备</view>
</view>
<view
class="item-box"
@click="
toNext('/after-sale/transfer-ownership/select-car-transfer')
"
>
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/etcgh.png`" />
</view>
<view class="text">ETC过户</view>
</view>
<view
class="item-box"
@click="toNext('/after-sale/pin-code-deblocking/select-car')"
>
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/kpinjs.png`" />
</view>
<view class="text">卡Pin码解锁</view>
</view>
<view
class="item-box"
@click="toNext('/after-sale/equipment-upgrade/select-car')"
>
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/kpinjs.png`" />
</view>
<view class="text">设备升级</view>
</view>
<view
class="item-box"
@click="toNext('/after-sale/card-Renewal/select-car')"
>
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/kxq.png`" />
</view>
<view class="text">卡签续期</view>
</view>
<view
class="item-box"
@click="toNext('/after-sale/replace-equipment/select-car')"
>
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}huan-icon.png`" />
</view>
<view class="text">更换设备</view>
</view>
<view
class="item-box"
@click="toNext('/after-sale/account-change/select-car')"
>
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}huan-icon.png`" />
</view>
<view class="text">扣款账户变更</view>
</view>
<view
class="item-box"
@click="$util.navTo('/invoice/Invoice-mannager', true)"
>
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}fa-icon.png`" />
</view>
<view class="text">发票管理</view>
</view>
<view
class="item-box"
@click="toNext('/after-sale/rescind-carId/rescind-carId-select')"
>
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/jcclzy.png`" />
</view>
<view class="text">解除车牌占用</view>
</view>
<view
class="item-box"
@click="toNext('/after-sale/card-release-pending/select-car')"
>
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/jcgq.png`" />
</view>
<view class="text">卡签解除挂起</view>
</view>
<view
class="item-box"
@click="toNext('/after-sale/activation-once-again/select-car')"
>
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/obucxjh.png`" />
</view>
<view class="text">OBU重新激活</view>
</view>
<view
class="item-box"
@click="
$util.navTo('/issueActivation/install-activation-order', true)
"
>
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/sbjh.png`" />
</view>
<view class="text">设备激活</view>
</view>
<view
class="item-box"
@click="$util.navTo('/issueActivation/old-user', true)"
>
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/gwcfx.png`" />
</view>
<view class="text">公务车发行</view>
</view>
<view
class="item-box"
@click="$util.navTo('/after-sale/to-bookkeeping-card/select-car')"
>
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/czkzjzk.png`" />
</view>
<view class="text">储值卡转记账卡</view>
</view>
</view>
<view class="right-content" v-if="activeTab === '资金服务'">
<view class="item-box">
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/ktf.png`" />
</view>
<view class="text">卡退费</view>
</view>
<view class="item-box">
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/qctf.png`" />
</view>
<view class="text">圈存退费</view>
</view>
<view
class="item-box"
@click="$util.navTo(`/pages/recharge/recharge`)"
>
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/czkqc.png`" />
</view>
<view class="text">储值卡圈存</view>
</view>
<view
class="item-box"
@click="$util.navTo('/after-sale/arrears/arrears')"
>
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/qfbj.png`" />
</view>
<view class="text">欠费补缴</view>
</view>
<view
class="item-box"
@click="$util.navTo('/after-sale/refund-order-balance/select-car')"
>
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/yebl.png`" />
</view>
<view class="text">余额补领</view>
</view>
<view class="item-box" @click="toNext('/orders/flowingWater')">
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/bukae.png`" />
</view>
<view class="text">补卡额</view>
</view>
</view>
<view class="right-content" v-if="activeTab === '查询服务'">
<view
class="item-box"
@click="toNext('/service/search/select-car')"
>
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/etctxls.png`" />
</view>
<view class="text">ETC通行流水记录</view>
</view>
</view>
<view class="right-content" v-if="activeTab === '信息管理'">
<view
class="item-box"
@click="$util.navTo('/pages/bluetooth/bluetooth?routeType=4', true)"
>
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/pj.png`" />
</view>
<view class="text">卡签信息</view>
</view>
</view>
<view class="right-content" v-if="activeTab === '其他服务'">
<view
class="item-box"
@click="$util.navTo('/service/remind/satisfaction-evaluate', true)"
>
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/pj.png`" />
</view>
<view class="text">满意度评价</view>
</view>
<view
class="item-box"
@click="$util.navTo('/invoice/Invoice-mannager')"
>
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/etctxls.png`" />
</view>
<view class="text">发票服务</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script lang="ts" setup>
import navBar from "@/components/nav-bar/nav-bar.vue";
import { ref } from "vue";
import { onLoad } from "@dcloudio/uni-app";
import { fileURL } from "@/datas/fileURL.js";
import { msg } from "@/utils/utils";

const bgOrange = `url(${fileURL}image/service/bg-orange.png) center center no-repeat`;
const bgBlue = `url(${fileURL}image/service/bg-blue.png) center center no-repeat`;
const activeTab = ref("业务服务");
// 切换
function tabHandle(val) {
activeTab.value = val;
}

function toNext(url) {
uni.navigateTo({
url: url,
});
// msg("该功能正在开发中,敬请期待!")
}
</script>

<style>
page {
height: 100%;
}

.wrapper {
display: flex;
background: linear-gradient(to left, #43a1e0 0%, #13e7c1 100%);
flex-direction: column;
height: 100%;
}

.search-box {
margin: 50rpx 40rpx;
height: 72rpx;
border-radius: 36rpx;
background: #f7f7f7;
display: flex;
justify-content: center;
align-items: center;
}

.search-box .icon {
width: 48rpx;
height: 48rpx;
margin: 0 20rpx;
}

.search-box .search {
flex: 1;
margin-right: 20rpx;
height: 100%;
padding: 0 10rpx;
font-size: 28rpx;
color: #00b38b;
}

.content {
display: flex;
flex: 1;
flex-grow: 1;
background: #fff;
border-radius: 30rpx 30rpx 0 0;
padding-top: 40rpx;
}

.left {
width: 180rpx;
border-right: 1px solid #dcdcdc;
margin-right: 29rpx;
}

.left .menu-text {
font-size: 26rpx;
color: #666666;
width: 120rpx;
}

.left .menu {
padding-left: 15rpx;
display: flex;
align-items: center;
margin: 20rpx 0 60rpx 0;
}

.left .active .menu-text {
font-weight: bold;
color: #00b38b;
font-size: 28rpx;
line-height: 32rpx;
}

.left .border {
width: 9rpx;
height: 26rpx;
border-radius: 4rpx;
margin-right: 20rpx;
}

.left .on {
background: linear-gradient(0deg, #43a1e0 0%, #13e7c1 100%);
font-size: 28rpx;
}

.right {
flex: 1;
}

.right-content {
display: flex;
flex-wrap: wrap;
}

.right .item-box {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
margin-right: 30rpx;
margin-bottom: 39rpx;
}

.item {
width: 105rpx;
height: 105rpx;
display: flex;
justify-content: center;
align-items: center;
border-radius: 20rpx;
}

.item image {
width: 64rpx;
height: 64rpx;
}

.right .text {
width: 105rpx;
font-size: 22rpx;
text-align: center;
height: 60rpx;
display: flex;
justify-content: center;
align-items: center;
margin-top: 19rpx;
color: #666666;
}

.bg-blue {
background: var(--background);
}

.bg-orange {
background: var(--background);
}
.right .text-orange {
color: #fd8362;
}
<template>
<view class="wrapper">
<navBar title="九州ETC"></navBar>
<view class="search-box">
<image :src="`${$imgUrl}service/icon-search.png`" class="icon"></image>
<input class="search" placeholder="请输入业务名称" />
</view>
<view class="content">
<view class="left">
<view :class="activeTab === '业务服务' ? 'menu active' : 'menu'" @click="tabHandle('业务服务')">
<view :class="activeTab === '业务服务' ? 'border on' : 'border'"></view>
<view class="menu-text">业务服务</view>
</view>
<view :class="activeTab === '资金服务' ? 'menu active' : 'menu'" @click="tabHandle('资金服务')">
<view :class="activeTab === '资金服务' ? 'border on' : 'border'"></view>
<view class="menu-text">资金服务</view>
</view>
<view :class="activeTab === '查询服务' ? 'menu active' : 'menu'" @click="tabHandle('查询服务')">
<view :class="activeTab === '查询服务' ? 'border on' : 'border'"></view>
<view class="menu-text">查询服务</view>
</view>
<view :class="activeTab === '信息管理' ? 'menu active' : 'menu'" @click="tabHandle('信息管理')">
<view :class="activeTab === '信息管理' ? 'border on' : 'border'"></view>
<view class="menu-text">信息管理</view>
</view>
<view :class="activeTab === '其他服务' ? 'menu active' : 'menu'" @click="tabHandle('其他服务')">
<view :class="activeTab === '其他服务' ? 'border on' : 'border'"></view>
<view class="menu-text">其他服务</view>
</view>
</view>
<view class="right">
<view class="right-content" v-if="activeTab === '业务服务'">
<view class="item-box" @click="
toNext('/after-sale/card-deactivation-activation/select-car')
">
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/kqty.png`" />
</view>
<view class="text">卡签停用卡签启用</view>
</view>
<view class="item-box" @click="toNext('/after-sale/card-loss-reporting/select-car')">
<view class="item bg-orange" :style="{ '--background': bgOrange }">
<image :src="`${$imgUrl}service/imgs/gs.png`" />
</view>
<view class="text text-orange">卡签挂失解除挂失</view>
</view>
<view class="item-box" @click="toNext('/after-sale/ETC-log-off/select-car')">
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/zx.png`" />
</view>
<view class="text">卡签注销</view>
</view>
<view class="item-box" style="display: none">
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/xxcx.png`" />
</view>
<view class="text">卡签信息重写</view>
</view>
<view class="item-box" @click="toNext('/after-sale/card-supplement/reissueForm')"
style="display: none">
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/zbOBUsb.png`" />
</view>
<view class="text">增补OBU设备</view>
</view>
<view class="item-box" @click="
toNext('/after-sale/transfer-ownership/select-car-transfer')
">
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/etcgh.png`" />
</view>
<view class="text">ETC过户</view>
</view>
<view class="item-box" @click="toNext('/after-sale/pin-code-deblocking/select-car')">
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/kpinjs.png`" />
</view>
<view class="text">卡Pin码解锁</view>
</view>
<view class="item-box" @click="toNext('/after-sale/equipment-upgrade/select-car')">
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/kpinjs.png`" />
</view>
<view class="text">设备升级</view>
</view>
<view class="item-box" @click="toNext('/after-sale/card-Renewal/select-car')">
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/kxq.png`" />
</view>
<view class="text">卡签续期</view>
</view>
<view class="item-box" @click="toNext('/after-sale/replace-equipment/select-car')">
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}huan-icon.png`" />
</view>
<view class="text">更换设备</view>
</view>
<view class="item-box" @click="$util.navTo('/invoice/Invoice-mannager', true)">
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}fa-icon.png`" />
</view>
<view class="text">发票管理</view>
</view>
<view class="item-box" @click="toNext('/after-sale/rescind-carId/rescind-carId-select')">
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/jcclzy.png`" />
</view>
<view class="text">解除车牌占用</view>
</view>
<view class="item-box" @click="toNext('/after-sale/activation-once-again/select-car')">
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/obucxjh.png`" />
</view>
<view class="text">OBU重新激活</view>
</view>
<view class="item-box" @click="
$util.navTo('/issueActivation/install-activation-order', true)
">
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/sbjh.png`" />
</view>
<view class="text">设备激活</view>
</view>
<view class="item-box" @click="$util.navTo('/issueActivation/old-user', true)">
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/gwcfx.png`" />
</view>
<view class="text">公务车发行</view>
</view>
<view class="item-box" @click="$util.navTo('/after-sale/to-bookkeeping-card/select-car')">
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/czkzjzk.png`" />
</view>
<view class="text">储值卡转记账卡</view>
</view>
</view>
<view class="right-content" v-if="activeTab === '资金服务'">
<view class="item-box">
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/ktf.png`" />
</view>
<view class="text">卡退费</view>
</view>
<view class="item-box">
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/qctf.png`" />
</view>
<view class="text">圈存退费</view>
</view>
<view class="item-box" @click="$util.navTo(`/pages/recharge/recharge`)">
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/czkqc.png`" />
</view>
<view class="text">储值卡圈存</view>
</view>
<view class="item-box" @click="$util.navTo('/after-sale/arrears/arrears')">
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/qfbj.png`" />
</view>
<view class="text">欠费补缴</view>
</view>
<view class="item-box" @click="$util.navTo('/after-sale/refund-order-balance/select-car')">
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/yebl.png`" />
</view>
<view class="text">余额补领</view>
</view>
<view class="item-box" @click="toNext('/orders/flowingWater')">
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/bukae.png`" />
</view>
<view class="text">补卡额</view>
</view>
</view>
<view class="right-content" v-if="activeTab === '查询服务'">
<view class="item-box" @click="toNext('/service/search/select-car')">
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/etctxls.png`" />
</view>
<view class="text">ETC通行流水记录</view>
</view>
</view>
<view class="right-content" v-if="activeTab === '信息管理'">
<view class="item-box" @click="$util.navTo('/pages/bluetooth/bluetooth?routeType=4', true)">
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/pj.png`" />
</view>
<view class="text">卡签信息</view>
</view>
</view>
<view class="right-content" v-if="activeTab === '其他服务'">
<view class="item-box" @click="$util.navTo('/service/remind/satisfaction-evaluate', true)">
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/pj.png`" />
</view>
<view class="text">满意度评价</view>
</view>
<view class="item-box" @click="$util.navTo('/invoice/Invoice-mannager')">
<view class="item bg-blue" :style="{ '--background': bgBlue }">
<image :src="`${$imgUrl}service/imgs/etctxls.png`" />
</view>
<view class="text">发票服务</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script lang="ts" setup>
import navBar from "@/components/nav-bar/nav-bar.vue";
import {
ref
} from "vue";
import {
onLoad
} from "@dcloudio/uni-app";
import {
fileURL
} from "@/datas/fileURL.js";
import {
msg
} from "@/utils/utils";
const bgOrange = `url(${fileURL}image/service/bg-orange.png) center center no-repeat`;
const bgBlue = `url(${fileURL}image/service/bg-blue.png) center center no-repeat`;
const activeTab = ref("业务服务");
// 切换
function tabHandle(val) {
activeTab.value = val;
}
function toNext(url) {
uni.navigateTo({
url: url,
});
// msg("该功能正在开发中,敬请期待!")
}
</script>
<style>
page {
height: 100%;
}
.wrapper {
display: flex;
background: linear-gradient(to left, #43a1e0 0%, #13e7c1 100%);
flex-direction: column;
height: 100%;
}
.search-box {
margin: 50rpx 40rpx;
height: 72rpx;
border-radius: 36rpx;
background: #f7f7f7;
display: flex;
justify-content: center;
align-items: center;
}
.search-box .icon {
width: 48rpx;
height: 48rpx;
margin: 0 20rpx;
}
.search-box .search {
flex: 1;
margin-right: 20rpx;
height: 100%;
padding: 0 10rpx;
font-size: 28rpx;
color: #00b38b;
}
.content {
display: flex;
flex: 1;
flex-grow: 1;
background: #fff;
border-radius: 30rpx 30rpx 0 0;
padding-top: 40rpx;
}
.left {
width: 180rpx;
border-right: 1px solid #dcdcdc;
margin-right: 29rpx;
}
.left .menu-text {
font-size: 26rpx;
color: #666666;
width: 120rpx;
}
.left .menu {
padding-left: 15rpx;
display: flex;
align-items: center;
margin: 20rpx 0 60rpx 0;
}
.left .active .menu-text {
font-weight: bold;
color: #00b38b;
font-size: 28rpx;
line-height: 32rpx;
}
.left .border {
width: 9rpx;
height: 26rpx;
border-radius: 4rpx;
margin-right: 20rpx;
}
.left .on {
background: linear-gradient(0deg, #43a1e0 0%, #13e7c1 100%);
font-size: 28rpx;
}
.right {
flex: 1;
}
.right-content {
display: flex;
flex-wrap: wrap;
}
.right .item-box {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
margin-right: 30rpx;
margin-bottom: 39rpx;
}
.item {
width: 105rpx;
height: 105rpx;
display: flex;
justify-content: center;
align-items: center;
border-radius: 20rpx;
}
.item image {
width: 64rpx;
height: 64rpx;
}
.right .text {
width: 105rpx;
font-size: 22rpx;
text-align: center;
height: 60rpx;
display: flex;
justify-content: center;
align-items: center;
margin-top: 19rpx;
color: #666666;
}
.bg-blue {
background: var(--background);
}
.bg-orange {
background: var(--background);
}
.right .text-orange {
color: #fd8362;
}
</style>

+ 3
- 1
utils/network/api.js ファイルの表示

@@ -4,7 +4,9 @@ export const loginTime = 86400; //登录有效时间(单位s) 1天
export const wechatPayConfigId = "6a9a54bc01f6443faea7ffe132b19f6"; //支付配置编号 微信小程序支付
export const wechatAppID = "wx008c60533388527a"; //小程序APPid
export const wechatSecret = "95197718b43b497f02732bd9f8011080"; //小程序AppSecret

//字典
export const queryKey = 'c48706c8fe4c47dcb9dd24f1c7fe6074'//全量KEY
/*统一 会员平台*/
export const sendCode = "2"; //统一会员平台发送验证码接口
export const regist = "3"; // 统一会员平台个人账号注册

読み込み中…
キャンセル
保存