4c57b42c by 杨炀

no message

1 parent db787da3
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
28 "enablePullDownRefresh": false 28 "enablePullDownRefresh": false
29 } 29 }
30 30
31 }, { 31 }, {
32 "path": "pages/usercenter/bills", 32 "path": "pages/usercenter/bills",
33 "style": { 33 "style": {
34 "navigationStyle": "default", 34 "navigationStyle": "default",
...@@ -119,327 +119,310 @@ ...@@ -119,327 +119,310 @@
119 "path": "pages/personalVip/addVip", 119 "path": "pages/personalVip/addVip",
120 "style": { 120 "style": {
121 "navigationBarTitleText": "添加会员", 121 "navigationBarTitleText": "添加会员",
122 "enablePullDownRefresh": false, 122 "enablePullDownRefresh": false,
123 "backgroundColor": "#ffffff", 123 "backgroundColor": "#ffffff",
124 "navigationBarTextStyle": "black", 124 "navigationBarTextStyle": "black",
125 "navigationBarBackgroundColor": "#ffffff" 125 "navigationBarBackgroundColor": "#ffffff"
126 } 126 }
127 }, {
128 "path": "pages/personalVip/renew",
129 "style": {
130 "navigationBarTitleText": "会员缴费",
131 "enablePullDownRefresh": false
132 }
133
134 }, {
135 "path": "pages/personalVip/vipList",
136 "style": {
137 "navigationBarTitleText": "会员列表",
138 "enablePullDownRefresh": false
139 }
140
141 }, {
142 "path": "pages/personalVip/list",
143 "style": {
144 "navigationBarTitleText": "会员查询",
145 "enablePullDownRefresh": false
146 }
147
148 }, {
149 "path": "pages/personalVip/detail",
150 "style": {
151 "navigationBarTitleText": "会员信息",
152 "enablePullDownRefresh": false
153 }
154
155 }, {
156 "path": "pages/personalVip/editVip",
157 "style": {
158 "navigationBarTitleText": "编辑会员",
159 "enablePullDownRefresh": false
160 }
161
162 }, {
163 "path": "pages/personalVip/audit",
164 "style": {
165 "navigationBarTitleText": "缴费审批",
166 "enablePullDownRefresh": false
167 }
168
169 }, {
170 "path": "pages/personalVip/payment",
171 "style": {
172 "navigationBarTitleText": "会员缴费",
173 "enablePullDownRefresh": false
174 }
175
176 }, {
177 "path": "pages/level/approval",
178 "style": {
179 "navigationBarTitleText": "级位考试审批",
180 "enablePullDownRefresh": false
181 }
182
183 }, {
184 "path": "pages/rank/approval",
185 "style": {
186 "navigationBarTitleText": "段位考试审批",
187 "enablePullDownRefresh": false
188 }
189
190 }, {
191 "path": "pages/rank/skip/approval",
192 "style": {
193 "navigationBarTitleText": "越段考试审批",
194 "enablePullDownRefresh": false
195 }
196
197 }, {
198 "path": "pages/rank/apply",
199 "style": {
200 "navigationBarTitleText": "段位考试申请",
201 "enablePullDownRefresh": false
202 }
203
204 }, {
205 "path": "pages/rank/applyDetail",
206 "style": {
207 "navigationBarTitleText": "段位考试详情",
208 "enablePullDownRefresh": false
209 }
210
211 }, {
212 "path": "pages/rank/skip/applyDetail",
213 "style": {
214 "navigationBarTitleText": "越段考试详情",
215 "enablePullDownRefresh": false
216 }
217
218 }, {
219 "path": "pages/index/perfect",
220 "style": {
221 "navigationBarTitleText": "注册引导",
222 "enablePullDownRefresh": false
223 }
224
225 }, {
226 "path": "pages/personalVip/paymentDetail",
227 "style": {
228 "navigationBarTitleText": "缴费详情",
229 "enablePullDownRefresh": false
230 }
231
232 }, {
233 "path": "pages/personalVip/auditDetail",
234 "style": {
235 "navigationBarTitleText": "会员缴费详情",
236 "enablePullDownRefresh": false
237 }
238
239 }, {
240 "path": "pages/group/list",
241 "style": {
242 "navigationBarTitleText": "团体会员",
243 "enablePullDownRefresh": false
244 }
245
246 }, {
247 "path": "pages/group/detail",
248 "style": {
249 "navigationBarTitleText": "机构会员",
250 "enablePullDownRefresh": false
251 }
252
253 }, {
254 "path": "pages/personalVip/feeBill",
255 "style": {
256 "navigationBarTitleText": "会员缴费单",
257 "enablePullDownRefresh": false
258 }
259
260 }, {
261 "path": "pages/group/feeBill",
262 "style": {
263 "navigationBarTitleText": "团体会员缴费单",
264 "enablePullDownRefresh": false
265 }
266 }, {
267 "path": "pages/personalVip/feeBillDetail",
268 "style": {
269 "navigationBarTitleText": "缴费单详情",
270 "enablePullDownRefresh": false
271 }
272
273 }, {
274 "path": "pages/group/feeBillDetail",
275 "style": {
276 "navigationBarTitleText": "缴费单详情",
277 "enablePullDownRefresh": false
278 }
279
280 }, {
281 "path": "pages/personalVip/mobilize",
282 "style": {
283 "navigationBarTitleText": "会员调动",
284 "enablePullDownRefresh": false
285 }
286
287 }, {
288 "path": "pages/personalVip/mobilizeDetail",
289 "style": {
290 "navigationBarTitleText": "会员调动详情",
291 "enablePullDownRefresh": false
292 }
293
294 }, {
295 "path": "pages/group/apply/applyList",
296 "style": {
297 "navigationBarTitleText": "团体会员审核",
298 "enablePullDownRefresh": false
299 }
300
301 }, {
302 "path": "pages/personalVip/addMobilize",
303 "style": {
304 "navigationBarTitleText": "新建调动",
305 "enablePullDownRefresh": false
306 }
307
308 }, {
309 "path": "pages/level/apply",
310 "style": {
311 "navigationBarTitleText": "级位考试申请",
312 "enablePullDownRefresh": false
313 }
314
315 }, {
316 "path": "pages/level/applyDetail",
317 "style": {
318 "navigationBarTitleText": "级位考试详情",
319 "enablePullDownRefresh": false
320 }
321
322 }, {
323 "path": "pages/level/addApply",
324 "style": {
325 "navigationBarTitleText": "编辑级位考试",
326 "enablePullDownRefresh": false
327 }
328
329 }, {
330 "path": "pages/level/chooseExaminer",
331 "style": {
332 "navigationBarTitleText": "选择考官",
333 "enablePullDownRefresh": false
334 }
335
336 }, {
337 "path": "pages/level/merge",
338 "style": {
339 "navigationBarTitleText": "审核合并",
340 "enablePullDownRefresh": false
341 }
342
343 }, {
344 "path": "pages/group/apply/merge",
345 "style": {
346 "navigationBarTitleText": "审核合并",
347 "enablePullDownRefresh": false
348 }
349
350 }, {
351 "path": "pages/group/apply/mergeUp",
352 "style": {
353 "navigationBarTitleText": "审核合并提交",
354 "enablePullDownRefresh": false
355 }
356
357 }, {
358 "path": "pages/group/apply/applyDetail",
359 "style": {
360 "navigationBarTitleText": "团体会员审核详情",
361 "enablePullDownRefresh": false
362 }
363
364 }, {
365 "path": "pages/group/apply/record",
366 "style": {
367 "navigationBarTitleText": "审核记录",
368 "enablePullDownRefresh": false
369 }
370
371 }, {
372 "path": "pages/level/mergeUp",
373 "style": {
374 "navigationBarTitleText": "合并提交",
375 "enablePullDownRefresh": false
376 }
377
378 }, {
379 "path": "pages/level/mergeUpDetail",
380 "style": {
381 "navigationBarTitleText": "考试详情",
382 "enablePullDownRefresh": false
383 }
384
385 }, {
386 "path": "pages/group/apply/mergeUpDetail",
387 "style": {
388 "navigationBarTitleText": "缴费详情",
389 "enablePullDownRefresh": false
390 }
391
392 }, {
393 "path": "pages/group/pay",
394 "style": {
395 "navigationBarTitleText": "团队会员认证",
396 "enablePullDownRefresh": false
397 }
398 }, {
399 "path": "pages/group/payDetail",
400 "style": {
401 "navigationBarTitleText": "认证详情",
402 "enablePullDownRefresh": false
403 }
404 }, {
405 "path": "pages/rank/scoreApproval",
406 "style": {
407 "navigationBarTitleText": "段位考试成绩审核",
408 "enablePullDownRefresh": false
409 }
410
411 }, {
412 "path": "pages/rank/skip/scoreApproval",
413 "style": {
414 "navigationBarTitleText": "越段考试成绩审核",
415 "enablePullDownRefresh": false
416 }
417
418 }, {
419 "path": "pages/rank/skip/cert",
420 "style": {
421 "navigationBarTitleText": "越段证书发布",
422 "enablePullDownRefresh": false
423 }
127 } 424 }
128 ,{ 425 ],
129 "path" : "pages/personalVip/renew",
130 "style" :
131 {
132 "navigationBarTitleText": "会员缴费",
133 "enablePullDownRefresh": false
134 }
135
136 }
137 ,{
138 "path" : "pages/personalVip/vipList",
139 "style" :
140 {
141 "navigationBarTitleText": "会员列表",
142 "enablePullDownRefresh": false
143 }
144
145 }
146 ,{
147 "path" : "pages/personalVip/list",
148 "style" :
149 {
150 "navigationBarTitleText": "会员查询",
151 "enablePullDownRefresh": false
152 }
153
154 }
155 ,{
156 "path" : "pages/personalVip/detail",
157 "style" :
158 {
159 "navigationBarTitleText": "会员信息",
160 "enablePullDownRefresh": false
161 }
162
163 }
164 ,{
165 "path" : "pages/personalVip/editVip",
166 "style" :
167 {
168 "navigationBarTitleText": "编辑会员",
169 "enablePullDownRefresh": false
170 }
171
172 }
173 ,{
174 "path" : "pages/personalVip/audit",
175 "style" :
176 {
177 "navigationBarTitleText": "缴费审批",
178 "enablePullDownRefresh": false
179 }
180
181 }
182 ,{
183 "path" : "pages/personalVip/payment",
184 "style" :
185 {
186 "navigationBarTitleText": "会员缴费",
187 "enablePullDownRefresh": false
188 }
189
190 }
191 ,{
192 "path" : "pages/level/approval",
193 "style" :
194 {
195 "navigationBarTitleText": "级位考试审批",
196 "enablePullDownRefresh": false
197 }
198
199 }
200 ,{
201 "path" : "pages/rank/approval",
202 "style" :
203 {
204 "navigationBarTitleText": "段位考试审批",
205 "enablePullDownRefresh": false
206 }
207
208 }
209 ,{
210 "path" : "pages/index/perfect",
211 "style" :
212 {
213 "navigationBarTitleText": "注册引导",
214 "enablePullDownRefresh": false
215 }
216
217 }
218 ,{
219 "path" : "pages/personalVip/paymentDetail",
220 "style" :
221 {
222 "navigationBarTitleText": "缴费详情",
223 "enablePullDownRefresh": false
224 }
225
226 }
227 ,{
228 "path" : "pages/personalVip/auditDetail",
229 "style" :
230 {
231 "navigationBarTitleText": "会员缴费详情",
232 "enablePullDownRefresh": false
233 }
234
235 }
236 ,{
237 "path" : "pages/group/list",
238 "style" :
239 {
240 "navigationBarTitleText": "团体会员",
241 "enablePullDownRefresh": false
242 }
243
244 }
245 ,{
246 "path" : "pages/group/detail",
247 "style" :
248 {
249 "navigationBarTitleText": "机构会员",
250 "enablePullDownRefresh": false
251 }
252
253 }
254 ,{
255 "path" : "pages/personalVip/feeBill",
256 "style" :
257 {
258 "navigationBarTitleText": "会员缴费单",
259 "enablePullDownRefresh": false
260 }
261
262 },{
263 "path" : "pages/group/feeBill",
264 "style" :
265 {
266 "navigationBarTitleText": "团体会员缴费单",
267 "enablePullDownRefresh": false
268 }
269 }
270 ,{
271 "path" : "pages/personalVip/feeBillDetail",
272 "style" :
273 {
274 "navigationBarTitleText": "缴费单详情",
275 "enablePullDownRefresh": false
276 }
277
278 } ,{
279 "path" : "pages/group/feeBillDetail",
280 "style" :
281 {
282 "navigationBarTitleText": "缴费单详情",
283 "enablePullDownRefresh": false
284 }
285
286 }
287 ,{
288 "path" : "pages/personalVip/mobilize",
289 "style" :
290 {
291 "navigationBarTitleText": "会员调动",
292 "enablePullDownRefresh": false
293 }
294
295 }
296 ,{
297 "path" : "pages/personalVip/mobilizeDetail",
298 "style" :
299 {
300 "navigationBarTitleText": "会员调动详情",
301 "enablePullDownRefresh": false
302 }
303
304 }
305 ,{
306 "path" : "pages/group/apply/applyList",
307 "style" :
308 {
309 "navigationBarTitleText": "团体会员审核",
310 "enablePullDownRefresh": false
311 }
312
313 }
314 ,{
315 "path" : "pages/personalVip/addMobilize",
316 "style" :
317 {
318 "navigationBarTitleText": "新建调动",
319 "enablePullDownRefresh": false
320 }
321
322 }
323 ,{
324 "path" : "pages/level/apply",
325 "style" :
326 {
327 "navigationBarTitleText": "级位考试申请",
328 "enablePullDownRefresh": false
329 }
330
331 }
332 ,{
333 "path" : "pages/level/applyDetail",
334 "style" :
335 {
336 "navigationBarTitleText": "级位考试详情",
337 "enablePullDownRefresh": false
338 }
339
340 }
341 ,{
342 "path" : "pages/level/addApply",
343 "style" :
344 {
345 "navigationBarTitleText": "编辑级位考试",
346 "enablePullDownRefresh": false
347 }
348
349 }
350 ,{
351 "path" : "pages/level/chooseExaminer",
352 "style" :
353 {
354 "navigationBarTitleText": "选择考官",
355 "enablePullDownRefresh": false
356 }
357
358 },{
359 "path" : "pages/level/merge",
360 "style" :
361 {
362 "navigationBarTitleText": "审核合并",
363 "enablePullDownRefresh": false
364 }
365
366 },{
367 "path" : "pages/group/apply/merge",
368 "style" :
369 {
370 "navigationBarTitleText": "审核合并",
371 "enablePullDownRefresh": false
372 }
373
374 },{
375 "path" : "pages/group/apply/mergeUp",
376 "style" :
377 {
378 "navigationBarTitleText": "审核合并提交",
379 "enablePullDownRefresh": false
380 }
381
382 }
383 ,{
384 "path" : "pages/group/apply/applyDetail",
385 "style" :
386 {
387 "navigationBarTitleText": "团体会员审核详情",
388 "enablePullDownRefresh": false
389 }
390
391 }
392 ,{
393 "path" : "pages/group/apply/record",
394 "style" :
395 {
396 "navigationBarTitleText": "审核记录",
397 "enablePullDownRefresh": false
398 }
399
400 }
401 ,{
402 "path" : "pages/level/mergeUp",
403 "style" :
404 {
405 "navigationBarTitleText": "合并提交",
406 "enablePullDownRefresh": false
407 }
408
409 }
410 ,{
411 "path" : "pages/level/mergeUpDetail",
412 "style" :
413 {
414 "navigationBarTitleText": "考试详情",
415 "enablePullDownRefresh": false
416 }
417
418 }
419 ,{
420 "path" : "pages/group/apply/mergeUpDetail",
421 "style" :
422 {
423 "navigationBarTitleText": "缴费详情",
424 "enablePullDownRefresh": false
425 }
426
427 },{
428 "path" : "pages/group/pay",
429 "style" :
430 {
431 "navigationBarTitleText": "团队会员认证",
432 "enablePullDownRefresh": false
433 }
434 },{
435 "path" : "pages/group/payDetail",
436 "style" :
437 {
438 "navigationBarTitleText": "认证详情",
439 "enablePullDownRefresh": false
440 }
441 }
442 ],
443 "globalStyle": { 426 "globalStyle": {
444 "navigationStyle": "custom", 427 "navigationStyle": "custom",
445 "navigationBarTextStyle": "white", 428 "navigationBarTextStyle": "white",
......
1 <template> 1 <template>
2 <view class="page"> 2 <view class="page">
3 <view class="bgbg"> 3 <view class="bgbg">
4 <view class="welcome">您好! 4 <view class="welcome">您好!
5 {{memberInfo.name}} 5 {{memberInfo.name}}
6 <br />欢迎使用中跆协会员管理系统</view> 6 <br />欢迎使用中跆协会员管理系统
7 </view>
7 <view class="flexbox"> 8 <view class="flexbox">
8 <!-- userType 1:中跆协 2:省 3:市区 4:道馆--> 9 <!-- userType 1:中跆协 2:省 3:市区 4:道馆-->
9 <!-- 4 --> 10 <!-- 4 -->
...@@ -25,7 +26,7 @@ ...@@ -25,7 +26,7 @@
25 </view> 26 </view>
26 <view v-if="userType!='4'" @click="goPath('/pages/group/list')"> 27 <view v-if="userType!='4'" @click="goPath('/pages/group/list')">
27 <image />团体会员查询 28 <image />团体会员查询
28 </view> 29 </view>
29 <!--市区 省 中跆协 --> 30 <!--市区 省 中跆协 -->
30 <view v-if="userType!='4'" @click="goPath('/pages/group/apply/applyList')"> 31 <view v-if="userType!='4'" @click="goPath('/pages/group/apply/applyList')">
31 <image />团体会员审核 32 <image />团体会员审核
...@@ -33,7 +34,7 @@ ...@@ -33,7 +34,7 @@
33 <view v-if="userType=='2'" @click="goPath('/pages/group/pay')"> 34 <view v-if="userType=='2'" @click="goPath('/pages/group/pay')">
34 <image />团体会员认证 35 <image />团体会员认证
35 </view> 36 </view>
36 37
37 <view v-if="userType=='2'" @click="goPath('/pages/group/feeBill')"> 38 <view v-if="userType=='2'" @click="goPath('/pages/group/feeBill')">
38 <image />团体会员缴费单 39 <image />团体会员缴费单
39 </view> 40 </view>
...@@ -44,7 +45,31 @@ ...@@ -44,7 +45,31 @@
44 <view v-if="userType!='4'" @click="goPath('/pages/level/approval')"> 45 <view v-if="userType!='4'" @click="goPath('/pages/level/approval')">
45 <image />级位考试审核 46 <image />级位考试审核
46 </view> 47 </view>
48 <view v-if="userType=='2'" @click="goPath('/pages/level/apply')">
49 <image />段位考试申请
50 </view>
47 51
52
53 </view>
54 <view v-if="userType=='1'" class="girdBox">
55 <view @click="goPath('/pages/rank/approval')">
56 <image />段位考试审核
57 </view>
58 <view @click="goPath('/pages/rank/scoreApproval')">
59 <image />考段成绩审核
60 </view>
61 <view @click="goPath('/pages/rank/cert')">
62 <image />考段证书发布
63 </view>
64 <view @click="goPath('/pages/rank/skip/approval')">
65 <image />越段考试审核
66 </view>
67 <view @click="goPath('/pages/rank/skip/scoreApproval')">
68 <image />越段成绩审核
69 </view>
70 <view @click="goPath('/pages/rank/skip/cert')">
71 <image />越段证书发布
72 </view>
48 </view> 73 </view>
49 <uni-section title="待办提醒" padding> 74 <uni-section title="待办提醒" padding>
50 <template v-slot:right> 75 <template v-slot:right>
...@@ -147,20 +172,21 @@ ...@@ -147,20 +172,21 @@
147 uni.showLoading({ 172 uni.showLoading({
148 title: '加载中' 173 title: '加载中'
149 }); 174 });
150 loginServer.getMyOwnMemberInfo().then(res=>{ 175 loginServer.getMyOwnMemberInfo().then(res => {
151 userType.value = app.globalData.userType 176 userType.value = app.globalData.userType
152 memberInfo.value = app.globalData.memberInfo 177 memberInfo.value = app.globalData.memberInfo
153 console.log(userType.value,app.globalData.authenticationStatus) 178 console.log(userType.value, app.globalData.authenticationStatus)
154 if (userType.value != '1' && app.globalData.authenticationStatus != '2' && app.globalData.authenticationStatus != 179 if (userType.value != '1' && app.globalData.authenticationStatus != '2' && app.globalData
155 '4') { 180 .authenticationStatus !=
156 // 注册引导 181 '4') {
157 // uni.navigateTo({ 182 // 注册引导
158 // url: '/pages/index/perfect' 183 // uni.navigateTo({
159 // }); 184 // url: '/pages/index/perfect'
160 } else { 185 // });
161 getMes() 186 } else {
162 } 187 getMes()
163 uni.hideLoading(); 188 }
189 uni.hideLoading();
164 }) 190 })
165 191
166 192
......
...@@ -38,10 +38,6 @@ ...@@ -38,10 +38,6 @@
38 </view> 38 </view>
39 </view> 39 </view>
40 40
41 <view v-if="userType=='2'" class="block-btn-box">
42 <button @click="goMerge" class="btn-red-kx">前往合并 > </button>
43 </view>
44
45 <view class="nodata" v-if="infoList.length==0"> 41 <view class="nodata" v-if="infoList.length==0">
46 <image mode="aspectFit" src="/static/nodata.png"></image> 42 <image mode="aspectFit" src="/static/nodata.png"></image>
47 <text>暂无数据</text> 43 <text>暂无数据</text>
......
...@@ -49,13 +49,8 @@ ...@@ -49,13 +49,8 @@
49 import * as api from '@/common/api.js' 49 import * as api from '@/common/api.js'
50 import config from '@/config.js' 50 import config from '@/config.js'
51 import _ from 'lodash' 51 import _ from 'lodash'
52 import { 52 import { ref } from 'vue'
53 onMounted, 53 import { onLoad } from '@dcloudio/uni-app'
54 ref
55 } from 'vue'
56 import {
57 onLoad
58 } from '@dcloudio/uni-app'
59 const app = getApp(); 54 const app = getApp();
60 const queryParams = ref({ 55 const queryParams = ref({
61 // pageNum: 1, 56 // pageNum: 1,
......
1 <template>
2 <view>
3 <view class="searchbar">
4 <uni-easyinput placeholderStyle="font-size:30rpx" :input-border="false" prefixIcon="search"
5 v-model="queryParams.name" placeholder="搜索考级名称" @blur="getList" @clear="getList">
6 </uni-easyinput>
7 <view class="invertedbtn-red" @click="goAdd">+ 添加级位考试</view>
8 </view>
9 <view class="appList">
10 <view class="appItem" v-for="item in list">
11 <view class="status" @click="goDetail(item)">
12 <text :class="{
13 'text-primary':item.status=='1',
14 'text-success':item.status=='2',
15 'text-danger':item.status=='3',
16 'text-warning':item.status=='4'
17 }">{{ item.statusStr }}</text>
18 </view>
19
20 <view class="date" v-if="item.status!='0'&&item.submitTime">提交时间:{{item.submitTime}}</view>
21 <view class="name mt0" @click="goDetail(item)">{{item.name}}</view>
22 <view class="pp esp">考级日期:{{item.startTime.substring(0,16)}}{{item.endTime.substring(0,16)}}</view>
23 <view class="flexbox" @click="goDetail(item)">
24 <view>
25 申请日期
26 <view>{{item.applyTime.substring(0, 10)}}</view>
27 </view>
28 <view>
29 申请单位
30 <view>{{item.memberName}}</view>
31 </view>
32 <view>
33 通过人数
34 <view>{{item.pass}}</view>
35 </view>
36 </view>
37 <view class="func" v-if="item.status=='0'||item.status=='3'||item.status=='4'">
38 <button @click="editThis(item)">编辑</button>
39 <button @click="handleSubmit(item)">提交审核</button>
40 </view>
41 </view>
42 </view>
43
44
45
46 <view class="nodata" v-if="list.length==0">
47 <image mode="aspectFit" src="/static/nodata.png"></image>
48 <text>暂无数据</text>
49 </view>
50 </view>
51 </template>
52
53 <script setup>
54 import * as api from '@/common/api.js'
55 import config from '@/config.js'
56 import {
57 onMounted,
58 ref
59 } from 'vue'
60 import {
61 onLoad,
62 onShow
63 } from '@dcloudio/uni-app'
64 const app = getApp();
65 const queryParams = ref({
66 // pageNum: 1,
67 // pageSize: 10
68 type: '1',
69 rankStatus: '0'
70 })
71 const navs = ref(['未提交', '审核中', '审核通过', '审核拒绝'])
72 const current = ref()
73 const list = ref([])
74 const total = ref(0)
75 const deptType = ref('')
76 onLoad(() => {
77
78 })
79 onShow(() => {
80 if (app.globalData.isLogin) {
81 init()
82 } else {
83
84 app.firstLoadCallback = () => {
85 init()
86 };
87 }
88 })
89
90 function init() {
91 uni.showLoading({
92 title: '加载中'
93 })
94 deptType.value = app.globalData.deptType
95 getList()
96 }
97
98
99 function getList() {
100 api.getLevelList(queryParams.value).then(res => {
101 uni.hideLoading()
102 list.value = res.rows
103 total.value = res.total
104 })
105 }
106
107 function goAdd() {
108 let path = `/pages/level/addApply`
109 uni.navigateTo({
110 url: path
111 });
112 }
113
114 function editThis(item) {
115 let path = `/pages/level/addApply?examId=${item.examId}`
116 uni.navigateTo({
117 url: path
118 });
119 }
120 function handleSubmit(item){
121 uni.showModal({
122 title: '提示',
123 content: `确定提交${item.name}进行审核吗`,
124 success: function(res) {
125 if (res.confirm) {
126 uni.showLoading({
127 title:`提交中`
128 })
129 upApply(item.examId)
130 }
131 }
132 })
133 }
134 function upApply(id){
135 api.submitVerity(id).then(res=>{
136 uni.hideLoading()
137 getList()
138 uni.showToast({
139 title:`提交成功`
140 })
141 })
142 }
143
144
145 function goDetail(item) {
146 if(item.status!='0'){
147 let path = `/pages/level/applyDetail?examId=${item.examId}`
148 uni.navigateTo({
149 url: path
150 });
151 } else {
152 return
153 }
154
155 }
156 </script>
157
158
159 <style scoped>
160 .searchbar {
161 display: flex;
162 align-items: center;
163 padding: 25rpx;
164 box-sizing: border-box;
165
166 :deep(.uni-easyinput .uni-easyinput__content) {
167 border-radius: 35rpx;
168 border: none;
169 height: 70rpx;
170 }
171
172 :deep(.uni-easyinput__content-input) {
173 font-size: 26rpx;
174 }
175
176 .invertedbtn-red {
177 border-radius: 50px;
178 background-color: #fff;
179
180 font-size: 30rpx;
181 padding: 10rpx 20rpx;
182 }
183 }
184
185 .mt0 {
186 margin-top: 0 !important;
187 }
188
189 .appList .appItem .name {
190 width: 80%;
191 word-break: break-all;
192 }
193 </style>
1 <template>
2 <view>
3 <view class="wBox">
4 <view class="tt">考级基本信息</view>
5 <view class="ddd">
6 <text class="lab">考级名称:</text>{{ form.name }}
7 </view>
8 <view class="ddd">
9 <text class="lab">申请日期:</text>{{form.applyTime}}
10 </view>
11 <view class="ddd">
12 <text class="lab">申请单位:</text>{{ form.memberName }}
13 </view>
14 <view class="ddd">
15 <text class="lab">考官:</text>{{form.examinerNames?.split(',').join('/')}}
16 </view>
17 <view class="ddd">
18 <text class="lab">考试开始时间:</text>{{form.startTime}}
19 </view>
20 <view class="ddd">
21 <text class="lab">考试结束时间:</text>{{form.endTime}}
22 </view>
23 <view class="ddd">
24 <text class="lab">考级地点:</text>{{form.address}}
25 </view>
26 <view class="ddd" v-if="app.globalData.showPrice">
27 <text class="lab">总金额:</text>{{(form.totalAmount*1).toFixed(2) }}
28 </view>
29 </view>
30 <view class="wBox">
31 <view class="tt">
32 考生信息
33 </view>
34 <view class="vipData">
35 <view><text>{{ tablePersonInfo.total }}</text></view>
36 <view v-for="l in tablePersonInfo.levelArr" :key="l.level">
37 {{ szToHz(l.level) }}级: <text>{{ l.num }} </text>
38 </view>
39 </view>
40 <view class="userlist">
41 <view class="item" v-for="n in list" style="background-color: #fffafa;">
42 <view class="w100">
43 <view class="name">{{n.realName}} <text>{{n.memName}}</text></view>
44 <!-- <view class="date">{{n.idcTypeStr}}{{n.idcCode}}</view> -->
45 <view class="flexbox">
46 <view>
47 原有级别
48 <text v-if="n.levelOld">{{ szToHz(n.levelOld) }}</text>
49 <text v-else>十级</text>
50 </view>
51 <view>
52 考试级别
53 <text>
54 {{ szToHz(n.levelNew) }}
55 </text>
56 </view>
57 <view v-if="app.globalData.showPrice">
58 金额
59 <text>
60 {{ (n.examFee * 1).toFixed(2) }}
61 </text>
62 </view>
63 <view>
64 是否通过
65 <text v-if="n.isPass=='1'" class="text-success">通过</text>
66 <text v-else class="text-danger">未通过</text>
67 </view>
68 </view>
69 </view>
70
71 </view>
72 </view>
73
74 </view>
75 <view class="wBox">
76 <view class="tt">
77 审核信息
78 </view>
79 <view>
80 <view class="stepItem" v-for="(n,index) in recordList">
81 <view class="time">{{n.handleDate||'待审批'}}</view>
82 <view class="content">
83 <view class="status">
84 <text :class="{
85 'text-success':n.auditStatus=='1',
86 'text-danger':n.auditStatus=='2',
87 'text-warning':n.auditStatus=='3'
88 }">{{ n.auditStatusStr }}</text>
89 </view>
90 <!-- <view class="name">{{index+1}}</view> -->
91 <view class="deptName">{{n.deptName}}</view>
92 <view v-if="n.auditStatus==2">
93 备注:{{n.reason||'/' }}
94 </view>
95 </view>
96 </view>
97 </view>
98 </view>
99
100 </view>
101 </template>
102
103 <script setup>
104 import * as api from '@/common/api.js'
105 import config from '@/config.js'
106 import _ from 'lodash'
107 import {
108 onMounted,
109 ref
110 } from 'vue'
111 import {
112 onLoad,
113 onShow
114 } from '@dcloudio/uni-app'
115 const app = getApp();
116 const deptType = ref('')
117 const form = ref({})
118 const tablePersonInfo = ref({})
119 const recordList = ref([])
120 const list = ref([])
121 let examId = ''
122 onLoad((option) => {
123 examId = option.examId
124 })
125 onShow(() => {
126 if (app.globalData.isLogin) {
127 init()
128 } else {
129 app.firstLoadCallback = () => {
130 init()
131 };
132 }
133 })
134
135 function init() {
136 uni.showLoading({
137 title: '加载中'
138 })
139 deptType.value = app.globalData.deptType
140 getForm()
141 getRecordList()
142 getTablePersonInfo()
143 }
144
145 function getForm() {
146 api.getLevelApplyInfo(examId).then(res => {
147 uni.hideLoading()
148 form.value = res.data
149 })
150 }
151
152 function getRecordList() {
153 api.getApprovalRecord(examId).then(res => {
154 recordList.value = res.data.levelSteps
155 })
156 }
157 function getTablePersonInfo() {
158 api.getStudentList({
159 examId: examId
160 }).then(res=>{
161 list.value = res.rows
162
163 const total = list.value.length
164 const levelArr = []
165 _.each(list.value, (d) => {
166 const temp = _.find(levelArr, (l) => {
167 return l.level == d.levelNew
168 })
169 if (temp) {
170 temp.num++
171 } else {
172 levelArr.push({
173 level: d.levelNew,
174 num: 1
175 })
176 }
177 })
178
179 tablePersonInfo.value = {
180 total: total,
181 levelArr: _.sortBy(levelArr, (l) => {
182 return l.level
183 })
184 }
185 })
186 }
187 function szToHz(num) {
188 const hzArr = ['〇', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十']
189 return hzArr[parseInt(num)]
190 }
191 </script>
192
193 <style scoped>
194 .wBox {
195 width: 700rpx;
196 padding: 30rpx;
197 margin: 20rpx auto;
198 background: #FFFFFF;
199 box-shadow: 0rpx 12rpx 116rpx 0rpx rgba(196, 203, 214, 0.1);
200 border-radius: 15rpx;
201
202 .tt {
203 color: #0A1629;margin: 0 0 30rpx;
204 font-size: 30rpx;
205 }
206
207 .ddd{font-size: 28rpx;color: #333;
208 .lab{color: #999;display: inline-block;text-align: justify;}
209 }
210 }
211
212 </style>
...\ No newline at end of file ...\ No newline at end of file
1 <template> 1 <template>
2 <view> 2 <view>
3 <!-- 段位考试审核 -->
4 <view class="appList">
5 <view class="appItem" v-for="item in list">
6 <view class="status" @click="goDetail(item)">
7 <text :class="{
8 'text-primary':item.status=='1',
9 'text-success':item.status=='2',
10 'text-danger':item.status=='3',
11 'text-warning':item.status=='4'
12 }">{{ item.statusStr }}</text>
13 </view>
3 14
15 <view class="date" v-if="item.status!='0'&&item.submitTime">提交时间:{{item.submitTime}}</view>
16 <view class="name mt0" @click="goDetail(item)">{{item.name}}</view>
17 <view class="pp esp">考级日期:{{item.startTime.substring(0,16)}}{{item.endTime.substring(0,16)}}</view>
18 <view class="flexbox" @click="goDetail(item)">
19 <view>
20 申请日期
21 <view>{{item.applyTime.substring(0, 10)}}</view>
22 </view>
23 <view>
24 申请单位
25 <view>{{item.memberName}}</view>
26 </view>
27 <view>
28 通过人数
29 <view>{{item.pass}}</view>
30 </view>
31 </view>
32 <view class="func" v-if="item.auditStatus=='0'">
33 <button @click="audit(item,'2')">拒绝</button>
34 <button @click="audit(item,'1')">同意</button>
35 </view>
36 </view>
37 </view>
38
39
40
41 <view class="nodata" v-if="list.length==0">
42 <image mode="aspectFit" src="/static/nodata.png"></image>
43 <text>暂无数据</text>
44 </view>
4 </view> 45 </view>
5 </template> 46 </template>
6 47
7 <script> 48 <script setup>
8 export default { 49 import * as api from '@/common/api.js'
9 data() { 50 import config from '@/config.js'
10 return { 51 import _ from 'lodash'
11 52 import { ref } from 'vue'
12 } 53 import { onLoad,onShow } from '@dcloudio/uni-app'
13 }, 54
14 methods: { 55 const app = getApp();
15 56 const queryParams = ref({
57 // type: '1',
58 // rankStatus: '0'
59 })
60 const list = ref([])
61 const deptType = ref('')
62 onShow(() => {
63 if (app.globalData.isLogin) {
64 init()
65 } else {
66
67 app.firstLoadCallback = () => {
68 init()
69 };
16 } 70 }
71 })
72 function init(){
73 uni.showLoading({
74 title: '加载中'
75 })
76 deptType.value = app.globalData.deptType
77 getList()
78 }
79 function getList() {
80 // api.getLevelList(queryParams.value).then(res => {
81 // uni.hideLoading()
82 // list.value = res.rows
83 // })
84 }
85 function audit(item, flag) {
86 console.log(item.sourceData)
87 var obj = {
88 flag: flag,
89 reason: null,
90 body: [JSON.stringify(item.sourceData)]
91 }
92
93 if (flag == '2') {
94 // 拒绝
95 // 弹出框填写理由
96 uni.showModal({
97 title: '请输入拒绝理由',
98 editable: true,
99 success: function(res) {
100 if (res.confirm) {
101 if (!res.content) {
102 uni.showToast({
103 title: '请输入拒绝理由',
104 icon: 'none'
105 })
106 } else {
107 obj.reason = res.content
108 doApproval(obj)
109 }
110 }
111 }
112 })
113 } else if (flag == '1') {
114 // 二次确认
115 uni.showModal({
116 title: '提示',
117 content: `确定审批通过吗`,
118 success: function(res) {
119 if (res.confirm) {
120 doApproval(obj)
121 }
122 }
123 })
124 }
125 }
126
127 function doApproval(obj) {
128 console.log(obj)
129 api.doVerity(obj).then((res) => {
130 uni.showToast({
131 title: '操作成功',
132 icon: 'none'
133 })
134 getList()
135 })
17 } 136 }
18 </script> 137 </script>
19 138
20 <style> 139 <style lang="scss" scoped>
21 140
22 </style> 141 </style>
......
1 <template>
2 <view>
3 <view class="appList">
4 <view class="appItem" v-for="item in infoList">
5 <view class="status" @click="goDetail(item)">
6 <text :class="{
7 'text-primary':item.auditStatus=='0',
8 'text-success':item.auditStatus=='1',
9 'text-danger':item.auditStatus=='2',
10 'text-warning':item.auditStatus=='3'
11 }">{{ item.statusStr }}</text>
12 </view>
13
14 <view class="date" v-if="item.status!='0'&&item.submitTime">提交时间:{{item.submitTime}}</view>
15 <view class="name mt0" @click="goDetail(item)">{{item.name}}</view>
16 <view class="pp esp">考级日期:{{item.startTime.substring(0,16)}}{{item.endTime.substring(0,16)}}</view>
17 <view class="flexbox" @click="goDetail(item)">
18 <view>
19 申请日期
20 <view>{{item.applyTime.substring(0, 10)}}</view>
21 </view>
22 <view>
23 申请单位
24 <view>{{item.memberName}}</view>
25 </view>
26 <view>
27 通过人数
28 <view>{{item.pass}}</view>
29 </view>
30 </view>
31 <view class="func">
32 <button @click="send()">一键生成</button>
33 </view>
34 </view>
35 </view>
36
37 <view class="nodata" v-if="infoList.length==0">
38 <image mode="aspectFit" src="/static/nodata.png"></image>
39 <text>暂无数据</text>
40 </view>
41 </view>
42 </template>
43
44 <script setup>
45 import * as api from '@/common/api.js'
46 import config from '@/config.js'
47 import _ from 'lodash'
48 import {
49 onMounted,
50 ref
51 } from 'vue'
52 import {
53 onLoad,
54 onShow
55 } from '@dcloudio/uni-app'
56 const app = getApp();
57 const queryParams = ref({
58 // pageNum: 1,
59 // pageSize: 10
60 status: '0',
61 type: '1'
62 })
63 const statusArr = ['审批中', '审批通过', '审批拒绝', '审批撤回']
64 const current = ref()
65 const infoList = ref([])
66 const total = ref(0)
67 const deptType = ref('')
68 const userType = ref('')
69 onLoad((option) => {
70
71 })
72 onShow(() => {
73 if (app.globalData.isLogin) {
74 init()
75 } else {
76
77 app.firstLoadCallback = () => {
78 init()
79 };
80 }
81 })
82
83 function init() {
84 uni.showLoading({
85 title: '加载中'
86 })
87 deptType.value = app.globalData.deptType
88 userType.value = app.globalData.userType
89 getList()
90 }
91
92
93 function getList() {
94 api.getVerityList(queryParams.value).then(res => {
95 uni.hideLoading()
96 infoList.value = res.rows
97 })
98 }
99 function goDetail(item) {
100 if(item.status!='0'){
101 let path = `/pages/level/applyDetail?examId=${item.examId}`
102 uni.navigateTo({
103 url: path
104 });
105 } else {
106 return
107 }
108 }
109 function send(){
110
111 }
112 </script>
113
114
115 <style scoped lang="scss">
116 .mt0 {
117 margin-top: 0 !important;
118 }
119
120 .appList .appItem .name {
121 width: 80%;
122 word-break: break-all;
123 }
124
125 </style>
1 <template>
2 <view>
3 <!-- 段位考试审核 -->
4 <view class="appList">
5 <view class="appItem" v-for="item in list">
6 <view class="status" @click="goDetail(item)">
7 <text :class="{
8 'text-primary':item.status=='1',
9 'text-success':item.status=='2',
10 'text-danger':item.status=='3',
11 'text-warning':item.status=='4'
12 }">{{ item.statusStr }}</text>
13 </view>
14
15 <view class="date" v-if="item.status!='0'&&item.submitTime">提交时间:{{item.submitTime}}</view>
16 <view class="name mt0" @click="goDetail(item)">{{item.name}}</view>
17 <view class="pp esp">考级日期:{{item.startTime.substring(0,16)}}{{item.endTime.substring(0,16)}}</view>
18 <view class="flexbox" @click="goDetail(item)">
19 <view>
20 申请日期
21 <view>{{item.applyTime.substring(0, 10)}}</view>
22 </view>
23 <view>
24 申请单位
25 <view>{{item.memberName}}</view>
26 </view>
27 <view>
28 通过人数
29 <view>{{item.pass}}</view>
30 </view>
31 </view>
32 <view class="func" v-if="item.auditStatus=='0'">
33 <button @click="audit(item,'2')">拒绝</button>
34 <button @click="audit(item,'1')">同意</button>
35 </view>
36 </view>
37 </view>
38
39
40
41 <view class="nodata" v-if="list.length==0">
42 <image mode="aspectFit" src="/static/nodata.png"></image>
43 <text>暂无数据</text>
44 </view>
45 </view>
46 </template>
47
48 <script setup>
49 import * as api from '@/common/api.js'
50 import config from '@/config.js'
51 import _ from 'lodash'
52 import { ref } from 'vue'
53 import { onLoad,onShow } from '@dcloudio/uni-app'
54
55 const app = getApp();
56 const queryParams = ref({
57 // type: '1',
58 // rankStatus: '0'
59 })
60 const list = ref([])
61 const deptType = ref('')
62 onShow(() => {
63 if (app.globalData.isLogin) {
64 init()
65 } else {
66
67 app.firstLoadCallback = () => {
68 init()
69 };
70 }
71 })
72 function init(){
73 uni.showLoading({
74 title: '加载中'
75 })
76 deptType.value = app.globalData.deptType
77 getList()
78 }
79 function getList() {
80 // api.getLevelList(queryParams.value).then(res => {
81 // uni.hideLoading()
82 // list.value = res.rows
83 // })
84 }
85 function audit(item, flag) {
86 console.log(item.sourceData)
87 var obj = {
88 flag: flag,
89 reason: null,
90 body: [JSON.stringify(item.sourceData)]
91 }
92
93 if (flag == '2') {
94 // 拒绝
95 // 弹出框填写理由
96 uni.showModal({
97 title: '请输入拒绝理由',
98 editable: true,
99 success: function(res) {
100 if (res.confirm) {
101 if (!res.content) {
102 uni.showToast({
103 title: '请输入拒绝理由',
104 icon: 'none'
105 })
106 } else {
107 obj.reason = res.content
108 doApproval(obj)
109 }
110 }
111 }
112 })
113 } else if (flag == '1') {
114 // 二次确认
115 uni.showModal({
116 title: '提示',
117 content: `确定审批通过吗`,
118 success: function(res) {
119 if (res.confirm) {
120 doApproval(obj)
121 }
122 }
123 })
124 }
125 }
126
127 function doApproval(obj) {
128 console.log(obj)
129 api.doVerity(obj).then((res) => {
130 uni.showToast({
131 title: '操作成功',
132 icon: 'none'
133 })
134 getList()
135 })
136 }
137 </script>
138
139 <style lang="scss" scoped>
140
141 </style>
1 <template>
2 <view>
3 <view class="wBox">
4 <view class="tt">考级基本信息</view>
5 <view class="ddd">
6 <text class="lab">考级名称:</text>{{ form.name }}
7 </view>
8 <view class="ddd">
9 <text class="lab">申请日期:</text>{{form.applyTime}}
10 </view>
11 <view class="ddd">
12 <text class="lab">申请单位:</text>{{ form.memberName }}
13 </view>
14 <view class="ddd">
15 <text class="lab">考官:</text>{{form.examinerNames?.split(',').join('/')}}
16 </view>
17 <view class="ddd">
18 <text class="lab">考试开始时间:</text>{{form.startTime}}
19 </view>
20 <view class="ddd">
21 <text class="lab">考试结束时间:</text>{{form.endTime}}
22 </view>
23 <view class="ddd">
24 <text class="lab">考级地点:</text>{{form.address}}
25 </view>
26 <view class="ddd" v-if="app.globalData.showPrice">
27 <text class="lab">总金额:</text>{{(form.totalAmount*1).toFixed(2) }}
28 </view>
29 </view>
30 <view class="wBox">
31 <view class="tt">
32 考生信息
33 </view>
34 <view class="vipData">
35 <view><text>{{ tablePersonInfo.total }}</text></view>
36 <view v-for="l in tablePersonInfo.levelArr" :key="l.level">
37 {{ szToHz(l.level) }}级: <text>{{ l.num }} </text>
38 </view>
39 </view>
40 <view class="userlist">
41 <view class="item" v-for="n in list" style="background-color: #fffafa;">
42 <view class="w100">
43 <view class="name">{{n.realName}} <text>{{n.memName}}</text></view>
44 <!-- <view class="date">{{n.idcTypeStr}}{{n.idcCode}}</view> -->
45 <view class="flexbox">
46 <view>
47 原有级别
48 <text v-if="n.levelOld">{{ szToHz(n.levelOld) }}</text>
49 <text v-else>十级</text>
50 </view>
51 <view>
52 考试级别
53 <text>
54 {{ szToHz(n.levelNew) }}
55 </text>
56 </view>
57 <view v-if="app.globalData.showPrice">
58 金额
59 <text>
60 {{ (n.examFee * 1).toFixed(2) }}
61 </text>
62 </view>
63 <view>
64 是否通过
65 <text v-if="n.isPass=='1'" class="text-success">通过</text>
66 <text v-else class="text-danger">未通过</text>
67 </view>
68 </view>
69 </view>
70
71 </view>
72 </view>
73
74 </view>
75 <view class="wBox">
76 <view class="tt">
77 审核信息
78 </view>
79 <view>
80 <view class="stepItem" v-for="(n,index) in recordList">
81 <view class="time">{{n.handleDate||'待审批'}}</view>
82 <view class="content">
83 <view class="status">
84 <text :class="{
85 'text-success':n.auditStatus=='1',
86 'text-danger':n.auditStatus=='2',
87 'text-warning':n.auditStatus=='3'
88 }">{{ n.auditStatusStr }}</text>
89 </view>
90 <!-- <view class="name">{{index+1}}</view> -->
91 <view class="deptName">{{n.deptName}}</view>
92 <view v-if="n.auditStatus==2">
93 备注:{{n.reason||'/' }}
94 </view>
95 </view>
96 </view>
97 </view>
98 </view>
99
100 </view>
101 </template>
102
103 <script setup>
104 import * as api from '@/common/api.js'
105 import config from '@/config.js'
106 import _ from 'lodash'
107 import {
108 onMounted,
109 ref
110 } from 'vue'
111 import {
112 onLoad,
113 onShow
114 } from '@dcloudio/uni-app'
115 const app = getApp();
116 const deptType = ref('')
117 const form = ref({})
118 const tablePersonInfo = ref({})
119 const recordList = ref([])
120 const list = ref([])
121 let examId = ''
122 onLoad((option) => {
123 examId = option.examId
124 })
125 onShow(() => {
126 if (app.globalData.isLogin) {
127 init()
128 } else {
129 app.firstLoadCallback = () => {
130 init()
131 };
132 }
133 })
134
135 function init() {
136 uni.showLoading({
137 title: '加载中'
138 })
139 deptType.value = app.globalData.deptType
140 getForm()
141 getRecordList()
142 getTablePersonInfo()
143 }
144
145 function getForm() {
146 api.getLevelApplyInfo(examId).then(res => {
147 uni.hideLoading()
148 form.value = res.data
149 })
150 }
151
152 function getRecordList() {
153 api.getApprovalRecord(examId).then(res => {
154 recordList.value = res.data.levelSteps
155 })
156 }
157 function getTablePersonInfo() {
158 api.getStudentList({
159 examId: examId
160 }).then(res=>{
161 list.value = res.rows
162
163 const total = list.value.length
164 const levelArr = []
165 _.each(list.value, (d) => {
166 const temp = _.find(levelArr, (l) => {
167 return l.level == d.levelNew
168 })
169 if (temp) {
170 temp.num++
171 } else {
172 levelArr.push({
173 level: d.levelNew,
174 num: 1
175 })
176 }
177 })
178
179 tablePersonInfo.value = {
180 total: total,
181 levelArr: _.sortBy(levelArr, (l) => {
182 return l.level
183 })
184 }
185 })
186 }
187 function szToHz(num) {
188 const hzArr = ['〇', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十']
189 return hzArr[parseInt(num)]
190 }
191 </script>
192
193 <style scoped>
194 .wBox {
195 width: 700rpx;
196 padding: 30rpx;
197 margin: 20rpx auto;
198 background: #FFFFFF;
199 box-shadow: 0rpx 12rpx 116rpx 0rpx rgba(196, 203, 214, 0.1);
200 border-radius: 15rpx;
201
202 .tt {
203 color: #0A1629;margin: 0 0 30rpx;
204 font-size: 30rpx;
205 }
206
207 .ddd{font-size: 28rpx;color: #333;
208 .lab{color: #999;display: inline-block;text-align: justify;}
209 }
210 }
211
212 </style>
...\ No newline at end of file ...\ No newline at end of file
1 <template>
2 <view>
3 <!-- 段位考试审核 -->
4 <view class="appList">
5 <view class="appItem" v-for="item in list">
6 <view class="status" @click="goDetail(item)">
7 <text :class="{
8 'text-primary':item.status=='1',
9 'text-success':item.status=='2',
10 'text-danger':item.status=='3',
11 'text-warning':item.status=='4'
12 }">{{ item.statusStr }}</text>
13 </view>
14
15 <view class="date" v-if="item.status!='0'&&item.submitTime">提交时间:{{item.submitTime}}</view>
16 <view class="name mt0" @click="goDetail(item)">{{item.name}}</view>
17 <view class="pp esp">考级日期:{{item.startTime.substring(0,16)}}{{item.endTime.substring(0,16)}}</view>
18 <view class="flexbox" @click="goDetail(item)">
19 <view>
20 申请日期
21 <view>{{item.applyTime.substring(0, 10)}}</view>
22 </view>
23 <view>
24 申请单位
25 <view>{{item.memberName}}</view>
26 </view>
27 <view>
28 通过人数
29 <view>{{item.pass}}</view>
30 </view>
31 </view>
32 <view class="func" v-if="item.auditStatus=='0'">
33 <button @click="audit(item,'2')">拒绝</button>
34 <button @click="audit(item,'1')">同意</button>
35 </view>
36 </view>
37 </view>
38
39
40
41 <view class="nodata" v-if="list.length==0">
42 <image mode="aspectFit" src="/static/nodata.png"></image>
43 <text>暂无数据</text>
44 </view>
45 </view>
46 </template>
47
48 <script setup>
49 import * as api from '@/common/api.js'
50 import config from '@/config.js'
51 import _ from 'lodash'
52 import { ref } from 'vue'
53 import { onLoad,onShow } from '@dcloudio/uni-app'
54
55 const app = getApp();
56 const queryParams = ref({
57 // type: '1',
58 // rankStatus: '0'
59 })
60 const list = ref([])
61 const deptType = ref('')
62 onShow(() => {
63 if (app.globalData.isLogin) {
64 init()
65 } else {
66
67 app.firstLoadCallback = () => {
68 init()
69 };
70 }
71 })
72 function init(){
73 uni.showLoading({
74 title: '加载中'
75 })
76 deptType.value = app.globalData.deptType
77 getList()
78 }
79 function getList() {
80 // api.getLevelList(queryParams.value).then(res => {
81 // uni.hideLoading()
82 // list.value = res.rows
83 // })
84 }
85 function audit(item, flag) {
86 console.log(item.sourceData)
87 var obj = {
88 flag: flag,
89 reason: null,
90 body: [JSON.stringify(item.sourceData)]
91 }
92
93 if (flag == '2') {
94 // 拒绝
95 // 弹出框填写理由
96 uni.showModal({
97 title: '请输入拒绝理由',
98 editable: true,
99 success: function(res) {
100 if (res.confirm) {
101 if (!res.content) {
102 uni.showToast({
103 title: '请输入拒绝理由',
104 icon: 'none'
105 })
106 } else {
107 obj.reason = res.content
108 doApproval(obj)
109 }
110 }
111 }
112 })
113 } else if (flag == '1') {
114 // 二次确认
115 uni.showModal({
116 title: '提示',
117 content: `确定审批通过吗`,
118 success: function(res) {
119 if (res.confirm) {
120 doApproval(obj)
121 }
122 }
123 })
124 }
125 }
126
127 function doApproval(obj) {
128 console.log(obj)
129 api.doVerity(obj).then((res) => {
130 uni.showToast({
131 title: '操作成功',
132 icon: 'none'
133 })
134 getList()
135 })
136 }
137 </script>
138
139 <style lang="scss" scoped>
140
141 </style>
1 <template>
2 <view>
3 <view class="appList">
4 <view class="appItem" v-for="item in infoList">
5 <view class="status" @click="goDetail(item)">
6 <text :class="{
7 'text-primary':item.auditStatus=='0',
8 'text-success':item.auditStatus=='1',
9 'text-danger':item.auditStatus=='2',
10 'text-warning':item.auditStatus=='3'
11 }">{{ item.statusStr }}</text>
12 </view>
13
14 <view class="date" v-if="item.status!='0'&&item.submitTime">提交时间:{{item.submitTime}}</view>
15 <view class="name mt0" @click="goDetail(item)">{{item.name}}</view>
16 <view class="pp esp">考级日期:{{item.startTime.substring(0,16)}}{{item.endTime.substring(0,16)}}</view>
17 <view class="flexbox" @click="goDetail(item)">
18 <view>
19 申请日期
20 <view>{{item.applyTime.substring(0, 10)}}</view>
21 </view>
22 <view>
23 申请单位
24 <view>{{item.memberName}}</view>
25 </view>
26 <view>
27 通过人数
28 <view>{{item.pass}}</view>
29 </view>
30 </view>
31 <view class="func">
32 <button @click="send()">一键生成</button>
33 </view>
34 </view>
35 </view>
36
37 <view class="nodata" v-if="infoList.length==0">
38 <image mode="aspectFit" src="/static/nodata.png"></image>
39 <text>暂无数据</text>
40 </view>
41 </view>
42 </template>
43
44 <script setup>
45 import * as api from '@/common/api.js'
46 import config from '@/config.js'
47 import _ from 'lodash'
48 import {
49 onMounted,
50 ref
51 } from 'vue'
52 import {
53 onLoad,
54 onShow
55 } from '@dcloudio/uni-app'
56 const app = getApp();
57 const queryParams = ref({
58 // pageNum: 1,
59 // pageSize: 10
60 status: '0',
61 type: '1'
62 })
63 const statusArr = ['审批中', '审批通过', '审批拒绝', '审批撤回']
64 const current = ref()
65 const infoList = ref([])
66 const total = ref(0)
67 const deptType = ref('')
68 const userType = ref('')
69 onLoad((option) => {
70
71 })
72 onShow(() => {
73 if (app.globalData.isLogin) {
74 init()
75 } else {
76
77 app.firstLoadCallback = () => {
78 init()
79 };
80 }
81 })
82
83 function init() {
84 uni.showLoading({
85 title: '加载中'
86 })
87 deptType.value = app.globalData.deptType
88 userType.value = app.globalData.userType
89 getList()
90 }
91
92
93 function getList() {
94 api.getVerityList(queryParams.value).then(res => {
95 uni.hideLoading()
96 infoList.value = res.rows
97 })
98 }
99 function goDetail(item) {
100 if(item.status!='0'){
101 let path = `/pages/level/applyDetail?examId=${item.examId}`
102 uni.navigateTo({
103 url: path
104 });
105 } else {
106 return
107 }
108 }
109 function send(){
110
111 }
112 </script>
113
114
115 <style scoped lang="scss">
116 .mt0 {
117 margin-top: 0 !important;
118 }
119
120 .appList .appItem .name {
121 width: 80%;
122 word-break: break-all;
123 }
124
125 </style>
1 <template>
2 <view>
3 <!-- 段位考试审核 -->
4 <view class="appList">
5 <view class="appItem" v-for="item in list">
6 <view class="status" @click="goDetail(item)">
7 <text :class="{
8 'text-primary':item.status=='1',
9 'text-success':item.status=='2',
10 'text-danger':item.status=='3',
11 'text-warning':item.status=='4'
12 }">{{ item.statusStr }}</text>
13 </view>
14
15 <view class="date" v-if="item.status!='0'&&item.submitTime">提交时间:{{item.submitTime}}</view>
16 <view class="name mt0" @click="goDetail(item)">{{item.name}}</view>
17 <view class="pp esp">考级日期:{{item.startTime.substring(0,16)}}{{item.endTime.substring(0,16)}}</view>
18 <view class="flexbox" @click="goDetail(item)">
19 <view>
20 申请日期
21 <view>{{item.applyTime.substring(0, 10)}}</view>
22 </view>
23 <view>
24 申请单位
25 <view>{{item.memberName}}</view>
26 </view>
27 <view>
28 通过人数
29 <view>{{item.pass}}</view>
30 </view>
31 </view>
32 <view class="func" v-if="item.auditStatus=='0'">
33 <button @click="audit(item,'2')">拒绝</button>
34 <button @click="audit(item,'1')">同意</button>
35 </view>
36 </view>
37 </view>
38
39
40
41 <view class="nodata" v-if="list.length==0">
42 <image mode="aspectFit" src="/static/nodata.png"></image>
43 <text>暂无数据</text>
44 </view>
45 </view>
46 </template>
47
48 <script setup>
49 import * as api from '@/common/api.js'
50 import config from '@/config.js'
51 import _ from 'lodash'
52 import { ref } from 'vue'
53 import { onLoad,onShow } from '@dcloudio/uni-app'
54
55 const app = getApp();
56 const queryParams = ref({
57 // type: '1',
58 // rankStatus: '0'
59 })
60 const list = ref([])
61 const deptType = ref('')
62 onShow(() => {
63 if (app.globalData.isLogin) {
64 init()
65 } else {
66
67 app.firstLoadCallback = () => {
68 init()
69 };
70 }
71 })
72 function init(){
73 uni.showLoading({
74 title: '加载中'
75 })
76 deptType.value = app.globalData.deptType
77 getList()
78 }
79 function getList() {
80 // api.getLevelList(queryParams.value).then(res => {
81 // uni.hideLoading()
82 // list.value = res.rows
83 // })
84 }
85 function audit(item, flag) {
86 console.log(item.sourceData)
87 var obj = {
88 flag: flag,
89 reason: null,
90 body: [JSON.stringify(item.sourceData)]
91 }
92
93 if (flag == '2') {
94 // 拒绝
95 // 弹出框填写理由
96 uni.showModal({
97 title: '请输入拒绝理由',
98 editable: true,
99 success: function(res) {
100 if (res.confirm) {
101 if (!res.content) {
102 uni.showToast({
103 title: '请输入拒绝理由',
104 icon: 'none'
105 })
106 } else {
107 obj.reason = res.content
108 doApproval(obj)
109 }
110 }
111 }
112 })
113 } else if (flag == '1') {
114 // 二次确认
115 uni.showModal({
116 title: '提示',
117 content: `确定审批通过吗`,
118 success: function(res) {
119 if (res.confirm) {
120 doApproval(obj)
121 }
122 }
123 })
124 }
125 }
126
127 function doApproval(obj) {
128 console.log(obj)
129 api.doVerity(obj).then((res) => {
130 uni.showToast({
131 title: '操作成功',
132 icon: 'none'
133 })
134 getList()
135 })
136 }
137 </script>
138
139 <style lang="scss" scoped>
140
141 </style>
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!