Commit f3f0ddaa by zeyang

1.优化法律手册

parent 607c2433
...@@ -359,5 +359,15 @@ export default { ...@@ -359,5 +359,15 @@ export default {
//验证验证码是否正确 //验证验证码是否正确
verification(params){ verification(params){
return request(`${cffpURL}/user/verification`, "POST", params) return request(`${cffpURL}/user/verification`, "POST", params)
},
//保存访问记录接口
accessLogSave(params){
return request(`${cffpURL}/accessLog/accessLogSave`, "POST", params)
},
//获取权限
powerQuery(params){
return request(`${cffpURL}/user/powerQuery`, "POST", params)
} }
} }
<template> <template>
<view class="container" v-if="isShow" > <view class="container" v-if="isShow">
<view style="position: absolute;width: 60%;left: 20%;top: 50rpx;">
<view class="titleBox">
<view style="margin-top: 170rpx;position: relative;">
<view style="position: absolute;width: 60%;left: 20%;top: -20%;">
<image src="../../static/lawManual/backGroundImg.png" mode="widthFix"></image> <image src="../../static/lawManual/backGroundImg.png" mode="widthFix"></image>
</view> </view>
<view class="titleBox">
<view style="margin-top: 170rpx;">
<view class="imageBox"> <view class="imageBox">
<image src="../../static/lawManual/log2.png" mode="widthFix"></image> <image src="../../static/lawManual/log2.png" mode="widthFix"></image>
...@@ -25,35 +25,35 @@ ...@@ -25,35 +25,35 @@
</view> </view>
</view> </view>
<view class="catalogue"> <view class="catalogue">
<view class="h2" style="margin:0 auto;"> <view class="h2" style="margin:0 auto 70rpx 0;">
目录 目录
</view> </view>
<view style="margin-top: 70rpx;"> <view v-for="item in showList" @click="accessLogSave(item.id)">
<a href="#catalogue1">第一篇:保险法</a> <a :href="'#catalogue'+item.id">{{indexList[item.no-1]}}{{item.id==7?'':':'}}{{item.name}}</a>
</view> </view>
<view> <!-- <view @click="accessLogSave(2)" v-if="powerCodes.includes('2') || powerCodes.includes('0')">
<a href="#catalogue2">第二篇:民法典婚姻家庭编</a> <a href="#catalogue2">第二篇:民法典婚姻家庭编</a>
</view> </view>
<view> <view @click="accessLogSave(3)" v-if="powerCodes.includes('3') || powerCodes.includes('0')">
<a href="#catalogue3">第三篇:民法典继承编</a> <a href="#catalogue3">第三篇:民法典继承编</a>
</view> </view>
<view> <view @click="accessLogSave(4)" v-if="powerCodes.includes('4') || powerCodes.includes('0')">
<a href="#catalogue4">第四篇:民法典综合篇</a> <a href="#catalogue4">第四篇:民法典综合篇</a>
</view> </view>
<view> <view @click="accessLogSave(5)" v-if="powerCodes.includes('5') || powerCodes.includes('0')">
<a href="#catalogue5">第五篇:公司法</a> <a href="#catalogue5">第五篇:公司法</a>
</view> </view>
<view> <view @click="accessLogSave(6)" v-if="powerCodes.includes('6') || powerCodes.includes('0')">
<a href="#catalogue6">第六篇:信托法</a> <a href="#catalogue6">第六篇:信托法</a>
</view> </view>
<view> <view @click="accessLogSave(7)" v-if="powerCodes.includes('7') || powerCodes.includes('0')">
<a href="#catalogue7">第六篇(附):(2023.6.1开始生效)信托新法条-归纳总结</a> <a href="#catalogue7">第六篇(附):信托新法条-归纳总结</a>
</view> </view> -->
</view> </view>
<view class="chaptersBox"> <view class="chaptersBox">
<view class="chaptersItem"> <view class="chaptersItem" v-if="powerCodes.includes('1') || powerCodes.includes('0')">
<view class="h2" id="catalogue1"> <view class="h2" id="catalogue1">
一篇 保险法 {{queryNo('1')}}篇 保险法
</view> </view>
<view class="keyPoint"> <view class="keyPoint">
要点:保险利益 要点:保险利益
...@@ -449,9 +449,9 @@ ...@@ -449,9 +449,9 @@
</view> </view>
</view> </view>
</view> </view>
<view class="chaptersItem"> <view class="chaptersItem" v-if="powerCodes.includes('2') || powerCodes.includes('0')">
<view class="h2" id="catalogue2"> <view class="h2" id="catalogue2">
二篇 民法典婚姻家庭编 {{queryNo('2')}}篇 民法典婚姻家庭编
</view> </view>
<view class="keyPoint"> <view class="keyPoint">
要点:夫妻共同财产 要点:夫妻共同财产
...@@ -767,9 +767,9 @@ ...@@ -767,9 +767,9 @@
</view> </view>
</view> </view>
</view> </view>
<view class="chaptersItem"> <view class="chaptersItem" v-if="powerCodes.includes('3') || powerCodes.includes('0')">
<view class="h2" id="catalogue3"> <view class="h2" id="catalogue3">
三篇 民法典继承编 {{queryNo('3')}}篇 民法典继承编
</view> </view>
<view class="keyPoint"> <view class="keyPoint">
要点:继承起算时间与类型 要点:继承起算时间与类型
...@@ -1131,9 +1131,9 @@ ...@@ -1131,9 +1131,9 @@
</view> </view>
</view> </view>
</view> </view>
<view class="chaptersItem"> <view class="chaptersItem" v-if="powerCodes.includes('4') || powerCodes.includes('0')">
<view class="h2" id="catalogue4"> <view class="h2" id="catalogue4">
四篇 民法典综合篇 {{queryNo('4')}}篇 民法典综合篇
</view> </view>
<view class="keyPoint"> <view class="keyPoint">
要点:代位权与保险避债 要点:代位权与保险避债
...@@ -1382,9 +1382,9 @@ ...@@ -1382,9 +1382,9 @@
</view> </view>
</view> </view>
</view> </view>
<view class="chaptersItem"> <view class="chaptersItem" v-if="powerCodes.includes('5') || powerCodes.includes('0')">
<view class="h2" id="catalogue5"> <view class="h2" id="catalogue5">
五篇 公司法 {{queryNo('5')}}篇 公司法
</view> </view>
<view class="keyPoint"> <view class="keyPoint">
要点:法人人格独立与否定 要点:法人人格独立与否定
...@@ -1475,9 +1475,9 @@ ...@@ -1475,9 +1475,9 @@
</view> </view>
</view> </view>
</view> </view>
<view class="chaptersItem"> <view class="chaptersItem" v-if="powerCodes.includes('6') || powerCodes.includes('0')">
<view class="h2" id="catalogue6"> <view class="h2" id="catalogue6">
六篇 信托法 {{queryNo('6')}}篇 信托法
</view> </view>
<view class="keyPoint"> <view class="keyPoint">
要点:信托财产的独立性 要点:信托财产的独立性
...@@ -1582,9 +1582,9 @@ ...@@ -1582,9 +1582,9 @@
</view> </view>
</view> </view>
</view> </view>
<view class="chaptersItem"> <view class="chaptersItem" v-if="powerCodes.includes('7') || powerCodes.includes('0')">
<view class="h2" id="catalogue7"> <view class="h2" id="catalogue7">
六篇(附)<text style="color: red;">(2023.6.1开始生效)</text>信托新法条-归纳总结 {{queryNo('6')}}篇(附)<text style="color: red;">(2023.6.1开始生效)</text>信托新法条-归纳总结
</view> </view>
<view class="keyPoint"> <view class="keyPoint">
要点:明确信托业务分类 要点:明确信托业务分类
...@@ -1592,13 +1592,24 @@ ...@@ -1592,13 +1592,24 @@
<view class="articleItem"> <view class="articleItem">
<image mode="widthFix" src="../../static/lawManual/lawManual3.png" /> <image mode="widthFix" src="../../static/lawManual/lawManual3.png" />
</view> </view>
<view class="articleItem"> <view class="bolder"> 第二点:明确信托业务分类标准和要求 </view> <view class="chaptersItemText"> 信托公司应当以信托目的、信托成立方式、信托财产管理内容为分类维度,<text class="bolder">将信托业务分为资产服务信托、资产管理信托、公益慈善信托三大类共25个业务品种(具体分类要求见附件)。</text> </view> </view> <view class="articleItem">
<view class="bolder">
第二点:明确信托业务分类标准和要求
</view>
<view class="chaptersItemText">
信托公司应当以信托目的、信托成立方式、信托财产管理内容为分类维度,<text
class="bolder">将信托业务分为资产服务信托、资产管理信托、公益慈善信托三大类共25个业务品种(具体分类要求见附件)。</text>
</view>
</view>
<view class="articleItem"> <view class="articleItem">
<view class="chaptersItemText"> <view class="chaptersItemText">
(一)资产服务信托 (一)资产服务信托
</view> </view>
<view class="chaptersItemText"> <view class="chaptersItemText">
资产服务信托是指<text class="bolder">信托公司依据信托法律关系,接受委托人委托,并根据委托人需求为其量身定制财富规划以及代际传承、托管、破产隔离和风险处置等专业信托服务。</text>按照服务内容和特点,分为<text class="bolder">财富管理服务信托</text>、行政管理服务信托、资产证券化服务信托、风险处置服务信托及新型资产服务信托五类、共19个业务品种。 资产服务信托是指<text
class="bolder">信托公司依据信托法律关系,接受委托人委托,并根据委托人需求为其量身定制财富规划以及代际传承、托管、破产隔离和风险处置等专业信托服务。</text>按照服务内容和特点,分为<text
class="bolder">财富管理服务信托</text>、行政管理服务信托、资产证券化服务信托、风险处置服务信托及新型资产服务信托五类、共19个业务品种。
</view> </view>
</view> </view>
<view class="articleItem"> <view class="articleItem">
...@@ -1614,27 +1625,32 @@ ...@@ -1614,27 +1625,32 @@
</view> </view>
<view class="articleItem"> <view class="articleItem">
<view class="chaptersItemText"> <view class="chaptersItemText">
<text class="bolder">1.家族信托。</text>信托公司接受单一自然人委托,或者接受单一自然人及其亲属共同委托,以家庭财富的保护、传承和管理为主要信托目的,提供财产规划、风险隔离、资产配置、子女教育、家族治理、公益慈善事业等定制化事务管理和金融服务。家族信托初始设立时实收信托应当不低于1000万元。受益人应当为委托人或者其亲属,但委托人不得为唯一受益人。家族信托涉及公益慈善安排的,受益人可以包括公益慈善信托或者慈善组织。单纯以追求信托财产保值增值为主要信托目的、具有专户理财性质的信托业务不属于家族信托。 <text
class="bolder">1.家族信托。</text>信托公司接受单一自然人委托,或者接受单一自然人及其亲属共同委托,以家庭财富的保护、传承和管理为主要信托目的,提供财产规划、风险隔离、资产配置、子女教育、家族治理、公益慈善事业等定制化事务管理和金融服务。家族信托初始设立时实收信托应当不低于1000万元。受益人应当为委托人或者其亲属,但委托人不得为唯一受益人。家族信托涉及公益慈善安排的,受益人可以包括公益慈善信托或者慈善组织。单纯以追求信托财产保值增值为主要信托目的、具有专户理财性质的信托业务不属于家族信托。
</view> </view>
</view> </view>
<view class="articleItem"> <view class="articleItem">
<view class="chaptersItemText"> <view class="chaptersItemText">
<text class="bolder">2.家庭服务信托。</text>由符合相关条件的信托公司作为受托人,接受单一自然人委托,或者接受单一自然人及其家庭成员共同委托,提供风险隔离、财富保护和分配等服务。家庭服务信托初始设立时实收信托应当不低于100万元,期限不低于5年,投资范围限于以同业存款、标准化债权类资产和上市交易股票为最终投资标的的信托计划、银行理财产品以及其他公募资产管理产品。 <text
class="bolder">2.家庭服务信托。</text>由符合相关条件的信托公司作为受托人,接受单一自然人委托,或者接受单一自然人及其家庭成员共同委托,提供风险隔离、财富保护和分配等服务。家庭服务信托初始设立时实收信托应当不低于100万元,期限不低于5年,投资范围限于以同业存款、标准化债权类资产和上市交易股票为最终投资标的的信托计划、银行理财产品以及其他公募资产管理产品。
</view> </view>
</view> </view>
<view class="articleItem"> <view class="articleItem">
<view class="chaptersItemText"> <view class="chaptersItemText">
<text class="bolder">3.保险金信托。</text>信托公司接受单一自然人委托,或者接受单一自然人及其家庭成员共同委托,以人身保险合同的相关权利和对应利益以及后续支付保费所需资金作为信托财产设立信托。当保险合同约定的给付条件发生时,保险公司按照保险约定将对应资金划付至对应信托专户,由信托公司按照信托文件管理。 <text
class="bolder">3.保险金信托。</text>信托公司接受单一自然人委托,或者接受单一自然人及其家庭成员共同委托,以人身保险合同的相关权利和对应利益以及后续支付保费所需资金作为信托财产设立信托。当保险合同约定的给付条件发生时,保险公司按照保险约定将对应资金划付至对应信托专户,由信托公司按照信托文件管理。
</view> </view>
</view> </view>
<view class="articleItem"> <view class="articleItem">
<view class="chaptersItemText"> <view class="chaptersItemText">
<text class="bolder">4.特殊需要信托。</text>信托公司接受单一自然人委托,或者接受单一自然人及其亲属共同委托,以满足和服务特定受益人的生活需求为主要信托目的,管理处分信托财产。 <text
class="bolder">4.特殊需要信托。</text>信托公司接受单一自然人委托,或者接受单一自然人及其亲属共同委托,以满足和服务特定受益人的生活需求为主要信托目的,管理处分信托财产。
</view> </view>
</view> </view>
<view class="articleItem"> <view class="articleItem">
<view class="chaptersItemText"> <view class="chaptersItemText">
<text class="bolder">5.遗嘱信托。</text>单一委托人(立遗嘱人)为实现对遗产的计划,以预先在遗嘱中设立信托条款的方式,在遗嘱及相关信托文件中明确遗产的管理规划,包括遗产的管理、分配、运用及给付等,并于遗嘱生效后,由信托公司依据遗嘱中信托条款的内容,管理处分信托财产。 <text
class="bolder">5.遗嘱信托。</text>单一委托人(立遗嘱人)为实现对遗产的计划,以预先在遗嘱中设立信托条款的方式,在遗嘱及相关信托文件中明确遗产的管理规划,包括遗产的管理、分配、运用及给付等,并于遗嘱生效后,由信托公司依据遗嘱中信托条款的内容,管理处分信托财产。
</view> </view>
</view> </view>
<view class="articleItem"> <view class="articleItem">
...@@ -1656,28 +1672,161 @@ ...@@ -1656,28 +1672,161 @@
</view> </view>
</view> </view>
<view class="backTopBox" @click="c_backTop" v-if="isShowBackTop"> <view class="backTopBox" @click="c_backTop" v-if="isShowBackTop">
<image mode="widthFix" src="../../static/lawManual/backtop.png" ></image> <image mode="widthFix" src="../../static/lawManual/backtop.png"></image>
</view>
<view>
<uni-popup ref="loginPopup">
<view class="popupBox">
</view>
</uni-popup>
</view> </view>
</view> </view>
<view v-else style="text-align: center;margin-top: 40vh;font-size: 50rpx;"> <view v-else style="text-align: center;margin-top: 40vh;font-size: 50rpx;">
请在微信浏览器中打开 请在微信浏览器中打开
</view> </view>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { ref, onMounted } from 'vue'; import { ref, onMounted } from "vue";
import {onPageScroll} from "@dcloudio/uni-app"; import { onPageScroll } from "@dcloudio/uni-app";
import api from "@/api/api"
import { baseURL, apiURL, cffpURL } from "@/environments/environment";
let loginPopup = ref();
let isShow = ref(false); let isShow = ref(false);
let isShowBackTop = ref(false); let isShowBackTop = ref(false);
let sessionId = ref('');
let powerCodes= ref([]);
let showList= ref([]);
const c_backTop = ()=>{ let indexList= ref(['一','二','三','四','五','六','七']);
let menuLists = ref([
{id:1,name:'保险法',no:2},
{id:2,name:'民法典婚姻家庭编',no:1},
{id:3,name:'民法典继承编',no:3},
{id:4,name:'民法典综合篇',no:4},
{id:5,name:'公司法',no:5},
{id:6,name:'信托法',no:6},
{id:7,name:'(附):信托新法条-归纳总结',no:7}
])
let sum1= ref(1);
const c_backTop = () => {
let systemInfo = uni.getSystemInfoSync();
uni.pageScrollTo({ uni.pageScrollTo({
scrollTop: 0, scrollTop: systemInfo.screenHeight,
duration: 200 duration: 200
}); });
} }
//发送验证码
const verificationCode = () => {
api.verificationCode({ "mobileNo": "17520202940", "type": "1", "source": "cffp" }).then(res => {
if (res['success']) {
//开始计时
}
});
}
//登录
const loginVerification = () => {
api.loginVerification({ "loginType": 3, "mobile": "17520202940", "code": "643947", "password": null, "loginSystem": "1" }).then((res) => {
if (res['success']) {
uni.setStorageSync('isLogin', '1');
uni.setStorageSync('loginType', 'codelogin');
uni.setStorageSync('cffp_userId', String(res['data']['userId']));
} else {
uni.showToast({
title: res['message'],
duration: 2000,
icon: 'none'
})
}
})
}
//保存访问记录
const accessLogSave = (type) => {
api.accessLogSave({ "userId": null, "sessionId": sessionId.value, "accessUrl": cffpURL + "/myPackageA/lawManual/lawManual", "accessType": type }).then(res => {
if (res['success']) {
}
});
}
//获取权限
const powerQuery = () => {
api.powerQuery({"systemType": "1","userId": '1',"sessionId": sessionId.value}).then(res => {
if (res['success']) {
powerCodes.value=res['data']['powerCodes'];
// powerCodes.value=['3','4','5'];
let arr =[];
for(let i=0;i<menuLists.value.length;i++){
for(let j=0;j<powerCodes.value.length;j++){
if(menuLists.value[i].id==powerCodes.value[j]){
menuLists.value[i].no = j+1;
arr.push(menuLists.value[i])
}
}
}
let arry1=arr.filter(item => item.id==7);
let arry2=arr.filter(item => item.id==6);
if(arry1.length>0 && arry2.length>0){
arry1[0].no=arry2[0].no;
}
showList.value = arr;
console.log(showList.value);
if(powerCodes.value.length>0 || powerCodes.value.includes(0)){
accessLogSave(0);
}
}
});
}
const queryNo = (id)=>{
for(let i =0;i<showList.value.length;i++){
if(showList.value[i].id==id){
return indexList.value[showList.value[i].no-1];
}
}
}
const init = () => {
let storageSessionId = uni.getStorageSync('sessionId');
if (storageSessionId) {
sessionId.value = storageSessionId;
} else {
storageSessionId =uuid();
sessionId.value = storageSessionId;
uni.setStorageSync('sessionId', storageSessionId);
}
powerQuery();
}
const uuid=()=> {
const len = null; //32长度
let radix = 16; //16进制
const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
let uuid = [], i;
radix = radix || chars.length;
if (len) {
for (i = 0; i < len; i++) {
uuid[i] = chars[0 | Math.random() * radix];
}
} else {
let r;
uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
uuid[14] = '4';
for (i = 0; i < 36; i++) {
if (!uuid[i]) {
r = 0 | Math.random() * 16;
uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
}
}
}
return 'CFFP-'+uuid.join('');
}
onMounted(() => { onMounted(() => {
document.oncontextmenu = function () { return false }//屏蔽右键菜单 document.oncontextmenu = function () { return false }//屏蔽右键菜单
document.onpaste = function () { return false }//屏蔽粘贴 document.onpaste = function () { return false }//屏蔽粘贴
document.oncopy = function () { return false }//屏蔽复制 document.oncopy = function () { return false }//屏蔽复制
...@@ -1686,30 +1835,43 @@ ...@@ -1686,30 +1835,43 @@
// let uniPlatform = uni.getSystemInfoSync(); // let uniPlatform = uni.getSystemInfoSync();
var ua = window.navigator.userAgent.toLowerCase(); var ua = window.navigator.userAgent.toLowerCase();
isShow.value = ua.match(/MicroMessenger/i) == 'micromessenger'; isShow.value = ua.match(/MicroMessenger/i) == 'micromessenger';
if (isShow.value) {
init();
}
}) })
onPageScroll(e=>{ onPageScroll(e => {
if(e.scrollTop>1000){ if (e.scrollTop > 1000) {
isShowBackTop.value=true; isShowBackTop.value = true;
}else{ } else {
isShowBackTop.value=false; isShowBackTop.value = false;
} }
}) })
</script> </script>
<style lang="scss"> <style lang="scss">
.container { .container {
background-color: #fff;
position: relative;
padding-bottom: 50rpx; padding-bottom: 50rpx;
background-image: url("../../static/lawManual/log.png"); background-image: url("../../static/lawManual/log.png");
background-size: 80% auto; background-size: 50%;
background-repeat: no-repeat; background-position: 50%;
background-repeat: repeat-y;
color: #000; color: #000;
font-size: 30rpx; font-size: 30rpx;
letter-spacing: 1rpx; letter-spacing: 1rpx;
.backTopBox{
.popupBox {
padding: 330rpx 320rpx;
background: linear-gradient(180deg, rgba(246, 232, 219, 1) 0%, rgba(255, 255, 255, 1) 100%);
}
.backTopBox {
position: fixed; position: fixed;
right: 20rpx; right: 20rpx;
bottom: 400rpx; bottom: 400rpx;
background-color: rgba(207, 207, 207, 1);; background-color: rgba(207, 207, 207, 1);
;
border-radius: 200rpx; border-radius: 200rpx;
width: 65rpx; width: 65rpx;
height: 65rpx; height: 65rpx;
...@@ -1720,22 +1882,26 @@ ...@@ -1720,22 +1882,26 @@
} }
.titleBox{
.titleBox {
height: 100vh; height: 100vh;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
background: linear-gradient(180deg, rgba(246, 232, 219, 1) 0%,rgba(255, 255, 255, 1) 100%); background: linear-gradient(180deg, rgba(246, 232, 219, 1) 0%, rgba(255, 255, 255, 1) 100%);
letter-spacing: 8rpx; letter-spacing: 8rpx;
.imageBox { .imageBox {
width: 320rpx; width: 320rpx;
margin:50rpx auto; margin: 50rpx auto;
} }
.imageBox2 { .imageBox2 {
width: 150rpx; width: 150rpx;
margin:210rpx auto; margin: 210rpx auto;
} }
} }
.catalogue { .catalogue {
height: 100vh; height: 100vh;
display: flex; display: flex;
...@@ -1744,41 +1910,50 @@ ...@@ -1744,41 +1910,50 @@
font-size: 36rpx; font-size: 36rpx;
padding: 0 65rpx; padding: 0 65rpx;
flex-direction: column; flex-direction: column;
view { view {
margin-top: 27rpx; margin-top: 27rpx;
} }
} }
.chaptersBox { .chaptersBox {
padding: 0 35rpx; padding: 0 35rpx;
} }
.h1 { .h1 {
font-size: 56rpx; font-size: 56rpx;
font-weight: bold; font-weight: bold;
text-align: center; text-align: center;
margin: 20rpx; margin: 20rpx;
} }
.h2 { .h2 {
font-size: 42rpx; font-size: 42rpx;
font-weight: bold; font-weight: bold;
} }
.keyPoint { .keyPoint {
font-size: 34rpx; font-size: 34rpx;
color: red; color: red;
font-weight: bold; font-weight: bold;
margin: 40rpx 0 15rpx 0; margin: 40rpx 0 15rpx 0;
} }
.bolder { .bolder {
font-weight: bold; font-weight: bold;
font-size: 32rpx; font-size: 32rpx;
} }
.chaptersItemText { .chaptersItemText {
margin-bottom: 10rpx; margin-bottom: 10rpx;
} }
.articleItem { .articleItem {
margin-bottom: 30rpx; margin-bottom: 30rpx;
} }
.chaptersItem { .chaptersItem {
margin-bottom: 8vh; margin-bottom: 8vh;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment