cf998da8 by 张猛

ztx个人审核

1 parent d598ebdd
...@@ -1932,3 +1932,12 @@ export function GroupGetLogs(id) { ...@@ -1932,3 +1932,12 @@ export function GroupGetLogs(id) {
1932 }) 1932 })
1933 } 1933 }
1934 1934
1935
1936 // 新个人会员审批
1937 export function auditList(params) {
1938 return request({
1939 url: '/person/paymentRangeNew/list',
1940 method: 'get',
1941 params: params
1942 })
1943 }
......
1 // dev 1 // dev
2 // const baseUrl_api = 'http://192.168.1.137:8787' 2 const baseUrl_api = 'http://192.168.1.137:8787'
3 const baseUrl_api = 'http://tk001.wxjylt.com/stage-api' 3 // const baseUrl_api = 'http://tk001.wxjylt.com/stage-api'
4 const loginImage_api = 'http://tk001.wxjylt.com/stage-api' 4 const loginImage_api = 'http://tk001.wxjylt.com/stage-api'
5 const payUrl = 'https://wxpay.cmbc.com.cn/mobilePlatform/appserver/lcbpPay.do' 5 const payUrl = 'https://wxpay.cmbc.com.cn/mobilePlatform/appserver/lcbpPay.do'
6 6
......
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
1 <template> 1 <template>
2 <view> 2 <view>
3 <view class="text-center whitebg" v-if="userType=='2'"> 3 <!-- <view class="text-center whitebg" v-if="userType=='2'">-->
4 <view class="cardNav" v-if="userType=='2'"> 4 <!-- <view class="cardNav" v-if="userType=='2'">-->
5 <view class="active">审核</view> 5 <!-- <view class="active">审核</view>-->
6 <view @click="goMerge">合并</view> 6 <!-- <view @click="goMerge">合并</view>-->
7 <view @click="goMergeUp">提交</view> 7 <!-- <view @click="goMergeUp">提交</view>-->
8 </view> 8 <!-- </view>-->
9 </view> 9 <!-- </view>-->
10 <uni-segmented-control class="whitebg" :current="current" :values="navs" @clickItem="onClickItem" 10 <uni-segmented-control
11 styleType="text" activeColor="#AD181F"></uni-segmented-control> 11 :current="current"
12 12 :values="navs"
13 <!-- 缴费审核 --> 13 activeColor="#AD181F"
14 <view v-if="total>0" class="vipData" style="flex-wrap: wrap;"> 14 class="whitebg"
15 <view class="w50">人数合计 <text>{{ statistical.personCount }}</text></view> 15 styleType="text"
16 <view class="w50">新会员合计 <text>{{ statistical.newPersonCount }}</text></view> 16 @clickItem="onClickItem">
17 <view class="w50">续费合计 <text>{{ statistical.oldPersonCount }}</text></view> 17 </uni-segmented-control>
18 <view class="w50">年限合计 <text>{{ statistical.totalYear }}</text></view> 18
19 </view> 19 <!-- 缴费审核 -->
20 <view class="appList"> 20 <view v-if="total>0" class="vipData" style="flex-wrap: wrap;">
21 <view class="appItem" v-for="(item,index) in list" :key="index"> 21 <view class="w50">费用合计
22 <view class="status" @click="goDetail(item)"> 22 <text>{{ statistical.totalCost?.toFixed(2) }}</text>
23 <text v-if="item.auditStatus==0" class="text-primary">审核中</text> 23 </view>
24 <text v-if="item.auditStatus==1" class="text-success"> 审核通过</text> 24 <view class="w50">人数合计
25 <text v-if="item.auditStatus==2" class="text-danger"> 审核拒绝</text> 25 <text>{{ statistical.personCount }}</text>
26 <text v-if="item.auditStatus==3" class="text-warning">已撤回</text> 26 </view>
27 </view> 27 <view class="w50">新会员合计
28 <view class="date" @click="goDetail(item)"> 28 <text>{{ statistical.newPersonCount }}</text>
29 <uni-icons type="calendar-filled" size="16" color="#AD181F"></uni-icons> 29 </view>
30 {{item.content.commitTime}} 提交 30 <view class="w50">续费合计
31 </view> 31 <text>{{ statistical.oldPersonCount }}</text>
32 <view class="text-primary" v-if="item.content?.wfCode" @click="goDetail(item)">{{item.content?.wfCode}} 32 </view>
33 </view> 33 <view class="w50">年限合计
34 <view class="name" @click="goDetail(item)">{{item.content.name}}</view> 34 <text>{{ statistical.totalYear }}</text>
35 <view class="flexbox" @click="goDetail(item)"> 35 </view>
36 <view> 36 </view>
37 人数合计 37 <view class="appList">
38 <view>{{item.content.personCount}}</view> 38 <view v-for="(item,index) in list" :key="index" class="appItem">
39 </view> 39 <view class="status" @click="goDetail(item)">
40 <view> 40 <text v-if="item.auditStatus==1" class="text-primary">审核中</text>
41 年限合计 41 <text v-if="item.auditStatus==2" class="text-success"> 审核通过</text>
42 <view>{{item.content.totalYear}}</view> 42 <text v-if="item.auditStatus==3" class="text-danger"> 审核拒绝</text>
43 </view> 43 </view>
44 <view> 44 <view class="date" @click="goDetail(item)">
45 提交单位 45 <uni-icons color="#AD181F" size="16" type="calendar-filled"></uni-icons>
46 <view>{{item.content.memberName}}</view> 46 {{ item.content?.commitTime }} 提交
47 </view> 47 </view>
48 </view> 48 <view v-if="item?.wfCode" class="text-primary" @click="goDetail(item)">{{ item?.wfCode }}
49 <view class="func" v-if="item.auditStatus==0"> 49 </view>
50 <button @click="audit(item.recordId,'0')">拒绝</button> 50 <view class="name" @click="goDetail(item)">{{ item.name }}</view>
51 <button @click="audit(item.recordId,'1')">同意</button> 51 <view class="flexbox" @click="goDetail(item)">
52 </view> 52 <view>
53 <view class="func" v-if="item.auditStatus==1 && item.isView == 1"> 53 人数合计
54 <button @click="handleDelete(item)">撤回</button> 54 <view>{{ item.personCount }}</view>
55 </view> 55 </view>
56 </view> 56 <view>
57 </view> 57 年限合计
58 58 <view>{{ item.totalYear }}</view>
59 59 </view>
60 60 <view>
61 <view class="nodata" v-if="list.length==0"> 61 提交单位
62 <image mode="aspectFit" :src="config.baseUrl_api + '/fs/static/nodata.png'"></image> 62 <view>{{ item.memberName }}</view>
63 <text>暂无数据</text> 63 </view>
64 </view> 64 </view>
65 <!-- <view v-if="userType=='2'" class="block-btn-box"> 65 <view v-if="item.auditStatus==0" class="func">
66 <button @click="goMerge" class="btn-red-kx">前往合并 > </button> 66 <button @click="audit(item.recordId,'0')">拒绝</button>
67 </view> --> 67 <button @click="audit(item.recordId,'1')">同意</button>
68 </view> 68 </view>
69 <view v-if="item.auditStatus==1 && item.isView == 1" class="func">
70 <button @click="handleDelete(item)">撤回</button>
71 </view>
72 </view>
73 </view>
74
75
76 <view v-if="list.length==0" class="nodata">
77 <image :src="config.baseUrl_api + '/fs/static/nodata.png'" mode="aspectFit"></image>
78 <text>暂无数据</text>
79 </view>
80 <!-- <view v-if="userType=='2'" class="block-btn-box">
81 <button @click="goMerge" class="btn-red-kx">前往合并 > </button>
82 </view> -->
83 </view>
69 </template> 84 </template>
70 85
71 <script setup> 86 <script setup>
72 import * as api from '@/common/api.js' 87 import * as api from '@/common/api.js'
73 import config from '@/config.js' 88 import config from '@/config.js'
74 import { 89 import {
75 onMounted, 90 onMounted,
76 ref 91 ref
77 } from 'vue' 92 } from 'vue'
78 import { 93 import {
79 onShow 94 onShow
80 } from '@dcloudio/uni-app' 95 } from '@dcloudio/uni-app'
81 const app = getApp(); 96 import {auditList} from "@/common/api.js";
82 const queryParams = ref({
83 // pageNum: 1,
84 // pageSize: 10
85 auditStatus: '0'
86 })
87 const navs = ref(['待审核', '审核通过', '审核拒绝', '撤回'])
88 const current = ref(0)
89 const list = ref([])
90 const statistical = ref({})
91 const total = ref(0)
92 const deptType = ref('')
93 const userType = ref('')
94 onShow(() => {
95 if (app.globalData.isLogin) {
96 init()
97 } else {
98 app.firstLoadCallback = () => {
99 init()
100 };
101 }
102 })
103
104 function init() {
105 userType.value = app.globalData.userType
106 deptType.value = app.globalData.deptType
107 getList()
108 }
109
110 function onClickItem(e) {
111 console.log(e)
112 queryParams.value.auditStatus = e.currentIndex
113 getList()
114 }
115
116 function getList() {
117 uni.showLoading({
118 title: `加载中`,
119 mask: true
120 })
121 statistical.value = {
122 personCount: 0,
123 newPersonCount: 0,
124 oldPersonCount: 0,
125 totalYear: 0
126 }
127 if (deptType.value == 2 || deptType.value == 3) {
128 queryParams.value.mergeFlag = 0
129 }
130 api.getVerifyList(queryParams.value).then(res => {
131 list.value = res.rows
132 list.value.forEach(item => {
133 item.content = JSON.parse(item.content)
134 statistical.value.personCount += (item.content.personCount * 1)
135 statistical.value.newPersonCount += (item.content.newPersonCount * 1)
136 statistical.value.oldPersonCount += (item.content.oldPersonCount * 1)
137 statistical.value.totalYear += (item.content.totalYear * 1)
138 97
139 }) 98 const app = getApp();
140 total.value = res.total 99 const queryParams = ref({
141 uni.hideLoading() 100 // pageNum: 1,
142 }) 101 // pageSize: 10
143 } 102 auditStatus: "1",
103 auditFlag: "1"
104
105 })
106 const navs = ref(['待审核', '审核通过', '审核拒绝',])
107 const current = ref(0)
108 const list = ref([])
109 const statistical = ref({})
110 const total = ref(0)
111 const deptType = ref('')
112 const userType = ref('')
113 onShow(() => {
114 if (app.globalData.isLogin) {
115 init()
116 } else {
117 app.firstLoadCallback = () => {
118 init()
119 };
120 }
121 })
144 122
145 function handleDelete(row) { 123 function init() {
146 uni.showModal({ 124 userType.value = app.globalData.userType
147 title: '提示', 125 deptType.value = app.globalData.deptType
148 content: `确定撤回 ${row.content.name}?`, 126 getList()
149 success: function(res) { 127 }
150 if (res.confirm) {
151 api.withDraw({
152 recordId: row.recordId,
153 reason: row.reason
154 }).then(res => {
155 uni.showToast({
156 title: `操作成功`
157 })
158 getList()
159 })
160 }
161 }
162 })
163 }
164 128
165 function audit(recordId, flag) { 129 function onClickItem(e) {
166 if (flag == '0') { 130 queryParams.value.auditStatus = e.currentIndex + 1
167 // 拒绝 131 console.log(queryParams.value.auditStatus)
168 // 弹出框填写理由 132 getList()
169 uni.showModal({ 133 }
170 title: '请输入拒绝理由',
171 editable: true,
172 success: function(res) {
173 if (res.confirm) {
174 if (!res.content) {
175 uni.showToast({
176 title: '请输入拒绝理由',
177 icon: 'none'
178 })
179 } else {
180 doApproval(recordId, flag, res.content)
181 }
182 }
183 }
184 })
185 } else if (flag == '1') {
186 // 二次确认
187 uni.showModal({
188 title: '提示',
189 content: `确定审批通过吗`,
190 success: function(res) {
191 if (res.confirm) {
192 doApproval(recordId, flag)
193 }
194 }
195 })
196 }
197 }
198 134
199 function doApproval(recordId, flag, reason) { 135 async function getList() {
200 var obj = { 136 uni.showLoading({
201 flag: flag, 137 title: `加载中`,
202 reason: reason || '', 138 mask: true
203 recordIds: [] 139 })
204 } 140 if (deptType.value == 2 || deptType.value == 3) {
205 obj.recordIds.push(recordId) 141 queryParams.value.mergeFlag = 0
206 console.log(obj) 142 }
207 uni.showLoading({ 143 const res = await api.auditList(queryParams.value)
208 title: '加载中', 144 list.value = res.rows
209 mask: true 145 total.value = res.total
210 }) 146
211 api.audit(obj).then((res) => { 147 statistical.value = {
212 uni.hideLoading() 148 totalCost: 0,
213 uni.showToast({ 149 personCount: 0,
214 title: '操作成功', 150 newPersonCount: 0,
215 icon: 'none' 151 oldPersonCount: 0,
216 }) 152 totalYear: 0
217 getList() 153 }
218 }) 154 for (const item of list.value) {
219 } 155 item.content = JSON.parse(item.content)
156 item.doc = JSON.parse(item.doc)
157 statistical.value.totalCost += (item.content.allFee * 1)
158 statistical.value.personCount += (item.content.personCount * 1)
159 statistical.value.newPersonCount += (item.content.newPersonCount * 1)
160 statistical.value.oldPersonCount += (item.content.oldPersonCount * 1)
161 statistical.value.totalYear += (item.content.totalYear * 1)
162 }
163 uni.hideLoading()
164
165 }
220 166
221 function goDetail(item) { 167 function handleDelete(row) {
222 const form = encodeURIComponent(JSON.stringify(item)) 168 uni.showModal({
223 // console.log(userType.value) 169 title: '提示',
170 content: `确定撤回 ${row.name}?`,
171 success: function (res) {
172 if (res.confirm) {
173 api.withDraw({
174 recordId: row.recordId,
175 reason: row.reason
176 }).then(res => {
177 uni.showToast({
178 title: `操作成功`
179 })
180 getList()
181 })
182 }
183 }
184 })
185 }
224 186
225 let path = 187 function audit(recordId, flag) {
226 `/personalVip/auditDetail?form=${form}` 188 if (flag == '0') {
227 uni.navigateTo({ 189 // 拒绝
228 url: path 190 // 弹出框填写理由
229 }); 191 uni.showModal({
192 title: '请输入拒绝理由',
193 editable: true,
194 success: function (res) {
195 if (res.confirm) {
196 if (!res) {
197 uni.showToast({
198 title: '请输入拒绝理由',
199 icon: 'none'
200 })
201 } else {
202 doApproval(recordId, flag, res)
203 }
204 }
205 }
206 })
207 } else if (flag == '1') {
208 // 二次确认
209 uni.showModal({
210 title: '提示',
211 content: `确定审批通过吗`,
212 success: function (res) {
213 if (res.confirm) {
214 doApproval(recordId, flag)
215 }
216 }
217 })
218 }
219 }
230 220
221 function doApproval(recordId, flag, reason) {
222 var obj = {
223 flag: flag,
224 reason: reason || '',
225 recordIds: []
226 }
227 obj.recordIds.push(recordId)
228 console.log(obj)
229 uni.showLoading({
230 title: '加载中',
231 mask: true
232 })
233 api.audit(obj).then((res) => {
234 uni.hideLoading()
235 uni.showToast({
236 title: '操作成功',
237 icon: 'none'
238 })
239 getList()
240 })
241 }
231 242
232 } 243 function goDetail(item) {
244 const form = encodeURIComponent(JSON.stringify(item))
245 // console.log(userType.value)
246
247 let path =
248 `/personalVip/auditDetail?form=${form}`
249 uni.navigateTo({
250 url: path
251 });
252
253
254 }
233 255
234 function goMerge() { 256 function goMerge() {
235 let path = `/personalVip/sheng/merge` 257 let path = `/personalVip/sheng/merge`
236 uni.redirectTo({ 258 uni.redirectTo({
237 url: path 259 url: path
238 }); 260 });
239 } 261 }
240 262
241 function goMergeUp() { 263 function goMergeUp() {
242 let path = `/personalVip/sheng/mergeUp` 264 let path = `/personalVip/sheng/mergeUp`
243 uni.redirectTo({ 265 uni.redirectTo({
244 url: path 266 url: path
245 }); 267 });
246 } 268 }
247 </script> 269 </script>
248 270
249 <style> 271 <style>
250 272
251 </style>
...\ No newline at end of file ...\ No newline at end of file
273 </style>
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!