对接接口完成

This commit is contained in:
itgaojian163 2025-04-09 11:31:24 +08:00
parent a2c305591f
commit 3b6b3d8396
34 changed files with 443 additions and 264 deletions

83
app.js
View File

@ -1,47 +1,54 @@
// app.js
import {
copyrightUrl
} from './net/http'
App({
globalData: {
userInfo: null,
isAdPopupVisible: false
},
onLaunch() {
// 展示本地存储能力
const logs = wx.getStorageSync('logs') || []
logs.unshift(Date.now())
wx.setStorageSync('logs', logs)
// 登录
wx.login({
success: res => {
// 发送 res.code 到后台换取 openId, sessionKey, unionId
}
})
// 全局事件对象
// this.eventBus = {}
// // 监听事件
// this.on = function (eventName, callback) {
// if (!this.eventBus[eventName]) {
// this.eventBus[eventName] = []
// }
// this.eventBus[eventName].push(callback)
// }
// // 触发事件
// this.emit = function (eventName, data) {
// const callbacks = this.eventBus[eventName]
// if (callbacks) {
// callbacks.forEach(callback => {
// callback(data)
// })
// }
// }
// this.initSse()
},
// 显示广告弹窗
showAdPopup(imageUrl) {
this.globalData.isAdPopupVisible = true;
this.globalData.adImageUrl = imageUrl;
// 通知所有页面更新弹窗状态
this.updateAdPopup();
},
// 关闭广告弹窗
hideAdPopup() {
this.globalData.isAdPopupVisible = false;
this.updateAdPopup();
},
// 更新所有页面的弹窗状态
updateAdPopup() {
console.log("显示广告")
const pages = getCurrentPages();
pages.forEach(page => {
if (page.setData) {
page.setData({
isAdPopupVisible: this.globalData.isAdPopupVisible,
adImageUrl: this.globalData.adImageUrl
});
}
});
}
// initSse() {
// const req = wx.request({
// url: copyrightUrl + '/api/sse/connect',
// method: 'GET',
// enableChunked: true,
// header: {
// 'Cache-Control': 'no-cache',
// 'Accept': 'text/event-stream'
// },
// success: (res) => {
// console.log('SSE 连接成功', res);
// },
// fail: (err) => {
// console.error('SSE 连接失败', err);
// }
// })
// const listener = data => {
// // data为返回的数据可以在此对数据进行处理
// console.log(data)
// }
// // 监听服务端返回的数据
// req.onChunkReceived(listener)
// }
})

View File

