first commit

This commit is contained in:
2025-05-22 10:33:32 +08:00
commit f2ef63d910
581 changed files with 53162 additions and 0 deletions
+131
View File
@@ -0,0 +1,131 @@
<template>
<view class="min-height bg p-30">
<HeaderItem title="民事商事仲裁"/>
<view class="rounded text-white flex justify-center items-center"
style="background: linear-gradient(91.28deg, rgba(14,146,252,1) 27.63%,rgba(29,188,188,1) 80.08%); height: 160rpx" @click="$jump('/onlineSheetPages/pages/newCivilRequest')">
民事商事仲裁线上申请入口
</view>
<view class="flex justify-around items-center flex-wrap my-25">
<view class="card flex flex-col justify-center items-center" @click="openPopup('condition')"
style="flex: 0 0 40%; border-radius: 20rpx">
<u-icon name="/onlineSheetPages/static/v2_sua83h.png" size="120rpx"/>
<text class="text-25 mt-10">申请条件</text>
</view>
<view class="card flex flex-col justify-center items-center" @click="openPopup('stuff')"
style="flex: 0 0 40%; border-radius: 20rpx">
<u-icon name="/onlineSheetPages/static/v2_sua840.png" size="120rpx"/>
<text class="text-25 mt-10">申请材料</text>
</view>
</view>
<view class="flex justify-around items-center flex-wrap my-25">
<view class="card flex flex-col justify-center items-center" @click="openPopup('flow')"
style="flex: 0 0 40%; border-radius: 20rpx">
<u-icon name="/onlineSheetPages/static/v2_sua84m.png" size="120rpx"/>
<text class="text-25 mt-10">办理流程</text>
</view>
<view class="card flex flex-col justify-center items-center"
@click="$jump(`/articlePages/pages/list?title=政策法规&cateId=73`)"
style="flex: 0 0 40%; border-radius: 20rpx">
<u-icon name="/onlineSheetPages/static/v2_sua84z.png" size="120rpx"/>
<text class="text-25 mt-10">政策法规</text>
</view>
</view>
<view class="flex justify-around items-center flex-wrap my-25">
<view class="card flex flex-col justify-center items-center"
@click="$jump(`/articlePages/pages/list?title=典型案例&cateId=76`)"
style="flex: 0 0 40%; border-radius: 20rpx">
<u-icon name="/onlineSheetPages/static/v2_sue29e.png" size="120rpx"/>
<text class="text-25 mt-10">典型案例</text>
</view>
<view class="card flex flex-col justify-center items-center" @click="openPopup('fee')"
style="flex: 0 0 40%; border-radius: 20rpx">
<u-icon name="/onlineSheetPages/static/v2_suhlrq.png" size="120rpx"/>
<text class="text-25 mt-10">收费标准</text>
</view>
</view>
<u-popup :show="showContent" close-on-click-overlay @close="showContent = false" round="10"
:closeable="false"
:safe-area-inset-bottom="false">
<view class="p-50 pos-r" v-if="showContent">
<view class="pos-a" style="right: 10rpx; top: 10rpx;z-index: 999" @click="showContent = false">
<u-icon name="close-circle" :color="MAIN()" size="40rpx"/>
</view>
<view class="pos-a w-100p" style="left: 0; top: 10rpx">
<view class="text-center text-main">{{ title }}</view>
</view>
<view style="height: 50vh" class="overflow-y mt-25">
<u-parse :content="content"/>
</view>
</view>
</u-popup>
</view>
</template>
<script>
import HeaderItem from "@/components/HeaderItem.vue";
import {listArticleReq} from "@/api/common";
import {MAIN} from "@/config/color";
export default {
name: "legalAid",
components: {HeaderItem},
data() {
return {
articleList: [],
showContent: false,
title: '',
content: '',
}
},
methods: {
MAIN() {
return MAIN
},
async getArticleList() {
const {data} = await listArticleReq({
categoryId: 59
})
console.log(data)
this.articleList = data
},
openPopup(type) {
switch (type) {
case 'condition' : {
this.title = '申请条件'
const article = this.articleList.find(item => item.articleId === 93)
this.content = article.content
}
break;
case 'stuff' : {
this.title = '申请材料'
const article = this.articleList.find(item => item.articleId === 94)
this.content = article.content
}
break;
case 'flow' : {
this.title = '办理流程'
const article = this.articleList.find(item => item.articleId === 95)
this.content = article.content
}
break;
case 'fee' : {
this.title = '收费标准'
const article = this.articleList.find(item => item.articleId === 96)
this.content = article.content
}
break;
}
this.showContent = true
}
},
onLoad() {
this.getArticleList()
},
}
</script>
<style lang="scss" scoped>
.bg {
background: url("https://sifa-api.wsdns.cn/api/file/20250420/bg1.jpg") no-repeat;
background-size: cover;
}
</style>
+132
View File
@@ -0,0 +1,132 @@
<template>
<view class="min-height bg p-30">
<HeaderItem title="司法鉴定"/>
<view class="rounded text-white flex justify-center items-center"
style="background: linear-gradient(91.28deg, rgba(14,146,252,1) 27.63%,rgba(29,188,188,1) 80.08%); height: 160rpx" @click="$jump('/onlineSheetPages/pages/newForensicRequest')">
司法鉴定线上申请入口
</view>
<view class="flex justify-around items-center flex-wrap my-25">
<view class="card flex flex-col justify-center items-center" @click="openPopup('condition')"
style="flex: 0 0 40%; border-radius: 20rpx">
<u-icon name="/onlineSheetPages/static/v2_sua83h.png" size="120rpx"/>
<text class="text-25 mt-10">申请条件</text>
</view>
<view class="card flex flex-col justify-center items-center" @click="openPopup('stuff')"
style="flex: 0 0 40%; border-radius: 20rpx">
<u-icon name="/onlineSheetPages/static/v2_sua840.png" size="120rpx"/>
<text class="text-25 mt-10">申请材料</text>
</view>
</view>
<view class="flex justify-around items-center flex-wrap my-25">
<view class="card flex flex-col justify-center items-center" @click="openPopup('flow')"
style="flex: 0 0 40%; border-radius: 20rpx">
<u-icon name="/onlineSheetPages/static/v2_sua84m.png" size="120rpx"/>
<text class="text-25 mt-10">办理流程</text>
</view>
<view class="card flex flex-col justify-center items-center"
@click="$jump(`/articlePages/pages/list?title=政策法规&cateId=72`)"
style="flex: 0 0 40%; border-radius: 20rpx">
<u-icon name="/onlineSheetPages/static/v2_sua84z.png" size="120rpx"/>
<text class="text-25 mt-10">政策法规</text>
</view>
</view>
<view class="flex justify-around items-center flex-wrap my-25">
<view class="card flex flex-col justify-center items-center"
@click="$jump(`/articlePages/pages/list?title=典型案例&cateId=75`)"
style="flex: 0 0 40%; border-radius: 20rpx">
<u-icon name="/onlineSheetPages/static/v2_sue29e.png" size="120rpx"/>
<text class="text-25 mt-10">典型案例</text>
</view>
<view class="card flex flex-col justify-center items-center" @click="openPopup('fee')"
style="flex: 0 0 40%; border-radius: 20rpx">
<u-icon name="/onlineSheetPages/static/v2_suhlrq.png" size="120rpx"/>
<text class="text-25 mt-10">收费标准</text>
</view>
</view>
<u-popup :show="showContent" close-on-click-overlay @close="showContent = false" round="10"
:closeable="false"
:safe-area-inset-bottom="false">
<view class="p-50 pos-r" v-if="showContent">
<view class="pos-a" style="right: 10rpx; top: 10rpx;z-index: 999" @click="showContent = false">
<u-icon name="close-circle" :color="MAIN()" size="40rpx"/>
</view>
<view class="pos-a w-100p" style="left: 0; top: 10rpx">
<view class="text-center text-main">{{ title }}</view>
</view>
<view style="height: 50vh" class="overflow-y mt-25">
<u-parse :content="content"/>
</view>
</view>
</u-popup>
</view>
</template>
<script>
import HeaderItem from "@/components/HeaderItem.vue";
import {listArticleReq} from "@/api/common";
import {MAIN} from "@/config/color";
export default {
name: "legalAid",
components: {HeaderItem},
data() {
return {
articleList: [],
showContent: false,
title: '',
content: '',
}
},
methods: {
MAIN() {
return MAIN
},
async getArticleList() {
const {data} = await listArticleReq({
categoryId: 58
})
console.log(data)
this.articleList = data
},
openPopup(type) {
switch (type) {
case 'condition' : {
this.title = '申请条件'
const article = this.articleList.find(item => item.articleId === 89)
this.content = article.content
}
break;
case 'stuff' : {
this.title = '申请材料'
const article = this.articleList.find(item => item.articleId === 90)
this.content = article.content
}
break;
case 'flow' : {
this.title = '办理流程'
const article = this.articleList.find(item => item.articleId === 91)
this.content = article.content
}
break;
case 'fee' : {
this.title = '收费标准'
const article = this.articleList.find(item => item.articleId === 92)
this.content = article.content
}
break;
}
this.showContent = true
}
},
onLoad() {
this.getArticleList()
},
}
</script>
<style lang="scss" scoped>
.bg {
background: url("https://sifa-api.wsdns.cn/api/file/20250420/bg1.jpg") no-repeat;
background-size: cover;
}
</style>
+133
View File
@@ -0,0 +1,133 @@
<template>
<view class="min-height bg p-30">
<HeaderItem title="法律援助"/>
<view class="rounded text-white flex justify-center items-center"
@click="$jump('/onlineSheetPages/pages/newRequest')"
style="background: linear-gradient(91.28deg, rgba(14,146,252,1) 27.63%,rgba(29,188,188,1) 80.08%); height: 160rpx">
法律援助线上申请入口
</view>
<view class="flex justify-around items-center flex-wrap my-25">
<view class="card flex flex-col justify-center items-center" @click="openPopup('condition')"
style="flex: 0 0 40%; border-radius: 20rpx">
<u-icon name="/onlineSheetPages/static/v2_sua83h.png" size="120rpx"/>
<text class="text-25 mt-10">申请条件</text>
</view>
<view class="card flex flex-col justify-center items-center" @click="openPopup('stuff')"
style="flex: 0 0 40%; border-radius: 20rpx">
<u-icon name="/onlineSheetPages/static/v2_sua840.png" size="120rpx"/>
<text class="text-25 mt-10">申请材料</text>
</view>
</view>
<view class="flex justify-around items-center flex-wrap my-25">
<view class="card flex flex-col justify-center items-center" @click="openPopup('flow')"
style="flex: 0 0 40%; border-radius: 20rpx">
<u-icon name="/onlineSheetPages/static/v2_sua84m.png" size="120rpx"/>
<text class="text-25 mt-10">办理流程</text>
</view>
<view class="card flex flex-col justify-center items-center"
@click="$jump(`/articlePages/pages/list?title=政策法规&cateId=69`)"
style="flex: 0 0 40%; border-radius: 20rpx">
<u-icon name="/onlineSheetPages/static/v2_sua84z.png" size="120rpx"/>
<text class="text-25 mt-10">政策法规</text>
</view>
</view>
<view class="flex justify-around items-center flex-wrap my-25">
<view class="card flex flex-col justify-center items-center"
@click="$jump(`/articlePages/pages/list?title=典型案例&cateId=70`)"
style="flex: 0 0 40%; border-radius: 20rpx">
<u-icon name="/onlineSheetPages/static/v2_sue29e.png" size="120rpx"/>
<text class="text-25 mt-10">典型案例</text>
</view>
<!-- <view class="card flex flex-col justify-center items-center" @click="openPopup('fee')"-->
<!-- style="flex: 0 0 40%; border-radius: 20rpx">-->
<!-- <u-icon name="/onlineSheetPages/static/v2_suhlrq.png" size="120rpx"/>-->
<!-- <text class="text-25 mt-10">收费标准</text>-->
<!-- </view>-->
</view>
<u-popup :show="showContent" close-on-click-overlay @close="showContent = false" round="10"
:closeable="false"
:safe-area-inset-bottom="false">
<view class="p-50 pos-r" v-if="showContent">
<view class="pos-a" style="right: 10rpx; top: 10rpx;z-index: 999" @click="showContent = false">
<u-icon name="close-circle" :color="MAIN()" size="40rpx"/>
</view>
<view class="pos-a w-100p" style="left: 0; top: 10rpx">
<view class="text-center text-main">{{ title }}</view>
</view>
<view style="height: 50vh" class="overflow-y mt-25">
<u-parse :content="content"/>
</view>
</view>
</u-popup>
</view>
</template>
<script>
import HeaderItem from "@/components/HeaderItem.vue";
import {listArticleReq} from "@/api/common";
import {MAIN} from "@/config/color";
export default {
name: "legalAid",
components: {HeaderItem},
data() {
return {
articleList: [],
showContent: false,
title: '',
content: '',
}
},
methods: {
MAIN() {
return MAIN
},
async getArticleList() {
const {data} = await listArticleReq({
categoryId: 54
})
console.log(data)
this.articleList = data
},
openPopup(type) {
switch (type) {
case 'condition' : {
this.title = '申请条件'
const article = this.articleList.find(item => item.articleId === 80)
this.content = article.content
}
break;
case 'stuff' : {
this.title = '申请材料'
const article = this.articleList.find(item => item.articleId === 81)
this.content = article.content
}
break;
case 'flow' : {
this.title = '办理流程'
const article = this.articleList.find(item => item.articleId === 82)
this.content = article.content
}
break;
case 'fee' : {
this.title = '收费标准'
const article = this.articleList.find(item => item.articleId === 83)
this.content = article.content
}
break;
}
this.showContent = true
}
},
onLoad() {
this.getArticleList()
},
}
</script>
<style lang="scss" scoped>
.bg {
background: url("https://sifa-api.wsdns.cn/api/file/20250420/bg1.jpg") no-repeat;
background-size: cover;
}
</style>
+167
View File
@@ -0,0 +1,167 @@
<template>
<view class="min-height bg-main-light p-30">
<HeaderItem title="民事商事仲裁预约"/>
<TitleItem title="基础信息"/>
<view class="card mt-25 p-30">
<u-form label-width="140rpx">
<u-form-item label="申请人姓名" border-bottom>
<u-input v-model="formData.name" border="none" placeholder="请输入申请人姓名"/>
</u-form-item>
<u-form-item label="性别" border-bottom>
<view class="flex justify-start items-center">
<view class="tag" @click="formData.gender = 0" :class="[formData.gender === 0 ? 'tag-active' : '']">男
</view>
<view class="tag ml-20" @click="formData.gender = 1" :class="[formData.gender === 1 ? 'tag-active' : '']">
女
</view>
</view>
</u-form-item>
<u-form-item label="联系电话" border-bottom>
<u-input v-model="formData.phone" border="none" placeholder="请输入联系电话"/>
</u-form-item>
<u-form-item label="民族" border-bottom>
<u-input v-model="formData.nation" border="none" placeholder="请输入民族"/>
</u-form-item>
<u-form-item label="出生日期" border-bottom @click="showDate = true">
<u-input v-model="formData.birthday" border="none" placeholder="请输入出生日期" readonly>
<u-icon
slot="right"
name="arrow-right"
></u-icon>
</u-input>
</u-form-item>
<u-form-item label="身份证号" border-bottom>
<u-input v-model="formData.idCard" border="none" placeholder="请输入身份证号"/>
</u-form-item>
<u-form-item label="住所地址" border-bottom>
<u-input v-model="formData.liveAddress" border="none" placeholder="请输入住所地址"/>
</u-form-item>
<u-form-item label="户籍地址" border-bottom>
<u-input v-model="formData.householdAddress" border="none" placeholder="请输入户籍地址"/>
</u-form-item>
<u-form-item label="被申请人" border-bottom>
<u-input v-model="formData.beenName" border="none" placeholder="请输入被申请人"/>
</u-form-item>
<u-form-item label="被申请人地址" border-bottom>
<u-input v-model="formData.beenAddress" border="none" placeholder="请输入被申请人地址"/>
</u-form-item>
<u-form-item label="被申请人统一社会信用代码" border-bottom>
<u-input v-model="formData.beenCode" border="none" placeholder="请输入被申请人统一社会信用代码"/>
</u-form-item>
<u-form-item label="被申请人联系方式" border-bottom>
<u-input v-model="formData.beenPhone" border="none" placeholder="请输入被申请人联系方式"/>
</u-form-item>
<u-form-item label="被申请人法定代表人姓名" border-bottom>
<u-input v-model="formData.beenLegalName" border="none" placeholder="请输入被申请人法定代表人姓名"/>
</u-form-item>
<u-form-item label="被申请人法定代表人职位" border-bottom>
<u-input v-model="formData.beenLegalPosition" border="none" placeholder="请输入被申请人法定代表人职位"/>
</u-form-item>
<u-form-item label="仲裁请求" border-bottom>
<u-textarea maxlength="-1" v-model="formData.requestContent" border="none" placeholder="请输入仲裁请求"/>
</u-form-item>
<u-form-item label="事实和理由" border-bottom>
<u-textarea maxlength="-1" v-model="formData.content" border="none" placeholder="请输入事实和理由"/>
</u-form-item>
</u-form>
</view>
<view class="mt-30">
<u-button type="primary" shape="circle" @click="save"
:hairline="false"
:custom-style="{border: 0, background: 'linear-gradient(91.28deg, rgba(14,146,252,1) 27.63%,rgba(29,188,188,1) 80.08%);'}">
提交
</u-button>
</view>
<u-datetime-picker
:show="showDate"
v-model="checkDate"
mode="date"
:min-date="minDate"
@confirm="selectDate"
@cancel="showDate = false"
/>
</view>
</template>
<script>
import HeaderItem from "@/components/HeaderItem.vue";
import TitleItem from "@/components/TitleItem.vue";
import dayjs from "dayjs";
import {lawLegalAidReq, lawLegalArbitrateReq, lawOrgCheckActionReq} from "@/api/lawOrg";
export default {
name: "newRequest",
components: {TitleItem, HeaderItem},
data() {
return {
formData: {
name: '',
gender: 0,
phone: '',
birthday: '',
idCard: '',
liveAddress: '',
householdAddress: '',
content: '',
requestContent: '',
beenName: '',
beenAddress: '',
beenCode: '',
beenPhone: '',
beenLegalName: '',
beenLegalPosition: '',
},
showDate: false,
checkDate: Number(new Date()),
minDate: dayjs().subtract(100, 'year').valueOf()
}
},
methods: {
selectDate({value}) {
this.showDate = false
this.formData.birthday = dayjs(value).format("YYYY-MM-DD")
},
async save() {
if (!this.formData.name) return this.$toast('请输入姓名')
if (!this.formData.phone) return this.$toast('请输入联系方式')
if (!this.formData.idCard) return this.$toast('请输入身份证号')
if (!this.formData.nation) return this.$toast('请输入民族')
if (!this.formData.requestContent) return this.$toast('请输入仲裁请求')
if (!this.formData.content) return this.$toast('请输入事实和理由')
if (!this.formData.beenName) return this.$toast('请输入被申请人')
if (!this.formData.beenAddress) return this.$toast('请输入被申请人地址')
if (!this.formData.beenCode) return this.$toast('请输入被申请人统一社会信用代码')
if (!this.formData.beenPhone) return this.$toast('请输入被申请人联系方式')
if (!this.formData.beenLegalName) return this.$toast('请输入被申请人法定代表人姓名')
if (!this.formData.beenLegalPosition) return this.$toast('请输入被申请人法定代表人职位')
const res = await lawLegalArbitrateReq(this.formData)
if (res) {
this.$toast('提交成功')
setTimeout(() => {
uni.navigateBack()
}, 500)
}
}
}
}
</script>
<style lang="scss" scoped>
.tag {
border: 1px dashed #999;
padding: 10rpx;
border-radius: 15rpx;
color: #999;
font-size: 25rpx;
width: 60rpx;
display: flex;
align-items: center;
justify-content: center;
}
.tag-active {
color: #3c9cff !important;
border-color: #3c9cff !important;
}
</style>
@@ -0,0 +1,392 @@
<template>
<view class="min-height bg-main-light p-30">
<HeaderItem title="司法鉴定预约"/>
<TitleItem title="基础信息"/>
<view class="card mt-25 p-30">
<u-form label-width="160rpx" :label-style="{fontSize: '24rpx'}">
<u-form-item label="司法鉴定机构" border-bottom @click="showOrg = true">
<u-input v-model="orgName" border="none" placeholder="请选择司法鉴定机构" readonly>
<u-icon
slot="right"
name="arrow-right"
></u-icon>
</u-input>
</u-form-item>
<template v-if="formData.orgId">
<u-form-item label="委托人姓名" border-bottom>
<u-input v-model="formData.name" border="none" placeholder="请输入委托人姓名"/>
</u-form-item>
<u-form-item label="性别" border-bottom>
<view class="flex justify-start items-center">
<view class="tag" @click="formData.gender = 0" :class="[formData.gender === 0 ? 'tag-active' : '']">男
</view>
<view class="tag ml-20" @click="formData.gender = 1" :class="[formData.gender === 1 ? 'tag-active' : '']">
女
</view>
</view>
</u-form-item>
<u-form-item label="联系电话" border-bottom>
<u-input v-model="formData.phone" border="none" placeholder="请输入联系电话"/>
</u-form-item>
<u-form-item label="出生日期" border-bottom @click="showDate = true">
<u-input v-model="formData.birthday" border="none" placeholder="请输入出生日期" readonly>
<u-icon
slot="right"
name="arrow-right"
></u-icon>
</u-input>
</u-form-item>
<u-form-item label="身份证号" border-bottom>
<u-input v-model="formData.idCard" border="none" placeholder="请输入身份证号"/>
</u-form-item>
<u-form-item label="住所地址" border-bottom>
<u-input v-model="formData.liveAddress" border="none" placeholder="请输入住所地址"/>
</u-form-item>
<u-form-item label="户籍地址" border-bottom>
<u-input v-model="formData.householdAddress" border="none" placeholder="请输入户籍地址"/>
</u-form-item>
<u-form-item label="基本案情" border-bottom>
<u-textarea maxlength="-1" v-model="formData.detail" border="none"
placeholder="请输入与鉴定又关的基本案情"/>
</u-form-item>
<template v-if="formData.orgId === 25">
<u-form-item label="委托鉴定事项" border-bottom>
<u-textarea maxlength="-1" v-model="formData.content" border="none" placeholder="请输入委托鉴定事项"/>
</u-form-item>
<u-form-item label="是否重新鉴定" border-bottom>
<view class="flex justify-start items-center">
<view class="tag" style="width: 200rpx" @click="formData.isNew = 0"
:class="[formData.isNew === 0 ? 'tag-active' : '']">不属于重新鉴定
</view>
<view class="tag ml-20" style="width: 200rpx" @click="formData.isNew = 1"
:class="[formData.isNew === 1 ? 'tag-active' : '']">
属于重新鉴定
</view>
</view>
</u-form-item>
</template>
<template v-else-if="formData.orgId === 26">
<u-form-item label="委托鉴定事项" border-bottom>
<view class="flex flex-col justify-start items-start">
<view v-for="(item, index) in contentConfigList" :key="index" class="mb-15">
<u-icon @click="changeContent(item)"
:label="item" label-pos="right"
:name="contentList.includes(item) ? '/onlineSheetPages/static/checkbox-selected.png' : '/onlineSheetPages/static/checkbox.png'"/>
</view>
</view>
</u-form-item>
<u-form-item label="鉴定用途" border-bottom>
<view class="flex flex-col justify-start items-start">
<view class="mb-15">
<u-icon label="诉讼" label-pos="right" @click="changeApplication('诉讼')"
:name="applicationList.includes('诉讼') ? '/onlineSheetPages/static/checkbox-selected.png' : '/onlineSheetPages/static/checkbox.png'"/>
</view>
<view class="mb-15">
<u-icon label="仲裁" label-pos="right" @click="changeApplication('仲裁')"
:name="applicationList.includes('仲裁') ? '/onlineSheetPages/static/checkbox-selected.png' : '/onlineSheetPages/static/checkbox.png'"/>
</view>
<view class="mb-15">
<u-icon label="调解" label-pos="right" @click="changeApplication('调解')"
:name="applicationList.includes('调解') ? '/onlineSheetPages/static/checkbox-selected.png' : '/onlineSheetPages/static/checkbox.png'"/>
</view>
<u-icon label="行政执法" label-pos="right" @click="changeApplication('行政执法')"
:name="applicationList.includes('行政执法') ? '/onlineSheetPages/static/checkbox-selected.png' : '/onlineSheetPages/static/checkbox.png'"/>
</view>
</u-form-item>
</template>
</template>
</u-form>
</view>
<template v-if="formData.orgId">
<TitleItem title="鉴定要求/标准"/>
<view class="card mt-25 p-30">
<view class="flex justify-start items-center py-20 border-bottom"
@click="changeStandard(item.title)"
v-for="(item, index) in standardList" :key="index">
<u-icon
:name="standardSelectedList.includes(item.title) ? '/onlineSheetPages/static/checkbox-selected.png' : '/onlineSheetPages/static/checkbox.png'"/>
<text class="text-25 mb-15">{{ item.title }}</text>
</view>
</view>
<TitleItem title="鉴定材料"/>
<view class="card mt-25 p-30">
<view class="flex flex-col justify-start items-start py-20 border-bottom"
v-for="(item, index) in fileList" :key="index">
<text class="text-25 mb-15">{{ item.title }}</text>
<view class="flex flex-col justify-start items-start">
<view class="flex justify-start items-start flex-wrap">
<view class="album-item pos-r" v-for="(file, fileIndex) in item.fileList" :key="fileIndex">
<u-image :src="file" width="190rpx" height="190rpx"/>
<view class="del-wrap" @click="removeFile(index, fileIndex)">
<u-icon name="trash" color="white" size="30rpx"/>
</view>
</view>
</view>
<view>
<u-button size="mini" @click="uploadFile(index)" type="primary" icon="arrow-upward">上传材料</u-button>
</view>
</view>
</view>
</view>
</template>
<view class="mt-30">
<u-button type="primary" shape="circle" @click="save"
:hairline="false"
:custom-style="{border: 0, background: 'linear-gradient(91.28deg, rgba(14,146,252,1) 27.63%,rgba(29,188,188,1) 80.08%);'}">
提交
</u-button>
</view>
<u-datetime-picker
:show="showDate"
v-model="checkDate"
mode="date"
:min-date="minDate"
@confirm="selectDate"
@cancel="showDate = false"
/>
<u-picker :show="showOrg" :columns="[orgList]" @cancel="showOrg = false"
@confirm="selectOrg" key-name="title"
/>
</view>
</template>
<script>
import HeaderItem from "@/components/HeaderItem.vue";
import TitleItem from "@/components/TitleItem.vue";
import dayjs from "dayjs";
import {
lawLegalAidReq,
lawLegalAppraisalReq,
lawLegalArbitrateReq,
lawOrgCheckActionReq,
listLawOrgReq
} from "@/api/lawOrg";
import {chooseImg} from "@/util";
export default {
name: "newRequest",
components: {TitleItem, HeaderItem},
data() {
return {
formData: {
name: '',
gender: 0,
isNew: 0,
phone: '',
birthday: '',
idCard: '',
liveAddress: '',
householdAddress: '',
content: '',
orgId: '',
detail: '',
fileList: '',
standard: '',
},
showDate: false,
showOrg: false,
orgName: '',
checkDate: Number(new Date()),
minDate: dayjs().subtract(100, 'year').valueOf(),
orgList: [],
fileList: [],
standardList: [],
standardSelectedList: [],
contentList: [],
contentConfigList: ['损伤程度鉴定', '致残程度鉴定', '劳动能力鉴定', '护理依赖评定', '听觉功能评定视觉功能评定', '误工、护理、营养时限评定',
'伤病关系鉴定', '后续治疗项目和时限评定', '医疗过错评定医疗损害后果评定', '治疗时限评定医疗费合理性评定', '致伤物和致伤方式推',],
applicationList: [],
}
},
methods: {
setFileData() {
switch (this.formData.orgId) {
case 25 : {
this.fileList = [
{
title: '道路交通事故现场图',
fileList: []
},
{
title: '现场勘查笔录',
fileList: []
},
{
title: '现场照片',
fileList: []
},
{
title: '现场复核照片',
fileList: []
},
{
title: '询问笔录',
fileList: []
},
{
title: '相关视频监控资料',
fileList: []
},
{
title: '行驶证复印件',
fileList: []
},
{
title: '行驶证复印件、机动车信息查询结果单',
fileList: []
},
{
title: '其他材料',
fileList: []
},
]
}
break;
case 26 : {
this.fileList = [
{
title: '交通事故责任认定书复印件',
fileList: []
},
{
title: '身份复印件',
fileList: []
},
{
title: '病历复印件',
fileList: []
},
{
title: '放射片',
fileList: []
},
{
title: '其他材料',
fileList: []
},
]
}
break;
}
},
setStandardList() {
switch (this.formData.orgId) {
case 25 : {
this.standardList = [
{title: '《道路交通事故现场痕迹物证勘验》(GA/T41-2019)'},
{title: '《道路交通事故痕迹鉴定》(GA/T1087-2021)'},
{title: '《道路交通事故车辆安全技术检验鉴定》(GA/T642-2020)'},
{title: '《机动车运行安全技术条件》(GB7258-2017)'},
{title: '《道路交通事故车辆速度鉴定》(GB/T33195-2016)'},
{title: '《基于视频图像的车辆行驶速度技术鉴定》(GA/T1133-2014)'},
{title: '《手印鉴定程序》(GA/T724-2007)'},
]
}
break;
case 26: {
this.standardList = [
{title: '《法医临床检验规范》(SF/T 0111-2021)'},
{title: '《人身损害护理依赖程度评定》GB/T31147-2014'},
{title: '《人身伤害致残程度评定(试行)》'},
{title: '《人体损伤程度鉴定标准》'},
{title: '《道路交通事故受伤人员治疗终结时间》GA/T 1088-2013'},
{title: '《人身损害后续诊疗项目评定指南》(试用)/《法庭科学 人身损害后续诊疗项目评定技术规程》'},
{title: '《人身损害误工期、护理期、营养期评定规范》GA/T1193-2014'},
{title: '《人身保险伤残评定标准及代码》GB/T 44893-2024'},
{title: '《劳动能力鉴定 职工工伤与职业病致残等级》GB/T16180-2014'},
{title: '《人体损伤致残程度分级》'},
{title: '《人身损害与疾病因果关系判定指南》(SF/T0095 2021)'},
]
}
}
},
changeApplication(content) {
const index = this.applicationList.findIndex(i => i === content)
if (index === -1) this.applicationList.push(content)
else this.applicationList.splice(index, 1)
},
changeContent(content) {
const index = this.contentList.findIndex(i => i === content)
if (index === -1) this.contentList.push(content)
else this.contentList.splice(index, 1)
},
changeStandard(content) {
const index = this.standardSelectedList.findIndex(i => i === content)
if (index === -1) this.standardSelectedList.push(content)
else this.standardSelectedList.splice(index, 1)
},
selectDate({value}) {
this.showDate = false
this.formData.birthday = dayjs(value).format("YYYY-MM-DD")
},
selectOrg({value}) {
this.formData.orgId = value[0].id
this.orgName = value[0].title
this.showOrg = false
this.setFileData()
this.setStandardList()
},
async save() {
if (!this.formData.name) return this.$toast('请输入姓名')
if (!this.formData.phone) return this.$toast('请输入联系方式')
if (!this.formData.idCard) return this.$toast('请输入身份证号')
if (!this.formData.orgId) return this.$toast('请选择鉴定机构')
if (this.formData.orgId === 25 && !this.formData.content) return this.$toast('请输入委托鉴定事项')
if (!this.formData.detail) return this.$toast('请输入基本案情')
if (this.standardSelectedList.length) {
this.formData.standard = this.standardSelectedList.join(',')
}
if (this.applicationList.length) {
this.formData.application = this.applicationList.join(',')
}
if (this.formData.orgId === 26){
if (!this.contentList.length) return this.$toast('请选择鉴定事项')
else this.formData.content = this.contentList.join(',')
}
this.formData.fileList = JSON.stringify(this.fileList)
const res = await lawLegalAppraisalReq(this.formData)
if (res) {
this.$toast('提交成功')
setTimeout(() => {
uni.navigateBack()
}, 500)
}
},
async uploadFile(index) {
const res = await chooseImg(9)
this.fileList[index].fileList = [...this.fileList[index].fileList, ...res.map(item => item.path)]
},
removeFile(index, fileIndex) {
this.fileList[index].fileList.splice(fileIndex, 1)
},
async getOrgList() {
const {data} = await listLawOrgReq({
type: '司法鉴定机构'
})
this.orgList = data
}
},
onLoad() {
this.getOrgList()
}
}
</script>
<style lang="scss" scoped>
.tag {
border: 1px dashed #999;
padding: 10rpx;
border-radius: 15rpx;
color: #999;
font-size: 25rpx;
width: 60rpx;
display: flex;
align-items: center;
justify-content: center;
}
.tag-active {
color: #3c9cff !important;
border-color: #3c9cff !important;
}
</style>
+266
View File
@@ -0,0 +1,266 @@
<template>
<view class="min-height bg-main-light p-30">
<HeaderItem title="公证申请"/>
<TitleItem title="人员信息"/>
<view class="card mt-25 p-30" v-for="(item, index) in peopleList" :key="index">
<u-form label-width="140rpx">
<u-form-item label="姓名" border-bottom>
<u-input v-model="peopleList[index].name" border="none" placeholder="请输入姓名"/>
</u-form-item>
<u-form-item label="性别" border-bottom>
<view class="flex justify-start items-center">
<view class="tag" @click="peopleList[index].gender = 0"
:class="[peopleList[index].gender === 0 ? 'tag-active' : '']">男
</view>
<view class="tag ml-20" @click="peopleList[index].gender = 1"
:class="[peopleList[index].gender === 1 ? 'tag-active' : '']">
女
</view>
</view>
</u-form-item>
<u-form-item label="角色" border-bottom>
<u-input v-model="peopleList[index].role" border="none" placeholder="请输入角色(如:申请人)"/>
</u-form-item>
<u-form-item label="联系电话" border-bottom>
<u-input v-model="peopleList[index].phone" border="none" placeholder="请输入联系电话"/>
</u-form-item>
<u-form-item label="民族" border-bottom>
<u-input v-model="peopleList[index].nation" border="none" placeholder="请输入民族"/>
</u-form-item>
<u-form-item label="出生日期" border-bottom @click="openDate(index)">
<u-input v-model="peopleList[index].birthday" border="none" placeholder="请输入出生日期" readonly>
<u-icon
slot="right"
name="arrow-right"
></u-icon>
</u-input>
</u-form-item>
<u-form-item label="地址">
<u-input v-model="peopleList[index].liveAddress" border="none" placeholder="请输入地址"/>
</u-form-item>
<u-button type="error" shape="circle" @click="removePeople(index)" v-if="this.peopleList.length > 1">删除
</u-button>
</u-form>
</view>
<view class="mt-30">
<u-button type="success" shape="circle" @click="addPeople"
:hairline="false"
:custom-style="{border: 0, background: 'linear-gradient(91.28deg, rgba(14,146,252,1) 27.63%,rgba(29,188,188,1) 80.08%);'}">
添加人员
</u-button>
</view>
<TitleItem title="基础信息"/>
<view class="card mt-25 p-30">
<u-form label-width="140rpx">
<u-form-item label="公证类别" required border-bottom @click="showType = true">
<u-input v-model="formData.type" border="none" placeholder="请选择公证类别" readonly>
<u-icon
slot="right"
name="arrow-right"
></u-icon>
</u-input>
</u-form-item>
<u-form-item label="公证事项" required border-bottom>
<u-textarea v-model="formData.content" border="none" placeholder="请输入公证事项" maxlength="-1"/>
</u-form-item>
<u-form-item label="用途" required border-bottom>
<u-input v-model="formData.application" border="none" placeholder="请输入用途"/>
</u-form-item>
<u-form-item label="使用地" required border-bottom>
<u-input v-model="formData.address" border="none" placeholder="请输入使用地"/>
</u-form-item>
<u-form-item label="译文" border-bottom>
<u-input v-model="formData.translate" border="none" placeholder="请输入译文"/>
</u-form-item>
</u-form>
</view>
<TitleItem title="证明材料"/>
<view class="card mt-25 p-30" v-if="selectedConfig && selectedConfig.configList">
<view class="flex flex-col justify-start items-start py-20 border-bottom"
v-for="(item, index) in JSON.parse(selectedConfig.configList)" :key="index">
<text class="text-25 mb-15">{{ item }}</text>
<view class="flex flex-col justify-start items-start">
<!-- <u-tag type="success" plain plain-fill v-for="(file, fileIndex) in fileList[index].fileList"-->
<!-- :key="fileIndex"-->
<!-- :text="`文件:${fileIndex + 1}`" closable @close="removeFile(index, fileIndex)"/>-->
<view class="flex justify-start items-start flex-wrap">
<view class="album-item pos-r" v-for="(file, fileIndex) in fileList[index].fileList" :key="fileIndex">
<u-image :src="file" width="190rpx" height="190rpx"/>
<view class="del-wrap" @click="removeFile(index, fileIndex)">
<u-icon name="trash" color="white" size="30rpx"/>
</view>
</view>
</view>
<view>
<u-button size="mini" @click="uploadFile(index)" type="primary" icon="arrow-upward">上传材料</u-button>
</view>
</view>
</view>
</view>
<view class="mt-30">
<u-button type="primary" shape="circle" @click="save"
:hairline="false"
:custom-style="{border: 0, background: 'linear-gradient(91.28deg, rgba(14,146,252,1) 27.63%,rgba(29,188,188,1) 80.08%);'}">
提交
</u-button>
</view>
<u-datetime-picker
:show="showDate"
v-model="checkDate"
mode="date"
:min-date="minDate"
@confirm="selectDate"
@cancel="showDate = false"
/>
<u-picker :show="showType" :columns="[typeList]" @cancel="showType = false"
@confirm="selectType" key-name="title"
/>
</view>
</template>
<script>
import HeaderItem from "@/components/HeaderItem.vue";
import TitleItem from "@/components/TitleItem.vue";
import dayjs from "dayjs";
import {lawLegalAidReq, lawOrgCheckActionReq} from "@/api/lawOrg";
import {listNotaryConfigReq, notaryActionReq} from "@/api/notary";
import {chooseImg} from "@/util";
export default {
name: "newRequest",
components: {TitleItem, HeaderItem},
data() {
return {
formData: {
nameList: '',
type: '',
content: '',
application: '',
address: '',
translate: '',
fileList: '',
},
showDate: false,
checkDate: Number(new Date()),
minDate: dayjs().subtract(100, 'year').valueOf(),
peopleList: [],
typeList: [],
clickedIndex: 0,
selectedConfig: null,
fileList: [],
showType: false
}
},
methods: {
async getConfigList() {
const {data} = await listNotaryConfigReq()
this.typeList = data
this.selectedConfig = this.typeList[0]
this.formData.type = this.selectedConfig.title
this.fileList = []
JSON.parse(this.selectedConfig.configList).map(item => {
this.fileList.push({
title: item,
fileList: []
})
})
},
selectType({value}) {
this.selectedConfig = value[0]
this.formData.type = this.selectedConfig.title
this.showType = false
this.fileList = []
JSON.parse(this.selectedConfig.configList).map(item => {
this.fileList.push({
title: item,
fileList: []
})
})
},
async uploadFile(index) {
const res = await chooseImg(9)
this.fileList[index].fileList = [...this.fileList[index].fileList, ...res.map(item => item.path)]
},
removeFile(index, fileIndex) {
this.fileList[index].fileList.splice(fileIndex, 1)
},
selectDate({value}) {
this.showDate = false
this.peopleList[this.clickedIndex].birthday = dayjs(value).format("YYYY-MM-DD")
this.checkDate = Number(new Date())
},
openDate(index) {
this.clickedIndex = index
if (this.peopleList[this.clickedIndex].birthday) this.checkDate = dayjs(this.peopleList[this.clickedIndex].birthday).valueOf()
this.showDate = true
},
addPeople() {
this.peopleList.push({
name: '',
gender: 0,
role: '',
phone: '',
nation: '',
birthday: '',
liveAddress: '',
})
},
removePeople(index) {
if (this.peopleList.length === 1) return
this.peopleList.splice(index, 1)
},
async save() {
if (!this.formData.type) return this.$toast('请选择公证类别')
if (!this.formData.content) return this.$toast('请输入公证事项')
if (!this.formData.application) return this.$toast('请输入用途')
if (!this.formData.address) return this.$toast('请输入使用地')
let hasRequired = false
for (let i = 0; i < this.peopleList.length; i++) {
if (!this.peopleList[i].name) return this.$toast('请输入姓名')
if (!this.peopleList[i].role) return this.$toast('请输入角色')
if (!this.peopleList[i].phone) return this.$toast('请输入手机号')
if (!this.peopleList[i].nation) return this.$toast('请输入民族')
if (!this.peopleList[i].birthday) return this.$toast('请选择出生日期')
if (!this.peopleList[i].liveAddress) return this.$toast('请输入居住地')
if (this.peopleList[i].role === '申请人') hasRequired = true
}
if (!hasRequired) return this.$toast('请至少录入申请人')
for (let i = 0; i < this.fileList.length; i++) {
if (!this.fileList[i].fileList.length) return this.$toast(`请上传${this.fileList[i].title}材料`)
}
this.formData.nameList = JSON.stringify(this.peopleList)
this.formData.fileList = JSON.stringify(this.fileList)
const res = await notaryActionReq(this.formData)
if (res) {
this.$toast('提交成功')
setTimeout(() => {
uni.navigateBack()
}, 500)
}
}
},
onLoad() {
this.getConfigList()
this.addPeople()
}
}
</script>
<style lang="scss" scoped>
.tag {
border: 1px dashed #999;
padding: 10rpx;
border-radius: 15rpx;
color: #999;
font-size: 25rpx;
width: 60rpx;
display: flex;
align-items: center;
justify-content: center;
}
.tag-active {
color: #3c9cff !important;
border-color: #3c9cff !important;
}
</style>
+162
View File
@@ -0,0 +1,162 @@
<template>
<view class="min-height bg-main-light p-30">
<HeaderItem title="法律援助预约"/>
<TitleItem title="基础信息"/>
<view class="card mt-25 p-30">
<u-form label-width="180rpx">
<u-form-item label="申请人姓名" border-bottom>
<u-input v-model="formData.name" border="none" placeholder="请输入申请人姓名"/>
</u-form-item>
<u-form-item label="性别" border-bottom>
<view class="flex justify-start items-center">
<view class="tag" @click="formData.gender = 0" :class="[formData.gender === 0 ? 'tag-active' : '']">男
</view>
<view class="tag ml-20" @click="formData.gender = 1" :class="[formData.gender === 1 ? 'tag-active' : '']">
女
</view>
</view>
</u-form-item>
<u-form-item label="民族" border-bottom>
<u-input v-model="formData.nation" border="none" placeholder="请输入民族"/>
</u-form-item>
<u-form-item label="联系电话" border-bottom>
<u-input v-model="formData.phone" border="none" placeholder="请输入联系电话"/>
</u-form-item>
<u-form-item label="出生日期" border-bottom @click="showDate = true">
<u-input v-model="formData.birthday" border="none" placeholder="请输入出生日期" readonly>
<u-icon
slot="right"
name="arrow-right"
></u-icon>
</u-input>
</u-form-item>
<u-form-item label="身份证号" border-bottom>
<u-input v-model="formData.idCard" border="none" placeholder="请输入身份证号"/>
</u-form-item>
<u-form-item label="住所地址" border-bottom>
<u-input v-model="formData.liveAddress" border="none" placeholder="请输入住所地址"/>
</u-form-item>
<u-form-item label="户籍地址" border-bottom>
<u-input v-model="formData.householdAddress" border="none" placeholder="请输入户籍地址"/>
</u-form-item>
<u-form-item label="工作单位" border-bottom>
<u-input v-model="formData.companyName" border="none" placeholder="请输入工作单位"/>
</u-form-item>
<u-form-item label="电子邮箱" border-bottom>
<u-input v-model="formData.email" border="none" placeholder="请输入电子邮箱"/>
</u-form-item>
<u-form-item label="办理事项说明" border-bottom>
<u-textarea maxlength="-1" v-model="formData.content" border="none" placeholder="请输入办理事项说明"/>
</u-form-item>
</u-form>
</view>
<TitleItem title="代理人信息"/>
<view class="card mt-25 p-30">
<u-form label-width="180rpx">
<u-form-item label="姓名" border-bottom>
<u-input v-model="formData.proxyName" border="none" placeholder="请输入代理人姓名"/>
</u-form-item>
<u-form-item label="联系电话" border-bottom>
<u-input v-model="formData.proxyPhone" border="none" placeholder="请输入代理人联系电话"/>
</u-form-item>
<u-form-item label="与申请人关系" border-bottom>
<u-input v-model="formData.proxyRelation" border="none" placeholder="请输入与申请人关系"/>
</u-form-item>
<u-form-item label="身份证号" border-bottom>
<u-input v-model="formData.proxyIdCard" border="none" placeholder="请输入身份证号"/>
</u-form-item>
</u-form>
</view>
<view class="mt-30">
<u-button type="primary" shape="circle" @click="save"
:hairline="false"
:custom-style="{border: 0, background: 'linear-gradient(91.28deg, rgba(14,146,252,1) 27.63%,rgba(29,188,188,1) 80.08%);'}">
提交
</u-button>
</view>
<u-datetime-picker
:show="showDate"
v-model="checkDate"
mode="date"
:min-date="minDate"
@confirm="selectDate"
@cancel="showDate = false"
/>
</view>
</template>
<script>
import HeaderItem from "@/components/HeaderItem.vue";
import TitleItem from "@/components/TitleItem.vue";
import dayjs from "dayjs";
import {lawLegalAidReq, lawOrgCheckActionReq} from "@/api/lawOrg";
export default {
name: "newRequest",
components: {TitleItem, HeaderItem},
data() {
return {
formData: {
name: '',
gender: 0,
phone: '',
birthday: '',
idCard: '',
liveAddress: '',
householdAddress: '',
content: '',
nation: '',
companyName: '',
email: '',
proxyName: '',
proxyPhone: '',
proxyRelation: '',
proxyIdCard: '',
},
showDate: false,
checkDate: Number(new Date()),
minDate: dayjs().subtract(100, 'year').valueOf()
}
},
methods: {
selectDate({value}) {
this.showDate = false
this.formData.birthday = dayjs(value).format("YYYY-MM-DD")
},
async save() {
if (!this.formData.name) return this.$toast('请输入姓名')
if (!this.formData.phone) return this.$toast('请输入联系方式')
if (!this.formData.idCard) return this.$toast('请输入身份证号')
if (!this.formData.content) return this.$toast('请输入办理事项')
if (!this.formData.nation) return this.$toast('请输入民族')
const res = await lawLegalAidReq(this.formData)
if (res) {
this.$toast('提交成功')
setTimeout(() => {
uni.navigateBack()
}, 500)
}
}
}
}
</script>
<style lang="scss" scoped>
.tag {
border: 1px dashed #999;
padding: 10rpx;
border-radius: 15rpx;
color: #999;
font-size: 25rpx;
width: 60rpx;
display: flex;
align-items: center;
justify-content: center;
}
.tag-active {
color: #3c9cff !important;
border-color: #3c9cff !important;
}
</style>
+143
View File
@@ -0,0 +1,143 @@
<template>
<view class="min-height bg p-30">
<HeaderItem title="公证"/>
<view class="rounded text-white flex justify-center items-center"
@click="$jump('/onlineSheetPages/pages/newNotaryRequest')"
style="background: linear-gradient(91.28deg, rgba(14,146,252,1) 27.63%,rgba(29,188,188,1) 80.08%); height: 160rpx">
公证线上申请入口
</view>
<view class="flex justify-around items-center flex-wrap my-25">
<view class="card flex flex-col justify-center items-center" @click="openPopup('condition')"
style="flex: 0 0 40%; border-radius: 20rpx">
<u-icon name="/onlineSheetPages/static/v2_sua83h.png" size="120rpx"/>
<text class="text-25 mt-10">申请条件</text>
</view>
<view class="card flex flex-col justify-center items-center" @click="openPopup('stuff')"
style="flex: 0 0 40%; border-radius: 20rpx">
<u-icon name="/onlineSheetPages/static/v2_sua840.png" size="120rpx"/>
<text class="text-25 mt-10">申请材料</text>
</view>
</view>
<view class="flex justify-around items-center flex-wrap my-25">
<view class="card flex flex-col justify-center items-center" @click="openPopup('flow')"
style="flex: 0 0 40%; border-radius: 20rpx">
<u-icon name="/onlineSheetPages/static/v2_sua84m.png" size="120rpx"/>
<text class="text-25 mt-10">办理流程</text>
</view>
<view class="card flex flex-col justify-center items-center"
@click="$jump(`/articlePages/pages/list?title=政策法规&cateId=71`)"
style="flex: 0 0 40%; border-radius: 20rpx">
<u-icon name="/onlineSheetPages/static/v2_sua84z.png" size="120rpx"/>
<text class="text-25 mt-10">政策法规</text>
</view>
</view>
<view class="flex justify-around items-center flex-wrap my-25">
<view class="card flex flex-col justify-center items-center"
@click="$jump(`/articlePages/pages/list?title=典型案例&cateId=74`)"
style="flex: 0 0 40%; border-radius: 20rpx">
<u-icon name="/onlineSheetPages/static/v2_sue29e.png" size="120rpx"/>
<text class="text-25 mt-10">典型案例</text>
</view>
<view class="card flex flex-col justify-center items-center" @click="openPopup('fee')"
style="flex: 0 0 40%; border-radius: 20rpx">
<u-icon name="/onlineSheetPages/static/v2_suhlrq.png" size="120rpx"/>
<text class="text-25 mt-10">收费标准</text>
</view>
</view>
<view class="flex justify-around items-center flex-wrap my-25">
<view class="card flex flex-col justify-center items-center"
style="flex: 0 0 90%; border-radius: 20rpx" @click="check">
<u-icon name="/onlineSheetPages/static/v2_suhluu.png" size="120rpx"/>
<text class="text-25 mt-10">查验</text>
</view>
</view>
<u-popup :show="showContent" close-on-click-overlay @close="showContent = false" round="10"
:closeable="false"
:safe-area-inset-bottom="false">
<view class="p-50 pos-r" v-if="showContent">
<view class="pos-a" style="right: 10rpx; top: 10rpx;z-index: 999" @click="showContent = false">
<u-icon name="close-circle" :color="MAIN()" size="40rpx"/>
</view>
<view class="pos-a w-100p" style="left: 0; top: 10rpx">
<view class="text-center text-main">{{ title }}</view>
</view>
<view style="height: 50vh" class="overflow-y mt-25">
<u-parse :content="content"/>
</view>
</view>
</u-popup>
</view>
</template>
<script>
import HeaderItem from "@/components/HeaderItem.vue";
import {listArticleReq} from "@/api/common";
import {MAIN} from "@/config/color";
export default {
name: "legalAid",
components: {HeaderItem},
data() {
return {
articleList: [],
showContent: false,
title: '',
content: '',
}
},
methods: {
MAIN() {
return MAIN
},
async getArticleList() {
const {data} = await listArticleReq({
categoryId: 57
})
console.log(data)
this.articleList = data
},
openPopup(type) {
switch (type) {
case 'condition' : {
this.title = '申请条件'
const article = this.articleList.find(item => item.articleId === 85)
this.content = article.content
}
break;
case 'stuff' : {
this.title = '申请材料'
const article = this.articleList.find(item => item.articleId === 86)
this.content = article.content
}
break;
case 'flow' : {
this.title = '办理流程'
const article = this.articleList.find(item => item.articleId === 87)
this.content = article.content
}
break;
case 'fee' : {
this.title = '收费标准'
const article = this.articleList.find(item => item.articleId === 88)
this.content = article.content
}
break;
}
this.showContent = true
},
check(){
this.$toast('正在完善中')
}
},
onLoad() {
this.getArticleList()
},
}
</script>
<style lang="scss" scoped>
.bg {
background: url("https://sifa-api.wsdns.cn/api/file/20250420/bg1.jpg") no-repeat;
background-size: cover;
}
</style>
Binary file not shown.

After

Width:  |  Height:  |  Size: 191 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB