4c57b42c by 杨炀

no message

1 parent db787da3
...@@ -124,320 +124,303 @@ ...@@ -124,320 +124,303 @@
124 "navigationBarTextStyle": "black", 124 "navigationBarTextStyle": "black",
125 "navigationBarBackgroundColor": "#ffffff" 125 "navigationBarBackgroundColor": "#ffffff"
126 } 126 }
127 } 127 }, {
128 ,{ 128 "path": "pages/personalVip/renew",
129 "path" : "pages/personalVip/renew", 129 "style": {
130 "style" :
131 {
132 "navigationBarTitleText": "会员缴费", 130 "navigationBarTitleText": "会员缴费",
133 "enablePullDownRefresh": false 131 "enablePullDownRefresh": false
134 } 132 }
135 133
136 } 134 }, {
137 ,{ 135 "path": "pages/personalVip/vipList",
138 "path" : "pages/personalVip/vipList", 136 "style": {
139 "style" :
140 {
141 "navigationBarTitleText": "会员列表", 137 "navigationBarTitleText": "会员列表",
142 "enablePullDownRefresh": false 138 "enablePullDownRefresh": false
143 } 139 }
144 140
145 } 141 }, {
146 ,{ 142 "path": "pages/personalVip/list",
147 "path" : "pages/personalVip/list", 143 "style": {
148 "style" :
149 {
150 "navigationBarTitleText": "会员查询", 144 "navigationBarTitleText": "会员查询",
151 "enablePullDownRefresh": false 145 "enablePullDownRefresh": false
152 } 146 }
153 147
154 } 148 }, {
155 ,{ 149 "path": "pages/personalVip/detail",
156 "path" : "pages/personalVip/detail", 150 "style": {
157 "style" :
158 {
159 "navigationBarTitleText": "会员信息", 151 "navigationBarTitleText": "会员信息",
160 "enablePullDownRefresh": false 152 "enablePullDownRefresh": false
161 } 153 }
162 154
163 } 155 }, {
164 ,{ 156 "path": "pages/personalVip/editVip",
165 "path" : "pages/personalVip/editVip", 157 "style": {
166 "style" :
167 {
168 "navigationBarTitleText": "编辑会员", 158 "navigationBarTitleText": "编辑会员",
169 "enablePullDownRefresh": false 159 "enablePullDownRefresh": false
170 } 160 }
171 161
172 } 162 }, {
173 ,{ 163 "path": "pages/personalVip/audit",
174 "path" : "pages/personalVip/audit", 164 "style": {
175 "style" :
176 {
177 "navigationBarTitleText": "缴费审批", 165 "navigationBarTitleText": "缴费审批",
178 "enablePullDownRefresh": false 166 "enablePullDownRefresh": false
179 } 167 }
180 168
181 } 169 }, {
182 ,{ 170 "path": "pages/personalVip/payment",
183 "path" : "pages/personalVip/payment", 171 "style": {
184 "style" :
185 {
186 "navigationBarTitleText": "会员缴费", 172 "navigationBarTitleText": "会员缴费",
187 "enablePullDownRefresh": false 173 "enablePullDownRefresh": false
188 } 174 }
189 175
190 } 176 }, {
191 ,{ 177 "path": "pages/level/approval",
192 "path" : "pages/level/approval", 178 "style": {
193 "style" :
194 {
195 "navigationBarTitleText": "级位考试审批", 179 "navigationBarTitleText": "级位考试审批",
196 "enablePullDownRefresh": false 180 "enablePullDownRefresh": false
197 } 181 }
198 182
199 } 183 }, {
200 ,{ 184 "path": "pages/rank/approval",
201 "path" : "pages/rank/approval", 185 "style": {
202 "style" :
203 {
204 "navigationBarTitleText": "段位考试审批", 186 "navigationBarTitleText": "段位考试审批",
205 "enablePullDownRefresh": false 187 "enablePullDownRefresh": false
206 } 188 }
207 189
190 }, {
191 "path": "pages/rank/skip/approval",
192 "style": {
193 "navigationBarTitleText": "越段考试审批",
194 "enablePullDownRefresh": false
208 } 195 }
209 ,{ 196
210 "path" : "pages/index/perfect", 197 }, {
211 "style" : 198 "path": "pages/rank/apply",
212 { 199 "style": {
213 "navigationBarTitleText": "注册引导", 200 "navigationBarTitleText": "段位考试申请",
214 "enablePullDownRefresh": false 201 "enablePullDownRefresh": false
215 } 202 }
216 203
204 }, {
205 "path": "pages/rank/applyDetail",
206 "style": {
207 "navigationBarTitleText": "段位考试详情",
208 "enablePullDownRefresh": false
217 } 209 }
218 ,{ 210
219 "path" : "pages/personalVip/paymentDetail", 211 }, {
220 "style" : 212 "path": "pages/rank/skip/applyDetail",
221 { 213 "style": {
222 "navigationBarTitleText": "缴费详情", 214 "navigationBarTitleText": "越段考试详情",
223 "enablePullDownRefresh": false 215 "enablePullDownRefresh": false
224 } 216 }
225 217
218 }, {
219 "path": "pages/index/perfect",
220 "style": {
221 "navigationBarTitleText": "注册引导",
222 "enablePullDownRefresh": false
226 } 223 }
227 ,{ 224
228 "path" : "pages/personalVip/auditDetail", 225 }, {
229 "style" : 226 "path": "pages/personalVip/paymentDetail",
230 { 227 "style": {
231 "navigationBarTitleText": "会员缴费详情", 228 "navigationBarTitleText": "缴费详情",
232 "enablePullDownRefresh": false 229 "enablePullDownRefresh": false
233 } 230 }
234 231
232 }, {
233 "path": "pages/personalVip/auditDetail",
234 "style": {
235 "navigationBarTitleText": "会员缴费详情",
236 "enablePullDownRefresh": false
235 } 237 }
236 ,{ 238
237 "path" : "pages/group/list", 239 }, {
238 "style" : 240 "path": "pages/group/list",
239 { 241 "style": {
240 "navigationBarTitleText": "团体会员", 242 "navigationBarTitleText": "团体会员",
241 "enablePullDownRefresh": false 243 "enablePullDownRefresh": false
242 } 244 }
243 245
244 } 246 }, {
245 ,{ 247 "path": "pages/group/detail",
246 "path" : "pages/group/detail", 248 "style": {
247 "style" :
248 {
249 "navigationBarTitleText": "机构会员", 249 "navigationBarTitleText": "机构会员",
250 "enablePullDownRefresh": false 250 "enablePullDownRefresh": false
251 } 251 }
252 252
253 } 253 }, {
254 ,{ 254 "path": "pages/personalVip/feeBill",
255 "path" : "pages/personalVip/feeBill", 255 "style": {
256 "style" :
257 {
258 "navigationBarTitleText": "会员缴费单", 256 "navigationBarTitleText": "会员缴费单",
259 "enablePullDownRefresh": false 257 "enablePullDownRefresh": false
260 } 258 }
261 259
262 },{ 260 }, {
263 "path" : "pages/group/feeBill", 261 "path": "pages/group/feeBill",
264 "style" : 262 "style": {
265 {
266 "navigationBarTitleText": "团体会员缴费单", 263 "navigationBarTitleText": "团体会员缴费单",
267 "enablePullDownRefresh": false 264 "enablePullDownRefresh": false
268 } 265 }
269 } 266 }, {
270 ,{ 267 "path": "pages/personalVip/feeBillDetail",
271 "path" : "pages/personalVip/feeBillDetail", 268 "style": {
272 "style" :
273 {
274 "navigationBarTitleText": "缴费单详情", 269 "navigationBarTitleText": "缴费单详情",
275 "enablePullDownRefresh": false 270 "enablePullDownRefresh": false
276 } 271 }
277 272
278 } ,{ 273 }, {
279 "path" : "pages/group/feeBillDetail", 274 "path": "pages/group/feeBillDetail",
280 "style" : 275 "style": {
281 {
282 "navigationBarTitleText": "缴费单详情", 276 "navigationBarTitleText": "缴费单详情",
283 "enablePullDownRefresh": false 277 "enablePullDownRefresh": false
284 } 278 }
285 279
286 } 280 }, {
287 ,{ 281 "path": "pages/personalVip/mobilize",
288 "path" : "pages/personalVip/mobilize", 282 "style": {
289 "style" :
290 {
291 "navigationBarTitleText": "会员调动", 283 "navigationBarTitleText": "会员调动",
292 "enablePullDownRefresh": false 284 "enablePullDownRefresh": false
293 } 285 }
294 286
295 } 287 }, {
296 ,{ 288 "path": "pages/personalVip/mobilizeDetail",
297 "path" : "pages/personalVip/mobilizeDetail", 289 "style": {
298 "style" :
299 {
300 "navigationBarTitleText": "会员调动详情", 290 "navigationBarTitleText": "会员调动详情",
301 "enablePullDownRefresh": false 291 "enablePullDownRefresh": false
302 } 292 }
303 293
304 } 294 }, {
305 ,{ 295 "path": "pages/group/apply/applyList",
306 "path" : "pages/group/apply/applyList", 296 "style": {
307 "style" :
308 {
309 "navigationBarTitleText": "团体会员审核", 297 "navigationBarTitleText": "团体会员审核",
310 "enablePullDownRefresh": false 298 "enablePullDownRefresh": false
311 } 299 }
312 300
313 } 301 }, {
314 ,{ 302 "path": "pages/personalVip/addMobilize",
315 "path" : "pages/personalVip/addMobilize", 303 "style": {
316 "style" :
317 {
318 "navigationBarTitleText": "新建调动", 304 "navigationBarTitleText": "新建调动",
319 "enablePullDownRefresh": false 305 "enablePullDownRefresh": false
320 } 306 }
321 307
322 } 308 }, {
323 ,{ 309 "path": "pages/level/apply",
324 "path" : "pages/level/apply", 310 "style": {
325 "style" :
326 {
327 "navigationBarTitleText": "级位考试申请", 311 "navigationBarTitleText": "级位考试申请",
328 "enablePullDownRefresh": false 312 "enablePullDownRefresh": false
329 } 313 }
330 314
331 } 315 }, {
332 ,{ 316 "path": "pages/level/applyDetail",
333 "path" : "pages/level/applyDetail", 317 "style": {
334 "style" :
335 {
336 "navigationBarTitleText": "级位考试详情", 318 "navigationBarTitleText": "级位考试详情",
337 "enablePullDownRefresh": false 319 "enablePullDownRefresh": false
338 } 320 }
339 321
340 } 322 }, {
341 ,{ 323 "path": "pages/level/addApply",
342 "path" : "pages/level/addApply", 324 "style": {
343 "style" :
344 {
345 "navigationBarTitleText": "编辑级位考试", 325 "navigationBarTitleText": "编辑级位考试",
346 "enablePullDownRefresh": false 326 "enablePullDownRefresh": false
347 } 327 }
348 328
349 } 329 }, {
350 ,{ 330 "path": "pages/level/chooseExaminer",
351 "path" : "pages/level/chooseExaminer", 331 "style": {
352 "style" :
353 {
354 "navigationBarTitleText": "选择考官", 332 "navigationBarTitleText": "选择考官",
355 "enablePullDownRefresh": false 333 "enablePullDownRefresh": false
356 } 334 }
357 335
358 },{ 336 }, {
359 "path" : "pages/level/merge", 337 "path": "pages/level/merge",
360 "style" : 338 "style": {
361 {
362 "navigationBarTitleText": "审核合并", 339 "navigationBarTitleText": "审核合并",
363 "enablePullDownRefresh": false 340 "enablePullDownRefresh": false
364 } 341 }
365 342
366 },{ 343 }, {
367 "path" : "pages/group/apply/merge", 344 "path": "pages/group/apply/merge",
368 "style" : 345 "style": {
369 {
370 "navigationBarTitleText": "审核合并", 346 "navigationBarTitleText": "审核合并",
371 "enablePullDownRefresh": false 347 "enablePullDownRefresh": false
372 } 348 }
373 349
374 },{ 350 }, {
375 "path" : "pages/group/apply/mergeUp", 351 "path": "pages/group/apply/mergeUp",
376 "style" : 352 "style": {
377 {
378 "navigationBarTitleText": "审核合并提交", 353 "navigationBarTitleText": "审核合并提交",
379 "enablePullDownRefresh": false 354 "enablePullDownRefresh": false
380 } 355 }
381 356
382 } 357 }, {
383 ,{ 358 "path": "pages/group/apply/applyDetail",
384 "path" : "pages/group/apply/applyDetail", 359 "style": {
385 "style" :
386 {
387 "navigationBarTitleText": "团体会员审核详情", 360 "navigationBarTitleText": "团体会员审核详情",
388 "enablePullDownRefresh": false 361 "enablePullDownRefresh": false
389 } 362 }
390 363
391 } 364 }, {
392 ,{ 365 "path": "pages/group/apply/record",
393 "path" : "pages/group/apply/record", 366 "style": {
394 "style" :
395 {
396 "navigationBarTitleText": "审核记录", 367 "navigationBarTitleText": "审核记录",
397 "enablePullDownRefresh": false 368 "enablePullDownRefresh": false
398 } 369 }
399 370
400 } 371 }, {
401 ,{ 372 "path": "pages/level/mergeUp",
402 "path" : "pages/level/mergeUp", 373 "style": {
403 "style" :
404 {
405 "navigationBarTitleText": "合并提交", 374 "navigationBarTitleText": "合并提交",
406 "enablePullDownRefresh": false 375 "enablePullDownRefresh": false
407 } 376 }
408 377
409 } 378 }, {
410 ,{ 379 "path": "pages/level/mergeUpDetail",
411 "path" : "pages/level/mergeUpDetail", 380 "style": {
412 "style" :
413 {
414 "navigationBarTitleText": "考试详情", 381 "navigationBarTitleText": "考试详情",
415 "enablePullDownRefresh": false 382 "enablePullDownRefresh": false
416 } 383 }
417 384
418 } 385 }, {
419 ,{ 386 "path": "pages/group/apply/mergeUpDetail",
420 "path" : "pages/group/apply/mergeUpDetail", 387 "style": {
421 "style" :
422 {
423 "navigationBarTitleText": "缴费详情", 388 "navigationBarTitleText": "缴费详情",
424 "enablePullDownRefresh": false 389 "enablePullDownRefresh": false
425 } 390 }
426 391
427 },{ 392 }, {
428 "path" : "pages/group/pay", 393 "path": "pages/group/pay",
429 "style" : 394 "style": {
430 {
431 "navigationBarTitleText": "团队会员认证", 395 "navigationBarTitleText": "团队会员认证",
432 "enablePullDownRefresh": false 396 "enablePullDownRefresh": false
433 } 397 }
434 },{ 398 }, {
435 "path" : "pages/group/payDetail", 399 "path": "pages/group/payDetail",
436 "style" : 400 "style": {
437 {
438 "navigationBarTitleText": "认证详情", 401 "navigationBarTitleText": "认证详情",
439 "enablePullDownRefresh": false 402 "enablePullDownRefresh": false
440 } 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 }
441 } 424 }
442 ], 425 ],
443 "globalStyle": { 426 "globalStyle": {
......
...@@ -3,7 +3,8 @@ ...@@ -3,7 +3,8 @@
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 -->
...@@ -44,8 +45,32 @@ ...@@ -44,8 +45,32 @@
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>
51
47 52
48 </view> 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>
73 </view>
49 <uni-section title="待办提醒" padding> 74 <uni-section title="待办提醒" padding>
50 <template v-slot:right> 75 <template v-slot:right>
51 <text @click="goMsgList" class="more">更多></text> 76 <text @click="goMsgList" class="more">更多></text>
...@@ -147,11 +172,12 @@ ...@@ -147,11 +172,12 @@
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
180 .authenticationStatus !=
155 '4') { 181 '4') {
156 // 注册引导 182 // 注册引导
157 // uni.navigateTo({ 183 // uni.navigateTo({
......
...@@ -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>
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
3 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'
52 import { ref } from 'vue'
53 import { onLoad,onShow } from '@dcloudio/uni-app'
11 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)]
12 } 91 }
13 },
14 methods: {
15 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 }
16 } 110 }
17 } 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 }
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!