update
@ -480,8 +480,8 @@
|
||||
/>
|
||||
<span class="distanceNumber"
|
||||
>{{
|
||||
item.SERVERPART_DISTANCEGD ||
|
||||
item.SERVERPART_DISTANCE ||
|
||||
item.SERVERPART_DISTANCEGD ||
|
||||
"-"
|
||||
}}km</span
|
||||
>
|
||||
@ -531,11 +531,9 @@
|
||||
</view>
|
||||
|
||||
<!-- 新款样式 -->
|
||||
<view
|
||||
class="centerItem"
|
||||
@click.stop="handleGoServiceDetail(item.SERVERPART_ID, item)"
|
||||
v-if="styleType === 2"
|
||||
>
|
||||
<view class="centerItem" v-if="styleType === 2">
|
||||
<!-- @click.stop="handleGoServiceDetail(item.SERVERPART_ID, item)" -->
|
||||
|
||||
<view
|
||||
class="centerConfigItemNew"
|
||||
v-for="(subItem, index) in item.imgList.slice(
|
||||
@ -725,7 +723,12 @@
|
||||
@close="handleClosePopup"
|
||||
@maskClick="handleClosePopup"
|
||||
>
|
||||
<div class="popupDetailBox">
|
||||
<div
|
||||
class="popupDetailBox"
|
||||
:style="{
|
||||
height: comeForm === 'home' ? '80vh' : '95vh',
|
||||
}"
|
||||
>
|
||||
<div class="popupTitle">
|
||||
<div class="closeIcon" @click="handleClosePopup">
|
||||
<image
|
||||
@ -755,7 +758,10 @@
|
||||
class="stationList"
|
||||
scroll-y
|
||||
:style="{
|
||||
height: `calc(95vh - 108rpx - 56rpx - 24rpx)`,
|
||||
height: `calc(${
|
||||
comeForm === 'home' ? 80 : 95
|
||||
}vh - 108rpx - 56rpx - 24rpx - ${comeForm === 'home' ? 100 : 0}px)`,
|
||||
paddingBottom: comeForm === 'home' ? 0 : '',
|
||||
}"
|
||||
>
|
||||
<div
|
||||
@ -771,7 +777,7 @@
|
||||
? 'https://eshangtech.com/minTestImg/offGrid.svg'
|
||||
: item.Power >= 240
|
||||
? 'https://eshangtech.com/minTestImg/overfilling.svg'
|
||||
: item.Power <= 130 && item.Power > 60
|
||||
: item.Power <= 130 && item.Power >= 60
|
||||
? 'https://eshangtech.com/minTestImg/occupy.svg'
|
||||
: item.Power < 60
|
||||
? 'https://eshangtech.com/minTestImg/idle.svg'
|
||||
@ -801,7 +807,7 @@
|
||||
? '#B8B7B4'
|
||||
: item.Power >= 240
|
||||
? '#FF5959'
|
||||
: item.Power <= 130 && item.Power > 60
|
||||
: item.Power <= 130 && item.Power >= 60
|
||||
? '#FF8830'
|
||||
: item.Power < 60
|
||||
? '#01BD8B'
|
||||
@ -815,7 +821,7 @@
|
||||
? "故障"
|
||||
: item.Power >= 240
|
||||
? "超充"
|
||||
: item.Power <= 130 && item.Power > 60
|
||||
: item.Power <= 130 && item.Power >= 60
|
||||
? "快充"
|
||||
: "慢充"
|
||||
}}
|
||||
@ -827,7 +833,7 @@
|
||||
color:
|
||||
item.Power >= 240
|
||||
? '#FF5959'
|
||||
: item.Power <= 130 && item.Power > 60
|
||||
: item.Power <= 130 && item.Power >= 60
|
||||
? '#FF8830'
|
||||
: item.Power < 60
|
||||
? '#01BD8B'
|
||||
@ -981,18 +987,41 @@ export default {
|
||||
swiperHeight: [], // 高度数组
|
||||
};
|
||||
},
|
||||
props: [
|
||||
"serviceAreaList",
|
||||
"startObj",
|
||||
"endObj",
|
||||
"pageType",
|
||||
"showType",
|
||||
"showStore",
|
||||
"comeForm",
|
||||
],
|
||||
props: {
|
||||
serviceAreaList: {
|
||||
type: Array,
|
||||
default: () => [],
|
||||
},
|
||||
startObj: {
|
||||
type: Object,
|
||||
default: () => ({}),
|
||||
},
|
||||
endObj: {
|
||||
type: Object,
|
||||
default: () => ({}),
|
||||
},
|
||||
pageType: {
|
||||
// mapIndex 值为这个时候 需要把调用到的充电结果数据扔出去给父组件
|
||||
type: String,
|
||||
default: "",
|
||||
},
|
||||
showType: {
|
||||
type: String,
|
||||
default: "",
|
||||
},
|
||||
showStore: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
comeForm: {
|
||||
type: String,
|
||||
default: "",
|
||||
},
|
||||
},
|
||||
// 更新内容的时候 看好 有两版内容 样式需要改两个地方 暂时这样 后续可以变为一个
|
||||
// #ifdef MP-WEIXIN
|
||||
onReady() {
|
||||
console.log("onShow");
|
||||
console.log("onReady");
|
||||
console.log("showType", this.showType);
|
||||
let SERVERPART_TARGET = uni.getStorageSync("SERVERPART_TARGET");
|
||||
if (SERVERPART_TARGET) {
|
||||
@ -1003,6 +1032,31 @@ export default {
|
||||
}
|
||||
this.handldGetData();
|
||||
},
|
||||
// #endif
|
||||
// #ifdef APP-PLUS
|
||||
mounted() {
|
||||
console.log("onReady");
|
||||
console.log("showType", this.showType);
|
||||
let SERVERPART_TARGET = uni.getStorageSync("SERVERPART_TARGET");
|
||||
if (SERVERPART_TARGET) {
|
||||
this.SERVERPART_TARGETOBJ = JSON.parse(SERVERPART_TARGET);
|
||||
} else {
|
||||
// 拿到枚举
|
||||
this.handleSERVERPART_TARGETOBJ();
|
||||
}
|
||||
this.handldGetData();
|
||||
},
|
||||
watch: {
|
||||
serviceAreaList: {
|
||||
handler(newVal) {
|
||||
console.log("serviceAreaList 内容变化:", newVal);
|
||||
this.handldGetData();
|
||||
},
|
||||
deep: true, // 深度监听
|
||||
immediate: true, // 立即触发一次
|
||||
},
|
||||
},
|
||||
// #endif
|
||||
methods: {
|
||||
// 选择的服务区详情
|
||||
handleGoDetail(id, obj) {
|
||||
@ -1068,7 +1122,7 @@ export default {
|
||||
seq: `00${3 + i}`,
|
||||
token: token,
|
||||
});
|
||||
res = res.concat(data.Data.StationInfos);
|
||||
res = res.concat(data.data.Data.StationInfos);
|
||||
}
|
||||
return res;
|
||||
},
|
||||
@ -1142,6 +1196,9 @@ export default {
|
||||
serviceList = serviceArea.Result_Data.List;
|
||||
uni.setStorageSync("serviceList", JSON.stringify(serviceList));
|
||||
}
|
||||
|
||||
console.log("serviceList32321321321", serviceList);
|
||||
|
||||
let _this = this;
|
||||
|
||||
let list = [];
|
||||
@ -1722,11 +1779,14 @@ export default {
|
||||
console.log("itemEnd", itemEnd);
|
||||
console.log("res", res);
|
||||
|
||||
if (res) {
|
||||
list[i].SERVERPART_DISTANCEGD = (
|
||||
Number(res.distance) / 1000
|
||||
).toFixed(2);
|
||||
}
|
||||
// if (res) {
|
||||
// list[i].SERVERPART_DISTANCEGD = (
|
||||
// Number(res.distance) / 1000
|
||||
// ).toFixed(2);
|
||||
// list[i].SERVERPART_DISTANCE = (
|
||||
// Number(res.distance) / 1000
|
||||
// ).toFixed(2);
|
||||
// }
|
||||
|
||||
let chargeObj = this.handleHaveRandomData();
|
||||
list[i].chargeObj = chargeObj;
|
||||
@ -1809,10 +1869,18 @@ export default {
|
||||
};
|
||||
// _this.handleGetChargeData(list, ["新桥", "丰乐", "肥东"]);
|
||||
// 理想
|
||||
await _this.handleGetChargeData(list, nameList);
|
||||
let newRes = [];
|
||||
newRes = await _this.handleGetChargeData(list, nameList);
|
||||
// 交控
|
||||
await _this.handleTrafficControlData(list, nameList);
|
||||
newRes = await _this.handleTrafficControlData(newRes, nameList);
|
||||
// 国网
|
||||
// newRes = await _this.handleGetStateGrid(newRes, nameList);
|
||||
|
||||
if (this.pageType === "mapIndex") {
|
||||
this.$emit("allChargeData", { res: newRes });
|
||||
}
|
||||
|
||||
this.detailObj.servicePart = newRes;
|
||||
uni.hideLoading();
|
||||
},
|
||||
|
||||
@ -1913,7 +1981,7 @@ export default {
|
||||
});
|
||||
console.log("tokenData", tokenData);
|
||||
// token的实际值
|
||||
let token = tokenData.Data.AccessToken;
|
||||
let token = tokenData.data.Data.AccessToken;
|
||||
|
||||
// 拿到所有站点的数据
|
||||
const allStationList = await this.$testApi.$post("/send", {
|
||||
@ -1927,17 +1995,22 @@ export default {
|
||||
token: token,
|
||||
});
|
||||
console.log("allStationList", allStationList);
|
||||
let stationList = allStationList.Data.StationInfos;
|
||||
let stationList = allStationList.data.Data.StationInfos;
|
||||
// 判断 因为 理想的数据 是一页20个 20个的返回的 所以需要我们去遍历 拿到 他的全部数据
|
||||
// 那么就需要 看看这次有多少页 然后遍历去拿
|
||||
// 值为多少 就说明还要遍历 sum - 1次
|
||||
let sum = allStationList.Data.PageCount;
|
||||
let sum = allStationList.data.Data.PageCount;
|
||||
let remainData = [];
|
||||
if (sum > 1) {
|
||||
remainData = await this.handleTraverseLXAllData(sum, token);
|
||||
stationList = stationList.concat(remainData);
|
||||
}
|
||||
|
||||
console.log("stationList32312312", stationList);
|
||||
if (this.pageType === "mapIndex") {
|
||||
this.$emit("allLXDataList", { res: stationList });
|
||||
}
|
||||
|
||||
let newStationList = [];
|
||||
if (stationList && stationList.length > 0) {
|
||||
stationList.forEach((item) => {
|
||||
@ -1978,7 +2051,7 @@ export default {
|
||||
seq: `00${sum + 2}`,
|
||||
token: token,
|
||||
});
|
||||
let statusList = stationInfo.Data.StationStatusInfos;
|
||||
let statusList = stationInfo.data.Data.StationStatusInfos;
|
||||
console.log("statusList", statusList);
|
||||
if (statusList && statusList.length > 0) {
|
||||
statusList.forEach((item) => {
|
||||
@ -2000,8 +2073,8 @@ export default {
|
||||
|
||||
console.log("haveStationList", haveStationList);
|
||||
|
||||
if (this.detailObj.servicePart && this.detailObj.servicePart.length > 0) {
|
||||
let newRes = JSON.parse(JSON.stringify(this.detailObj.servicePart));
|
||||
if (serviceList && serviceList.length > 0) {
|
||||
let newRes = JSON.parse(JSON.stringify(serviceList));
|
||||
newRes.forEach((item) => {
|
||||
let LXCharge = [];
|
||||
let LXInfoList = [];
|
||||
@ -2082,8 +2155,9 @@ export default {
|
||||
});
|
||||
|
||||
console.log("newRes", newRes);
|
||||
this.detailObj.servicePart = newRes;
|
||||
this.$forceUpdate();
|
||||
return newRes;
|
||||
// this.detailObj.servicePart = newRes;
|
||||
// this.$forceUpdate();
|
||||
}
|
||||
// uni.hideLoading();
|
||||
},
|
||||
@ -2151,14 +2225,30 @@ export default {
|
||||
item.serviceCode && serviceObj ? serviceObj[item.serviceCode] : "";
|
||||
});
|
||||
}
|
||||
// 赋值了服务区名称之后的充电数据
|
||||
// console.log("chargInfoList", chargInfoList);
|
||||
|
||||
// 拿到现在查询的这几个服务区数据
|
||||
// console.log("nameList", nameList);
|
||||
// 现在查询的几个服务区的数据
|
||||
let nowServiceList = [];
|
||||
|
||||
if (this.pageType === "mapIndex") {
|
||||
const chargPoistionData = await new Promise((resolve, reject) => {
|
||||
uni.request({
|
||||
url: `https://wmgs.anhui-expressway.net/api/ydcx/v1/service-area/charge/status`,
|
||||
method: "GET",
|
||||
header: {
|
||||
Authorization: `Bearer ${token}`,
|
||||
"content-type": "application/x-www-form-urlencoded",
|
||||
},
|
||||
success(res) {
|
||||
resolve(res);
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
this.$emit("allJKDataList", { res: chargPoistionData.data.data });
|
||||
}
|
||||
|
||||
if (chargInfoList && chargInfoList.length > 0) {
|
||||
chargInfoList.forEach((item) => {
|
||||
let name = item.serviceName.split("服务区")[0];
|
||||
@ -2171,8 +2261,8 @@ export default {
|
||||
console.log("nowServiceListssss", nowServiceList);
|
||||
// nowServiceListssss 就是当前查询的这几个服务区里面的 充电桩数据
|
||||
// 接下来就是将它的数据 放到我们显示的数组里面
|
||||
if (this.detailObj.servicePart && this.detailObj.servicePart.length > 0) {
|
||||
let newRes = JSON.parse(JSON.stringify(this.detailObj.servicePart));
|
||||
if (list && list.length > 0) {
|
||||
let newRes = JSON.parse(JSON.stringify(list));
|
||||
newRes.forEach((item) => {
|
||||
let JKCharge = [];
|
||||
let JKInfoList = [];
|
||||
@ -2233,18 +2323,175 @@ export default {
|
||||
) +
|
||||
Number(item.WLDetail.WLEmpty || 0) +
|
||||
Number(JKEmpty || 0) +
|
||||
Number(item.chargeAndReplaceDetail.WLEmpty || 0),
|
||||
Number(
|
||||
item.chargeAndReplaceDetail.chargeAndReplaceSumEmpty || 0
|
||||
),
|
||||
};
|
||||
}
|
||||
item.JKInfoList = JKInfoList;
|
||||
item.JKCharge = JKCharge;
|
||||
});
|
||||
|
||||
console.log("JKnewRes", newRes);
|
||||
this.detailObj.servicePart = newRes;
|
||||
this.$forceUpdate();
|
||||
return newRes;
|
||||
|
||||
// console.log("JKnewRes", newRes);
|
||||
// this.detailObj.servicePart = newRes;
|
||||
// this.$forceUpdate();
|
||||
}
|
||||
},
|
||||
|
||||
// 拿到充换电数据
|
||||
async handleGetStateGrid(list, nameList) {
|
||||
const LiOperatorSecret = "tDbBTUSok8TCTjGS";
|
||||
const LiOperCode = "MA8PUMF89";
|
||||
const LiSigSecret = "PSyM5DrXRjM06a8C";
|
||||
const LiDataSecret = "tcqvnw1msfDEtVj9";
|
||||
const LiIV = "Uj3F6NWAov6j30tA";
|
||||
|
||||
const OperatorID = "78109626X"; // 组织机构代码(OperatorID)
|
||||
const OperatorSecret = "Xh2vLq1Pz9zF7wK3"; // Xh2vLq1Pz9zF7wK3 运营商秘钥(OperatorSecret)
|
||||
const SigSecret = "bT8sWn2Aq0Jv6GvD"; // bT8sWn2Aq0Jv6GvD 签名秘钥(SigSecret)
|
||||
const DataSecret = "fK7YzAq1R8Vp9hL0"; // fK7YzAq1R8Vp9hL0 数据加密秘钥(DataSecret)
|
||||
const DataSecretIV = "z3XnWl8FQ2pTm5Ba"; // z3XnWl8FQ2pTm5Ba 初始化向量(DataSecretIV)
|
||||
|
||||
let url = `https://dipper-ah.ahcce.com/jgpt-gateway/third`;
|
||||
|
||||
let tokenData = await this.$testApi.$post("/send", {
|
||||
url: `${url}/supervise/v1.0.0/query_token`,
|
||||
data: JSON.stringify({
|
||||
PlatformID: OperatorID,
|
||||
PlatformSecret: OperatorSecret,
|
||||
}),
|
||||
id: 2,
|
||||
seq: "001",
|
||||
token: "",
|
||||
});
|
||||
console.log("国网", tokenData);
|
||||
let token = tokenData.data.Data.AccessToken;
|
||||
|
||||
const allStationList = await this.$testApi.$post("/send", {
|
||||
url: `${url}/supervise/v1.0.0/query_supervise_stations_info`,
|
||||
data: JSON.stringify({
|
||||
PageNo: 1,
|
||||
PageSize: 999,
|
||||
}),
|
||||
id: 2,
|
||||
seq: "002",
|
||||
token: token,
|
||||
});
|
||||
|
||||
let allStationDataList = allStationList.data.Data.StationInfos;
|
||||
let newStationList = [];
|
||||
|
||||
if (allStationDataList && allStationDataList.length > 0) {
|
||||
allStationDataList.forEach((item) => {
|
||||
if (nameList && nameList.length > 0) {
|
||||
nameList.forEach((subItem) => {
|
||||
let sortName = subItem.split("服务区")[0];
|
||||
if (item.StationName.indexOf(sortName) !== -1) {
|
||||
newStationList.push(item);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
console.log("newStationList", newStationList);
|
||||
// 当前这几个服务区的全部充电数据 按照服务区分类
|
||||
if (list && list.length > 0) {
|
||||
let newRes = JSON.parse(JSON.stringify(list));
|
||||
newRes.forEach((item) => {
|
||||
let GWCharge = [];
|
||||
let GWInfoList = [];
|
||||
let sortName = item.SERVERPART_NAME.split("服务区")[0];
|
||||
if (newStationList && newStationList.length > 0) {
|
||||
newStationList.forEach((subItem) => {
|
||||
if (subItem.StationName.indexOf(sortName) !== -1) {
|
||||
if (
|
||||
subItem.EquipmentInfos &&
|
||||
subItem.EquipmentInfos.length > 0
|
||||
) {
|
||||
subItem.EquipmentInfos.forEach((thirdItem) => {
|
||||
// 不知道为什么 还有一层 ConnectorInfos 里面的数据更详细 就用这个匹配了
|
||||
if (
|
||||
thirdItem.ConnectorInfos &&
|
||||
thirdItem.ConnectorInfos.length > 0
|
||||
) {
|
||||
thirdItem.ConnectorInfos.forEach((fourthItem) => {
|
||||
GWInfoList.push({
|
||||
...fourthItem,
|
||||
Status: fourthItem.state,
|
||||
Power: fourthItem.Power,
|
||||
ConnectorID: fourthItem.ConnectorID,
|
||||
VoltageLowerLimits: fourthItem.VoltageLowerLimits,
|
||||
VoltageUpperLimits: fourthItem.VoltageUpperLimits,
|
||||
ConnectorType: fourthItem.ConnectorType,
|
||||
NationalStandard: fourthItem.NationalStandard,
|
||||
});
|
||||
|
||||
GWCharge.push({
|
||||
Status: fourthItem.state,
|
||||
ConnectorId: fourthItem.ConnectorID,
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
console.log("GWCharge", GWCharge);
|
||||
console.log("GWInfoList", GWInfoList);
|
||||
// 空多少个
|
||||
let GWEmpty = 0;
|
||||
// 一共多少个
|
||||
let GWSum = 0;
|
||||
|
||||
if (GWCharge && GWCharge.length > 0) {
|
||||
GWCharge.forEach((subItem) => {
|
||||
if (subItem.Status !== 3) {
|
||||
GWEmpty += 1;
|
||||
}
|
||||
GWSum += 1;
|
||||
});
|
||||
}
|
||||
|
||||
item.GWDetail = {
|
||||
GWSum: GWSum,
|
||||
GWEmpty: GWEmpty,
|
||||
};
|
||||
if (this.styleType === 2) {
|
||||
item.allChargeDetail = {
|
||||
allSum:
|
||||
Number(
|
||||
item.LXDetail && item.LXDetail.LXSum ? item.LXDetail.LXSum : 0
|
||||
) +
|
||||
Number(item.WLDetail.WLSum || 0) +
|
||||
Number(item.JKDetail.JKSum || 0) +
|
||||
Number(item.GWDetail.GWSum || 0),
|
||||
empty:
|
||||
Number(
|
||||
item.LXDetail && item.LXDetail.LXEmpty
|
||||
? item.LXDetail.LXEmpty
|
||||
: 0
|
||||
) +
|
||||
Number(item.WLDetail.WLEmpty || 0) +
|
||||
Number(item.JKDetail.JKEmpty || 0) +
|
||||
Number(item.GWDetail.GWEmpty || 0),
|
||||
};
|
||||
}
|
||||
item.GWInfoList = GWInfoList;
|
||||
item.GWCharge = GWCharge;
|
||||
});
|
||||
|
||||
return newRes;
|
||||
// console.log("GWnewRes", newRes);
|
||||
// this.detailObj.servicePart = newRes;
|
||||
// this.$forceUpdate();
|
||||
}
|
||||
},
|
||||
|
||||
// 生成随机数
|
||||
handleGetRandomData(max, min) {
|
||||
return Math.floor(Math.random() * (max - min + 1)) + min;
|
||||
@ -2297,7 +2544,14 @@ export default {
|
||||
? obj.JKInfoList.length
|
||||
: 0,
|
||||
},
|
||||
{ label: "国网", value: 4, sum: 0 },
|
||||
{
|
||||
label: "国网",
|
||||
value: 4,
|
||||
sum:
|
||||
obj.GWInfoList && obj.GWInfoList.length > 0
|
||||
? obj.GWInfoList.length
|
||||
: 0,
|
||||
},
|
||||
];
|
||||
|
||||
console.log("this.chargeDetailList", this.chargeDetailList);
|
||||
@ -2328,6 +2582,9 @@ export default {
|
||||
} else if (value === 3) {
|
||||
// 交控
|
||||
this.chargeDetailList = this.nowCurrentObj.JKInfoList;
|
||||
} else if (value === 4) {
|
||||
// 国网
|
||||
this.chargeDetailList = this.nowCurrentObj.GWInfoList;
|
||||
} else {
|
||||
this.chargeDetailList = [];
|
||||
}
|
||||
|
||||
@ -103,6 +103,8 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
goPages(pageIndex) {
|
||||
console.log("pageIndex", pageIndex);
|
||||
|
||||
uni.switchTab({
|
||||
url: pageIndex,
|
||||
});
|
||||
@ -137,6 +139,44 @@ export default {
|
||||
});
|
||||
}
|
||||
},
|
||||
// app跳转小程序的方法
|
||||
handleAppTomin(appid, secret, indexUrl, contentText) {
|
||||
uni.showModal({
|
||||
title: "提示",
|
||||
content: contentText || "是否打开微信?",
|
||||
success: (res) => {
|
||||
if (res.confirm) {
|
||||
uni.request({
|
||||
method: "GET",
|
||||
url: `https://api.weixin.qq.com/cgi-bin/token?appid=${appid}&secret=${secret}&grant_type=client_credential`,
|
||||
success: (res1) => {
|
||||
console.log("res1", res1);
|
||||
uni.request({
|
||||
method: "POST",
|
||||
url:
|
||||
"https://api.weixin.qq.com/wxa/generatescheme?access_token=" +
|
||||
res1.data.access_token,
|
||||
data: {
|
||||
// path跳转到的小程序目标页面,query跳转需要携带参数,在目标页面onload里面接收options里面,其他参数固定,获取看文档了解
|
||||
jump_wxa: {
|
||||
path: indexUrl || "pages/index/index",
|
||||
env_version: "release", // 正式版为"release",体验版为"trial",开发版为"develop"
|
||||
},
|
||||
is_expire: true,
|
||||
expire_type: 1,
|
||||
expire_interval: 1,
|
||||
// env_version: "trial",
|
||||
},
|
||||
success: (res2) => {
|
||||
plus.runtime.openURL(res2.data.openlink);
|
||||
},
|
||||
});
|
||||
},
|
||||
});
|
||||
}
|
||||
},
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@ -145,12 +185,12 @@ export default {
|
||||
.main {
|
||||
width: 100vw;
|
||||
position: fixed;
|
||||
bottom: 0rpx;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
background: #ffffff;
|
||||
border-top: 1px solid #e8e8ea;
|
||||
box-sizing: border-box;
|
||||
z-index: 99999;
|
||||
z-index: 999999;
|
||||
|
||||
.content {
|
||||
width: 100%;
|
||||
|
||||
@ -105,6 +105,13 @@
|
||||
"navigationBarTitleText": "出行导航",
|
||||
"navigationBarBackgroundColor": "#F0F5FF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "mapIndex",
|
||||
"style": {
|
||||
"navigationBarTitleText": "点位地图",
|
||||
"navigationBarBackgroundColor": "#ffffff"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@ -949,6 +949,9 @@ export default {
|
||||
this.isShow = false;
|
||||
},
|
||||
onShow() {
|
||||
uni.hideTabBar({
|
||||
animation: false,
|
||||
});
|
||||
let res = uni.getStorageSync("currentService");
|
||||
console.log("this.currentServiceMessage", this.currentServiceMessage);
|
||||
if (this.currentServiceMessage.SERVERPART_ID !== res.SERVERPART_ID) {
|
||||
|
||||
@ -300,11 +300,12 @@
|
||||
class="selectedMerchantsNew"
|
||||
v-if="pageStyle === 2 && chaegeBoxList && chaegeBoxList.length > 0"
|
||||
>
|
||||
<charge-box
|
||||
<ChargeBox
|
||||
:showType="'horizontal'"
|
||||
:serviceAreaList="chaegeBoxList"
|
||||
pageType="scanCode"
|
||||
:showStore="true"
|
||||
:comeForm="'home'"
|
||||
/>
|
||||
</div>
|
||||
|
||||
@ -589,6 +590,12 @@ export default {
|
||||
}
|
||||
},
|
||||
async onShow() {
|
||||
// uni.hideTabBar({
|
||||
// animation: false,
|
||||
// });
|
||||
|
||||
uni.$emit("updateTabBar", { show: false });
|
||||
|
||||
let systemInfo = uni.getSystemInfoSync();
|
||||
let type = uni.getStorageSync("loginType");
|
||||
if (type === "min") {
|
||||
@ -612,6 +619,7 @@ export default {
|
||||
this.serverPart = currentService;
|
||||
this.getStore();
|
||||
this.getMall();
|
||||
this.handleGetHighwayHeadlines();
|
||||
} else {
|
||||
if (this.loginType === "min") {
|
||||
this.getLocalServer();
|
||||
@ -684,8 +692,6 @@ export default {
|
||||
if (nearThreeList) {
|
||||
this.chaegeBoxList = nearThreeList;
|
||||
}
|
||||
|
||||
this.handleGetHighwayHeadlines();
|
||||
},
|
||||
onHide() {
|
||||
this.showBanner = false;
|
||||
@ -1370,7 +1376,6 @@ export default {
|
||||
let serverSelectList = [];
|
||||
// 最近的前三个的服务区 名称
|
||||
let nearThreeList = [];
|
||||
console.log("nearThreeList", nearThreeList);
|
||||
if (_data && _data.length > 0) {
|
||||
_data.forEach((item, index) => {
|
||||
if (index <= 2) {
|
||||
@ -1385,6 +1390,7 @@ export default {
|
||||
});
|
||||
});
|
||||
}
|
||||
console.log("nearThreeList", nearThreeList);
|
||||
|
||||
console.log("this.chaegeBoxList1", this.chaegeBoxList);
|
||||
this.severPartList = _data;
|
||||
@ -1546,9 +1552,9 @@ export default {
|
||||
.main {
|
||||
width: 100vw;
|
||||
box-sizing: border-box;
|
||||
padding-bottom: calc(110rpx + env(safe-area-inset-bottom));
|
||||
padding-bottom: calc(110rpx + constant(safe-area-inset-bottom));
|
||||
min-height: 100vh;
|
||||
// padding-bottom: calc(110rpx + env(safe-area-inset-bottom));
|
||||
// padding-bottom: calc(110rpx + constant(safe-area-inset-bottom));
|
||||
// min-height: 100vh;
|
||||
.backgroundBottom {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
@ -1716,7 +1722,6 @@ export default {
|
||||
.newCarousel {
|
||||
width: calc(100% - 64rpx);
|
||||
margin-left: 32rpx;
|
||||
height: 240rpx;
|
||||
border-radius: 16rpx;
|
||||
overflow: hidden;
|
||||
.banner {
|
||||
@ -2306,6 +2311,8 @@ export default {
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
padding: 24rpx 32rpx 0;
|
||||
padding-bottom: calc(110rpx + env(safe-area-inset-bottom));
|
||||
padding-bottom: calc(110rpx + env(safe-area-inset-bottom));
|
||||
.newMajorFun {
|
||||
margin-top: 0;
|
||||
background: #ffffff;
|
||||
|
||||
@ -66,7 +66,10 @@
|
||||
/>
|
||||
</div>
|
||||
<div class="refresh-box flex align-center" @click.stop="refreshCode()">
|
||||
<image class="replayIcon" src="https://eshangtech.com/wanmeiyizhanImg/home/replay.svg" />
|
||||
<image
|
||||
class="replayIcon"
|
||||
src="https://eshangtech.com/wanmeiyizhanImg/home/replay.svg"
|
||||
/>
|
||||
<span class="text-xs color9d">每分钟自动刷新</span>
|
||||
</div>
|
||||
<div
|
||||
@ -138,7 +141,10 @@
|
||||
<!-- </view> -->
|
||||
<view class="shipItem" @click="handleRealGoPay(2)">
|
||||
<view class="shipIconBox">
|
||||
<image class="shipIcon" src="https://eshangtech.com/wanmeiyizhanImg/home/wxPay.svg" />
|
||||
<image
|
||||
class="shipIcon"
|
||||
src="https://eshangtech.com/wanmeiyizhanImg/home/wxPay.svg"
|
||||
/>
|
||||
</view>
|
||||
<!-- <span class="shipTitle">微信</span> -->
|
||||
</view>
|
||||
@ -253,7 +259,7 @@ export default {
|
||||
// 快捷支付
|
||||
handleRealGoPay(payType) {
|
||||
uni.showToast({
|
||||
title: "待开发...",
|
||||
title: "上架后,待申请...",
|
||||
icon: "none",
|
||||
});
|
||||
return;
|
||||
@ -390,6 +396,10 @@ export default {
|
||||
// })
|
||||
// },
|
||||
getCode() {
|
||||
if (!_this.user.MEMBERSHIP_ID) {
|
||||
return;
|
||||
}
|
||||
|
||||
let _this = this;
|
||||
this.barcodeImg = "";
|
||||
this.qrcodeImg = "";
|
||||
|
||||
@ -17,7 +17,10 @@
|
||||
>条款。
|
||||
</view>
|
||||
<view class="imgbox">
|
||||
<image class="img" src="https://eshangtech.com/minTestImg/registerIcon.png" />
|
||||
<image
|
||||
class="img"
|
||||
src="https://eshangtech.com/minTestImg/registerIcon.png"
|
||||
/>
|
||||
</view>
|
||||
|
||||
<div class="desc newBtnFixed" v-if="!user.MEMBERSHIP_ID">
|
||||
@ -297,8 +300,9 @@ export default {
|
||||
border-radius: 16rpx;
|
||||
box-sizing: border-box;
|
||||
padding: 56rpx 64rpx;
|
||||
background: url("https://eshangtech.com/minTestImg/wanmeiyizhanRegister.svg")
|
||||
no-repeat;
|
||||
background-image: url("https://eshangtech.com/minTestImg/wanmeiyizhanRegister.svg");
|
||||
background-repeat: no-repeat;
|
||||
background-size: 100%;
|
||||
.contentTitle {
|
||||
font-family: PingFangSC, PingFang SC;
|
||||
font-weight: 600;
|
||||
|
||||
@ -1403,7 +1403,7 @@ export default {
|
||||
const DataSecret = "fK7YzAq1R8Vp9hL0"; // fK7YzAq1R8Vp9hL0 数据加密秘钥(DataSecret)
|
||||
const DataSecretIV = "z3XnWl8FQ2pTm5Ba"; // z3XnWl8FQ2pTm5Ba 初始化向量(DataSecretIV)
|
||||
|
||||
let tokenData = await this.$testApi.$post("/send", {
|
||||
let tokenData = await this.$testApi.$post("/oss/upload", {
|
||||
url: "https://openapi.chehejia.com/lcp-inter-evio-service/evcs/v1/evio/query_token",
|
||||
|
||||
data: JSON.stringify({
|
||||
@ -1419,7 +1419,7 @@ export default {
|
||||
let token = tokenData.Data.AccessToken;
|
||||
|
||||
// 拿到所有站点的数据
|
||||
const allStationList = await this.$testApi.$post("/send", {
|
||||
const allStationList = await this.$testApi.$post("/oss/upload", {
|
||||
url: "https://openapi.chehejia.com/lcp-inter-evio-service/evcs/v1/evio/query_stations_info",
|
||||
data: JSON.stringify({
|
||||
PageNo: 1,
|
||||
@ -1464,7 +1464,7 @@ export default {
|
||||
|
||||
// 查询具体状态
|
||||
if (stationIds && stationIds.length > 0) {
|
||||
const stationInfo = await this.$testApi.$post("/send", {
|
||||
const stationInfo = await this.$testApi.$post("/oss/upload", {
|
||||
url: "https://openapi.chehejia.com/lcp-inter-evio-service/evcs/v1/evio/query_station_status",
|
||||
data: JSON.stringify({
|
||||
StationIDs: stationIds,
|
||||
|
||||
@ -3,7 +3,11 @@
|
||||
<scroll-view
|
||||
scroll-y
|
||||
class="chargeList"
|
||||
:style="{ height: `calc(100vh - 60px - ${bottomSafeArea}px)` }"
|
||||
:style="{
|
||||
height: `calc(100vh - ${
|
||||
loginType === 'min' ? 60 + bottomSafeArea : 60
|
||||
}px)`,
|
||||
}"
|
||||
>
|
||||
<view class="mapBox">
|
||||
<map
|
||||
@ -1165,6 +1169,19 @@ export default {
|
||||
});
|
||||
},
|
||||
});
|
||||
} else if (url.indexOf("app.nio") !== -1) {
|
||||
// 蔚来
|
||||
uni.showModal({
|
||||
title: "",
|
||||
content: `识别二维码类型为【蔚来】,确认跳转?`,
|
||||
success(res) {
|
||||
uni.navigateToMiniProgram({
|
||||
appId: "wx35849c7f0cf7f7a9",
|
||||
path: `/pages/index/index`,
|
||||
success(res) {},
|
||||
});
|
||||
},
|
||||
});
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
471
pages/scanCodeCharge/mapIndex.vue
Normal file
@ -0,0 +1,471 @@
|
||||
<template>
|
||||
<view class="main">
|
||||
<div class="mapBox">
|
||||
<map
|
||||
id="myMap"
|
||||
:longitude="longitude"
|
||||
:latitude="latitude"
|
||||
class="map"
|
||||
:scale="17"
|
||||
:show-location="true"
|
||||
:markers="markers"
|
||||
></map>
|
||||
|
||||
<view class="topBox">
|
||||
<view class="topRight">
|
||||
<image
|
||||
class="searchIcon"
|
||||
src="https://eshangtech.com/wanmeiyizhanImg/home/searchIcon.png"
|
||||
/>
|
||||
<input
|
||||
style="margin-left: 16rpx; font-size: 28rpx"
|
||||
placeholder="请输入服务区"
|
||||
v-model="searchText"
|
||||
@confirm="handleConfirm"
|
||||
/>
|
||||
<!-- <span class="searchText">请输入服务区</span> -->
|
||||
</view>
|
||||
|
||||
<view class="listBox" @click="handleChangePageType">
|
||||
<image class="listIcon" src="/static/home/listIcon.svg" />
|
||||
<text class="text">列表</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="statusBox">
|
||||
<view class="statusItem">
|
||||
<view class="colorBox" style="background-color: #d81e06"></view>
|
||||
<!-- <image
|
||||
class="statusIcon"
|
||||
src="https://eshangtech.com/minTestImg/LXIcon.png"
|
||||
/> -->
|
||||
<text class="brandCharge">理想</text>
|
||||
<span class="empty">空</span>
|
||||
<span class="emptyValue">{{
|
||||
chargeData && chargeData.LXDetail ? chargeData.LXDetail.LXEmpty : 0
|
||||
}}</span>
|
||||
<span class="sum"
|
||||
>/{{
|
||||
chargeData && chargeData.LXDetail ? chargeData.LXDetail.LXSum : 0
|
||||
}}</span
|
||||
>
|
||||
</view>
|
||||
|
||||
<view class="statusItem">
|
||||
<!-- <image
|
||||
class="statusIcon"
|
||||
src="https://eshangtech.com/minTestImg/WLIcon.png"
|
||||
/> -->
|
||||
<view class="colorBox" style="background-color: #f4ea2a"></view>
|
||||
<text class="brandCharge">蔚来</text>
|
||||
<span class="empty">空</span>
|
||||
<span class="emptyValue">{{
|
||||
chargeData && chargeData.WLDetail
|
||||
? chargeData.WLDetail.WLEmpty
|
||||
? chargeData.WLDetail.WLEmpty
|
||||
: 0
|
||||
: 0
|
||||
}}</span>
|
||||
<span class="sum"
|
||||
>/{{
|
||||
chargeData && chargeData.WLDetail
|
||||
? chargeData.WLDetail.WLSum
|
||||
? chargeData.WLDetail.WLSum
|
||||
: 0
|
||||
: 0
|
||||
}}</span
|
||||
>
|
||||
</view>
|
||||
|
||||
<view class="statusItem">
|
||||
<!-- <image
|
||||
class="statusIcon"
|
||||
src="https://eshangtech.com/wanmeiyizhanImg/home/sunIcon.svg"
|
||||
/> -->
|
||||
<view class="colorBox" style="background-color: #57d16e"></view>
|
||||
<text class="brandCharge">交控新能源</text>
|
||||
<span class="empty">空</span>
|
||||
<span class="emptyValue"
|
||||
>{{
|
||||
chargeData && chargeData.JKDetail
|
||||
? chargeData.JKDetail.JKEmpty
|
||||
: 0
|
||||
}}
|
||||
</span>
|
||||
<span class="sum"
|
||||
>/{{
|
||||
chargeData && chargeData.JKDetail ? chargeData.JKDetail.JKSum : 0
|
||||
}}</span
|
||||
>
|
||||
</view>
|
||||
|
||||
<view class="statusItem">
|
||||
<!-- <image
|
||||
class="statusIcon"
|
||||
src="https://eshangtech.com/minTestImg/stateGridIcon.png"
|
||||
/> -->
|
||||
<view class="colorBox" style="background-color: #ff9929"></view>
|
||||
<text class="brandCharge">国网</text>
|
||||
<span class="empty">空</span>
|
||||
<span class="emptyValue"
|
||||
>{{
|
||||
chargeData && chargeData.GWDetail
|
||||
? chargeData.GWDetail.GWEmpty
|
||||
: 0
|
||||
}}
|
||||
</span>
|
||||
<span class="sum"
|
||||
>/{{
|
||||
chargeData && chargeData.GWDetail ? chargeData.GWDetail.GWSum : 0
|
||||
}}</span
|
||||
>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="serviceDetailBox" v-if="showChargeBox">
|
||||
<charge-box
|
||||
:serviceAreaList="currentServiceList"
|
||||
:pageType="'mapIndex'"
|
||||
@allChargeData="handleGetChargeData"
|
||||
@allLXDataList="handleLXAddMarker"
|
||||
@allJKDataList="handleJKAddMarker"
|
||||
/>
|
||||
</view>
|
||||
</div>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import ChargeBox from "../../components/chargeBox.vue";
|
||||
export default {
|
||||
components: { ChargeBox },
|
||||
data() {
|
||||
return {
|
||||
longitude: "",
|
||||
latitude: "",
|
||||
seatInfo: {}, // 经纬度数据
|
||||
currentServiceObj: {}, // 当前选择的服务区
|
||||
currentServiceList: [], // 当前服务区的名称数组
|
||||
chargeData: {}, // 理想的数据
|
||||
markers: [], // 点位数据
|
||||
serviceList: [], // 所有服务区的数据
|
||||
searchText: "", // 搜索的内容
|
||||
showChargeBox: true,
|
||||
showListPage: false, // 是否显示列表页面
|
||||
};
|
||||
},
|
||||
onLoad() {
|
||||
let storgeList = uni.getStorageSync("serviceList");
|
||||
if (storgeList) {
|
||||
this.serviceList = JSON.parse(storgeList);
|
||||
}
|
||||
let nearService = uni.getStorageSync("nearService");
|
||||
if (nearService) {
|
||||
this.seatInfo = {
|
||||
longitude: nearService.SERVERPART_X,
|
||||
latitude: nearService.SERVERPART_Y,
|
||||
};
|
||||
// this.longitude = this.seatInfo.longitude;
|
||||
// this.latitude = this.seatInfo.latitude;
|
||||
this.longitude = 116.894166;
|
||||
this.latitude = 31.920213;
|
||||
this.currentServiceObj = nearService;
|
||||
// this.currentServiceList = [nearService.SERVERPART_NAME];
|
||||
this.currentServiceList = ["新桥服务区"];
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 改变页面显示的内容
|
||||
handleChangePageType() {},
|
||||
// 搜索服务区的方法
|
||||
async handleConfirm() {
|
||||
this.showChargeBox = false;
|
||||
this.chaegeBoxList = [];
|
||||
let req = {
|
||||
// longitude: this.longitude,
|
||||
Province_Code: "340000",
|
||||
longitude: this.seatInfo.longitude,
|
||||
latitude: this.seatInfo.latitude,
|
||||
Serverpart_Name: this.searchText,
|
||||
ShowService: true,
|
||||
};
|
||||
const data = await this.$api.$get(
|
||||
"/CommercialApi/BaseInfo/GetServerpartList",
|
||||
req
|
||||
);
|
||||
let list = data.Result_Data.List;
|
||||
console.log("listlistlist", list);
|
||||
let obj = list[0];
|
||||
this.searchText = "";
|
||||
this.seatInfo = {
|
||||
longitude: obj.SERVERPART_X,
|
||||
latitude: obj.SERVERPART_Y,
|
||||
};
|
||||
this.longitude = this.seatInfo.longitude;
|
||||
this.latitude = this.seatInfo.latitude;
|
||||
this.currentServiceObj = obj;
|
||||
this.currentServiceList = [obj.SERVERPART_NAME];
|
||||
this.showChargeBox = true;
|
||||
},
|
||||
// 给理想的充电站标点
|
||||
handleLXAddMarker(e) {
|
||||
let stationList = e.res;
|
||||
|
||||
let pointList = [];
|
||||
if (this.serviceList && this.serviceList.length > 0) {
|
||||
this.serviceList.forEach((item) => {
|
||||
if (stationList && stationList.length > 0) {
|
||||
stationList.forEach((subItem) => {
|
||||
if (subItem.Address.indexOf(item.SERVERPART_NAME) !== -1) {
|
||||
const date = new Date();
|
||||
pointList.push({
|
||||
id: date.getTime(), // 使用时间戳作为唯一ID
|
||||
latitude: subItem.StationLat,
|
||||
longitude: subItem.StationLng,
|
||||
iconPath: "/static/home/redFixed.svg",
|
||||
width: 30,
|
||||
height: 30,
|
||||
// label: {
|
||||
// // 文本标签
|
||||
// content: "",
|
||||
// color: "#3EC273",
|
||||
// fontSize: 14,
|
||||
// bgColor: "#ffffff",
|
||||
// borderRadius: 4,
|
||||
// padding: 5,
|
||||
// textAlign: "center",
|
||||
// },
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
this.markers = this.markers.concat(pointList);
|
||||
},
|
||||
// 给交控的充电站标点
|
||||
handleJKAddMarker(e) {
|
||||
console.log("交控的全部数据", e);
|
||||
let stationList = e.res;
|
||||
|
||||
let pointList = [];
|
||||
if (this.serviceList && this.serviceList.length > 0) {
|
||||
this.serviceList.forEach((item) => {
|
||||
if (stationList && stationList.length > 0) {
|
||||
stationList.forEach((subItem) => {
|
||||
if (subItem.areaName.indexOf(item.SERVERPART_NAME) !== -1) {
|
||||
const date = new Date();
|
||||
pointList.push({
|
||||
id: date.getTime(), // 使用时间戳作为唯一ID
|
||||
latitude: subItem.lat,
|
||||
longitude: subItem.lng,
|
||||
iconPath: "/static/home/greenFixed.svg",
|
||||
width: 30,
|
||||
height: 30,
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
this.markers = this.markers.concat(pointList);
|
||||
},
|
||||
// 拿到充电的全部的数据
|
||||
handleGetChargeData(e) {
|
||||
console.log("全部的充电数据", e);
|
||||
let obj = e.res[0];
|
||||
// 因为只返回一个服务区 所以直接e[0]就可以拿到服务区数据
|
||||
this.chargeData = obj;
|
||||
|
||||
// this.markers = [
|
||||
// {
|
||||
// id: Number(obj.ServerPart_Id), // 使用时间戳作为唯一ID
|
||||
// latitude: obj.SERVERPART_Y,
|
||||
// longitude: obj.SERVERPART_X,
|
||||
// width: 20,
|
||||
// height: 30,
|
||||
// label: {
|
||||
// // 文本标签
|
||||
// content: obj.name,
|
||||
// color: "#3EC273",
|
||||
// fontSize: 14,
|
||||
// bgColor: "#ffffff",
|
||||
// borderRadius: 4,
|
||||
// padding: 5,
|
||||
// textAlign: "center",
|
||||
// },
|
||||
// },
|
||||
// ];
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.main {
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
position: relative;
|
||||
.mapBox {
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
.map {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 1;
|
||||
}
|
||||
.topBox {
|
||||
width: 100%;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 2;
|
||||
box-sizing: border-box;
|
||||
padding: 16rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
.topRight {
|
||||
width: calc(100% - 240rpx);
|
||||
height: 72rpx;
|
||||
background: #fff;
|
||||
border-radius: 36rpx;
|
||||
box-sizing: border-box;
|
||||
padding: 16rpx 20rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
|
||||
.searchIcon {
|
||||
width: 32rpx;
|
||||
height: 32rpx;
|
||||
}
|
||||
|
||||
.searchText {
|
||||
font-family: PingFangSC, PingFang SC;
|
||||
font-weight: 400;
|
||||
font-size: 28rpx;
|
||||
color: #9fa1aa;
|
||||
line-height: 40rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
margin-left: 8rpx;
|
||||
}
|
||||
}
|
||||
.listBox {
|
||||
width: 180rpx;
|
||||
height: 72rpx;
|
||||
background: #fff;
|
||||
border-radius: 36rpx;
|
||||
box-sizing: border-box;
|
||||
padding: 16rpx 20rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
|
||||
.listIcon {
|
||||
width: 40rpx;
|
||||
height: 40rpx;
|
||||
margin-right: 12rpx;
|
||||
}
|
||||
.text {
|
||||
font-family: "PingFangSC";
|
||||
font-weight: 400;
|
||||
font-size: 30rpx;
|
||||
color: #130f05;
|
||||
line-height: 36rpx;
|
||||
text-align: justify;
|
||||
font-style: normal;
|
||||
}
|
||||
}
|
||||
}
|
||||
.statusBox {
|
||||
box-sizing: border-box;
|
||||
padding: 16rpx;
|
||||
border-radius: 16rpx;
|
||||
background: #fff;
|
||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
|
||||
position: absolute;
|
||||
top: 120rpx;
|
||||
left: 16rpx;
|
||||
z-index: 2;
|
||||
.statusItem {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 8rpx 0;
|
||||
.colorBox {
|
||||
width: 18rpx;
|
||||
height: 18rpx;
|
||||
border-radius: 50%;
|
||||
overflow: hidden;
|
||||
margin-right: 16rpx;
|
||||
}
|
||||
.statusIcon {
|
||||
width: 40rpx;
|
||||
height: 40rpx;
|
||||
border-radius: 50%;
|
||||
overflow: hidden;
|
||||
margin-right: 16rpx;
|
||||
}
|
||||
.brandCharge {
|
||||
font-family: "PingFang SC", "Noto Sans CJK SC", "Microsoft YaHei",
|
||||
sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #130f05;
|
||||
line-height: 40rpx;
|
||||
font-style: normal;
|
||||
display: inline-block;
|
||||
width: 120rpx;
|
||||
margin-right: 16rpx;
|
||||
}
|
||||
.empty {
|
||||
font-family: "PingFangSC";
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #130f05;
|
||||
line-height: 36rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
margin-right: 4rpx;
|
||||
}
|
||||
.emptyValue {
|
||||
font-family: "DINAlternate";
|
||||
font-weight: 400;
|
||||
font-size: 28rpx;
|
||||
color: #130f05;
|
||||
line-height: 36rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
margin-right: 4rpx;
|
||||
}
|
||||
.sum {
|
||||
font-family: "DINAlternate";
|
||||
font-weight: 400;
|
||||
font-size: 28rpx;
|
||||
color: #716f69;
|
||||
line-height: 36rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
}
|
||||
}
|
||||
}
|
||||
.serviceDetailBox {
|
||||
width: calc(100% - 64rpx);
|
||||
box-sizing: border-box;
|
||||
padding: 16rpx;
|
||||
border-radius: 16rpx;
|
||||
position: absolute;
|
||||
left: 32rpx;
|
||||
bottom: 80rpx;
|
||||
z-index: 2;
|
||||
background: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@ -2,7 +2,73 @@
|
||||
<view class="main">
|
||||
<view class="content">
|
||||
<view class="trafficState">
|
||||
<view class="positionBox">
|
||||
<view class="newPositionBox">
|
||||
<view class="positionItem">
|
||||
<view class="itemLeft">
|
||||
<view class="itemLeftItem">
|
||||
<view class="positionIcon startObj"></view>
|
||||
<view class="positionBox" v-if="startEndType === 1">{{
|
||||
startObj.name || ""
|
||||
}}</view>
|
||||
<view class="positionBox" v-if="startEndType !== 1">
|
||||
<textarea
|
||||
style="width: 100%"
|
||||
placeholder="请输入目的地"
|
||||
auto-height
|
||||
placeholder-style="font-size: 30rpx"
|
||||
v-model="searchPoint"
|
||||
confirm-type="search"
|
||||
@focus="handleEndPlaceFocus"
|
||||
@input="searchPOI"
|
||||
@confirm="handleConfirmToSearch"
|
||||
></textarea>
|
||||
<!-- @blur="handleEndPlaceBlur" -->
|
||||
<!-- @confirm="searchPOI" -->
|
||||
|
||||
<!-- {{ endObj.name || "" }} -->
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="itemLeftItem">
|
||||
<view class="positionIcon endObj"></view>
|
||||
<view
|
||||
class="positionBox noBorderBottom"
|
||||
v-if="startEndType === 1"
|
||||
>
|
||||
<textarea
|
||||
style="width: 100%"
|
||||
placeholder="请输入目的地"
|
||||
auto-height
|
||||
placeholder-style="font-size: 30rpx"
|
||||
v-model="searchPoint"
|
||||
confirm-type="search"
|
||||
@focus="handleEndPlaceFocus"
|
||||
@input="searchPOI"
|
||||
@confirm="handleConfirmToSearch"
|
||||
></textarea>
|
||||
<!-- @blur="handleEndPlaceBlur" -->
|
||||
<!-- @confirm="searchPOI" -->
|
||||
|
||||
<!-- {{ endObj.name || "" }} -->
|
||||
</view>
|
||||
<view
|
||||
class="positionBox noBorderBottom"
|
||||
v-if="startEndType !== 1"
|
||||
>{{ endObj.name || "" }}</view
|
||||
>
|
||||
</view>
|
||||
</view>
|
||||
<view class="itemRight">
|
||||
<image
|
||||
class="reachIcon"
|
||||
src="https://eshangtech.com/wanmeiyizhanImg/home/reachIcon.png"
|
||||
@click="handleChangeStartEnd"
|
||||
/>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- <view class="positionBox">
|
||||
<view class="startItem" @click="handleChangeService(startObj)">{{
|
||||
startObj.name || ""
|
||||
}}</view>
|
||||
@ -14,12 +80,40 @@
|
||||
<view class="endItem" @click="handleChangeService(endObj)">{{
|
||||
endObj.name || ""
|
||||
}}</view>
|
||||
</view> -->
|
||||
<!-- @click="handleTrafficSearch" -->
|
||||
<view class="searchBtn" @click="handleConfirmToSearch">路况查询</view>
|
||||
</view>
|
||||
|
||||
<!-- 地名搜索的列表 -->
|
||||
<view
|
||||
class="placeSearchListBox"
|
||||
v-if="pointList && pointList.length > 0 && endPlaceFocus"
|
||||
>
|
||||
<view
|
||||
class="listItem"
|
||||
v-for="(item, index) in pointList"
|
||||
:key="index"
|
||||
@click="handleGoUsMap(item)"
|
||||
>
|
||||
<view class="topItem">
|
||||
<view class="topLeft">
|
||||
<image
|
||||
class="listIcon"
|
||||
src="https://eshangtech.com/wanmeiyizhanImg/home/address.png"
|
||||
/>
|
||||
<span class="listName">{{ item.name || "" }}</span>
|
||||
</view>
|
||||
<view class="rightDistance">{{
|
||||
item.distance ? `${item.distance}km` : ""
|
||||
}}</view>
|
||||
</view>
|
||||
<view class="bottom">{{ item.address || "" }}</view>
|
||||
</view>
|
||||
<view class="searchBtn" @click="handleTrafficSearch">路况查询</view>
|
||||
</view>
|
||||
|
||||
<!-- 下面的信息 -->
|
||||
<view class="bottomBox">
|
||||
<view class="bottomBox" v-if="!endPlaceFocus">
|
||||
<view class="boxTop">
|
||||
<view class="leftTop">
|
||||
<span class="boldText">{{ detailObj.distanceNumber || "-" }}</span>
|
||||
@ -521,6 +615,8 @@ export default {
|
||||
pointList: [], // 查询到的地名数组
|
||||
chaegeBoxList: [], // 组件要的服务区名称的数组
|
||||
hideFilterSearch: false, // 隐藏筛选的小项
|
||||
endPlaceFocus: false, // 目的地的聚焦
|
||||
startEndType: 1, // 起始的类型 1的时候 代表没交换过 2的时候 代表交换了
|
||||
};
|
||||
},
|
||||
onLoad() {
|
||||
@ -646,6 +742,21 @@ export default {
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
// 目的地的聚焦事件
|
||||
handleEndPlaceFocus(e) {
|
||||
this.endPlaceFocus = true;
|
||||
},
|
||||
// 失去焦点
|
||||
handleEndPlaceBlur() {
|
||||
this.endPlaceFocus = false;
|
||||
},
|
||||
// 直接点击回车 触发搜索
|
||||
handleConfirmToSearch() {
|
||||
if (this.pointList && this.pointList.length > 0) {
|
||||
this.handleGoUsMap(this.pointList[0]);
|
||||
this.endPlaceFocus = false;
|
||||
}
|
||||
},
|
||||
// 给搜索框 加上指定文字
|
||||
handleAddSearchText(searchType) {
|
||||
this.searchPoint += searchType;
|
||||
@ -657,7 +768,11 @@ export default {
|
||||
if (!this.searchPoint) {
|
||||
this.hideFilterSearch = false;
|
||||
}
|
||||
|
||||
if (this.startEndType === 1) {
|
||||
this.endObj.name = this.searchPoint;
|
||||
} else {
|
||||
this.startObj.name = this.searchPoint;
|
||||
}
|
||||
let _this = this;
|
||||
const key = "6e96a801bcea5290d3dcbf100358a6b3"; // 在高德开发者平台申请
|
||||
const url = `https://restapi.amap.com/v5/place/text?key=${key}&types=&keywords=${this.searchPoint}&offset=10&page=1®ion=合肥市`;
|
||||
@ -707,7 +822,6 @@ export default {
|
||||
},
|
||||
// 点击高德搜索出来的 导航
|
||||
handleGoUsMap(obj) {
|
||||
console.log("endObj", this.endObj);
|
||||
console.log("obj", obj);
|
||||
let [lon2, lat2] = obj.location.split(",");
|
||||
let newRes = {
|
||||
@ -718,7 +832,14 @@ export default {
|
||||
longitude: lon2,
|
||||
latitude: lat2,
|
||||
};
|
||||
this.endObj = newRes;
|
||||
|
||||
if (this.startEndType === 1) {
|
||||
this.endObj = newRes;
|
||||
} else {
|
||||
this.startObj = newRes;
|
||||
}
|
||||
this.searchPoint = newRes.name;
|
||||
this.endPlaceFocus = false;
|
||||
this.detailObj = {
|
||||
distanceNumber: "",
|
||||
hour: "",
|
||||
@ -729,6 +850,9 @@ export default {
|
||||
};
|
||||
this.$refs.popup.close();
|
||||
this.isShow = false;
|
||||
console.log("startEndType", this.startEndType);
|
||||
console.log("endObj", this.endObj);
|
||||
console.log("startObj", this.startObj);
|
||||
this.handleTrafficSearch();
|
||||
|
||||
return;
|
||||
@ -981,9 +1105,18 @@ export default {
|
||||
},
|
||||
// 切换出发点和 终点
|
||||
handleChangeStartEnd() {
|
||||
if (this.startEndType === 1) {
|
||||
this.startEndType = 2;
|
||||
this.searchPoint = this.endObj.name;
|
||||
} else {
|
||||
this.startEndType = 1;
|
||||
this.searchPoint = this.startObj.name;
|
||||
}
|
||||
let middleObj = this.endObj;
|
||||
this.endObj = JSON.parse(JSON.stringify(this.startObj));
|
||||
this.startObj = middleObj;
|
||||
console.log("this.startObj", this.startObj);
|
||||
console.log("this.endObj", this.endObj);
|
||||
},
|
||||
// 获取权限
|
||||
handleGetPermission() {
|
||||
@ -1128,6 +1261,7 @@ export default {
|
||||
const key = "6e96a801bcea5290d3dcbf100358a6b3";
|
||||
// 起点经纬度
|
||||
const start = `${this.startObj.longitude},${this.startObj.latitude}`;
|
||||
// const start = `117.202392,31.833196`;
|
||||
// 终点经纬度
|
||||
const end = `${this.endObj.longitude},${this.endObj.latitude}`;
|
||||
// 拿到途径点的所有坐标
|
||||
@ -1160,7 +1294,7 @@ export default {
|
||||
|
||||
const data = await new Promise((resolve, reject) => {
|
||||
uni.request({
|
||||
url: `https://restapi.amap.com/v3/direction/driving?key=${key}&origin=${start}&destination=${this.endObj.longitude},${this.endObj.latitude}&strategy=19`,
|
||||
url: `https://restapi.amap.com/v3/direction/driving?key=${key}&origin=${start}&destination=${this.endObj.longitude},${this.endObj.latitude}&extensions=all&strategy=20`,
|
||||
method: "GET",
|
||||
success(res) {
|
||||
console.log("resresresresresresresresresresres", res);
|
||||
@ -1834,7 +1968,7 @@ export default {
|
||||
handleToMap(obj) {
|
||||
// console.log("this.loginType", this.loginType);
|
||||
|
||||
if (this.loginType === "min") {
|
||||
if (this.loginType === "min" || this.loginType === "ios") {
|
||||
uni.openLocation({
|
||||
latitude: obj.latitude ? obj.latitude * 1 : obj.SERVERPART_Y * 1,
|
||||
longitude: obj.longitude ? obj.longitude * 1 : obj.SERVERPART_X * 1,
|
||||
@ -1930,6 +2064,66 @@ export default {
|
||||
border: 2rpx solid #f3f3f3;
|
||||
box-sizing: border-box;
|
||||
padding: 24px;
|
||||
.newPositionBox {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
box-sizing: border-box;
|
||||
padding: 8rpx 12rpx;
|
||||
border-radius: 8rpx;
|
||||
background: #fafafb;
|
||||
border: 1px solid #f6f6f8;
|
||||
.positionItem {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.itemLeft {
|
||||
width: calc(100% - 30rpx);
|
||||
.itemLeftItem {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.positionIcon {
|
||||
width: 20rpx;
|
||||
height: 20rpx;
|
||||
border-radius: 50%;
|
||||
margin-right: 20rpx;
|
||||
}
|
||||
.startObj {
|
||||
background: #0dc46e;
|
||||
}
|
||||
.endObj {
|
||||
background: #ef3737;
|
||||
}
|
||||
|
||||
.positionBox {
|
||||
font-family: "PingFangSC";
|
||||
font-weight: 400;
|
||||
font-size: 30rpx;
|
||||
color: #130f05;
|
||||
line-height: 36rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
padding: 16rpx 0;
|
||||
display: inline-block;
|
||||
width: calc(100% - 80rpx);
|
||||
border-bottom: 1px solid #d8d9da;
|
||||
}
|
||||
.noBorderBottom {
|
||||
border-bottom: 0px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.itemRight {
|
||||
margin-left: 6rpx;
|
||||
.reachIcon {
|
||||
width: 24rpx;
|
||||
height: 24rpx;
|
||||
transform: rotate(-90deg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.positionBox {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@ -1974,6 +2168,70 @@ export default {
|
||||
}
|
||||
}
|
||||
|
||||
.placeSearchListBox {
|
||||
width: 100%;
|
||||
margin-top: 12px;
|
||||
background: #ffffff;
|
||||
box-sizing: border-box;
|
||||
padding: 24rpx;
|
||||
.listItem {
|
||||
padding: 16rpx 0;
|
||||
border-bottom: 1px solid #f5f6f7;
|
||||
.topItem {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
.topLeft {
|
||||
width: 80%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.listIcon {
|
||||
width: 24rpx;
|
||||
height: 24rpx;
|
||||
margin-right: 8rpx;
|
||||
}
|
||||
.listName {
|
||||
width: 80%;
|
||||
display: inline-block;
|
||||
font-family: "PingFangSC";
|
||||
font-weight: 400;
|
||||
font-size: 28rpx;
|
||||
color: #130f05;
|
||||
line-height: 40rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
|
||||
.rightDistance {
|
||||
font-family: "PingFangSC";
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #716f69;
|
||||
line-height: 40rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
}
|
||||
}
|
||||
.bottom {
|
||||
width: 80%;
|
||||
font-family: PingFangSC, PingFang SC;
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #716f69;
|
||||
line-height: 40rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bottomBox {
|
||||
width: 100%;
|
||||
background: #ffffff;
|
||||
|
||||
@ -574,7 +574,7 @@
|
||||
</view>
|
||||
|
||||
<!-- 卫生间 母婴室 司机之家 -->
|
||||
<view class="otherFacilities">
|
||||
<view class="otherFacilities" v-if="false">
|
||||
<view class="detailTab">
|
||||
<view
|
||||
:class="
|
||||
@ -1091,7 +1091,6 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
32
pages/tabbar
Normal file
@ -0,0 +1,32 @@
|
||||
"tabBar": {
|
||||
"custom": true,
|
||||
"color": "#130F05",
|
||||
"backgroundColor": "#fff",
|
||||
"selectedColor": "#130F05",
|
||||
"borderStyle": "black",
|
||||
"list": [{
|
||||
"text": "首页",
|
||||
"pagePath": "pages/home/index",
|
||||
"iconPath": "static/tabs/home.png",
|
||||
"selectedIconPath": "static/tabs/home-active.png"
|
||||
},
|
||||
{
|
||||
"text": "线上商城",
|
||||
"pagePath": "pages/onlineShop/index",
|
||||
"iconPath": "static/tabs/store-active.png",
|
||||
"selectedIconPath": "static/tabs/store-active.png"
|
||||
},
|
||||
{
|
||||
"text": "精选活动",
|
||||
"pagePath": "pages/discovery/index",
|
||||
"iconPath": "static/tabs/discovery.png",
|
||||
"selectedIconPath": "static/tabs/discovery-active.png"
|
||||
},
|
||||
{
|
||||
"text": "我的",
|
||||
"pagePath": "pages/userCenter/index",
|
||||
"iconPath": "static/tabs/user.png",
|
||||
"selectedIconPath": "static/tabs/user-active.png"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -4,7 +4,7 @@
|
||||
<view
|
||||
class="top"
|
||||
:style="{
|
||||
paddingTop: `${menu.bottom + 14}px`,
|
||||
paddingTop: `${loginType === 'min' ? menu.bottom : menu.top + 14}px`,
|
||||
}"
|
||||
>
|
||||
<view class="userInfoLeft">
|
||||
@ -153,8 +153,6 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<tabbar :page="'/pages/userCenter/index'" />
|
||||
</view>
|
||||
|
||||
<view class="pageBg"></view>
|
||||
@ -371,6 +369,8 @@
|
||||
|
||||
<tabbar :page="'/pages/userCenter/index'" />
|
||||
</div>
|
||||
|
||||
<tabbar :page="'/pages/userCenter/index'" />
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@ -505,13 +505,18 @@ export default {
|
||||
let type = uni.getStorageSync("loginType");
|
||||
console.log("type", type);
|
||||
this.loginType = type;
|
||||
let systemInfo = uni.getSystemInfoSync();
|
||||
if (type === "min") {
|
||||
this.menu = uni.getMenuButtonBoundingClientRect();
|
||||
} else {
|
||||
this.menu = systemInfo.safeArea;
|
||||
}
|
||||
console.log("this.menu", this.menu);
|
||||
},
|
||||
onShow() {
|
||||
uni.hideTabBar({
|
||||
animation: false,
|
||||
});
|
||||
let signTime = uni.getStorageSync("signTime");
|
||||
if (signTime) {
|
||||
signTime = new Date(signTime).getTime();
|
||||
@ -958,10 +963,11 @@ export default {
|
||||
|
||||
<style lang="less" scoped>
|
||||
.main {
|
||||
background: #f5f7f9;
|
||||
padding-bottom: calc(90rpx + env(safe-area-inset-bottom));
|
||||
min-height: 100vh;
|
||||
position: relative;
|
||||
width: 100vw;
|
||||
box-sizing: border-box;
|
||||
// padding-bottom: calc(90rpx + env(safe-area-inset-bottom));
|
||||
// height: 100vh;
|
||||
// position: relative;
|
||||
.content {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
@ -1259,7 +1265,7 @@ export default {
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 720rpx;
|
||||
height: 100%;
|
||||
background-image: url("https://eshangtech.com/minTestImg/newBackg.png");
|
||||
background-size: 100% 100%;
|
||||
z-index: 1;
|
||||
|
||||
1
static/home/greenFixed.svg
Normal file
@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1743585624364" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="13047" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128"><path d="M536.61888 1012.394667a31.914667 31.914667 0 0 1-49.237333 0c-190.72-230.186667-303.104-393.514667-337.066667-490.069334A395.52 395.52 0 0 1 128.000213 390.698667C128.000213 174.933333 299.94688 0 512.04288 0 724.13888 0 896.000213 174.933333 896.000213 390.698667c0 46.506667-8.021333 91.136-22.698666 132.48-33.92 96.341333-146.346667 259.413333-336.682667 489.216zM511.957547 520.96c70.656 0 128.042667-58.368 128.042666-130.261333 0-71.936-57.258667-130.133333-128.042666-130.133334-70.826667 0-128.085333 58.197333-128.085334 130.133334 0 71.893333 57.386667 130.261333 128.085334 130.261333z" fill="#57d16e" p-id="13048"></path></svg>
|
||||
|
After Width: | Height: | Size: 974 B |
1
static/home/listIcon.svg
Normal file
@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1743497220851" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3652" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128"><path d="M903.734 456.037h-559.62c-30.905 0-55.963 25.057-55.963 55.963 0 30.877 25.057 55.963 55.963 55.963h559.62c30.933 0 55.963-25.086 55.963-55.963-0.001-30.905-25.031-55.963-55.963-55.963z m-783.468 0c-30.905 0-55.963 25.057-55.963 55.963 0 30.877 25.057 55.963 55.963 55.963s55.962-25.086 55.962-55.963c0-30.905-25.058-55.963-55.962-55.963z m0-279.81c-30.905 0-55.963 25.057-55.963 55.963s25.057 55.963 55.963 55.963 55.962-25.057 55.962-55.963-25.058-55.962-55.962-55.962z m223.848 111.925h559.62c30.933 0 55.963-25.057 55.963-55.963s-25.03-55.962-55.963-55.962h-559.62c-30.905 0-55.963 25.056-55.963 55.962s25.058 55.963 55.963 55.963z m559.62 447.696h-559.62c-30.905 0-55.963 25.086-55.963 55.963s25.057 55.962 55.963 55.962h559.62c30.933 0 55.963-25.085 55.963-55.962s-25.031-55.963-55.963-55.963z m-783.468 0c-30.905 0-55.963 25.086-55.963 55.963s25.057 55.962 55.963 55.962 55.962-25.085 55.962-55.962-25.058-55.963-55.962-55.963z" p-id="3653"></path></svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
1
static/home/orangeFixed.svg
Normal file
@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1743585660190" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="13253" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128"><path d="M536.61888 1012.394667a31.914667 31.914667 0 0 1-49.237333 0c-190.72-230.186667-303.104-393.514667-337.066667-490.069334A395.52 395.52 0 0 1 128.000213 390.698667C128.000213 174.933333 299.94688 0 512.04288 0 724.13888 0 896.000213 174.933333 896.000213 390.698667c0 46.506667-8.021333 91.136-22.698666 132.48-33.92 96.341333-146.346667 259.413333-336.682667 489.216zM511.957547 520.96c70.656 0 128.042667-58.368 128.042666-130.261333 0-71.936-57.258667-130.133333-128.042666-130.133334-70.826667 0-128.085333 58.197333-128.085334 130.133334 0 71.893333 57.386667 130.261333 128.085334 130.261333z" fill="#FF9929" p-id="13254"></path></svg>
|
||||
|
After Width: | Height: | Size: 974 B |
1
static/home/redFixed.svg
Normal file
@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1743585660190" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="13253" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128"><path d="M536.61888 1012.394667a31.914667 31.914667 0 0 1-49.237333 0c-190.72-230.186667-303.104-393.514667-337.066667-490.069334A395.52 395.52 0 0 1 128.000213 390.698667C128.000213 174.933333 299.94688 0 512.04288 0 724.13888 0 896.000213 174.933333 896.000213 390.698667c0 46.506667-8.021333 91.136-22.698666 132.48-33.92 96.341333-146.346667 259.413333-336.682667 489.216zM511.957547 520.96c70.656 0 128.042667-58.368 128.042666-130.261333 0-71.936-57.258667-130.133333-128.042666-130.133334-70.826667 0-128.085333 58.197333-128.085334 130.133334 0 71.893333 57.386667 130.261333 128.085334 130.261333z" fill="#d81e06" p-id="13254"></path></svg>
|
||||
|
After Width: | Height: | Size: 974 B |
1
static/home/yellowFixed.svg
Normal file
@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1743585660190" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="13253" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128"><path d="M536.61888 1012.394667a31.914667 31.914667 0 0 1-49.237333 0c-190.72-230.186667-303.104-393.514667-337.066667-490.069334A395.52 395.52 0 0 1 128.000213 390.698667C128.000213 174.933333 299.94688 0 512.04288 0 724.13888 0 896.000213 174.933333 896.000213 390.698667c0 46.506667-8.021333 91.136-22.698666 132.48-33.92 96.341333-146.346667 259.413333-336.682667 489.216zM511.957547 520.96c70.656 0 128.042667-58.368 128.042666-130.261333 0-71.936-57.258667-130.133333-128.042666-130.133334-70.826667 0-128.085333 58.197333-128.085334 130.133334 0 71.893333 57.386667 130.261333 128.085334 130.261333z" fill="#f4ea2a" p-id="13254"></path></svg>
|
||||
|
After Width: | Height: | Size: 974 B |
6
unpackage/dist/build/app-plus/app-service.js
vendored
2
unpackage/dist/build/app-plus/app-view.js
vendored
2
unpackage/dist/build/app-plus/manifest.json
vendored
18408
unpackage/dist/dev/app-plus/app-service.js
vendored
20120
unpackage/dist/dev/app-plus/app-view.js
vendored
2
unpackage/dist/dev/app-plus/manifest.json
vendored
|
Before Width: | Height: | Size: 764 B |
|
Before Width: | Height: | Size: 2.0 KiB |
BIN
unpackage/dist/dev/app-plus/static/images/border.png
vendored
|
Before Width: | Height: | Size: 478 B |
|
Before Width: | Height: | Size: 12 KiB |
BIN
unpackage/dist/dev/app-plus/static/images/car.png
vendored
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 772 B |
|
Before Width: | Height: | Size: 764 B |
|
Before Width: | Height: | Size: 2.8 KiB |