2021-02-20 09:30:26 +08:00

340 lines
7.1 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="page-body">
<view v-if="pageStep==1">
<view class="feedback-box">
<textarea v-model="saveMsg.auditExplain" placeholder="在此输入稽核异常的原因(必填)" class="feedback" placeholder-style="color:#CCCCCC;"/>
<checkbox-group @change="changeState">
<label class="checkbox">
<checkbox :value="saveMsg.isAddIn" checked /><text class="checkbox-text">本次{{pageType==1 ? '长款已补齐流水':'短款已补入现金'}}</text>
</label>
</checkbox-group>
</view>
<view class="btn-box">
<button type="default" class="main-btn" @click="nextStep ">提交</button>
</view>
</view>
<view class="photo-box" v-else-if="pageType==0 && pageStep==2">
<h4>上传短款凭证照片</h4>
<div class="img-box">
<div class="upload-file-container">
<div class="upload-file-unit" v-for="(item,index) in uploadImgList" :key="index">
<span class="upload-file-remove" @click.stop="deleteImgFunc(index)">-</span>
<image mode="aspectFill" :src="item" @tap="showImg(index)" />
</div>
<div class="upload-file-add" @click="chooseImage">
<div class="upload-file-add-container">
</div>
</div>
</div>
</div>
<view class="uni-flex btn-box">
<button type="default" class="stip-btn" @tap="submitMsg">跳过</button>
<button type="default" class="push-btn" @tap="submitMsg">提交</button>
</view>
</view>
<view class="success-box" v-else>
<image src="/static/images/success.png" mode="aspectFit"></image>
<h2>稽核反馈提交成功</h2>
</view>
</view>
</template>
<script>
import {mapGetters,mapMutations} from 'vuex'
export default {
data(){
return {
uploadImgList: [],
pageType: '',
pageStep: 1,
saveMsg: {
CheckAccount_Id: '',
auditExplain: '',
isAddIn: true,
imageInfo: ''
}
}
},
methods: {
changeState(e){
this.saveMsg.isAddIn = e.detail.value.length>0 ? true : false
},
deleteImgFunc(index) {
this.uploadImgList.splice(index,1)
},
showImg(index) {
uni.previewImage( {
urls: this.uploadImgList,
current: index,
loop: true,
indicator: 'number'
});
},
chooseImage(){
let _this = this
uni.chooseImage({
sourceType: ['camera','album'],
sizeType: 'compressed',
cout: 1 ,
success: (data) => {
// console.log(data)
// this.src = data.tempFilePaths[0]
if(data.tempFilePaths.length>0) {
// let list = []
data.tempFilePaths.forEach(function (n){
uni.getFileSystemManager().readFile({
filePath: n, //选择图片返回的相对路径
encoding: 'base64', //编码格式
success: function(res) { //
let base64 = 'data:image/jpeg;base64,'+res.data //.replace(/\+/ig,'%2B') //不加上这串字符,在页面无法显示的哦
// list.unshift(base64)
_this.uploadImgList.unshift(base64)
}
})
})
}
},
});
},
nextStep(){
if(this.pageType==1) { //长款直接提交
this.submitMsg()
}else {
if(this.saveMsg.auditExplain.trim().length==0) {
uni.showToast({
title:'请输入异常原因',
icon: 'none'
})
return
}
this.pageStep=2
}
},
submitMsg() {
let _this = this
if(this.saveMsg.auditExplain.trim().length==0) {
uni.showToast({
title:'请输入异常原因',
icon: 'none'
})
return
}
this.saveMsg.imageInfo = this.uploadImgList.join('|')
this.$request.$webPost('Audit/UpLoadAuditExplain',this.saveMsg).then(res=>{
if(res.Result_Code!==100) {
uni.showToast({
title: res.Result_Desc,
icon: 'none'
})
}else{
_this.pageStep = 3
setTimeout(function(){
uni.navigateBack({
delta:1
})
uni.$emit('cashAudit',true)
},1500)
}
})
// console.log(this.saveMsg)
}
},
onLoad(option) {
this.pageType = option.type
this.saveMsg.CheckAccount_Id = option.id
}
}
</script>
<style scoped>
.page-body {
height:100%;
}
.feedback-box {
padding: 20rpx 52rpx;
}
.feedback {
width: 656rpx;
height: 354rpx;
padding: 20rpx;
box-sizing: border-box;
background: #ffffff;
border-radius: 14rpx;
margin-bottom: 28rpx;
}
.checkbox-text {
font-size: 26rpx;
color: #8A9DCA;
}
.main-btn {
margin: 72rpx auto;
border-radius: 43rpx;
height: 86rpx;
line-height: 86rpx;
padding: 0;
text-align: center;
width: 656rpx;
background: linear-gradient(to left, #8a9dca 0%, #8998bb 98%, #8a99bc 100%);
color: #fff;
font-size: 30rpx;
}
h3 {
font-size: 32rpx;
color: #1A1E24;
}
.photo-box {
padding: 40rpx 30rpx;
background-color: #fff;
height: 100%;
box-sizing: border-box;
}
.btn-box {
position: fixed;
bottom: 0;
left:0 ;
width: 100%;
padding: 42rpx 0 90rpx 0;
background: #f8f9fb;
box-sizing: border-box;
}
.stip-btn {
width: 277rpx;
height: 86rpx;
color: #8998bb;
line-height: 86rpx;
border: 1rpx solid #8998bb;
border-radius: 43rpx;
text-align: center;
font-size: 30rpx;
}
.push-btn {
width: 277rpx;
height: 86rpx;
color: #fff;
line-height: 86rpx;
background: #8a9dca ;
border-radius: 43rpx;
text-align: center;
font-size: 30rpx;
}
.upload-file-container{
display: flex;
/* flex-flow: row wrap; */
/* justify-content: flex-start; */
align-items: center;
width: 100%;
/* padding: 20rpx; */
min-height: 260rpx;
box-sizing: border-box;
flex-wrap: wrap;
}
.upload-file-add{
width: 130rpx;
height: 126rpx;
margin-right: 16rpx;
box-sizing: border-box;
}
.upload-file-add-container{
position: relative;
border: 1rpx solid #ccc;
width: 136rpx;
height: 137rpx;
border-radius: 6rpx;
/* margin-top: 15rpx; */
}
.upload-file-add-container::before {
content: '';
display: block;
position: absolute;
left: 40rpx;
top: 50%;
height: 2rpx;
background-color: #ccc;
width: 60rpx;
}
.upload-file-add-container::after {
content: '';
display: block;
position: absolute;
left: 50%;
top: 40rpx;
width: 2rpx;
height: 60rpx;
background-color: #ccc;
}
.upload-file-add-img{
margin-top: 10rpx;
font-size: 24rpx;
color: #919191;
}
.upload-file-unit {
position: relative;
width: 137rpx;
height: 136rpx;
margin-right: 36rpx;
margin-top: 16rpx;
border-radius: 8rpx;
border: 2rpx solid #ccc;
}
.upload-file-unit image {
width: 135rpx;
height: 134rpx;
border-radius: 8rpx;
}
.upload-file-remove {
position: absolute;
top: -14rpx;
right: -12rpx;
display: inline-block;
width: 37rpx;
height: 37rpx;
line-height: 30rpx;
background-color: #ff0000;
color: #ffffff;
font-size: 30rpx;
border-radius: 50%;
text-align: center;
z-index: 1;
}
/* 成功弹出框 */
.success-box {
padding-top: 198rpx;
text-align: center;
}
.success-box h2 {
font-size: 38rpx;
color: #364656;
}
.success-box image {
width: 406rpx;
height: 320rpx;
margin-bottom: 30rpx;
}
</style>