|
|
@@ -3,7 +3,7 @@ |
|
|
|
<navBar title="九州ETC"></navBar>
|
|
|
|
<view class="search-box">
|
|
|
|
<image :src="`${$imgUrl}service/icon-search.png`" class="icon" mode="aspectFill" @click="search()"></image>
|
|
|
|
<input class="search" placeholder="请输入业务名称" v-model="state.searchVal" @confirm="search()"/>
|
|
|
|
<input class="search" placeholder="请输入业务名称" v-model="state.searchVal" @confirm="search()" />
|
|
|
|
</view>
|
|
|
|
<view class="content">
|
|
|
|
<view class="left">
|
|
|
@@ -16,9 +16,10 @@ |
|
|
|
<view class="right">
|
|
|
|
<view class="right-content">
|
|
|
|
<block v-if="menuShow.list.length > 0">
|
|
|
|
<view v-for="(item,index) in menuShow.list[tableSelectIndex].children" :key='index' class="item-box" @click="toNext(item.link)">
|
|
|
|
<view v-for="(item,index) in menuShow.list[tableSelectIndex].children" :key='index'
|
|
|
|
class="item-box" @click="toNext(item.link)">
|
|
|
|
<view class="item bg-blue" :style="{ '--background': bgBlue }">
|
|
|
|
<image :src="`${fileURLList}${item.iconPath}`" mode="aspectFill"/>
|
|
|
|
<image :src="`${fileURLList}${item.iconPath}`" mode="aspectFill" />
|
|
|
|
<!-- <image :src="`${item.iconPath}`" /> -->
|
|
|
|
</view>
|
|
|
|
<view class="text">{{item.name}}</view>
|
|
|
@@ -39,7 +40,7 @@ |
|
|
|
onLoad
|
|
|
|
} from "@dcloudio/uni-app";
|
|
|
|
import {
|
|
|
|
fileURL,fileURLList
|
|
|
|
fileURL, fileURLList
|
|
|
|
} from "@/datas/fileURL.js";
|
|
|
|
import {
|
|
|
|
msg
|
|
|
@@ -71,55 +72,55 @@ |
|
|
|
list: [] //请求的真正的不会变得
|
|
|
|
});
|
|
|
|
const menuShow = reactive({
|
|
|
|
list: [] ,//展示的
|
|
|
|
list: [],//展示的
|
|
|
|
});
|
|
|
|
const state = reactive({
|
|
|
|
searchVal:'', //input输入值
|
|
|
|
newArr:[]
|
|
|
|
const state = reactive({
|
|
|
|
searchVal: '', //input输入值
|
|
|
|
newArr: []
|
|
|
|
});
|
|
|
|
onLoad(() => {
|
|
|
|
queryMenuConfigAction().then((val : any) => {
|
|
|
|
menu.list = val.menuList?val.menuList:[],
|
|
|
|
menu.list=deepClone(menu.list)
|
|
|
|
state.newArr=deepClone(menu.list);
|
|
|
|
menuShow.list = val.menuList?val.menuList:[]
|
|
|
|
menu.list = val.menuList ? val.menuList : [],
|
|
|
|
menu.list = deepClone(menu.list)
|
|
|
|
state.newArr = deepClone(menu.list);
|
|
|
|
menuShow.list = val.menuList ? val.menuList : []
|
|
|
|
})
|
|
|
|
});
|
|
|
|
// 深拷贝
|
|
|
|
const deepClone=(obj)=> {
|
|
|
|
if (typeof obj !== 'object' || obj === null) {
|
|
|
|
return obj;
|
|
|
|
}
|
|
|
|
|
|
|
|
let clone = Array.isArray(obj) ? [] : {};
|
|
|
|
|
|
|
|
for (let key in obj) {
|
|
|
|
if (obj.hasOwnProperty(key)) {
|
|
|
|
clone[key] = deepClone(obj[key]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return clone;
|
|
|
|
const deepClone = (obj) => {
|
|
|
|
if (typeof obj !== 'object' || obj === null) {
|
|
|
|
return obj;
|
|
|
|
}
|
|
|
|
|
|
|
|
let clone = Array.isArray(obj) ? [] : {};
|
|
|
|
|
|
|
|
for (let key in obj) {
|
|
|
|
if (obj.hasOwnProperty(key)) {
|
|
|
|
clone[key] = deepClone(obj[key]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return clone;
|
|
|
|
}
|
|
|
|
const search=()=>{
|
|
|
|
for(var i=0;i<menu.list.length;i++){
|
|
|
|
state.newArr[i]['children']=[];
|
|
|
|
for(var j=0;j<menu.list[i]['children'].length;j++){
|
|
|
|
const name=menu.list[i]['children'][j].name;
|
|
|
|
if(name.indexOf(state.searchVal)>=0){
|
|
|
|
const search = () => {
|
|
|
|
for (var i = 0; i < menu.list.length; i++) {
|
|
|
|
state.newArr[i]['children'] = [];
|
|
|
|
for (var j = 0; j < menu.list[i]['children'].length; j++) {
|
|
|
|
const name = menu.list[i]['children'][j].name;
|
|
|
|
if (name.indexOf(state.searchVal) >= 0) {
|
|
|
|
state.newArr[i]['children'].push(menu.list[i]['children'][j])
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// 清除没有孩子的父亲
|
|
|
|
const lastArr=[]
|
|
|
|
for(var k=0;k<state.newArr.length;k++){
|
|
|
|
if(state.newArr[k]['children'].length!=0){
|
|
|
|
const lastArr = []
|
|
|
|
for (var k = 0; k < state.newArr.length; k++) {
|
|
|
|
if (state.newArr[k]['children'].length != 0) {
|
|
|
|
lastArr.push(state.newArr[k])
|
|
|
|
}
|
|
|
|
}
|
|
|
|
console.log("lastArr",lastArr)
|
|
|
|
menuShow.list=lastArr
|
|
|
|
console.log("lastArr", lastArr)
|
|
|
|
menuShow.list = lastArr
|
|
|
|
}
|
|
|
|
const queryMenuConfigAction = () => {
|
|
|
|
var data = {
|
|
|
@@ -137,7 +138,7 @@ |
|
|
|
return new Promise(async (resolve, reject) => {
|
|
|
|
const res = await request(queryMenuConfig, options);
|
|
|
|
const data = stringToJson(res.bizContent);
|
|
|
|
console.log("data",data.menuList)
|
|
|
|
console.log("data", data.menuList)
|
|
|
|
resolve(data);
|
|
|
|
}).catch((error) => {
|
|
|
|
reject(error);
|
|
|
@@ -186,6 +187,7 @@ |
|
|
|
padding: 0 10rpx;
|
|
|
|
font-size: 28rpx;
|
|
|
|
color: black;
|
|
|
|
background: transparent;
|
|
|
|
}
|
|
|
|
|
|
|
|
.content {
|
|
|
@@ -253,6 +255,19 @@ |
|
|
|
margin-bottom: 39rpx;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// #ifdef MP-ALIPAY
|
|
|
|
.item {
|
|
|
|
width: 95rpx;
|
|
|
|
height: 95rpx;
|
|
|
|
display: flex;
|
|
|
|
justify-content: center;
|
|
|
|
align-items: center;
|
|
|
|
border-radius: 20rpx;
|
|
|
|
}
|
|
|
|
|
|
|
|
// #endif
|
|
|
|
// #ifdef MP-WEIXIN
|
|
|
|
.item {
|
|
|
|
width: 105rpx;
|
|
|
|
height: 105rpx;
|
|
|
@@ -262,6 +277,7 @@ |
|
|
|
border-radius: 20rpx;
|
|
|
|
}
|
|
|
|
|
|
|
|
// #endif
|
|
|
|
.item image {
|
|
|
|
width: 64rpx;
|
|
|
|
height: 64rpx;
|