20260325稳定版
This commit is contained in:
@@ -0,0 +1,16 @@
|
|||||||
|
import post, {get} from "@/api/request";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 提交经济困难状况说明表
|
||||||
|
* @param {Object} data - 表单数据
|
||||||
|
* @param {Array} data.familyMembers - 家庭成员列表
|
||||||
|
* @param {String} data.familyMembers[].name - 姓名
|
||||||
|
* @param {String} data.familyMembers[].relation - 与申请人关系
|
||||||
|
* @param {String} data.familyMembers[].occupation - 职业及所在单位
|
||||||
|
* @param {String} data.familyMembers[].salaryIncome - 工资性收入
|
||||||
|
* @param {String} data.familyMembers[].businessIncome - 生产经营性收入
|
||||||
|
* @param {String} data.familyMembers[].otherIncome - 其他收入
|
||||||
|
* @param {String} data.familyMembers[].totalIncome - 合计
|
||||||
|
* @returns {Promise}
|
||||||
|
*/
|
||||||
|
export const submitEconomicDifficulty = data => post('/law/law-poor-request', data)
|
||||||
@@ -9,3 +9,5 @@ export const sendChatReq = data => post('/chat/message', data)
|
|||||||
export const stopChatReq = data => post('/chat/messageStop', data)
|
export const stopChatReq = data => post('/chat/messageStop', data)
|
||||||
export const lawLegalArbitrateReq = data => post('/law/law-legal-arbitrate', data)
|
export const lawLegalArbitrateReq = data => post('/law/law-legal-arbitrate', data)
|
||||||
export const lawLegalAppraisalReq = data => post('/law/law-legal-appraisal', data)
|
export const lawLegalAppraisalReq = data => post('/law/law-legal-appraisal', data)
|
||||||
|
export const lawLegalReviewReq = data => post('/law/law-legal-review', data)
|
||||||
|
export const lawLegalMediateReq = data => post('/law/law-legal-mediate', data)
|
||||||
|
|||||||
@@ -23,8 +23,8 @@
|
|||||||
<view class="py-15 border-bottom m-25" v-for="(item, index) in list" :key="index"
|
<view class="py-15 border-bottom m-25" v-for="(item, index) in list" :key="index"
|
||||||
@click="$jump(`/articlePages/pages/info?id=${item.articleId}`)">
|
@click="$jump(`/articlePages/pages/info?id=${item.articleId}`)">
|
||||||
<view class="flex-1 flex justify-between items-center w-100p">
|
<view class="flex-1 flex justify-between items-center w-100p">
|
||||||
<text class="text-25 font-bold">{{ item.title }}</text>
|
<text class="text-25 font-bold flex-1">{{ item.title }}</text>
|
||||||
<text class="text-20 text-gray">{{ item.createTime }}</text>
|
<text class="text-20 text-gray ml-10">{{ item.createTime }}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
const MAIN_API_FN = () => {
|
const MAIN_API_FN = () => {
|
||||||
if (process.env.NODE_ENV === 'development') {
|
if (process.env.NODE_ENV === 'development') {
|
||||||
return 'http://127.0.0.1:10051'
|
// return 'http://127.0.0.1:10051'
|
||||||
// return 'https://sifa-api.wsdns.cn'
|
return 'https://sifa-api.wsdns.cn'
|
||||||
} else {
|
} else {
|
||||||
return 'https://sifa-api.wsdns.cn'
|
return 'https://sifa-api.wsdns.cn'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,7 +53,7 @@
|
|||||||
<view class="pos-a w-100p" style="left: 0; top: 10rpx">
|
<view class="pos-a w-100p" style="left: 0; top: 10rpx">
|
||||||
<view class="text-center text-main">{{ title }}</view>
|
<view class="text-center text-main">{{ title }}</view>
|
||||||
</view>
|
</view>
|
||||||
<view style="height: 50vh" class="overflow-y mt-25">
|
<view style="height: 80vh" class="overflow-y mt-25">
|
||||||
<u-parse :content="content"/>
|
<u-parse :content="content"/>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|||||||
@@ -0,0 +1,435 @@
|
|||||||
|
<template>
|
||||||
|
<view class="min-height bg-main-light p-30">
|
||||||
|
<HeaderItem title="经济困难状况说明表"/>
|
||||||
|
<u-steps current="1">
|
||||||
|
<u-steps-item title="法律援助申请"/>
|
||||||
|
<u-steps-item title="经济困难状况说明"/>
|
||||||
|
</u-steps>
|
||||||
|
<!-- 家庭成员月收入状况 -->
|
||||||
|
<TitleItem title="申请人及共同生活的家庭成员月收入状况"/>
|
||||||
|
<view class="card mt-25 p-30">
|
||||||
|
<view v-for="(member, index) in peopleList" :key="index" class="member-item">
|
||||||
|
<view class="member-header">
|
||||||
|
<text class="member-title">成员 {{ index + 1 }}</text>
|
||||||
|
<u-icon v-if="peopleList.length > 1" name="close-circle" color="#f56c6c" size="20"
|
||||||
|
@click="removeMember(index)"></u-icon>
|
||||||
|
</view>
|
||||||
|
<u-form label-width="200rpx">
|
||||||
|
<u-form-item label="姓名" border-bottom>
|
||||||
|
<u-input v-model="member.name" border="none" placeholder="请输入姓名"/>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="与申请人关系" border-bottom>
|
||||||
|
<u-input v-model="member.relation" border="none" placeholder="请输入关系"/>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="职业及所在单位" border-bottom>
|
||||||
|
<u-input v-model="member.occupation" border="none" placeholder="请输入职业及所在单位"/>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="工资性收入(元)" border-bottom>
|
||||||
|
<u-input v-model="member.salaryIncome" type="number" border="none" placeholder="请输入工资性收入"
|
||||||
|
@input="calculateMemberTotal(index)"/>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="生产经营性收入(元)" border-bottom>
|
||||||
|
<u-input v-model="member.businessIncome" type="number" border="none" placeholder="请输入生产经营性收入"
|
||||||
|
@input="calculateMemberTotal(index)"/>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="其他收入(元)" border-bottom>
|
||||||
|
<u-input v-model="member.otherIncome" type="number" border="none" placeholder="请输入其他收入"
|
||||||
|
@input="calculateMemberTotal(index)"/>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="合计(元)" border-bottom>
|
||||||
|
<u-input :value="getMemberTotal(index)" border="none" readonly disabled/>
|
||||||
|
</u-form-item>
|
||||||
|
</u-form>
|
||||||
|
</view>
|
||||||
|
<view class="add-btn" @click="addMember">
|
||||||
|
<u-icon name="plus-circle" color="#3c9cff" size="20"></u-icon>
|
||||||
|
<text class="add-text">添加家庭成员</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 收入汇总 -->
|
||||||
|
<TitleItem title="收入汇总"/>
|
||||||
|
<view class="card mt-25 p-30">
|
||||||
|
<u-form label-width="200rpx">
|
||||||
|
<u-form-item label="总计(元)" border-bottom>
|
||||||
|
<u-input :value="totalIncome" border="none" readonly disabled/>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="家庭人均月收入(元)" border-bottom>
|
||||||
|
<u-input :value="averageIncome" border="none" readonly disabled/>
|
||||||
|
</u-form-item>
|
||||||
|
</u-form>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 房产情况 -->
|
||||||
|
<TitleItem title="房产情况"/>
|
||||||
|
<view class="card mt-25 p-30">
|
||||||
|
<u-form label-width="200rpx">
|
||||||
|
<u-form-item label="是否有房产" border-bottom>
|
||||||
|
<view class="flex justify-start items-center">
|
||||||
|
<view class="tag" @click="formData.hasHouse = true"
|
||||||
|
:class="[formData.hasHouse === true ? 'tag-active' : '']">有
|
||||||
|
</view>
|
||||||
|
<view class="tag ml-20" @click="formData.hasHouse = false"
|
||||||
|
:class="[formData.hasHouse === false ? 'tag-active' : '']">无
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</u-form-item>
|
||||||
|
<template v-if="formData.hasHouse">
|
||||||
|
<u-form-item label="房产套数" border-bottom>
|
||||||
|
<u-input v-model="formData.houseNum" type="number" border="none" placeholder="请输入房产套数"/>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="总面积(㎡)" border-bottom>
|
||||||
|
<u-input v-model="formData.houseArea" type="number" border="none" placeholder="请输入总面积"/>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="位置" border-bottom>
|
||||||
|
<u-textarea v-model="formData.houseAddress" border="none" placeholder="请输入房产位置"/>
|
||||||
|
</u-form-item>
|
||||||
|
</template>
|
||||||
|
</u-form>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 汽车情况 -->
|
||||||
|
<TitleItem title="汽车情况"/>
|
||||||
|
<view class="card mt-25 p-30">
|
||||||
|
<u-form label-width="200rpx">
|
||||||
|
<u-form-item label="是否有汽车" border-bottom>
|
||||||
|
<view class="flex justify-start items-center">
|
||||||
|
<view class="tag" @click="formData.hasCar = true" :class="[formData.hasCar === true ? 'tag-active' : '']">
|
||||||
|
有
|
||||||
|
</view>
|
||||||
|
<view class="tag ml-20" @click="formData.hasCar = false"
|
||||||
|
:class="[formData.hasCar === false ? 'tag-active' : '']">无
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</u-form-item>
|
||||||
|
<template v-if="formData.hasCar">
|
||||||
|
<u-form-item label="品牌型号" border-bottom>
|
||||||
|
<u-textarea v-model="formData.car" border="none" placeholder="请输入汽车品牌型号"/>
|
||||||
|
</u-form-item>
|
||||||
|
</template>
|
||||||
|
</u-form>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 资产情况 -->
|
||||||
|
<TitleItem title="资产情况"/>
|
||||||
|
<view class="card mt-25 p-30">
|
||||||
|
<u-form label-width="200rpx">
|
||||||
|
<u-form-item label="现金、存款、有价证券等资产(元)" border-bottom>
|
||||||
|
<u-input v-model="formData.cash" type="number" border="none" placeholder="请输入资产金额"/>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="其他需要说明的资产" border-bottom>
|
||||||
|
<u-textarea v-model="formData.otherProperty" border="none" placeholder="请输入其他资产说明"/>
|
||||||
|
</u-form-item>
|
||||||
|
</u-form>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 重大支出 -->
|
||||||
|
<TitleItem title="重大支出"/>
|
||||||
|
<view class="card mt-25 p-30">
|
||||||
|
<u-form label-width="200rpx">
|
||||||
|
<u-form-item label="重大支出说明" border-bottom>
|
||||||
|
<u-textarea v-model="formData.outcome" border="none" placeholder="请输入重大支出说明"/>
|
||||||
|
</u-form-item>
|
||||||
|
</u-form>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 申请人信息 -->
|
||||||
|
<TitleItem title="申请人信息"/>
|
||||||
|
<view class="card mt-25 p-30">
|
||||||
|
<u-form label-width="200rpx">
|
||||||
|
<u-form-item label="姓名" border-bottom>
|
||||||
|
<u-input v-model="formData.name" border="none" placeholder="请输入姓名"/>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="手机号" border-bottom>
|
||||||
|
<u-input v-model="formData.phone" type="number" 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>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import HeaderItem from "@/components/HeaderItem.vue";
|
||||||
|
import TitleItem from "@/components/TitleItem.vue";
|
||||||
|
import {submitEconomicDifficulty} from "@/api/economicDifficulty";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "economicDifficulty",
|
||||||
|
components: {TitleItem, HeaderItem},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
formData: {
|
||||||
|
aidId: 0,
|
||||||
|
// 家庭成员月收入状况
|
||||||
|
peopleList: '',
|
||||||
|
// 房产情况
|
||||||
|
hasHouse: false,
|
||||||
|
houseNum: '',
|
||||||
|
houseArea: '',
|
||||||
|
houseAddress: '',
|
||||||
|
// 汽车情况
|
||||||
|
hasCar: false,
|
||||||
|
car: '',
|
||||||
|
// 资产情况
|
||||||
|
cash: '',
|
||||||
|
otherProperty: '',
|
||||||
|
// 重大支出
|
||||||
|
outcome: '',
|
||||||
|
// 申请人信息
|
||||||
|
name: '',
|
||||||
|
phone: ''
|
||||||
|
},
|
||||||
|
peopleList: [
|
||||||
|
{
|
||||||
|
name: '',
|
||||||
|
relation: '',
|
||||||
|
occupation: '',
|
||||||
|
salaryIncome: '',
|
||||||
|
businessIncome: '',
|
||||||
|
otherIncome: '',
|
||||||
|
totalIncome: ''
|
||||||
|
}
|
||||||
|
],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
// 计算总收入
|
||||||
|
totalIncome() {
|
||||||
|
const total = this.peopleList.reduce((sum, member) => {
|
||||||
|
const salary = parseFloat(member.salaryIncome) || 0;
|
||||||
|
const business = parseFloat(member.businessIncome) || 0;
|
||||||
|
const other = parseFloat(member.otherIncome) || 0;
|
||||||
|
return sum + salary + business + other;
|
||||||
|
}, 0);
|
||||||
|
return total.toFixed(2);
|
||||||
|
},
|
||||||
|
// 计算人均月收入
|
||||||
|
averageIncome() {
|
||||||
|
const memberCount = this.peopleList.length;
|
||||||
|
if (memberCount === 0) return '0.00';
|
||||||
|
const avg = parseFloat(this.totalIncome) / memberCount;
|
||||||
|
return avg.toFixed(2);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 计算单个成员的收入合计
|
||||||
|
getMemberTotal(index) {
|
||||||
|
const member = this.peopleList[index];
|
||||||
|
if (!member) return '0.00';
|
||||||
|
const salary = parseFloat(member.salaryIncome) || 0;
|
||||||
|
const business = parseFloat(member.businessIncome) || 0;
|
||||||
|
const other = parseFloat(member.otherIncome) || 0;
|
||||||
|
const total = salary + business + other;
|
||||||
|
return total.toFixed(2);
|
||||||
|
},
|
||||||
|
// 计算成员收入合计(用于输入时触发)
|
||||||
|
calculateMemberTotal(index) {
|
||||||
|
const member = this.peopleList[index];
|
||||||
|
if (!member) return;
|
||||||
|
const salary = parseFloat(member.salaryIncome) || 0;
|
||||||
|
const business = parseFloat(member.businessIncome) || 0;
|
||||||
|
const other = parseFloat(member.otherIncome) || 0;
|
||||||
|
member.totalIncome = (salary + business + other).toFixed(2);
|
||||||
|
},
|
||||||
|
// 添加家庭成员
|
||||||
|
addMember() {
|
||||||
|
this.peopleList.push({
|
||||||
|
name: '',
|
||||||
|
relation: '',
|
||||||
|
occupation: '',
|
||||||
|
salaryIncome: '',
|
||||||
|
businessIncome: '',
|
||||||
|
otherIncome: '',
|
||||||
|
totalIncome: ''
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 删除家庭成员
|
||||||
|
removeMember(index) {
|
||||||
|
if (this.peopleList.length > 1) {
|
||||||
|
this.peopleList.splice(index, 1);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 表单验证
|
||||||
|
validate() {
|
||||||
|
if (this.peopleList.length === 0) {
|
||||||
|
this.$toast('请至少添加一个家庭成员');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let i = 0; i < this.peopleList.length; i++) {
|
||||||
|
const member = this.peopleList[i];
|
||||||
|
if (!member.name) {
|
||||||
|
this.$toast(`请输入成员${i + 1}的姓名`);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!member.relation) {
|
||||||
|
this.$toast(`请输入成员${i + 1}与申请人的关系`);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!member.occupation) {
|
||||||
|
this.$toast(`请输入成员${i + 1}的职业及所在单位`);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// 至少需要填写一项收入
|
||||||
|
if (!member.salaryIncome && !member.businessIncome && !member.otherIncome) {
|
||||||
|
this.$toast(`请至少填写成员${i + 1}的一项收入`);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.formData.hasHouse === null) {
|
||||||
|
this.$toast('请选择是否有房产');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.formData.hasHouse) {
|
||||||
|
if (!this.formData.houseNum) {
|
||||||
|
this.$toast('请输入房产套数');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!this.formData.houseArea) {
|
||||||
|
this.$toast('请输入房产总面积');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!this.formData.houseAddress) {
|
||||||
|
this.$toast('请输入房产位置');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.formData.hasCar === null) {
|
||||||
|
this.$toast('请选择是否有汽车');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.formData.hasCar && !this.formData.car) {
|
||||||
|
this.$toast('请输入汽车品牌型号');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!this.formData.name) {
|
||||||
|
this.$toast('请输入申请人姓名');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!this.formData.phone) {
|
||||||
|
this.$toast('请输入申请人手机号');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 验证手机号格式
|
||||||
|
const phoneReg = /^1[3-9]\d{9}$/;
|
||||||
|
if (!phoneReg.test(this.formData.phone)) {
|
||||||
|
this.$toast('请输入正确的手机号');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
// 提交表单
|
||||||
|
async save() {
|
||||||
|
if (!this.validate()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 准备提交的数据
|
||||||
|
const submitData = {
|
||||||
|
...this.formData,
|
||||||
|
peopleList: JSON.stringify(this.peopleList),
|
||||||
|
totalIncome: this.totalIncome,
|
||||||
|
avgIncome: this.averageIncome
|
||||||
|
};
|
||||||
|
|
||||||
|
try {
|
||||||
|
const res = await submitEconomicDifficulty(submitData);
|
||||||
|
if (res) {
|
||||||
|
this.$toast('提交成功');
|
||||||
|
setTimeout(() => {
|
||||||
|
uni.switchTab({url: '/pages/index/index'})
|
||||||
|
}, 500);
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error('提交失败:', error);
|
||||||
|
this.$toast('提交失败,请重试');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onLoad({aidId}) {
|
||||||
|
this.formData.aidId = aidId
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.member-item {
|
||||||
|
margin-bottom: 30rpx;
|
||||||
|
padding-bottom: 30rpx;
|
||||||
|
border-bottom: 1px solid #f0f0f0;
|
||||||
|
|
||||||
|
&:last-child {
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.member-header {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.member-title {
|
||||||
|
font-size: 28rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.add-btn {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
padding: 20rpx;
|
||||||
|
border: 1px dashed #3c9cff;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.add-text {
|
||||||
|
margin-left: 10rpx;
|
||||||
|
color: #3c9cff;
|
||||||
|
font-size: 28rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.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>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.u-steps-item__wrapper {
|
||||||
|
background-color: #E0F2FE !important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
<view class="pos-a w-100p" style="left: 0; top: 10rpx">
|
<view class="pos-a w-100p" style="left: 0; top: 10rpx">
|
||||||
<view class="text-center text-main">{{ title }}</view>
|
<view class="text-center text-main">{{ title }}</view>
|
||||||
</view>
|
</view>
|
||||||
<view style="height: 50vh" class="overflow-y mt-25">
|
<view style="height: 80vh" class="overflow-y mt-25">
|
||||||
<u-parse :content="content"/>
|
<u-parse :content="content"/>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|||||||
@@ -54,7 +54,7 @@
|
|||||||
<view class="pos-a w-100p" style="left: 0; top: 10rpx">
|
<view class="pos-a w-100p" style="left: 0; top: 10rpx">
|
||||||
<view class="text-center text-main">{{ title }}</view>
|
<view class="text-center text-main">{{ title }}</view>
|
||||||
</view>
|
</view>
|
||||||
<view style="height: 50vh" class="overflow-y mt-25">
|
<view style="height: 80vh" class="overflow-y mt-25">
|
||||||
<u-parse :content="content"/>
|
<u-parse :content="content"/>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|||||||
@@ -0,0 +1,133 @@
|
|||||||
|
<template>
|
||||||
|
<view class="min-height bg p-30">
|
||||||
|
<HeaderItem title="人民调解"/>
|
||||||
|
<view class="rounded text-white flex justify-center items-center mr-10"
|
||||||
|
@click="$jump('/onlineSheetPages/pages/newRequestMediate')"
|
||||||
|
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=83`)"
|
||||||
|
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=84`)"
|
||||||
|
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: 80vh" 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: 85
|
||||||
|
})
|
||||||
|
console.log(data)
|
||||||
|
this.articleList = data
|
||||||
|
},
|
||||||
|
openPopup(type) {
|
||||||
|
switch (type) {
|
||||||
|
case 'condition' : {
|
||||||
|
this.title = '申请条件'
|
||||||
|
const article = this.articleList.find(item => item.articleId === 155)
|
||||||
|
this.content = article.content
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'stuff' : {
|
||||||
|
this.title = '申请材料'
|
||||||
|
const article = this.articleList.find(item => item.articleId === 156)
|
||||||
|
this.content = article.content
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'flow' : {
|
||||||
|
this.title = '办理流程'
|
||||||
|
const article = this.articleList.find(item => item.articleId === 157)
|
||||||
|
this.content = article.content
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'fee' : {
|
||||||
|
this.title = '收费标准'
|
||||||
|
const article = this.articleList.find(item => item.articleId === 158)
|
||||||
|
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>
|
||||||
@@ -0,0 +1,139 @@
|
|||||||
|
<template>
|
||||||
|
<view class="min-height bg p-30">
|
||||||
|
<HeaderItem title="行政复议"/>
|
||||||
|
<view class="rounded text-white flex justify-center items-center"
|
||||||
|
@click="$jump('/onlineSheetPages/pages/newReviewRequest')"
|
||||||
|
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=80`)"
|
||||||
|
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=82`)"
|
||||||
|
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="$jump(`/articlePages/pages/list?title=行政复议机关文书格式&cateId=86`)"
|
||||||
|
style="flex: 0 0 40%; border-radius: 20rpx">
|
||||||
|
<u-icon name="https://sifa-api.wsdns.cn/api/file/20260210/38d6b33e49a2477fb0b8dd68fcb72c30.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: 80vh" 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: 81
|
||||||
|
})
|
||||||
|
console.log(data)
|
||||||
|
this.articleList = data
|
||||||
|
},
|
||||||
|
openPopup(type) {
|
||||||
|
switch (type) {
|
||||||
|
case 'condition' : {
|
||||||
|
this.title = '申请条件'
|
||||||
|
const article = this.articleList.find(item => item.articleId === 151)
|
||||||
|
this.content = article.content
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'stuff' : {
|
||||||
|
this.title = '申请材料'
|
||||||
|
const article = this.articleList.find(item => item.articleId === 152)
|
||||||
|
this.content = article.content
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'flow' : {
|
||||||
|
this.title = '办理流程'
|
||||||
|
const article = this.articleList.find(item => item.articleId === 153)
|
||||||
|
this.content = article.content
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'fee' : {
|
||||||
|
this.title = '收费标准'
|
||||||
|
const article = this.articleList.find(item => item.articleId === 154)
|
||||||
|
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>
|
||||||
@@ -145,6 +145,7 @@ export default {
|
|||||||
minDate: dayjs().subtract(100, 'year').valueOf(),
|
minDate: dayjs().subtract(100, 'year').valueOf(),
|
||||||
peopleList: [],
|
peopleList: [],
|
||||||
typeList: [],
|
typeList: [],
|
||||||
|
originTypeList: [],
|
||||||
clickedIndex: 0,
|
clickedIndex: 0,
|
||||||
selectedConfig: null,
|
selectedConfig: null,
|
||||||
fileList: [],
|
fileList: [],
|
||||||
@@ -154,7 +155,11 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
async getConfigList() {
|
async getConfigList() {
|
||||||
const {data} = await listNotaryConfigReq()
|
const {data} = await listNotaryConfigReq()
|
||||||
this.typeList = data
|
this.typeList = data.map(item => {
|
||||||
|
item.title = `${item.type}·${item.title}`
|
||||||
|
return item
|
||||||
|
})
|
||||||
|
this.originTypeList = JSON.parse(JSON.stringify(this.typeList))
|
||||||
this.selectedConfig = this.typeList[0]
|
this.selectedConfig = this.typeList[0]
|
||||||
this.formData.type = this.selectedConfig.title
|
this.formData.type = this.selectedConfig.title
|
||||||
this.fileList = []
|
this.fileList = []
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="min-height bg-main-light p-30">
|
<view class="min-height bg-main-light p-30">
|
||||||
<HeaderItem title="法律援助预约"/>
|
<HeaderItem title="法律援助预约"/>
|
||||||
|
<u-steps current="0">
|
||||||
|
<u-steps-item title="法律援助申请" />
|
||||||
|
<u-steps-item title="经济困难状况说明"/>
|
||||||
|
</u-steps>
|
||||||
<TitleItem title="基础信息"/>
|
<TitleItem title="基础信息"/>
|
||||||
<view class="card mt-25 p-30">
|
<view class="card mt-25 p-30">
|
||||||
<u-form label-width="180rpx">
|
<u-form label-width="180rpx">
|
||||||
@@ -71,7 +75,7 @@
|
|||||||
<u-button type="primary" shape="circle" @click="save"
|
<u-button type="primary" shape="circle" @click="save"
|
||||||
:hairline="false"
|
: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%);'}">
|
: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>
|
</u-button>
|
||||||
</view>
|
</view>
|
||||||
<u-datetime-picker
|
<u-datetime-picker
|
||||||
@@ -114,7 +118,7 @@ export default {
|
|||||||
proxyIdCard: '',
|
proxyIdCard: '',
|
||||||
},
|
},
|
||||||
showDate: false,
|
showDate: false,
|
||||||
checkDate: Number(new Date()),
|
checkDate: dayjs().subtract(18, 'years').valueOf(),
|
||||||
minDate: dayjs().subtract(100, 'year').valueOf()
|
minDate: dayjs().subtract(100, 'year').valueOf()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -133,7 +137,7 @@ export default {
|
|||||||
if (res) {
|
if (res) {
|
||||||
this.$toast('提交成功')
|
this.$toast('提交成功')
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
uni.navigateBack()
|
this.$jump(`/onlineSheetPages/pages/economicDifficulty?aidId=${res.data.id}`)
|
||||||
}, 500)
|
}, 500)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -160,3 +164,9 @@ export default {
|
|||||||
border-color: #3c9cff !important;
|
border-color: #3c9cff !important;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.u-steps-item__wrapper{
|
||||||
|
background-color: #E0F2FE !important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,200 @@
|
|||||||
|
<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.age" 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>
|
||||||
|
<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>
|
||||||
|
</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.respondent" border="none" placeholder="请输入申请人姓名"/>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="性别" border-bottom>
|
||||||
|
<view class="flex justify-start items-center">
|
||||||
|
<view class="tag" @click="formData.respondentGender = 0" :class="[formData.respondentGender === 0 ? 'tag-active' : '']">男
|
||||||
|
</view>
|
||||||
|
<view class="tag ml-20" @click="formData.respondentGender = 1" :class="[formData.respondentGender === 1 ? 'tag-active' : '']">
|
||||||
|
女
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="民族" border-bottom>
|
||||||
|
<u-input v-model="formData.respondentNation" border="none" placeholder="请输入民族"/>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="年龄" border-bottom>
|
||||||
|
<u-input v-model="formData.respondentAge" border="none" placeholder="请输入年龄"/>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="身份证号" border-bottom>
|
||||||
|
<u-input v-model="formData.respondentIdCard" border="none" placeholder="请输入身份证号"/>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="联系电话" border-bottom>
|
||||||
|
<u-input v-model="formData.respondentPhone" border="none" placeholder="请输入联系电话"/>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="单位/住址" border-bottom>
|
||||||
|
<u-input v-model="formData.respondentAddress" border="none" placeholder="请输入单位/住址"/>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="职务" border-bottom>
|
||||||
|
<u-input v-model="formData.respondentPosition" 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-textarea maxlength="-1" v-model="formData.content" 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>
|
||||||
|
</view>
|
||||||
|
<view class="mt-30">
|
||||||
|
<u-button type="primary" shape="circle" @click="save"
|
||||||
|
:hairline="false" :disabled="disable"
|
||||||
|
: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, lawLegalMediateReq, 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: '',
|
||||||
|
age: '',
|
||||||
|
respondent: '',
|
||||||
|
respondentGender: 0,
|
||||||
|
respondentNation: '',
|
||||||
|
respondentAge: '',
|
||||||
|
respondentIdCard: '',
|
||||||
|
respondentPhone: '',
|
||||||
|
respondentAddress: '',
|
||||||
|
respondentPosition: '',
|
||||||
|
requestContent: '',
|
||||||
|
},
|
||||||
|
showDate: false,
|
||||||
|
disable: 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.requestContent) return this.$toast('请输入当事人申请事项')
|
||||||
|
if (!this.formData.nation) return this.$toast('请输入民族')
|
||||||
|
if (!this.formData.respondent) return this.$toast('请输入被申请人信息姓名')
|
||||||
|
if (!this.formData.respondentNation) return this.$toast('请输入被申请人信息民族')
|
||||||
|
if (!this.formData.respondentAge) return this.$toast('请输入被申请人信息年龄')
|
||||||
|
if (!this.formData.respondentIdCard) return this.$toast('请输入被申请人信息身份证号')
|
||||||
|
if (!this.formData.respondentPhone) return this.$toast('请输入被申请人信息联系电话')
|
||||||
|
if (!this.formData.respondentAddress) return this.$toast('请输入被申请人信息单位/住址')
|
||||||
|
if (!this.formData.respondentPosition) return this.$toast('请输入被申请人信息职务')
|
||||||
|
this.disable = true
|
||||||
|
const res = await lawLegalMediateReq(this.formData)
|
||||||
|
this.disable = false
|
||||||
|
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,248 @@
|
|||||||
|
<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>
|
||||||
|
<u-input v-model="formData.legalPerson" border="none" placeholder="请输入法定代表人或者主要负责人"/>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="职务" border-bottom>
|
||||||
|
<u-input v-model="formData.position" 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>
|
||||||
|
</view>
|
||||||
|
<TitleItem title="请求信息"/>
|
||||||
|
<view class="card mt-25 p-30">
|
||||||
|
<u-form label-width="180rpx">
|
||||||
|
<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.requestReason" 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.respondent" border="none" placeholder="请输入被申请人"/>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="法定代表人或者主要负责人" border-bottom>
|
||||||
|
<u-input v-model="formData.respondentLegalPerson" border="none" placeholder="请输入法定代表人或者主要负责人"/>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="职务" border-bottom>
|
||||||
|
<u-input v-model="formData.respondentPosition" border="none" placeholder="请输入职务"/>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="所在地" border-bottom>
|
||||||
|
<u-input v-model="formData.respondentAddress" 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>
|
||||||
|
<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>
|
||||||
|
<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, lawLegalReviewReq, lawOrgCheckActionReq} from "@/api/lawOrg";
|
||||||
|
import {chooseImg} from "@/util";
|
||||||
|
|
||||||
|
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: '',
|
||||||
|
legalPerson: '',
|
||||||
|
position: '',
|
||||||
|
requestContent: '',
|
||||||
|
requestReason: '',
|
||||||
|
respondent: '',
|
||||||
|
respondentLegalPerson: '',
|
||||||
|
respondentPosition: '',
|
||||||
|
respondentAddress: '',
|
||||||
|
files: '',
|
||||||
|
},
|
||||||
|
fileList: [
|
||||||
|
{
|
||||||
|
title: '其他有关材料',
|
||||||
|
fileList: []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '申请人身份证明材料复印件',
|
||||||
|
fileList: []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '授权委托书(有委托代理人的)',
|
||||||
|
fileList: []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
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.requestContent) return this.$toast('请输入行政复议请求')
|
||||||
|
if (!this.formData.requestReason) return this.$toast('请输入行政复议理由')
|
||||||
|
if (!this.formData.respondent) return this.$toast('请输入被申请人')
|
||||||
|
if (!this.formData.respondentLegalPerson) return this.$toast('请输入被申请人法定代表人或者主要负责人')
|
||||||
|
if (!this.formData.respondentPosition) return this.$toast('请输入被申请人职务')
|
||||||
|
if (!this.formData.respondentAddress) return this.$toast('请输入被申请人所在地')
|
||||||
|
this.formData.files = JSON.stringify(this.fileList)
|
||||||
|
const res = await lawLegalReviewReq(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)
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</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>
|
||||||
@@ -61,7 +61,7 @@
|
|||||||
<view class="pos-a w-100p" style="left: 0; top: 10rpx">
|
<view class="pos-a w-100p" style="left: 0; top: 10rpx">
|
||||||
<view class="text-center text-main">{{ title }}</view>
|
<view class="text-center text-main">{{ title }}</view>
|
||||||
</view>
|
</view>
|
||||||
<view style="height: 50vh" class="overflow-y mt-25">
|
<view style="height: 80vh" class="overflow-y mt-25">
|
||||||
<u-parse :content="content"/>
|
<u-parse :content="content"/>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|||||||
+42
-1
@@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
|
"pages": [
|
||||||
|
//pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
|
||||||
{
|
{
|
||||||
"path": "pages/index/index",
|
"path": "pages/index/index",
|
||||||
"style": {
|
"style": {
|
||||||
@@ -212,6 +213,46 @@
|
|||||||
"navigationStyle": "custom",
|
"navigationStyle": "custom",
|
||||||
"navigationBarTextStyle": "black"
|
"navigationBarTextStyle": "black"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/legalReview",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "行政复议",
|
||||||
|
"navigationStyle": "custom",
|
||||||
|
"navigationBarTextStyle": "black"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/newReviewRequest",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "行政复议申请",
|
||||||
|
"navigationStyle": "custom",
|
||||||
|
"navigationBarTextStyle": "black"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/legalMediate",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "人民调解",
|
||||||
|
"navigationStyle": "custom",
|
||||||
|
"navigationBarTextStyle": "black"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/newRequestMediate",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "人民调解申请",
|
||||||
|
"navigationStyle": "custom",
|
||||||
|
"navigationBarTextStyle": "black"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/economicDifficulty",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "经济困难状况说明表",
|
||||||
|
"navigationStyle": "custom",
|
||||||
|
"navigationBarTextStyle": "black"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
+49
-7
@@ -3,6 +3,7 @@
|
|||||||
<HeaderItem title="AI律师咨询"/>
|
<HeaderItem title="AI律师咨询"/>
|
||||||
<view style="line-height: 35rpx"
|
<view style="line-height: 35rpx"
|
||||||
class="flex flex-col justify-start items-start text-25 p-30">
|
class="flex flex-col justify-start items-start text-25 p-30">
|
||||||
|
<view class="text-25 text-gray text-center my-15 w-100p">该内容由人工智能生成</view>
|
||||||
<view v-for="(item, index) in list" :key="index" class="mb-25 w-100p">
|
<view v-for="(item, index) in list" :key="index" class="mb-25 w-100p">
|
||||||
<view v-if="!item.isMine" class="flex justify-start items-start">
|
<view v-if="!item.isMine" class="flex justify-start items-start">
|
||||||
<u-icon name="/static/robot.png" size="60rpx"/>
|
<u-icon name="/static/robot.png" size="60rpx"/>
|
||||||
@@ -46,6 +47,7 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<Login ref="Login" @done="onLoginDone"/>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -57,17 +59,20 @@ import {sendChatReq, stopChatReq} from "@/api/lawOrg";
|
|||||||
import {getUserInfo} from "@/util/user";
|
import {getUserInfo} from "@/util/user";
|
||||||
import {MAIN} from "@/config/color";
|
import {MAIN} from "@/config/color";
|
||||||
import {dictDataReq} from "@/api/common";
|
import {dictDataReq} from "@/api/common";
|
||||||
|
import Login from "@/components/Login.vue";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "index",
|
name: "index",
|
||||||
components: {HeaderItem, CustomTabbar},
|
components: {Login, HeaderItem, CustomTabbar},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
list: [],
|
list: [],
|
||||||
questionList: [],
|
questionList: [],
|
||||||
content: '',
|
content: '',
|
||||||
taskId: null,
|
taskId: null,
|
||||||
answering: false
|
answering: false,
|
||||||
|
socket: null,
|
||||||
|
timer: null,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -118,22 +123,27 @@ export default {
|
|||||||
}, 100)
|
}, 100)
|
||||||
},
|
},
|
||||||
async stopAI() {
|
async stopAI() {
|
||||||
|
console.log('stoping')
|
||||||
await stopChatReq({
|
await stopChatReq({
|
||||||
taskId: this.taskId
|
taskId: this.taskId
|
||||||
})
|
})
|
||||||
this.answering = false
|
this.answering = false
|
||||||
uni.closeSocket()
|
this.list[this.list.length - 1].done = true
|
||||||
}
|
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoginDone(){
|
||||||
|
uni.hideLoading()
|
||||||
this.list.push({
|
this.list.push({
|
||||||
content: '您好!我是法律机器人,请问您想咨询什么问题呢?',
|
content: '您好!我是法律机器人,请问您想咨询什么问题呢?',
|
||||||
isMine: false,
|
isMine: false,
|
||||||
loading: false,
|
loading: false,
|
||||||
done: true,
|
done: true,
|
||||||
})
|
})
|
||||||
uni.connectSocket({
|
const _this = this
|
||||||
url: `${WS_API}/${getUserInfo().uid}`
|
this.socket = uni.connectSocket({
|
||||||
|
url: `${WS_API}/${getUserInfo().uid}`,
|
||||||
|
success: () => {
|
||||||
|
_this.ping()
|
||||||
|
},
|
||||||
})
|
})
|
||||||
uni.onSocketMessage(res => {
|
uni.onSocketMessage(res => {
|
||||||
if (res.data === '连接成功') return
|
if (res.data === '连接成功') return
|
||||||
@@ -143,14 +153,46 @@ export default {
|
|||||||
this.taskId = aiData.taskId
|
this.taskId = aiData.taskId
|
||||||
this.scrollToBottom()
|
this.scrollToBottom()
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
ping() {
|
||||||
|
this.timer = setInterval(() => {
|
||||||
|
if (this.socket) {
|
||||||
|
this.socket.send({
|
||||||
|
data: 'ping'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}, 10000)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
uni.showLoading({
|
||||||
|
title: '加载中...',
|
||||||
|
})
|
||||||
|
this.$refs.Login.doLogin()
|
||||||
this.getQuestionsList()
|
this.getQuestionsList()
|
||||||
},
|
},
|
||||||
onUnload() {
|
onUnload() {
|
||||||
|
if (this.timer) clearInterval(this.timer)
|
||||||
|
uni.closeSocket()
|
||||||
this.stopAI()
|
this.stopAI()
|
||||||
},
|
},
|
||||||
onHide() {
|
onHide() {
|
||||||
|
if (this.timer) clearInterval(this.timer)
|
||||||
|
uni.closeSocket()
|
||||||
this.stopAI()
|
this.stopAI()
|
||||||
},
|
},
|
||||||
|
onShareAppMessage() {
|
||||||
|
return {
|
||||||
|
title: "贵港公共法律服务",
|
||||||
|
path: `/pages/ai/index`
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onShareTimeline() {
|
||||||
|
return {
|
||||||
|
title: "贵港公共法律服务",
|
||||||
|
path: `/pages/ai/index`
|
||||||
|
}
|
||||||
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|||||||
+74
-12
@@ -1,26 +1,33 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="min-height pos-r bg" style="background-color: #E0F2FE">
|
<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}"
|
<u-swiper v-if="swiperList.length" :list="swiperList" height="420rpx" indicator :custom-style="{zIndex: 0}"
|
||||||
@click="$jump('/lawOrgPages/pages/action')"/>
|
@click="$jump('/lawOrgPages/pages/action')"/>
|
||||||
<view class="pos-a w-100p" style="left: 0; top: 360rpx">
|
<view class="pos-a w-100p" style="left: 0; top: 360rpx">
|
||||||
<view class="card m-25 flex flex-col justify-start items-start shadow"
|
<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: 45rpx">
|
style="background-color: rgba(255,255,255,0.8); width: calc(100vw - 90rpx); padding-bottom: 15rpx">
|
||||||
<view class="tag">
|
<view class="tag">
|
||||||
<u-icon name="/static/line.png" size="30rpx"/>
|
<u-icon name="/static/line.png" size="30rpx"/>
|
||||||
<view>线上办事</view>
|
<view>线上办事</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="mt-20 flex justify-around items-center w-100p">
|
<view class="my-25 w-100p grid-wrap">
|
||||||
<view class="flex flex-col justify-center items-center shadow rounded-sm p-10"
|
<view class="flex flex-col justify-center items-center shadow rounded-sm p-10 mr-15"
|
||||||
style="flex: 0 0 20%"
|
style="flex: 0 0 28%; height: 130rpx; margin-bottom: 10rpx"
|
||||||
v-for="(item, index) in navList"
|
v-for="(item, index) in navList"
|
||||||
:key="index" @click="$jump(item.url)">
|
:key="index" @click="$jump(item.url)">
|
||||||
<u-icon :name="`/static/index/${index + 1}.png`" size="80rpx"/>
|
<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>
|
<text class=" mt-20" :class="[item.label.length > 5 ? 'text-20' : 'text-25']">{{ item.label }}</text>
|
||||||
</view>
|
</view>
|
||||||
</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>
|
||||||
</view>
|
</view>
|
||||||
<u-gap height="220rpx"></u-gap>
|
<u-gap height="420rpx"></u-gap>
|
||||||
<view class="p-25">
|
<view class="p-25">
|
||||||
<TitleItem title="企业法治体检"/>
|
<TitleItem title="企业法治体检"/>
|
||||||
<view class="circle w-100p mb-20 shadow"
|
<view class="circle w-100p mb-20 shadow"
|
||||||
@@ -29,8 +36,9 @@
|
|||||||
height: 180rpx"></view>
|
height: 180rpx"></view>
|
||||||
<TitleItem title="法律自助服务"/>
|
<TitleItem title="法律自助服务"/>
|
||||||
<view class="flex justify-center items-center flex-wrap">
|
<view class="flex justify-center items-center flex-wrap">
|
||||||
<view class="card mb-25 flex-1 flex justify-center items-center flex-shrink shadow"
|
<view class="card mb-25 flex-1 flex justify-start items-start flex-shrink shadow"
|
||||||
style="flex:0 0 295rpx; border-radius: 16rpx; padding: 25rpx 20rpx "
|
style="border-radius: 16rpx; padding: 25rpx 20rpx "
|
||||||
|
:style="{flex: '0 0 295rpx'}"
|
||||||
:class="[index % 2 === 0 ? 'mr-15' : 'ml-15']"
|
:class="[index % 2 === 0 ? 'mr-15' : 'ml-15']"
|
||||||
v-for="(item, index) in selfNavList"
|
v-for="(item, index) in selfNavList"
|
||||||
@click="jump(item.url)"
|
@click="jump(item.url)"
|
||||||
@@ -51,7 +59,7 @@
|
|||||||
style="background-image: url('https://sifa-api.wsdns.cn/api/file/20250419/propagate.png'); background-size: cover;
|
style="background-image: url('https://sifa-api.wsdns.cn/api/file/20250419/propagate.png'); background-size: cover;
|
||||||
height: 240rpx"></view>
|
height: 240rpx"></view>
|
||||||
<TitleItem title="查询服务"/>
|
<TitleItem title="查询服务"/>
|
||||||
<view class="flex justify-center items-center flex-wrap">
|
<view class="flex justify-start items-center flex-wrap">
|
||||||
<view @click="$jump('/lawOrgPages/pages/map')"
|
<view @click="$jump('/lawOrgPages/pages/map')"
|
||||||
class="card mb-20 flex-1 flex justify-center items-center flex-shrink mr-15 shadow"
|
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">
|
style="flex:0 0 295rpx; border-radius: 16rpx; padding: 25rpx 20rpx">
|
||||||
@@ -70,6 +78,15 @@
|
|||||||
<text class="text-20 mt-10" style="color: rgb(123, 160, 194)">法律人员机构查询</text>
|
<text class="text-20 mt-10" style="color: rgb(123, 160, 194)">法律人员机构查询</text>
|
||||||
</view>
|
</view>
|
||||||
</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>
|
||||||
</view>
|
</view>
|
||||||
<u-gap height="100rpx"></u-gap>
|
<u-gap height="100rpx"></u-gap>
|
||||||
@@ -107,6 +124,14 @@ export default {
|
|||||||
label: '民事商事仲裁',
|
label: '民事商事仲裁',
|
||||||
url: '/onlineSheetPages/pages/civil'
|
url: '/onlineSheetPages/pages/civil'
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: '行政复议',
|
||||||
|
url: '/onlineSheetPages/pages/legalReview'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '人民调解',
|
||||||
|
url: '/onlineSheetPages/pages/legalMediate'
|
||||||
|
},
|
||||||
],
|
],
|
||||||
selfNavList: [
|
selfNavList: [
|
||||||
{
|
{
|
||||||
@@ -145,7 +170,16 @@ export default {
|
|||||||
icon: '/static/index/self_5.png',
|
icon: '/static/index/self_5.png',
|
||||||
url: '/articlePages/pages/search'
|
url: '/articlePages/pages/search'
|
||||||
},
|
},
|
||||||
]
|
// {
|
||||||
|
// label: '经济困难申请',
|
||||||
|
// desc: '经济困难状况申请',
|
||||||
|
// icon: '/static/index/req.png',
|
||||||
|
// url: '/onlineSheetPages/pages/economicDifficulty'
|
||||||
|
// },
|
||||||
|
],
|
||||||
|
showLeft: false,
|
||||||
|
showRight: true,
|
||||||
|
top: 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -159,12 +193,23 @@ export default {
|
|||||||
if (url === '/pages/ai/index') {
|
if (url === '/pages/ai/index') {
|
||||||
uni.switchTab({url})
|
uni.switchTab({url})
|
||||||
} else uni.navigateTo({url})
|
} else uni.navigateTo({url})
|
||||||
|
},
|
||||||
|
copy(data) {
|
||||||
|
uni.setClipboardData({
|
||||||
|
data,
|
||||||
|
success: function () {
|
||||||
|
uni.showToast({
|
||||||
|
title: '复制成功,请到浏览器中粘贴访问',
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
// #defif
|
|
||||||
this.$refs.Login.doLogin()
|
this.$refs.Login.doLogin()
|
||||||
this.getSwiperList()
|
this.getSwiperList()
|
||||||
|
this.top = uni.getSystemInfoSync().statusBarHeight + 'px'
|
||||||
},
|
},
|
||||||
onShareAppMessage() {
|
onShareAppMessage() {
|
||||||
return {
|
return {
|
||||||
@@ -197,4 +242,21 @@ export default {
|
|||||||
padding: 5rpx 15rpx;
|
padding: 5rpx 15rpx;
|
||||||
border-radius: 6rpx;
|
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>
|
</style>
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 4.6 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 3.7 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 3.9 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
Reference in New Issue
Block a user