1d933336 by 杨炀

no message

1 parent 51c28ec6
...@@ -220,7 +220,14 @@ export function addPersonToMyDept(data) { ...@@ -220,7 +220,14 @@ export function addPersonToMyDept(data) {
220 params: data 220 params: data
221 }) 221 })
222 } 222 }
223 223 // 提交人工审核
224 export function addPersonCommit(data) {
225 return request({
226 url: `/system/input/commit?fileUrl=${data.fileUrl}`,
227 method: 'post',
228 params: data
229 })
230 }
224 // 图片上传 231 // 图片上传
225 export function uploadImg(e) { 232 export function uploadImg(e) {
226 const tempFilePaths = e.tempFilePaths; 233 const tempFilePaths = e.tempFilePaths;
...@@ -1248,4 +1255,4 @@ export function checkPersonByPersonId(perId) { ...@@ -1248,4 +1255,4 @@ export function checkPersonByPersonId(perId) {
1248 url: `/exam/person/checkPersonByPersonId/${perId}`, 1255 url: `/exam/person/checkPersonByPersonId/${perId}`,
1249 method: 'get' 1256 method: 'get'
1250 }) 1257 })
1251 }
...\ No newline at end of file ...\ No newline at end of file
1258 }
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
4 4
5 // staging 会员系统 5 // staging 会员系统
6 // const baseUrl_api = "http://22yidpjzjifv.ngrok.xiaomiqiu123.top/stage-api/"; 6 // const baseUrl_api = "http://22yidpjzjifv.ngrok.xiaomiqiu123.top/stage-api/";
7 const baseUrl_api = "http://36.153.235.222:7899/stage-api"; 7 const baseUrl_api = "https://ztx.itechtop.cn:8443/stage-api";
8 // const baseUrl_api = 'http://192.168.1.132:8787' 8 // const baseUrl_api = 'http://192.168.1.132:8787'
9 // const baseUrl_api = 'https://tkcn.19wk.cn:8443/stage-api' 9 // const baseUrl_api = 'https://tkcn.19wk.cn:8443/stage-api'
10 10
......
1 <template> 1 <template>
2 <view> 2 <view>
3 <!-- 会员缴费单 --> 3 <!-- 会员缴费单 -->
4 <view class="appList"> 4 <view class="appList">
5 <view class="vipData" v-show="totalCost>0"> 5 <view class="vipData" v-show="totalCost>0">
6 <view>费用合计:<text>{{ totalCost.toFixed(2) }}</text></view> 6 <view>费用合计:<text>{{ totalCost.toFixed(2) }}</text></view>
7 </view> 7 </view>
8 <view class="appItem" v-for="item in list"> 8 <view class="appItem" v-for="item in list">
9 <view class="status" @click="goDetail(item)"> 9 <view class="status" @click="goDetail(item)">
10 <text v-if="item.record.auditStatus==0" class="text-primary">审核中</text> 10 <text v-if="item.record.auditStatus==0" class="text-primary">审核中</text>
11 <text v-if="item.record.auditStatus==1" class="text-success"> 审核通过</text> 11 <text v-if="item.record.auditStatus==1" class="text-success"> 审核通过</text>
12 <text v-if="item.record.auditStatus==2" class="text-danger"> 审核拒绝</text> 12 <text v-if="item.record.auditStatus==2" class="text-danger"> 审核拒绝</text>
13 <text v-if="item.record.auditStatus==3" class="text-warning">撤回</text> 13 <text v-if="item.record.auditStatus==3" class="text-warning">审核撤回</text>
14 </view> 14 </view>
15 <view class="date" @click="goDetail(item)" v-if="item.payTime"> 15 <view class="date" @click="goDetail(item)" v-if="item.payTime">
16 <uni-icons type="calendar-filled" size="16" color="#AD181F"></uni-icons> 16 <uni-icons type="calendar-filled" size="16" color="#AD181F"></uni-icons>
...@@ -44,8 +44,18 @@ ...@@ -44,8 +44,18 @@
44 </view> 44 </view>
45 </view> 45 </view>
46 <view class="func"> 46 <view class="func">
47 <button v-if="deptType == 1" :disabled="!(item.payEvidence?.[0]?.url)"
48 @click="downloadOrder(item)">
49 下载凭证
50 </button>
51 <button v-if="(deptType == 2 || deptType == 3)&&item.settleFlag != 1"
52 :disabled="!(item.payEvidence?.[0]?.url)"
53 @click="downloadOrder(item)">
54 下载凭证
55 </button>
47 <button 56 <button
48 v-if="(deptType == 2 || deptType == 3)&&item?.record?.auditStatus != 2 && item?.record?.auditStatus != 3" 57 v-if="(deptType == 2 || deptType == 3)&&item.settleFlag == 1"
58 :disabled="!item.record?.auditStatus||item.record?.auditStatus == 2||item.record?.auditStatus == 3"
49 @click="handleUpdate(item)">上传凭证</button> 59 @click="handleUpdate(item)">上传凭证</button>
50 </view> 60 </view>
51 </view> 61 </view>
...@@ -124,28 +134,28 @@ function getList() { ...@@ -124,28 +134,28 @@ function getList() {
124 } 134 }
125 totalCost.value = 0 135 totalCost.value = 0
126 api.getGroupFeeBill().then(res => { 136 api.getGroupFeeBill().then(res => {
127 list.value = res.rows 137 list.value = res.rows
128 list.value.forEach(item => { 138 list.value.forEach(item => {
129 item.payEvidence = JSON.parse(item.payEvidence) 139 item.payEvidence = JSON.parse(item.payEvidence)
130 item.record.content = JSON.parse(item.record.content) 140 item.record.content = JSON.parse(item.record.content)
131 totalCost.value = totalCost.value + (item.allPrice * 1) 141 totalCost.value = totalCost.value + (item.allPrice * 1)
132 }) 142 })
133 }) 143 })
134 } 144 }
135 145
136 function handleUpdate(item) { 146 function handleUpdate(item) {
137 form.value.docId = item.docId 147 form.value.docId = item.docId
138 if (item.payEvidence) { 148 if (item.payEvidence) {
139 form.value.url = item.payEvidence 149 form.value.url = item.payEvidence
140 } 150 }
141 UpPop.value.open() 151 UpPop.value.open()
142 } 152 }
143 let selectFileValue = {} 153 let selectFileValue = {}
144 154
145 function selectFile(e) { 155 function selectFile(e) {
146 let file = e.tempFiles[0] 156 let file = e.tempFiles[0]
147 if(!file){ 157 if(!file){
148 return 158 return
149 } 159 }
150 api.uploadFile(e).then(data => { 160 api.uploadFile(e).then(data => {
151 selectFileValue = { 161 selectFileValue = {
...@@ -166,21 +176,21 @@ function delSupplementFile(index) { ...@@ -166,21 +176,21 @@ function delSupplementFile(index) {
166 selectFileValue = {} 176 selectFileValue = {}
167 } 177 }
168 178
169 function uploadSure() { 179 function uploadSure() {
170 console.log(form.value) 180 console.log(form.value)
171 if(!form.value.payTime){ 181 if(!form.value.payTime){
172 uni.showToast({ 182 uni.showToast({
173 icon:`none`, 183 icon:`none`,
174 title:'请选择缴费时间' 184 title:'请选择缴费时间'
175 }) 185 })
176 return 186 return
177 } 187 }
178 if(!form.value.url){ 188 if(!form.value.url){
179 uni.showToast({ 189 uni.showToast({
180 icon:`none`, 190 icon:`none`,
181 title:'请上传缴费凭证' 191 title:'请上传缴费凭证'
182 }) 192 })
183 return 193 return
184 } 194 }
185 api.groupCommitPaymentVoucher(form.value).then(res => { 195 api.groupCommitPaymentVoucher(form.value).then(res => {
186 UpPop.value.close() 196 UpPop.value.close()
...@@ -201,9 +211,77 @@ function goDetail(item) { ...@@ -201,9 +211,77 @@ function goDetail(item) {
201 url: path 211 url: path
202 }); 212 });
203 } 213 }
214
215 function downloadOrder(item) {
216 //下载凭证
217 showImg(item.payEvidence[0]?.url)
218 }
219 function showImg(url) {
220 var str = config.baseUrl_api + url
221 if (url.indexOf('png') > -1 || url.indexOf('jpg') > -1 || url.indexOf('jpeg') > -1) {
222 uni.previewImage({
223 urls: [str],
224 success: function(res) {
225 console.log('success', res)
226 },
227 fail: function(res) {
228 console.log('fail', res)
229 },
230 complete: function(res) {
231 console.log('complete', res)
232 }
233 })
234 } else {
235 goWebView(str)
236 }
237 }
238
239 function goWebView(url) {
240 url = url.replace("http://", "https://")
241 uni.showLoading({
242 title: '下载中'
243 });
244 uni.downloadFile({
245 url: url,
246 success: function(res) {
247 uni.hideLoading();
248 var filePath = res.tempFilePath;
249 uni.showLoading({
250 title: '正在打开'
251 });
252 uni.openDocument({
253 filePath: filePath,
254 showMenu: true,
255 success: function(res) {
256 uni.hideLoading();
257 },
258 fail: function(err) {
259 uni.hideLoading();
260 uni.showToast({
261 title: err,
262 icon: 'none',
263 duration: 2000
264 });
265 }
266 });
267 },
268 fail: function(error) {
269 uni.hideLoading();
270 uni.showToast({
271 title: `下载失败`,
272 icon: 'none',
273 duration: 2000
274 });
275 }
276 });
277 }
278
204 </script> 279 </script>
205 280
206 <style scoped lang="scss"> 281 <style scoped lang="scss">
282 .appList .appItem .func button[disabled]{
283 opacity: 0.3;
284 }
207 .popBody { 285 .popBody {
208 font-size: 28rpx; 286 font-size: 28rpx;
209 line-height: 1.5; 287 line-height: 1.5;
...@@ -214,4 +292,4 @@ function goDetail(item) { ...@@ -214,4 +292,4 @@ function goDetail(item) {
214 margin: 50rpx 0 30rpx; 292 margin: 50rpx 0 30rpx;
215 } 293 }
216 } 294 }
217 </style>
...\ No newline at end of file ...\ No newline at end of file
295 </style>
......
...@@ -57,7 +57,7 @@ ...@@ -57,7 +57,7 @@
57 <view class="w100"> 57 <view class="w100">
58 <view class="del" @click="handleDelete(n)">删除</view> 58 <view class="del" @click="handleDelete(n)">删除</view>
59 <view style="display: flex;"> 59 <view style="display: flex;">
60 <!-- 60 <!--
61 <view class="photobox"> 61 <view class="photobox">
62 <image class="photo" v-if="n.photo" :src="n.photo" mode='aspectFill'></image> 62 <image class="photo" v-if="n.photo" :src="n.photo" mode='aspectFill'></image>
63 <view class="colorful" v-else>{{n.realName?.slice(0,1)}}</view> 63 <view class="colorful" v-else>{{n.realName?.slice(0,1)}}</view>
...@@ -76,7 +76,6 @@ ...@@ -76,7 +76,6 @@
76 考试级别 76 考试级别
77 <!-- <text style="padding: 15rpx 0;">{{ szToHz(n.levelNew) }}</text> --> 77 <!-- <text style="padding: 15rpx 0;">{{ szToHz(n.levelNew) }}</text> -->
78 <view @click="changeLevelfather(n)"> 78 <view @click="changeLevelfather(n)">
79
80 <uni-data-select v-model="n.levelNew" :localdata="levelArr" 79 <uni-data-select v-model="n.levelNew" :localdata="levelArr"
81 @change="changeLevel"></uni-data-select> 80 @change="changeLevel"></uni-data-select>
82 </view> 81 </view>
...@@ -278,7 +277,6 @@ ...@@ -278,7 +277,6 @@
278 }) 277 })
279 278
280 function updateData(e) { 279 function updateData(e) {
281 // console.log(e)
282 examinerArr.push(e.obj) 280 examinerArr.push(e.obj)
283 form.value[`examiner_${e.ec}`] = e.obj.name 281 form.value[`examiner_${e.ec}`] = e.obj.name
284 } 282 }
...@@ -534,19 +532,24 @@ ...@@ -534,19 +532,24 @@
534 api.jiDropDownBox({ 532 api.jiDropDownBox({
535 perId: row.perId 533 perId: row.perId
536 }).then(res => { 534 }).then(res => {
537 console.log(res.data) 535 levelArr.value = res.data
538 for (var l of res.data) { 536 for (var l of levelArr.value) {
539 l.text = l.name 537 l.text = l.name
540 l.disabled = l.status 538 l.disabled = !(l.status)
541 } 539 }
542 levelArr.value = res.data
543
544 }) 540 })
545 } 541 }
546 542
547 543
548 function changeLevel(e) { 544 function changeLevel(e) {
549 console.log(e) 545 if (e == nowRow.levelOld) {
546 uni.showToast({
547 title: `考试级别重复,请重新选择!`,
548 icon: 'none'
549 })
550 nowRow.levelNew = nowRow.levelRecommend
551 return
552 }
550 if (e !== nowRow.levelRecommend) { 553 if (e !== nowRow.levelRecommend) {
551 uni.showModal({ 554 uni.showModal({
552 title: '提示', 555 title: '提示',
...@@ -554,8 +557,8 @@ ...@@ -554,8 +557,8 @@
554 success: function(res) { 557 success: function(res) {
555 if (res.confirm) { 558 if (res.confirm) {
556 getTablePersonInfo() 559 getTablePersonInfo()
557 }else{ 560 }else{
558 nowRow.levelNew = nowRow.levelRecommend 561 nowRow.levelNew = nowRow.levelRecommend
559 } 562 }
560 }, 563 },
561 fail: function(res) { 564 fail: function(res) {
...@@ -566,6 +569,23 @@ ...@@ -566,6 +569,23 @@
566 } 569 }
567 570
568 function submitForm2(flag) { 571 function submitForm2(flag) {
572 //循环infoList.value 如果item.levelNew == item.levelOld 提示错误
573 for (var item of infoList.value) {
574 if (item.levelNew == item.levelOld) {
575 uni.showToast({
576 title: `${item.realName}考试级别重复,请重新选择!`,
577 icon: 'none'
578 })
579 return
580 }
581 if (!item.levelNew) {
582 uni.showToast({
583 title: `${item.realName}请选择考试级别!`,
584 icon: 'none'
585 })
586 return
587 }
588 }
569 if (flag === 1) { 589 if (flag === 1) {
570 if (infoList.value.length == 0) { 590 if (infoList.value.length == 0) {
571 uni.showToast({ 591 uni.showToast({
...@@ -574,6 +594,7 @@ ...@@ -574,6 +594,7 @@
574 }) 594 })
575 return 595 return
576 } 596 }
597
577 // if (!form.value.transcript) { 598 // if (!form.value.transcript) {
578 // uni.showToast({ 599 // uni.showToast({
579 // title: '请上传成绩单', 600 // title: '请上传成绩单',
...@@ -638,7 +659,6 @@ ...@@ -638,7 +659,6 @@
638 } 659 }
639 for (const n in e.tempFiles) { 660 for (const n in e.tempFiles) {
640 api.uploadFileList(e.tempFilePaths[n]).then(data => { 661 api.uploadFileList(e.tempFilePaths[n]).then(data => {
641 console.log(data)
642 selectFileValue = { 662 selectFileValue = {
643 url: data, 663 url: data,
644 name: e.tempFiles[n].name, 664 name: e.tempFiles[n].name,
...@@ -659,11 +679,9 @@ ...@@ -659,11 +679,9 @@
659 transcript.value = _.remove(transcript.value, function(n) { 679 transcript.value = _.remove(transcript.value, function(n) {
660 return n.name != e.tempFile.name; 680 return n.name != e.tempFile.name;
661 }); 681 });
662 console.log(transcript.value)
663 } 682 }
664 683
665 function uploadSure() { 684 function uploadSure() {
666 console.log(transcript.value)
667 // 上传确定 685 // 上传确定
668 if (transcript.value.length == 0) { 686 if (transcript.value.length == 0) {
669 uni.showToast({ 687 uni.showToast({
...@@ -747,4 +765,4 @@ ...@@ -747,4 +765,4 @@
747 :deep(.file-picker__progress) { 765 :deep(.file-picker__progress) {
748 opacity: 0; 766 opacity: 0;
749 } 767 }
750 </style>
...\ No newline at end of file ...\ No newline at end of file
768 </style>
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
29 考官 29 考官
30 <view>{{item.examinerNames}}</view> 30 <view>{{item.examinerNames}}</view>
31 </view> 31 </view>
32 32
33 <view> 33 <view>
34 通过人数 34 通过人数
35 <view>{{item.pass}}</view> 35 <view>{{item.pass}}</view>
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
38 <view class="func" v-if="item.status=='0'||item.status=='3'||item.status=='4'"> 38 <view class="func" v-if="item.status=='0'||item.status=='3'||item.status=='4'">
39 <button @click="handleDelete(item)">删除</button> 39 <button @click="handleDelete(item)">删除</button>
40 <button @click="editThis(item)">编辑</button> 40 <button @click="editThis(item)">编辑</button>
41 <button @click="handleSubmit(item)">提交审核</button> 41 <button :disabled="!(item.totalNum?item.totalNum:(item.pass+item.noPass))" @click="handleSubmit(item)">提交审核</button>
42 </view> 42 </view>
43 </view> 43 </view>
44 </view> 44 </view>
...@@ -218,4 +218,4 @@ ...@@ -218,4 +218,4 @@
218 width: 80%; 218 width: 80%;
219 word-break: break-all; 219 word-break: break-all;
220 } 220 }
221 </style>
...\ No newline at end of file ...\ No newline at end of file
221 </style>
......
1 <template> 1 <template>
2 <view> 2 <view>
3 <view class="searchbar"> 3 <view class="nolineform">
4 <uni-easyinput placeholderStyle="font-size:30rpx" :input-border="false" prefixIcon="search" 4 <uni-form @submit="getList">
5 v-model="query.idcCode" placeholder="证件号码" @blur="getList"> 5 <uni-forms-item label="考官姓名">
6 </uni-easyinput> 6 <uni-easyinput :placeholderStyle="placeholderStyle"
7 </view> 7 :input-border="false"
8 v-model="query.name" placeholder="考官姓名">
9 </uni-easyinput>
10 </uni-forms-item>
11 <uni-forms-item label="考官编号">
12 <uni-easyinput :placeholderStyle="placeholderStyle"
13 :input-border="false"
14 v-model="query.certCode" placeholder="考官编号">
15 </uni-easyinput>
16 </uni-forms-item>
17 </uni-form>
18 <view class="button-group">
19 <button size="mini" @click="resetQuery">重置</button>
20 <button type="primary" size="mini" @click="getList">查询</button>
21 </view>
22 </view>
8 <view class="indexboxre"> 23 <view class="indexboxre">
9 <view class="userlist"> 24 <view class="userlist">
10 <view class="item" v-for="(n,index) in list" :key="index"> 25 <view class="item" v-for="(n,index) in list" :key="index">
...@@ -15,9 +30,11 @@ ...@@ -15,9 +30,11 @@
15 <view> 30 <view>
16 <view class="name">{{n.name}}</view> 31 <view class="name">{{n.name}}</view>
17 <view class="date">会员号:{{n.perCode||'-'}}</view> 32 <view class="date">会员号:{{n.perCode||'-'}}</view>
33 <view class="date">证件号码:{{n.idcCode||'-'}}</view>
34 <view class="date">注册地:{{n.memName||'-'}}</view>
18 </view> 35 </view>
19 <view class="status"> 36 <view class="status">
20 <text v-if="n.disabled">选择</text> 37 <text v-if="n.disabled">已选</text>
21 <text v-else class="text-primary" @click="handleChoose(n)">选择</text> 38 <text v-else class="text-primary" @click="handleChoose(n)">选择</text>
22 39
23 </view> 40 </view>
...@@ -25,7 +42,7 @@ ...@@ -25,7 +42,7 @@
25 </view> 42 </view>
26 <view class="nodata" v-if="list.length==0"> 43 <view class="nodata" v-if="list.length==0">
27 <image mode="aspectFit" src="/static/nodata.png"></image> 44 <image mode="aspectFit" src="/static/nodata.png"></image>
28 <text>请输入证件号查找</text> 45 <text>请输入考官姓名和编号精确查找</text>
29 </view> 46 </view>
30 </view> 47 </view>
31 48
...@@ -49,7 +66,8 @@ ...@@ -49,7 +66,8 @@
49 const query = ref({ 66 const query = ref({
50 67
51 }) 68 })
52 const list = ref([]) 69 const placeholderStyle = ref('text-align: right;font-size:30rpx')
70 const list = ref([])
53 const total = ref(0) 71 const total = ref(0)
54 const userType = ref('') 72 const userType = ref('')
55 let chosen = [] 73 let chosen = []
...@@ -60,16 +78,22 @@ ...@@ -60,16 +78,22 @@
60 ec = option.ec 78 ec = option.ec
61 console.log(chosen) 79 console.log(chosen)
62 }) 80 })
63 81 function resetQuery() {
82 query.value = {}
83 list.value = []
84 }
64 function getList() { 85 function getList() {
65 if (!query.value.idcCode) { 86 if (!query.value.name) {
87 return
88 }
89 if (!query.value.certCode) {
66 return 90 return
67 } 91 }
68 uni.showLoading({ 92 uni.showLoading({
69 title: `查找中` 93 title: `查找中`
70 }) 94 })
71 api.getCoachList(query.value).then(res => { 95 api.getCoachList(query.value).then(res => {
72 if (res.data.length == 0) { 96 if (res.rows.length == 0) {
73 uni.showToast({ 97 uni.showToast({
74 title: '未查询到考官信息', 98 title: '未查询到考官信息',
75 icon: "error" 99 icon: "error"
...@@ -77,11 +101,11 @@ ...@@ -77,11 +101,11 @@
77 list.value = [] 101 list.value = []
78 return 102 return
79 } 103 }
80 list.value = res.data 104 list.value = res.rows
81 for(var l of list.value){ 105 for(var l of list.value){
82 if(l.photo&&l.photo.indexOf('http')==-1){ 106 // if(l.photo&&l.photo.indexOf('http')==-1){
83 l.photo = config.baseUrl_api + l.photo 107 // l.photo = config.baseUrl_api + l.photo
84 } 108 // }
85 for(var t of chosen){ 109 for(var t of chosen){
86 if(t.perId == l.perId){ 110 if(t.perId == l.perId){
87 l.disabled = true 111 l.disabled = true
...@@ -99,13 +123,21 @@ ...@@ -99,13 +123,21 @@
99 } 123 }
100 124
101 function handleChoose(row) { 125 function handleChoose(row) {
126 if (row.canChoose != 1){
127 uni.showToast({
128 title: '该考官资质已过期!',
129 icon: "error"
130 })
131 return
132 }
133
102 var pages = getCurrentPages() 134 var pages = getCurrentPages()
103 var prevPage = pages[pages.length - 2] 135 var prevPage = pages[pages.length - 2]
104 var obj = { 136 var obj = {
105 perId: row.perId, 137 perId: row.perId,
106 name: row.name, 138 name: row.name,
107 } 139 }
108 140
109 // prevPage.onShow(obj) 141 // prevPage.onShow(obj)
110 uni.$emit('chosen',{ 142 uni.$emit('chosen',{
111 obj:obj, 143 obj:obj,
...@@ -151,4 +183,11 @@ ...@@ -151,4 +183,11 @@
151 font-size: 26rpx; 183 font-size: 26rpx;
152 } 184 }
153 } 185 }
154 </style>
...\ No newline at end of file ...\ No newline at end of file
186 .button-group {
187 text-align: right;
188
189 button {
190 margin-left: 30rpx;
191 }
192 }
193 </style>
......
1 <template> 1 <template>
2 <view class="hasfixedbottom"> 2 <view class="hasfixedbottom">
3 <view class="nolineform"> 3 <view class="nolineform">
4 <uni-forms :border="true" :modelValue="baseFormData" label-width="120"> 4 <uni-forms :border="true" :modelValue="baseFormData" label-width="90">
5 <!-- <uni-forms-item label="姓名" required name="name"> 5 <!-- <uni-forms-item label="姓名" required name="name">
6 <uni-easyinput :styles="inputstyle" :clearable='false' :placeholderStyle="placeholderStyle" 6 <uni-easyinput :styles="inputstyle" :clearable='false' :placeholderStyle="placeholderStyle"
7 v-model="baseFormData.name" placeholder="请输入姓名" /> 7 v-model="baseFormData.name" placeholder="请输入姓名" />
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
34 <view> 34 <view>
35 {{n.perName}} 35 {{n.perName}}
36 <view class="date"> 36 <view class="date">
37 {{idcTypeList[n.perIdcType].text}}: {{n.perIdcCode}} 37 {{getIdcType(n.perIdcType)}}: {{n.perIdcCode}}
38 </view> 38 </view>
39 </view> 39 </view>
40 </view> 40 </view>
...@@ -79,15 +79,15 @@ ...@@ -79,15 +79,15 @@
79 }, 79 },
80 { 80 {
81 value: '1', 81 value: '1',
82 text: "港澳台通信身份证" 82 text: "来往大陆(内地)通行证 "
83 }, 83 },
84 { 84 {
85 value: '3', 85 value: '3',
86 text: "外国护照" 86 text: "护照"
87 }, 87 },
88 { 88 {
89 value: '4', 89 value: '5',
90 text: "其他" 90 text: "香港身份证"
91 } 91 }
92 ]) 92 ])
93 const baseFormData = ref({ 93 const baseFormData = ref({
...@@ -106,6 +106,14 @@ ...@@ -106,6 +106,14 @@
106 getList() 106 getList()
107 } 107 }
108 }) 108 })
109 function getIdcType(type) {
110 for (var item of idcTypeList.value){
111 if (item.value == type) {
112 return item.text
113 }
114 }
115 }
116
109 // 查询会员 117 // 查询会员
110 function selectMember() { 118 function selectMember() {
111 // if (!baseFormData.value.name) { 119 // if (!baseFormData.value.name) {
...@@ -156,18 +164,18 @@ ...@@ -156,18 +164,18 @@
156 api.addTransferToRange({ 164 api.addTransferToRange({
157 rangeId: baseFormData.value.rangeId || -1, 165 rangeId: baseFormData.value.rangeId || -1,
158 personIdArray: baseFormData.value.personIdArray 166 personIdArray: baseFormData.value.personIdArray
159 }).then(res => { 167 }).then(res => {
160 if(res.data.result == 0){ 168 if(res.data.result == 0){
161 uni.showModal({ 169 uni.showModal({
162 content: res.data?.list?.[0]?.msg, 170 content: res.data?.list?.[0]?.msg,
163 success: function(res) { 171 success: function(res) {
164 172
165 } 173 }
166 }) 174 })
167 } else { 175 } else {
168 uni.showToast({ 176 uni.showToast({
169 title:'新增成功' 177 title:'新增成功'
170 }) 178 })
171 } 179 }
172 baseFormData.value.rangeId = res.data.rangeId 180 baseFormData.value.rangeId = res.data.rangeId
173 queryParams.value.rangeId = res.data.rangeId 181 queryParams.value.rangeId = res.data.rangeId
...@@ -179,13 +187,13 @@ ...@@ -179,13 +187,13 @@
179 }) 187 })
180 } 188 }
181 189
182 function getList() { 190 function getList() {
183 uni.showLoading({ 191 uni.showLoading({
184 title:'加载中' 192 title:'加载中'
185 }) 193 })
186 api.getTransferList(queryParams.value).then(res => { 194 api.getTransferList(queryParams.value).then(res => {
187 list.value = res.rows 195 list.value = res.rows
188 total.value = res.total 196 total.value = res.total
189 uni.hideLoading() 197 uni.hideLoading()
190 }) 198 })
191 } 199 }
...@@ -198,27 +206,27 @@ ...@@ -198,27 +206,27 @@
198 }) 206 })
199 uni.navigateBack() 207 uni.navigateBack()
200 }) 208 })
201 } 209 }
202 function handleDelete(row){ 210 function handleDelete(row){
203 uni.showModal({ 211 uni.showModal({
204 title: '提示', 212 title: '提示',
205 content: `确定删除吗`, 213 content: `确定删除吗`,
206 success: function(res) { 214 success: function(res) {
207 if (res.confirm) { 215 if (res.confirm) {
208 api.deltransferRange([row.id]).then(Response=>{ 216 api.deltransferRange([row.id]).then(Response=>{
209 uni.showToast({ 217 uni.showToast({
210 icon:"none", 218 icon:"none",
211 title:'删除成功!' 219 title:'删除成功!'
212 }) 220 })
213 if (total.value == 1) { 221 if (total.value == 1) {
214 baseFormData.value.rangeId = '-1' 222 baseFormData.value.rangeId = '-1'
215 queryParams.value.rangeId = '-1' 223 queryParams.value.rangeId = '-1'
216 } 224 }
217 getList() 225 getList()
218 }) 226 })
219 } 227 }
220 } 228 }
221 }) 229 })
222 } 230 }
223 </script> 231 </script>
224 232
...@@ -255,4 +263,4 @@ ...@@ -255,4 +263,4 @@
255 margin-right: 20rpx; 263 margin-right: 20rpx;
256 } 264 }
257 } 265 }
258 </style>
...\ No newline at end of file ...\ No newline at end of file
266 </style>
......
...@@ -145,7 +145,7 @@ ...@@ -145,7 +145,7 @@
145 idcType: '0', 145 idcType: '0',
146 perType: '1', // (1:个人会员;2:教练;3:考官;4:裁判;5:临时会员;) 146 perType: '1', // (1:个人会员;2:教练;3:考官;4:裁判;5:临时会员;)
147 }) 147 })
148 const items = ref(['手动录入', '自动录入']) 148 const items = ref(['身份证添加', '证件照录入'])
149 const idcTypeList = ref([{ 149 const idcTypeList = ref([{
150 value: '0', 150 value: '0',
151 text: "身份证" 151 text: "身份证"
...@@ -502,9 +502,9 @@ ...@@ -502,9 +502,9 @@
502 delete baseFormData.value.card 502 delete baseFormData.value.card
503 503
504 const time = new Date().valueOf() + '' 504 const time = new Date().valueOf() + ''
505 baseFormData.t = time + Math.floor(Math.random() * 10) 505 baseFormData.value.t = time + Math.floor(Math.random() * 10)
506 baseFormData.signT = aes2.AESEncrypt(baseFormData.idcType + time) 506 baseFormData.value.signT = aes2.AESEncrypt(baseFormData.value.idcType + time)
507 507 console.log(baseFormData.value)
508 api.addPersonToMyDept(baseFormData.value).then(Response => { 508 api.addPersonToMyDept(baseFormData.value).then(Response => {
509 if (Response.data == 0) { 509 if (Response.data == 0) {
510 let msg = '该成员,实名认证未通过,注册失败!' 510 let msg = '该成员,实名认证未通过,注册失败!'
......
...@@ -21,9 +21,10 @@ ...@@ -21,9 +21,10 @@
21 <view> 21 <view>
22 缴费状态 22 缴费状态
23 <view> 23 <view>
24 <text v-if="item.settleFlag == 0" class="text-warning">已结算</text> 24 <text v-if="item.settleFlag == 0" class="text-success">已结算</text>
25 <text v-if="item.settleFlag == 1 && item.payFlag == 0" class="text-success">已上传</text> 25 <text v-if="item.settleFlag == 1" class="text-danger">未结算</text>
26 <text v-if="item.settleFlag == 1 && item.payFlag == 1" class="text-danger">未上传</text> 26 <!-- <text v-if="item.settleFlag == 1 && item.payFlag == 0" class="text-success">已上传</text>-->
27 <!-- <text v-if="item.settleFlag == 1 && item.payFlag == 1" class="text-danger">未上传</text>-->
27 </view> 28 </view>
28 </view> 29 </view>
29 <view> 30 <view>
...@@ -38,11 +39,14 @@ ...@@ -38,11 +39,14 @@
38 费用合计 39 费用合计
39 <view>¥{{item.allPrice}}</view> 40 <view>¥{{item.allPrice}}</view>
40 </view> 41 </view>
41 42
42 </view> 43 </view>
43 <view class="func"> 44 <view class="func">
45 <button v-if="item.settleFlag == 0" :disabled="!(item.payFlag == 0)"
46 @click="downloadOrder(item)">下载凭证</button>
44 <button 47 <button
45 v-if="(deptType == 2 || deptType == 3)&&item?.record?.auditStatus != 2 && item?.record?.auditStatus != 3" 48 v-if="(deptType == 2 || deptType == 3) && item.settleFlag != 0"
49 :disabled="item?.record?.auditStatus == 2 || item?.record?.auditStatus == 3||item.yjFlag==1"
46 @click="handleUpdate(item)">上传凭证</button> 50 @click="handleUpdate(item)">上传凭证</button>
47 </view> 51 </view>
48 </view> 52 </view>
...@@ -60,7 +64,7 @@ ...@@ -60,7 +64,7 @@
60 <uni-datetime-picker v-model="form.payTime"></uni-datetime-picker> 64 <uni-datetime-picker v-model="form.payTime"></uni-datetime-picker>
61 </uni-forms-item> 65 </uni-forms-item>
62 <uni-forms-item label="缴费凭证" required> 66 <uni-forms-item label="缴费凭证" required>
63 67
64 <uni-file-picker limit="1" file-mediatype="all" file-extname="png,jpg,jpeg,pdf,zip" 68 <uni-file-picker limit="1" file-mediatype="all" file-extname="png,jpg,jpeg,pdf,zip"
65 @select="selectFile" 69 @select="selectFile"
66 @progress="fileProgress" @delete="delSupplementFile(index)"></uni-file-picker> 70 @progress="fileProgress" @delete="delSupplementFile(index)"></uni-file-picker>
...@@ -69,7 +73,7 @@ ...@@ -69,7 +73,7 @@
69 <uni-easyinput v-model="form.remark" type="textarea"></uni-easyinput> 73 <uni-easyinput v-model="form.remark" type="textarea"></uni-easyinput>
70 </uni-forms-item> 74 </uni-forms-item>
71 </uni-forms> 75 </uni-forms>
72 76
73 <button class="btn-red" @click="uploadSure">确定</button> 77 <button class="btn-red" @click="uploadSure">确定</button>
74 </view> 78 </view>
75 </uni-popup> 79 </uni-popup>
...@@ -121,6 +125,71 @@ function handleUpdate(item) { ...@@ -121,6 +125,71 @@ function handleUpdate(item) {
121 form.value.docId = item.docId 125 form.value.docId = item.docId
122 UpPop.value.open() 126 UpPop.value.open()
123 } 127 }
128 function downloadOrder(item) {
129 //下载凭证
130 var arr = JSON.parse(item.payEvidence) || []
131 showImg(arr[0]?.url)
132 }
133 function showImg(url) {
134 var str = config.baseUrl_api + url
135 if (url.indexOf('png') > -1 || url.indexOf('jpg') > -1 || url.indexOf('jpeg') > -1) {
136 uni.previewImage({
137 urls: [str],
138 success: function(res) {
139 console.log('success', res)
140 },
141 fail: function(res) {
142 console.log('fail', res)
143 },
144 complete: function(res) {
145 console.log('complete', res)
146 }
147 })
148 } else {
149 goWebView(str)
150 }
151 }
152
153 function goWebView(url) {
154 url = url.replace("http://", "https://")
155 uni.showLoading({
156 title: '下载中'
157 });
158 uni.downloadFile({
159 url: url,
160 success: function(res) {
161 uni.hideLoading();
162 var filePath = res.tempFilePath;
163 uni.showLoading({
164 title: '正在打开'
165 });
166 uni.openDocument({
167 filePath: filePath,
168 showMenu: true,
169 success: function(res) {
170 uni.hideLoading();
171 },
172 fail: function(err) {
173 uni.hideLoading();
174 uni.showToast({
175 title: err,
176 icon: 'none',
177 duration: 2000
178 });
179 }
180 });
181 },
182 fail: function(error) {
183 uni.hideLoading();
184 uni.showToast({
185 title: `下载失败`,
186 icon: 'none',
187 duration: 2000
188 });
189 }
190 });
191 }
192
124 let selectFileValue = {} 193 let selectFileValue = {}
125 function selectFile(e) { 194 function selectFile(e) {
126 let file = e.tempFiles[0] 195 let file = e.tempFiles[0]
...@@ -133,7 +202,7 @@ function selectFile(e) { ...@@ -133,7 +202,7 @@ function selectFile(e) {
133 name: file.name, 202 name: file.name,
134 extname: file.extname 203 extname: file.extname
135 } 204 }
136 205
137 form.value.url=JSON.stringify([selectFileValue]) 206 form.value.url=JSON.stringify([selectFileValue])
138 }); 207 });
139 } 208 }
...@@ -166,6 +235,9 @@ function goDetail(item) { ...@@ -166,6 +235,9 @@ function goDetail(item) {
166 </script> 235 </script>
167 236
168 <style scoped lang="scss"> 237 <style scoped lang="scss">
238 .appList .appItem .func button[disabled]{
239 opacity: 0.3;
240 }
169 .popBody { 241 .popBody {
170 font-size: 28rpx; 242 font-size: 28rpx;
171 line-height: 1.5; 243 line-height: 1.5;
...@@ -176,4 +248,4 @@ function goDetail(item) { ...@@ -176,4 +248,4 @@ function goDetail(item) {
176 margin: 50rpx 0 30rpx; 248 margin: 50rpx 0 30rpx;
177 } 249 }
178 } 250 }
179 </style>
...\ No newline at end of file ...\ No newline at end of file
251 </style>
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!