feat:性能优化

This commit is contained in:
2026-07-25 09:12:36 +08:00
parent 3eba959b48
commit 9ab39d2aec
138 changed files with 232 additions and 1511 deletions
+43
View File
@@ -0,0 +1,43 @@
import request from '@/utils/request.js'; // 引入封装的方法
// 是否已签
export function isSignContract() {
// return request.post('/common/getSmsCode',qs.stringify(params));
return request({
url: "/signature/isSignContract",
method: "get",
});
}
export function getContractList() {
// return request.post('/common/getSmsCode',qs.stringify(params));
return request({
url: "/signature/getSignContractList",
method: "get",
});
}
export function contractInfo(data) {
// return request.post('/common/getSmsCode',qs.stringify(params));
return request({
url: "/signature/getSignContractInfo",
method: "get",
data
});
}
export function quickens(data) {
// return request.post('/common/getSmsCode',qs.stringify(params));
return request({
url: "/finance/getQuickens",
method: "get",
data
});
}
export function fileUrls(data) {
// return request.post('/common/getSmsCode',qs.stringify(params));
return request({
url: "/signature/describeFileUrls",
method: "POST",
cha:'1',
data
});
}
@@ -1,55 +0,0 @@
<template>
<up-popup :show="show" @close="close" @open="open" mode="center" :round="10">
<view class="qrcode-preview" @click.stop="close" v-if="qrcodeUrl">
<up-qrcode :val="qrcodeUrl" :key="key"></up-qrcode>
</view>
</up-popup>
</template>
<script>
export default {
props: {
qrcodeVal: {
type: String,
default: "",
},
},
data() {
return {
show: false,
qrcodeUrl: "",
key: 0,
};
},
methods: {
open() {
this.show = true;
this.$nextTick(() => {
this.qrcodeUrl = this.qrcodeVal;
this.key++;
console.log('qrcodeUrl',this.qrcodeUrl);
});
},
close() {
this.show = false;
this.qrcodeUrl = "";
},
},
};
</script>
<style lang="scss" scoped>
.qrcode-preview {
width: 440rpx;
height: 440rpx;
background: #ffffff;
border-radius: 8rpx;
// padding: 40rpx;
box-sizing: border-box;
display: flex;
justify-content: center;
align-items: center;
}
</style>
+4 -4
View File
@@ -27,9 +27,9 @@
<up-input placeholder="请输入密码" border="surround" v-model="form.pass" :customStyle="inputCss"
:type="loginPasswordIsShow ? 'text' : 'password'">
<template #suffix style="margin-right: 10rpx;">
<up-image v-if="loginPasswordIsShow" src="/static/login/show.png" width="20" height="20" bgColor="#f1f6ff00"
<up-image v-if="loginPasswordIsShow" src="/pages/login_package/static/login/show.png" width="20" height="20" bgColor="#f1f6ff00"
@click="loginPasswordIsShow = false;"></up-image>
<up-image v-else src="/static/login/hidden.png" width="20" height="20" bgColor="#f1f6ff00"
<up-image v-else src="/pages/login_package/static/login/hidden.png" width="20" height="20" bgColor="#f1f6ff00"
@click="loginPasswordIsShow = true;"></up-image>
</template>
</up-input>
@@ -39,9 +39,9 @@
<up-input placeholder="请输入密码" border="surround" v-model="form.passOne" :customStyle="inputCss"
:type="loginPassword2IsShow ? 'text' : 'password'">
<template #suffix style="margin-right: 10rpx;">
<up-image v-if="loginPassword2IsShow" src="/static/login/show.png" width="20" height="20" bgColor="#f1f6ff00"
<up-image v-if="loginPassword2IsShow" src="/pages/login_package/static/login/show.png" width="20" height="20" bgColor="#f1f6ff00"
@click="loginPassword2IsShow = false;"></up-image>
<up-image v-else src="/static/login/hidden.png" width="20" height="20" bgColor="#f1f6ff00"
<up-image v-else src="/pages/login_package/static/login/hidden.png" width="20" height="20" bgColor="#f1f6ff00"
@click="loginPassword2IsShow = true;"></up-image>
</template>
</up-input>
@@ -175,7 +175,7 @@ import { getVcoinLocked, getVcoinReleaseLog, getUserExpendTbcList } from '@/api/
import Header from '@/components/common/header.vue';
import TopSafe from '@/components/common/top-safe.nvue'
import DownPopup from '@/components/common/down-popup.vue';
import { quickens } from '@/api/contract.js'
import { quickens } from '@/pages/rwa_package/api/contract.js'
import Decimal from 'decimal.js';
import func from '@/utils/func.js'
@@ -349,7 +349,7 @@ export default {
if (this.type) {
//查看
uni.navigateTo({
url: `/pages/rwa_package/dongjian/check`
url: `/pages/rwa_package/insights/check`
})
} else {
//去签署
@@ -40,7 +40,7 @@ import { getUserInfo } from '@/api/auth.js';
import Header from '@/components/common/header.vue';
import TopSafe from '@/components/common/top-safe.nvue'
import ContractItem from './components/contract-item.vue'
import { getContractList, fileUrls } from '@/api/contract.js'
import { getContractList, fileUrls } from '@/pages/rwa_package/api/contract.js'
import func from '@/utils/func.js';
export default {
@@ -21,7 +21,7 @@ import Header from '@/components/common/header.vue';
import TopSafe from '@/components/common/top-safe.nvue'
import ContractItem from './components/contract-item.vue'
import DownPopup from '@/components/common/down-popup.vue';
import { getContractList, isSignContract, } from '@/api/contract.js'
import { getContractList, isSignContract, } from '@/pages/rwa_package/api/contract.js'
import { getSignUrl, getMiniProgramSignUrl, signContract } from '@/api/order.js';
import func from '@/utils/func.js';
@@ -101,7 +101,7 @@ export default {
if (this.type) {
//查看
uni.navigateTo({
url: `/pages/rwa_package/dongjian/check`
url: `/pages/rwa_package/insights/check`
})
} else {
//去签署
File diff suppressed because one or more lines are too long
+4 -4
View File
@@ -16,7 +16,7 @@
<view class="btn-view">
<view class="left-btn" @click="onLeft">
<up-image
src="/static/rwa/tx.png"
src="/pages/rwa_package/static/rwa/tx.png"
style="margin-right: 5rpx; margin-top: 2rpx"
width="18"
height="18"
@@ -30,7 +30,7 @@
</view>
<view class="right-btn" @click="onRight">
<up-image
src="/static/rwa/jl.png"
src="/pages/rwa_package/static/rwa/jl.png"
style="margin-right: 5rpx; margin-top: 2rpx"
width="18"
height="18"
@@ -60,7 +60,7 @@
</view>
<view class="add-address" @click="onAdd">
<up-image
src="/static/rwa/add.png"
src="/pages/rwa_package/static/rwa/add.png"
style="margin-right: 5rpx; margin-top: 2rpx"
width="12"
height="12"
@@ -108,7 +108,7 @@
<view class="add-address-tip">
<up-image
src="/static/common/tips.png"
src="/pages/rwa_package/static/tips.png"
width="16"
height="16"
bgColor="#f1f6ff00"
@@ -1,287 +0,0 @@
<template>
<view class="rwa_withdrawal">
<Header leftTitle="共享计划终止" left-path-type="navigateTo" left-path="/pages/rwa_package/rwa/rwa" rightTitle="记录"
rightPath="/pages/rwa_package/rwa_withdrawal_log/rwa_withdrawal_log?back=withdrawal" rightPathType="navigateTo" />
<view class="rwa_withdrawal_content">
<view class="_content">
<view class="_content_usdt">
<view>{{ categotyObj.name || 'USDT' }}</view>
<view>{{ categotyObj.curAmount || 0 }}</view>
</view>
<view class="_content_item">
<view class="_content_item_title">行权金额</view>
<up-input placeholder="请输入行权金额" border="surround" v-model="form.amount" :customStyle="inputCss"></up-input>
<view class="_content_item_msg">当前可行权余额 {{ categotyObj.curAmount || 0 }} {{ categotyObj.name || 'USDT' }}
</view>
</view>
<view class="_content_item" @click="accountShowCheck(true)">
<view class="_content_item_title">行权账户</view>
<view class="_content_item_account">
<view v-if="accountName">{{ accountName }}</view>
<view v-else style="color: #30313363;">请选择行权账户</view>
<up-image src="/static/common/right.png" width="20" height="20" bgColor="#f1f6ff00" />
</view>
</view>
<view class="_content_item">
<view class="_content_item_title">交易密码<text class="_content_item_setting_pwd"
@click="jumpSettingPwd">《共享计划终止协议》</text></view>
<up-input placeholder="请输入交易密码" border="surround" v-model="form.password" :customStyle="inputCss"></up-input>
</view>
<view class="_content_item">
<view class="_content_item_title">备注</view>
<up-input placeholder="请输入备注(可选)" border="surround" v-model="form.remark" :customStyle="inputCss"></up-input>
</view>
</view>
<view class="add_but_css" @click="addWithdrawal">
提交
</view>
</view>
<DownPopup :show="tipsShow"
title="股权交割协议"
:contentText="text"
articleTitle="股权交割协议"
ok="我已知晓"
@cancel="tipsShow = false"
@ok="tipsShow = false"
></DownPopup>
<up-picker :show="accountShow" :columns="accountOption" keyName="account" itemHeight="34" @confirm="accountConfirm"
:loading="accountLoading" @close="accountShowCheck(false)" @cancel="accountShowCheck(false)"></up-picker>
<up-toast ref="uToastRef"></up-toast>
</view>
</template>
<script>
import Header from '@/components/header.vue';
import { getSupportBank } from '@/api/common.js';
import { getAcctBalance, exchTransfer, getExchUsers } from '@/api/finance.js';
import DownPopup from '@/components/common/down-popup.vue'
import CryptoJS from 'crypto-js';
export default {
components: { Header,DownPopup },
data() {
return {
categotyObj: {},// 可提现金额
inputCss: {
"height": '80rpx',
"background": "#F5F5F5",
"border-radius": "20rpx",
"border": "0rpx",
"padding-left": "16px",
},
form: {
category: "vcoin",
amount: '',
password: '',
acctIdtipsShow: '',
remark: '',
},
accountName: null,
accountShow: false,
accountOption: [],
accountLoading: false,
tipsShow:false,
text:`甲方(委托人):信任桥用户
乙方(受托人): 信任桥(深圳)网络科技有限公司
统一社会信用代码:91440300MAD3XHDP7C
鉴于条款
1. 甲乙双方已签署《消费型合伙人合作协议》《分红权代持协议》及《承诺书》(以下统称“原协议”),甲方通过购买TB信任桥商城产品取得分红权代持资格。
2. 为规范甲方对“TBC”(TrustBridge Coin,信任桥数字权益凭证)的行权行为,明确双方权利义务,现就甲方将TBC转移至交易所变现事宜达成补充约定。
第一条 定义与行权规则
1. TBC行权变现:指甲方向乙方申请将其持有的TBC通过非关联交易所进行行权的行为。
2. 自动失效条款:
 若甲方将TBC转移至非关联交易所进行行权变现,视为甲方单方终止原协议项下所有权利义务。
 甲方行权变现后,立即丧失以下权益:
(1)TB信任桥商城产品分红权;
(2)所有未兑现的分红收益;
第二条 协议终止与责任划分
1. 协议终止:
 甲方触发行权变现条件后,原协议、《分红权代持协议》及《承诺书》自动终止,双方权利义务关系终结。
 乙方有权立即冻结甲方账户,停止后续分红发放。
2. 责任承担:
 甲方承诺行权变现行为合法合规,若因行权行为导致乙方或关联方遭受行政处罚、声誉损失或第三方索赔,甲方应承担全部赔偿责任。
 乙方对甲方行权后的资金流向不承担监管责任。
第三条 特别提示与风险告知
1. 风险警示:
 TBC行权变现可能涉及市场波动、汇率风险及合规风险,甲方应自行承担全部后果。
 乙方不对TBC的流通性、价值稳定性作出任何承诺。
2. 合规要求:
 甲方承诺行权变现资金用途合法,不得用于非法活动或洗钱行为。
 若监管部门要求追溯资金来源或用途,甲方应全力配合并提供证明材料。
第四条 生效条件
1. 本补充协议自甲方点击确认后生效,与原协议具有同等法律效力。
2. 本协议未尽事宜,以原协议约定为准;与原协议冲突的,以本协议为准。`
};
},
onShow() {
this.getAcctBalance();
},
methods: {
// 查询余额
async getAcctBalance() {
const resp = await getAcctBalance();
let data = {};
if (resp && resp.bizcode === 100) {
if (resp.data) {
resp.data.map(item => {
// 交易币
if (item.categoty === "vcoin") {
data = item;
}
})
}
}
this.categotyObj = data;
},
async addWithdrawal() {
this.form.password = CryptoJS.MD5(this.form.password).toString()
const params = this.form;
if (!params.amount) {
this.$refs.uToastRef.show({
type: 'error',
message: "请输入行权金额",
});
return;
}
if (!params.acctId) {
this.$refs.uToastRef.show({
type: 'error',
message: "请选择行权账户",
});
return;
}
if (!params.password) {
this.$refs.uToastRef.show({
type: 'error',
message: "请输入交易密码",
});
return;
}
console.log("params", params);
const resp = await exchTransfer(params);
if (resp && resp.bizcode === 100) {
this.$refs.uToastRef.show({
type: 'success',
message: "提交成功",
});
setTimeout(() => {
uni.navigateTo({
url: '/pages/rwa_package/rwa/rwa',
})
}, 2000)
}
},
// 选择账户的弹框
async accountShowCheck(status) {
if (status) {
this.accountLoading = true;
const params = {
page: 1,
pageSize: 99,
}
const resp = await getExchUsers(params);
if (resp && resp.bizcode === 100) {
this.accountOption = [resp.data.entitys] || [];
}
this.accountLoading = false;
} else {
this.accountOption = [[]];
}
this.accountShow = status;
},
// 提交
accountConfirm(e) {
const {
columnIndex,
value,
values,
index,
} = e;
if (!value || value.length === 0) {
this.$refs.uToastRef.show({
type: 'error',
message: "请先选择账户",
});
return;
}
const data = value[0];
this.form.acctId = data.id;
this.accountName = data.account;
this.accountShowCheck(false);
},
// 设置交易密码
jumpSettingPwd() {
this.tipsShow = true;
// uni.navigateTo({
// url: '/pages/mine_package/mine_transaction_password/mine_transaction_password',
// })
}
}
}
</script>
<style lang="scss">
.rwa_withdrawal {
background: #F5F5F5;
.rwa_withdrawal_content {
padding: 20rpx;
height: calc(100vh - 198rpx);
._content {
padding: 30rpx;
background: #FFFFFF;
border-radius: 24rpx;
margin-bottom: 60rpx;
._content_usdt {
display: flex;
justify-content: space-between;
font-weight: bold;
font-size: 30rpx;
color: #333333;
border-bottom: 2rpx solid #EEEEEE;
padding: 0 0 20rpx;
}
._content_item {
margin-top: 30rpx;
._content_item_title {
margin-bottom: 20rpx;
font-weight: bold;
font-size: 30rpx;
color: #333333;
}
._content_item_setting_pwd {
color: $app-zt-color;
cursor: pointer;
text-decoration: underline;
font-size: 26rpx;
margin-left: 10rpx;
}
._content_item_msg {
font-weight: 500;
font-size: 24rpx;
color: #808080;
margin-top: 16rpx;
}
._content_item_account {
display: flex;
justify-content: space-between;
align-items: center;
background: #F8F8F8;
border-radius: 20rpx;
padding: 30rpx 20rpx;
font-weight: 500;
font-size: 28rpx;
color: #333333;
}
}
}
}
}
</style>
@@ -13,7 +13,7 @@
<!-- <view class="_content_item_no _content_item_no_buto" v-if="item.exchNo">股东流水号:{{item.exchNo}}</view> -->
<view class="_content_item_but">
<view class="_content_item_left">
<up-image src="/static/rwa/account.png" width="40" height="40" bgColor="#f1f6ff00" />
<up-image src="/pages/rwa_package/static/rwa/account.png" width="40" height="40" bgColor="#f1f6ff00" />
<view class="_content_item_left_">
<view class="_content_item_left_title">{{ item.name }}-{{ item.account }}</view>
<view class="_content_item_left_val">{{
@@ -40,7 +40,7 @@
`https://chaininsight.antdigital.com/search?unionId=2647&projectName=VBGAKNJB&content=${item.antChainHash}`
}}
</view>
<up-image style="margin-left: 8rpx" src="/static/rwa/copy.png" width="12" @click="
<up-image style="margin-left: 8rpx" src="/pages/rwa_package/static/rwa/copy.png" width="12" @click="
copyData(
`https://chaininsight.antdigital.com/search?unionId=2647&projectName=VBGAKNJB&content=${item.antChainHash}`
)
@@ -91,7 +91,7 @@
RWA_STATUS,
getValue
} from "@/utils/enumUtils.js";
import QrcodePreview from "@/pages/rwa_package/component/qrcode-preview.vue";
import QrcodePreview from "@/components/qrcode-preview.vue";
export default {
components: {
Header,
+2 -3
View File
@@ -27,7 +27,6 @@
<MyBtn class="mt-48" @ok="onOutLogin" text="退出登录"></MyBtn>
</view>
<up-toast ref="uToastRef"></up-toast>
<!-- 腾讯电子签H5 → 集成到UniApp -->
</view>
</template>
@@ -274,10 +273,10 @@ export default {
url = '/pages/rwa_package/accountSafe/accountSafe'
break;
case 1:
url = '/pages/rwa_package/dongjian/index'
url = '/pages/rwa_package/insights/index'
break;
case 2:
url = '/pages/rwa_package/zhaopian/zhaopian'
url = '/pages/rwa_package/store-photo/store-photo'
break;
case 3:
url = '/pages/mine_package/mine_user_agreement/mine_user_agreement'
@@ -26,12 +26,12 @@
<!-- 原来单个 v-for 替换成两列 -->
<view class="mescrollUniView">
<view class="fall-col">
<PingItem v-for="(item, i) in leftList" :key="item.id" :obj="item" @ok="onJumpShop"
class="ping-item" />
<ParityProductItem v-for="(item, i) in leftList" :key="item.id" :obj="item" @ok="onJumpShop"
class="parity-product-item" />
</view>
<view class="fall-col">
<PingItem v-for="(item, i) in rightList" :key="item.id" :obj="item" @ok="onJumpShop"
class="ping-item" />
<ParityProductItem v-for="(item, i) in rightList" :key="item.id" :obj="item" @ok="onJumpShop"
class="parity-product-item" />
</view>
</view>
</mescroll-uni>
@@ -50,11 +50,11 @@ import { getAcctBalance } from "@/api/finance.js";
import MescrollMixin from "@/components/mescroll-uni/mescroll-mixins.js";
import MescrollUni from "@/components/mescroll-uni/mescroll-uni.vue";
import PingItem from "@/components/shop/ping-item.vue";
import ParityProductItem from "@/components/shop/parity-product-item.vue";
export default {
mixins: [MescrollMixin],
components: { Header, TopSafe, MyBtn, PingItem, MescrollUni, },
components: { Header, TopSafe, MyBtn, ParityProductItem, MescrollUni, },
data() {
return {
dataList: [],
@@ -78,13 +78,13 @@
</view>
<view class="setting-view">
<YouItem
<PreferredProductItem
@ok="onJumpShop"
style="margin-bottom: 24rpx"
:obj="item"
v-for="(item, index) in dataList"
:key="index"
></YouItem>
></PreferredProductItem>
</view>
<up-toast ref="uToastRef"></up-toast>
</view>
@@ -94,12 +94,12 @@
import shopHeader from "@/components/common/shopHeader.vue";
import TopSafe from "@/components/common/top-safe.nvue";
import MyBtn from "@/components/common/my-btn.vue";
import YouItem from "@/components/shop/you-item.vue";
import PreferredProductItem from "@/components/shop/preferred-product-item.vue";
import { searchList } from "@/api/product.js";
import { getCarouselImage } from "@/api/common.js";
export default {
components: { shopHeader, TopSafe, MyBtn, YouItem },
components: { shopHeader, TopSafe, MyBtn, PreferredProductItem },
data() {
return {
dataList: [],
@@ -132,7 +132,7 @@ export default {
},
jumpSearch() {
uni.navigateTo({
url: "/pages/rwa_package/dongjian/search",
url: "/pages/rwa_package/insights/search",
});
},
// 跳转到商品详情
+3 -3
View File
@@ -10,7 +10,7 @@
</Header>
<view class="setting-view">
<view class="name-box" v-if="dataList.length">
<PingItem @ok="onJumpShop" style="margin-top:24rpx" :obj="item" v-for="(item,index) in dataList" :key="index"></PingItem>
<ParityProductItem @ok="onJumpShop" style="margin-top:24rpx" :obj="item" v-for="(item,index) in dataList" :key="index"></ParityProductItem>
</view>
<view class="bottom-scroll-no " v-else>
<text class="text-32" >暂无数据</text>
@@ -27,9 +27,9 @@ import MyBtn from '@/components/common/my-btn.vue'
import { searchList } from '@/api/product.js';
import { getCascadeCategory } from '@/api/common.js';
import PingItem from "@/components/shop/ping-item.vue";
import ParityProductItem from "@/components/shop/parity-product-item.vue";
export default {
components: { Header, TopSafe,MyBtn,PingItem },
components: { Header, TopSafe,MyBtn,ParityProductItem },
data() {
return {
dataList:[
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 647 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 518 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1008 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

@@ -48,7 +48,7 @@ export default {
},
onJump(index){
uni.navigateTo({
url:`/pages/rwa_package/zhao/zhao?type=${index}`
url:`/pages/rwa_package/business-license/business-license?type=${index}`
})
}
}