9a662d55 by 杨炀

fixed: 36版本

1.小程序登录的时候如果手机号或者账号错误的时候,没提示
2.小程序在个人中心编辑的时候,不能保存
1 parent d3376bed
......@@ -11,6 +11,14 @@ export function active(data) {
params: data
})
}
export function commitPaymentVoucherYJ(data) {
return request({
url: '/person/paymentDocYj/commitPaymentVoucher',
method: 'post',
params: data
})
}
export function editMyMemberCertifiedInfo(data) {
return request({
url: '/system/dept/editMyMemberCertifiedInfo',
......
......@@ -71,6 +71,10 @@ function loginByPhone(phonenumber, code) {
method: 'post',
params: data
}).then((res) => {
uni.showToast({
title: res.msg,
icon: 'none'
})
uni.setStorageSync('token', 'Bearer ' + res.data.token)
}).then(getInfo)
}
......
......@@ -26,11 +26,14 @@
</view>
<view class="date">
<uni-icons type="calendar-filled" size="16" color="#AD181F"></uni-icons>
{{item.content.commitTime}} 提交</view>
<view class="text-primary" @click="goDetail(item)" v-if="item.content?.wfCode">{{item.content?.wfCode}}</view>
{{item.content.commitTime}} 提交
</view>
<view class="text-primary" @click="goDetail(item)" v-if="item.content?.wfCode">{{item.content?.wfCode}}
</view>
<view class="name w100 mt0" @click="goDetail(item)">
<!-- <text class="dot"></text> -->
{{item.content.certName}}</view>
{{item.content.certName}}
</view>
<view class="flexbox" @click="goDetail(item)">
<view v-if="userType == '3'">
所属省份
......@@ -44,19 +47,29 @@
所属二级
<view>{{item.content.secondDeptName}}</view>
</view>
<view>
年限
<view>{{item.content.renewYear}}</view>
</view>
<view v-if="deptType == 1">
会员/新会员
<view>{{item.content.allCount}}/<text class="text-danger">{{item.content.newCount}}</text>
会员/新会员/年限
<view>{{item.content.allCount}}/<text
class="text-danger">{{item.content.newCount}}</text>/{{item.content.renewYear}}
</view>
</view>
<view v-else>
年限
<view>{{item.content.renewYear}}</view>
</view>
<view v-if="deptType == 1">
费用合计
<view> ¥{{ (item?.content?.allFee*1).toFixed(2) }}</view>
</view>
<view v-if="deptType == 1" @click.stop="viewSettleFile(item.doc)">
缴费状态
<view>
<text v-if="item.doc?.settleFlag==0" class="text-warning">已结算</text>
<text v-if="item.doc?.settleFlag==1&&item.doc.payFlag==0" class="text-success">已上传</text>
<text v-if="item.doc?.settleFlag==1&&item.doc.payFlag==1" class="text-danger">未上传</text>
</view>
</view>
</view>
<view class="func" v-if="(userType == '1'&&item.auditStatus == 0)">
<button @click="audit(item.recordId,'0')">拒绝</button>
......@@ -69,7 +82,8 @@
<!-- 市 -->
<view class="func" v-if="userType == '3'">
<button @click="goGroupInfo(item)">机构资料</button>
<button v-if="item.auditStatus == 1&&item.isView==1&&item.content.allCount > 0" @click="sendBack(item)">撤回</button>
<button v-if="item.auditStatus == 1&&item.isView==1&&item.content.allCount > 0"
@click="sendBack(item)">撤回</button>
<button v-if="item.auditStatus == 0" @click="audit(item.recordId,'0')">拒绝</button>
<button v-if="item.auditStatus == 0" @click="audit(item.recordId,'1')">同意</button>
......@@ -95,29 +109,29 @@
</template>
<script setup>
import * as api from '@/common/api.js'
import config from '@/config.js'
import {
import * as api from '@/common/api.js'
import config from '@/config.js'
import {
onMounted,
ref
} from 'vue'
import {
} from 'vue'
import {
onLoad
} from '@dcloudio/uni-app'
const app = getApp();
const queryParams = ref({
} from '@dcloudio/uni-app'
const app = getApp();
const queryParams = ref({
// pageNum: 1,
// pageSize: 10
auditStatus: '0'
})
const navs = ref(['审核中', '审核通过', '审核拒绝', '撤回'])
const current = ref()
const list = ref([])
const total = ref(0)
const deptType = ref('')
const userType = ref('')
const totalCost = ref(0)
onLoad(() => {
})
const navs = ref(['审核中', '审核通过', '审核拒绝', '撤回'])
const current = ref()
const list = ref([])
const total = ref(0)
const deptType = ref('')
const userType = ref('')
const totalCost = ref(0)
onLoad(() => {
if (app.globalData.isLogin) {
init()
} else {
......@@ -126,22 +140,22 @@ onLoad(() => {
init()
};
}
})
})
function init() {
function init() {
deptType.value = app.globalData.deptType
userType.value = app.globalData.userType
// console.log(userType.value)
getList()
}
}
function onClickItem(e) {
function onClickItem(e) {
console.log(e)
queryParams.value.auditStatus = e.currentIndex
getList()
}
}
function getList() {
function getList() {
uni.showLoading({
title: '加载中'
})
......@@ -159,14 +173,16 @@ function getList() {
list.value = res.rows
list.value.forEach(item => {
item.content = JSON.parse(item.content)
// item.doc = JSON.parse(item.doc)
if(item.doc){
item.doc = JSON.parse(item.doc)
}
totalCost.value = totalCost.value + (item.content.allFee * 1)
})
total.value = res.total
})
}
}
function audit(recordId, flag) {
function audit(recordId, flag) {
if (flag == '0') {
// 拒绝
// 弹出框填写理由
......@@ -198,9 +214,9 @@ function audit(recordId, flag) {
}
})
}
}
}
function doApproval(recordId, flag, reason) {
function doApproval(recordId, flag, reason) {
var obj = {
flag: flag,
reason: reason || '',
......@@ -215,9 +231,9 @@ function doApproval(recordId, flag, reason) {
})
getList()
})
}
}
function goDetail(item) {
function goDetail(item) {
const auditLog = encodeURIComponent(JSON.stringify(item.auditLog))
const form = encodeURIComponent(JSON.stringify(item))
......@@ -234,23 +250,23 @@ function goDetail(item) {
url: path
});
}
}
}
function goMerge() {
function goMerge() {
let path = `/group/apply/merge`
uni.redirectTo({
url: path
});
}
}
function goMergeUp() {
function goMergeUp() {
let path = `/group/apply/mergeUp`
uni.redirectTo({
url: path
});
}
}
function sendBack(row) {
function sendBack(row) {
uni.showModal({
title: '提示',
content: `确定撤回${row.content.certName}吗`,
......@@ -270,13 +286,86 @@ function sendBack(row) {
}
}
})
}
}
function goGroupInfo(row){
function goGroupInfo(row) {
uni.navigateTo({
url: `/group/groupInfo?memId=${row.content?.memId}`
})
}
function viewSettleFile(doc){
let url
if(doc.payEvidence){
url = JSON.parse(doc.payEvidence)[0].url || null
console.log(url)
if(url){showImg(url)}
}
}
function showImg(n) {
var str = ''
if(n.indexOf('http')==-1){
str = config.baseUrl_api + n
} else {
str = n
}
if (n.indexOf('png') > -1 || n.indexOf('jpg') > -1 || n.indexOf(
'jpeg') > -1) {
uni.previewImage({
urls: [str],
success: function(res) {
console.log('success', res)
},
fail: function(res) {
console.log('fail', res)
},
complete: function(res) {
console.log('complete', res)
}
})
} else {
goWebView(str)
}
}
function goWebView(url) {
url = url.replace("http://", "https://")
uni.showLoading({
title: '下载中'
});
uni.downloadFile({
url: url,
success: function(res) {
uni.hideLoading();
var filePath = res.tempFilePath;
uni.showLoading({
title: '正在打开'
});
uni.openDocument({
filePath: filePath,
showMenu: true,
success: function(res) {
uni.hideLoading();
},
fail: function(err) {
uni.hideLoading();
uni.showToast({
title: err,
icon: 'none',
duration: 2000
});
}
});
},
fail: function(error) {
uni.hideLoading();
uni.showToast({
title: `下载失败`,
icon: 'none',
duration: 2000
});
}
});
}
</script>
<style scoped>
......
......@@ -163,14 +163,12 @@
return
}
pcLogin(form.value)
.then((res) => {
pcLogin(form.value).then((res) => {
app.globalData.isLogin = true
uni.redirectTo({
url: '/pages/index/index'
})
})
.catch(getCode)
} else if (isActive.value == 1) {
if (!form2.value.telNo) {
uni.showToast({
......@@ -179,6 +177,15 @@
})
return
}
var pattern = /^1[3456789]\d{9}$/;
if (!pattern.test(form2.value.telNo)) {
uni.showToast({
title: '请输入正确的手机号',
duration: 2000,
icon: 'none'
})
return
}
if (!form2.value.code) {
uni.showToast({
title: '短信验证码不能为空',
......@@ -222,6 +229,15 @@
})
return
}
var pattern = /^1[3456789]\d{9}$/;
if (!pattern.test(form2.value.telNo)) {
uni.showToast({
title: '请输入正确的手机号',
duration: 2000,
icon: 'none'
})
return
}
if (!form2.value.captcha) {
uni.showToast({
title: '图形验证码不能为空',
......@@ -236,14 +252,17 @@
code: form2.value.captcha
}).then(res => {
uni.showToast({
title: '短信验证码下发成功',
title: res.data.msg,
icon: 'none'
})
countDown.value.start = true
}).catch(res=>{
console.log(res.data.msg)
getCode()
})
// .catch(res=>{
// uni.showModal({
// content:res.data.msg
// })
// getCode()
// })
}
function timeup() {
......
......@@ -101,7 +101,7 @@ function submit(){
})
return
}
if(!user.value.phoneNumber){
if(!user.value.phonenumber){
uni.showToast({
icon:'none',title:`请输入手机号码`
})
......@@ -117,6 +117,7 @@ function submit(){
uni.showToast({
icon:'none',title:`修改成功`
})
edit.value = false
})
}
function changeSex(e){
......
......@@ -41,7 +41,7 @@
</view>
<view class="func">
<button
@click="handleUpdate(item)" v-if="item.settleFlag != 0">上传凭证
@click="handleUpdate(item)" v-if="item.settleFlag != 0">确认并上传
</button>
<button @click="handleDownload(item)" >下载缴费通知单</button>
</view>
......@@ -62,7 +62,7 @@
<uni-forms-item label="缴费凭证" required>
<uni-file-picker limit="1" file-mediatype="all" file-extname="png,jpg,jpeg,pdf,zip"
@select="selectFile"
@select="selectFile" v-model="form.payEvidenceObj"
@progress="fileProgress" @delete="delSupplementFile(index)"></uni-file-picker>
</uni-forms-item>
<uni-forms-item label="备注">
......@@ -118,6 +118,16 @@ function getList() {
function handleUpdate(item) {
form.value.yjId = item.yjId
form.value.payTime = item.payTime
if(item.payEvidence){
let file = JSON.parse(item.payEvidence)
console.log(file)
form.value.payEvidenceObj = {
url: file[0].url,
name: file[0].name,
extname: 'png'
}
}
UpPop.value.open()
}
let selectFileValue = {}
......@@ -144,7 +154,11 @@ function delSupplementFile(index) {
}
function uploadSure(){
console.log(form.value)
api.commitPaymentVoucher(form.value).then(res=>{
api.commitPaymentVoucherYJ({
payTime:form.value.payTime,
url:form.value.url,
yjId:form.value.yjId
}).then(res=>{
UpPop.value.close()
form.value = {}
uni.showToast({
......@@ -224,6 +238,7 @@ function circulation(id) {
</script>
<style scoped lang="scss">
:deep(.file-picker__progress){opacity: 0;}
.popBody {
font-size: 28rpx;
line-height: 1.5;
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!