no message
Showing
70 changed files
with
3085 additions
and
387 deletions
This diff is collapsed.
Click to expand it.
| ... | @@ -85,6 +85,7 @@ function getInfo() { | ... | @@ -85,6 +85,7 @@ 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.user = res.data.user | ||
| 88 | app.globalData.deptType = user.dept.deptType | 89 | app.globalData.deptType = user.dept.deptType |
| 89 | app.globalData.genFlag = user.dept.genFlag | 90 | app.globalData.genFlag = user.dept.genFlag |
| 90 | // user.dept.deptType = '3' | 91 | // user.dept.deptType = '3' | ... | ... |
| ... | @@ -6,15 +6,18 @@ page { | ... | @@ -6,15 +6,18 @@ page { |
| 6 | .wBox{box-sizing: border-box;} | 6 | .wBox{box-sizing: border-box;} |
| 7 | .h3 {font-weight: bold;line-height: 2;} | 7 | .h3 {font-weight: bold;line-height: 2;} |
| 8 | .text-center{text-align: center;} | 8 | .text-center{text-align: center;} |
| 9 | .underLine{text-decoration: underline;} | ||
| 9 | .fr{float:right} | 10 | .fr{float:right} |
| 10 | .w25{width: 25%;} | 11 | .w25{width: 25%;} |
| 11 | .w33{width: 33%;} | 12 | .w33{width: 33%;} |
| 12 | .w66{width: 66%;} | 13 | .w66{width: 66%;} |
| 13 | .w50{width: 50%;} | 14 | .w50{width: 50%;} |
| 14 | .w45{width: 45%;} | 15 | .w45{width: 45%;} |
| 16 | .w80{width: 80%!important;} | ||
| 15 | .w100{width: 100%!important;} | 17 | .w100{width: 100%!important;} |
| 16 | .mt0{margin-top: 0 !important;} | 18 | .mt0{margin-top: 0 !important;} |
| 17 | .mt10{margin-top: 10px !important;} | 19 | .mt10{margin-top: 10px !important;} |
| 20 | .mt20{margin-top: 20px !important;} | ||
| 18 | .must{color: #AD181F;font-size: 24rpx;} | 21 | .must{color: #AD181F;font-size: 24rpx;} |
| 19 | .vipData .w50{width: 45%;} | 22 | .vipData .w50{width: 45%;} |
| 20 | .esp{text-overflow: ellipsis;overflow: hidden;white-space: nowrap;} | 23 | .esp{text-overflow: ellipsis;overflow: hidden;white-space: nowrap;} |
| ... | @@ -29,12 +32,12 @@ page { | ... | @@ -29,12 +32,12 @@ page { |
| 29 | .align-forms-item{line-height: 2.6;} | 32 | .align-forms-item{line-height: 2.6;} |
| 30 | .more{color: #929AA0;font-size: 24rpx;} | 33 | .more{color: #929AA0;font-size: 24rpx;} |
| 31 | .msglist{ | 34 | .msglist{ |
| 32 | .msgitem{background: #FFFFFF;border-radius: 10rpx;margin-bottom: 25rpx;padding: 30rpx 20rpx 30rpx 50rpx; | 35 | .msgitem{background: #FFFFFF;border-radius: 10rpx;margin-bottom: 25rpx;padding: 20rpx; |
| 33 | position: relative; | 36 | position: relative; |
| 34 | .dot{width: 12rpx;display: block;position: absolute;left: 20rpx;top: 40rpx; | 37 | .dot{width: 12rpx;display: block;position: absolute;left: 20rpx;top: 40rpx; |
| 35 | height: 12rpx;background: #C40F18;border-radius: 50%;} | 38 | height: 12rpx;background: #C40F18;border-radius: 50%;} |
| 36 | .dot.done{background: #C7C7CD;} | 39 | .dot.done{background: #C7C7CD;} |
| 37 | .tt{font-size: 28rpx;color: #29343C;} | 40 | .tt{font-size: 28rpx;color: #000;} |
| 38 | .date{color: #929AA0;font-size: 24rpx; | 41 | .date{color: #929AA0;font-size: 24rpx; |
| 39 | .text-primary{text-decoration: underline;}} | 42 | .text-primary{text-decoration: underline;}} |
| 40 | } | 43 | } |
| ... | @@ -219,7 +222,7 @@ page { | ... | @@ -219,7 +222,7 @@ page { |
| 219 | padding:20rpx;position: relative; | 222 | padding:20rpx;position: relative; |
| 220 | .date{color: #999;font-size: 24rpx;} | 223 | .date{color: #999;font-size: 24rpx;} |
| 221 | .status{font-size: 28rpx;position: absolute;right: 30rpx;} | 224 | .status{font-size: 28rpx;position: absolute;right: 30rpx;} |
| 222 | .name{font-size: 30rpx;margin-bottom: 10rpx; | 225 | .name{font-size: 30rpx;margin-bottom: 10rpx;word-wrap: break-all; |
| 223 | text{font-size: 28rpx;color: #666;} | 226 | text{font-size: 28rpx;color: #666;} |
| 224 | } | 227 | } |
| 225 | .icon { | 228 | .icon { | ... | ... |
| ... | @@ -2,9 +2,9 @@ | ... | @@ -2,9 +2,9 @@ |
| 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"> | 4 | <view class="cardNav"> |
| 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 | <!-- 团队会员审核 --> | 10 | <!-- 团队会员审核 --> |
| ... | @@ -27,15 +27,11 @@ | ... | @@ -27,15 +27,11 @@ |
| 27 | <view class="date"> | 27 | <view class="date"> |
| 28 | <uni-icons type="calendar-filled" size="16" color="#AD181F"></uni-icons> | 28 | <uni-icons type="calendar-filled" size="16" color="#AD181F"></uni-icons> |
| 29 | {{item.content.commitTime}} 提交</view> | 29 | {{item.content.commitTime}} 提交</view> |
| 30 | 30 | <view class="text-primary" @click="goDetail(item)" v-if="item.content?.wfCode">{{item.content?.wfCode}}</view> | |
| 31 | <view class="name w100" @click="goDetail(item)"> | 31 | <view class="name w100 mt0" @click="goDetail(item)"> |
| 32 | <!-- <text class="dot"></text> --> | 32 | <!-- <text class="dot"></text> --> |
| 33 | {{item.content.certName}}</view> | 33 | {{item.content.certName}}</view> |
| 34 | <view class="flexbox" @click="goDetail(item)"> | 34 | <view class="flexbox" @click="goDetail(item)"> |
| 35 | <!-- <view> | ||
| 36 | 缴费单位 | ||
| 37 | <view>{{ item.content.memberName }}</view> | ||
| 38 | </view> --> | ||
| 39 | <view v-if="userType == '3'"> | 35 | <view v-if="userType == '3'"> |
| 40 | 所属省份 | 36 | 所属省份 |
| 41 | <view>{{item.content.province}}</view> | 37 | <view>{{item.content.province}}</view> |
| ... | @@ -62,27 +58,28 @@ | ... | @@ -62,27 +58,28 @@ |
| 62 | <view> ¥{{ (item?.content?.allFee*1).toFixed(2) }}</view> | 58 | <view> ¥{{ (item?.content?.allFee*1).toFixed(2) }}</view> |
| 63 | </view> | 59 | </view> |
| 64 | </view> | 60 | </view> |
| 65 | <view class="func" v-if="(userType == '3'||userType == '2') && item.auditStatus == 0"> | ||
| 66 | <button @click="audit(item.recordId,'0')">拒绝</button> | ||
| 67 | <button @click="audit(item.recordId,'1')">同意</button> | ||
| 68 | </view> | ||
| 69 | <view class="func" v-if="(userType == '1'&&item.auditStatus == 0)"> | 61 | <view class="func" v-if="(userType == '1'&&item.auditStatus == 0)"> |
| 70 | <button @click="audit(item.recordId,'0')">拒绝</button> | 62 | <button @click="audit(item.recordId,'0')">拒绝</button> |
| 71 | <button @click="audit(item.recordId,'1')">同意</button> | 63 | <button @click="audit(item.recordId,'1')">同意</button> |
| 72 | </view> | 64 | </view> |
| 73 | <!-- 中台协 --> | 65 | <!-- 中跆协 --> |
| 74 | <view class="func" v-if="(userType == '1'&&item.auditStatus == 1&&item.canTui==1)"> | 66 | <view class="func" v-if="(userType == '1'&&item.auditStatus == 1&&item.canTui==1)"> |
| 75 | <button @click="sendBack(item)">撤回</button> | 67 | <button @click="sendBack(item)">撤回</button> |
| 76 | </view> | 68 | </view> |
| 77 | <!-- 市 --> | 69 | <!-- 市 --> |
| 78 | <view class="func" | 70 | <view class="func" v-if="userType == '3'"> |
| 79 | v-if="(userType == '3'&&item.auditStatus == 1&&item.isView==1&&item.content.allCount > 0)"> | 71 | <button @click="goGroupInfo(item)">机构资料</button> |
| 80 | <button @click="sendBack(item)">撤回</button> | 72 | <button v-if="item.auditStatus == 1&&item.isView==1&&item.content.allCount > 0" @click="sendBack(item)">撤回</button> |
| 81 | </view> | 73 | <button v-if="item.auditStatus == 0" @click="audit(item.recordId,'0')">拒绝</button> |
| 74 | <button v-if="item.auditStatus == 0" @click="audit(item.recordId,'1')">同意</button> | ||
| 75 | |||
| 76 | </view> | ||
| 82 | <!-- 省 --> | 77 | <!-- 省 --> |
| 83 | <view class="func" | 78 | <view class="func" v-if="userType == '2'"> |
| 84 | v-if="(userType == '2'&&item.auditStatus == 1)"> | 79 | <button @click="goGroupInfo(item)">机构资料</button> |
| 85 | <button @click="sendBack(item)">撤回</button> | 80 | <button v-if="item.auditStatus == 1" @click="sendBack(item)">撤回</button> |
| 81 | <button v-if="item.auditStatus == 0" @click="audit(item.recordId,'0')">拒绝</button> | ||
| 82 | <button v-if="item.auditStatus == 0" @click="audit(item.recordId,'1')">同意</button> | ||
| 86 | </view> | 83 | </view> |
| 87 | </view> | 84 | </view> |
| 88 | </view> | 85 | </view> |
| ... | @@ -259,7 +256,7 @@ function sendBack(row) { | ... | @@ -259,7 +256,7 @@ function sendBack(row) { |
| 259 | content: `确定撤回${row.content.certName}吗`, | 256 | content: `确定撤回${row.content.certName}吗`, |
| 260 | success: function(res) { | 257 | success: function(res) { |
| 261 | if (res.confirm) { | 258 | if (res.confirm) { |
| 262 | api.groupWithDraw({ | 259 | api.certifiedwithDraw({ |
| 263 | recordId: row.recordId, | 260 | recordId: row.recordId, |
| 264 | reason: row.reason | 261 | reason: row.reason |
| 265 | }).then(res => { | 262 | }).then(res => { |
| ... | @@ -273,7 +270,13 @@ function sendBack(row) { | ... | @@ -273,7 +270,13 @@ function sendBack(row) { |
| 273 | } | 270 | } |
| 274 | } | 271 | } |
| 275 | }) | 272 | }) |
| 276 | } | 273 | } |
| 274 | |||
| 275 | function goGroupInfo(row){ | ||
| 276 | uni.navigateTo({ | ||
| 277 | url: `/group/groupInfo?memId=${row.content?.memId}` | ||
| 278 | }) | ||
| 279 | } | ||
| 277 | </script> | 280 | </script> |
| 278 | 281 | ||
| 279 | <style scoped> | 282 | <style scoped> | ... | ... |
| ... | @@ -2,9 +2,9 @@ | ... | @@ -2,9 +2,9 @@ |
| 2 | <view class="hasfixedbottom"> | 2 | <view class="hasfixedbottom"> |
| 3 | <view class="text-center whitebg"> | 3 | <view class="text-center whitebg"> |
| 4 | <view class="cardNav"> | 4 | <view class="cardNav"> |
| 5 | <view @click="goApply">会员审核</view> | 5 | <view @click="goApply">审核</view> |
| 6 | <view class="active">审核合并</view> | 6 | <view class="active">合并</view> |
| 7 | <view @click="goMergeUp">合并提交</view> | 7 | <view @click="goMergeUp">提交</view> |
| 8 | </view> | 8 | </view> |
| 9 | </view> | 9 | </view> |
| 10 | <!-- 审批合并 --> | 10 | <!-- 审批合并 --> |
| ... | @@ -22,6 +22,7 @@ | ... | @@ -22,6 +22,7 @@ |
| 22 | </view> | 22 | </view> |
| 23 | 23 | ||
| 24 | <view class="date" v-if="item.content.commitTime">提交日期:{{item.content.commitTime}}</view> | 24 | <view class="date" v-if="item.content.commitTime">提交日期:{{item.content.commitTime}}</view> |
| 25 | <view class="text-primary" v-if="item.content?.wfCode">{{item.content?.wfCode}}</view> | ||
| 25 | <view class="name mt0" @click="goDetail(item)">{{item.content.certName}}</view> | 26 | <view class="name mt0" @click="goDetail(item)">{{item.content.certName}}</view> |
| 26 | <view class="flexbox" @click="goDetail(item)"> | 27 | <view class="flexbox" @click="goDetail(item)"> |
| 27 | <view> | 28 | <view> |
| ... | @@ -30,7 +31,7 @@ | ... | @@ -30,7 +31,7 @@ |
| 30 | </view> | 31 | </view> |
| 31 | <view v-if="item.content.validityTime"> | 32 | <view v-if="item.content.validityTime"> |
| 32 | 原有效期 | 33 | 原有效期 |
| 33 | <view>{{item.content.validityTime}}</view> | 34 | <view>{{item.content?.validityTime.slice(0,10)}}</view> |
| 34 | </view> | 35 | </view> |
| 35 | <view> | 36 | <view> |
| 36 | 年限 | 37 | 年限 | ... | ... |
| ... | @@ -2,9 +2,9 @@ | ... | @@ -2,9 +2,9 @@ |
| 2 | <view> | 2 | <view> |
| 3 | <view class="text-center whitebg"> | 3 | <view class="text-center whitebg"> |
| 4 | <view class="cardNav"> | 4 | <view class="cardNav"> |
| 5 | <view @click="goApply">会员审核</view> | 5 | <view @click="goApply">审核</view> |
| 6 | <view @click="goMerge">审核合并</view> | 6 | <view @click="goMerge">合并</view> |
| 7 | <view class="active">合并提交</view> | 7 | <view class="active">提交</view> |
| 8 | </view> | 8 | </view> |
| 9 | </view> | 9 | </view> |
| 10 | <!-- 团队会员审核 --> | 10 | <!-- 团队会员审核 --> |
| ... | @@ -20,14 +20,15 @@ | ... | @@ -20,14 +20,15 @@ |
| 20 | </view> | 20 | </view> |
| 21 | <view class="date">提交日期:{{item.content.commitTime}}</view> | 21 | <view class="date">提交日期:{{item.content.commitTime}}</view> |
| 22 | <view class="date" v-if="item.content.validityTime">原有效期:{{item.content.validityTime}}</view> | 22 | <view class="date" v-if="item.content.validityTime">原有效期:{{item.content.validityTime}}</view> |
| 23 | <view class="name" @click="goDetail(item)">{{item.content.certName}}</view> | 23 | <view class="text-primary" v-if="item.content?.wfCode">{{item.content?.wfCode}}</view> |
| 24 | <view class="name mt0" style="width: 100%;" @click="goDetail(item)">{{item.content?.certName}}</view> | ||
| 24 | <view class="flexbox" @click="goDetail(item)"> | 25 | <view class="flexbox" @click="goDetail(item)"> |
| 25 | <view> | 26 | <view> |
| 26 | 年限 | 27 | 年限 |
| 27 | <view>{{item.content.renewYear}}</view> | 28 | <view>{{item.content.renewYear}}</view> |
| 28 | </view> | 29 | </view> |
| 29 | <view> | 30 | <view> |
| 30 | 会员合计/新会员 | 31 | 会员/新会员 |
| 31 | <view>{{item.content.allCount}}/<text class="text-danger">{{item.content.newCount}}</text></view> | 32 | <view>{{item.content.allCount}}/<text class="text-danger">{{item.content.newCount}}</text></view> |
| 32 | </view> | 33 | </view> |
| 33 | <view> | 34 | <view> | ... | ... |
| ... | @@ -7,7 +7,7 @@ | ... | @@ -7,7 +7,7 @@ |
| 7 | </view> | 7 | </view> |
| 8 | <view class="date">提交单位:<text>{{ form.content?.memberName }}</text> </view> | 8 | <view class="date">提交单位:<text>{{ form.content?.memberName }}</text> </view> |
| 9 | </view> | 9 | </view> |
| 10 | <view class="vipData mt30" style="flex-wrap: wrap;"> | 10 | <view class="vipData mt30" style="flex-wrap: wrap;padding: 20rpx;"> |
| 11 | <view class="w50"> | 11 | <view class="w50"> |
| 12 | 团队会员合计: | 12 | 团队会员合计: |
| 13 | <text>{{ form.content?.allCount }}个</text> | 13 | <text>{{ form.content?.allCount }}个</text> |
| ... | @@ -28,9 +28,9 @@ | ... | @@ -28,9 +28,9 @@ |
| 28 | 28 | ||
| 29 | <!-- 成员 --> | 29 | <!-- 成员 --> |
| 30 | <view class="userlist"> | 30 | <view class="userlist"> |
| 31 | <view class="item" v-for="(n,index) in list" :key="n.index" @click="goGroupInfo(n)"> | 31 | <view class="item" style="padding: 20rpx 0 0;" v-for="(n,index) in list" :key="n.index" @click="goGroupInfo(n)"> |
| 32 | <view style="width: 100%"> | 32 | <view style="width: 100%"> |
| 33 | <view class="name">{{n.memberName}}</view> | 33 | <view class="name text-primary underLine">{{n.memberName}}</view> |
| 34 | <view class="date">单位类型: | 34 | <view class="date">单位类型: |
| 35 | <text v-if="n.deptType==2">一级协会</text> | 35 | <text v-if="n.deptType==2">一级协会</text> |
| 36 | <text v-if="n.deptType==3">直属协会</text> | 36 | <text v-if="n.deptType==3">直属协会</text> |
| ... | @@ -38,7 +38,7 @@ | ... | @@ -38,7 +38,7 @@ |
| 38 | <text v-if="n.deptType==5">三级协会</text> | 38 | <text v-if="n.deptType==5">三级协会</text> |
| 39 | <text v-if="n.deptType==6">职业性团体会员</text> | 39 | <text v-if="n.deptType==6">职业性团体会员</text> |
| 40 | </view> | 40 | </view> |
| 41 | <view class="flexbox"> | 41 | <view class="flexbox" style="background-color: rgba(244, 249, 253, 1);padding:10rpx;"> |
| 42 | <view> | 42 | <view> |
| 43 | <view> | 43 | <view> |
| 44 | 原有效期 | 44 | 原有效期 | ... | ... |
| ... | @@ -21,7 +21,7 @@ | ... | @@ -21,7 +21,7 @@ |
| 21 | </view> | 21 | </view> |
| 22 | 22 | ||
| 23 | <view class="name mt0" @click="goDetail(item)"> | 23 | <view class="name mt0" @click="goDetail(item)"> |
| 24 | {{item.code}}-{{item.shenMemName}} | 24 | <text class="text-primary">{{item.code}}</text>-{{item.shenMemName}} |
| 25 | </view> | 25 | </view> |
| 26 | <view class="flexbox" @click="goDetail(item)"> | 26 | <view class="flexbox" @click="goDetail(item)"> |
| 27 | <view> | 27 | <view> | ... | ... |
group/changeGroupChoseList.vue
0 → 100644
| 1 | <template> | ||
| 2 | <view class="hasfixedbottom"> | ||
| 3 | |||
| 4 | <view class="searchbar"> | ||
| 5 | <uni-easyinput placeholderStyle="font-size:30rpx" :input-border="false" prefixIcon="search" | ||
| 6 | v-model="query.name" placeholder="搜索团体会员名称" @blur="getSonList" @clear="getSonList"> | ||
| 7 | </uni-easyinput> | ||
| 8 | <view class="invertedbtn-red" @click="getSonList">搜索</view> | ||
| 9 | </view> | ||
| 10 | <view class="userlist"> | ||
| 11 | <view class="item" v-for=" (n,index) in studentList" :key="index"> | ||
| 12 | <view @click="checkThis(n)"> | ||
| 13 | <image class="icon" v-if="n.checked" | ||
| 14 | :src="config.baseUrl_api+'/fs/static/member/dx_dwn.png'" /> | ||
| 15 | <image class="icon" v-else :src="config.baseUrl_api+'/fs/static/member/dx.png'" /> | ||
| 16 | </view> | ||
| 17 | <view class="w100"> | ||
| 18 | <view class="name">{{n.name}} </view> | ||
| 19 | <view class="flexbox" style="padding: 0"> | ||
| 20 | <view v-if="n.memCode">会员号 | ||
| 21 | <text>{{n.memCode}}</text> | ||
| 22 | </view> | ||
| 23 | <view class="date" v-if="n.validityDate">到期时间 | ||
| 24 | <text>{{n.validityDate?.slice(0,10)}}</text> | ||
| 25 | </view> | ||
| 26 | <view class="date">团体类型 | ||
| 27 | <text v-if="n.deptType == 2">一级协会</text> | ||
| 28 | <text v-if="n.deptType == 3">直属协会</text> | ||
| 29 | <text v-if="n.deptType == 4">二级协会</text> | ||
| 30 | <text v-if="n.deptType == 5">三级协会</text> | ||
| 31 | <text v-if="n.deptType == 6">职业性团体会员</text> | ||
| 32 | </view> | ||
| 33 | </view> | ||
| 34 | </view> | ||
| 35 | </view> | ||
| 36 | <view class="nodata" v-if="studentList.length==0"> | ||
| 37 | <image mode="aspectFit" src="/static/nodata.png"></image> | ||
| 38 | <text>无可变更会员</text> | ||
| 39 | </view> | ||
| 40 | </view> | ||
| 41 | <uni-load-more @clickLoadMore="clickLoadMore" :contentText="contentText" :status="status"></uni-load-more> | ||
| 42 | |||
| 43 | <view class="fixedBottom" v-if="studentList.length!=0"> | ||
| 44 | <button class="btn-red" @click="handleImport">批量添加</button> | ||
| 45 | </view> | ||
| 46 | </view> | ||
| 47 | </template> | ||
| 48 | |||
| 49 | <script setup> | ||
| 50 | import { | ||
| 51 | ref | ||
| 52 | } from 'vue' | ||
| 53 | import { | ||
| 54 | onLoad, | ||
| 55 | onShow | ||
| 56 | } from '@dcloudio/uni-app' | ||
| 57 | import * as api from '@/common/api.js' | ||
| 58 | import _ from 'lodash' | ||
| 59 | import config from '/config.js' | ||
| 60 | const query = ref({ | ||
| 61 | pageNum:1, | ||
| 62 | pageSize:10, | ||
| 63 | paymentRangeId:-1, | ||
| 64 | }) | ||
| 65 | const total = ref(0) | ||
| 66 | const list = ref([]) | ||
| 67 | const studentList = ref([]) | ||
| 68 | const type = ref('') | ||
| 69 | const form = ref({}) | ||
| 70 | const status = ref('no-more') | ||
| 71 | const contentText = ref({contentdown: "点击加载更多",contentrefresh: "正在加载...",contentnomore: "没有更多数据了"}) | ||
| 72 | |||
| 73 | onLoad((option) => { | ||
| 74 | if (option.rangeId) { | ||
| 75 | query.value.paymentRangeId = option.rangeId | ||
| 76 | } | ||
| 77 | getList() | ||
| 78 | }) | ||
| 79 | onShow(() => {}) | ||
| 80 | |||
| 81 | function clickLoadMore(){ | ||
| 82 | getList() | ||
| 83 | } | ||
| 84 | function getList() { | ||
| 85 | if(total.value>0&&total.value>studentList.value.length){ | ||
| 86 | uni.showLoading({ | ||
| 87 | title: '加载中', | ||
| 88 | icon: 'none' | ||
| 89 | }) | ||
| 90 | status.value = 'loading' | ||
| 91 | query.value.pageNum += 1 | ||
| 92 | api.getMySonList(query.value).then(res => { | ||
| 93 | studentList.value = _.concat(studentList.value,res.data.rows) | ||
| 94 | total.value = res.data.total | ||
| 95 | if(total.value>studentList.value.length){ | ||
| 96 | status.value = 'more' | ||
| 97 | } else { | ||
| 98 | status.value = 'no-more' | ||
| 99 | } | ||
| 100 | uni.hideLoading() | ||
| 101 | }) | ||
| 102 | }else if(total.value==0){ | ||
| 103 | getSonList() | ||
| 104 | } | ||
| 105 | } | ||
| 106 | function getSonList(){ | ||
| 107 | query.value.pageNum = 1 | ||
| 108 | api.getMySonList(query.value).then(res => { | ||
| 109 | studentList.value = res.data.rows | ||
| 110 | total.value = res.data.total | ||
| 111 | if(total.value>studentList.value.length){ | ||
| 112 | status.value = 'more' | ||
| 113 | } else { | ||
| 114 | status.value = 'no-more' | ||
| 115 | } | ||
| 116 | }) | ||
| 117 | } | ||
| 118 | |||
| 119 | function checkThis(n) { | ||
| 120 | if (n.checked) { | ||
| 121 | n.checked = false | ||
| 122 | } else { | ||
| 123 | n.checked = true | ||
| 124 | } | ||
| 125 | } | ||
| 126 | |||
| 127 | function handleImport() { | ||
| 128 | var arr = [] | ||
| 129 | for (var n of studentList.value) { | ||
| 130 | if (n.checked) { | ||
| 131 | arr.push(n.memId) | ||
| 132 | } | ||
| 133 | } | ||
| 134 | api.addGroupInfoModeToRange({ | ||
| 135 | memId: arr, | ||
| 136 | rangeIdStr: query.value.paymentRangeId | ||
| 137 | }).then(res => { | ||
| 138 | var pages = getCurrentPages() | ||
| 139 | var prevPage = pages[pages.length - 2] | ||
| 140 | prevPage.onShow(res.data) | ||
| 141 | uni.navigateBack() | ||
| 142 | }) | ||
| 143 | } | ||
| 144 | |||
| 145 | </script> | ||
| 146 | <style scoped lang="scss"> | ||
| 147 | .searchbar { | ||
| 148 | display: flex; | ||
| 149 | align-items: center; | ||
| 150 | padding:25rpx; | ||
| 151 | box-sizing: border-box; | ||
| 152 | |||
| 153 | :deep(.uni-easyinput .uni-easyinput__content) { | ||
| 154 | border-radius: 35rpx; | ||
| 155 | height: 66rpx; border: 1px solid #AD181F!important; | ||
| 156 | } | ||
| 157 | |||
| 158 | :deep(.uni-easyinput__content-input) { | ||
| 159 | font-size: 26rpx; | ||
| 160 | } | ||
| 161 | |||
| 162 | .invertedbtn-red { | ||
| 163 | border-radius: 50px; margin-left: 20rpx; | ||
| 164 | background-color: #fff; | ||
| 165 | |||
| 166 | font-size: 30rpx; | ||
| 167 | padding: 10rpx 20rpx; | ||
| 168 | } | ||
| 169 | } | ||
| 170 | .userlist {padding: 0 25rpx;} | ||
| 171 | .flexbox { | ||
| 172 | padding: 30rpx 30rpx 0 | ||
| 173 | } | ||
| 174 | |||
| 175 | .danger-button { | ||
| 176 | display: flex; | ||
| 177 | flex-direction: column; | ||
| 178 | align-items: center; | ||
| 179 | justify-content: center; | ||
| 180 | } | ||
| 181 | |||
| 182 | .collapseBody { | ||
| 183 | padding: 0 30rpx; | ||
| 184 | box-sizing: border-box; | ||
| 185 | font-size: 28rpx; | ||
| 186 | |||
| 187 | view { | ||
| 188 | margin: 0 0 20rpx; | ||
| 189 | |||
| 190 | label { | ||
| 191 | width: 7em; | ||
| 192 | color: #999; | ||
| 193 | display: inline-block; | ||
| 194 | text-align: right; | ||
| 195 | } | ||
| 196 | } | ||
| 197 | } | ||
| 198 | |||
| 199 | .popBody { | ||
| 200 | background: #fff; | ||
| 201 | padding: 30rpx; | ||
| 202 | } | ||
| 203 | |||
| 204 | .text-center .btn-red-kx { | ||
| 205 | border-radius: 50px; | ||
| 206 | font-size: 28rpx; | ||
| 207 | } | ||
| 208 | :deep(.file-picker__progress){opacity: 0;} | ||
| 209 | </style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -20,7 +20,7 @@ | ... | @@ -20,7 +20,7 @@ |
| 20 | </view> | 20 | </view> |
| 21 | 21 | ||
| 22 | <view class="name mt0" @click="goDetail(item)"> | 22 | <view class="name mt0" @click="goDetail(item)"> |
| 23 | {{item.code}}-{{item.shenMemName}} | 23 | <text class="text-primary">{{item.code}}</text>-{{item.shenMemName}} |
| 24 | </view> | 24 | </view> |
| 25 | <view class="flexbox" @click="goDetail(item)"> | 25 | <view class="flexbox" @click="goDetail(item)"> |
| 26 | <view> | 26 | <view> | ... | ... |
| ... | @@ -16,8 +16,8 @@ | ... | @@ -16,8 +16,8 @@ |
| 16 | <uni-icons type="calendar-filled" size="16" color="#AD181F"></uni-icons> | 16 | <uni-icons type="calendar-filled" size="16" color="#AD181F"></uni-icons> |
| 17 | <text>{{item.payTime}} 缴费</text> | 17 | <text>{{item.payTime}} 缴费</text> |
| 18 | </view> | 18 | </view> |
| 19 | 19 | <view class="text-primary" v-if="item.wfCode">{{item.wfCode}}</view> | |
| 20 | <view class="name" @click="goDetail(item)">{{item.finalDocName}}</view> | 20 | <view class="name mt0" @click="goDetail(item)">{{item.finalDocName}}</view> |
| 21 | <view v-if="deptType==1" class="date"> | 21 | <view v-if="deptType==1" class="date"> |
| 22 | <text>{{item.payNoticeSendTime}} 下发</text> | 22 | <text>{{item.payNoticeSendTime}} 下发</text> |
| 23 | </view> | 23 | </view> |
| ... | @@ -28,10 +28,10 @@ | ... | @@ -28,10 +28,10 @@ |
| 28 | <text class="text-primary">已结算</text> | 28 | <text class="text-primary">已结算</text> |
| 29 | </view> | 29 | </view> |
| 30 | <view v-if="item.settleFlag == 1 && item?.payFlag == 0"> | 30 | <view v-if="item.settleFlag == 1 && item?.payFlag == 0"> |
| 31 | <text class="text-success">已上传凭证</text> | 31 | <text class="text-success">已上传</text> |
| 32 | </view> | 32 | </view> |
| 33 | <view v-if="item.settleFlag == 1 && item?.payFlag == 1"> | 33 | <view v-if="item.settleFlag == 1 && item?.payFlag == 1"> |
| 34 | <text class="text-danger">未上传凭证</text> | 34 | <text class="text-danger">未上传</text> |
| 35 | </view> | 35 | </view> |
| 36 | </view> | 36 | </view> |
| 37 | <view> | 37 | <view> | ... | ... |
| ... | @@ -148,7 +148,13 @@ onLoad((option) => { | ... | @@ -148,7 +148,13 @@ onLoad((option) => { |
| 148 | getList() | 148 | getList() |
| 149 | } | 149 | } |
| 150 | }) | 150 | }) |
| 151 | onShow(() => {}) | 151 | onShow((option) => { |
| 152 | console.log(option) | ||
| 153 | if(option){ | ||
| 154 | queryParams.value.rangeId = option | ||
| 155 | getList() | ||
| 156 | } | ||
| 157 | }) | ||
| 152 | 158 | ||
| 153 | function getList() { | 159 | function getList() { |
| 154 | uni.showLoading({ | 160 | uni.showLoading({ |
| ... | @@ -188,17 +194,19 @@ function handleDelete(row) { | ... | @@ -188,17 +194,19 @@ function handleDelete(row) { |
| 188 | } | 194 | } |
| 189 | 195 | ||
| 190 | function chooseOnline() { | 196 | function chooseOnline() { |
| 191 | uni.showLoading({ | 197 | // uni.showLoading({ |
| 192 | title: '加载中', | 198 | // title: '加载中', |
| 193 | icon: 'none' | 199 | // icon: 'none' |
| 194 | }) | 200 | // }) |
| 195 | query.value.paymentRangeId = queryParams.value.rangeId || '-1' | 201 | // query.value.paymentRangeId = queryParams.value.rangeId || '-1' |
| 196 | api.getMySonList(query.value).then(res => { | 202 | // api.getMySonList(query.value).then(res => { |
| 197 | studentList.value = res.data.rows | 203 | // studentList.value = res.data.rows |
| 198 | uni.hideLoading() | 204 | // uni.hideLoading() |
| 199 | choseStudent.value.open() | 205 | // choseStudent.value.open() |
| 200 | }) | 206 | // }) |
| 201 | 207 | uni.navigateTo({ | |
| 208 | url:`/group/changeGroupChoseList?rangeId=${queryParams.value.rangeId || '-1'}` | ||
| 209 | }) | ||
| 202 | } | 210 | } |
| 203 | function getSonList(){ | 211 | function getSonList(){ |
| 204 | uni.showLoading({ | 212 | uni.showLoading({ | ... | ... |
| ... | @@ -16,8 +16,9 @@ | ... | @@ -16,8 +16,9 @@ |
| 16 | <text v-if="item?.content?.status==3" class="text-danger"> 审核拒绝</text> | 16 | <text v-if="item?.content?.status==3" class="text-danger"> 审核拒绝</text> |
| 17 | <text v-if="item?.content?.status==4" class="text-warning">已撤回</text> | 17 | <text v-if="item?.content?.status==4" class="text-warning">已撤回</text> |
| 18 | </view> | 18 | </view> |
| 19 | <view class="date">{{item?.content?.commitTime}} 提交</view> | 19 | <view class="date">{{item?.content?.commitTime}} 提交</view> |
| 20 | <view class="name" @click="goDetail(item)">{{item.rangeName}}</view> | 20 | <view class="text-primary" v-if="item.wfCode">{{item.wfCode}}</view> |
| 21 | <view class="name mt0" @click="goDetail(item)">{{item.rangeName}}</view> | ||
| 21 | <view class="flexbox" @click="goDetail(item)"> | 22 | <view class="flexbox" @click="goDetail(item)"> |
| 22 | <view> | 23 | <view> |
| 23 | 会员合计 | 24 | 会员合计 | ... | ... |
| ... | @@ -22,7 +22,7 @@ | ... | @@ -22,7 +22,7 @@ |
| 22 | 撤回 | 22 | 撤回 |
| 23 | </view> | 23 | </view> |
| 24 | </view> | 24 | </view> |
| 25 | <view class="name">{{n.memberName}}</view> | 25 | <view class="name text-primary underLine">{{n.memberName}}</view> |
| 26 | <view class="date">提交日期:{{n.commitTime}} | 26 | <view class="date">提交日期:{{n.commitTime}} |
| 27 | </view> | 27 | </view> |
| 28 | <view class="flexbox"> | 28 | <view class="flexbox"> | ... | ... |
| ... | @@ -57,10 +57,11 @@ | ... | @@ -57,10 +57,11 @@ |
| 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 | <view class="photobox"> | 61 | <view class="photobox"> |
| 61 | <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> |
| 62 | <view class="colorful" v-else>{{n.realName?.slice(0,1)}}</view> | 63 | <view class="colorful" v-else>{{n.realName?.slice(0,1)}}</view> |
| 63 | </view> | 64 | </view> --> |
| 64 | <view> | 65 | <view> |
| 65 | <view class="name">{{n.realName}} <text>{{n.perCode}}</text></view> | 66 | <view class="name">{{n.realName}} <text>{{n.perCode}}</text></view> |
| 66 | <view class="date">{{n.idcTypeStr}}:{{n.idcCode}}</view> | 67 | <view class="date">{{n.idcTypeStr}}:{{n.idcCode}}</view> |
| ... | @@ -549,10 +550,12 @@ | ... | @@ -549,10 +550,12 @@ |
| 549 | if (e !== nowRow.levelRecommend) { | 550 | if (e !== nowRow.levelRecommend) { |
| 550 | uni.showModal({ | 551 | uni.showModal({ |
| 551 | title: '提示', | 552 | title: '提示', |
| 552 | content: `建议考试级别为 "${szToHz(nowRow.levelRecommend)}级" ,确定要修改吗?`, | 553 | content: `建议考试级别为 "${szToHz(nowRow.levelRecommend)}级" ,确定要修改为${szToHz(e)}级吗?`, |
| 553 | success: function(res) { | 554 | success: function(res) { |
| 554 | if (res.confirm) { | 555 | if (res.confirm) { |
| 555 | getTablePersonInfo() | 556 | getTablePersonInfo() |
| 557 | }else{ | ||
| 558 | nowRow.levelNew = nowRow.levelRecommend | ||
| 556 | } | 559 | } |
| 557 | }, | 560 | }, |
| 558 | fail: function(res) { | 561 | fail: function(res) { |
| ... | @@ -583,12 +586,18 @@ | ... | @@ -583,12 +586,18 @@ |
| 583 | title: '提示', | 586 | title: '提示', |
| 584 | content: `确定提交审核?`, | 587 | content: `确定提交审核?`, |
| 585 | success: function(res) { | 588 | success: function(res) { |
| 586 | saveStep2(flag).then(res => { | 589 | if (res.confirm) { |
| 587 | uni.showToast({ | 590 | console.log('用户点击确定'); |
| 588 | title: `操作成功` | 591 | saveStep2(flag).then(Response => { |
| 592 | uni.showToast({ | ||
| 593 | title: `操作成功` | ||
| 594 | }) | ||
| 595 | uni.navigateBack() | ||
| 589 | }) | 596 | }) |
| 590 | uni.navigateBack() | 597 | } else if (res.cancel) { |
| 591 | }) | 598 | console.log('用户点击取消'); |
| 599 | } | ||
| 600 | |||
| 592 | } | 601 | } |
| 593 | }) | 602 | }) |
| 594 | } else { | 603 | } else { | ... | ... |
| ... | @@ -16,6 +16,7 @@ | ... | @@ -16,6 +16,7 @@ |
| 16 | <text v-if="item.status=='4'" class="text-warning">{{ item.statusStr }}</text> | 16 | <text v-if="item.status=='4'" class="text-warning">{{ item.statusStr }}</text> |
| 17 | </view> | 17 | </view> |
| 18 | <view class="date" v-if="item.status!='0'&&item.submitTime">提交时间:{{item.submitTime}}</view> | 18 | <view class="date" v-if="item.status!='0'&&item.submitTime">提交时间:{{item.submitTime}}</view> |
| 19 | <view class="mt0" @click="goDetail(item)"><text class="text-primary">{{item.examCode}}</text></view> | ||
| 19 | <view class="name mt0" @click="goDetail(item)">{{item.name}}</view> | 20 | <view class="name mt0" @click="goDetail(item)">{{item.name}}</view> |
| 20 | <view class="pp esp">申请单位:{{item.memberName}}</view> | 21 | <view class="pp esp">申请单位:{{item.memberName}}</view> |
| 21 | <view class="pp esp">考级日期:{{item.startTime.substring(0,16)}} 至 {{item.endTime.substring(0,16)}}</view> | 22 | <view class="pp esp">考级日期:{{item.startTime.substring(0,16)}} 至 {{item.endTime.substring(0,16)}}</view> | ... | ... |
| ... | @@ -3,29 +3,29 @@ | ... | @@ -3,29 +3,29 @@ |
| 3 | <view class="wBox"> | 3 | <view class="wBox"> |
| 4 | <view class="tt">考级基本信息</view> | 4 | <view class="tt">考级基本信息</view> |
| 5 | <view class="ddd"> | 5 | <view class="ddd"> |
| 6 | <text class="lab">考级名称:</text>{{ form.name }} | 6 | <text class="lab">考级名称:</text>{{ form?.name }} |
| 7 | </view> | 7 | </view> |
| 8 | <view class="ddd"> | 8 | <view class="ddd"> |
| 9 | <text class="lab">申请日期:</text>{{form.applyTime}} | 9 | <text class="lab">申请日期:</text>{{form?.applyTime?.slice(0,10)}} |
| 10 | </view> | 10 | </view> |
| 11 | <view class="ddd"> | 11 | <view class="ddd"> |
| 12 | <text class="lab">申请单位:</text>{{ form.memberName }} | 12 | <text class="lab">申请单位:</text>{{ form?.memberName }} |
| 13 | </view> | 13 | </view> |
| 14 | <view class="ddd"> | 14 | <view class="ddd"> |
| 15 | <text class="lab">考官:</text>{{form.examinerNames?.split(',').join('/')}} | 15 | <text class="lab">考官:</text>{{form?.examinerNames?.split(',').join('/')}} |
| 16 | </view> | 16 | </view> |
| 17 | <view class="ddd"> | 17 | <view class="ddd"> |
| 18 | <text class="lab">考试开始时间:</text>{{form.startTime}} | 18 | <text class="lab">考试开始时间:</text>{{form?.startTime}} |
| 19 | </view> | 19 | </view> |
| 20 | <view class="ddd"> | 20 | <view class="ddd"> |
| 21 | <text class="lab">考试结束时间:</text>{{form.endTime}} | 21 | <text class="lab">考试结束时间:</text>{{form?.endTime}} |
| 22 | </view> | 22 | </view> |
| 23 | <view class="ddd"> | 23 | <view class="ddd"> |
| 24 | <text class="lab">考级地点:</text>{{form.address}} | 24 | <text class="lab">考级地点:</text>{{form?.address}} |
| 25 | </view> | 25 | </view> |
| 26 | <view class="ddd" v-if="userType=='2'||userType=='1'"> | 26 | <view class="ddd" v-if="userType=='2'||userType=='1'"> |
| 27 | <text class="lab">总金额:</text> | 27 | <text class="lab">总金额:</text> |
| 28 | <text class="text-danger">¥{{(form.totalAmount*1).toFixed(2) }}</text> | 28 | <text class="text-danger">¥{{(form?.totalAmount*1).toFixed(2) }}</text> |
| 29 | </view> | 29 | </view> |
| 30 | </view> | 30 | </view> |
| 31 | <view class="wBox"> | 31 | <view class="wBox"> |
| ... | @@ -130,6 +130,7 @@ | ... | @@ -130,6 +130,7 @@ |
| 130 | let recordId = '' | 130 | let recordId = '' |
| 131 | onLoad((option) => { | 131 | onLoad((option) => { |
| 132 | examId = option.examId | 132 | examId = option.examId |
| 133 | console.log(option) | ||
| 133 | if ('form' in option) { | 134 | if ('form' in option) { |
| 134 | form.value = JSON.parse(decodeURIComponent(option.form)) | 135 | form.value = JSON.parse(decodeURIComponent(option.form)) |
| 135 | console.log('form',form.value) | 136 | console.log('form',form.value) |
| ... | @@ -165,6 +166,7 @@ | ... | @@ -165,6 +166,7 @@ |
| 165 | api.getLevelApplyInfo(examId).then(res => { | 166 | api.getLevelApplyInfo(examId).then(res => { |
| 166 | uni.hideLoading() | 167 | uni.hideLoading() |
| 167 | form.value = res.data | 168 | form.value = res.data |
| 169 | console.log(form.value) | ||
| 168 | }) | 170 | }) |
| 169 | } | 171 | } |
| 170 | 172 | ... | ... |
| ... | @@ -2,9 +2,9 @@ | ... | @@ -2,9 +2,9 @@ |
| 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"> | 4 | <view class="cardNav"> |
| 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 class="whitebg" :current="current" :values="navs" @clickItem="onClickItem" |
| ... | @@ -22,6 +22,7 @@ | ... | @@ -22,6 +22,7 @@ |
| 22 | </view> | 22 | </view> |
| 23 | 23 | ||
| 24 | <view class="date" v-if="item.status!='0'&&item.submitTime">提交时间:{{item.submitTime}}</view> | 24 | <view class="date" v-if="item.status!='0'&&item.submitTime">提交时间:{{item.submitTime}}</view> |
| 25 | <view class="text-primary" v-if="item.examCode">{{item.examCode}}</view> | ||
| 25 | <view class="name mt0" @click="goDetail(item)">{{item.name}}</view> | 26 | <view class="name mt0" @click="goDetail(item)">{{item.name}}</view> |
| 26 | <view class="pp esp">申请日期:{{item.applyTime.substring(0,10)}}</view> | 27 | <view class="pp esp">申请日期:{{item.applyTime.substring(0,10)}}</view> |
| 27 | <view class="pp esp">考级日期:{{item.startTime.substring(0,16)}} 至 {{item.endTime.substring(0,16)}}</view> | 28 | <view class="pp esp">考级日期:{{item.startTime.substring(0,16)}} 至 {{item.endTime.substring(0,16)}}</view> |
| ... | @@ -241,8 +242,12 @@ | ... | @@ -241,8 +242,12 @@ |
| 241 | }) | 242 | }) |
| 242 | } | 243 | } |
| 243 | function doApproval(obj) { | 244 | function doApproval(obj) { |
| 245 | uni.showLoading({ | ||
| 246 | title: '加载中' | ||
| 247 | }) | ||
| 244 | console.log(obj) | 248 | console.log(obj) |
| 245 | api.doVerity(obj).then((res) => { | 249 | api.doVerity(obj).then((res) => { |
| 250 | uni.hideLoading() | ||
| 246 | uni.showToast({ | 251 | uni.showToast({ |
| 247 | title: '操作成功', | 252 | title: '操作成功', |
| 248 | icon: 'none' | 253 | icon: 'none' | ... | ... |
| ... | @@ -2,9 +2,9 @@ | ... | @@ -2,9 +2,9 @@ |
| 2 | <view class="hasfixedbottom"> | 2 | <view class="hasfixedbottom"> |
| 3 | <view class="text-center whitebg"> | 3 | <view class="text-center whitebg"> |
| 4 | <view class="cardNav"> | 4 | <view class="cardNav"> |
| 5 | <view @click="goApproval">会员审核</view> | 5 | <view @click="goApproval">审核</view> |
| 6 | <view class="active">审核合并</view> | 6 | <view class="active">合并</view> |
| 7 | <view @click="goMergeUp">合并提交</view> | 7 | <view @click="goMergeUp">提交</view> |
| 8 | </view> | 8 | </view> |
| 9 | </view> | 9 | </view> |
| 10 | <view class="appList"> | 10 | <view class="appList"> |
| ... | @@ -21,7 +21,8 @@ | ... | @@ -21,7 +21,8 @@ |
| 21 | }">{{ item.statusStr }}</text> | 21 | }">{{ item.statusStr }}</text> |
| 22 | </view> | 22 | </view> |
| 23 | 23 | ||
| 24 | <view class="date" v-if="item.applyTime">上报日期:{{item.applyTime}}</view> | 24 | <view class="date" v-if="item.applyTime">上报日期:{{item.applyTime?.slice(0,10)}}</view> |
| 25 | <view class="text-primary" v-if="item.examCode">{{item.examCode}}</view> | ||
| 25 | <view class="name mt0" @click="goDetail(item)">{{item.name}}</view> | 26 | <view class="name mt0" @click="goDetail(item)">{{item.name}}</view> |
| 26 | <view class="pp esp">考级日期:{{item.startTime.substring(0,16)}} 至 {{item.endTime.substring(0,16)}}</view> | 27 | <view class="pp esp">考级日期:{{item.startTime.substring(0,16)}} 至 {{item.endTime.substring(0,16)}}</view> |
| 27 | <view class="flexbox" @click="goDetail(item)"> | 28 | <view class="flexbox" @click="goDetail(item)"> | ... | ... |
| ... | @@ -2,9 +2,9 @@ | ... | @@ -2,9 +2,9 @@ |
| 2 | <view> | 2 | <view> |
| 3 | <view class="text-center whitebg"> | 3 | <view class="text-center whitebg"> |
| 4 | <view class="cardNav"> | 4 | <view class="cardNav"> |
| 5 | <view @click="goApproval">会员审核</view> | 5 | <view @click="goApproval">审核</view> |
| 6 | <view @click="goMerge">审核合并</view> | 6 | <view @click="goMerge">合并</view> |
| 7 | <view class="active">合并提交</view> | 7 | <view class="active">提交</view> |
| 8 | </view> | 8 | </view> |
| 9 | </view> | 9 | </view> |
| 10 | <!-- 级位合并提交 --> | 10 | <!-- 级位合并提交 --> |
| ... | @@ -25,8 +25,9 @@ | ... | @@ -25,8 +25,9 @@ |
| 25 | {{ item.auditStatus=='100'?'待提交':statusArr[item.status] }} | 25 | {{ item.auditStatus=='100'?'待提交':statusArr[item.status] }} |
| 26 | </view> | 26 | </view> |
| 27 | </view> | 27 | </view> |
| 28 | <view class="date" v-if="item.handleDate">{{item.handleDate}}</view> | 28 | <view class="date" v-if="item.handleDate">{{item.handleDate}}</view> |
| 29 | <view class="name" @click="goDetail(item)">{{item.mergeName}}</view> | 29 | <view v-if="item.flowCode" class="text-primary">{{item.flowCode}}</view> |
| 30 | <view class="name mt0" @click="goDetail(item)">{{item.mergeName}}</view> | ||
| 30 | <view class="flexbox" @click="goDetail(item)"> | 31 | <view class="flexbox" @click="goDetail(item)"> |
| 31 | <view> | 32 | <view> |
| 32 | 考试人数 | 33 | 考试人数 |
| ... | @@ -142,7 +143,7 @@ | ... | @@ -142,7 +143,7 @@ |
| 142 | item.payStatus = r.payStatus | 143 | item.payStatus = r.payStatus |
| 143 | item.sourceData = r | 144 | item.sourceData = r |
| 144 | item.auditProcess = r.auditProcess | 145 | item.auditProcess = r.auditProcess |
| 145 | item.handleDate = r.handleDate | 146 | item.handleDate = r.handleDate |
| 146 | list.push(item) | 147 | list.push(item) |
| 147 | 148 | ||
| 148 | statistical.value.totalCost += (item.totalAmount * 1) | 149 | statistical.value.totalCost += (item.totalAmount * 1) |
| ... | @@ -150,7 +151,7 @@ | ... | @@ -150,7 +151,7 @@ |
| 150 | 151 | ||
| 151 | }) | 152 | }) |
| 152 | infoList.value = list | 153 | infoList.value = list |
| 153 | total.value = response.total | 154 | total.value = response.total |
| 154 | }) | 155 | }) |
| 155 | } | 156 | } |
| 156 | function handleBack(row){ | 157 | function handleBack(row){ | ... | ... |
| ... | @@ -28,6 +28,7 @@ | ... | @@ -28,6 +28,7 @@ |
| 28 | <view class="userlist"> | 28 | <view class="userlist"> |
| 29 | <view class="item" v-for="(n,index) in infoList" :key="index" @click="goDetail(n)" style="background-color: #fffafa;"> | 29 | <view class="item" v-for="(n,index) in infoList" :key="index" @click="goDetail(n)" style="background-color: #fffafa;"> |
| 30 | <view class="w100"> | 30 | <view class="w100"> |
| 31 | <view class="text-primary">{{n.examCode}}</view> | ||
| 31 | <view class="name">{{n.name}}</view> | 32 | <view class="name">{{n.name}}</view> |
| 32 | <!-- <view class="date">{{n.idcTypeStr}}:{{n.idcCode}}</view> --> | 33 | <!-- <view class="date">{{n.idcTypeStr}}:{{n.idcCode}}</view> --> |
| 33 | <view class="flexbox"> | 34 | <view class="flexbox"> | ... | ... |
| ... | @@ -14,6 +14,7 @@ | ... | @@ -14,6 +14,7 @@ |
| 14 | <text v-if="item.payTime">{{item.payTime}} 缴费</text> | 14 | <text v-if="item.payTime">{{item.payTime}} 缴费</text> |
| 15 | <text v-else>{{item.payNoticeSendTime}} 下发</text> | 15 | <text v-else>{{item.payNoticeSendTime}} 下发</text> |
| 16 | </view> | 16 | </view> |
| 17 | <view class="text-primary" v-if="item.payCode">{{item.payCode}}</view> | ||
| 17 | <view class="name" @click="goDetail(item)">{{item.finalDocName}}</view> | 18 | <view class="name" @click="goDetail(item)">{{item.finalDocName}}</view> |
| 18 | <view class="flexbox" @click="goDetail(item)"> | 19 | <view class="flexbox" @click="goDetail(item)"> |
| 19 | <view> | 20 | <view> | ... | ... |
| ... | @@ -20,6 +20,7 @@ | ... | @@ -20,6 +20,7 @@ |
| 20 | </view> | 20 | </view> |
| 21 | 21 | ||
| 22 | <view class="date" v-if="item.status!='0'&&item.submitTime">提交时间:{{item.submitTime}}</view> | 22 | <view class="date" v-if="item.status!='0'&&item.submitTime">提交时间:{{item.submitTime}}</view> |
| 23 | <view class="text-primary">{{item.flowCode}}</view> | ||
| 23 | <view class="name mt0" @click="goDetail(item)">{{item.mergeName}}</view> | 24 | <view class="name mt0" @click="goDetail(item)">{{item.mergeName}}</view> |
| 24 | <view class="pp esp">上报单位:{{item.memName}}</view> | 25 | <view class="pp esp">上报单位:{{item.memName}}</view> |
| 25 | <view class="flexbox" @click="goDetail(item)"> | 26 | <view class="flexbox" @click="goDetail(item)"> |
| ... | @@ -32,8 +33,8 @@ | ... | @@ -32,8 +33,8 @@ |
| 32 | 缴费状态 | 33 | 缴费状态 |
| 33 | <view> | 34 | <view> |
| 34 | <text :class="{ | 35 | <text :class="{ |
| 35 | 'text-success':item.examPayStatusStr=='已上传凭证', | 36 | 'text-success':item.examPayStatusStr=='已上传', |
| 36 | 'text-danger':item.examPayStatusStr=='未上传凭证', | 37 | 'text-danger':item.examPayStatusStr=='未上传', |
| 37 | 'text-warning':item.examPayStatusStr=='已结算' | 38 | 'text-warning':item.examPayStatusStr=='已结算' |
| 38 | }">{{ item.examPayStatusStr||'--' }}</text> | 39 | }">{{ item.examPayStatusStr||'--' }}</text> |
| 39 | </view> | 40 | </view> | ... | ... |
| ... | @@ -14,6 +14,7 @@ | ... | @@ -14,6 +14,7 @@ |
| 14 | <view class="date"> | 14 | <view class="date"> |
| 15 | <uni-icons type="calendar-filled" size="16" color="#AD181F"></uni-icons> | 15 | <uni-icons type="calendar-filled" size="16" color="#AD181F"></uni-icons> |
| 16 | {{item.submitTimeStr}} 提交</view> | 16 | {{item.submitTimeStr}} 提交</view> |
| 17 | <view class="text-primary" v-if="item.payCode" @click="goDetail(item)">{{item.payCode}}</view> | ||
| 17 | <view class="name mt0 w100" @click="goDetail(item)"><text class="dot"></text>{{item.name}}</view> | 18 | <view class="name mt0 w100" @click="goDetail(item)"><text class="dot"></text>{{item.name}}</view> |
| 18 | <view class="pp esp" v-if="item.certTimeStr">证书发送时间:{{item.certTimeStr}}</view> | 19 | <view class="pp esp" v-if="item.certTimeStr">证书发送时间:{{item.certTimeStr}}</view> |
| 19 | <view class="flexbox" @click="goDetail(item)"> | 20 | <view class="flexbox" @click="goDetail(item)"> | ... | ... |
This diff is collapsed.
Click to expand it.
myCenter/auth.vue
0 → 100644
This diff is collapsed.
Click to expand it.
myCenter/index.vue
0 → 100644
| 1 | <template> | ||
| 2 | <view class="page"> | ||
| 3 | <view class="bgbg"> | ||
| 4 | <view class="flex"> | ||
| 5 | <view class="imgbox"> | ||
| 6 | <image v-if="state.user.avatar" :src="state.user.avatar"/> | ||
| 7 | <image v-else src="@/static/nodata.png"/> | ||
| 8 | </view> | ||
| 9 | <text class="name">{{ state.user.userName }}</text> | ||
| 10 | </view> | ||
| 11 | </view> | ||
| 12 | <view class="rMainBox"> | ||
| 13 | <uni-list :border="false" class="myList"> | ||
| 14 | <uni-list-item thumb="/static/user_icon01.png" title="团体信息" showArrow clickable @click="goPath('/myCenter/teamInfo')"> | ||
| 15 | </uni-list-item> | ||
| 16 | |||
| 17 | <uni-list-item thumb="/static/user_icon02.png" title="会员认证" showArrow clickable @click="goPath('/myCenter/auth')"> | ||
| 18 | </uni-list-item> | ||
| 19 | |||
| 20 | <!-- <uni-list-item thumb="/static/user_icon03.png" v-show="userType==2" title="账户信息" showArrow clickable> | ||
| 21 | </uni-list-item> --> | ||
| 22 | |||
| 23 | <uni-list-item thumb="/static/user_icon03.png" title="账号安全" showArrow clickable @click="goPath('/myCenter/safe')"> | ||
| 24 | </uni-list-item> | ||
| 25 | |||
| 26 | </uni-list> | ||
| 27 | |||
| 28 | </view> | ||
| 29 | |||
| 30 | <view class="fixedBottom" style="background: transparent;box-shadow: none;"> | ||
| 31 | <button @click="loginOut" class="btn btn-red" style="border-radius: 50px;">退出登录</button> | ||
| 32 | </view> | ||
| 33 | </view> | ||
| 34 | </template> | ||
| 35 | |||
| 36 | <script setup> | ||
| 37 | import * as api from '@/common/api.js'; | ||
| 38 | import * as loginServer from '@/common/login.js'; | ||
| 39 | import config from '@/config.js' | ||
| 40 | import { | ||
| 41 | onLoad, | ||
| 42 | onShow, | ||
| 43 | onReady, | ||
| 44 | onPullDownRefresh | ||
| 45 | } from '@dcloudio/uni-app'; | ||
| 46 | import { | ||
| 47 | ref,reactive, | ||
| 48 | getCurrentInstance | ||
| 49 | } from 'vue'; | ||
| 50 | |||
| 51 | |||
| 52 | const { | ||
| 53 | proxy | ||
| 54 | } = getCurrentInstance() | ||
| 55 | const app = getApp(); | ||
| 56 | const userType = ref('1') | ||
| 57 | const memberInfo = ref({}) | ||
| 58 | |||
| 59 | let proId; | ||
| 60 | const svId = ref(null); | ||
| 61 | const numData = ref({}); | ||
| 62 | |||
| 63 | const messageList = ref([]) | ||
| 64 | const state = reactive({ | ||
| 65 | user: {}, | ||
| 66 | roleGroup: {}, | ||
| 67 | postGroup: {} | ||
| 68 | }) | ||
| 69 | onShow(() => { | ||
| 70 | if (app.globalData.isLogin) { | ||
| 71 | init() | ||
| 72 | } else { | ||
| 73 | app.firstLoadCallback = () => { | ||
| 74 | init() | ||
| 75 | }; | ||
| 76 | } | ||
| 77 | }) | ||
| 78 | onLoad(option => { | ||
| 79 | if (option.scene) { | ||
| 80 | proId = decodeURIComponent(option.scene); | ||
| 81 | } else { | ||
| 82 | proId = option.proId; | ||
| 83 | } | ||
| 84 | if(uni.showShareMenu){ | ||
| 85 | uni.showShareMenu({ | ||
| 86 | withShareTicket: true, | ||
| 87 | menus: ['shareAppMessage', 'shareTimeline'] | ||
| 88 | }); | ||
| 89 | } | ||
| 90 | }); | ||
| 91 | |||
| 92 | function loginOut() { | ||
| 93 | uni.showModal({ | ||
| 94 | content: `确认退出吗?`, | ||
| 95 | success: function(res) { | ||
| 96 | if (res.confirm) { | ||
| 97 | loginServer.logout().finally(() => { | ||
| 98 | let path = '/login/login'; | ||
| 99 | uni.reLaunch({ | ||
| 100 | url: path | ||
| 101 | }); | ||
| 102 | }) | ||
| 103 | } | ||
| 104 | } | ||
| 105 | }) | ||
| 106 | } | ||
| 107 | function getUser() { | ||
| 108 | api.getUserProfile().then((response) => { | ||
| 109 | state.user = response.data.user | ||
| 110 | if(state.user.avatar&&state.user.avatar.indexOf('http')==-1){ | ||
| 111 | state.user.avatar = config.baseUrl_api+state.user.avatar | ||
| 112 | } | ||
| 113 | state.roleGroup = response.data.roleGroup | ||
| 114 | state.postGroup = response.data.postGroup | ||
| 115 | uni.hideLoading(); | ||
| 116 | }) | ||
| 117 | } | ||
| 118 | function init() { | ||
| 119 | uni.showLoading({ | ||
| 120 | title: '加载中' | ||
| 121 | }); | ||
| 122 | getUser() | ||
| 123 | loginServer.getMyOwnMemberInfo().then(res => { | ||
| 124 | userType.value = app.globalData.userType | ||
| 125 | memberInfo.value = app.globalData.memberInfo | ||
| 126 | uni.hideLoading(); | ||
| 127 | }) | ||
| 128 | } | ||
| 129 | function goPath(url){ | ||
| 130 | uni.navigateTo({ | ||
| 131 | url:url | ||
| 132 | }) | ||
| 133 | } | ||
| 134 | |||
| 135 | </script> | ||
| 136 | <style scope lang="scss"> | ||
| 137 | .uni-list:after{display: none;} | ||
| 138 | .page { | ||
| 139 | width: 100vw; | ||
| 140 | overflow: hidden; | ||
| 141 | } | ||
| 142 | .bgbg{ | ||
| 143 | .flex{align-items: center;} | ||
| 144 | height: 280rpx;padding:30rpx; | ||
| 145 | .name{margin-left: 20rpx; | ||
| 146 | font-size: 36rpx;} | ||
| 147 | .imgbox{width: 120rpx; | ||
| 148 | height: 120rpx;overflow: hidden; | ||
| 149 | background: #C7C7CD; | ||
| 150 | border: 4rpx solid #FFFFFF; | ||
| 151 | border-radius: 50%; | ||
| 152 | image{height: 120rpx;width: 120rpx;object-fit: cover;} | ||
| 153 | } | ||
| 154 | } | ||
| 155 | .loginOutIcon { | ||
| 156 | position: relative; | ||
| 157 | left: 60rpx; | ||
| 158 | // top: 180rpx; | ||
| 159 | |||
| 160 | image { | ||
| 161 | width: 50rpx; | ||
| 162 | height: 50rpx; | ||
| 163 | } | ||
| 164 | } | ||
| 165 | |||
| 166 | .flexbox { | ||
| 167 | display: flex; | ||
| 168 | justify-content: space-around; | ||
| 169 | text-align: center; | ||
| 170 | |||
| 171 | image { | ||
| 172 | width: 90rpx; | ||
| 173 | height: 90rpx; | ||
| 174 | display: block; | ||
| 175 | margin: auto; | ||
| 176 | } | ||
| 177 | } | ||
| 178 | |||
| 179 | .image { | ||
| 180 | width: 25px; | ||
| 181 | height: 25px; | ||
| 182 | } | ||
| 183 | |||
| 184 | :deep(.uni-section) { | ||
| 185 | background-color: transparent; | ||
| 186 | } | ||
| 187 | |||
| 188 | :deep(.uni-section .uni-section-header__content) { | ||
| 189 | font-size: 44rpx; | ||
| 190 | font-weight: bold; | ||
| 191 | color: #29343C; | ||
| 192 | } | ||
| 193 | |||
| 194 | :deep(.uni-section .uni-section-header) { | ||
| 195 | padding: 0 30rpx; | ||
| 196 | } | ||
| 197 | |||
| 198 | .potag { | ||
| 199 | position: absolute; | ||
| 200 | right: 60rpx; | ||
| 201 | top: 0; | ||
| 202 | } | ||
| 203 | |||
| 204 | .girdFather { | ||
| 205 | background: #fff; | ||
| 206 | position: relative; | ||
| 207 | top: -15rpx; | ||
| 208 | padding: 1rpx 0 0; | ||
| 209 | border-radius: 20rpx 20rpx 0rpx 0rpx; | ||
| 210 | box-sizing: border-box; | ||
| 211 | |||
| 212 | .girdBox { | ||
| 213 | top: 0; | ||
| 214 | padding: 0 0 15rpx; | ||
| 215 | border-bottom: 20rpx solid #ecf0f6 | ||
| 216 | } | ||
| 217 | |||
| 218 | .ttt { | ||
| 219 | margin: 30rpx 0 20rpx; | ||
| 220 | padding: 0 20rpx 0; | ||
| 221 | } | ||
| 222 | } | ||
| 223 | .rMainBox {position: relative;top:-120rpx; | ||
| 224 | box-sizing: border-box;padding: 20rpx 20rpx; | ||
| 225 | background-color: #fff; | ||
| 226 | border-radius: 15rpx; | ||
| 227 | margin: 25rpx;overflow: hidden; | ||
| 228 | } | ||
| 229 | </style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
myCenter/perfect.vue
0 → 100644
| 1 | <template> | ||
| 2 | <view> | ||
| 3 | <view class="pd30" style="padding: 30rpx 30rpx 180rpx;"> | ||
| 4 | <view class="wBox"> | ||
| 5 | <uni-forms ref="baseForm" :modelValue="form" label-width="100"> | ||
| 6 | <uni-forms-item label="所属协会" required> | ||
| 7 | <uni-data-picker style="width: 82%;" v-model="form.parentId" | ||
| 8 | :localdata="tree" | ||
| 9 | :readonly="type&&parentId!=-1&&parentId!=0" | ||
| 10 | :clear-icon="false" :map="{text:'label',value:'id'}" | ||
| 11 | popup-title="请选择" @change="onchange" | ||
| 12 | @nodeclick="onnodeclick"></uni-data-picker> | ||
| 13 | </uni-forms-item> | ||
| 14 | <uni-forms-item v-if="form.memCode" label="会员编号" required> | ||
| 15 | <uni-easyinput v-model="form.memCode" disabled /> | ||
| 16 | </uni-forms-item> | ||
| 17 | |||
| 18 | <uni-forms-item label="机构名称" required> | ||
| 19 | <uni-easyinput v-model="form.name" :disabled="type" placeholder="机构名称" /></uni-forms-item> | ||
| 20 | |||
| 21 | <uni-forms-item label="所属省份" required> | ||
| 22 | <uni-data-select :clear="false" :disabled="type&&(belongProvinceId||belongProvinceId==0)" | ||
| 23 | v-model="form.belongProvinceId" :localdata="regionsList"></uni-data-select> | ||
| 24 | </uni-forms-item> | ||
| 25 | <uni-forms-item label="社会信用代码" required> | ||
| 26 | <uni-easyinput v-model="form.creditCode" :disabled="type&&!!creditCode&&newResult" /> | ||
| 27 | </uni-forms-item> | ||
| 28 | <uni-forms-item label="联系人" required> | ||
| 29 | <uni-easyinput v-model="form.siteContact" /> | ||
| 30 | </uni-forms-item> | ||
| 31 | <uni-forms-item label="联系方式" required> | ||
| 32 | <uni-easyinput v-model="form.siteTel" /> | ||
| 33 | </uni-forms-item> | ||
| 34 | <uni-forms-item label="认证地址" required> | ||
| 35 | <uni-data-picker v-model="form.coordinates1" | ||
| 36 | :localdata="regionsList"></uni-data-picker> | ||
| 37 | </uni-forms-item> | ||
| 38 | <uni-forms-item label="详细地址" required> | ||
| 39 | <uni-easyinput v-model="form.adress" placeholder="请输入详细地址" type='textarea' /></uni-forms-item> | ||
| 40 | <uni-forms-item label="法人姓名" required> | ||
| 41 | <uni-easyinput v-model="form.legal" /> | ||
| 42 | </uni-forms-item> | ||
| 43 | |||
| 44 | <uni-forms-item v-if="form.deptType==6&&activeStatus!= 0" label="是否申请考点" required> | ||
| 45 | <uni-data-checkbox v-model="form.applyPoints" :localdata="yesno" /> | ||
| 46 | </uni-forms-item> | ||
| 47 | |||
| 48 | <uni-forms-item label="法人身份证" required> | ||
| 49 | <view class="imgArea"> | ||
| 50 | <uni-file-picker v-model="imgfront" @delete="delimgFont" return-type="object" limit="1" | ||
| 51 | @select="upIdCardImgFront" :image-styles="imageStylesZJ"> | ||
| 52 | <view>国徽面</view> | ||
| 53 | </uni-file-picker> | ||
| 54 | <uni-file-picker style="margin-top: 30px;" v-model="imgBack" @delete="delimgBack" | ||
| 55 | return-type="object" limit="1" @select="upIdCardImgBack" :image-styles="imageStylesZJ"> | ||
| 56 | <view>头像面</view> | ||
| 57 | </uni-file-picker> | ||
| 58 | </view> | ||
| 59 | </uni-forms-item> | ||
| 60 | <uni-forms-item label="营业执照" required> | ||
| 61 | <uni-file-picker limit="1" v-model="form.businessLicense" file-extname="png,jpg,jpeg,pdf,zip" | ||
| 62 | file-mediatype="all" @select="selectFile(form,$event)" | ||
| 63 | @delete="delSupplementFile(form)"></uni-file-picker> | ||
| 64 | |||
| 65 | </uni-forms-item> | ||
| 66 | <uni-forms-item label="机构照片" required> | ||
| 67 | <uni-file-picker v-model="picArr" @delete="delpicArr" limit="3" @select="upPicArr"> | ||
| 68 | </uni-file-picker> | ||
| 69 | </uni-forms-item> | ||
| 70 | </uni-forms> | ||
| 71 | <view class="fixedBottom"> | ||
| 72 | <button class="btn-red" @click="submit()">确定</button> | ||
| 73 | </view> | ||
| 74 | </view> | ||
| 75 | |||
| 76 | </view> | ||
| 77 | </view> | ||
| 78 | |||
| 79 | <uni-popup ref="popup" type="bottom"> | ||
| 80 | <view class="popBody"> | ||
| 81 | <view class="tt">选择缴费年限</view> | ||
| 82 | <view class="pickitem" v-for="(item,index) in years" :key="index" @click="bindChange(item)"> | ||
| 83 | {{item}}年 | ||
| 84 | <uni-icons v-if="form.renewYear == item" type="checkmarkempty" size="20" | ||
| 85 | color="green"></uni-icons> | ||
| 86 | <uni-icons v-else type="checkmarkempty" size="20" | ||
| 87 | color="white"></uni-icons> | ||
| 88 | </view> | ||
| 89 | |||
| 90 | <button class="btn-red" @click="submitForm">确定</button> | ||
| 91 | </view> | ||
| 92 | |||
| 93 | </uni-popup> | ||
| 94 | </template> | ||
| 95 | |||
| 96 | <script setup> | ||
| 97 | import { | ||
| 98 | ref | ||
| 99 | } from 'vue'; | ||
| 100 | import * as api from '@/common/api.js'; | ||
| 101 | import { | ||
| 102 | onLoad, | ||
| 103 | onShow | ||
| 104 | } from '@dcloudio/uni-app'; | ||
| 105 | import config from '@/config.js' | ||
| 106 | const app = getApp(); | ||
| 107 | const form = ref({ | ||
| 108 | type: '1' | ||
| 109 | }); | ||
| 110 | const typeList = ref([{ | ||
| 111 | value: '1', | ||
| 112 | text: '企业' | ||
| 113 | }, { | ||
| 114 | value: '2', | ||
| 115 | text: '国家组织' | ||
| 116 | }, { | ||
| 117 | value: '3', | ||
| 118 | text: '社会组织' | ||
| 119 | }, { | ||
| 120 | value: '4', | ||
| 121 | text: '其他' | ||
| 122 | }]) | ||
| 123 | const years = ref(['1', '2', '3', '4', '5']) | ||
| 124 | const yesno = ref([{ | ||
| 125 | value: '0', | ||
| 126 | text: '否' | ||
| 127 | }, { | ||
| 128 | value: '1', | ||
| 129 | text: '是' | ||
| 130 | }, ]) | ||
| 131 | const regionArr = ref(); | ||
| 132 | const regionsList = ref([]); | ||
| 133 | const tree = ref([]); | ||
| 134 | const showDirectly = ref(true) | ||
| 135 | const directUnderFlag = ref(0) | ||
| 136 | const current = ref(0); | ||
| 137 | const groupId = ref(0); | ||
| 138 | const currIndex = ref(null); | ||
| 139 | const signType = ref(); | ||
| 140 | const editIng = ref(true); | ||
| 141 | const isSign = ref(false); | ||
| 142 | const type = ref(false) // 第一次选择认证认证类型 | ||
| 143 | const flag = ref(false) | ||
| 144 | const result = ref(false) | ||
| 145 | const query = ref({ | ||
| 146 | type: 0 | ||
| 147 | }); | ||
| 148 | const activeStatus = ref(0) | ||
| 149 | const active = ref(0) | ||
| 150 | const memberInfo = ref({}) | ||
| 151 | const authenticationStatus = ref() | ||
| 152 | const authenticationStatusa = ref() | ||
| 153 | const newResult = ref(false) | ||
| 154 | const popup = ref(null) | ||
| 155 | const belongProvinceId = ref() | ||
| 156 | const list1 = ref([{ | ||
| 157 | title: '完善信息' | ||
| 158 | }, { | ||
| 159 | title: '会员认证' | ||
| 160 | }]) | ||
| 161 | const imageStylesZJ = ref({ | ||
| 162 | width: '400rpx', | ||
| 163 | height: '253rpx' | ||
| 164 | }); | ||
| 165 | const indicatorStyle=ref(`height: 50px;`) | ||
| 166 | onLoad(option => { | ||
| 167 | if (app.globalData.isLogin) { | ||
| 168 | init() | ||
| 169 | } else { | ||
| 170 | app.firstLoadCallback = () => { | ||
| 171 | init() | ||
| 172 | }; | ||
| 173 | } | ||
| 174 | }); | ||
| 175 | |||
| 176 | function init() { | ||
| 177 | getRegionsList() | ||
| 178 | getTree() | ||
| 179 | getForm() | ||
| 180 | } | ||
| 181 | |||
| 182 | function getForm() { | ||
| 183 | api.getMyOwnMemberInfo().then(res => { | ||
| 184 | newResult.value = res.data.newResult // | ||
| 185 | result.value = res.data.result // 认证缴费状态 | ||
| 186 | authenticationStatusa.value = res.data.authenticationStatus | ||
| 187 | showDirectly.value = !res.data.memberInfo.associateId | ||
| 188 | activeStatus.value = res.data.memberInfo.activeStatus | ||
| 189 | directUnderFlag.value = res.data.memberInfo.directUnderFlag | ||
| 190 | // 认证信息 | ||
| 191 | if (authenticationStatusa.value == 0 || authenticationStatusa.value == 3) { | ||
| 192 | type.value = false | ||
| 193 | } else { | ||
| 194 | type.value = true | ||
| 195 | } | ||
| 196 | // 至少审核通过一次 | ||
| 197 | if (authenticationStatusa.value != 0) { | ||
| 198 | if (newResult.value) { | ||
| 199 | // 至少认证过一次 | ||
| 200 | flag.value = true | ||
| 201 | } else { | ||
| 202 | // 没有认证 | ||
| 203 | flag.value = false | ||
| 204 | } | ||
| 205 | } | ||
| 206 | form.value = { | ||
| 207 | ...res.data.dept, | ||
| 208 | ...res.data.memberInfo | ||
| 209 | } | ||
| 210 | form.value.parentId = form.value.parentId.toString() | ||
| 211 | belongProvinceId.value = form.value.belongProvinceId | ||
| 212 | }) | ||
| 213 | } | ||
| 214 | |||
| 215 | function getTree() { | ||
| 216 | if (authenticationStatusa.value == 0 || authenticationStatusa.value == 3 || authenticationStatusa.value == 1) { | ||
| 217 | var obj = { | ||
| 218 | selfDeptId: '-1', | ||
| 219 | webSiteShow: 1, | ||
| 220 | showDisabled: 1 | ||
| 221 | } | ||
| 222 | api.certifiedDeptTree(obj).then(res => { | ||
| 223 | tree.value = res.data | ||
| 224 | }) | ||
| 225 | } else { | ||
| 226 | var obj = { | ||
| 227 | selfDeptId: '-1', | ||
| 228 | showDisabled: 1, | ||
| 229 | showDirect: authenticationStatusa.value == 2 || authenticationStatusa.value == 5 || | ||
| 230 | authenticationStatusa.value == 4 ? 1 : null | ||
| 231 | } | ||
| 232 | api.deptTreeSelect(obj).then(res => { | ||
| 233 | tree.value = res.data | ||
| 234 | }) | ||
| 235 | } | ||
| 236 | } | ||
| 237 | |||
| 238 | |||
| 239 | function getRegionsList() { | ||
| 240 | api.regionsList().then(res => { | ||
| 241 | regionsList.value = res.data; | ||
| 242 | }); | ||
| 243 | } | ||
| 244 | |||
| 245 | function submit() { | ||
| 246 | // 验证必填项 | ||
| 247 | if (form.value.name == '') { | ||
| 248 | uni.showToast({ | ||
| 249 | title: '请填写机构名称', | ||
| 250 | icon: 'none' | ||
| 251 | }) | ||
| 252 | return | ||
| 253 | } | ||
| 254 | |||
| 255 | // | ||
| 256 | popup.value.open() | ||
| 257 | } | ||
| 258 | function submitForm(){ | ||
| 259 | if(!form.value.renewYear){ | ||
| 260 | uni.showToast({ | ||
| 261 | title: '请选择缴费年限', | ||
| 262 | icon: 'none' | ||
| 263 | }) | ||
| 264 | return | ||
| 265 | } | ||
| 266 | api.centerCommit({ renewYear: form.value.renewYear }).then(res=>{ | ||
| 267 | uni.showModal({ | ||
| 268 | content:`缴费等待审核中!`, | ||
| 269 | success:function(res){ | ||
| 270 | if(res.confirm){ | ||
| 271 | uni.navigateBack() | ||
| 272 | } | ||
| 273 | } | ||
| 274 | }) | ||
| 275 | }) | ||
| 276 | } | ||
| 277 | |||
| 278 | function upIdCardImgFront(e) { | ||
| 279 | let file = e.tempFiles[0] | ||
| 280 | if (!file) { | ||
| 281 | return | ||
| 282 | } | ||
| 283 | uni.showLoading({ | ||
| 284 | title: '加载中' | ||
| 285 | }); | ||
| 286 | } | ||
| 287 | function bindChange(e){ | ||
| 288 | console.log(e) | ||
| 289 | form.value.renewYear = e | ||
| 290 | } | ||
| 291 | </script> | ||
| 292 | |||
| 293 | <style lang="scss" scoped> | ||
| 294 | .pickitem{height:40px;text-align: center; | ||
| 295 | line-height: 40px;} | ||
| 296 | .picker-view { | ||
| 297 | width: 750rpx; | ||
| 298 | height: 600rpx; | ||
| 299 | margin-top: 20rpx; | ||
| 300 | } | ||
| 301 | .item { | ||
| 302 | line-height: 100rpx; | ||
| 303 | text-align: center; | ||
| 304 | } | ||
| 305 | .popBody { | ||
| 306 | background: #fff; | ||
| 307 | padding: 30rpx; | ||
| 308 | } | ||
| 309 | |||
| 310 | :deep(.uni-data-tree) { | ||
| 311 | border: 1px solid #dcdfe6; | ||
| 312 | border-radius: 4px; | ||
| 313 | |||
| 314 | .selected-list { | ||
| 315 | justify-content: start; | ||
| 316 | } | ||
| 317 | } | ||
| 318 | |||
| 319 | :deep(.uni-select__input-placeholder) { | ||
| 320 | font-size: 30rpx; | ||
| 321 | } | ||
| 322 | |||
| 323 | :deep(.uni-easyinput__content-input) { | ||
| 324 | font-size: 30rpx; | ||
| 325 | } | ||
| 326 | |||
| 327 | :deep(.uni-easyinput__placeholder-class) { | ||
| 328 | font-size: 30rpx; | ||
| 329 | color: grey; | ||
| 330 | } | ||
| 331 | |||
| 332 | .wBox { | ||
| 333 | width: 700rpx; | ||
| 334 | padding: 30rpx; | ||
| 335 | margin: 20rpx auto 0; | ||
| 336 | background: #FFFFFF; | ||
| 337 | box-shadow: 0rpx 12rpx 116rpx 0rpx rgba(196, 203, 214, 0.1); | ||
| 338 | border-radius: 15rpx; | ||
| 339 | } | ||
| 340 | |||
| 341 | .imgArea { | ||
| 342 | padding: 1px; | ||
| 343 | display: flex; | ||
| 344 | flex-wrap: wrap; | ||
| 345 | flex-direction: column; | ||
| 346 | } | ||
| 347 | </style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
myCenter/reviewList.vue
0 → 100644
| 1 | <template> | ||
| 2 | <view> | ||
| 3 | <view class="wBox"> | ||
| 4 | <view class="tt"> | ||
| 5 | 审核信息 | ||
| 6 | </view> | ||
| 7 | <view> | ||
| 8 | <view class="stepItem" v-for="(n,index) in recordList" :key="index"> | ||
| 9 | <view class="time">{{n.auditTime||'待审批'}}</view> | ||
| 10 | <view class="content"> | ||
| 11 | <view class="status"> | ||
| 12 | <text v-if="n.auditResult==0"> 审核中</text> | ||
| 13 | <text v-if="n.auditResult==1" class="text-success">审核通过</text> | ||
| 14 | <text v-if="n.auditResult==2" class="text-danger"> 审核拒绝</text> | ||
| 15 | <text v-if="n.auditResult==3" class="text-warning"> 已撤回</text> | ||
| 16 | </view> | ||
| 17 | <!-- <view class="name">第 {{index+1}} 步</view> --> | ||
| 18 | <view class="deptName">{{n.auditDeptName}}</view> | ||
| 19 | <view v-if="n.auditStatus==2"> | ||
| 20 | 备注:{{n.auditMsg||'/' }} | ||
| 21 | </view> | ||
| 22 | </view> | ||
| 23 | </view> | ||
| 24 | </view> | ||
| 25 | </view> | ||
| 26 | |||
| 27 | </view> | ||
| 28 | </template> | ||
| 29 | |||
| 30 | <script setup> | ||
| 31 | import * as api from '@/common/api.js' | ||
| 32 | import config from '@/config.js' | ||
| 33 | import _ from 'lodash' | ||
| 34 | import { | ||
| 35 | onMounted, | ||
| 36 | ref | ||
| 37 | } from 'vue' | ||
| 38 | import { | ||
| 39 | onLoad, | ||
| 40 | onShow | ||
| 41 | } from '@dcloudio/uni-app' | ||
| 42 | const app = getApp(); | ||
| 43 | const userType = ref('') | ||
| 44 | const recordList = ref([]) | ||
| 45 | onLoad((option) => { | ||
| 46 | getMyCertStageFN() | ||
| 47 | }) | ||
| 48 | |||
| 49 | function getMyCertStageFN() { | ||
| 50 | api.getMyCertStage().then(res => { | ||
| 51 | recordList.value = res.data | ||
| 52 | console.log(res) | ||
| 53 | }) | ||
| 54 | |||
| 55 | } | ||
| 56 | </script> | ||
| 57 | |||
| 58 | <style scoped lang="scss"> | ||
| 59 | .wBox { | ||
| 60 | width: 700rpx; | ||
| 61 | padding: 30rpx; | ||
| 62 | margin: 20rpx auto; | ||
| 63 | background: #FFFFFF; | ||
| 64 | box-shadow: 0rpx 12rpx 116rpx 0rpx rgba(196, 203, 214, 0.1); | ||
| 65 | border-radius: 15rpx; | ||
| 66 | |||
| 67 | .tt { | ||
| 68 | color: #0A1629; | ||
| 69 | margin: 0 0 30rpx; | ||
| 70 | font-size: 30rpx; | ||
| 71 | } | ||
| 72 | |||
| 73 | .ddd { | ||
| 74 | font-size: 28rpx; | ||
| 75 | color: #333; | ||
| 76 | margin: 0 0 10rpx; | ||
| 77 | |||
| 78 | .lab { | ||
| 79 | color: #999; | ||
| 80 | display: inline-block; | ||
| 81 | text-align: justify; | ||
| 82 | } | ||
| 83 | } | ||
| 84 | } | ||
| 85 | </style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
myCenter/safe.vue
0 → 100644
| 1 | <template> | ||
| 2 | <view> | ||
| 3 | <uni-segmented-control :current="current" @clickItem="changeNav" activeColor="#AD181F" styleType="text" :values="items"></uni-segmented-control> | ||
| 4 | |||
| 5 | <view v-if="current==0" class="mainbox"> | ||
| 6 | <uni-forms label-width="80"> | ||
| 7 | <uni-forms-item label="用户昵称" required> | ||
| 8 | <uni-easyinput v-model="user.nickName" :disabled="!edit" /> | ||
| 9 | </uni-forms-item> | ||
| 10 | <uni-forms-item label="手机号码" required> | ||
| 11 | <uni-easyinput v-model="user.phonenumber" :disabled="!edit" /> | ||
| 12 | </uni-forms-item> | ||
| 13 | <uni-forms-item label="邮箱" required> | ||
| 14 | <uni-easyinput v-model="user.email" :disabled="!edit" /> | ||
| 15 | </uni-forms-item> | ||
| 16 | <uni-forms-item label="性别" required> | ||
| 17 | <uni-data-checkbox :disabled="!edit" v-model="user.sex" @change="changeSex" :localdata="sexs" /> | ||
| 18 | </uni-forms-item> | ||
| 19 | </uni-forms> | ||
| 20 | |||
| 21 | |||
| 22 | <view class="fixedBottom" v-if="edit"> | ||
| 23 | <button class="btn-red-kx" @click="cancel">取消</button> | ||
| 24 | <button class="btn-red" style="width: 50%;" @click="submit">保存</button> | ||
| 25 | </view> | ||
| 26 | <view class="fixedBottom" v-else> | ||
| 27 | <button class="btn-red" @click="editForm">编辑</button> | ||
| 28 | </view> | ||
| 29 | </view> | ||
| 30 | <view v-if="current==1" class="mainbox"> | ||
| 31 | <uni-forms label-width="80"> | ||
| 32 | <uni-forms-item label="旧密码" name="oldPassword" required> | ||
| 33 | <uni-easyinput type="password" v-model="form.oldPassword" placeholder="请输入旧密码" /> | ||
| 34 | </uni-forms-item> | ||
| 35 | <uni-forms-item label="新密码" name="newPassword" required> | ||
| 36 | <uni-easyinput type="password" v-model="form.newPassword" placeholder="请输入新密码" /> | ||
| 37 | <view class="text-danger" v-show="form.newPassword?.length<8">不足8位</view> | ||
| 38 | <text class="text-warning">*注: 8~18位大小写字母加数字加特殊符号组合(!@#$%^&*()_+)</text> | ||
| 39 | </uni-forms-item> | ||
| 40 | <uni-forms-item label="确认密码" name="confirmPassword" required> | ||
| 41 | <uni-easyinput type="password" v-model="form.confirmPassword" placeholder="请确认新密码" /> | ||
| 42 | <text class="text-danger" v-show="form.newPassword!==form.confirmPassword">与新密码不一致</text> | ||
| 43 | </uni-forms-item> | ||
| 44 | |||
| 45 | </uni-forms> | ||
| 46 | |||
| 47 | <view class="fixedBottom"> | ||
| 48 | <button class="btn-red" @click="handleClick">修改密码</button> | ||
| 49 | </view> | ||
| 50 | </view> | ||
| 51 | </view> | ||
| 52 | </template> | ||
| 53 | |||
| 54 | <script setup> | ||
| 55 | import { ref } from 'vue' | ||
| 56 | import { onLoad } from '@dcloudio/uni-app' | ||
| 57 | import * as api from '@/common/api.js'; | ||
| 58 | const items = ref(['基本资料','修改密码']) | ||
| 59 | const user = ref({ | ||
| 60 | sex:'0' | ||
| 61 | }) | ||
| 62 | const current = ref(0) | ||
| 63 | const form = ref({}) | ||
| 64 | const edit = ref(false) | ||
| 65 | const sexs = ref([ | ||
| 66 | {text:'男',value: '0'},{text:'女',value: '1'} | ||
| 67 | ]) | ||
| 68 | onLoad((option)=>{ | ||
| 69 | if(option.current){ | ||
| 70 | current.value = 1 | ||
| 71 | } | ||
| 72 | getUser() | ||
| 73 | }) | ||
| 74 | function changeNav(e){ | ||
| 75 | if (current.value != e.currentIndex) { | ||
| 76 | current.value = e.currentIndex | ||
| 77 | } | ||
| 78 | } | ||
| 79 | function getUser() { | ||
| 80 | api.getUserProfile().then((response) => { | ||
| 81 | user.value = response.data.user | ||
| 82 | if(!user.value.sex){ | ||
| 83 | user.value.sex = '0' | ||
| 84 | } | ||
| 85 | }) | ||
| 86 | } | ||
| 87 | function editForm(){ | ||
| 88 | edit.value = true | ||
| 89 | } | ||
| 90 | function submit(){ | ||
| 91 | if(!user.value.email){ | ||
| 92 | uni.showToast({ | ||
| 93 | icon:'none', | ||
| 94 | title:`请输入邮箱` | ||
| 95 | }) | ||
| 96 | return | ||
| 97 | } | ||
| 98 | if(!user.value.nickName){ | ||
| 99 | uni.showToast({ | ||
| 100 | icon:'none',title:`请输入昵称` | ||
| 101 | }) | ||
| 102 | return | ||
| 103 | } | ||
| 104 | if(!user.value.phoneNumber){ | ||
| 105 | uni.showToast({ | ||
| 106 | icon:'none',title:`请输入手机号码` | ||
| 107 | }) | ||
| 108 | return | ||
| 109 | } | ||
| 110 | if(!user.value.sex){ | ||
| 111 | uni.showToast({ | ||
| 112 | icon:'none',title:`请选择性别` | ||
| 113 | }) | ||
| 114 | return | ||
| 115 | } | ||
| 116 | api.updateUserProfile(user.value).then(res=>{ | ||
| 117 | uni.showToast({ | ||
| 118 | icon:'none',title:`修改成功` | ||
| 119 | }) | ||
| 120 | }) | ||
| 121 | } | ||
| 122 | function changeSex(e){ | ||
| 123 | console.log(e) | ||
| 124 | } | ||
| 125 | function cancel(){ | ||
| 126 | edit.value = false | ||
| 127 | getUser() | ||
| 128 | } | ||
| 129 | function validPassword(pwd) { | ||
| 130 | if (!pwd || pwd.length < 8 || pwd.length > 18) { | ||
| 131 | return false | ||
| 132 | } | ||
| 133 | const lowerRegex = /[a-z]+/ | ||
| 134 | const upperRegex = /[A-Z]+/ | ||
| 135 | const digitRegex = /[0-9]+/ | ||
| 136 | const symbolRegex = /[\W_]+/ | ||
| 137 | const specific = /.*[~!@#$%^&*()_+`\-={}:";'<>?,.\/].*/ | ||
| 138 | return (lowerRegex.test(pwd) && upperRegex.test(pwd) && digitRegex.test(pwd) && symbolRegex.test(pwd) && specific.test(pwd)) | ||
| 139 | } | ||
| 140 | |||
| 141 | function handleClick() { | ||
| 142 | if(!form.value.oldPassword){ | ||
| 143 | uni.showToast({ | ||
| 144 | icon:'none',title:`请输入旧密码` | ||
| 145 | }) | ||
| 146 | return | ||
| 147 | } | ||
| 148 | if(!form.value.newPassword){ | ||
| 149 | uni.showToast({ | ||
| 150 | icon:'none',title:`请输入新密码` | ||
| 151 | }) | ||
| 152 | return | ||
| 153 | } | ||
| 154 | if(form.value.newPassword!==form.value.confirmPassword){ | ||
| 155 | uni.showToast({ | ||
| 156 | icon:'none',title:`新密码需与确认密码一致` | ||
| 157 | }) | ||
| 158 | return | ||
| 159 | } | ||
| 160 | |||
| 161 | if (!validPassword(form.value.newPassword)) { | ||
| 162 | uni.showModal({ | ||
| 163 | content:`密码需满足8~18位大小写字母加数字加特殊符号组合(!@#$%^&*()_+)`, | ||
| 164 | success:function(res){ | ||
| 165 | |||
| 166 | } | ||
| 167 | }) | ||
| 168 | return | ||
| 169 | } | ||
| 170 | api.updateUserPwd(form.oldPassword, form.newPassword).then(res=>{ | ||
| 171 | uni.showModal({ | ||
| 172 | title:"提示", | ||
| 173 | content:`修改成功,重新登录生效`, | ||
| 174 | success: function(res) { | ||
| 175 | if (res.confirm) { | ||
| 176 | //确定 | ||
| 177 | } | ||
| 178 | } | ||
| 179 | }) | ||
| 180 | }) | ||
| 181 | } | ||
| 182 | </script> | ||
| 183 | |||
| 184 | <style scoped lang="scss"> | ||
| 185 | .mainbox{background: #fff;padding: 30rpx;margin: 30rpx;} | ||
| 186 | </style> |
myCenter/teamInfo.vue
0 → 100644
| 1 | <template> | ||
| 2 | <view class="hasfixedbottom"> | ||
| 3 | <view class="mainbox"> | ||
| 4 | <uni-forms> | ||
| 5 | <uni-forms-item label="单位名称"> | ||
| 6 | <view class="lh35 noborder">{{form.baseName}}</view> | ||
| 7 | </uni-forms-item> | ||
| 8 | <uni-forms-item label="单位类型"> | ||
| 9 | <uni-data-select v-if="!type&&edit" v-model="form.type" :localdata="range"></uni-data-select> | ||
| 10 | <view class="lh35 noborder" v-else> | ||
| 11 | <text v-if="form.type==1">企业 </text> | ||
| 12 | <text v-if="form.type==2">国家组织 </text> | ||
| 13 | <text v-if="form.type==3">社会组织 </text> | ||
| 14 | <text v-if="form.type==4">其他 </text> | ||
| 15 | </view> | ||
| 16 | </uni-forms-item> | ||
| 17 | <uni-forms-item label="联系人"> | ||
| 18 | <uni-easyinput v-if="edit" v-model="form.contact"></uni-easyinput> | ||
| 19 | <view v-else class="lh35">{{form.contact}}</view> | ||
| 20 | </uni-forms-item> | ||
| 21 | <uni-forms-item label="联系电话"> | ||
| 22 | <uni-easyinput v-if="edit" v-model="form.phone"></uni-easyinput> | ||
| 23 | <view v-else class="lh35">{{form.phone}}</view> | ||
| 24 | </uni-forms-item> | ||
| 25 | |||
| 26 | <uni-forms-item label="地址"> | ||
| 27 | <uni-data-picker :readonly="!edit" :clear-icon="false" v-if="form.siteRegionId" | ||
| 28 | v-model="form.siteRegionId" :localdata="options" @change="onchangeRegionId"> | ||
| 29 | </uni-data-picker> | ||
| 30 | <uni-data-picker :readonly="!edit" :clear-icon="false" v-else-if="form.siteCityId" | ||
| 31 | v-model="form.siteCityId" :localdata="options" @change="onchangeRegionId"> | ||
| 32 | </uni-data-picker> | ||
| 33 | <uni-data-picker :readonly="!edit" :clear-icon="false" v-else-if="form.siteProvinceId" | ||
| 34 | v-model="form.siteProvinceId" :localdata="options" @change="onchangeRegionId"> | ||
| 35 | </uni-data-picker> | ||
| 36 | </uni-forms-item> | ||
| 37 | |||
| 38 | <uni-forms-item label="详细地址"> | ||
| 39 | <uni-easyinput v-if="edit" type="textarea" v-model="form.siteAddress"></uni-easyinput> | ||
| 40 | <view v-else class="lh35">{{form.siteAddress}}</view> | ||
| 41 | </uni-forms-item> | ||
| 42 | |||
| 43 | <uni-forms-item label="机构介绍"> | ||
| 44 | <uni-easyinput v-if="edit" type="textarea" v-model="form.introduce"></uni-easyinput> | ||
| 45 | <view v-else class="lh35">{{form.introduce}}</view> | ||
| 46 | </uni-forms-item> | ||
| 47 | |||
| 48 | |||
| 49 | </uni-forms> | ||
| 50 | </view> | ||
| 51 | <view class="height1"></view> | ||
| 52 | |||
| 53 | <view class="fixedBottom" v-if="edit"> | ||
| 54 | <button class="btn-red-kx" @click="cancel">取消</button> | ||
| 55 | <button class="btn-red" style="width: 50%;" @click="save">保存</button> | ||
| 56 | </view> | ||
| 57 | <view class="fixedBottom" v-else> | ||
| 58 | <button class="btn-red" @click="edit=true">编辑</button> | ||
| 59 | </view> | ||
| 60 | |||
| 61 | </view> | ||
| 62 | </template> | ||
| 63 | |||
| 64 | <script setup> | ||
| 65 | import * as api from '@/common/api.js' | ||
| 66 | import config from '@/config.js' | ||
| 67 | import _ from 'lodash' | ||
| 68 | import { | ||
| 69 | onMounted, | ||
| 70 | ref | ||
| 71 | } from 'vue' | ||
| 72 | import { | ||
| 73 | onLoad | ||
| 74 | } from '@dcloudio/uni-app' | ||
| 75 | const app = getApp() | ||
| 76 | const form = ref({ | ||
| 77 | }) | ||
| 78 | const options = ref([]) | ||
| 79 | const range = ref([{ | ||
| 80 | text: '企业', | ||
| 81 | value: '1' | ||
| 82 | }, { | ||
| 83 | text: '国家组织', | ||
| 84 | value: '2' | ||
| 85 | }, { | ||
| 86 | text: '社会组织', | ||
| 87 | value: '3' | ||
| 88 | }, { | ||
| 89 | text: '其他', | ||
| 90 | value: '4' | ||
| 91 | }]) | ||
| 92 | const edit = ref(false) | ||
| 93 | const type = ref() | ||
| 94 | const authenticationStatusa = ref() | ||
| 95 | onLoad(option => { | ||
| 96 | console.log(option) | ||
| 97 | init() | ||
| 98 | }) | ||
| 99 | |||
| 100 | function init() { | ||
| 101 | api.getMyOwnMemberInfo().then(res => { | ||
| 102 | form.value = res.data.memberInfo | ||
| 103 | authenticationStatusa.value = res.data.authenticationStatus | ||
| 104 | if (res.data.authenticationStatus != 0 && res.data.authenticationStatus != 3) { | ||
| 105 | type.value = true | ||
| 106 | } else { | ||
| 107 | type.value = false | ||
| 108 | } | ||
| 109 | }) | ||
| 110 | getRegionsList() | ||
| 111 | } | ||
| 112 | function cancel(){ | ||
| 113 | edit.value = false | ||
| 114 | init() | ||
| 115 | } | ||
| 116 | function save() { | ||
| 117 | api.createMyMember(form.value).then(res=>{ | ||
| 118 | uni.showToast({ | ||
| 119 | icon:'none',title:`保存成功` | ||
| 120 | }) | ||
| 121 | edit.value = false | ||
| 122 | }) | ||
| 123 | } | ||
| 124 | |||
| 125 | function getRegionsList() { | ||
| 126 | api.regionsList().then(res => { | ||
| 127 | options.value = res.data; | ||
| 128 | }); | ||
| 129 | } | ||
| 130 | |||
| 131 | function onchangeRegionId(e) { | ||
| 132 | form.value.regionId = regionArr.value | ||
| 133 | } | ||
| 134 | </script> | ||
| 135 | |||
| 136 | <style scoped lang="scss"> | ||
| 137 | .lh35 { | ||
| 138 | line-height: 35px; min-height: 35px; | ||
| 139 | border: 1px solid #dcdfe6; | ||
| 140 | border-radius: 4px; | ||
| 141 | padding: 0 30rpx; | ||
| 142 | |||
| 143 | &.noborder { | ||
| 144 | border: none; | ||
| 145 | } | ||
| 146 | } | ||
| 147 | |||
| 148 | :deep(.uni-data-tree) { | ||
| 149 | border: 1px solid #dcdfe6; | ||
| 150 | border-radius: 4px; | ||
| 151 | |||
| 152 | .selected-list { | ||
| 153 | justify-content: start; | ||
| 154 | font-size: 28rpx; | ||
| 155 | } | ||
| 156 | } | ||
| 157 | |||
| 158 | .height1 { | ||
| 159 | height: 1rpx | ||
| 160 | } | ||
| 161 | |||
| 162 | .ylImage { | ||
| 163 | width: 300rpx; | ||
| 164 | height: 200rpx; | ||
| 165 | display: block; | ||
| 166 | box-shadow: 0 0 10rpx #ddd; | ||
| 167 | border-radius: 8rpx; | ||
| 168 | } | ||
| 169 | |||
| 170 | .mainbox { | ||
| 171 | margin: 30rpx 25rpx 60rpx; | ||
| 172 | padding: 20rpx; | ||
| 173 | background: #FFFFFF; | ||
| 174 | border-radius: 15rpx; | ||
| 175 | |||
| 176 | :deep(.uni-forms-item__content-title) { | ||
| 177 | color: #4C5359; | ||
| 178 | font-size: 30rpx; | ||
| 179 | font-weight: 300; | ||
| 180 | } | ||
| 181 | |||
| 182 | :deep(.uni-forms-item__extra-text) { | ||
| 183 | color: #000; | ||
| 184 | font-size: 30rpx; | ||
| 185 | } | ||
| 186 | } | ||
| 187 | |||
| 188 | .photobox { | ||
| 189 | position: relative; | ||
| 190 | margin: 30rpx auto; | ||
| 191 | |||
| 192 | .photo { | ||
| 193 | width: 210rpx; | ||
| 194 | height: 280rpx; | ||
| 195 | background-color: #f4f4f4; | ||
| 196 | display: block; | ||
| 197 | margin: auto; | ||
| 198 | } | ||
| 199 | } | ||
| 200 | |||
| 201 | .colorful { | ||
| 202 | background-color: #007BDA; | ||
| 203 | width: 200rpx; | ||
| 204 | margin: auto; | ||
| 205 | height: 200rpx; | ||
| 206 | line-height: 200rpx; | ||
| 207 | font-size: 44rpx; | ||
| 208 | color: #fff; | ||
| 209 | text-align: center; | ||
| 210 | border-radius: 50%; | ||
| 211 | } | ||
| 212 | |||
| 213 | :deep(.uni-forms-item__extra) { | ||
| 214 | width: 60%; | ||
| 215 | } | ||
| 216 | |||
| 217 | .photoBook { | ||
| 218 | position: relative; | ||
| 219 | border-radius: 10rpx; | ||
| 220 | overflow: hidden; | ||
| 221 | |||
| 222 | &::after { | ||
| 223 | content: ''; | ||
| 224 | position: absolute; | ||
| 225 | width: 100%; | ||
| 226 | height: 100%; | ||
| 227 | top: 0; | ||
| 228 | left: 0; | ||
| 229 | background: linear-gradient(180deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.7)); | ||
| 230 | } | ||
| 231 | |||
| 232 | text { | ||
| 233 | position: absolute; | ||
| 234 | z-index: 1; | ||
| 235 | font-size: 24rpx; | ||
| 236 | color: #fff; | ||
| 237 | bottom: 4rpx; | ||
| 238 | right: 8rpx; | ||
| 239 | } | ||
| 240 | } | ||
| 241 | </style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -92,6 +92,14 @@ | ... | @@ -92,6 +92,14 @@ |
| 92 | "enablePullDownRefresh": false | 92 | "enablePullDownRefresh": false |
| 93 | } | 93 | } |
| 94 | 94 | ||
| 95 | }, | ||
| 96 | { | ||
| 97 | "path" : "pages/index/newsDetail", | ||
| 98 | "style" : | ||
| 99 | { | ||
| 100 | "navigationBarTitleText" : "通知详情", | ||
| 101 | "enablePullDownRefresh" : false | ||
| 102 | } | ||
| 95 | } | 103 | } |
| 96 | ], | 104 | ], |
| 97 | "globalStyle": { | 105 | "globalStyle": { |
| ... | @@ -213,19 +221,19 @@ | ... | @@ -213,19 +221,19 @@ |
| 213 | }, { | 221 | }, { |
| 214 | "path": "sheng/merge", | 222 | "path": "sheng/merge", |
| 215 | "style": { | 223 | "style": { |
| 216 | "navigationBarTitleText": "审核合并", | 224 | "navigationBarTitleText": "合并", |
| 217 | "enablePullDownRefresh": false | 225 | "enablePullDownRefresh": false |
| 218 | } | 226 | } |
| 219 | }, { | 227 | }, { |
| 220 | "path": "sheng/mergeUp", | 228 | "path": "sheng/mergeUp", |
| 221 | "style": { | 229 | "style": { |
| 222 | "navigationBarTitleText": "合并提交", | 230 | "navigationBarTitleText": "提交", |
| 223 | "enablePullDownRefresh": false | 231 | "enablePullDownRefresh": false |
| 224 | } | 232 | } |
| 225 | }, { | 233 | }, { |
| 226 | "path": "sheng/mergeUpDetail", | 234 | "path": "sheng/mergeUpDetail", |
| 227 | "style": { | 235 | "style": { |
| 228 | "navigationBarTitleText": "合并提交详情", | 236 | "navigationBarTitleText": "提交详情", |
| 229 | "enablePullDownRefresh": false | 237 | "enablePullDownRefresh": false |
| 230 | } | 238 | } |
| 231 | }, { | 239 | }, { |
| ... | @@ -298,6 +306,54 @@ | ... | @@ -298,6 +306,54 @@ |
| 298 | "navigationBarTitleText" : "级位变更审批", | 306 | "navigationBarTitleText" : "级位变更审批", |
| 299 | "enablePullDownRefresh" : false | 307 | "enablePullDownRefresh" : false |
| 300 | } | 308 | } |
| 309 | }, | ||
| 310 | { | ||
| 311 | "path" : "changeVipChoseList", | ||
| 312 | "style" : | ||
| 313 | { | ||
| 314 | "navigationBarTitleText" : "在线选择", | ||
| 315 | "enablePullDownRefresh" : false | ||
| 316 | } | ||
| 317 | }, | ||
| 318 | { | ||
| 319 | "path" : "mergeVip", | ||
| 320 | "style" : | ||
| 321 | { | ||
| 322 | "navigationBarTitleText" : "信息合并", | ||
| 323 | "enablePullDownRefresh" : false | ||
| 324 | } | ||
| 325 | }, | ||
| 326 | { | ||
| 327 | "path" : "addMerge", | ||
| 328 | "style" : | ||
| 329 | { | ||
| 330 | "navigationBarTitleText" : "新建信息合并", | ||
| 331 | "enablePullDownRefresh" : false | ||
| 332 | } | ||
| 333 | }, | ||
| 334 | { | ||
| 335 | "path" : "mergeVipDetail", | ||
| 336 | "style" : | ||
| 337 | { | ||
| 338 | "navigationBarTitleText" : "合并信息详情", | ||
| 339 | "enablePullDownRefresh" : false | ||
| 340 | } | ||
| 341 | }, | ||
| 342 | { | ||
| 343 | "path" : "mergeVipChoseList", | ||
| 344 | "style" : | ||
| 345 | { | ||
| 346 | "navigationBarTitleText" : "在线选择", | ||
| 347 | "enablePullDownRefresh" : false | ||
| 348 | } | ||
| 349 | }, | ||
| 350 | { | ||
| 351 | "path" : "mergeVipAudit", | ||
| 352 | "style" : | ||
| 353 | { | ||
| 354 | "navigationBarTitleText" : "合并审核", | ||
| 355 | "enablePullDownRefresh" : false | ||
| 356 | } | ||
| 301 | }] | 357 | }] |
| 302 | }, { | 358 | }, { |
| 303 | "root": "group", | 359 | "root": "group", |
| ... | @@ -330,14 +386,14 @@ | ... | @@ -330,14 +386,14 @@ |
| 330 | }, { | 386 | }, { |
| 331 | "path": "apply/merge", | 387 | "path": "apply/merge", |
| 332 | "style": { | 388 | "style": { |
| 333 | "navigationBarTitleText": "审核合并", | 389 | "navigationBarTitleText": "合并", |
| 334 | "enablePullDownRefresh": false | 390 | "enablePullDownRefresh": false |
| 335 | } | 391 | } |
| 336 | 392 | ||
| 337 | }, { | 393 | }, { |
| 338 | "path": "apply/mergeUp", | 394 | "path": "apply/mergeUp", |
| 339 | "style": { | 395 | "style": { |
| 340 | "navigationBarTitleText": "审核合并提交", | 396 | "navigationBarTitleText": "提交", |
| 341 | "enablePullDownRefresh": false | 397 | "enablePullDownRefresh": false |
| 342 | } | 398 | } |
| 343 | 399 | ||
| ... | @@ -435,6 +491,14 @@ | ... | @@ -435,6 +491,14 @@ |
| 435 | "navigationBarTitleText" : "机构资料", | 491 | "navigationBarTitleText" : "机构资料", |
| 436 | "enablePullDownRefresh" : false | 492 | "enablePullDownRefresh" : false |
| 437 | } | 493 | } |
| 494 | }, | ||
| 495 | { | ||
| 496 | "path" : "changeGroupChoseList", | ||
| 497 | "style" : | ||
| 498 | { | ||
| 499 | "navigationBarTitleText" : "在线选择", | ||
| 500 | "enablePullDownRefresh" : false | ||
| 501 | } | ||
| 438 | }] | 502 | }] |
| 439 | },{ | 503 | },{ |
| 440 | "root": "level", | 504 | "root": "level", |
| ... | @@ -490,14 +554,14 @@ | ... | @@ -490,14 +554,14 @@ |
| 490 | }, { | 554 | }, { |
| 491 | "path": "merge", | 555 | "path": "merge", |
| 492 | "style": { | 556 | "style": { |
| 493 | "navigationBarTitleText": "审核合并", | 557 | "navigationBarTitleText": "合并", |
| 494 | "enablePullDownRefresh": false | 558 | "enablePullDownRefresh": false |
| 495 | } | 559 | } |
| 496 | 560 | ||
| 497 | }, { | 561 | }, { |
| 498 | "path": "mergeUp", | 562 | "path": "mergeUp", |
| 499 | "style": { | 563 | "style": { |
| 500 | "navigationBarTitleText": "合并提交", | 564 | "navigationBarTitleText": "提交", |
| 501 | "enablePullDownRefresh": false | 565 | "enablePullDownRefresh": false |
| 502 | } | 566 | } |
| 503 | 567 | ||
| ... | @@ -537,11 +601,63 @@ | ... | @@ -537,11 +601,63 @@ |
| 537 | "enablePullDownRefresh": false | 601 | "enablePullDownRefresh": false |
| 538 | } | 602 | } |
| 539 | }] | 603 | }] |
| 604 | },{ | ||
| 605 | "root": "myCenter", | ||
| 606 | "pages": [ | ||
| 607 | { | ||
| 608 | "path" : "index", | ||
| 609 | "style" : | ||
| 610 | { | ||
| 611 | "navigationBarTitleText" : "个人中心", | ||
| 612 | "enablePullDownRefresh" : false | ||
| 613 | } | ||
| 614 | }, | ||
| 615 | { | ||
| 616 | "path" : "teamInfo", | ||
| 617 | "style" : | ||
| 618 | { | ||
| 619 | "navigationBarTitleText" : "团体信息", | ||
| 620 | "enablePullDownRefresh" : false | ||
| 621 | } | ||
| 622 | }, | ||
| 623 | { | ||
| 624 | "path" : "auth", | ||
| 625 | "style" : | ||
| 626 | { | ||
| 627 | "navigationBarTitleText" : "会员认证", | ||
| 628 | "enablePullDownRefresh" : false | ||
| 629 | } | ||
| 630 | }, | ||
| 631 | { | ||
| 632 | "path" : "safe", | ||
| 633 | "style" : | ||
| 634 | { | ||
| 635 | "navigationBarTitleText" : "账号与安全", | ||
| 636 | "enablePullDownRefresh" : false | ||
| 637 | } | ||
| 638 | }, | ||
| 639 | { | ||
| 640 | "path" : "reviewList", | ||
| 641 | "style" : | ||
| 642 | { | ||
| 643 | "navigationBarTitleText" : "审核详情", | ||
| 644 | "enablePullDownRefresh" : false | ||
| 645 | } | ||
| 646 | }, | ||
| 647 | { | ||
| 648 | "path" : "perfect", | ||
| 649 | "style" : | ||
| 650 | { | ||
| 651 | "navigationBarTitleText" : "团体会员缴费", | ||
| 652 | "enablePullDownRefresh" : false | ||
| 653 | } | ||
| 654 | } | ||
| 655 | ] | ||
| 540 | }], | 656 | }], |
| 541 | "preloadRule": { | 657 | "preloadRule": { |
| 542 | "pages/index/index": { | 658 | "pages/index/index": { |
| 543 | "network": "all", | 659 | "network": "all", |
| 544 | "packages": ["login","personalVip", "group","level"] | 660 | "packages": ["login","personalVip", "group","level","myCenter"] |
| 545 | } | 661 | } |
| 546 | } | 662 | } |
| 547 | } | 663 | } |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| ... | @@ -16,16 +16,16 @@ | ... | @@ -16,16 +16,16 @@ |
| 16 | <uni-icons type="calendar-filled" size="16" color="#AD181F"></uni-icons> | 16 | <uni-icons type="calendar-filled" size="16" color="#AD181F"></uni-icons> |
| 17 | <text>{{item.submitTime}} 创建</text> | 17 | <text>{{item.submitTime}} 创建</text> |
| 18 | </view> | 18 | </view> |
| 19 | 19 | <view class="text-primary" v-if="item.payCode">{{item.payCode}}</view> | |
| 20 | <view class="name" @click="goDetail(item)">{{item.name}}</view> | 20 | <view class="name mt0" @click="goDetail(item)">{{item.name}}</view> |
| 21 | 21 | ||
| 22 | <view class="flexbox" @click="goDetail(item)"> | 22 | <view class="flexbox" @click="goDetail(item)"> |
| 23 | <view> | 23 | <view> |
| 24 | 缴费状态 | 24 | 缴费状态 |
| 25 | <view> | 25 | <view> |
| 26 | <text :class="{ | 26 | <text :class="{ |
| 27 | 'text-success':item.payStatusStr=='已上传凭证', | 27 | 'text-success':item.payStatusStr=='已上传', |
| 28 | 'text-danger':item.payStatusStr=='未上传凭证', | 28 | 'text-danger':item.payStatusStr=='未上传', |
| 29 | 'text-warning':item.payStatusStr=='已结算' | 29 | 'text-warning':item.payStatusStr=='已结算' |
| 30 | }">{{item.payStatusStr}}</text> | 30 | }">{{item.payStatusStr}}</text> |
| 31 | </view> | 31 | </view> | ... | ... |
| ... | @@ -18,7 +18,8 @@ | ... | @@ -18,7 +18,8 @@ |
| 18 | <text class="lab">{{ type=='1'?'考级人数':'考段人数' }}:</text>{{form.totalNum}} | 18 | <text class="lab">{{ type=='1'?'考级人数':'考段人数' }}:</text>{{form.totalNum}} |
| 19 | </view> | 19 | </view> |
| 20 | <view class="ddd"> | 20 | <view class="ddd"> |
| 21 | <text class="lab">总金额:</text>¥{{ (form.totalAmount*1).toFixed(2) }} | 21 | <text class="lab">总金额:</text> |
| 22 | <text class="text-danger">¥{{ (form.totalAmount*1).toFixed(2) }}</text> | ||
| 22 | </view> | 23 | </view> |
| 23 | </view> | 24 | </view> |
| 24 | <view class="wBox"> | 25 | <view class="wBox"> |
| ... | @@ -28,20 +29,21 @@ | ... | @@ -28,20 +29,21 @@ |
| 28 | <view class="userlist"> | 29 | <view class="userlist"> |
| 29 | <view class="item" v-for="n in infoList" @click="goDetail(n)" style="background-color: #fffafa;"> | 30 | <view class="item" v-for="n in infoList" @click="goDetail(n)" style="background-color: #fffafa;"> |
| 30 | <view class="w100"> | 31 | <view class="w100"> |
| 32 | <view class="text-primary">{{n.examCode}}</view> | ||
| 31 | <view class="name">{{n.name}}</view> | 33 | <view class="name">{{n.name}}</view> |
| 32 | <!-- <view class="date">{{n.idcTypeStr}}:{{n.idcCode}}</view> --> | 34 | <!-- <view class="date">{{n.idcTypeStr}}:{{n.idcCode}}</view> --> |
| 33 | <view class="flexbox"> | 35 | <view class="flexbox"> |
| 34 | <view> | 36 | <!-- <view> |
| 35 | 上报单位 | 37 | 上报单位 |
| 36 | <text>{{n.memberName}}</text> | 38 | <text>{{n.memberName}}</text> |
| 37 | </view> | 39 | </view> --> |
| 38 | <view> | 40 | <view> |
| 39 | {{type=='1'?'考级考生数':'考段考生数'}} | 41 | {{type=='1'?'考级考生数':'考段考生数'}} |
| 40 | <text> | 42 | <text> |
| 41 | {{n.totalNum}} | 43 | {{n.totalNum}} |
| 42 | </text> | 44 | </text> |
| 43 | </view> | 45 | </view> |
| 44 | <view> | 46 | <view class="w50"> |
| 45 | 金额 | 47 | 金额 |
| 46 | <text class="text-danger">¥{{ (n.totalAmount*1).toFixed(2) }}</text> | 48 | <text class="text-danger">¥{{ (n.totalAmount*1).toFixed(2) }}</text> |
| 47 | </view> | 49 | </view> |
| ... | @@ -117,7 +119,8 @@ | ... | @@ -117,7 +119,8 @@ |
| 117 | function goDetail(item) { | 119 | function goDetail(item) { |
| 118 | // examId | 120 | // examId |
| 119 | if(type.value == '1'){ | 121 | if(type.value == '1'){ |
| 120 | let path = `/level/applyDetail?examId=${item.examId}` | 122 | const form = encodeURIComponent(JSON.stringify(item)) |
| 123 | let path = `/level/applyDetail?examId=${item.examId}&form=${form}` | ||
| 121 | uni.navigateTo({ | 124 | uni.navigateTo({ |
| 122 | url: path | 125 | url: path |
| 123 | }); | 126 | }); | ... | ... |
This diff could not be displayed because it is too large.
| ... | @@ -3,12 +3,12 @@ | ... | @@ -3,12 +3,12 @@ |
| 3 | <z-paging ref="paging" v-model="dataList" @query="queryList" emptyViewImg="/static/nodata.png"> | 3 | <z-paging ref="paging" v-model="dataList" @query="queryList" emptyViewImg="/static/nodata.png"> |
| 4 | <!-- z-paging默认铺满全屏,此时页面所有view都应放在z-paging标签内,否则会被盖住 --> | 4 | <!-- z-paging默认铺满全屏,此时页面所有view都应放在z-paging标签内,否则会被盖住 --> |
| 5 | <!-- 需要固定在页面顶部的view请通过slot="top"插入,包括自定义的导航栏 --> | 5 | <!-- 需要固定在页面顶部的view请通过slot="top"插入,包括自定义的导航栏 --> |
| 6 | <uni-section title="待办提醒" padding> | 6 | <uni-section title="通知公告" padding> |
| 7 | <view class="msglist"> | 7 | <view class="msglist"> |
| 8 | <view class="msgitem" v-for="n in dataList" :key="n.id" @click="readMessage(n)"> | 8 | <view class="msgitem" v-for="n in dataList" :key="n.id" @click="goDetail(n)"> |
| 9 | <text class="dot" :class="{'done':n.readFlag=='1'}"></text> | 9 | <!-- <text class="dot" :class="{'done':n.readFlag=='1'}"></text> --> |
| 10 | <view class="tt esp">{{n.name}}</view> | 10 | <view class="tt esp">{{n.name}}</view> |
| 11 | <view class="date">{{ n.createTime }}</view> | 11 | <view class="date">{{ n.belongTime }}</view> |
| 12 | </view> | 12 | </view> |
| 13 | </view> | 13 | </view> |
| 14 | </uni-section> | 14 | </uni-section> |
| ... | @@ -20,65 +20,28 @@ | ... | @@ -20,65 +20,28 @@ |
| 20 | import { | 20 | import { |
| 21 | ref | 21 | ref |
| 22 | } from 'vue' | 22 | } from 'vue' |
| 23 | import * as api from '@/common/api.js'; | 23 | import * as api from '@/common/api.js'; |
| 24 | import { | ||
| 25 | onLoad | ||
| 26 | } from '@dcloudio/uni-app'; | ||
| 24 | const dataList = ref([]) | 27 | const dataList = ref([]) |
| 25 | const paging = ref(null) | 28 | const paging = ref(null) |
| 26 | const current = ref(2) | 29 | const current = ref(2) |
| 27 | 30 | ||
| 28 | function queryList(pageNum, pageSize) { | 31 | function queryList(pageNum, pageSize) { |
| 29 | api.getMessage({ | 32 | api.notice({ |
| 30 | pageNum, | 33 | pageNum, |
| 31 | pageSize | 34 | pageSize |
| 32 | }).then(res => { | 35 | }).then(res => { |
| 33 | for (var d of res.rows) { | ||
| 34 | switch (d.type) { | ||
| 35 | case 30001: | ||
| 36 | d.name = '你有一条会员缴费等待审批,点击去处理!' | ||
| 37 | d.path = '/personalVip/audit' | ||
| 38 | break | ||
| 39 | case 30002: | ||
| 40 | d.name = '你有一条级位考试等待审批,点击去处理!' | ||
| 41 | d.path = '/level/approval' | ||
| 42 | break | ||
| 43 | case 30003: | ||
| 44 | d.name = '你有一条段位考试等待审批,点击去处理!' | ||
| 45 | d.path = '/pages/rank/approval' | ||
| 46 | break | ||
| 47 | case 30004: | ||
| 48 | d.name = '你有一条会员调动等待审批,点击去处理!' | ||
| 49 | d.path = '/personalVip/mobillize' | ||
| 50 | break | ||
| 51 | case 30005: | ||
| 52 | d.name = '你有一条团体会员认证等待审批,点击去处理!' | ||
| 53 | d.path = '/group/apply/applyList' | ||
| 54 | break | ||
| 55 | case 30006: | ||
| 56 | d.name = '你有一条段位成绩等待审批,点击去处理!' | ||
| 57 | d.path = '/pages/rank/scoreApproval' | ||
| 58 | break | ||
| 59 | case 40001: | ||
| 60 | d.name = '你有一条级位申请待提交,点击去处理!' | ||
| 61 | d.path = `/level/apply?id=${d.eventId}` | ||
| 62 | break | ||
| 63 | case 40002: | ||
| 64 | d.name = '你有一条段位申请待提交,点击去处理!' | ||
| 65 | d.path = `/pages/rank/apply?id=${d.eventId}` | ||
| 66 | break | ||
| 67 | case 40003: | ||
| 68 | d.name = '你有一条成绩维护的数据待提交,点击去处理!' | ||
| 69 | d.path = `/pages/rank/score/modify?id=${d.eventId}` | ||
| 70 | break | ||
| 71 | case 50001: | ||
| 72 | d.name = '你有一条新的个人会员申请,点击去处理!' | ||
| 73 | d.path = '/personalVip/list' | ||
| 74 | break | ||
| 75 | } | ||
| 76 | } | ||
| 77 | paging.value.complete(res.rows); | 36 | paging.value.complete(res.rows); |
| 78 | }) | 37 | }) |
| 79 | 38 | ||
| 80 | } | 39 | } |
| 81 | 40 | function goDetail(n){ | |
| 41 | uni.navigateTo({ | ||
| 42 | url: `/pages/index/newsDetail?noteId=${n.noteId}` | ||
| 43 | }); | ||
| 44 | } | ||
| 82 | function readMessage(item) { | 45 | function readMessage(item) { |
| 83 | uni.navigateTo({ | 46 | uni.navigateTo({ |
| 84 | url: item.path | 47 | url: item.path | ... | ... |
pages/index/newsDetail.vue
0 → 100644
| 1 | <template> | ||
| 2 | <view class="mainbox"> | ||
| 3 | <view class="title">{{form.name}}</view> | ||
| 4 | <view class="infos"> | ||
| 5 | <text>{{ form.source }}</text> | ||
| 6 | <text>{{ form.belongTime }}</text> | ||
| 7 | </view> | ||
| 8 | <view class="content"> | ||
| 9 | |||
| 10 | <view v-html="form.content"></view> | ||
| 11 | |||
| 12 | <view v-if="attachmentMp4.length>0"> | ||
| 13 | <video v-for="(f,index) in attachmentMp4" :key="index" controls :src="config.baseUrl_api + f.url"></video> | ||
| 14 | </view> | ||
| 15 | <view v-if="attachmentFile.length>0" class="mt20"> | ||
| 16 | <!-- 附件--> | ||
| 17 | <view class="fwb mt20">附件下载:</view> | ||
| 18 | <view v-for="(f,index) in attachmentFile" :key="index" class="text-primary underLine" | ||
| 19 | @click="downLoad(f.url)"> | ||
| 20 | {{ index + 1 }}、{{ f.name }} | ||
| 21 | </view> | ||
| 22 | |||
| 23 | </view> | ||
| 24 | <view> | ||
| 25 | <text v-if=" form.author">发布人:{{ form.author }}</text> | ||
| 26 | </view> | ||
| 27 | </view> | ||
| 28 | </view> | ||
| 29 | </template> | ||
| 30 | |||
| 31 | <script setup> | ||
| 32 | import { | ||
| 33 | ref | ||
| 34 | } from 'vue' | ||
| 35 | import * as api from '@/common/api.js'; | ||
| 36 | import { | ||
| 37 | onLoad | ||
| 38 | } from '@dcloudio/uni-app'; | ||
| 39 | import _ from 'lodash' | ||
| 40 | import config from '@/config.js' | ||
| 41 | const form = ref({}) | ||
| 42 | const attachmentFile = ref([]) | ||
| 43 | const attachmentMp4 = ref([]) | ||
| 44 | |||
| 45 | onLoad((option) => { | ||
| 46 | getData(option.noteId) | ||
| 47 | }) | ||
| 48 | |||
| 49 | function getData(noteId) { | ||
| 50 | api.getNewsById(noteId).then(res => { | ||
| 51 | form.value = res.data | ||
| 52 | var html = res.data.content.replace(/<img([\s\w"-=\/\.:;]+)((?:(height="[^"]+")))/ig, '<img$1') | ||
| 53 | .replace(/<img([\s\w"-=\/\.:;]+)((?:(width="[^"]+")))/ig, '<img$1') | ||
| 54 | .replace(/<img([\s\w"-=\/\.:;]+)((?:(style="[^"]+")))/ig, '<img$1') | ||
| 55 | .replace(/<img([\s\w"-=\/\.:;]+)((?:(alt="[^"]+")))/ig, '<img$1') | ||
| 56 | .replace(/<img([\s\w"-=\/\.:;]+)/ig, '<img style="width: 100%;" $1'); | ||
| 57 | |||
| 58 | |||
| 59 | if (form.value.attacthJson) { | ||
| 60 | const attachment = JSON.parse(form.value.attacthJson) | ||
| 61 | attachmentFile.value = _.filter(attachment, (a) => a.url.toLowerCase().indexOf('.mp4') === -1) || [] | ||
| 62 | attachmentMp4.value = _.filter(attachment, (a) => a.url.toLowerCase().indexOf('.mp4') !== -1) || [] | ||
| 63 | } | ||
| 64 | }) | ||
| 65 | } | ||
| 66 | function downLoad(url){ | ||
| 67 | console.log(url) | ||
| 68 | var str = config.baseUrl_api + url | ||
| 69 | if (url.indexOf('png') > -1 ||url.indexOf('jpg') > -1 ||url.indexOf('jpeg') > -1) { | ||
| 70 | uni.previewImage({ | ||
| 71 | urls: [str], | ||
| 72 | success: function(res) { | ||
| 73 | console.log('success', res) | ||
| 74 | }, | ||
| 75 | fail: function(res) { | ||
| 76 | console.log('fail', res) | ||
| 77 | }, | ||
| 78 | complete: function(res) { | ||
| 79 | console.log('complete', res) | ||
| 80 | } | ||
| 81 | }) | ||
| 82 | } else { | ||
| 83 | goWebView(str) | ||
| 84 | } | ||
| 85 | } | ||
| 86 | function goWebView(url) { | ||
| 87 | url = url.replace("http://", "https://") | ||
| 88 | uni.showLoading({ | ||
| 89 | title: '下载中' | ||
| 90 | }); | ||
| 91 | uni.downloadFile({ | ||
| 92 | url: url, | ||
| 93 | success: function(res) { | ||
| 94 | console.log('111') | ||
| 95 | uni.hideLoading(); | ||
| 96 | var filePath = res.tempFilePath; | ||
| 97 | uni.showLoading({ | ||
| 98 | title: '正在打开' | ||
| 99 | }); | ||
| 100 | uni.openDocument({ | ||
| 101 | filePath: filePath, | ||
| 102 | showMenu: true, | ||
| 103 | success: function(res) { | ||
| 104 | console.log('222') | ||
| 105 | uni.hideLoading(); | ||
| 106 | }, | ||
| 107 | fail: function(err) { | ||
| 108 | console.log(err.errMsg) | ||
| 109 | uni.hideLoading(); | ||
| 110 | let msg | ||
| 111 | if(err.errMsg.indexOf('not supported')>-1){ | ||
| 112 | msg = '不支持该文件类型' | ||
| 113 | } else { | ||
| 114 | msg = err.errMsg | ||
| 115 | } | ||
| 116 | uni.showToast({ | ||
| 117 | title: msg, | ||
| 118 | icon: 'none', | ||
| 119 | duration: 2000 | ||
| 120 | }); | ||
| 121 | } | ||
| 122 | }); | ||
| 123 | }, | ||
| 124 | fail: function(error) { | ||
| 125 | uni.hideLoading(); | ||
| 126 | uni.showToast({ | ||
| 127 | title: `下载失败`, | ||
| 128 | icon: 'none', | ||
| 129 | duration: 2000 | ||
| 130 | }); | ||
| 131 | } | ||
| 132 | }); | ||
| 133 | } | ||
| 134 | </script> | ||
| 135 | |||
| 136 | <style scoped lang="scss"> | ||
| 137 | .mainbox { | ||
| 138 | box-sizing: border-box; | ||
| 139 | padding: 50rpx 25rpx 160rpx; | ||
| 140 | background: #fff; | ||
| 141 | min-height: 100vh; | ||
| 142 | } | ||
| 143 | .title { | ||
| 144 | font-size: 36rpx; | ||
| 145 | font-weight: 500; | ||
| 146 | color: #29343C; | ||
| 147 | margin-bottom: 34rpx; | ||
| 148 | } | ||
| 149 | |||
| 150 | .infos { | ||
| 151 | border-bottom: 1px solid #DCDCDC; | ||
| 152 | padding-bottom: 40rpx; | ||
| 153 | overflow: hidden; | ||
| 154 | } | ||
| 155 | |||
| 156 | .infos>text { | ||
| 157 | margin-right: 18rpx; | ||
| 158 | color: #7B7F83; | ||
| 159 | font-size: 22rpx; | ||
| 160 | } | ||
| 161 | .content { | ||
| 162 | line-height: 1.6; | ||
| 163 | color: #4C5359; | ||
| 164 | font-size: 30rpx; | ||
| 165 | padding-top: 40rpx; | ||
| 166 | width: 100%; | ||
| 167 | word-wrap: break-word !important; | ||
| 168 | white-space: normal !important; | ||
| 169 | } | ||
| 170 | |||
| 171 | .content rich-text { | ||
| 172 | word-wrap: break-word !important; | ||
| 173 | white-space: normal !important; | ||
| 174 | } | ||
| 175 | |||
| 176 | .content span, | ||
| 177 | .content p { | ||
| 178 | word-wrap: break-word !important; | ||
| 179 | white-space: normal !important; | ||
| 180 | } | ||
| 181 | .content rich-text img{max-width: 100%;} | ||
| 182 | |||
| 183 | image { | ||
| 184 | max-width: 100%; | ||
| 185 | } | ||
| 186 | |||
| 187 | audio { | ||
| 188 | width: 100%; | ||
| 189 | } | ||
| 190 | |||
| 191 | video { | ||
| 192 | width: 100%; | ||
| 193 | } | ||
| 194 | </style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -17,7 +17,8 @@ | ... | @@ -17,7 +17,8 @@ |
| 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="text-primary">{{item.examCode}}</view> |
| 21 | <view class="name mt0" >{{item.name}}</view> | ||
| 21 | <view class="pp esp">申请单位:{{item.memberName}}</view> | 22 | <view class="pp esp">申请单位:{{item.memberName}}</view> |
| 22 | <view class="pp esp">考段日期:{{item.startTime.substring(0,16)}} 至 {{item.endTime.substring(0,16)}}</view> | 23 | <view class="pp esp">考段日期:{{item.startTime.substring(0,16)}} 至 {{item.endTime.substring(0,16)}}</view> |
| 23 | <view class="flexbox" > | 24 | <view class="flexbox" > | ... | ... |
| ... | @@ -20,6 +20,7 @@ | ... | @@ -20,6 +20,7 @@ |
| 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}} | 21 | 提交时间:{{item.submitTime}} |
| 22 | </view> | 22 | </view> |
| 23 | <view class="text-primary">{{item.examCode}}</view> | ||
| 23 | <view class="name mt10"><text class="dot"></text>{{item.name}}</view> | 24 | <view class="name mt10"><text class="dot"></text>{{item.name}}</view> |
| 24 | <view class="pp esp">考段日期:{{item.startTime.substring(0,16)}} 至 {{item.endTime.substring(0,16)}} | 25 | <view class="pp esp">考段日期:{{item.startTime.substring(0,16)}} 至 {{item.endTime.substring(0,16)}} |
| 25 | </view> | 26 | </view> | ... | ... |
| ... | @@ -235,7 +235,13 @@ onLoad((option) => { | ... | @@ -235,7 +235,13 @@ onLoad((option) => { |
| 235 | getList() | 235 | getList() |
| 236 | } | 236 | } |
| 237 | }) | 237 | }) |
| 238 | onShow(() => {}) | 238 | onShow((option) => { |
| 239 | console.log(option) | ||
| 240 | if(option){ | ||
| 241 | queryParams.value.rangeId = option | ||
| 242 | getList() | ||
| 243 | } | ||
| 244 | }) | ||
| 239 | 245 | ||
| 240 | function getList() { | 246 | function getList() { |
| 241 | uni.showLoading({ | 247 | uni.showLoading({ |
| ... | @@ -266,7 +272,10 @@ function handleDelete(row) { | ... | @@ -266,7 +272,10 @@ function handleDelete(row) { |
| 266 | api.infoMod([row.id]).then(Response => { | 272 | api.infoMod([row.id]).then(Response => { |
| 267 | uni.showToast({ | 273 | uni.showToast({ |
| 268 | title: '操作成功' | 274 | title: '操作成功' |
| 269 | }) | 275 | }) |
| 276 | if(list.value.length==1){ | ||
| 277 | queryParams.value.rangeId = '' | ||
| 278 | } | ||
| 270 | getList() | 279 | getList() |
| 271 | }) | 280 | }) |
| 272 | } | 281 | } |
| ... | @@ -275,20 +284,24 @@ function handleDelete(row) { | ... | @@ -275,20 +284,24 @@ function handleDelete(row) { |
| 275 | } | 284 | } |
| 276 | 285 | ||
| 277 | function chooseOnline() { | 286 | function chooseOnline() { |
| 278 | uni.showLoading({ | 287 | // uni.showLoading({ |
| 279 | title: '加载中', | 288 | // title: '加载中', |
| 280 | icon: 'none' | 289 | // icon: 'none' |
| 281 | }) | 290 | // }) |
| 282 | var obj = { | 291 | // var obj = { |
| 283 | paymentRangeId: queryParams.value.rangeId || '-1', | 292 | // paymentRangeId: queryParams.value.rangeId || '-1', |
| 284 | multiDeptFlag: 1, | 293 | // multiDeptFlag: 1, |
| 285 | perType: 1 | 294 | // perType: 1 |
| 286 | } | 295 | // } |
| 287 | api.selectPageList(obj).then(res => { | 296 | // api.selectPageList(obj).then(res => { |
| 288 | studentList.value = res.rows | 297 | // studentList.value = res.rows |
| 289 | uni.hideLoading() | 298 | // uni.hideLoading() |
| 290 | choseStudent.value.open() | 299 | // choseStudent.value.open() |
| 291 | }) | 300 | // }) |
| 301 | uni.navigateTo({ | ||
| 302 | url:`/personalVip/changeVipChoseList?rangeId=${queryParams.value.rangeId || '-1'}` | ||
| 303 | }) | ||
| 304 | |||
| 292 | } | 305 | } |
| 293 | 306 | ||
| 294 | function checkThis(n) { | 307 | function checkThis(n) { | ... | ... |
personalVip/addMerge.vue
0 → 100644
This diff is collapsed.
Click to expand it.
| ... | @@ -12,7 +12,7 @@ | ... | @@ -12,7 +12,7 @@ |
| 12 | </uni-forms-item> | 12 | </uni-forms-item> |
| 13 | <uni-forms-item label="证件类型" required name="idcType"> | 13 | <uni-forms-item label="证件类型" required name="idcType"> |
| 14 | <uni-data-select v-model="baseFormData.idcType" style="width: 300rpx;" | 14 | <uni-data-select v-model="baseFormData.idcType" style="width: 300rpx;" |
| 15 | @change="changeIdcType" :clearable="false" :disabled="current === 0" | 15 | @change="changeIdcType" :clear="false" :disabled="current === 0" |
| 16 | :localdata="idcTypeList"></uni-data-select> | 16 | :localdata="idcTypeList"></uni-data-select> |
| 17 | </uni-forms-item> | 17 | </uni-forms-item> |
| 18 | <uni-forms-item label="证件照" required v-show="current === 1"> | 18 | <uni-forms-item label="证件照" required v-show="current === 1"> |
| ... | @@ -143,7 +143,7 @@ | ... | @@ -143,7 +143,7 @@ |
| 143 | const photoArr = ref({}) | 143 | const photoArr = ref({}) |
| 144 | const regionsList = ref([]) | 144 | const regionsList = ref([]) |
| 145 | const cardObj = ref({}) | 145 | const cardObj = ref({}) |
| 146 | const disabledName = ref(false) | 146 | const disabledName = ref(true) |
| 147 | const baseFormData = ref({ | 147 | const baseFormData = ref({ |
| 148 | photo: '', | 148 | photo: '', |
| 149 | sex: '', | 149 | sex: '', |
| ... | @@ -329,7 +329,14 @@ | ... | @@ -329,7 +329,14 @@ |
| 329 | } | 329 | } |
| 330 | 330 | ||
| 331 | 331 | ||
| 332 | function getExtractInfo(obj) { | 332 | function getExtractInfo(obj) { |
| 333 | photoArr.value = {} | ||
| 334 | // baseFormData.value = { | ||
| 335 | // photo: '', | ||
| 336 | // idcType: baseFormData.value.idcType, | ||
| 337 | // idcCode: baseFormData.value.idcCode, | ||
| 338 | // perType: '1' | ||
| 339 | // }; | ||
| 333 | //如果老会员 | 340 | //如果老会员 |
| 334 | uni.showLoading({ | 341 | uni.showLoading({ |
| 335 | title: '加载中' | 342 | title: '加载中' |
| ... | @@ -345,7 +352,6 @@ | ... | @@ -345,7 +352,6 @@ |
| 345 | baseFormData.value.phone = res.data.phone | 352 | baseFormData.value.phone = res.data.phone |
| 346 | baseFormData.value.cityId = res.data.cityId | 353 | baseFormData.value.cityId = res.data.cityId |
| 347 | baseFormData.value.address = res.data.address | 354 | baseFormData.value.address = res.data.address |
| 348 | photoArr.value = {} | ||
| 349 | if (res.data.photo) { | 355 | if (res.data.photo) { |
| 350 | console.log(res.data.photo) | 356 | console.log(res.data.photo) |
| 351 | if (res.data.photo.indexOf('http') == -1) { | 357 | if (res.data.photo.indexOf('http') == -1) { |
| ... | @@ -367,17 +373,17 @@ | ... | @@ -367,17 +373,17 @@ |
| 367 | } | 373 | } |
| 368 | 374 | ||
| 369 | } | 375 | } |
| 370 | baseFormData.value.name = res.data.name | 376 | // baseFormData.value.name = res.data.name |
| 371 | baseFormData.value.perId = res.data.perId | 377 | baseFormData.value.perId = res.data.perId |
| 372 | console.log(res.data.photo, baseFormData.value.photo) | 378 | console.log(res.data.photo, baseFormData.value.photo) |
| 373 | uni.hideLoading() | 379 | uni.hideLoading() |
| 374 | } else { | 380 | } else { |
| 375 | uni.hideLoading() | 381 | uni.hideLoading() |
| 376 | // 新会员 | 382 | // 新会员 |
| 377 | if (res.data.sex) { | 383 | // if (res.data.sex) { |
| 378 | baseFormData.value.sex = res.data.sex | 384 | // baseFormData.value.sex = res.data.sex |
| 379 | baseFormData.value.birth = res.data.birth | 385 | // baseFormData.value.birth = res.data.birth |
| 380 | } | 386 | // } |
| 381 | if (baseFormData.value.idcType != 3 && current.value == 1) { | 387 | if (baseFormData.value.idcType != 3 && current.value == 1) { |
| 382 | disabledName.value = true | 388 | disabledName.value = true |
| 383 | } else { | 389 | } else { |
| ... | @@ -399,29 +405,6 @@ | ... | @@ -399,29 +405,6 @@ |
| 399 | icon: 'none' | 405 | icon: 'none' |
| 400 | }) | 406 | }) |
| 401 | } else { | 407 | } else { |
| 402 | // let tmpStr = ""; | ||
| 403 | // if (baseFormData.value.idcCode.length == 15) { | ||
| 404 | // tmpStr = baseFormData.value.idcCode.substring(6, 12); | ||
| 405 | // tmpStr = "19" + tmpStr; | ||
| 406 | // tmpStr = tmpStr.substring(0, 4) + "-" + tmpStr.substring(4, 6) + "-" + tmpStr.substring(6) | ||
| 407 | |||
| 408 | // } else { | ||
| 409 | // tmpStr = baseFormData.value.idcCode.substring(6, 14); | ||
| 410 | // tmpStr = tmpStr.substring(0, 4) + "-" + tmpStr.substring(4, 6) + "-" + tmpStr.substring(6) | ||
| 411 | |||
| 412 | // } | ||
| 413 | |||
| 414 | // baseFormData.value.birth = tmpStr | ||
| 415 | |||
| 416 | // const sse = /^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/ | ||
| 417 | // if (sse.test(baseFormData.value.idcCode)) { | ||
| 418 | // const genderCode = baseFormData.value.idcCode.charAt(16) | ||
| 419 | // if (parseInt(genderCode) % 2 == 0) { | ||
| 420 | // baseFormData.value.sex = '1' | ||
| 421 | // } else { | ||
| 422 | // baseFormData.value.sex = '0' | ||
| 423 | // } | ||
| 424 | // } | ||
| 425 | getExtractInfo({ | 408 | getExtractInfo({ |
| 426 | idcCode: baseFormData.value.idcCode, | 409 | idcCode: baseFormData.value.idcCode, |
| 427 | idcType: baseFormData.value.idcType, | 410 | idcType: baseFormData.value.idcType, |
| ... | @@ -429,19 +412,19 @@ | ... | @@ -429,19 +412,19 @@ |
| 429 | }) | 412 | }) |
| 430 | } | 413 | } |
| 431 | } | 414 | } |
| 432 | if (baseFormData.value.idcType == 1 || baseFormData.value.idcType == 3 || baseFormData.value.idcType == 4) { | 415 | // if (baseFormData.value.idcType == 1 || baseFormData.value.idcType == 3) { |
| 433 | //转换为大写并判断位数12 | 416 | // //转换为大写并判断位数12 |
| 434 | baseFormData.value.idcCode = baseFormData.value.idcCode.toUpperCase() | 417 | // baseFormData.value.idcCode = baseFormData.value.idcCode.toUpperCase() |
| 435 | // var regex = /^[a-zA-Z]/ | 418 | // // var regex = /^[a-zA-Z]/ |
| 436 | if (baseFormData.value.idcCode.length > 12) { | 419 | // if (baseFormData.value.idcCode.length > 12) { |
| 437 | uni.showToast({ | 420 | // uni.showToast({ |
| 438 | icon: 'none', | 421 | // icon: 'none', |
| 439 | title: '请输入正确的证件号', | 422 | // title: '请输入正确的证件号', |
| 440 | duration: 2000 | 423 | // duration: 2000 |
| 441 | }) | 424 | // }) |
| 442 | return | 425 | // return |
| 443 | } | 426 | // } |
| 444 | } | 427 | // } |
| 445 | } | 428 | } |
| 446 | 429 | ||
| 447 | 430 | ||
| ... | @@ -502,28 +485,22 @@ | ... | @@ -502,28 +485,22 @@ |
| 502 | }) | 485 | }) |
| 503 | return | 486 | return |
| 504 | } | 487 | } |
| 505 | if (baseFormData.value.idcType == 3) { | ||
| 506 | //转换为大写并判断位数12 | ||
| 507 | baseFormData.value.idcCode = baseFormData.value.idcCode.toUpperCase() | ||
| 508 | // var regex = /^[a-zA-Z]/ | ||
| 509 | if (baseFormData.value.idcCode.length > 12) { | ||
| 510 | uni.showToast({ | ||
| 511 | icon: 'none', | ||
| 512 | title: '请输入正确的证件号', | ||
| 513 | duration: 2000 | ||
| 514 | }) | ||
| 515 | return | ||
| 516 | } | ||
| 517 | } | ||
| 518 | //信息确认弹出 | 488 | //信息确认弹出 |
| 519 | uni.showModal({ | 489 | uni.showModal({ |
| 520 | content: '请确认信息正确', | 490 | content: '请确认信息正确', |
| 521 | success: function(res) { | 491 | success: function(res) { |
| 522 | if (res.confirm) { | 492 | if (res.confirm) { |
| 493 | if(baseFormData.value.idcType=='4'){ | ||
| 494 | baseFormData.value.idcType='0' | ||
| 495 | } | ||
| 523 | api.addPersonToMyDept(baseFormData.value).then(res => { | 496 | api.addPersonToMyDept(baseFormData.value).then(res => { |
| 524 | if (res.data == 0) { | 497 | if (res.data == 0) { |
| 525 | let msg = '该成员,实名认证未通过,注册失败!' | 498 | let msg = '该成员,实名认证未通过,注册失败!' |
| 526 | resultDialog.value = true | 499 | uni.showModal({ |
| 500 | content: msg, | ||
| 501 | title: '提示', | ||
| 502 | success: function(res) {} | ||
| 503 | }) | ||
| 527 | return | 504 | return |
| 528 | } | 505 | } |
| 529 | if (res.data * 1 < 0) { | 506 | if (res.data * 1 < 0) { |
| ... | @@ -535,14 +512,23 @@ | ... | @@ -535,14 +512,23 @@ |
| 535 | }) | 512 | }) |
| 536 | return | 513 | return |
| 537 | } | 514 | } |
| 538 | let msg = '保存成功' | 515 | // let msg = '保存成功' |
| 539 | uni.showToast({ | 516 | uni.showModal({ |
| 540 | title: msg, | 517 | content: '保存成功', |
| 541 | icon: 'none' | 518 | title: '提示', |
| 519 | confirmText:'继续添加', | ||
| 520 | cancelColor:'返回首页', | ||
| 521 | success: function(res) { | ||
| 522 | uni.redirectTo({ | ||
| 523 | url: `/personalVip/addVip?tab=${current.value}&idcType=${baseFormData.value.idcType}` | ||
| 524 | }); | ||
| 525 | }, | ||
| 526 | fail:function(){ | ||
| 527 | uni.reLaunch({ | ||
| 528 | url:`/pages/index/index` | ||
| 529 | }) | ||
| 530 | } | ||
| 542 | }) | 531 | }) |
| 543 | uni.redirectTo({ | ||
| 544 | url: `/personalVip/addVip?tab=${current.value}&idcType=${baseFormData.value.idcType}` | ||
| 545 | }); | ||
| 546 | 532 | ||
| 547 | }) | 533 | }) |
| 548 | } | 534 | } | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <view> | 2 | <view> |
| 3 | <view class="text-center" 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 class="whitebg" :current="current" :values="navs" @clickItem="onClickItem" |
| ... | @@ -29,6 +29,7 @@ | ... | @@ -29,6 +29,7 @@ |
| 29 | <uni-icons type="calendar-filled" size="16" color="#AD181F"></uni-icons> | 29 | <uni-icons type="calendar-filled" size="16" color="#AD181F"></uni-icons> |
| 30 | {{item.content.commitTime}} 提交 | 30 | {{item.content.commitTime}} 提交 |
| 31 | </view> | 31 | </view> |
| 32 | <view class="text-primary" v-if="item.content?.wfCode" @click="goDetail(item)">{{item.content?.wfCode}}</view> | ||
| 32 | <view class="name" @click="goDetail(item)">{{item.content.name}}</view> | 33 | <view class="name" @click="goDetail(item)">{{item.content.name}}</view> |
| 33 | <view class="flexbox" @click="goDetail(item)"> | 34 | <view class="flexbox" @click="goDetail(item)"> |
| 34 | <view> | 35 | <view> | ... | ... |
| ... | @@ -20,7 +20,7 @@ | ... | @@ -20,7 +20,7 @@ |
| 20 | </view> | 20 | </view> |
| 21 | 21 | ||
| 22 | <view class="name mt0" @click="goDetail(item)"> | 22 | <view class="name mt0" @click="goDetail(item)"> |
| 23 | {{item.code}}-{{item.shenMemName}} | 23 | <text class="text-primary">{{item.code}}</text>-{{item.shenMemName}} |
| 24 | </view> | 24 | </view> |
| 25 | <view class="flexbox" @click="goDetail(item)"> | 25 | <view class="flexbox" @click="goDetail(item)"> |
| 26 | <view> | 26 | <view> | ... | ... |
| ... | @@ -21,7 +21,7 @@ | ... | @@ -21,7 +21,7 @@ |
| 21 | </view> | 21 | </view> |
| 22 | 22 | ||
| 23 | <view class="name mt0" @click="goDetail(item)"> | 23 | <view class="name mt0" @click="goDetail(item)"> |
| 24 | {{item.code}}-{{item.shenMemName}} | 24 | <text class="text-primary">{{item.code}}</text>-{{item.shenMemName}} |
| 25 | </view> | 25 | </view> |
| 26 | <view class="flexbox" @click="goDetail(item)"> | 26 | <view class="flexbox" @click="goDetail(item)"> |
| 27 | <view> | 27 | <view> | ... | ... |
| ... | @@ -20,7 +20,7 @@ | ... | @@ -20,7 +20,7 @@ |
| 20 | </view> | 20 | </view> |
| 21 | 21 | ||
| 22 | <view class="name mt0" @click="goDetail(item)"> | 22 | <view class="name mt0" @click="goDetail(item)"> |
| 23 | {{item.code}}-{{item.shenMemName}} | 23 | <text class="text-primary">{{item.code}}</text>-{{item.shenMemName}} |
| 24 | </view> | 24 | </view> |
| 25 | <view class="flexbox" @click="goDetail(item)"> | 25 | <view class="flexbox" @click="goDetail(item)"> |
| 26 | <view> | 26 | <view> | ... | ... |
| ... | @@ -21,7 +21,7 @@ | ... | @@ -21,7 +21,7 @@ |
| 21 | </view> | 21 | </view> |
| 22 | 22 | ||
| 23 | <view class="name mt0" @click="goDetail(item)"> | 23 | <view class="name mt0" @click="goDetail(item)"> |
| 24 | {{item.code}}-{{item.shenMemName}} | 24 | <text class="text-primary">{{item.code}}</text>-{{item.shenMemName}} |
| 25 | </view> | 25 | </view> |
| 26 | <view class="flexbox" @click="goDetail(item)"> | 26 | <view class="flexbox" @click="goDetail(item)"> |
| 27 | <view> | 27 | <view> | ... | ... |
personalVip/changeVipChoseList.vue
0 → 100644
| 1 | <template> | ||
| 2 | <view class="hasfixedbottom"> | ||
| 3 | |||
| 4 | <view class="searchbar"> | ||
| 5 | <uni-easyinput placeholderStyle="font-size:30rpx" :input-border="false" prefixIcon="search" | ||
| 6 | v-model="queryParams.name" placeholder="搜索姓名" @blur="search()" @clear="search()"> | ||
| 7 | </uni-easyinput> | ||
| 8 | </view> | ||
| 9 | <view class="userlist"> | ||
| 10 | <view class="item" v-for=" (n,index) in studentList" :key="index"> | ||
| 11 | <view @click="checkThis(n)"> | ||
| 12 | <image class="icon" v-if="n.checked" | ||
| 13 | :src="config.baseUrl_api+'/fs/static/member/dx_dwn.png'" /> | ||
| 14 | <image class="icon" v-else :src="config.baseUrl_api+'/fs/static/member/dx.png'" /> | ||
| 15 | </view> | ||
| 16 | <view> | ||
| 17 | <view class="name">{{n.name}} <text>{{n.perCode}}</text></view> | ||
| 18 | <view class="date">{{ cardType[n.idcType]?.text }}:{{n.idcCode}}</view> | ||
| 19 | </view> | ||
| 20 | </view> | ||
| 21 | <view class="nodata" v-if="studentList.length==0"> | ||
| 22 | <image mode="aspectFit" src="/static/nodata.png"></image> | ||
| 23 | <text>无可变更会员</text> | ||
| 24 | </view> | ||
| 25 | </view> | ||
| 26 | <uni-load-more @clickLoadMore="clickLoadMore" :contentText="contentText" :status="status"></uni-load-more> | ||
| 27 | |||
| 28 | <view class="fixedBottom" v-if="studentList.length!=0"> | ||
| 29 | <button class="btn-red" @click="handleImport">批量添加</button> | ||
| 30 | </view> | ||
| 31 | |||
| 32 | </view> | ||
| 33 | </template> | ||
| 34 | |||
| 35 | <script setup> | ||
| 36 | import { | ||
| 37 | ref | ||
| 38 | } from 'vue' | ||
| 39 | import { | ||
| 40 | onLoad, | ||
| 41 | onShow | ||
| 42 | } from '@dcloudio/uni-app' | ||
| 43 | import * as api from '@/common/api.js' | ||
| 44 | import _ from 'lodash' | ||
| 45 | import config from '/config.js' | ||
| 46 | const queryParams = ref({ | ||
| 47 | paymentRangeId:-1, | ||
| 48 | multiDeptFlag: 1, | ||
| 49 | perType: 1, | ||
| 50 | pageNum:1, | ||
| 51 | pageSize:10 | ||
| 52 | }) | ||
| 53 | const paging = ref(null) | ||
| 54 | const total = ref(0) | ||
| 55 | const status = ref('no-more') | ||
| 56 | const list = ref([]) | ||
| 57 | const popup = ref(null) | ||
| 58 | const choseStudent = ref(null) | ||
| 59 | const studentList = ref([]) | ||
| 60 | const type = ref('') | ||
| 61 | const form = ref({}) | ||
| 62 | const contentText = ref({contentdown: "点击加载更多",contentrefresh: "正在加载...",contentnomore: "没有更多数据了"}) | ||
| 63 | const cardType = ref([{ | ||
| 64 | text: '身份证', | ||
| 65 | value: '0' | ||
| 66 | }, | ||
| 67 | { | ||
| 68 | text: '港澳台通行证 ', | ||
| 69 | value: '1' | ||
| 70 | }, | ||
| 71 | { | ||
| 72 | text: '中国护照', | ||
| 73 | value: '2' | ||
| 74 | }, | ||
| 75 | { | ||
| 76 | text: '外国护照', | ||
| 77 | value: '3' | ||
| 78 | }, | ||
| 79 | { | ||
| 80 | text: '其它', | ||
| 81 | value: '4' | ||
| 82 | }, | ||
| 83 | { | ||
| 84 | text: '户口本', | ||
| 85 | value: '5' | ||
| 86 | } | ||
| 87 | ]) | ||
| 88 | onLoad((option) => { | ||
| 89 | if (option.rangeId) { | ||
| 90 | queryParams.value.paymentRangeId = option.rangeId | ||
| 91 | } | ||
| 92 | getList() | ||
| 93 | }) | ||
| 94 | onShow(() => {}) | ||
| 95 | function clickLoadMore(){ | ||
| 96 | getList() | ||
| 97 | } | ||
| 98 | function search(){ | ||
| 99 | queryParams.value.pageNum = 1 | ||
| 100 | api.selectPageList(queryParams.value).then(res => { | ||
| 101 | studentList.value = res.rows | ||
| 102 | total.value = res.total | ||
| 103 | if(total.value>studentList.value.length){ | ||
| 104 | status.value = 'more' | ||
| 105 | } else { | ||
| 106 | status.value = 'no-more' | ||
| 107 | } | ||
| 108 | uni.hideLoading() | ||
| 109 | }) | ||
| 110 | } | ||
| 111 | function getList() { | ||
| 112 | if(total.value>0&&total.value>studentList.value.length){ | ||
| 113 | uni.showLoading({ | ||
| 114 | title: '加载中', | ||
| 115 | icon: 'none' | ||
| 116 | }) | ||
| 117 | status.value = 'loading' | ||
| 118 | queryParams.value.pageNum += 1 | ||
| 119 | api.selectPageList(queryParams.value).then(res => { | ||
| 120 | studentList.value = _.concat(studentList.value,res.rows) | ||
| 121 | total.value = res.total | ||
| 122 | if(total.value>studentList.value.length){ | ||
| 123 | status.value = 'more' | ||
| 124 | } else { | ||
| 125 | status.value = 'no-more' | ||
| 126 | } | ||
| 127 | uni.hideLoading() | ||
| 128 | }) | ||
| 129 | |||
| 130 | }else if(total.value==0){ | ||
| 131 | search() | ||
| 132 | } | ||
| 133 | } | ||
| 134 | |||
| 135 | function checkThis(n) { | ||
| 136 | if (n.checked) { | ||
| 137 | n.checked = false | ||
| 138 | } else { | ||
| 139 | n.checked = true | ||
| 140 | } | ||
| 141 | } | ||
| 142 | |||
| 143 | function handleImport() { | ||
| 144 | var arr = [] | ||
| 145 | for (var n of studentList.value) { | ||
| 146 | if (n.checked) { | ||
| 147 | arr.push(n.perId) | ||
| 148 | } | ||
| 149 | } | ||
| 150 | api.addInfoModeToRange({ | ||
| 151 | perIds: arr, | ||
| 152 | rangeIdStr: queryParams.value.paymentRangeId || '-1' | ||
| 153 | }).then(res => { | ||
| 154 | var pages = getCurrentPages() | ||
| 155 | var prevPage = pages[pages.length - 2] | ||
| 156 | prevPage.onShow(res.data) | ||
| 157 | uni.navigateBack() | ||
| 158 | }) | ||
| 159 | } | ||
| 160 | |||
| 161 | |||
| 162 | </script> | ||
| 163 | <style scoped lang="scss"> | ||
| 164 | .flexbox { | ||
| 165 | padding: 30rpx 30rpx 0 | ||
| 166 | } | ||
| 167 | |||
| 168 | .danger-button { | ||
| 169 | display: flex; | ||
| 170 | flex-direction: column; | ||
| 171 | align-items: center; | ||
| 172 | justify-content: center; | ||
| 173 | } | ||
| 174 | .userlist{ | ||
| 175 | padding: 0 25rpx; | ||
| 176 | } | ||
| 177 | .searchbar { | ||
| 178 | display: flex; | ||
| 179 | align-items: center; | ||
| 180 | padding: 25rpx; | ||
| 181 | box-sizing: border-box; | ||
| 182 | |||
| 183 | .invertedbtn-red { | ||
| 184 | margin-left: 15rpx; | ||
| 185 | font-size: 30rpx; | ||
| 186 | padding: 16rpx 20rpx; | ||
| 187 | box-sizing: border-box; | ||
| 188 | border-radius: 50rpx; | ||
| 189 | background-color: #fff; | ||
| 190 | } | ||
| 191 | |||
| 192 | :deep(.uni-easyinput .uni-easyinput__content) { | ||
| 193 | border-radius: 35rpx; | ||
| 194 | border: none; | ||
| 195 | height: 70rpx; | ||
| 196 | } | ||
| 197 | |||
| 198 | :deep(.uni-easyinput__content-input) { | ||
| 199 | font-size: 26rpx; | ||
| 200 | } | ||
| 201 | } | ||
| 202 | |||
| 203 | .popBody { | ||
| 204 | background: #fff; | ||
| 205 | padding: 30rpx; | ||
| 206 | } | ||
| 207 | |||
| 208 | .text-center .btn-red-kx { | ||
| 209 | border-radius: 50px; | ||
| 210 | font-size: 28rpx; | ||
| 211 | } | ||
| 212 | :deep(.file-picker__progress) { | ||
| 213 | opacity: 0;background-color: transparent; | ||
| 214 | } | ||
| 215 | </style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -15,20 +15,30 @@ | ... | @@ -15,20 +15,30 @@ |
| 15 | <text v-if="item.payTime">{{item.payTime}} 缴费</text> | 15 | <text v-if="item.payTime">{{item.payTime}} 缴费</text> |
| 16 | <text v-else>{{item.payNoticeSendTime}} 下发</text> | 16 | <text v-else>{{item.payNoticeSendTime}} 下发</text> |
| 17 | </view> | 17 | </view> |
| 18 | <view class="name" @click="goDetail(item)">{{item.finalDocName}}</view> | 18 | <view class="text-primary" @click="goDetail(item)">{{item.wfCode}}</view> |
| 19 | <view class="name mt0" @click="goDetail(item)">{{item.finalDocName}}</view> | ||
| 19 | <view class="flexbox" @click="goDetail(item)"> | 20 | <view class="flexbox" @click="goDetail(item)"> |
| 20 | <view> | 21 | <view> |
| 21 | 人数合计 | 22 | 缴费状态 |
| 22 | <view>{{item.personCount}}</view> | 23 | <view> |
| 23 | </view> | 24 | <text v-if="item.settleFlag == 0" class="text-warning">已结算</text> |
| 24 | <view> | 25 | <text v-if="item.settleFlag == 1 && item.payFlag == 0" class="text-success">已上传</text> |
| 25 | 年限合计 | 26 | <text v-if="item.settleFlag == 1 && item.payFlag == 1" class="text-danger">未上传</text> |
| 26 | <view>{{item.yearCount}}</view> | 27 | </view> |
| 27 | </view> | ||
| 28 | <view> | ||
| 29 | 费用合计 | ||
| 30 | <view>¥{{item.allPrice}}</view> | ||
| 31 | </view> | 28 | </view> |
| 29 | <view> | ||
| 30 | 人数合计 | ||
| 31 | <view>{{item.personCount}}</view> | ||
| 32 | </view> | ||
| 33 | <view> | ||
| 34 | 年限合计 | ||
| 35 | <view>{{item.yearCount}}</view> | ||
| 36 | </view> | ||
| 37 | <view> | ||
| 38 | 费用合计 | ||
| 39 | <view>¥{{item.allPrice}}</view> | ||
| 40 | </view> | ||
| 41 | |||
| 32 | </view> | 42 | </view> |
| 33 | <view class="func"> | 43 | <view class="func"> |
| 34 | <button | 44 | <button | ... | ... |
| ... | @@ -21,7 +21,7 @@ | ... | @@ -21,7 +21,7 @@ |
| 21 | <view class="name">{{n.personName}}<text>({{n.memberInfoName}})</text></view> | 21 | <view class="name">{{n.personName}}<text>({{n.memberInfoName}})</text></view> |
| 22 | <view class="date">原有效期至{{n.originValidityDate?.slice(0,10)||'--'}}</view> | 22 | <view class="date">原有效期至{{n.originValidityDate?.slice(0,10)||'--'}}</view> |
| 23 | </view> | 23 | </view> |
| 24 | <view class="nian"> | 24 | <view class="nian" style="bottom:28rpx"> |
| 25 | ¥{{n.allPrice}} | 25 | ¥{{n.allPrice}} |
| 26 | </view> | 26 | </view> |
| 27 | </view> | 27 | </view> | ... | ... |
| ... | @@ -47,11 +47,7 @@ | ... | @@ -47,11 +47,7 @@ |
| 47 | <uni-icons type="compose" color="#fff" size="20"></uni-icons> | 47 | <uni-icons type="compose" color="#fff" size="20"></uni-icons> |
| 48 | <text class="slot-button-text">编辑</text> | 48 | <text class="slot-button-text">编辑</text> |
| 49 | </view> --> | 49 | </view> --> |
| 50 | <view class="danger-button" v-if="n.certStage==0" @click="handleDelete(n)"> | 50 | <view class="danger-button" @click="handleDelete(n)"> |
| 51 | <uni-icons type="trash" color="#fff" size="20"></uni-icons> | ||
| 52 | <text class="slot-button-text">删除</text> | ||
| 53 | </view> | ||
| 54 | <view class="danger-button" v-else @click="handleDelete(n)" style="opacity: 0.5;"> | ||
| 55 | <uni-icons type="trash" color="#fff" size="20"></uni-icons> | 51 | <uni-icons type="trash" color="#fff" size="20"></uni-icons> |
| 56 | <text class="slot-button-text">删除</text> | 52 | <text class="slot-button-text">删除</text> |
| 57 | </view> | 53 | </view> |
| ... | @@ -141,10 +137,7 @@ | ... | @@ -141,10 +137,7 @@ |
| 141 | }) | 137 | }) |
| 142 | } | 138 | } |
| 143 | 139 | ||
| 144 | function handleDelete(item) { | 140 | function handleDelete(item) { |
| 145 | if(item.certStage!=0){ | ||
| 146 | return | ||
| 147 | } | ||
| 148 | uni.showModal({ | 141 | uni.showModal({ |
| 149 | content: `是否确认删除${item.name}`, | 142 | content: `是否确认删除${item.name}`, |
| 150 | success: function(res) { | 143 | success: function(res) { | ... | ... |
personalVip/mergeVip.vue
0 → 100644
| 1 | <template> | ||
| 2 | <view> | ||
| 3 | <view class="searchbar"> | ||
| 4 | <uni-easyinput placeholderStyle="font-size:30rpx" :input-border="false" prefixIcon="search" | ||
| 5 | v-model="queryParams.code" placeholder="搜索合并单号" @blur="getList" @clear="getList"> | ||
| 6 | </uni-easyinput> | ||
| 7 | <view class="invertedbtn-red" @click="goAdd">+ 新建合并</view> | ||
| 8 | </view> | ||
| 9 | |||
| 10 | <view class="appList"> | ||
| 11 | <view class="appItem" v-for="(item,index) in list" :key="index"> | ||
| 12 | <view class="status" @click="goDetail(item)"> | ||
| 13 | <view> | ||
| 14 | <text v-if="item.status == 0" class="text-warning">待提交</text> | ||
| 15 | <text v-if="item.status == 1" class="text-primary">审核中</text> | ||
| 16 | <text v-if="item.status == 2" class="text-success">审核通过</text> | ||
| 17 | <text v-if="item.status == 3" class="text-danger">审核拒绝</text> | ||
| 18 | <text v-if="item.status == 4" class="text-warning">已撤回</text> | ||
| 19 | </view> | ||
| 20 | </view> | ||
| 21 | |||
| 22 | <view class="name mt0" @click="goDetail(item)"> | ||
| 23 | <text class="text-primary">{{item.code}}</text>-{{item.shenMemName}} | ||
| 24 | </view> | ||
| 25 | <view class="flexbox" @click="goDetail(item)"> | ||
| 26 | <view> | ||
| 27 | 合并人数 | ||
| 28 | <view> | ||
| 29 | <text class="text-danger">{{item.count}}人</text> | ||
| 30 | </view> | ||
| 31 | |||
| 32 | </view> | ||
| 33 | |||
| 34 | <view class="w50"> | ||
| 35 | 提交时间 | ||
| 36 | <view>{{item.commitTime||'--'}}</view> | ||
| 37 | </view> | ||
| 38 | </view> | ||
| 39 | <view class="func" v-if="(item.status==0||item.status==3||item.status==4)"> | ||
| 40 | <button v-if="item.status==0||item.status==4" @click="handleUpdate(item)">编辑</button> | ||
| 41 | <button v-if="item.status==0||item.status==4" @click="commitFN(item)">提交审核</button> | ||
| 42 | <button @click="handleDelete(item)">删除</button> | ||
| 43 | </view> | ||
| 44 | |||
| 45 | </view> | ||
| 46 | </view> | ||
| 47 | |||
| 48 | |||
| 49 | |||
| 50 | <view class="nodata" v-if="list.length==0"> | ||
| 51 | <image mode="aspectFit" src="/static/nodata.png"></image> | ||
| 52 | <text>暂无数据</text> | ||
| 53 | </view> | ||
| 54 | </view> | ||
| 55 | </template> | ||
| 56 | |||
| 57 | <script setup> | ||
| 58 | import * as api from '@/common/api.js' | ||
| 59 | import config from '@/config.js' | ||
| 60 | import { | ||
| 61 | ref | ||
| 62 | } from 'vue' | ||
| 63 | import { | ||
| 64 | onLoad, | ||
| 65 | onShow | ||
| 66 | } from '@dcloudio/uni-app' | ||
| 67 | const app = getApp(); | ||
| 68 | const queryParams = ref({ | ||
| 69 | code:'' | ||
| 70 | }) | ||
| 71 | const list = ref([]) | ||
| 72 | const total = ref(0) | ||
| 73 | onShow(()=>{ | ||
| 74 | getList() | ||
| 75 | }) | ||
| 76 | function goAdd(){ | ||
| 77 | let path = `/personalVip/addMerge` | ||
| 78 | uni.navigateTo({ | ||
| 79 | url: path | ||
| 80 | }); | ||
| 81 | } | ||
| 82 | function getList(){ | ||
| 83 | uni.showLoading({ | ||
| 84 | title:'加载中' | ||
| 85 | }) | ||
| 86 | api.infoMergeRangeList(queryParams.value).then(res=>{ | ||
| 87 | list.value = res.rows | ||
| 88 | total.value = res.total | ||
| 89 | uni.hideLoading() | ||
| 90 | }) | ||
| 91 | } | ||
| 92 | function goDetail(item){ | ||
| 93 | let path = `/personalVip/mergeVipDetail?rangeId=${item.id}` | ||
| 94 | uni.navigateTo({ | ||
| 95 | url: path | ||
| 96 | }); | ||
| 97 | } | ||
| 98 | function handleUpdate(item){ | ||
| 99 | // 编辑 | ||
| 100 | let path = `/personalVip/addMerge?rangeId=${item.id}` | ||
| 101 | uni.navigateTo({ | ||
| 102 | url: path | ||
| 103 | }); | ||
| 104 | } | ||
| 105 | function commitFN(row){ | ||
| 106 | uni.showModal({ | ||
| 107 | title: '提示', | ||
| 108 | content: `确定提交吗`, | ||
| 109 | success: function(res) { | ||
| 110 | if (res.confirm) { | ||
| 111 | api.commitMergeVip(row.id).then(Response=>{ | ||
| 112 | uni.showToast({ | ||
| 113 | icon:"none", | ||
| 114 | title:'提交成功!' | ||
| 115 | }) | ||
| 116 | getList() | ||
| 117 | }) | ||
| 118 | } | ||
| 119 | } | ||
| 120 | }) | ||
| 121 | } | ||
| 122 | function handleDelete(row){ | ||
| 123 | uni.showModal({ | ||
| 124 | title: '提示', | ||
| 125 | content: `确定删除吗`, | ||
| 126 | success: function(res) { | ||
| 127 | if (res.confirm) { | ||
| 128 | api.delPersonalMerge([row.id]).then(Response=>{ | ||
| 129 | uni.showToast({ | ||
| 130 | icon:"none", | ||
| 131 | title:'删除成功!' | ||
| 132 | }) | ||
| 133 | getList() | ||
| 134 | }) | ||
| 135 | } | ||
| 136 | } | ||
| 137 | }) | ||
| 138 | } | ||
| 139 | |||
| 140 | </script> | ||
| 141 | |||
| 142 | <style lang='scss' scoped> | ||
| 143 | .searchbar { | ||
| 144 | display: flex; | ||
| 145 | align-items: center; | ||
| 146 | padding: 25rpx; | ||
| 147 | box-sizing: border-box; | ||
| 148 | |||
| 149 | :deep(.uni-easyinput .uni-easyinput__content) { | ||
| 150 | border-radius: 35rpx; | ||
| 151 | border: none; | ||
| 152 | height: 70rpx; | ||
| 153 | } | ||
| 154 | |||
| 155 | :deep(.uni-easyinput__content-input) { | ||
| 156 | font-size: 26rpx; | ||
| 157 | } | ||
| 158 | |||
| 159 | .invertedbtn-red { | ||
| 160 | border-radius: 50px; | ||
| 161 | background-color: #fff; | ||
| 162 | |||
| 163 | font-size: 30rpx; | ||
| 164 | padding: 10rpx 20rpx; | ||
| 165 | } | ||
| 166 | } | ||
| 167 | |||
| 168 | </style> |
personalVip/mergeVipAudit.vue
0 → 100644
| 1 | <template> | ||
| 2 | <view> | ||
| 3 | <view class="searchbar"> | ||
| 4 | <uni-easyinput placeholderStyle="font-size:30rpx" :input-border="false" prefixIcon="search" | ||
| 5 | v-model="queryParams.code" placeholder="搜索单号" @blur="getList" @clear="getList"> | ||
| 6 | </uni-easyinput> | ||
| 7 | </view> | ||
| 8 | <view class="vipData"> | ||
| 9 | <view>合并人数合计: <text>{{count}}</text>人</view> | ||
| 10 | </view> | ||
| 11 | <view class="appList"> | ||
| 12 | <view class="appItem" v-for="(item,index) in list" :key="index"> | ||
| 13 | <view class="status" @click="goDetail(item)"> | ||
| 14 | <view> | ||
| 15 | <text v-if="item.status == 0" class="text-warning">待提交</text> | ||
| 16 | <text v-if="item.status == 1" class="text-primary">审核中</text> | ||
| 17 | <text v-if="item.status == 2" class="text-success">审核通过</text> | ||
| 18 | <text v-if="item.status == 3" class="text-danger">审核拒绝</text> | ||
| 19 | <text v-if="item.status == 4" class="text-warning">已撤回</text> | ||
| 20 | </view> | ||
| 21 | </view> | ||
| 22 | |||
| 23 | <view class="name mt0" @click="goDetail(item)"> | ||
| 24 | <text class="text-primary">{{item.code}}</text>-{{item.shenMemName}} | ||
| 25 | </view> | ||
| 26 | <view class="flexbox" @click="goDetail(item)"> | ||
| 27 | <view> | ||
| 28 | 合并人数 | ||
| 29 | <view> | ||
| 30 | <text class="text-danger">{{item.count}}人</text> | ||
| 31 | </view> | ||
| 32 | </view> | ||
| 33 | <view class="w50"> | ||
| 34 | 提交时间 | ||
| 35 | <view>{{item.commitTime?.slice(0,10)||'--'}}</view> | ||
| 36 | </view> | ||
| 37 | </view> | ||
| 38 | <view class="func" v-if="item.status==1"> | ||
| 39 | <button @click="audit(item.id,0)">拒绝</button> | ||
| 40 | <button @click="audit(item.id,1)">同意</button> | ||
| 41 | </view> | ||
| 42 | <!-- <view class="func" v-if="item.status==2"> | ||
| 43 | <button @click="handleDelete(item)">撤回</button> | ||
| 44 | </view> --> | ||
| 45 | </view> | ||
| 46 | </view> | ||
| 47 | <view class="nodata" v-if="list.length==0"> | ||
| 48 | <image mode="aspectFit" src="/static/nodata.png"></image> | ||
| 49 | <text>暂无数据</text> | ||
| 50 | </view> | ||
| 51 | </view> | ||
| 52 | </template> | ||
| 53 | |||
| 54 | <script setup> | ||
| 55 | import * as api from '@/common/api.js' | ||
| 56 | import config from '@/config.js' | ||
| 57 | import { | ||
| 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 | code:'', | ||
| 67 | ztxList: '0' | ||
| 68 | }) | ||
| 69 | const list = ref([]) | ||
| 70 | const count = ref(0) | ||
| 71 | const total = ref(0) | ||
| 72 | onShow(()=>{ | ||
| 73 | getList() | ||
| 74 | }) | ||
| 75 | function getList(){ | ||
| 76 | uni.showLoading({ | ||
| 77 | title:'加载中' | ||
| 78 | }) | ||
| 79 | api.infoMergeRangeList(queryParams.value).then(res=>{ | ||
| 80 | list.value = res.rows | ||
| 81 | list.value.forEach(item => { | ||
| 82 | count.value += item.count | ||
| 83 | }) | ||
| 84 | total.value = res.total | ||
| 85 | uni.hideLoading() | ||
| 86 | }) | ||
| 87 | } | ||
| 88 | function goDetail(item){ | ||
| 89 | let path = `/personalVip/mergeVipDetail?rangeId=${item.id}` | ||
| 90 | uni.navigateTo({ | ||
| 91 | url: path | ||
| 92 | }); | ||
| 93 | } | ||
| 94 | function handleDelete(row){ | ||
| 95 | uni.showModal({ | ||
| 96 | title: '提示', | ||
| 97 | content: `确定撤回吗`, | ||
| 98 | success: function(res) { | ||
| 99 | if (res.confirm) { | ||
| 100 | api.personChangeWithDraw([row.id]).then(Response=>{ | ||
| 101 | uni.showToast({ | ||
| 102 | icon:"none", | ||
| 103 | title:'撤回成功!' | ||
| 104 | }) | ||
| 105 | getList() | ||
| 106 | }) | ||
| 107 | } | ||
| 108 | } | ||
| 109 | }) | ||
| 110 | } | ||
| 111 | function audit(id, flag) { | ||
| 112 | if (flag == 0) { | ||
| 113 | // 拒绝 | ||
| 114 | // 弹出框填写理由 | ||
| 115 | uni.showModal({ | ||
| 116 | title: '请输入拒绝理由', | ||
| 117 | editable: true, | ||
| 118 | success: function(res) { | ||
| 119 | if (res.confirm) { | ||
| 120 | if (!res.content) { | ||
| 121 | uni.showToast({ | ||
| 122 | title: '请输入拒绝理由', | ||
| 123 | icon: 'none' | ||
| 124 | }) | ||
| 125 | } else { | ||
| 126 | doApproval(id, flag, res.content) | ||
| 127 | } | ||
| 128 | } | ||
| 129 | } | ||
| 130 | }) | ||
| 131 | } else if (flag == 1) { | ||
| 132 | // 二次确认 | ||
| 133 | uni.showModal({ | ||
| 134 | title: '提示', | ||
| 135 | content: `确定审批通过吗`, | ||
| 136 | success: function(res) { | ||
| 137 | if (res.confirm) { | ||
| 138 | doApproval(id, flag) | ||
| 139 | } | ||
| 140 | } | ||
| 141 | }) | ||
| 142 | } | ||
| 143 | } | ||
| 144 | |||
| 145 | function doApproval(id, flag, reason) { | ||
| 146 | var obj = { | ||
| 147 | flag: flag, | ||
| 148 | reason: reason || '', | ||
| 149 | ids: [id] | ||
| 150 | } | ||
| 151 | console.log(obj) | ||
| 152 | api.mergerVipAudit(obj).then((res) => { | ||
| 153 | uni.showToast({ | ||
| 154 | title: '操作成功', | ||
| 155 | icon: 'none' | ||
| 156 | }) | ||
| 157 | getList() | ||
| 158 | }) | ||
| 159 | } | ||
| 160 | |||
| 161 | </script> | ||
| 162 | |||
| 163 | <style lang='scss' scoped> | ||
| 164 | .searchbar { | ||
| 165 | display: flex; | ||
| 166 | align-items: center; | ||
| 167 | padding: 25rpx; | ||
| 168 | box-sizing: border-box; | ||
| 169 | |||
| 170 | :deep(.uni-easyinput .uni-easyinput__content) { | ||
| 171 | border-radius: 35rpx; | ||
| 172 | border: none; | ||
| 173 | height: 70rpx; | ||
| 174 | } | ||
| 175 | |||
| 176 | :deep(.uni-easyinput__content-input) { | ||
| 177 | font-size: 26rpx; | ||
| 178 | } | ||
| 179 | |||
| 180 | .invertedbtn-red { | ||
| 181 | border-radius: 50px; | ||
| 182 | background-color: #fff; | ||
| 183 | |||
| 184 | font-size: 30rpx; | ||
| 185 | padding: 10rpx 20rpx; | ||
| 186 | } | ||
| 187 | } | ||
| 188 | |||
| 189 | </style> |
personalVip/mergeVipChoseList.vue
0 → 100644
| 1 | <template> | ||
| 2 | <view class="hasfixedbottom"> | ||
| 3 | |||
| 4 | <view class="searchbar"> | ||
| 5 | <uni-easyinput placeholderStyle="font-size:30rpx" :input-border="false" prefixIcon="search" | ||
| 6 | v-model="queryParams.name" placeholder="搜索姓名" @blur="search()" @clear="search()"> | ||
| 7 | </uni-easyinput> | ||
| 8 | </view> | ||
| 9 | <view class="userlist"> | ||
| 10 | <view class="item" v-for=" (n,index) in studentList" :key="index"> | ||
| 11 | <view @click="checkThis(n)"> | ||
| 12 | <image class="icon" v-if="n.checked" | ||
| 13 | :src="config.baseUrl_api+'/fs/static/member/dx_dwn.png'" /> | ||
| 14 | <image class="icon" v-else :src="config.baseUrl_api+'/fs/static/member/dx.png'" /> | ||
| 15 | </view> | ||
| 16 | <view> | ||
| 17 | <view class="name">{{n.name}} <text>{{n.perCode}}</text></view> | ||
| 18 | <view class="date">{{ cardType[n.idcType]?.text }}:{{n.idcCode}}</view> | ||
| 19 | </view> | ||
| 20 | </view> | ||
| 21 | <view class="nodata" v-if="studentList.length==0"> | ||
| 22 | <image mode="aspectFit" src="/static/nodata.png"></image> | ||
| 23 | <text>无可变更会员</text> | ||
| 24 | </view> | ||
| 25 | </view> | ||
| 26 | <uni-load-more @clickLoadMore="clickLoadMore" :contentText="contentText" :status="status"></uni-load-more> | ||
| 27 | |||
| 28 | <view class="fixedBottom" v-if="studentList.length!=0"> | ||
| 29 | <button class="btn-red" @click="handleImport">批量添加</button> | ||
| 30 | </view> | ||
| 31 | |||
| 32 | </view> | ||
| 33 | </template> | ||
| 34 | |||
| 35 | <script setup> | ||
| 36 | import { | ||
| 37 | ref | ||
| 38 | } from 'vue' | ||
| 39 | import { | ||
| 40 | onLoad, | ||
| 41 | onShow | ||
| 42 | } from '@dcloudio/uni-app' | ||
| 43 | import * as api from '@/common/api.js' | ||
| 44 | import _ from 'lodash' | ||
| 45 | import config from '/config.js' | ||
| 46 | const queryParams = ref({ | ||
| 47 | paymentRangeId:-1, | ||
| 48 | multiDeptFlag: 1, | ||
| 49 | perType: 1, | ||
| 50 | pageNum:1, | ||
| 51 | pageSize:10 | ||
| 52 | }) | ||
| 53 | const paging = ref(null) | ||
| 54 | const total = ref(0) | ||
| 55 | const status = ref('no-more') | ||
| 56 | const list = ref([]) | ||
| 57 | const popup = ref(null) | ||
| 58 | const choseStudent = ref(null) | ||
| 59 | const studentList = ref([]) | ||
| 60 | const type = ref('') | ||
| 61 | const form = ref({}) | ||
| 62 | const contentText = ref({contentdown: "点击加载更多",contentrefresh: "正在加载...",contentnomore: "没有更多数据了"}) | ||
| 63 | const cardType = ref([{ | ||
| 64 | text: '身份证', | ||
| 65 | value: '0' | ||
| 66 | }, | ||
| 67 | { | ||
| 68 | text: '港澳台通行证 ', | ||
| 69 | value: '1' | ||
| 70 | }, | ||
| 71 | { | ||
| 72 | text: '中国护照', | ||
| 73 | value: '2' | ||
| 74 | }, | ||
| 75 | { | ||
| 76 | text: '外国护照', | ||
| 77 | value: '3' | ||
| 78 | }, | ||
| 79 | { | ||
| 80 | text: '其它', | ||
| 81 | value: '4' | ||
| 82 | }, | ||
| 83 | { | ||
| 84 | text: '户口本', | ||
| 85 | value: '5' | ||
| 86 | } | ||
| 87 | ]) | ||
| 88 | onLoad((option) => { | ||
| 89 | if (option.rangeId) { | ||
| 90 | queryParams.value.paymentRangeId = option.rangeId | ||
| 91 | } | ||
| 92 | console.log(option.rangeId) | ||
| 93 | getList() | ||
| 94 | }) | ||
| 95 | onShow(() => {}) | ||
| 96 | function clickLoadMore(){ | ||
| 97 | getList() | ||
| 98 | } | ||
| 99 | function search(){ | ||
| 100 | queryParams.value.pageNum = 1 | ||
| 101 | api.selectPageList(queryParams.value).then(res => { | ||
| 102 | studentList.value = res.rows | ||
| 103 | total.value = res.total | ||
| 104 | if(total.value>studentList.value.length){ | ||
| 105 | status.value = 'more' | ||
| 106 | } else { | ||
| 107 | status.value = 'no-more' | ||
| 108 | } | ||
| 109 | uni.hideLoading() | ||
| 110 | }) | ||
| 111 | } | ||
| 112 | function getList() { | ||
| 113 | if(total.value>0&&total.value>studentList.value.length){ | ||
| 114 | uni.showLoading({ | ||
| 115 | title: '加载中', | ||
| 116 | icon: 'none' | ||
| 117 | }) | ||
| 118 | status.value = 'loading' | ||
| 119 | queryParams.value.pageNum += 1 | ||
| 120 | api.selectPageList(queryParams.value).then(res => { | ||
| 121 | studentList.value = _.concat(studentList.value,res.rows) | ||
| 122 | total.value = res.total | ||
| 123 | if(total.value>studentList.value.length){ | ||
| 124 | status.value = 'more' | ||
| 125 | } else { | ||
| 126 | status.value = 'no-more' | ||
| 127 | } | ||
| 128 | uni.hideLoading() | ||
| 129 | }) | ||
| 130 | |||
| 131 | }else if(total.value==0){ | ||
| 132 | search() | ||
| 133 | } | ||
| 134 | } | ||
| 135 | |||
| 136 | function checkThis(n) { | ||
| 137 | if (n.checked) { | ||
| 138 | n.checked = false | ||
| 139 | } else { | ||
| 140 | n.checked = true | ||
| 141 | } | ||
| 142 | } | ||
| 143 | |||
| 144 | function handleImport() { | ||
| 145 | var arr = [] | ||
| 146 | for (var n of studentList.value) { | ||
| 147 | if (n.checked) { | ||
| 148 | arr.push(n.perId) | ||
| 149 | } | ||
| 150 | } | ||
| 151 | api.addMergeToRange({ | ||
| 152 | perIds: arr, | ||
| 153 | rangeIdStr: queryParams.value.paymentRangeId || '-1' | ||
| 154 | }).then(res => { | ||
| 155 | var pages = getCurrentPages() | ||
| 156 | var prevPage = pages[pages.length - 2] | ||
| 157 | prevPage.onShow(res.data) | ||
| 158 | uni.navigateBack() | ||
| 159 | }) | ||
| 160 | } | ||
| 161 | |||
| 162 | |||
| 163 | </script> | ||
| 164 | <style scoped lang="scss"> | ||
| 165 | .flexbox { | ||
| 166 | padding: 30rpx 30rpx 0 | ||
| 167 | } | ||
| 168 | |||
| 169 | .danger-button { | ||
| 170 | display: flex; | ||
| 171 | flex-direction: column; | ||
| 172 | align-items: center; | ||
| 173 | justify-content: center; | ||
| 174 | } | ||
| 175 | .userlist{ | ||
| 176 | padding: 0 25rpx; | ||
| 177 | } | ||
| 178 | .searchbar { | ||
| 179 | display: flex; | ||
| 180 | align-items: center; | ||
| 181 | padding: 25rpx; | ||
| 182 | box-sizing: border-box; | ||
| 183 | |||
| 184 | .invertedbtn-red { | ||
| 185 | margin-left: 15rpx; | ||
| 186 | font-size: 30rpx; | ||
| 187 | padding: 16rpx 20rpx; | ||
| 188 | box-sizing: border-box; | ||
| 189 | border-radius: 50rpx; | ||
| 190 | background-color: #fff; | ||
| 191 | } | ||
| 192 | |||
| 193 | :deep(.uni-easyinput .uni-easyinput__content) { | ||
| 194 | border-radius: 35rpx; | ||
| 195 | border: none; | ||
| 196 | height: 70rpx; | ||
| 197 | } | ||
| 198 | |||
| 199 | :deep(.uni-easyinput__content-input) { | ||
| 200 | font-size: 26rpx; | ||
| 201 | } | ||
| 202 | } | ||
| 203 | |||
| 204 | .popBody { | ||
| 205 | background: #fff; | ||
| 206 | padding: 30rpx; | ||
| 207 | } | ||
| 208 | |||
| 209 | .text-center .btn-red-kx { | ||
| 210 | border-radius: 50px; | ||
| 211 | font-size: 28rpx; | ||
| 212 | } | ||
| 213 | :deep(.file-picker__progress) { | ||
| 214 | opacity: 0;background-color: transparent; | ||
| 215 | } | ||
| 216 | </style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
personalVip/mergeVipDetail.vue
0 → 100644
| 1 | <template> | ||
| 2 | <view> | ||
| 3 | <uni-collapse> | ||
| 4 | <uni-collapse-item :title="n.personInfo?.name" open v-for="n in list" :key="n.id"> | ||
| 5 | <view class="collapseBody"> | ||
| 6 | <!-- n.oldIdcCode --> | ||
| 7 | <view> | ||
| 8 | <label>姓名:</label> | ||
| 9 | {{n.personInfo?.name}} | ||
| 10 | |||
| 11 | <text class="text-danger">{{ n.oldPersonInfo?.name }}</text> | ||
| 12 | </view> | ||
| 13 | <view> | ||
| 14 | <label>会员编号:</label> | ||
| 15 | {{n.personInfo?.perCode}} | ||
| 16 | |||
| 17 | <text class="text-danger">{{ n.oldPersonInfo?.perCode }}</text> | ||
| 18 | </view> | ||
| 19 | <view style="display: flex;"> | ||
| 20 | <label>有效期:</label> | ||
| 21 | <view> | ||
| 22 | <view v-if="n.personInfo?.valiDateTime"> | ||
| 23 | <text v-if="n.personInfo?.beginTime">{{n.personInfo?.beginTime?.slice(0,10)}}</text> | ||
| 24 | <text v-if="n.personInfo?.beginTime">至</text> | ||
| 25 | <text>{{n.personInfo?.valiDateTime?.slice(0,10)}}</text> | ||
| 26 | </view> | ||
| 27 | <view class="text-danger" v-if="n.oldPersonInfo?.valiDateTime"> | ||
| 28 | <text v-if="n.oldPersonInfo?.beginTime">{{ n.oldPersonInfo?.beginTime?.slice(0,10)}}</text> | ||
| 29 | <text v-if="n.oldPersonInfo?.beginTime">至</text> | ||
| 30 | <text v-if="n.oldPersonInfo?.valiDateTime">{{n.oldPersonInfo?.valiDateTime?.slice(0,10)}}</text> | ||
| 31 | </view> | ||
| 32 | <view class="text-danger" v-else>--</view> | ||
| 33 | </view> | ||
| 34 | </view> | ||
| 35 | <view style="display: flex;"> | ||
| 36 | <label>证件号:</label> | ||
| 37 | <view> | ||
| 38 | {{ n.originIdcCode }} | ||
| 39 | <view class="text-danger">{{ n.oldIdcCode }}</view> | ||
| 40 | </view> | ||
| 41 | </view> | ||
| 42 | <view> | ||
| 43 | <label>级位详情:</label> | ||
| 44 | <view v-if="n.personInfo?.jiList.length>0" class="mt10"> | ||
| 45 | <uni-table border stripe> | ||
| 46 | <uni-tr> | ||
| 47 | <uni-th width="50">序号</uni-th> | ||
| 48 | <uni-th >级位</uni-th> | ||
| 49 | <uni-th>证书编号</uni-th> | ||
| 50 | </uni-tr> | ||
| 51 | <uni-tr v-for="(tr,index) in n.personInfo.jiList" :key="index"> | ||
| 52 | <uni-td>{{index+1}}</uni-td> | ||
| 53 | <uni-td>{{szToHz(tr.level)}}级</uni-td> | ||
| 54 | <uni-td>{{tr.certCode}}</uni-td> | ||
| 55 | </uni-tr> | ||
| 56 | </uni-table> | ||
| 57 | </view> | ||
| 58 | <text v-else class="text-primary">无级位记录</text> | ||
| 59 | <view v-if="n.oldPersonInfo?.jiList.length>0" class="mt10"> | ||
| 60 | <uni-table border stripe> | ||
| 61 | <uni-tr> | ||
| 62 | <uni-th width="50"><text class="text-danger">序号</text></uni-th> | ||
| 63 | <uni-th><text class="text-danger">级位</text></uni-th> | ||
| 64 | <uni-th><text class="text-danger">证书编号</text></uni-th> | ||
| 65 | </uni-tr> | ||
| 66 | <uni-tr v-for="(tr,index) in n.oldPersonInfo.jiList" :key="index"> | ||
| 67 | <uni-td>{{index+1}}</uni-td> | ||
| 68 | <uni-td>{{szToHz(tr.level)}}级</uni-td> | ||
| 69 | <uni-td>{{tr.certCode}}</uni-td> | ||
| 70 | </uni-tr> | ||
| 71 | </uni-table> | ||
| 72 | </view> | ||
| 73 | <text v-else class="text-danger">无级位记录</text> | ||
| 74 | |||
| 75 | </view> | ||
| 76 | <view> | ||
| 77 | <label>段位详情:</label> | ||
| 78 | <view v-if="n.personInfo?.duanList.length>0" class="mt10"> | ||
| 79 | <uni-table border stripe> | ||
| 80 | <uni-tr> | ||
| 81 | <uni-th width="50">序号</uni-th> | ||
| 82 | <uni-th>段位</uni-th> | ||
| 83 | <uni-th>证书编号</uni-th> | ||
| 84 | </uni-tr> | ||
| 85 | <uni-tr v-for="(tr,index) in n.personInfo.duanList" :key="index"> | ||
| 86 | <uni-td>{{index+1}}</uni-td> | ||
| 87 | <uni-td>{{szToHz(tr.level)}}段</uni-td> | ||
| 88 | <uni-td>{{tr.certCode}}</uni-td> | ||
| 89 | </uni-tr> | ||
| 90 | </uni-table> | ||
| 91 | </view> | ||
| 92 | <text v-else class="text-primary">无段位记录</text> | ||
| 93 | <view v-if="n.oldPersonInfo?.duanList.length>0" class="mt10"> | ||
| 94 | <uni-table border stripe> | ||
| 95 | <uni-tr> | ||
| 96 | <uni-th width="50"><text class="text-danger">序号</text></uni-th> | ||
| 97 | <uni-th><text class="text-danger">段位</text></uni-th> | ||
| 98 | <uni-th><text class="text-danger">证书编号</text></uni-th> | ||
| 99 | </uni-tr> | ||
| 100 | <uni-tr v-for="(tr,index) in n.oldPersonInfo.duanList" :key="index"> | ||
| 101 | <uni-td>{{index+1}}</uni-td> | ||
| 102 | <uni-td>{{szToHz(tr.level)}}段</uni-td> | ||
| 103 | <uni-td>{{tr.certCode}}</uni-td> | ||
| 104 | </uni-tr> | ||
| 105 | </uni-table> | ||
| 106 | </view> | ||
| 107 | <text v-else class="text-danger">无段位记录</text> | ||
| 108 | </view> | ||
| 109 | <view v-if="n.fileUrl"> | ||
| 110 | <label>证明材料:</label> | ||
| 111 | <text class="text-primary" @click="showImg(n)"> | ||
| 112 | 下载 | ||
| 113 | </text> | ||
| 114 | </view> | ||
| 115 | </view> | ||
| 116 | |||
| 117 | </uni-collapse-item> | ||
| 118 | </uni-collapse> | ||
| 119 | |||
| 120 | </view> | ||
| 121 | </template> | ||
| 122 | |||
| 123 | <script setup> | ||
| 124 | import { | ||
| 125 | ref | ||
| 126 | } from 'vue' | ||
| 127 | import { | ||
| 128 | onLoad | ||
| 129 | } from '@dcloudio/uni-app' | ||
| 130 | import * as api from '@/common/api.js' | ||
| 131 | import { | ||
| 132 | szToHz | ||
| 133 | } from '@/common/utils.js' | ||
| 134 | import config from '@/config.js' | ||
| 135 | const queryParams = ref({}) | ||
| 136 | const total = ref(0) | ||
| 137 | const list = ref([]) | ||
| 138 | const popup = ref(null) | ||
| 139 | const type = ref('') | ||
| 140 | const form = ref({}) | ||
| 141 | onLoad((option) => { | ||
| 142 | if (option.rangeId) { | ||
| 143 | queryParams.value.rangeId = option.rangeId | ||
| 144 | getList() | ||
| 145 | } | ||
| 146 | }) | ||
| 147 | |||
| 148 | function getList() { | ||
| 149 | uni.showLoading({ | ||
| 150 | title: '加载中' | ||
| 151 | }) | ||
| 152 | api.infoMergeList(queryParams.value).then(res => { | ||
| 153 | list.value = res.rows | ||
| 154 | list.value.forEach(item => { | ||
| 155 | item.fileUrl = JSON.parse(item.fileUrl) | ||
| 156 | }) | ||
| 157 | total.value = res.total | ||
| 158 | uni.hideLoading() | ||
| 159 | }) | ||
| 160 | } | ||
| 161 | |||
| 162 | function handleChange(a, b) { | ||
| 163 | type.value = b | ||
| 164 | form.value = a | ||
| 165 | console.log(form.value.newName) | ||
| 166 | popup.value.open() | ||
| 167 | } | ||
| 168 | |||
| 169 | function handleDelete(row) { | ||
| 170 | uni.showModal({ | ||
| 171 | content: `确认删除会员${row.newName}`, | ||
| 172 | success: function(res) { | ||
| 173 | if (res.confirm) { | ||
| 174 | api.infoMod([row.id]).then(res => { | ||
| 175 | uni.showToast({ | ||
| 176 | title: '操作成功' | ||
| 177 | }) | ||
| 178 | getList() | ||
| 179 | }) | ||
| 180 | } | ||
| 181 | } | ||
| 182 | }) | ||
| 183 | } | ||
| 184 | |||
| 185 | function showImg(n) { | ||
| 186 | var str = config.baseUrl_api + n.fileUrl[0]?.url | ||
| 187 | if (n.fileUrl[0]?.url.indexOf('png') > -1 || n.fileUrl[0]?.url.indexOf('jpg') > -1 || n.fileUrl[0]?.url.indexOf( | ||
| 188 | 'jpeg') > -1) { | ||
| 189 | uni.previewImage({ | ||
| 190 | urls: [str], | ||
| 191 | success: function(res) { | ||
| 192 | console.log('success', res) | ||
| 193 | }, | ||
| 194 | fail: function(res) { | ||
| 195 | console.log('fail', res) | ||
| 196 | }, | ||
| 197 | complete: function(res) { | ||
| 198 | console.log('complete', res) | ||
| 199 | } | ||
| 200 | }) | ||
| 201 | } else { | ||
| 202 | goWebView(str) | ||
| 203 | } | ||
| 204 | } | ||
| 205 | |||
| 206 | function goWebView(url) { | ||
| 207 | url = url.replace("http://", "https://") | ||
| 208 | uni.showLoading({ | ||
| 209 | title: '下载中' | ||
| 210 | }); | ||
| 211 | uni.downloadFile({ | ||
| 212 | url: url, | ||
| 213 | success: function(res) { | ||
| 214 | uni.hideLoading(); | ||
| 215 | var filePath = res.tempFilePath; | ||
| 216 | uni.showLoading({ | ||
| 217 | title: '正在打开' | ||
| 218 | }); | ||
| 219 | uni.openDocument({ | ||
| 220 | filePath: filePath, | ||
| 221 | showMenu: true, | ||
| 222 | success: function(res) { | ||
| 223 | uni.hideLoading(); | ||
| 224 | }, | ||
| 225 | fail: function(err) { | ||
| 226 | uni.hideLoading(); | ||
| 227 | uni.showToast({ | ||
| 228 | title: err, | ||
| 229 | icon: 'none', | ||
| 230 | duration: 2000 | ||
| 231 | }); | ||
| 232 | } | ||
| 233 | }); | ||
| 234 | }, | ||
| 235 | fail: function(error) { | ||
| 236 | uni.hideLoading(); | ||
| 237 | uni.showToast({ | ||
| 238 | title: `下载失败`, | ||
| 239 | icon: 'none', | ||
| 240 | duration: 2000 | ||
| 241 | }); | ||
| 242 | } | ||
| 243 | }); | ||
| 244 | } | ||
| 245 | </script> | ||
| 246 | <style scoped lang="scss"> | ||
| 247 | .flexbox { | ||
| 248 | padding: 30rpx 30rpx 0 | ||
| 249 | } | ||
| 250 | |||
| 251 | .danger-button { | ||
| 252 | display: flex; | ||
| 253 | flex-direction: column; | ||
| 254 | align-items: center; | ||
| 255 | justify-content: center; | ||
| 256 | } | ||
| 257 | |||
| 258 | .collapseBody { | ||
| 259 | background: #fff; | ||
| 260 | padding:0 30rpx; | ||
| 261 | box-sizing: border-box; | ||
| 262 | font-size: 28rpx; | ||
| 263 | |||
| 264 | view { | ||
| 265 | margin: 0 0 20rpx; | ||
| 266 | |||
| 267 | label { | ||
| 268 | width: 5em; | ||
| 269 | color: #999; | ||
| 270 | display: inline-block; | ||
| 271 | text-align: right; | ||
| 272 | } | ||
| 273 | } | ||
| 274 | } | ||
| 275 | |||
| 276 | .popBody { | ||
| 277 | background: #fff; | ||
| 278 | padding: 30rpx; | ||
| 279 | } | ||
| 280 | </style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -22,7 +22,7 @@ | ... | @@ -22,7 +22,7 @@ |
| 22 | </view> | 22 | </view> |
| 23 | 23 | ||
| 24 | <view v-if="deptType == 2 || deptType == 3"> | 24 | <view v-if="deptType == 2 || deptType == 3"> |
| 25 | <text v-if="item.shenRes == 0">审核中</text> | 25 | <text v-if="item.shenRes == 0" class="text-primary">审核中</text> |
| 26 | <text v-if="item.shenRes == 1" class="text-success">审核通过</text> | 26 | <text v-if="item.shenRes == 1" class="text-success">审核通过</text> |
| 27 | <text v-if="item.shenRes == 2" class="text-danger">审核拒绝</text> | 27 | <text v-if="item.shenRes == 2" class="text-danger">审核拒绝</text> |
| 28 | <text v-if="item.shenRes == 3" class="text-warning">撤销申请</text> | 28 | <text v-if="item.shenRes == 3" class="text-warning">撤销申请</text> |
| ... | @@ -30,7 +30,7 @@ | ... | @@ -30,7 +30,7 @@ |
| 30 | 30 | ||
| 31 | <view v-if="deptType == 6"> | 31 | <view v-if="deptType == 6"> |
| 32 | <text v-if="item.status == 0">待提交</text> | 32 | <text v-if="item.status == 0">待提交</text> |
| 33 | <text v-if="item.status == 1">审核中</text> | 33 | <text v-if="item.status == 1" class="text-primary">审核中</text> |
| 34 | <text v-if="item.status == 2" class="text-warning">审核拒绝</text> | 34 | <text v-if="item.status == 2" class="text-warning">审核拒绝</text> |
| 35 | <text v-if="item.status == 3" class="text-success">审核通过</text> | 35 | <text v-if="item.status == 3" class="text-success">审核通过</text> |
| 36 | <text v-if="item.status == 4" class="text-danger">已撤回</text> | 36 | <text v-if="item.status == 4" class="text-danger">已撤回</text> |
| ... | @@ -40,10 +40,12 @@ | ... | @@ -40,10 +40,12 @@ |
| 40 | <view class="name mt0" @click="goDetail(item)"> | 40 | <view class="name mt0" @click="goDetail(item)"> |
| 41 | {{item.name}} | 41 | {{item.name}} |
| 42 | </view> | 42 | </view> |
| 43 | <view class="pp" v-if="deptType == 1 || deptType == 2 || deptType == 3"> | 43 | <view class="flexbox" @click="goDetail(item)" v-if="deptType == 1 || deptType == 2 || deptType == 3"> |
| 44 | 申请调入单位: {{item.targetDeptName}} | 44 | <view class="w50"> |
| 45 | </view> | 45 | 申请调入单位 |
| 46 | <view class="flexbox" @click="goDetail(item)"> | 46 | <view><text>{{item.targetDeptName}}</text></view> |
| 47 | </view> | ||
| 48 | <!-- | ||
| 47 | <view> | 49 | <view> |
| 48 | 调动类型 | 50 | 调动类型 |
| 49 | <view v-if="item.type == 1"> | 51 | <view v-if="item.type == 1"> |
| ... | @@ -52,13 +54,17 @@ | ... | @@ -52,13 +54,17 @@ |
| 52 | <view v-else> | 54 | <view v-else> |
| 53 | <text class="text-primary">省内调动</text> | 55 | <text class="text-primary">省内调动</text> |
| 54 | </view> | 56 | </view> |
| 55 | </view> | 57 | </view> --> |
| 56 | 58 | ||
| 57 | <view class="w50"> | 59 | <view class="w50"> |
| 58 | 会员合计 | 60 | 会员合计 |
| 59 | <view>{{item.personCount}}</view> | 61 | <view>{{item.personCount}}</view> |
| 60 | </view> | 62 | </view> |
| 61 | </view> | 63 | </view> |
| 64 | <view v-else class="pp"> | ||
| 65 | 会员合计: | ||
| 66 | <text class="text-primary">{{item.personCount}}</text> | ||
| 67 | </view> | ||
| 62 | <view class="func" | 68 | <view class="func" |
| 63 | v-if="(deptType == 1&&item.ztxRes == 0)||((deptType == 2 || deptType == 3)&&item.shenRes == 0)"> | 69 | v-if="(deptType == 1&&item.ztxRes == 0)||((deptType == 2 || deptType == 3)&&item.shenRes == 0)"> |
| 64 | <button @click="audit(item.id,'2')">拒绝</button> | 70 | <button @click="audit(item.id,'2')">拒绝</button> | ... | ... |
| ... | @@ -23,7 +23,8 @@ | ... | @@ -23,7 +23,8 @@ |
| 23 | <uni-icons type="calendar-filled" size="16" color="#AD181F"></uni-icons> | 23 | <uni-icons type="calendar-filled" size="16" color="#AD181F"></uni-icons> |
| 24 | {{item.commitTime}} 提交 | 24 | {{item.commitTime}} 提交 |
| 25 | </view> | 25 | </view> |
| 26 | <view class="name" @click="goDetail(item)">{{item.paymentName}}</view> | 26 | <view class="text-primary" v-if="item.wfCode">{{item.wfCode}}</view> |
| 27 | <view class="date" @click="goDetail(item)">{{item.paymentName}}</view> | ||
| 27 | <view class="flexbox" @click="goDetail(item)"> | 28 | <view class="flexbox" @click="goDetail(item)"> |
| 28 | <view> | 29 | <view> |
| 29 | 人数合计 | 30 | 人数合计 | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <view class="text-center"> | 2 | <view class="text-center whitebg"> |
| 3 | <view class="cardNav"> | 3 | <view class="cardNav"> |
| 4 | <view @click="goBack">会员审核</view> | 4 | <view @click="goBack">审核</view> |
| 5 | <view class="active">审核合并</view> | 5 | <view class="active">合并</view> |
| 6 | <view @click="goMergeUp">合并提交</view> | 6 | <view @click="goMergeUp">提交</view> |
| 7 | </view> | 7 | </view> |
| 8 | </view> | 8 | </view> |
| 9 | <view class="hasfixedbottom"> | 9 | <view class="hasfixedbottom"> |
| ... | @@ -35,6 +35,7 @@ | ... | @@ -35,6 +35,7 @@ |
| 35 | </view> | 35 | </view> |
| 36 | 36 | ||
| 37 | <view class="date" v-if="item.content.commitTime">提交日期:{{item.content.commitTime}}</view> | 37 | <view class="date" v-if="item.content.commitTime">提交日期:{{item.content.commitTime}}</view> |
| 38 | <view class="text-primary" v-if="item.content?.wfCode" @click="goDetail(item)">{{item.content?.wfCode}}</view> | ||
| 38 | <view class="name" @click="goDetail(item)">{{item.content.name}}</view> | 39 | <view class="name" @click="goDetail(item)">{{item.content.name}}</view> |
| 39 | <view class="flexbox" @click="goDetail(item)"> | 40 | <view class="flexbox" @click="goDetail(item)"> |
| 40 | <view> | 41 | <view> |
| ... | @@ -209,7 +210,7 @@ | ... | @@ -209,7 +210,7 @@ |
| 209 | 210 | ||
| 210 | } | 211 | } |
| 211 | function goBack() { | 212 | function goBack() { |
| 212 | let path = `/personalVip/sheng/merge` | 213 | let path = `/personalVip/audit` |
| 213 | uni.redirectTo({ | 214 | uni.redirectTo({ |
| 214 | url: path | 215 | url: path |
| 215 | }); | 216 | }); | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <view> | 2 | <view> |
| 3 | <view class="text-center"> | 3 | <view class="text-center whitebg"> |
| 4 | <view class="cardNav"> | 4 | <view class="cardNav"> |
| 5 | <view @click="goAudit">会员审核</view> | 5 | <view @click="goAudit">审核</view> |
| 6 | <view @click="goMerge">审核合并</view> | 6 | <view @click="goMerge">合并</view> |
| 7 | <view class="active">合并提交</view> | 7 | <view class="active">提交</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 class="whitebg" :current="current" :values="navs" @clickItem="onClickItem" |
| ... | @@ -28,8 +28,9 @@ | ... | @@ -28,8 +28,9 @@ |
| 28 | {{ item.auditStatus=='100'?'待提交':statusArr[item.status] }} | 28 | {{ item.auditStatus=='100'?'待提交':statusArr[item.status] }} |
| 29 | </view> | 29 | </view> |
| 30 | </view> | 30 | </view> |
| 31 | <view class="date" v-if="item.content.commitTime">{{item.content.commitTime}}</view> | 31 | <view class="date" v-if="item.content?.commitTime">{{item.content.commitTime}}</view> |
| 32 | <view class="name" @click="goDetail(item)">{{item.content.name}}</view> | 32 | <view class="text-primary" v-if="item.content?.wfCode" @click="goDetail(item)">{{item.content?.wfCode}}</view> |
| 33 | <view class="name" style="width: 100%;" @click="goDetail(item)">{{item.content?.name}}</view> | ||
| 33 | <view class="flexbox" @click="goDetail(item)"> | 34 | <view class="flexbox" @click="goDetail(item)"> |
| 34 | <view> | 35 | <view> |
| 35 | 人数合计 | 36 | 人数合计 | ... | ... |
static/user_icon01.png
0 → 100644
623 Bytes
static/user_icon02.png
0 → 100644
2.06 KB
static/user_icon03.png
0 → 100644
1.68 KB
This diff is collapsed.
Click to expand it.
| 1 | { | 1 | { |
| 2 | "id": "uni-data-select", | 2 | "id": "uni-data-select", |
| 3 | "displayName": "uni-data-select 下拉框选择器", | 3 | "displayName": "uni-data-select 下拉框选择器", |
| 4 | "version": "1.0.5", | 4 | "version": "1.0.6", |
| 5 | "description": "通过数据驱动的下拉框选择器", | 5 | "description": "通过数据驱动的下拉框选择器", |
| 6 | "keywords": [ | 6 | "keywords": [ |
| 7 | "uni-ui", | 7 | "uni-ui", |
| 8 | "select", | 8 | "select", |
| 9 | "uni-data-select", | 9 | "uni-data-select", |
| 10 | "下拉框", | 10 | "下拉框", |
| 11 | "下拉选" | 11 | "下拉选" |
| 12 | ], | 12 | ], |
| 13 | "repository": "https://github.com/dcloudio/uni-ui", | 13 | "repository": "https://github.com/dcloudio/uni-ui", |
| 14 | "engines": { | 14 | "engines": { |
| 15 | "HBuilderX": "^3.1.1" | 15 | "HBuilderX": "^3.1.1" |
| 16 | }, | 16 | }, |
| 17 | "directories": { | 17 | "directories": { |
| 18 | "example": "../../temps/example_temps" | 18 | "example": "../../temps/example_temps" |
| 19 | }, | 19 | }, |
| 20 | "dcloudext": { | 20 | "dcloudext": { |
| 21 | "sale": { | 21 | "sale": { |
| 22 | "regular": { | 22 | "regular": { |
| 23 | "price": "0.00" | 23 | "price": "0.00" |
| 24 | }, | 24 | }, |
| 25 | "sourcecode": { | 25 | "sourcecode": { |
| 26 | "price": "0.00" | 26 | "price": "0.00" |
| 27 | } | 27 | } |
| 28 | }, | 28 | }, |
| 29 | "contact": { | 29 | "contact": { |
| 30 | "qq": "" | 30 | "qq": "" |
| 31 | }, | 31 | }, |
| 32 | "declaration": { | 32 | "declaration": { |
| 33 | "ads": "无", | 33 | "ads": "无", |
| 34 | "data": "无", | 34 | "data": "无", |
| 35 | "permissions": "无" | 35 | "permissions": "无" |
| 36 | }, | 36 | }, |
| 37 | "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", | 37 | "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", |
| 38 | "type": "component-vue" | 38 | "type": "component-vue" |
| 39 | }, | 39 | }, |
| 40 | "uni_modules": { | 40 | "uni_modules": { |
| 41 | "dependencies": ["uni-load-more"], | 41 | "dependencies": ["uni-load-more"], |
| 42 | "encrypt": [], | 42 | "encrypt": [], |
| 43 | "platforms": { | 43 | "platforms": { |
| 44 | "cloud": { | 44 | "cloud": { |
| 45 | "tcb": "y", | 45 | "tcb": "y", |
| 46 | "aliyun": "y" | 46 | "aliyun": "y" |
| 47 | }, | 47 | }, |
| 48 | "client": { | 48 | "client": { |
| 49 | "App": { | 49 | "App": { |
| 50 | "app-vue": "u", | 50 | "app-vue": "u", |
| 51 | "app-nvue": "n" | 51 | "app-nvue": "n" |
| 52 | }, | 52 | }, |
| 53 | "H5-mobile": { | 53 | "H5-mobile": { |
| 54 | "Safari": "y", | 54 | "Safari": "y", |
| 55 | "Android Browser": "y", | 55 | "Android Browser": "y", |
| 56 | "微信浏览器(Android)": "y", | 56 | "微信浏览器(Android)": "y", |
| 57 | "QQ浏览器(Android)": "y" | 57 | "QQ浏览器(Android)": "y" |
| 58 | }, | 58 | }, |
| 59 | "H5-pc": { | 59 | "H5-pc": { |
| 60 | "Chrome": "y", | 60 | "Chrome": "y", |
| 61 | "IE": "y", | 61 | "IE": "y", |
| 62 | "Edge": "y", | 62 | "Edge": "y", |
| 63 | "Firefox": "y", | 63 | "Firefox": "y", |
| 64 | "Safari": "y" | 64 | "Safari": "y" |
| 65 | }, | 65 | }, |
| 66 | "小程序": { | 66 | "小程序": { |
| 67 | "微信": "y", | 67 | "微信": "y", |
| 68 | "阿里": "u", | 68 | "阿里": "u", |
| 69 | "百度": "u", | 69 | "百度": "u", |
| 70 | "字节跳动": "u", | 70 | "字节跳动": "u", |
| 71 | "QQ": "u", | 71 | "QQ": "u", |
| 72 | "京东": "u" | 72 | "京东": "u" |
| 73 | }, | 73 | }, |
| 74 | "快应用": { | 74 | "快应用": { |
| 75 | "华为": "u", | 75 | "华为": "u", |
| 76 | "联盟": "u" | 76 | "联盟": "u" |
| 77 | }, | 77 | }, |
| 78 | "Vue": { | 78 | "Vue": { |
| 79 | "vue2": "y", | 79 | "vue2": "y", |
| 80 | "vue3": "y" | 80 | "vue3": "y" |
| 81 | } | 81 | } |
| 82 | } | 82 | } |
| 83 | } | 83 | } |
| 84 | } | 84 | } |
| 85 | } | 85 | } | ... | ... |
| 1 | { | 1 | { |
| 2 | "uni-load-more.contentdown": "Pull up to show more", | 2 | "uni-load-more.contentdown": "Pull up to show more", |
| 3 | "uni-load-more.contentrefresh": "loading...", | 3 | "uni-load-more.contentrefresh": "loading...", |
| 4 | "uni-load-more.contentnomore": "No more data" | 4 | "uni-load-more.contentnomore": "No more data" | ... | ... |
| 1 | import en from './en.json' | 1 | import en from './en.json' |
| 2 | import zhHans from './zh-Hans.json' | 2 | import zhHans from './zh-Hans.json' |
| 3 | import zhHant from './zh-Hant.json' | 3 | import zhHant from './zh-Hant.json' |
| 4 | export default { | 4 | export default { |
| 5 | en, | 5 | en, |
| 6 | 'zh-Hans': zhHans, | 6 | 'zh-Hans': zhHans, |
| 7 | 'zh-Hant': zhHant | 7 | 'zh-Hant': zhHant |
| 8 | } | 8 | } | ... | ... |
This diff is collapsed.
Click to expand it.
-
Please register or sign in to post a comment