Files
dvcp_v2_wechat_app/src/project/fengdu/AppConvenientService/AppConvenientService.vue
shijingjing d5cdacddff 便民服务
2023-03-20 09:32:43 +08:00

121 lines
3.1 KiB
Vue

<template>
<div class="AppConvenientService">
<u-navbar :is-back="false" title="便民服务" title-color="#000" title-width="300" title-size="32" :background="backgroundNavbar" :title-bold="true"></u-navbar>
<div class="card-list">
<div class="card" v-for="(item,index) in list" :key="index">
<h2>{{ $dict.getLabel('homeConfigMenuType', index) }}</h2>
<div class="items-list">
<div class="items" v-for="(t, inx) in item" :key="inx" @click="handleClick(t)">
<img :src="t.pictureUrl" alt="" >
<div class="items-name">{{ t.name }}</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { mapActions, mapState } from "vuex";
export default {
name: "AppConvenientService",
appName: "便民服务",
customNavigation: true,
computed: {
...mapState(['user', 'token']),
},
data() {
return {
list: [],
backgroundNavbar: {
background: '#FFF'
}
}
},
methods: {
...mapActions(['authCheck']),
handleClick({ type, appId, modulePath, url, checkType, corpId }) {
if (checkType == 3 && this.user.partyStatusForWX != 2) { //张硕让改的
return this.$u.toast('您还不是党员,暂时无法使用该功能')
}
//先判读是不是系统应用
if (type != "0") {
if (type == "1") {
uni.navigateToMiniProgram({ appId });
} else if (type == "2") {
uni.navigateTo({ url: "/subPages/h5/webview?link=" + url });
} else if (type == "3") {
this.$linkTo(url);
} else if (type == "4") {
uni.openCustomerServiceChat({
extInfo: { url: url },
corpId: corpId,
fail: () => {
this.$u.toast('请使用普通微信打开小程序进行咨询');
}
});
}
} else if (type && type == "0") {
uni.showLoading({ title: '正在进入应用...' })
this.authCheck({ checkType, modulePath }).finally(() => uni.hideLoading())
}
},
getList() {
this.$instance.post("/app/appminihomeconfig/listAll", null, { withoutToken: true }).then(res => {
if (res?.data) {
this.list = res.data.all;
}
})
},
},
onLoad() {
this.$dict.load("homeConfigMenuType").then(() => {
this.getList()
});
},
}
</script>
<style lang="scss" scoped>
.AppConvenientService {
padding: 32px;
box-sizing: border-box;
.card {
background: #FFF;
padding: 32px;
box-sizing: border-box;
border-radius: 16px;
h2 {
color: #333333;
font-size: 34px;
font-weight: 600;
}
.items-list {
width: 100%;
display: flex;
flex-wrap: wrap;
.items {
width: 25%;
margin-top: 24px;
text-align: center;
align-self: center;
img {
width: 108px;
height: 108px;
}
.items-name {
margin-top: 8px;
color: #1d2229ff;
font-size: 26px;
font-weight: 400;
}
}
}
}
}
</style>