3dd81aba by lttnew

接口修改

1 parent 58412f8a
...@@ -747,7 +747,7 @@ export function delPayment(payIds) { ...@@ -747,7 +747,7 @@ export function delPayment(payIds) {
747 } 747 }
748 export function paymentDel(payIds) { 748 export function paymentDel(payIds) {
749 return request({ 749 return request({
750 url: `/person/paymentRange/${payIds}`, 750 url: `/person/paymentRangeNew/${payIds}`,
751 method: 'DELETE' 751 method: 'DELETE'
752 }) 752 })
753 } 753 }
...@@ -1303,7 +1303,14 @@ export function certifiedNew(params) { ...@@ -1303,7 +1303,14 @@ export function certifiedNew(params) {
1303 // 模拟回调 1303 // 模拟回调
1304 export function callBack2(orderId) { 1304 export function callBack2(orderId) {
1305 return request({ 1305 return request({
1306 url: `/system/certifiedNew/callBack2/${orderId}` 1306 url: `/system/certifiedNew/callBack2/${orderId}`,
1307 method: 'get',
1308 })
1309 }
1310 export function pcallBack2(orderId) {
1311 return request({
1312 url: `/person/paymentRangeNew/callBack2/${orderId}`,
1313 method: 'get',
1307 }) 1314 })
1308 } 1315 }
1309 // 优惠政策回显 1316 // 优惠政策回显
......
1 <template> 1 <template>
2 <view> 2 <view>
3 <!-- 会员认证 --> 3 <!-- 会员认证 -->
4 <view class="searchbar"> 4 <view class="searchbar">
...@@ -6,96 +6,96 @@ ...@@ -6,96 +6,96 @@
6 v-model="queryParams.rangeName" placeholder="缴费名称" @blur="getList" @clear="getList"> 6 v-model="queryParams.rangeName" placeholder="缴费名称" @blur="getList" @clear="getList">
7 </uni-easyinput> 7 </uni-easyinput>
8 <view class="invertedbtn-red" v-if="userType=='2'" @click="goAddPay">+ 新建缴费</view> 8 <view class="invertedbtn-red" v-if="userType=='2'" @click="goAddPay">+ 新建缴费</view>
9 </view> 9 </view>
10 <view class="appList"> 10 <view class="appList">
11 <view class="appItem" v-for="(item,index) in list" :key="index"> 11 <view class="appItem" v-for="(item,index) in list" :key="index">
12 <view class="status" @click="goDetail(item)"> 12 <view class="status" @click="goDetail(item)">
13 <text v-if="item?.content?.status==0" class="text-primary">待提交</text> 13 <text v-if="item?.content?.status==0" class="text-primary">待提交</text>
14 <text v-if="item?.content?.status==1" class="text-primary">审核中</text> 14 <text v-if="item?.content?.status==1" class="text-primary">审核中</text>
15 <text v-if="item?.content?.status==2" class="text-success"> 审核通过</text> 15 <text v-if="item?.content?.status==2" class="text-success"> 审核通过</text>
16 <text v-if="item?.content?.status==3" class="text-danger"> 审核拒绝</text> 16 <text v-if="item?.content?.status==3" class="text-danger"> 审核拒绝</text>
17 <text v-if="item?.content?.status==4" class="text-warning">已撤回</text> 17 <text v-if="item?.content?.status==4" class="text-warning">已撤回</text>
18 </view> 18 </view>
19 <view class="date">{{item?.content?.commitTime}} 提交</view> 19 <view class="date">{{item?.content?.commitTime}} 提交</view>
20 <view class="text-primary" v-if="item.wfCode">{{item.wfCode}}</view> 20 <view class="text-primary" v-if="item.wfCode">{{item.wfCode}}</view>
21 <view class="name mt0" @click="goDetail(item)">{{item.rangeName}}</view> 21 <view class="name mt0" @click="goDetail(item)">{{item.rangeName}}</view>
22 <view class="flexbox" @click="goDetail(item)"> 22 <view class="flexbox" @click="goDetail(item)">
23 <view> 23 <view>
24 会员合计 24 会员合计
25 <view>{{item.allCount}}</view> 25 <view>{{item.allCount}}</view>
26 </view> 26 </view>
27 <view v-if="userType!='2'"> 27 <view v-if="userType!='2'">
28 续费年限 28 续费年限
29 <view>{{item.content?.renewYear}}</view> 29 <view>{{item.content?.renewYear}}</view>
30 </view> 30 </view>
31 <view :class="userType=='2'?'w50':''"> 31 <view :class="userType=='2'?'w50':''">
32 年限合计 32 年限合计
33 <view>{{item.totalRenewYear}}</view> 33 <view>{{item.totalRenewYear}}</view>
34 </view> 34 </view>
35 </view> 35 </view>
36 <view class="func" v-if="item.content?.status==0||item.content?.status==3||item.content?.status==4"> 36 <view class="func" v-if="item.content?.status==0||item.content?.status==3||item.content?.status==4">
37 <button @click="handleDelete(item)">删除</button> 37 <button @click="handleDelete(item)">删除</button>
38 <button @click="handleUpdate(item)">编辑</button> 38 <button @click="handleUpdate(item)">编辑</button>
39 <button @click="commitFN(item)">提交审核</button> 39 <button @click="commitFN(item)">提交审核</button>
40 </view> 40 </view>
41 </view> 41 </view>
42 </view> 42 </view>
43 <view class="nodata" v-if="list.length==0"> 43 <view class="nodata" v-if="list.length==0">
44 <image mode="aspectFit" src="/static/nodata.png"></image> 44 <image mode="aspectFit" src="/static/nodata.png"></image>
45 <text>暂无数据</text> 45 <text>暂无数据</text>
46 </view> 46 </view>
47 </view> 47 </view>
48 </template> 48 </template>
49 49
50 <script setup> 50 <script setup>
51 import * as api from '@/common/api.js' 51 import * as api from '@/common/api.js'
52 import config from '@/config.js' 52 import config from '@/config.js'
53 import { 53 import {
54 onMounted, 54 onMounted,
55 ref 55 ref
56 } from 'vue' 56 } from 'vue'
57 import { 57 import {
58 onLoad,onShow 58 onLoad,onShow
59 } from '@dcloudio/uni-app' 59 } from '@dcloudio/uni-app'
60 const app = getApp(); 60 const app = getApp();
61 const list = ref([]) 61 const list = ref([])
62 const queryParams = ref({}) 62 const queryParams = ref({})
63 const userType = ref('') 63 const userType = ref('')
64 const UpPop = ref(null) 64 const UpPop = ref(null)
65 const form = ref({ 65 const form = ref({
66 docId:'', 66 docId:'',
67 payTime:'', 67 payTime:'',
68 url:'', 68 url:'',
69 remark:'' 69 remark:''
70 }) 70 })
71 onShow(() => { 71 onShow(() => {
72 if (app.globalData.isLogin) { 72 if (app.globalData.isLogin) {
73 init() 73 init()
74 } else { 74 } else {
75 75
76 app.firstLoadCallback = () => { 76 app.firstLoadCallback = () => {
77 init() 77 init()
78 }; 78 };
79 } 79 }
80 }) 80 })
81 81
82 function init() { 82 function init() {
83 userType.value = app.globalData.userType 83 userType.value = app.globalData.userType
84 getList() 84 getList()
85 } 85 }
86 86
87 function getList() { 87 function getList() {
88 api.getPayList(queryParams.value).then(res => { 88 api.getPayList(queryParams.value).then(res => {
89 for (const item of res.rows) { 89 for (const item of res.rows) {
90 item.content = null 90 item.content = null
91 if (item.certList?.length > 0) { 91 if (item.certList?.length > 0) {
92 item.content = item.certList[0] 92 item.content = item.certList[0]
93 } 93 }
94 } 94 }
95 list.value = res.rows 95 list.value = res.rows
96 }) 96 })
97 } 97 }
98 98
99 function commitFN(row) { 99 function commitFN(row) {
100 uni.showModal({ 100 uni.showModal({
101 title: '提示', 101 title: '提示',
...@@ -109,16 +109,16 @@ ...@@ -109,16 +109,16 @@
109 }) 109 })
110 } 110 }
111 }) 111 })
112 112
113 } 113 }
114 function goDetail(item) { 114 function goDetail(item) {
115 //详情 115 //详情
116 const form = encodeURIComponent(JSON.stringify(item)) 116 const form = encodeURIComponent(JSON.stringify(item))
117 // 查看 117 // 查看
118 let path = `/group/payDetail?&form=${form}` 118 let path = `/group/payDetail?&form=${form}`
119 uni.navigateTo({ 119 uni.navigateTo({
120 url: path 120 url: path
121 }); 121 });
122 } 122 }
123 123
124 function goAddPay(){ 124 function goAddPay(){
...@@ -147,9 +147,9 @@ ...@@ -147,9 +147,9 @@
147 url: path 147 url: path
148 }); 148 });
149 } 149 }
150 150
151 </script> 151 </script>
152 152
153 <style scoped lang="scss"> 153 <style scoped lang="scss">
154 .searchbar { 154 .searchbar {
155 display: flex; 155 display: flex;
...@@ -174,15 +174,15 @@ ...@@ -174,15 +174,15 @@
174 font-size: 30rpx; 174 font-size: 30rpx;
175 padding: 10rpx 20rpx; 175 padding: 10rpx 20rpx;
176 } 176 }
177 } 177 }
178 .popBody { 178 .popBody {
179 font-size: 28rpx; 179 font-size: 28rpx;
180 line-height: 1.5; 180 line-height: 1.5;
181 overflow: auto; 181 overflow: auto;
182 padding: 30rpx; 182 padding: 30rpx;
183 183
184 .btn-red { 184 .btn-red {
185 margin: 50rpx 0 30rpx; 185 margin: 50rpx 0 30rpx;
186 } 186 }
187 } 187 }
188 </style> 188 </style>
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -195,10 +195,11 @@ async function confirmAddExpireExaminer() { ...@@ -195,10 +195,11 @@ async function confirmAddExpireExaminer() {
195 .search-buttons { 195 .search-buttons {
196 display: flex; 196 display: flex;
197 justify-content: space-between; 197 justify-content: space-between;
198 margin-top: 10rpx; 198 margin-top: 30rpx;
199 margin-left: 80px;
199 } 200 }
200 .search-btn, .reset-btn { 201 .search-btn, .reset-btn {
201 width: 200rpx; 202 width: 220rpx;
202 height: 70rpx; 203 height: 70rpx;
203 line-height: 70rpx; 204 line-height: 70rpx;
204 border-radius: 8rpx; 205 border-radius: 8rpx;
......
1 <template> 1 <template>
2 <view class="container"> 2 <view class="container">
3 <!-- 主内容区域 -->
4 <view class="content"> 3 <view class="content">
5 <!-- 缴费年限 + 费用卡片 -->
6 <view class="card"> 4 <view class="card">
7 <!-- 缴费年限 -->
8 <view class="yearRow"> 5 <view class="yearRow">
9 <view class="label">缴费年限</view> 6 <view class="label">缴费年限</view>
10 <view class="control"> 7 <view class="control">
...@@ -112,9 +109,9 @@ const handelPay = async () => { ...@@ -112,9 +109,9 @@ const handelPay = async () => {
112 }) 109 })
113 } else { 110 } else {
114 if (data.orderId) { 111 if (data.orderId) {
115 await callBack2(data.orderId) 112 api.callBack2(data.orderId)
116 uni.navigateTo({ 113 uni.navigateTo({
117 url: `/myCenter/goPay` 114 url: `/myCenter/sucPay`
118 }) 115 })
119 116
120 } 117 }
......
...@@ -93,18 +93,18 @@ async function handlePay() { ...@@ -93,18 +93,18 @@ async function handlePay() {
93 payLoading.value = true 93 payLoading.value = true
94 const res = await api.goPay(rangeId.value) 94 const res = await api.goPay(rangeId.value)
95 95
96 // 订单ID存在则调用回调接口
97 if (res.data?.orderId) { 96 if (res.data?.orderId) {
98 await api.callBack2(res.data.orderId) 97 api.pcallBack2(res.data.orderId)
98 uni.navigateTo({
99 url: `/myCenter/sucPay?rangeId=${rangeId.value}from=payOrder`
100 })
99 } 101 }
100 102
101 // 跳转到支付成功页 103 // 跳转到支付成功页
102 uni.navigateTo({ 104
103 url: `/pages/payOk/payOk?rangeId=${rangeId.value}`
104 })
105 } catch (err) { 105 } catch (err) {
106 console.error('支付失败:', err) 106 const errMsg = err?.data?.msg || err?.message || '支付失败,请稍后重试'
107 uni.showToast({ title: err.data.msg, icon: 'none' }) 107 uni.showToast({ title: errMsg, icon: 'none' })
108 } finally { 108 } finally {
109 payLoading.value = false 109 payLoading.value = false
110 } 110 }
......
...@@ -41,23 +41,30 @@ ...@@ -41,23 +41,30 @@
41 41
42 <!-- 确定按钮(渐变+动效) --> 42 <!-- 确定按钮(渐变+动效) -->
43 <view class="confirm-btn-area"> 43 <view class="confirm-btn-area">
44 <button class="confirm-btn" @click="handleConfirm">确定</button> 44 <button class="confirm-btn" @click="goBack">确定</button>
45 </view> 45 </view>
46 </view> 46 </view>
47 </template> 47 </template>
48 48
49 <script setup> 49 <script setup>
50 import { onLoad } from '@dcloudio/uni-app' 50 import { onLoad } from '@dcloudio/uni-app'
51 const goBack = () => {
52 const pages = getCurrentPages()
53 const currentPage = pages[pages.length - 1]
54 const { from } = currentPage.options || {}
51 55
52 // 确定按钮点击事件 56 let delta = 1
53 const handleConfirm = () => { 57
54 uni.navigateBack({ delta: 1 }) 58 if (from === 'payOrder') {
55 // 也可跳转首页:uni.redirectTo({ url: '/pages/index/index' }) 59 delta = 2 // 来自添加会员 / 订单页 → 返回 2 级
60 }else{
61 delta = 3
62 }
63
64 uni.navigateBack({ delta })
56 } 65 }
57 66
58 onLoad((option) => { 67 onLoad((option) => {
59 // 可接收订单参数动态渲染,示例:
60 // if (option.amount) { /* 赋值给金额变量 */ }
61 }) 68 })
62 </script> 69 </script>
63 70
......
...@@ -67,11 +67,7 @@ ...@@ -67,11 +67,7 @@
67 <image mode="aspectFill" v-if="baseFormData.photo2" style="height:200rpx;width:200rpx;" :src="config.baseUrl_api + baseFormData.photo2"/> 67 <image mode="aspectFill" v-if="baseFormData.photo2" style="height:200rpx;width:200rpx;" :src="config.baseUrl_api + baseFormData.photo2"/>
68 </uni-forms-item> 68 </uni-forms-item>
69 </view> 69 </view>
70
71
72
73 </uni-forms> 70 </uni-forms>
74
75 </view> 71 </view>
76 <view class="agreeline"> 72 <view class="agreeline">
77 <image @click="changeAgree(agree)" v-if="agree" 73 <image @click="changeAgree(agree)" v-if="agree"
...@@ -84,7 +80,7 @@ ...@@ -84,7 +80,7 @@
84 <view class="fixedBottom"><button class="btn-red" @click="goSubmit">确 定</button></view> 80 <view class="fixedBottom"><button class="btn-red" @click="goSubmit">确 定</button></view>
85 81
86 <!-- 会员须知 --> 82 <!-- 会员须知 -->
87 <uni-popup ref="popup" type="bottom" background-color="#fff" animation> 83 <uni-popup ref="popup" type="bottom" background-color="#fff" animation :disable-scroll="true" :mask-click="false">
88 <view class="tt">入会须知</view> 84 <view class="tt">入会须知</view>
89 <view class="popBody"> 85 <view class="popBody">
90 _{{baseFormData.name}}_欢迎您申请成为中国跆拳道协会(以下简称中国跆协)会员,请确保本次申请是经过您本人或监护人授权同意后的自愿行为,请您务必仔细阅读本入会须知。 86 _{{baseFormData.name}}_欢迎您申请成为中国跆拳道协会(以下简称中国跆协)会员,请确保本次申请是经过您本人或监护人授权同意后的自愿行为,请您务必仔细阅读本入会须知。
...@@ -106,7 +102,7 @@ ...@@ -106,7 +102,7 @@
106 </view> 102 </view>
107 </uni-popup> 103 </uni-popup>
108 104
109 <uni-popup ref="infoConfirm" type="center"> 105 <uni-popup ref="infoConfirm" type="center" :disable-scroll="true" :mask-click="false">
110 <view class="tt">确认信息</view> 106 <view class="tt">确认信息</view>
111 <view class="popBody"> 107 <view class="popBody">
112 <view> 108 <view>
...@@ -504,7 +500,6 @@ ...@@ -504,7 +500,6 @@
504 const time = new Date().valueOf() + '' 500 const time = new Date().valueOf() + ''
505 baseFormData.value.t = time + Math.floor(Math.random() * 10) 501 baseFormData.value.t = time + Math.floor(Math.random() * 10)
506 baseFormData.value.signT = aes2.AESEncrypt(baseFormData.value.idcType + time) 502 baseFormData.value.signT = aes2.AESEncrypt(baseFormData.value.idcType + time)
507 console.log(baseFormData.value)
508 api.addPersonToMyDept(baseFormData.value).then(Response => { 503 api.addPersonToMyDept(baseFormData.value).then(Response => {
509 if (Response.data == 0) { 504 if (Response.data == 0) {
510 let msg = '该成员,实名认证未通过,注册失败!' 505 let msg = '该成员,实名认证未通过,注册失败!'
...@@ -573,6 +568,7 @@ ...@@ -573,6 +568,7 @@
573 align-items: center !important; 568 align-items: center !important;
574 justify-content: flex-end !important; 569 justify-content: flex-end !important;
575 text-align: right !important; 570 text-align: right !important;
571 flex-wrap: nowrap !important;
576 } 572 }
577 573
578 /* 输入框内容右对齐 */ 574 /* 输入框内容右对齐 */
...@@ -587,18 +583,24 @@ ...@@ -587,18 +583,24 @@
587 /* 文本内容右对齐 */ 583 /* 文本内容右对齐 */
588 .uni-forms-item .uni-forms-item__content text, 584 .uni-forms-item .uni-forms-item__content text,
589 .uni-forms-item .uni-forms-item__content > text { 585 .uni-forms-item .uni-forms-item__content > text {
590 text-align: right !important; 586 display: inline-block !important;
591 width: 100%; 587 white-space: nowrap !important;
592 display: block;
593 } 588 }
594 589
595 /* 覆盖原有样式 */
596 :deep(.uni-forms-item__content) {
597 justify-content: flex-end !important;
598 }
599 </style> 590 </style>
600 591
601 <style lang="scss" scoped> 592 <style lang="scss" scoped>
593 :deep(.uni-popup__mask) {
594 overflow: hidden !important;
595 position: fixed !important;
596 top: 0;
597 left: 0;
598 right: 0;
599 bottom: 0;
600 }
601 :deep(.uni-popup) {
602 overflow: hidden !important;
603 }
602 :deep(.segmented-control) { 604 :deep(.segmented-control) {
603 height: 100rpx; 605 height: 100rpx;
604 } 606 }
...@@ -617,6 +619,8 @@ ...@@ -617,6 +619,8 @@
617 .popBody { 619 .popBody {
618 font-size: 28rpx; 620 font-size: 28rpx;
619 line-height: 1.5; 621 line-height: 1.5;
622 height: 70vh;
623 overflow-y: auto;
620 font-family: 华文仿宋; 624 font-family: 华文仿宋;
621 height: 80vh; 625 height: 80vh;
622 overflow: auto; 626 overflow: auto;
...@@ -632,6 +636,7 @@ ...@@ -632,6 +636,7 @@
632 box-sizing: border-box; 636 box-sizing: border-box;
633 display: flex; 637 display: flex;
634 font-size: 30rpx; 638 font-size: 30rpx;
639
635 640
636 text { 641 text {
637 color: #014A9F; 642 color: #014A9F;
...@@ -671,4 +676,13 @@ ...@@ -671,4 +676,13 @@
671 :deep(.item-text-overflow) { 676 :deep(.item-text-overflow) {
672 text-align: left; 677 text-align: left;
673 } 678 }
679 :deep(.fixUniFormItemStyle .uni-data-picker__input-box) {
680 justify-content: flex-start !important;
681 text-align: left !important;
682 }
683
684 /* 让地区选择器的文本左对齐 */
685 :deep(.fixUniFormItemStyle .uni-data-picker__text) {
686 text-align: left !important;
687 }
674 </style> 688 </style>
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -266,7 +266,7 @@ ...@@ -266,7 +266,7 @@
266 } 266 }
267 267
268 .vipData { 268 .vipData {
269 padding: 10rpx 20rpx; 269 padding: 10rpx 20rpx 5rpx;
270 font-size: 28rpx; 270 font-size: 28rpx;
271 color: #666; 271 color: #666;
272 view { margin-bottom: 10rpx; } 272 view { margin-bottom: 10rpx; }
......
...@@ -200,7 +200,7 @@ ...@@ -200,7 +200,7 @@
200 .icon { 200 .icon {
201 width: 40rpx; 201 width: 40rpx;
202 height: 40rpx; 202 height: 40rpx;
203 margin-right: 20rpx; 203 margin:0 20rpx;
204 } 204 }
205 205
206 .photobox { 206 .photobox {
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!