8630af21 by 杨炀

no message

1 parent 9a050e3a
...@@ -85,7 +85,8 @@ function getInfo() { ...@@ -85,7 +85,8 @@ function getInfo() {
85 // const personInfo = res.data.personInfo 85 // const personInfo = res.data.personInfo
86 uni.setStorageSync('userName', user.userName) 86 uni.setStorageSync('userName', user.userName)
87 // uni.setStorageSync('perId', personInfo.perId||-1) 87 // uni.setStorageSync('perId', personInfo.perId||-1)
88 app.globalData.deptType = user.dept.deptType 88 app.globalData.deptType = user.dept.deptType
89 app.globalData.genFlag = user.dept.genFlag
89 switch (user.dept.deptType) { 90 switch (user.dept.deptType) {
90 case '1': // 中跆协 91 case '1': // 中跆协
91 app.globalData.userType = '1' 92 app.globalData.userType = '1'
......
...@@ -70,6 +70,16 @@ ...@@ -70,6 +70,16 @@
70 const userType = ref('') 70 const userType = ref('')
71 onLoad((option) => { 71 onLoad((option) => {
72 queryParams.value.type = option.type 72 queryParams.value.type = option.type
73 if(option.type==2){
74 uni.setNavigationBarTitle({
75 title:'段位考试详情'
76 })
77 }
78 if(option.type==3){
79 uni.setNavigationBarTitle({
80 title:'越段考试详情'
81 })
82 }
73 }) 83 })
74 onShow(() => { 84 onShow(() => {
75 if (app.globalData.isLogin) { 85 if (app.globalData.isLogin) {
......
1 <template> 1 <template>
2 <view> 2 <view>
3 <!-- 级位证书发布 --> 3 <!-- 级位证书发布 -->
4 <view class="appList"> 4 <view class="appList">
5 <view class="appItem" v-for="item in infoList"> 5 <view class="appItem" v-for="item in infoList" :key="item.examId">
6 <view class="status" @click="goDetail(item)"> 6 <view class="status" @click="goDetail(item)">
7 <text :class="{ 7 <text :class="{
8 'text-warning':item.isCert=='0', 8 'text-warning':item.isCert=='0',
9 'text-primary':item.isCert=='1', 9 'text-primary':item.isCert=='1',
10 'text-success':item.isCert=='2' 10 'text-success':item.isCert=='2'
11 }">{{ statusArr[item.isCert]}}</text> 11 }">{{ statusArr[item.isCert]}}</text>
12 </view> 12 </view>
13 13
14 <view class="date">申请日期: {{item.applyTime?.slice(0,10)}}</view> 14 <view class="date">申请日期: {{item.applyTime?.slice(0,10)}}</view>
15 <view class="name mt0" @click="goDetail(item)">{{item.name}}</view> 15 <view class="name mt0" @click="goDetail(item)">{{item.name}}</view>
16 <view class="pp esp">考级考官:{{item.examinerNames}}</view> 16 <view class="pp esp">考级考官:{{item.examinerNames}}</view>
17 <view class="flexbox" @click="goDetail(item)"> 17 <view class="flexbox" @click="goDetail(item)">
18 <view> 18 <!-- <view>
19 申请单位 19 申请单位
20 <view>{{item.memberName}}</view> 20 <view>{{item.memberName}}</view>
21 </view> 21 </view> -->
22 <view> 22 <view>
23 已发/待发证书 23 已发/待发证书
24 <view>{{item.hasCerts}}/<text class="text-danger">{{item.noCerts}}</text></view> 24 <view>{{item.hasCerts}}/<text class="text-danger">{{item.noCerts}}</text></view>
25 </view> 25 </view>
26 <view> 26 <view class="w50">
27 考生数/通过数 27 考生数/通过数
28 <view>{{item.totalNum}}/<text class="text-danger">{{item.pass}}</text></view> 28 <view>{{item.totalNum}}/<text class="text-danger">{{item.pass}}</text></view>
29 </view> 29 </view>
30 </view> 30 </view>
31 <view class="func" v-if="item.isCert != '2'"> 31 <view class="func" v-if="item.isCert != '2'">
32 <button @click="send(item)">一键生成</button> 32 <button @click="send(item)">一键生成</button>
33 </view> 33 </view>
34 </view> 34 </view>
35 </view> 35 </view>
36 36
37 <view class="nodata" v-if="infoList.length==0"> 37 <view class="nodata" v-if="infoList.length==0">
38 <image mode="aspectFit" src="/static/nodata.png"></image> 38 <image mode="aspectFit" src="/static/nodata.png"></image>
39 <text>暂无数据</text> 39 <text>暂无数据</text>
40 </view> 40 </view>
41 </view> 41 </view>
42 </template> 42 </template>
43 43
44 <script setup> 44 <script setup>
45 import * as api from '@/common/api.js' 45 import * as api from '@/common/api.js'
46 import config from '@/config.js' 46 import config from '@/config.js'
47 import _ from 'lodash' 47 import _ from 'lodash'
48 import { 48 import {
49 onMounted, 49 onMounted,
50 ref 50 ref
51 } from 'vue' 51 } from 'vue'
52 import { 52 import {
53 onLoad, 53 onLoad,
54 onShow 54 onShow
55 } from '@dcloudio/uni-app' 55 } from '@dcloudio/uni-app'
56 const app = getApp(); 56 const app = getApp();
57 const queryParams = ref({ 57 const queryParams = ref({
58 // pageNum: 1, 58 // pageNum: 1,
59 // pageSize: 10 59 // pageSize: 10
60 }) 60 })
61 const statusArr = ['未发放', '部分发放', '已发放'] 61 const statusArr = ['未发放', '部分发放', '已发放']
62 const current = ref() 62 const current = ref()
63 const infoList = ref([]) 63 const infoList = ref([])
64 const total = ref(0) 64 const total = ref(0)
65 const deptType = ref('') 65 const deptType = ref('')
66 const userType = ref('') 66 const userType = ref('')
67 onLoad((option) => { 67 onLoad((option) => {
68 queryParams.value.payId = option.payId 68 queryParams.value.payId = option.payId
69 queryParams.value.type = option.type 69 queryParams.value.type = option.type
70 }) 70 if (option.type == 2) {
71 onShow(() => { 71 uni.setNavigationBarTitle({
72 if (app.globalData.isLogin) { 72 title: '段位考试详情'
73 init() 73 })
74 } else { 74 }
75 75 if (option.type == 3) {
76 app.firstLoadCallback = () => { 76 uni.setNavigationBarTitle({
77 init() 77 title: '越段考试详情'
78 }; 78 })
79 } 79 }
80 }) 80 })
81 81 onShow(() => {
82 function init() { 82 if (app.globalData.isLogin) {
83 deptType.value = app.globalData.deptType 83 init()
84 userType.value = app.globalData.userType 84 } else {
85 getList() 85
86 } 86 app.firstLoadCallback = () => {
87 87 init()
88 88 };
89 function getList() { 89 }
90 uni.showLoading({ 90 })
91 title: '加载中' 91
92 }) 92 function init() {
93 api.getExamListByPayId(queryParams.value).then(res => { 93 deptType.value = app.globalData.deptType
94 infoList.value = res.rows 94 userType.value = app.globalData.userType
95 uni.hideLoading() 95 getList()
96 }) 96 }
97 } 97
98 98
99 function goDetail(item) { 99 function getList() {
100 // const form = encodeURIComponent(JSON.stringify(item)) 100 uni.showLoading({
101 let path = `/level/ztx/studentList?type=${queryParams.value.type}&examId=${item.examId}&payId=${queryParams.value.payId}` 101 title: '加载中'
102 uni.navigateTo({ 102 })
103 url: path 103 api.getExamListByPayId(queryParams.value).then(res => {
104 }); 104 infoList.value = res.rows
105 } 105 uni.hideLoading()
106 106 })
107 function send(row) { 107 }
108 uni.showModal({ 108
109 title: '提示', 109 function goDetail(item) {
110 content: `确定生成 ${row.name} 的证书吗`, 110 // const form = encodeURIComponent(JSON.stringify(item))
111 success: function(res) { 111 let path =
112 if (res.confirm) { 112 `/level/ztx/studentList?type=${queryParams.value.type}&examId=${item.examId}&payId=${queryParams.value.payId}`
113 api.submitCert([{ 113 uni.navigateTo({
114 id: row.payId 114 url: path
115 }]).then(res => { 115 });
116 uni.showToast({ 116 }
117 title: `下发成功` 117
118 }) 118 function send(row) {
119 getList() 119 uni.showModal({
120 }) 120 title: '提示',
121 } 121 content: `确定一键下发 ${row.name} 的证书`,
122 } 122 success: function(res) {
123 }) 123 if (res.confirm) {
124 } 124 api.submitCert([{
125 </script> 125 id: queryParams.value.payId,
126 126 children: [{
127 127 id: row.examId
128 <style scoped lang="scss"> 128 }]
129 .mt0 { 129 }]).then(res => {
130 margin-top: 0 !important; 130 uni.showToast({
131 } 131 title: `下发成功`
132 132 })
133 .appList .appItem .name { 133 getList()
134 width: 80%; 134 })
135 word-break: break-all; 135 }
136 } 136 }
137 })
138 }
139 </script>
140
141
142 <style scoped lang="scss">
143 .mt0 {
144 margin-top: 0 !important;
145 }
146
147 .appList .appItem .name {
148 width: 80%;
149 word-break: break-all;
150 }
137 </style> 151 </style>
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -5,9 +5,9 @@ ...@@ -5,9 +5,9 @@
5 v-model="queryParams.name" placeholder="搜索姓名" @blur="getList()" @clear="getList()"> 5 v-model="queryParams.name" placeholder="搜索姓名" @blur="getList()" @clear="getList()">
6 </uni-easyinput> 6 </uni-easyinput>
7 </view> 7 </view>
8 <view class="indexboxre"> 8 <view class="indexboxre" style="height: calc(100vh - 180rpx)">
9 <view class="userlist"> 9 <view class="userlist">
10 <view class="item" v-for="n in list"> 10 <view class="item" v-for="n in list" :key="n.id">
11 <view class="w100"> 11 <view class="w100">
12 <view class="status"> 12 <view class="status">
13 <text class="text-success" v-if="n.isCert == '1' ">已发送</text> 13 <text class="text-success" v-if="n.isCert == '1' ">已发送</text>
......
1 <template> 1 <template>
2 <view> 2 <view>
3 <!-- <uni-segmented-control class="whitebg" :current="current" :values="navs" @clickItem="onClickItem" 3 <!-- <uni-segmented-control class="whitebg" :current="current" :values="navs" @clickItem="onClickItem"
4 styleType="text" activeColor="#AD181F"></uni-segmented-control> --> 4 styleType="text" activeColor="#AD181F"></uni-segmented-control> -->
5 5
6 <!-- 成绩录入 --> 6 <!-- 成绩录入 -->
7 <view class="appList"> 7 <view class="appList">
8 <view class="appItem" v-for="item in infoList" :key="item.recordId" > 8 <view class="appItem" v-for="item in infoList" :key="item.recordId">
9 <view @click="goDetail(item)"> 9 <view @click="goDetail(item)">
10 <view class="status" > 10 <view class="status">
11 <text :class="{ 11 <text :class="{
12 'text-primary':item.scoreStatus=='0', 12 'text-primary':item.scoreStatus=='0',
13 'text-success':item.scoreStatus=='2', 13 'text-success':item.scoreStatus=='2',
14 'text-danger':item.scoreStatus=='3', 14 'text-danger':item.scoreStatus=='3',
15 'text-warning':item.scoreStatus=='4' 15 'text-warning':item.scoreStatus=='4'
16 }">{{ item.scoreStatusStr }}</text> 16 }">{{ item.scoreStatusStr }}</text>
17 </view> 17 </view>
18 18
19 <view class="date" v-if="item.status!='0'&&item.submitTime">提交时间:{{item.submitTime}}</view> 19 <view class="date" v-if="item.status!='0'&&item.submitTime">提交时间:{{item.submitTime}}</view>
20 <view class="name mt0" >{{item.name}}</view> 20 <view class="name mt0">{{item.name}}</view>
21 <view class="pp esp">考段日期:{{item.startTime?.substring(0,16)}}{{item.endTime?.substring(0,16)}}</view> 21 <view class="pp esp">考段日期:{{item.startTime?.substring(0,16)}}{{item.endTime?.substring(0,16)}}
22 <view class="flexbox" > 22 </view>
23 <view> 23 <view class="flexbox">
24 申请日期 24 <view>
25 <view>{{item.applyTime?.substring(0, 10)}}</view> 25 申请日期
26 </view> 26 <view>{{item.applyTime?.substring(0, 10)}}</view>
27 <view> 27 </view>
28 考段考生数 28 <view>
29 <view>{{item.totalNum||'--'}}</view> 29 考段考生数
30 </view> 30 <view>{{item.totalNum||'--'}}</view>
31 <view> 31 </view>
32 总金额 32 <view>
33 <view><text class="text-danger">¥{{(item.totalAmount*1).toFixed(2)}}</text></view> 33 总金额
34 </view> 34 <view><text class="text-danger">¥{{(item.totalAmount*1).toFixed(2)}}</text></view>
35 </view> 35 </view>
36 </view> 36 </view>
37 <!-- <view class="func" v-if="(item.scoreStatus=='0'||item.scoreStatus=='3' || item.scoreStatus=='4')&& item.rankStatus == '1'"> 37 </view>
38 <button @click="scoreEdit(item)">成绩维护</button> 38 <!-- <view class="func" v-if="(item.scoreStatus=='0'||item.scoreStatus=='3' || item.scoreStatus=='4')&& item.rankStatus == '1'">
39 </view> --> 39 <button @click="scoreEdit(item)">成绩维护</button>
40 </view> 40 </view> -->
41 </view> 41 </view>
42 <view class="nodata" v-if="infoList.length==0"> 42 </view>
43 <image mode="aspectFit" src="/static/nodata.png"></image> 43 <view class="nodata" v-if="infoList.length==0">
44 <text>暂无数据</text> 44 <image mode="aspectFit" src="/static/nodata.png"></image>
45 </view> 45 <text>暂无数据</text>
46 </view> 46 </view>
47 </template> 47 </view>
48 48 </template>
49 <script setup> 49
50 import * as examApi from '@/common/api_exam.js' 50 <script setup>
51 import _ from 'lodash' 51 import * as examApi from '@/common/api_exam.js'
52 import { ref } from 'vue' 52 import _ from 'lodash'
53 import { onLoad,onShow } from '@dcloudio/uni-app' 53 import {
54 54 ref
55 const app = getApp(); 55 } from 'vue'
56 const queryParams = ref({ 56 import {
57 status: '0', 57 onLoad,
58 rankStatus:'1' 58 onShow
59 }) 59 } from '@dcloudio/uni-app'
60 const current = ref() 60
61 const navs = ref(['审核中', '审核通过', '审核拒绝']) 61 const app = getApp();
62 const statusArr = ['审批中', '审批通过', '审批拒绝', '审批撤回'] 62 const queryParams = ref({
63 const deptType = ref('') 63 status: '0',
64 const infoList = ref([]) 64 rankStatus: '1'
65 const total = ref(0) 65 })
66 66 const current = ref()
67 onLoad((options)=>{ 67 const navs = ref(['审核中', '审核通过', '审核拒绝'])
68 queryParams.value.type=options.type 68 const statusArr = ['审批中', '审批通过', '审批拒绝', '审批撤回']
69 }) 69 const deptType = ref('')
70 70 const infoList = ref([])
71 onShow(() => { 71 const total = ref(0)
72 if (app.globalData.isLogin) { 72
73 init() 73 onLoad((options) => {
74 } else { 74 queryParams.value.type = options.type
75 app.firstLoadCallback = () => { 75 if (options.type == 2) {
76 init() 76 uni.setNavigationBarTitle({
77 }; 77 title: '段位成绩录入'
78 } 78 })
79 }) 79 }
80 80 if (options.type == 3) {
81 function init(){ 81 uni.setNavigationBarTitle({
82 uni.showLoading({ 82 title: '越段成绩录入'
83 title: '加载中' 83 })
84 }) 84 }
85 deptType.value = app.globalData.deptType 85 })
86 getList() 86
87 } 87 onShow(() => {
88 88 if (app.globalData.isLogin) {
89 function onClickItem(e) { 89 init()
90 uni.showLoading({ 90 } else {
91 title: '加载中' 91 app.firstLoadCallback = () => {
92 }) 92 init()
93 queryParams.value.status = e.currentIndex 93 };
94 getList() 94 }
95 } 95 })
96 96
97 function getList() { 97 function init() {
98 examApi.getRankScoreList(queryParams.value).then(res => { 98 uni.showLoading({
99 99 title: '加载中'
100 infoList.value = res.rows 100 })
101 total.value = res.total 101 deptType.value = app.globalData.deptType
102 102 getList()
103 uni.hideLoading() 103 }
104 }) 104
105 } 105 function onClickItem(e) {
106 106 uni.showLoading({
107 function scoreEdit(item) { 107 title: '加载中'
108 console.log(item.sourceData) 108 })
109 var obj = { 109 queryParams.value.status = e.currentIndex
110 flag: flag, 110 getList()
111 reason: null, 111 }
112 id: item.recordId 112
113 } 113 function getList() {
114 114 examApi.getRankScoreList(queryParams.value).then(res => {
115 if (flag == '2') { 115
116 // 拒绝 116 infoList.value = res.rows
117 // 弹出框填写理由 117 total.value = res.total
118 uni.showModal({ 118
119 title: '请输入拒绝理由', 119 uni.hideLoading()
120 editable: true, 120 })
121 success: function(res) { 121 }
122 if (res.confirm) { 122
123 if (!res.content) { 123 function scoreEdit(item) {
124 uni.showToast({ 124 console.log(item.sourceData)
125 title: '请输入拒绝理由', 125 var obj = {
126 icon: 'none' 126 flag: flag,
127 }) 127 reason: null,
128 } else { 128 id: item.recordId
129 obj.reason = res.content 129 }
130 doApproval(obj) 130
131 } 131 if (flag == '2') {
132 } 132 // 拒绝
133 } 133 // 弹出框填写理由
134 }) 134 uni.showModal({
135 } else if (flag == '1') { 135 title: '请输入拒绝理由',
136 // 二次确认 136 editable: true,
137 uni.showModal({ 137 success: function(res) {
138 title: '提示', 138 if (res.confirm) {
139 content: `确定审批通过吗`, 139 if (!res.content) {
140 success: function(res) { 140 uni.showToast({
141 if (res.confirm) { 141 title: '请输入拒绝理由',
142 doApproval(obj) 142 icon: 'none'
143 } 143 })
144 } 144 } else {
145 }) 145 obj.reason = res.content
146 } 146 doApproval(obj)
147 } 147 }
148 148 }
149 function doApproval(obj) { 149 }
150 examApi.doMergeFlows(obj).then((res) => { 150 })
151 uni.showToast({ 151 } else if (flag == '1') {
152 title: '操作成功', 152 // 二次确认
153 icon: 'none' 153 uni.showModal({
154 }) 154 title: '提示',
155 getList() 155 content: `确定审批通过吗`,
156 }) 156 success: function(res) {
157 } 157 if (res.confirm) {
158 158 doApproval(obj)
159 function goDetail(item) { 159 }
160 let path = `/pages/rank/applyDetail?examId=${item.examId}` 160 }
161 uni.navigateTo({ 161 })
162 url: path 162 }
163 }); 163 }
164 } 164
165 165 function doApproval(obj) {
166 </script> 166 examApi.doMergeFlows(obj).then((res) => {
167 167 uni.showToast({
168 <style lang="scss" scoped> 168 title: '操作成功',
169 169 icon: 'none'
170 </style> 170 })
171 getList()
172 })
173 }
174
175 function goDetail(item) {
176 let path = `/pages/rank/applyDetail?examId=${item.examId}`
177 uni.navigateTo({
178 url: path
179 });
180 }
181 </script>
182
183 <style lang="scss" scoped>
184
185 </style>
...\ No newline at end of file ...\ No newline at end of file
......
1 <template> 1 <template>
2 <view> 2 <view>
3 <uni-segmented-control class="whitebg" :current="current" :values="navs" @clickItem="onClickItem" 3 <uni-segmented-control class="whitebg" :current="current" :values="navs" @clickItem="onClickItem"
4 styleType="text" activeColor="#AD181F"></uni-segmented-control> 4 styleType="text" activeColor="#AD181F"></uni-segmented-control>
5 5
6 <!-- 段位考试审核 --> 6 <!-- 段位考试审核 -->
7 <view class="appList"> 7 <view class="appList">
8 <view class="appItem" v-for="item in infoList" :key="item.recordId" > 8 <view class="appItem" v-for="item in infoList" :key="item.recordId">
9 <view @click="goDetail(item)"> 9 <view @click="goDetail(item)">
10 <view class="status" > 10 <view class="status">
11 <text :class="{ 11 <text :class="{
12 'text-primary':item.auditStatus=='0', 12 'text-primary':item.auditStatus=='0',
13 'text-success':item.auditStatus=='1', 13 'text-success':item.auditStatus=='1',
14 'text-danger':item.auditStatus=='2', 14 'text-danger':item.auditStatus=='2',
15 'text-warning':item.auditStatus=='3' 15 'text-warning':item.auditStatus=='3'
16 }">{{ item.statusStr }}</text> 16 }">{{ item.statusStr }}</text>
17 </view> 17 </view>
18 18
19 <view class="date" v-if="item.status!='0'&&item.submitTime"> 19 <view class="date" v-if="item.status!='0'&&item.submitTime">
20 <uni-icons type="calendar-filled" size="16" color="#AD181F"></uni-icons> 20 <uni-icons type="calendar-filled" size="16" color="#AD181F"></uni-icons>
21 提交时间:{{item.submitTime}}</view> 21 提交时间:{{item.submitTime}}
22 <view class="name mt10" ><text class="dot"></text>{{item.name}}</view> 22 </view>
23 <view class="pp esp">考段日期:{{item.startTime.substring(0,16)}}{{item.endTime.substring(0,16)}}</view> 23 <view class="name mt10"><text class="dot"></text>{{item.name}}</view>
24 <view class="flexbox" > 24 <view class="pp esp">考段日期:{{item.startTime.substring(0,16)}}{{item.endTime.substring(0,16)}}
25 <view> 25 </view>
26 申请日期 26 <view class="flexbox">
27 <view>{{item.applyTime.substring(0, 10)}}</view> 27 <view>
28 </view> 28 申请日期
29 <view> 29 <view>{{item.applyTime.substring(0, 10)}}</view>
30 考段考生数 30 </view>
31 <view>{{item.totalNum}}</view> 31 <view>
32 </view> 32 考段考生数
33 <view> 33 <view>{{item.totalNum}}</view>
34 总金额 34 </view>
35 <view> 35 <view>
36 <text class="text-danger">¥{{(item.totalAmount*1).toFixed(2)}}</text> 36 总金额
37 </view> 37 <view>
38 </view> 38 <text class="text-danger">¥{{(item.totalAmount*1).toFixed(2)}}</text>
39 </view> 39 </view>
40 </view> 40 </view>
41 <view class="func" v-if="item.auditStatus=='0'"> 41 </view>
42 <button @click="audit(item,'2')">拒绝</button> 42 </view>
43 <button @click="audit(item,'1')">同意</button> 43 <view class="func" v-if="item.auditStatus=='0'">
44 </view> 44 <button @click="audit(item,'2')">拒绝</button>
45 </view> 45 <button @click="audit(item,'1')">同意</button>
46 </view> 46 </view>
47 <view class="nodata" v-if="infoList.length==0"> 47 </view>
48 <image mode="aspectFit" src="/static/nodata.png"></image> 48 </view>
49 <text>暂无数据</text> 49 <view class="nodata" v-if="infoList.length==0">
50 </view> 50 <image mode="aspectFit" src="/static/nodata.png"></image>
51 </view> 51 <text>暂无数据</text>
52 </template> 52 </view>
53 53 </view>
54 <script setup> 54 </template>
55 import * as examApi from '@/common/api_exam.js' 55
56 import _ from 'lodash' 56 <script setup>
57 import { ref } from 'vue' 57 import * as examApi from '@/common/api_exam.js'
58 import { onLoad,onShow } from '@dcloudio/uni-app' 58 import _ from 'lodash'
59 59 import {
60 const app = getApp(); 60 ref
61 const queryParams = ref({ 61 } from 'vue'
62 status: '0', 62 import {
63 rankStatus:'1' 63 onLoad,
64 }) 64 onShow
65 const current = ref() 65 } from '@dcloudio/uni-app'
66 const navs = ref(['审核中', '审核通过', '审核拒绝']) 66
67 const statusArr = ['审批中', '审批通过', '审批拒绝', '审批撤回'] 67 const app = getApp();
68 const deptType = ref('') 68 const queryParams = ref({
69 const infoList = ref([]) 69 status: '0',
70 const total = ref(0) 70 rankStatus: '1'
71 71 })
72 onLoad((options)=>{ 72 const current = ref()
73 queryParams.value.type=options.type 73 const navs = ref(['审核中', '审核通过', '审核拒绝'])
74 }) 74 const statusArr = ['审批中', '审批通过', '审批拒绝', '审批撤回']
75 75 const deptType = ref('')
76 onShow(() => { 76 const infoList = ref([])
77 if (app.globalData.isLogin) { 77 const total = ref(0)
78 init() 78
79 } else { 79 onLoad((options) => {
80 app.firstLoadCallback = () => { 80 queryParams.value.type = options.type
81 init() 81 if (options.type == 2) {
82 }; 82 uni.setNavigationBarTitle({
83 } 83 title: '段位考试审核'
84 }) 84 })
85 85 }
86 function init(){ 86 if (options.type == 3) {
87 uni.showLoading({ 87 uni.setNavigationBarTitle({
88 title: '加载中' 88 title: '越段考试审核'
89 }) 89 })
90 deptType.value = app.globalData.deptType 90 }
91 getList() 91 })
92 } 92
93 93 onShow(() => {
94 function onClickItem(e) { 94 if (app.globalData.isLogin) {
95 uni.showLoading({ 95 init()
96 title: '加载中' 96 } else {
97 }) 97 app.firstLoadCallback = () => {
98 queryParams.value.status = e.currentIndex 98 init()
99 getList() 99 };
100 } 100 }
101 101 })
102 function getList() { 102
103 examApi.getVerityList(queryParams.value).then(res => { 103 function init() {
104 uni.hideLoading() 104 uni.showLoading({
105 const list = [] 105 title: '加载中'
106 _.each(res.rows, r => { 106 })
107 const item = JSON.parse(r.content) 107 deptType.value = app.globalData.deptType
108 item.recordId = r.recordId 108 getList()
109 item.auditStatus = r.auditStatus 109 }
110 item.submitStatus = r.submitStatus 110
111 item.distributeTime = r.distributeTime 111 function onClickItem(e) {
112 item.statusStr = statusArr[r.auditStatus] 112 uni.showLoading({
113 item.sourceData = r 113 title: '加载中'
114 item.scoreStatus = r.scoreStatus 114 })
115 item.status = r.status 115 queryParams.value.status = e.currentIndex
116 item.isView = r.isView 116 getList()
117 item.payStatus = r.payStatus 117 }
118 item.rankStatus = r.rankStatus 118
119 item.processCentBar = r.processCentBar 119 function getList() {
120 list.push(item) 120 examApi.getVerityList(queryParams.value).then(res => {
121 }) 121 uni.hideLoading()
122 122 const list = []
123 infoList.value = list 123 _.each(res.rows, r => {
124 total.value = res.total 124 const item = JSON.parse(r.content)
125 }) 125 item.recordId = r.recordId
126 } 126 item.auditStatus = r.auditStatus
127 127 item.submitStatus = r.submitStatus
128 function audit(item, flag) { 128 item.distributeTime = r.distributeTime
129 console.log(item.sourceData) 129 item.statusStr = statusArr[r.auditStatus]
130 var obj = { 130 item.sourceData = r
131 flag: flag, 131 item.scoreStatus = r.scoreStatus
132 reason: null, 132 item.status = r.status
133 id: item.recordId 133 item.isView = r.isView
134 } 134 item.payStatus = r.payStatus
135 135 item.rankStatus = r.rankStatus
136 if (flag == '2') { 136 item.processCentBar = r.processCentBar
137 // 拒绝 137 list.push(item)
138 // 弹出框填写理由 138 })
139 uni.showModal({ 139
140 title: '请输入拒绝理由', 140 infoList.value = list
141 editable: true, 141 total.value = res.total
142 success: function(res) { 142 })
143 if (res.confirm) { 143 }
144 if (!res.content) { 144
145 uni.showToast({ 145 function audit(item, flag) {
146 title: '请输入拒绝理由', 146 console.log(item.sourceData)
147 icon: 'none' 147 var obj = {
148 }) 148 flag: flag,
149 } else { 149 reason: null,
150 obj.reason = res.content 150 id: item.recordId
151 doApproval(obj) 151 }
152 } 152
153 } 153 if (flag == '2') {
154 } 154 // 拒绝
155 }) 155 // 弹出框填写理由
156 } else if (flag == '1') { 156 uni.showModal({
157 // 二次确认 157 title: '请输入拒绝理由',
158 uni.showModal({ 158 editable: true,
159 title: '提示', 159 success: function(res) {
160 content: `确定审批通过吗`, 160 if (res.confirm) {
161 success: function(res) { 161 if (!res.content) {
162 if (res.confirm) { 162 uni.showToast({
163 doApproval(obj) 163 title: '请输入拒绝理由',
164 } 164 icon: 'none'
165 } 165 })
166 }) 166 } else {
167 } 167 obj.reason = res.content
168 } 168 doApproval(obj)
169 169 }
170 function doApproval(obj) { 170 }
171 examApi.doMergeFlows(obj).then((res) => { 171 }
172 uni.showToast({ 172 })
173 title: '操作成功', 173 } else if (flag == '1') {
174 icon: 'none' 174 // 二次确认
175 }) 175 uni.showModal({
176 getList() 176 title: '提示',
177 }) 177 content: `确定审批通过吗`,
178 } 178 success: function(res) {
179 179 if (res.confirm) {
180 function goDetail(item) { 180 doApproval(obj)
181 let path = `/pages/rank/applyDetail?examId=${item.examId}` 181 }
182 uni.navigateTo({ 182 }
183 url: path 183 })
184 }); 184 }
185 } 185 }
186 186
187 </script> 187 function doApproval(obj) {
188 188 examApi.doMergeFlows(obj).then((res) => {
189 <style lang="scss" scoped> 189 uni.showToast({
190 190 title: '操作成功',
191 </style> 191 icon: 'none'
192 })
193 getList()
194 })
195 }
196
197 function goDetail(item) {
198 let path = `/pages/rank/applyDetail?examId=${item.examId}`
199 uni.navigateTo({
200 url: path
201 });
202 }
203 </script>
204
205 <style lang="scss" scoped>
206
207 </style>
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -155,7 +155,7 @@ ...@@ -155,7 +155,7 @@
155 value: '3', 155 value: '3',
156 text: "外国护照" 156 text: "外国护照"
157 }, { 157 }, {
158 value: '5', 158 value: '4',
159 text: '户口本' 159 text: '户口本'
160 } 160 }
161 ]) 161 ])
...@@ -188,7 +188,8 @@ ...@@ -188,7 +188,8 @@
188 }); 188 });
189 onLoad((option) => { 189 onLoad((option) => {
190 if (option.tab == '1') { 190 if (option.tab == '1') {
191 current.value = 1 191 current.value = 1
192 baseFormData.value.idcType = option.idcType || 0
192 } 193 }
193 // console.log(current.value,option.tab) 194 // console.log(current.value,option.tab)
194 getRegionsList() 195 getRegionsList()
...@@ -289,7 +290,7 @@ ...@@ -289,7 +290,7 @@
289 baseFormData.value = { 290 baseFormData.value = {
290 photo: '', 291 photo: '',
291 sex: '0', 292 sex: '0',
292 idcType: '0', 293 idcType: baseFormData.value.idcType,
293 perType: '1', 294 perType: '1',
294 }; 295 };
295 } 296 }
...@@ -452,7 +453,7 @@ ...@@ -452,7 +453,7 @@
452 }) 453 })
453 return 454 return
454 } 455 }
455 if (baseFormData.value.idcType == 1 || baseFormData.value.idcType == 3 || baseFormData.value.idcType == 4) { 456 if ( baseFormData.value.idcType == 3 ) {
456 //转换为大写并判断位数12 457 //转换为大写并判断位数12
457 baseFormData.value.idcCode = baseFormData.value.idcCode.toUpperCase() 458 baseFormData.value.idcCode = baseFormData.value.idcCode.toUpperCase()
458 // var regex = /^[a-zA-Z]/ 459 // var regex = /^[a-zA-Z]/
...@@ -491,15 +492,9 @@ ...@@ -491,15 +492,9 @@
491 icon: 'none' 492 icon: 'none'
492 }) 493 })
493 uni.redirectTo({ 494 uni.redirectTo({
494 url: `/personalVip/addVip?tab=${current.value}` 495 url: `/personalVip/addVip?tab=${current.value}&idcType=${baseFormData.value.idcType}`
495 }); 496 });
496 497
497 }).catch(() => {
498 let msg = '您已注册该会员,请不要重复注册!'
499 uni.showToast({
500 title: msg,
501 icon: 'none'
502 })
503 }) 498 })
504 } 499 }
505 } 500 }
......
...@@ -9,10 +9,12 @@ ...@@ -9,10 +9,12 @@
9 <view class="photobox"> 9 <view class="photobox">
10 <view class="colorful">{{n.perName?.slice(0,1)}}</view> 10 <view class="colorful">{{n.perName?.slice(0,1)}}</view>
11 </view> 11 </view>
12 <view> 12 <view>
13 <!-- {{form}} -->
13 <view class="name">{{n.perName}}</view> 14 <view class="name">{{n.perName}}</view>
14 <view class="date">申请调入一级协会 {{n.sourceShenDeptName||'--'}}</view> 15 <view class="date" v-if="deptType==1">原一级协会 <text class="text-primary">{{n.sourceShenDeptName||'--'}}</text></view>
15 <view class="date">申请调入单位 {{n.targetDeptName||'--'}}</view> 16 <view class="date">申请调入一级协会 <text class="text-primary">{{form.shenDeptName||'--'}}</text></view>
17 <view class="date">申请调入单位 <text class="text-primary">{{n.targetDeptName||'--'}}</text></view>
16 </view> 18 </view>
17 </view> 19 </view>
18 </view> 20 </view>
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!