Files
sifa-mp/pages/index/index.vue
T
2026-03-25 15:54:56 +08:00

263 lines
9.2 KiB
Vue

<template>
<view class="min-height pos-r bg" style="background-color: #E0F2FE">
<view class="text-white title" :style="{top: top}">贵港公共法律服务</view>
<u-swiper v-if="swiperList.length" :list="swiperList" height="420rpx" indicator :custom-style="{zIndex: 0}"
@click="$jump('/lawOrgPages/pages/action')"/>
<view class="pos-a w-100p" style="left: 0; top: 360rpx">
<view class="card m-25 flex flex-col justify-start items-start shadow pos-r"
style="background-color: rgba(255,255,255,0.8); width: calc(100vw - 90rpx); padding-bottom: 15rpx">
<view class="tag">
<u-icon name="/static/line.png" size="30rpx"/>
<view>线上办事</view>
</view>
<view class="my-25 w-100p grid-wrap">
<view class="flex flex-col justify-center items-center shadow rounded-sm p-10 mr-15"
style="flex: 0 0 28%; height: 130rpx; margin-bottom: 10rpx"
v-for="(item, index) in navList"
:key="index" @click="$jump(item.url)">
<u-icon :name="`/static/index/${index + 1}.png`" size="60rpx"/>
<text class=" mt-20" :class="[item.label.length > 5 ? 'text-20' : 'text-25']">{{ item.label }}</text>
</view>
</view>
<!-- <view class="pos-a" style="left: 0; top: 130rpx" v-if="showLeft">-->
<!-- <u-icon name="arrow-left" size="60rpx" color="#049DFF"/>-->
<!-- </view>-->
<!-- <view class="pos-a" style="right: 0; top: 130rpx" v-if="showRight">-->
<!-- <u-icon name="arrow-right" size="60rpx" color="#049DFF"/>-->
<!-- </view>-->
</view>
</view>
<u-gap height="420rpx"></u-gap>
<view class="p-25">
<TitleItem title="企业法治体检"/>
<view class="circle w-100p mb-20 shadow"
@click="$jump('/legalOrgCheck/pages/index')"
style="background-image: url('https://sifa-api.wsdns.cn/api/file/20250419/orgCheck.png'); background-size: cover;
height: 180rpx"></view>
<TitleItem title="法律自助服务"/>
<view class="flex justify-center items-center flex-wrap">
<view class="card mb-25 flex-1 flex justify-start items-start flex-shrink shadow"
style="border-radius: 16rpx; padding: 25rpx 20rpx "
:style="{flex: '0 0 295rpx'}"
:class="[index % 2 === 0 ? 'mr-15' : 'ml-15']"
v-for="(item, index) in selfNavList"
@click="jump(item.url)"
:key="index">
<view class="flex flex-col justify-center items-center mr-15">
<text class="text-28">{{ item.label }}</text>
<text class="text-20 mt-10" style="color: rgb(123, 160, 194)">{{ item.desc }}</text>
</view>
<u-icon :name="item.icon" size="40rpx"/>
</view>
</view>
<view class="text-25 flex justify-between">
<TitleItem title="法治宣传"/>
<text class="text-20 text-blue-light mt-25" @click="$jump('/articlePages/pages/publicity')">查看更多</text>
</view>
<view class="circle w-100p mb-20 shadow"
@click="$jump('/articlePages/pages/publicity')"
style="background-image: url('https://sifa-api.wsdns.cn/api/file/20250419/propagate.png'); background-size: cover;
height: 240rpx"></view>
<TitleItem title="查询服务"/>
<view class="flex justify-start items-center flex-wrap">
<view @click="$jump('/lawOrgPages/pages/map')"
class="card mb-20 flex-1 flex justify-center items-center flex-shrink mr-15 shadow"
style="flex:0 0 295rpx; border-radius: 16rpx; padding: 25rpx 20rpx">
<u-icon name="/static/index/map.png" size="40rpx"/>
<view class="flex flex-col justify-center items-center ml-15">
<text class="text-28">法律服务地图</text>
<text class="text-20 mt-10" style="color: rgb(123, 160, 194)">法律服务机构导航</text>
</view>
</view>
<view @click="$jump('/lawOrgPages/pages/index')"
class="card mb-20 flex-1 flex justify-center items-center flex-shrink ml-15 shadow"
style="flex:0 0 295rpx; border-radius: 16rpx; padding: 25rpx 20rpx">
<u-icon name="/static/index/org.png" size="40rpx"/>
<view class="flex flex-col justify-center items-center ml-15">
<text class="text-28">人员机构查询</text>
<text class="text-20 mt-10" style="color: rgb(123, 160, 194)">法律人员机构查询</text>
</view>
</view>
<view @click="copy('https://www.moj.gov.cn/pub/sfbgw/zwgkztzl/2025nianzhuanti/2025gjtyflzyzgks/')"
class="card mb-20 flex-2 flex justify-center items-center flex-shrink shadow"
style="border-radius: 16rpx; padding: 25rpx 20rpx">
<u-icon name="/static/index/微信图片_20251009215218_10897_9.png" size="40rpx"/>
<view class="flex flex-col justify-center items-center ml-15">
<text class="text-28">法律职业资格考试</text>
<text class="text-20 mt-10" style="color: rgb(123, 160, 194)">法律职业资格考试查询</text>
</view>
</view>
</view>
</view>
<u-gap height="100rpx"></u-gap>
<custom-tabbar :current="0"/>
<Login ref="Login"/>
</view>
</template>
<script>
import CustomTabbar from "@/components/customTabbar.vue";
import {swiperListReq} from "@/api/common";
import Login from "@/components/Login.vue";
import TitleItem from "@/components/TitleItem.vue";
export default {
components: {TitleItem, Login, CustomTabbar},
data() {
return {
swiperList: [],
navList: [
{
label: '法律援助',
url: '/onlineSheetPages/pages/legalAid'
},
{
label: '公证',
url: '/onlineSheetPages/pages/notary'
},
{
label: '司法鉴定',
url: '/onlineSheetPages/pages/forensic'
},
{
label: '民事商事仲裁',
url: '/onlineSheetPages/pages/civil'
},
{
label: '行政复议',
url: '/onlineSheetPages/pages/legalReview'
},
{
label: '人民调解',
url: '/onlineSheetPages/pages/legalMediate'
},
],
selfNavList: [
{
label: 'AI律师咨询',
desc: 'AI律师咨询',
icon: '/static/index/self_0.png',
url: '/pages/ai/index'
},
{
label: '人工咨询',
desc: '一键拨打热线电话',
icon: '/static/index/self_1.png',
url: '/userPages/pages/manual'
},
{
label: '常见问题解答',
desc: '智能常见问题解答',
icon: '/static/index/self_2.png',
url: '/legalOrgCheckSuggest/pages/index'
},
{
label: '法律文书',
desc: '智能生成法律文书',
icon: '/static/index/self_3.png',
url: '/legalLegalDoc/pages/index'
},
{
label: '法律计算器',
desc: '计算法定费用/赔偿',
icon: '/static/index/self_4.png',
url: '/userPages/pages/cal'
},
{
label: '自助查询',
desc: '法律 案例 文书',
icon: '/static/index/self_5.png',
url: '/articlePages/pages/search'
},
// {
// label: '经济困难申请',
// desc: '经济困难状况申请',
// icon: '/static/index/req.png',
// url: '/onlineSheetPages/pages/economicDifficulty'
// },
],
showLeft: false,
showRight: true,
top: 0
}
},
methods: {
async getSwiperList() {
const {data} = await swiperListReq()
this.swiperList = data.map(item => {
return item.image
})
},
jump(url) {
if (url === '/pages/ai/index') {
uni.switchTab({url})
} else uni.navigateTo({url})
},
copy(data) {
uni.setClipboardData({
data,
success: function () {
uni.showToast({
title: '复制成功,请到浏览器中粘贴访问',
icon: 'none'
})
}
})
}
},
onLoad() {
this.$refs.Login.doLogin()
this.getSwiperList()
this.top = uni.getSystemInfoSync().statusBarHeight + 'px'
},
onShareAppMessage() {
return {
title: "贵港公共法律服务",
path: `/pages/index/index`
}
},
onShareTimeline() {
return {
title: "贵港公共法律服务",
path: `/pages/index/index`
}
},
}
</script>
<style scoped lang="scss">
.bg {
background: url("https://sifa-api.wsdns.cn/api/file/20250420/bg.jpg") no-repeat 100% 100%;
}
.tag {
color: #4095E5;
background-color: rgba(116, 179, 255, 0.19);
font-size: 28rpx;
font-weight: bold;
display: flex;
align-items: center;
justify-content: flex-start;
padding: 5rpx 15rpx;
border-radius: 6rpx;
}
.grid-wrap {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 15rpx;
}
.title{
position: fixed;
left: 0;
width: 100vw;
z-index: 999;
display: flex;
align-items: center;
justify-content: center;
font-size: 35rpx;
}
</style>