@ -2,8 +2,6 @@
"pages": [
"pages/login/login",
"pages/index/index",
"pages/treaty/privacy/privacy",
"pages/treaty/service/service",
"pages/mine/mineIndex/mine",
"pages/copyright/createProjectInfo/createProjectInfo",
"pages/copyright/createBuy/createBuy",

View File

@ -14,7 +14,8 @@ const apiPath = {
createProject: '/api/proj/create-quick', //快速创建项目
reCreate: '/api/proj/generate/proj-id/${projId}', //重新生成
proLangList: '/api/env/custom/list-active-lang', //项目语言
ruleData: '/app/agreementportal/getrelease/89c4ca41-a44e-4ae2-bad3-6fa6536dd453', //使用规则 project="operator"
ruleData: '/app/agreementportal/getrelease/{id}', //使用规则 project="operator"
investDetail: "/news-content/listpage?rows=1&page=1", //投资优势
}
class ProjectService {
//项目列表
@ -62,8 +63,12 @@ class ProjectService {
return request(apiPath.proLangList, "GET")
}
//获取使用规则数据
static doGetRuleDate() {
return request(apiPath.ruleData, "GET", null, null, "operator")
static doGetRuleDate(id) {
const path = apiPath.ruleData.replace('{id}', id)
return request(path, "GET", null, null, "online", false)
}
static doGetInvestDetail(data) {
return request(apiPath.investDetail, "GET", data)
}
}

View File

@ -31,8 +31,8 @@ function request(url, method = "GET", data = {}, params = {}, project = "copyrig
baseUrl = operatorUrl
} else if (project == 'copyright') {
baseUrl = copyrightUrl
} else {
baseUrl = copyrightUrl
} else if(project=='online') {
baseUrl = 'https://www.aimzhu.com/operator'
}
return new Promise(function (resolve, reject) {
wx.request({

View File

@ -20,6 +20,14 @@ Page({
wx.setNavigationBarTitle({
title: '创建软著',
})
wx.setNavigationBarColor({
frontColor: '#000000', // 必写项,字体颜色仅支持#ffffff和#000000
backgroundColor: '#F0F0F0', // 传递的颜色值,仅支持十六进制颜色
animation: { // 可选项
duration: 500,
timingFunc: 'easeIn'
}
})
this.doGetPrice()
},
//是否加急

View File

@ -1,3 +1,9 @@
page {
background: linear-gradient(to bottom, #F0F0F0, #FFFFFF);
background-size: 100% 100vh;
background-repeat: no-repeat;
}
.custom-wx-checkbox .wx-checkbox-input.wx-checkbox-input-checked {
color: #fff !important;
background-color: #FFA900;
@ -28,7 +34,7 @@
.buy-container {
display: flex;
flex-direction: column;
padding: 20rpx;
padding: 15px;
}
.buy-title {
@ -40,7 +46,6 @@
display: flex;
flex-direction: column;
border-radius: 10rpx;
background-color: white;
}
.buy-all-box {
@ -49,7 +54,8 @@
flex-direction: column;
border-radius: 20rpx;
background-color: white;
box-shadow: 0rpx 0rpx 10rpx 10rpx #e9e8e88f;
/* box-shadow: 0rpx 0rpx 10rpx 10rpx #e9e8e88f; */
box-shadow: 0px 2px 6px 0px rgba(0, 0, 0, 0.08);
}
.buy-all-title {
@ -182,7 +188,7 @@
align-items: center;
border-radius: 20rpx;
background-color: white;
box-shadow: 0rpx 0rpx 10rpx 10rpx #e9e8e88f;
box-shadow: 0px 2px 6px 0px rgba(0, 0, 0, 0.08);
}
.hint-box .icon {

View File

@ -1,5 +1,7 @@
page {
background: linear-gradient(to bottom, #F0F0F0, #FFFFFF);
background-size: 100% 100vh;
background-repeat: no-repeat;
}
.create-container {

View File

@ -14,13 +14,26 @@ Page({
payWay: 1, //支付方式 1微信 2对公
showError: false,
errorHint: '',
showSuccess: false,
successHint: '',
listLoading: 'loading',
selectBag: {}, //选中的套餐包
},
onLoad(options) {
const _self = this
wx.setNavigationBarColor({
frontColor: '#000000', // 必写项,字体颜色仅支持#ffffff和#000000
backgroundColor: '#F0F0F0', // 传递的颜色值,仅支持十六进制颜色
animation: { // 可选项
duration: 500,
timingFunc: 'easeIn'
}
})
_self.doGetPackageList(_self.data.currentBagTab)
},
doRefreshList() {
this.doGetPackageList(this.data.currentBagTab)
},
//获取可以购买的套餐包
doGetPackageList(path) {
const _self = this
@ -29,7 +42,7 @@ Page({
})
const data = {
page: 1,
rows: 10
rows: 20
}
PayService.doGetBuyPackageList(path, data)
.then(res => {
@ -49,7 +62,7 @@ Page({
})
_self.setData({
showError: true,
errorHint: '未获取到套餐数据,请重试'
errorHint: '不好意思,没能获取到套餐数据。请您再试一次,相信马上就能看到啦。'
})
})
},
@ -63,29 +76,30 @@ Page({
},
//监听充值金额变化
obMoney(e) {
console.log(e)
var _self = this
const inputValue = e.detail.value
const regex = /^[+-]?(\d+(\.\d*)?|\.\d+)$/;
if (regex.test(inputValue)) {
//数字
_self.setData({
payMoney: e.detail.value,
selectBag: {}
})
} else {
wx.showToast({
title: '请输入数字',
icon: 'error',
success: () => {
setTimeout(() => {
_self.setData({
payMoney: 100,
selectBag: {}
})
}, 1000);
}
})
if (inputValue != '') {
if (regex.test(inputValue)) {
//数字
_self.setData({
payMoney: e.detail.value,
selectBag: {}
})
} else {
wx.showToast({
title: '请输入数字',
icon: 'error',
success: () => {
setTimeout(() => {
_self.setData({
payMoney: 100,
selectBag: {}
})
}, 1000);
}
})
}
}
},
//切换套餐包
@ -117,7 +131,7 @@ Page({
duration: 300
})
},
//TODO 调用微信支付
//调用微信支付
toWeChatPay() {
const _self = this
wx.showLoading({
@ -131,24 +145,83 @@ Page({
.then(res => {
wx.hideLoading()
console.log(res)
if (res && res.paySign && res.paySign != '') {
wx.requestPayment({
nonceStr: res.nonceStr,
package: `prepay_id=${res.prepayId}`,
paySign: res.paySign,
timeStamp: res.timeStamp + '',
signType: 'RSA',
success: res => {
if (res.errMsg && res.errMsg == 'requestPayment:ok') {
_self.setData({
successHint: '恭喜,您的充值已成功到账!',
showSuccess: true
})
setTimeout(() => {
wx.navigateBack()
}, 2000);
} else {
_self.setData({
errorHint: '很抱歉,本次充值失败,可能是网络不稳定或支付信息有误,请检查后重试。',
showError: true
})
}
},
fail: err => {
console.log('失败')
console.log(err)
var hint = '很抱歉,本次充值失败,可能是网络不稳定或支付信息有误,请检查后重试。'
if (err && err.errMsg && err.errMsg == 'requestPayment:fail cancel') {
//主动取消
hint = '本次支付已被您主动取消。若您改变主意,重新支付流程很便捷哦。'
}
_self.setData({
errorHint: hint,
showError: true
})
},
complete: () => {
}
})
} else {
_self.setData({
errorHint: err.msg ? err.msg : '很抱歉,本次充值失败,可能是网络不稳定或支付信息有误,请检查后重试。',
showError: true
})
}
})
.catch(err => {
wx.hideLoading()
console.log(err)
_self.setData({
errorHint: err.msg ? err.msg : '很抱歉,本次充值失败,可能是网络不稳定或支付信息有误,请检查后重试。',
showError: true
})
})
},
//去支付
doPay() {
const _self = this
if (_self.data.payWay == '1') {
//微信
_self.toWeChatPay()
//判断钱大于0
if (_self.data.payMoney > 0) {
if (_self.data.payWay == '1') {
//微信
_self.toWeChatPay()
} else {
//对公 需要传递参数 选中套餐 or 直接冲钱
const id = _self.data.selectBag.packageInfoId
const name = _self.data.selectBag.packageName
wx.redirectTo({
url: '/pages/copyright/publicPay/publicPay?packageId=' + id + '&name=' + name + '&money=' + _self.data.payMoney,
})
}
} else {
//对公 需要传递参数 选中套餐 or 直接冲钱
const id = _self.data.selectBag.packageInfoId
const name = _self.data.selectBag.packageName
wx.redirectTo({
url: '/pages/copyright/publicPay/publicPay?packageId=' + id + '&name=' + name + '&money=' + _self.data.payMoney,
//显示输入金额提示
_self.setData({
errorHint: '请输入要充值的金额',
showError: true
})
}
}

View File

@ -12,7 +12,7 @@
<view class="mt-20">充值金额</view>
<view class="sum-input mt-20">
<text style="font-size: 12px;margin-bottom: 6px;">¥</text>
<input style="font-size: 24px;font-weight: 800;" type="digit" placeholder="请输入金额" bindinput="obMoney" value="{{payMoney}}" />
<input class="input-money" type="digit" placeholder-style="font-size:23px;" placeholder="请输入金额" bindinput="obMoney" value="{{payMoney}}" />
</view>
<scroll-view scroll-x="{{true}}" class="mt-20">
<view class="list-tabs">
@ -50,7 +50,7 @@
<view class="{{currentBagTab=='MATERIAL'?'bag-select':'bag-normal'}} border-left" bind:tap="doChangeBagTab" data-value="MATERIAL">写材料套餐包</view>
<view class="{{currentBagTab=='ALL'?'bag-select':'bag-normal'}} border-right" bind:tap="doChangeBagTab" data-value="ALL">全托管套餐包</view>
</view>
<container-loading loadingState="{{listLoading}}">
<container-loading loadingState="{{listLoading}}" bindrefresh="doRefreshList">
<view class="bag-list">
<!-- 列表 -->
<block wx:for="{{bagList}}" wx:key="index">
@ -73,4 +73,5 @@
</view>
</view>
<mp-toptips msg="{{errorHint}}" type="error" show="{{showError}}"></mp-toptips>
<mp-toptips msg="{{errorHint}}" type="error" show="{{showError}}"></mp-toptips>
<mp-toptips msg="{{successHint}}" type="success" show="{{showSuccess}}"></mp-toptips>

View File

@ -1,4 +1,26 @@
/* pages/copyright/payment/payment.wxss */
page {
background: linear-gradient(to bottom, #F0F0F0, #FFFFFF);
background-size: 100% 100vh;
background-repeat: no-repeat;
}
.input-money {
font-size: 24px;
font-weight: bold;
height: 24px;
line-height: 24px;
text-align: left;
}
.input-money-placeholder {
font-size: 24px;
font-weight: bold;
height: 24px;
line-height: 24px;
text-align: left;
}
.form-radio_wrap .radio .wx-radio-input {
height: 32rpx;
width: 32rpx;

View File

@ -43,10 +43,10 @@ Page({
frontColor: '#000000', // 必写项,字体颜色仅支持#ffffff和#000000
backgroundColor: '#F0F0F0', // 传递的颜色值,仅支持十六进制颜色
animation: { // 可选项
duration: 500,
timingFunc: 'easeIn'
duration: 500,
timingFunc: 'easeIn'
}
})
})
// 获取完整的年月日时分秒,以及默认显示的数组
const obj = dateTimePicker.dateTimePicker(this.data.startYear, this.data.endYear);
console.log(obj.dateTime)
@ -127,27 +127,25 @@ Page({
accountRechargeId: res.accountRechargeId
})
} else {
wx.showToast({
title: '获取订单失败,请重试',
icon: 'error',
duration: 1500,
success: () => {
wx.navigateBack()
}
_self.setData({
showError: true,
errorHint: '获取订单失败,请重试'
})
setTimeout(() => {
wx.navigateBack()
}, 1000);
}
console.log(res)
}, err => {
wx.hideLoading()
console.log(err)
wx.showToast({
title: '获取订单失败,请重试',
icon: 'error',
duration: 1500,
success: () => {
wx.navigateBack()
}
_self.setData({
showError: true,
errorHint: '获取订单失败,请重试'
})
setTimeout(() => {
wx.navigateBack()
}, 1000);
})
},
//获取收款方信息

View File

@ -1,6 +1,8 @@
/* pages/copyright/publicPay/publicPay.wxss */
page {
background: linear-gradient(to bottom, #F0F0F0, #FFFFFF);
background-size: 100% 100vh;
background-repeat: no-repeat;
}
.container-box {

View File

@ -92,14 +92,16 @@ Page({
},
//用户服务协议
showServiceDeal() {
const id = '68eee8f5-33d3-4246-aeee-a33956677101'
wx.navigateTo({
url: '/pages/treaty/service/service',
url: '/pages/treaty/rule/rule?id=' + id,
})
},
//隐私条款
showPrivacyDeal() {
const id = '93679af4-e264-4d1c-bd49-538028daa95d'
wx.navigateTo({
url: '/pages/treaty/privacy/privacy',
url: '/pages/treaty/rule/rule?id=' + id,
})
},
onChange(e) {

View File

@ -1,5 +1,7 @@
page {
background: linear-gradient(to bottom, #F0F0F0, #FFFFFF);
background-size: 100% 100vh;
background-repeat: no-repeat;
}

View File

@ -139,11 +139,9 @@ Page({
},
//显示使用规则
showRule() {
ProApi.doGetRuleDate()
.then(res => {
console.log(res)
}, err => {
console.log(err)
})
const id = '89c4ca41-a44e-4ae2-bad3-6fa6536dd453'
wx.navigateTo({
url: '/pages/treaty/rule/rule?id=' + id,
})
}
})

View File

@ -1,6 +1,8 @@
/* pages/mine/mineAccount/mineCoupons/mineCoupons.wxss */
page {
background: linear-gradient(to bottom, #F0F0F0, #FFFFFF);
background-size: 100% 100vh;
background-repeat: no-repeat;
}
.list-title-btns {

View File

@ -1,6 +1,8 @@
/* pages/mine/mineAccount/mineInfo/mineInfo.wxss */
page {
background: linear-gradient(to bottom, #F0F0F0, #FFFFFF);
background-size: 100% 100vh;
background-repeat: no-repeat;
}
.info-container {

View File

@ -1,5 +1,7 @@
page {
background: linear-gradient(to bottom, #F0F0F0, #FFFFFF);
background-size: 100% 100vh;
background-repeat: no-repeat;
}
.search-box {

View File

@ -44,7 +44,11 @@ Page({
text: '知道了'
}],
hintTxt: '',
showHint: false
showHint: false,
showError: false,
errorHint: '',
animationData: {}, //刷新动画
animation: null,
},
/**
@ -58,6 +62,43 @@ Page({
_self.setData({
contentHeight: h
})
// 创建一个动画实例
const animation = wx.createAnimation({
duration: 1000,
timingFunction: 'ease'
});
this.setData({
animation: animation
})
},
//刷新账户
doRefresh() {
const _self = this
_self.playAnimation()
_self.getMineAccount() //获取账户信息
_self.getMinePackageCount() //获取套餐包信息
},
//播放刷新动画
playAnimation() {
const _self = this
// 重置动画
_self.data.animation.scale(1, 1).rotate(0).step({
duration: 0
});
_self.setData({
animationData: _self.data.animation.export()
});
_self.data.animation.scale(0.8, 0.8).rotate(180).step()
// 定义新的动画
_self.data.animation.scale(1, 1).rotate(360).step()
_self.setData({
animationData: _self.data.animation.export()
});
setTimeout(() => {
_self.setData({
animationData: {}
})
}, 1100);
},
onShow(options) {
this.getMineAccount() //获取账户信息
@ -72,6 +113,10 @@ Page({
})
}, err => {
console.log(err)
_self.setData({
errorHint: err.msg ? err.msg : '网络信号开小差啦,请您稍后再试,给您添麻烦~',
showError: true
})
})
},
//获取账户余额
@ -83,12 +128,17 @@ Page({
allCount: res.ALL,
materialCount: res.MATERIAL
})
}, err => {
})
.catch(err => {
console.log(err)
_self.setData({
allCount: 0,
materialCount: 0
})
_self.setData({
errorHint: err.msg ? err.msg : '网络信号开小差啦,请您稍后再试,给您添麻烦~',
showError: true
})
})
},
//优惠卷
@ -122,5 +172,11 @@ Page({
showHint: false,
hintTxt: ''
})
},
//下拉刷新
onPullDownRefresh() {
this.getMineAccount() //获取账户信息
this.getMinePackageCount() //获取套餐包信息
wx.stopPullDownRefresh()
}
})

View File

@ -1,4 +1,8 @@
{
"usingComponents": {"mp-dialog": "weui-miniprogram/dialog/dialog"},
"navigationStyle": "custom"
"usingComponents": {
"mp-dialog": "weui-miniprogram/dialog/dialog",
"mp-toptips": "weui-miniprogram/toptips/toptips"
},
"navigationStyle": "custom",
"enablePullDownRefresh": true
}

View File

@ -7,9 +7,9 @@
<view class="container-content">
<view class="container-box">
<view class="box-up">
<view class="balance">
<view class="balance" bind:tap="doRefresh">
<view>{{accountInfo.accountMoney/100}}</view>
<view class="arrow-down"></view>
<view class="icon-refresh" animation="{{animationData}}"></view>
</view>
<view class="balance-box">
<view class="balance-desc">账户余额</view>
@ -27,9 +27,9 @@
<text class="title">写材料</text>
<text class="num">{{materialCount}}</text>
</view>
<view class="package-bag-item" bind:tap="doCoupons">
<view class="package-bag-item" style="align-items:center;" bind:tap="doCoupons">
<view class="icon icon-coupon-ind"></view>
<view class="title">优惠卷</view>
<view class="title" style="margin-left: 3px;">优惠卷</view>
</view>
</view>
</view>
@ -38,7 +38,7 @@
<scroll-view scroll-y style="height: {{contentHeight+190}}rpx;">
<view class="menu-container">
<block wx:for="{{menuList}}" wx:key="index">
<view class="menu-item" bind:tap="itemClick" data-path="{{item.path}}">
<view class="menu-item" bind:tap="itemClick" hover-class="menu-item-active" data-path="{{item.path}}">
<view class="{{item.icon}}"></view>
<view class="menu-title">{{item.title}}</view>
</view>
@ -52,4 +52,5 @@
</view>
<mp-dialog title="提示" show="{{showHint}}" buttons="{{buttons}}" bindbuttontap="closeHint">
<view style="color: black;">{{hintTxt}}</view>
</mp-dialog>
</mp-dialog>
<mp-toptips ext-class="custom-tips" msg="{{errorHint}}" delay="2000" type="error" show="{{showError}}"></mp-toptips>

View File

@ -104,7 +104,8 @@
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
align-items: baseline;
padding-bottom: 5px;
}
.package-bag-item .icon {
@ -120,7 +121,7 @@
.package-bag .num {
margin-left: 10rpx;
font-size: 40rpx;
font-weight: 800;
font-weight: bold;
}
.menu-box {
@ -167,11 +168,43 @@
margin-left: 20rpx;
}
.menu-item:active {
background-color: rgba(243, 243, 243, 0.685);
border-radius: 20px;
.menu-item-active {
transform: translateY(2px);
}
.menu-item-active::after {
content: '';
position: absolute;
top: 50%;
left: 50%;
width: 5px;
height: 5px;
background: rgba(255, 255, 255, 0.5);
opacity: 0;
border-radius: 100%;
transform: scale(1, 1) translate(-50%, -50%);
transform-origin: 50% 50%;
}
.menu-item-active::after {
animation: ripple 0.6s ease-out;
}
@keyframes ripple {
0% {
transform: scale(0, 0);
opacity: 0.5;
}
100% {
transform: scale(20, 20);
opacity: 0;
}
}
.ic-user {
background-image: url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB0PSIxNzQzNjUwMjM5MzQ1IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjUyNzEiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTUxMS45OTQyNjQgMEMyMjkuMjMxODE0IDAgMCAyMjkuMjIwMzQxIDAgNTExLjk5NDI2NHMyMjkuMjMxODE0IDUxMS45OTQyNjQgNTExLjk5NDI2NCA1MTEuOTk0MjY0IDUxMi4wMDU3MzYtMjI5LjIyMDM0MSA1MTIuMDA1NzM2LTUxMS45OTQyNjRTNzk0Ljc2ODE4NiAwIDUxMS45OTQyNjQgMHpNMzQ2LjA0NDcwMiAzNTcuOTQxNjc0YzUuNTI5NzQtODMuOTMyNzM0IDcwLjk5MTc2NS0xMzguMzgxMTY5IDE0MS40OTAyMTQtMTQ4LjA5ODM2OCAzLjkwMDY0Ni0wLjUzOTIwNyA3LjY3NTA5Ni0xLjkzODg1MSAxMS40NzI0OS0yLjkzNjk1N2gyNy40NTM2NjdjMjcuNTMzOTc1IDMuNTc5NDE3IDUyLjE3Njg4MiAxMy43NjY5ODcgNzYuNTEwMDMzIDI3LjM2MTg4OCA2NS4wMTQ1OTggMzYuMTg0MjMyIDg4LjI0NjM5IDExNy4yNzE3ODggNjguMzg3NTEgMTgyLjEzNzI0NC0yNC4xNjEwNjMgNzguOTA3NzgzLTExMi4zNjE1NjMgMTI4Ljk1MDc4My0xOTUuMTgxNDY1IDExMS4xMTEwNjEtNzkuNTYxNzE1LTE3LjE1MTM3Mi0xMzUuMTY4ODcyLTkzLjUzNTIwNy0xMzAuMTMyNDQ5LTE2OS41NDA0NXogbTQyNS40MjI4NTggNDEwLjI3OTE3MWMtMzAuMTM4MjMgMTkuMzg4NTA3LTY1LjA2MDQ4OCAyOC40ODYxOTItMTAwLjYxMzczMyAzMy4xODk5MTMtNTMuOTIwNzAxIDcuMTEyOTQ0LTEwOC4zNDYxOTEgMTEuMTE2ODQyLTEzOS4xNzI3NzEgMTQuMTU3MDUyLTk1LjIyMTY2My0yLjM4NjI3OC0xNjYuODY3MzYxLTQuNjQ2MzU4LTIzNS4zMDA3NjEtMjYuMTU3Mjc2LTc1LjU5MjIzNC0yMy43ODI0NzEtNzMuMTgzMDExLTQzLjM3NzQ4My02MS4xNDgzNjktOTYuNjkwMTQyIDE3LjI4OTA0Mi03Ni42MTMyODUgNjUuMDM3NTQzLTEzNC40MTE2ODggMTQyLjEzMjY3My0xNzAuNjk5MTcyYTI3LjAxNzcxMyAyNy4wMTc3MTMgMCAwIDEgNS4xODU1NjUtMS43NjY3NjQgMTk2LjAzMDQyOSAxOTYuMDMwNDI5IDAgMCAwIDgzLjAzNzg4IDQwLjM5NDYzNmM2My4yNDc4MzUgMTMuNjE3ODQ1IDEyOS4wNzY5OC01LjUwNjc5NSAxNzYuMzY2NTgxLTQ1LjQ4ODQyMWExMi4wNTc1ODcgMTIuMDU3NTg3IDAgMCAxIDEuODEyNjU0IDAuNjc2ODc3cTEzOS4zNTYzMzEgNjYuNDQ4NjU5IDE1MS4xODQ0NjcgMjA5LjMzODUxN2MxLjYxNzYyMSAxOS4xMjQ2NC03LjI5NjUwMyAzMi42NTA3MDUtMjMuNDg0MTg2IDQzLjA0NDc4eiIgZmlsbD0iI0U5OUQ0MiIgcC1pZD0iNTI3MiI+PC9wYXRoPjwvc3ZnPg==');
background-size: cover;
@ -202,4 +235,17 @@
width: 24px;
height: 24px;
background-image: url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB0PSIxNzQzNjUxMDYwODE4IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjM0MzM1IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiPjxwYXRoIGQ9Ik05MjQuNDYzNTE4IDE3OS43MTMwMzUgOTguNDU5OTY0IDE3OS43MTMwMzVjLTE5LjI5MjM5MiAwLTM0LjkzMjYwNCAxNS42NDAyMTItMzQuOTMyNjA0IDM0LjkzMjYwNGwwIDU5My4yOTc1ODRjMCAxOS4yOTEzNjggMTUuNjQwMjEyIDM0LjkzMDU1NyAzNC45MzI2MDQgMzQuOTMwNTU3bDgyNi4wMDM1NTQgMGMxOS4yOTEzNjggMCAzNC45MzE1OC0xNS42MzkxODkgMzQuOTMxNTgtMzQuOTMwNTU3TDk1OS4zOTUwOTggMjE0LjY0NTYzOEM5NTkuMzk1MDk4IDE5NS4zNTMyNDYgOTQzLjc1NDg4NiAxNzkuNzEzMDM1IDkyNC40NjM1MTggMTc5LjcxMzAzNXpNNTQyLjgwNDA3NSAzNjcuNTUyMTQ0bDMzMS45MzQ5NDggMCAwIDY0LjUyMzU0OUw1NDIuODA0MDc1IDQzMi4wNzU2OTMgNTQyLjgwNDA3NSAzNjcuNTUyMTQ0ek01NDIuODA0MDc1IDQ5My4wMjY4OGwzMzEuOTM0OTQ4IDAgMCA2NC41MjM1NDlMNTQyLjgwNDA3NSA1NTcuNTUwNDI5IDU0Mi44MDQwNzUgNDkzLjAyNjg4ek0zMzQuOTY5NTYzIDI3MS43MjM2MTFjOTEuODk4MDEzIDAgOTIuMDQyMjk5IDcwLjMwNDIwNiA5Mi4wNDIyOTkgMTA5Ljg3MjM4NyAwIDM5LjUzNDQxMi0zNi43OTkxMTQgMTEyLjk4NzMzMS05Mi4wNDIyOTkgMTEzLjA3NTMzNS01NS4xODQ4NTcgMC4wODgwMDQtOTIuMDQyMjk5LTczLjU0MDkyMy05Mi4wNDIyOTktMTEzLjA3NTMzNUMyNDIuOTI4Mjg3IDM0Mi4wNTY0NyAyNDMuMTAxMjI1IDI3MS43MjM2MTEgMzM0Ljk2OTU2MyAyNzEuNzIzNjExek0xNzkuNDM5MyA1NTIuNDQ4MjI0YzIzLjY4NjQ2OS0xOC4zMjYzOTEgOTEuODA4OTg2LTQ4Ljk0MzcxMiA5MS44MDg5ODYtNDguOTQzNzEybDQzLjAwNjQ5IDgxLjgxMTI4NCA3Ljg2NjE1NS0xOS44NDYtMTIuMTUwNzM4LTI0LjQ0MzcxNSAyNC4yNDIxMjQtMjQuNDc0NDE0IDI0LjI0MDA3NyAyNC40NzQ0MTQtMTIuMTE5MDE1IDI0LjQ0MzcxNSA2LjU1NjMyMyAxOS4zNzgzNDkgNDQuMjU3OTkzLTgxLjM0MzYzM2MwIDAgMjEuNzAyMjc4IDkuNzg0ODU0IDQ0LjgwOTU1NSAyMS41NTkwMTVsMC4wMzA2OTkgMCAwIDEwMS42ODM4OUwxNDUuMzc4NTUzIDYyNi43NDc0MTdDMTQ1LjM3ODU1MyA2MjYuNzQ4NDQxIDE1NS44MTQyMyA1NzAuODk5NDU4IDE3OS40MzkzIDU1Mi40NDgyMjR6TTg3Ny41NDM5MDUgNzYwLjEyMDAzMWwtNzMyLjE2NTM1MiAwTDE0NS4zNzg1NTMgNjk1LjU5NTQ1OGw3MzIuMTY1MzUyIDBMODc3LjU0MzkwNSA3NjAuMTIwMDMxeiIgZmlsbD0iI0ZDQ0EwMCIgcC1pZD0iMzQzMzYiPjwvcGF0aD48L3N2Zz4=');
}
.icon-refresh {
background-image: url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB0PSIxNzQ0MTY2MTkyNTg5IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjU2MDkiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTkzNi41OTQyODYgNjAzLjQyODU3MXEwIDIuODUyNTcxLTAuNTg1MTQzIDQuMDIyODU3LTM2LjU3MTQyOSAxNTMuMTYxMTQzLTE1My4xNjExNDMgMjQ4LjMydC0yNzMuMTE1NDI5IDk1LjE1ODg1N3EtODMuNDU2IDAtMTYxLjQyNjI4Ni0zMS40NTE0Mjl0LTEzOS4xMTc3MTQtODkuNzQ2Mjg2bC03My43MjggNzMuNzI4cS0xMC44MjUxNDMgMTAuODI1MTQzLTI1Ljc0NjI4NiAxMC44MjUxNDN0LTI1Ljc0NjI4Ni0xMC44MjUxNDMtMTAuODI1MTQzLTI1Ljc0NjI4NmwwLTI1NnEwLTE0Ljg0OCAxMC44MjUxNDMtMjUuNzQ2Mjg2dDI1Ljc0NjI4Ni0xMC44MjUxNDNsMjU2IDBxMTQuODQ4IDAgMjUuNzQ2Mjg2IDEwLjgyNTE0M3QxMC44MjUxNDMgMjUuNzQ2Mjg2LTEwLjgyNTE0MyAyNS43NDYyODZsLTc4LjI2Mjg1NyA3OC4yNjI4NTdxNDAuNTk0Mjg2IDM3Ljc0MTcxNCA5Mi4wMTM3MTQgNTguMjk0ODU3dDEwNi44NjE3MTQgMjAuNTUzMTQzcTc2LjU4MDU3MSAwIDE0Mi44NDgtMzcuMTU2NTcxdDEwNi4yNzY1NzEtMTAyLjI1MzcxNHE2LjI5MDI4Ni05LjcyOCAzMC4yODExNDMtNjYuODUyNTcxIDQuNTM0ODU3LTEzLjE2NTcxNCAxNy4xMTU0MjktMTMuMTY1NzE0bDEwOS43MTQyODYgMHE3LjQ2MDU3MSAwIDEyLjg3MzE0MyA1LjQxMjU3MXQ1LjQxMjU3MSAxMi44NzMxNDN6TTk1MC44NTcxNDMgMTQ2LjI4NTcxNGwwIDI1NnEwIDE0Ljg0OC0xMC44MjUxNDMgMjUuNzQ2Mjg2dC0yNS43NDYyODYgMTAuODI1MTQzbC0yNTYgMHEtMTQuODQ4IDAtMjUuNzQ2Mjg2LTEwLjgyNTE0M3QtMTAuODI1MTQzLTI1Ljc0NjI4NiAxMC44MjUxNDMtMjUuNzQ2Mjg2bDc4Ljg0OC03OC44NDhxLTg0LjU1MzE0My03OC4yNjI4NTctMTk5LjQ2MDU3MS03OC4yNjI4NTctNzYuNTgwNTcxIDAtMTQyLjg0OCAzNy4xNTY1NzF0LTEwNi4yNzY1NzEgMTAyLjI1MzcxNHEtNi4yOTAyODYgOS43MjgtMzAuMjgxMTQzIDY2Ljg1MjU3MS00LjUzNDg1NyAxMy4xNjU3MTQtMTcuMTE1NDI5IDEzLjE2NTcxNGwtMTEzLjczNzE0MyAwcS03LjQ2MDU3MSAwLTEyLjg3MzE0My01LjQxMjU3MXQtNS40MTI1NzEtMTIuODczMTQzbDAtNC4wMjI4NTdxMzcuMTU2NTcxLTE1My4xNjExNDMgMTU0LjI1ODI4Ni0yNDguMzJ0Mjc0LjI4NTcxNC05NS4xNTg4NTdxODMuNDU2IDAgMTYyLjMwNCAzMS43NDR0MTM5Ljk5NTQyOSA4OS40NTM3MTRsNzQuMzEzMTQzLTczLjcyOHExMC44MjUxNDMtMTAuODI1MTQzIDI1Ljc0NjI4Ni0xMC44MjUxNDN0MjUuNzQ2Mjg2IDEwLjgyNTE0MyAxMC44MjUxNDMgMjUuNzQ2Mjg2eiIgZmlsbD0iIzUzMkEwMCIgcC1pZD0iNTYxMCI+PC9wYXRoPjwvc3ZnPg==');
background-size: cover;
background-repeat: no-repeat;
margin-left: 5px;
width: 18px;
height: 18px;
}
.custom-tips {
margin-top: 82px;
}

View File

@ -1,37 +0,0 @@
// pages/treaty/service/service.js
import CommonService from "../../../net/api/commonApi"
Page({
/**
* 页面的初始数据
*/
data: {
content: "",
title: ''
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
this.getDeal()
},
//获取协议内容
getDeal() {
var _self = this
CommonService.doGetPrivacy("privacy")
.then(res => {
if (res.content) {
_self.setData({
content: res.content,
title: res.title
})
wx.setNavigationBarTitle({
title: res.title,
})
}
}, err => {
console.log(err)
})
}
})

View File

@ -1,3 +0,0 @@
{
"usingComponents": {}
}

View File

@ -1,4 +0,0 @@
<view class="content-box">
<text class="content-title">{{title}}</text>
<rich-text class="content-body" nodes="{{content}}"></rich-text>
</view>

View File

@ -1,21 +0,0 @@
/* pages/treaty/privacy/privacy.wxss */
.content-box {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
padding: 20rpx;
}
.content-title {
font-size: 28rpx;
font-weight: 500;
color: black;
}
.content-body {
font-size: 24rpx;
color: gray;
margin-top: 20rpx;
padding: 20rpx;
}

View File

@ -1,25 +1,69 @@
// pages/treaty/rule/rule.js
// pages/treaty/service/service.js
import ProApi from "../../../net/api/projectApi"
Page({
/**
* 页面的初始数据
*/
data: {
content: "",
title: '',
id: '',
title: ''
errorHint: '',
showError: false
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
const _self = this
this.setData({
id: options.id,
title: options.title
id: options.id
})
wx.setNavigationBarTitle({
title: _self.data.title,
wx.setNavigationBarColor({
frontColor: '#000000', // 必写项,字体颜色仅支持#ffffff和#000000
backgroundColor: '#F0F0F0', // 传递的颜色值,仅支持十六进制颜色
animation: { // 可选项
duration: 500,
timingFunc: 'easeIn'
}
})
this.getDeal()
},
//获取协议内容
getDeal() {
var _self = this
wx.showLoading({
title: '加载中...',
})
ProApi.doGetRuleDate(_self.data.id)
.then(res => {
wx.hideLoading()
if (res && res.content && res.content != '') {
_self.setData({
title: res.title,
content: res.content
})
} else {
_self.setData({
showError: true,
errorHint: '很遗憾,当前服务器返回的数据有误,辛苦您过会儿再尝试。'
})
setTimeout(() => {
wx.navigateBack()
}, 1500);
}
})
.catch((err) => {
wx.hideLoading()
console.log(err)
_self.setData({
showError: true,
errorHint: '很遗憾,当前服务器返回的数据有误,辛苦您过会儿再尝试。'
})
setTimeout(() => {
wx.navigateBack()
}, 1500);
})
}
})

View File

@ -1,3 +1,3 @@
{
"usingComponents": {}
"usingComponents": {"mp-toptips": "weui-miniprogram/toptips/toptips"}
}

View File

@ -1,2 +1,5 @@
<!--pages/treaty/rule/rule.wxml-->
<text>pages/treaty/rule/rule.wxml</text>
<view class="content-box">
<text class="content-title">{{title}}</text>
<rich-text class="content-body" nodes="{{content}}"></rich-text>
</view>
<mp-toptips msg="{{errorHint}}" type="error" show="{{showError}}"></mp-toptips>

View File

@ -1 +1,26 @@
/* pages/treaty/rule/rule.wxss */
/* pages/treaty/privacy/privacy.wxss */
page {
background: linear-gradient(to bottom, #F0F0F0, #FFFFFF);
background-size: 100% 100vh;
background-repeat: no-repeat;
}
.content-box {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
padding: 20rpx;
}
.content-title {
font-size: 28rpx;
font-weight: 500;
color: black;
}
.content-body {
font-size: 24rpx;
color: gray;
margin-top: 20rpx;
padding: 20rpx;
}

View File

@ -1,37 +0,0 @@
// pages/treaty/service/service.js
import CommonService from "../../../net/api/commonApi"
Page({
/**
* 页面的初始数据
*/
data: {
content: "",
title: ''
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
this.getDeal()
},
//获取协议内容
getDeal() {
var _self = this
CommonService.doGetPrivacy("service")
.then(res => {
if (res.content) {
_self.setData({
content: res.content,
title: res.title
})
wx.setNavigationBarTitle({
title: res.title,
})
}
}, err => {
console.log(err)
})
}
})

View File

@ -1,3 +0,0 @@
{
"usingComponents": {}
}

View File

@ -1,4 +0,0 @@
<view class="content-box">
<text class="content-title">{{title}}</text>
<rich-text class="content-body" nodes="{{content}}"></rich-text>
</view>

View File

@ -1,21 +0,0 @@
/* pages/treaty/privacy/privacy.wxss */
.content-box {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
padding: 20rpx;
}
.content-title {
font-size: 28rpx;
font-weight: 500;
color: black;
}
.content-body {
font-size: 24rpx;
color: gray;
margin-top: 20rpx;
padding: 20rpx;
}