9b888601 by lttnew
2 parents 94f120e1 e92d0a31
...@@ -416,6 +416,16 @@ export function audit(data) { ...@@ -416,6 +416,16 @@ export function audit(data) {
416 }) 416 })
417 } 417 }
418 418
419 // 个人会员新版本审核
420 export function auditApi(data) {
421 return request({
422 url: `/person/paymentRangeNew/audit/${data.ids}?reason=${data.reason}&flag=${data.flag}`,
423 method: 'post',
424 params: data
425 })
426 }
427
428
419 // 审核详情 429 // 审核详情
420 export function getHistoryByRelateId(rId) { 430 export function getHistoryByRelateId(rId) {
421 return request({ 431 return request({
...@@ -1950,3 +1960,12 @@ export function GroupGetLogs(id) { ...@@ -1950,3 +1960,12 @@ export function GroupGetLogs(id) {
1950 }) 1960 })
1951 } 1961 }
1952 1962
1963
1964 // 新个人会员审批
1965 export function auditList(params) {
1966 return request({
1967 url: '/person/paymentRangeNew/list',
1968 method: 'get',
1969 params: params
1970 })
1971 }
......
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
1 <template> 1 <template>
2 <view> 2 <view>
3 <view class="wBox"> 3 <view class="wBox">
4 <view class="tt">{{form.paymentName}}</view> 4 <view class="tt">{{ form.memName }}</view>
5 <view class="info"> 5 <view class="info" style="flex-wrap: wrap;">
6 <view><text>{{list.length}}</text></view> 6 <view class="w45">
7 </view> 7 <text class="text-danger"> {{ form?.allCount }}</text>
8 <view class="userlist"> 8
9 <view class="item" v-for="(n,index) in list" :key="index"> 9 </view>
10 <view> 10 <view class="w45">新会员
11 <view class="name">{{n.perName}}<text v-if="n.memberInfoName">({{n.memberInfoName || ''}})</text></view> 11 <text class="text-primary"> {{ form?.newCount }}</text>
12 <view class="date">原有效期至 {{n.originValidityDate ? n.originValidityDate.slice(0,10) : '--'}}</view> 12
13 </view> 13 </view>
14 <view class="nian"> 14 <view class="w45">续费合计
15 {{n.payYear}} 15 <text class="text-primary"> {{ form?.oldCount }}</text>
16 </view> 16
17 </view> 17 </view>
18 </view> 18 <view class="w45">费用合计
19 </view> 19 <text class="text-danger">{{ form?.price }}</text>
20 20
21 <view class="h3-padding" v-if="feelList.length>0">审核流程</view> 21 </view>
22 <view class="wBox" v-if="feelList.length>0"> 22 </view>
23 <view class="stepItem" v-for="(n,index) in feelList" :key="index"> 23 </view>
24 <view class="time">{{n.auditTime || '待审批'}}</view> 24
25 <view class="content"> 25
26 <view class="status"> 26 <view class="wBox">
27 <text v-if="n.auditResult==0" class="text-primary"> 审核中</text> 27 <!-- <view class="tt">{{ // form.paymentName }}</view>-->
28 <text v-if="n.auditResult==1" class="text-success">审核通过</text> 28 <view class="info">
29 <text v-if="n.auditResult==2" class="text-danger"> 审核拒绝</text> 29 <view>
30 <text v-if="n.auditResult==3" class="text-warning"> 已撤回</text> 30 <text>{{ list.length }}</text>
31 </view> 31
32 <view class="name">{{index+1}}</view> 32 </view>
33 <view class="deptName">{{n.auditDeptName || n.auditBy}}</view> 33 </view>
34 <view>备注:{{n.auditMsg || '/' }}</view> 34 <view class="userlist">
35 </view> 35 <view v-for="(n,index) in list" :key="index" class="item">
36 </view> 36 <view>
37 </view> 37 <view class="name">{{ n.perName }}
38 </view> 38 <text v-if="n.memberInfoName">({{ n.memberInfoName || '' }})</text>
39 </view>
40 <view class="date">原有效期至 {{ n.originValidityDate ? n.originValidityDate.slice(0, 10) : '--' }}</view>
41 </view>
42 <view class="nian">
43 {{ n.payYear }}
44 </view>
45 </view>
46 </view>
47 </view>
48
49 <view v-if="feelList.length>0" class="h3-padding">审核流程</view>
50 <view v-if="feelList.length>0" class="wBox">
51 <view v-for="(n,index) in feelList" :key="index" class="stepItem">
52 <view class="time">{{ n.auditTime || '待审批' }}</view>
53 <view class="content">
54 <view class="status">
55 <text v-if="n.auditResult==0" class="text-primary"> 审核中</text>
56 <text v-if="n.auditResult==1" class="text-success">审核通过</text>
57 <text v-if="n.auditResult==2" class="text-danger"> 审核拒绝</text>
58 <text v-if="n.auditResult==3" class="text-warning"> 已撤回</text>
59 </view>
60 <view class="name">{{ index + 1 }}</view>
61 <view class="deptName">{{ n.auditDeptName || n.auditBy }}</view>
62 <view>备注:{{ n.auditMsg || '/' }}</view>
63 </view>
64 </view>
65 </view>
66 </view>
39 </template> 67 </template>
40 68
41 <script setup> 69 <script setup>
42 import * as api from '@/common/api.js' 70 import * as api from '@/common/api.js'
43 import { ref } from 'vue' 71 import {ref} from 'vue'
44 import { onLoad } from '@dcloudio/uni-app' 72 import {onLoad} from '@dcloudio/uni-app'
45 73
46 // 查询参数(和PC保持一致) 74 // 查询参数(和PC保持一致)
47 const queryParams = ref({ 75 const queryParams = ref({
48 rangeId: '', 76 rangeId: '',
49 pageNum: 1, 77 pageNum: 1,
50 pageSize: 999 78 pageSize: 999
51 }) 79 })
52 80
53 const form = ref({}) 81 const form = ref({})
54 const list = ref([]) 82 const list = ref([])
55 const feelList = ref([]) 83 const feelList = ref([])
56 84
57 onLoad((option) => { 85 onLoad((option) => {
58 if (option.form) { 86 if (option.form) {
59 form.value = JSON.parse(decodeURIComponent(option.form)) 87 form.value = JSON.parse(decodeURIComponent(option.form))
60 queryParams.value.rangeId = form.value.rangId || form.value.rangeId 88 queryParams.value.rangeId = form.value.rangId || form.value.rangeId
61 89 getList()
62 getList() 90 getAuditLogs()
63 getAuditLogs() 91 }
64 } 92
65 }) 93 console.log(form.value)
66 94 })
67 async function getList() { 95
68 try { 96 async function getList() {
69 const res = await api.listAPI(queryParams.value) 97 try {
70 list.value = res.rows || [] 98 const res = await api.listAPI(queryParams.value)
71 } catch (e) { 99 list.value = res.rows || []
72 list.value = [] 100 } catch (e) {
73 console.error('获取成员失败', e) 101 list.value = []
74 } 102 console.error('获取成员失败', e)
75 } 103 }
76 104 }
77 function getAuditLogs() { 105
78 if (form.value.auditLogs) { 106 function getAuditLogs() {
79 try { 107 if (form.value.auditLogs) {
80 feelList.value = JSON.parse(form.value.auditLogs) 108 try {
81 } catch (e) { 109 feelList.value = JSON.parse(form.value.auditLogs)
82 feelList.value = [] 110 } catch (e) {
83 } 111 feelList.value = []
84 } 112 }
85 } 113 }
114 }
86 </script> 115 </script>
87 116
88 <style scoped lang="scss">
89 .wBox {
90 width: 700rpx;
91 padding: 30rpx;
92 margin: 20rpx auto 0;
93 background: #FFFFFF;
94 box-shadow: 0rpx 12rpx 116rpx 0rpx rgba(196, 203, 214, 0.1);
95 border-radius: 15rpx;
96
97 .tt {
98 color: #0A1629;
99 font-size: 30rpx;
100 }
101 }
102
103 .userlist {
104 .item {
105 border-bottom: 1px dashed #e5e5e5;
106 position: relative;
107 padding: 20rpx 0;
108
109 .date {
110 margin-top: 10rpx;
111 font-size: 24rpx;
112 color: #999;
113 }
114
115 .name {
116 font-size: 30rpx;
117 text {
118 margin-left: 1em;
119 color: #4C5359;
120 font-size: 26rpx;
121 }
122 }
123
124 .nian {
125 position: absolute;
126 right: 0;
127 top: 30rpx;
128 font-size: 30rpx;
129 color: #AD181F;
130 }
131 }
132 }
133
134 .info {
135 display: flex;
136 margin: 30rpx 0 20rpx;
137 font-size: 28rpx;
138
139 view {
140 color: #7D8592;
141 margin-right: 20rpx;
142 text {
143 color: #AD181F;
144 }
145 }
146 }
147
148 .h3-padding {
149 padding: 20rpx 30rpx 0;
150 font-size: 30rpx;
151 font-weight: 500;
152 }
153
154 .stepItem {
155 border-left: 2rpx solid #E60012;
156 padding-left: 20rpx;
157 position: relative;
158 margin-bottom: 30rpx;
159
160 &:before {
161 content: '';
162 width: 12rpx;
163 height: 12rpx;
164 background: #E60012;
165 border-radius: 50%;
166 position: absolute;
167 left: -7rpx;
168 top: 0;
169 }
170
171 .time {
172 font-size: 24rpx;
173 color: #999;
174 }
175
176 .content {
177 margin-top: 10rpx;
178 font-size: 28rpx;
179
180 .status {
181 margin-bottom: 8rpx;
182 }
183
184 .name {
185 font-weight: 500;
186 }
187
188 .deptName {
189 margin: 6rpx 0;
190 color: #666;
191 }
192 }
193 }
194 </style>
...\ No newline at end of file ...\ No newline at end of file
117 <style lang="scss" scoped>
118 .wBox {
119 width: 700rpx;
120 padding: 30rpx;
121 margin: 20rpx auto 0;
122 background: #FFFFFF;
123 box-shadow: 0rpx 12rpx 116rpx 0rpx rgba(196, 203, 214, 0.1);
124 border-radius: 15rpx;
125
126 .tt {
127 color: #0A1629;
128 font-size: 30rpx;
129 }
130 }
131
132 .userlist {
133 .item {
134 border-bottom: 1px dashed #e5e5e5;
135 position: relative;
136 padding: 20rpx 0;
137
138 .date {
139 margin-top: 10rpx;
140 font-size: 24rpx;
141 color: #999;
142 }
143
144 .name {
145 font-size: 30rpx;
146
147 text {
148 margin-left: 1em;
149 color: #4C5359;
150 font-size: 26rpx;
151 }
152 }
153
154 .nian {
155 position: absolute;
156 right: 0;
157 top: 30rpx;
158 font-size: 30rpx;
159 color: #AD181F;
160 }
161 }
162 }
163
164 .info {
165 display: flex;
166 margin: 30rpx 0 20rpx;
167 font-size: 28rpx;
168
169 view {
170 color: #7D8592;
171 margin-right: 20rpx;
172
173 text {
174 color: #AD181F;
175 }
176 }
177 }
178
179 .h3-padding {
180 padding: 20rpx 30rpx 0;
181 font-size: 30rpx;
182 font-weight: 500;
183 }
184
185 .stepItem {
186 border-left: 2rpx solid #E60012;
187 padding-left: 20rpx;
188 position: relative;
189 margin-bottom: 30rpx;
190
191 &:before {
192 content: '';
193 width: 12rpx;
194 height: 12rpx;
195 background: #E60012;
196 border-radius: 50%;
197 position: absolute;
198 left: -7rpx;
199 top: 0;
200 }
201
202 .time {
203 font-size: 24rpx;
204 color: #999;
205 }
206
207 .content {
208 margin-top: 10rpx;
209 font-size: 28rpx;
210
211 .status {
212 margin-bottom: 8rpx;
213 }
214
215 .name {
216 font-weight: 500;
217 }
218
219 .deptName {
220 margin: 6rpx 0;
221 color: #666;
222 }
223 }
224 }
225 </style>
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!