|
@@ -60,8 +60,36 @@
|
|
|
<u-input v-model="tradeList.bank" input-align="right" placeholder="暂无" disabled />
|
|
|
</u-form-item>
|
|
|
<u-form-item label-width='260' label="第三方" :borderBottom="false">
|
|
|
- <u-input v-model="tradeList.interest" input-align="right" placeholder="暂无" disabled />
|
|
|
+ <u-input v-model="tradeList.three" input-align="right" placeholder="暂无" disabled />
|
|
|
+ </u-form-item>
|
|
|
+ </view>
|
|
|
+ <view class="form_item" v-if="tradeList.approveStatus == '待银行审批'">
|
|
|
+ <view class="title">发放信息</view>
|
|
|
+ <u-form-item label-width='260' label="合同编号">
|
|
|
+ <u-input v-model="tradeList.contractNo" input-align="right" placeholder="请输入合同编号" />
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item label-width='260' label="发放金额(元)">
|
|
|
+ <u-input v-model="tradeList.paymentAmount" input-align="right" type="digit" @input="calculation()" placeholder="请输入发放金额" />
|
|
|
</u-form-item>
|
|
|
+ <view v-for="(item,index) in count">
|
|
|
+ <view class="row">
|
|
|
+ <view class="left ">
|
|
|
+ <u-input v-model="item.modifyExpense" placeholder="输入费用名称,1-8个字" />
|
|
|
+ </view>
|
|
|
+ <view class="right">
|
|
|
+ <u-input v-model="item.expenses" @input="calculation" input-align="right" placeholder="输入金额" type="digit" />
|
|
|
+ </u-input><span class="yuan">元</span>
|
|
|
+ <view class="del" @click="del(index)">—</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="flex count">
|
|
|
+ <view class="add">
|
|
|
+ <u-button @click="add" type="success" class="btnAdd" :disabled="addshow">添加费用</u-button>
|
|
|
+ </view>
|
|
|
+ <view class="count_item"><span>合计应还:</span><span class="number">¥{{tradeList.amountDue}}</span>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
</view>
|
|
|
</u-form>
|
|
|
<view class="form_item flex">
|
|
@@ -74,31 +102,28 @@
|
|
|
</view>
|
|
|
</view>
|
|
|
<view style='padding:10px;' class='flex bottom-btn'>
|
|
|
- <u-button @click='reject' type="error" class="btn1" hover-class='none'>驳回</u-button>
|
|
|
- <u-button @click='pass' type="success" class="btn2">通过</u-button>
|
|
|
+ <u-button @click='reject' type="error" class="btn1" hover-class='none'>驳回</u-button>
|
|
|
+ <u-button @click='pass' type="success" class="btn2">通过</u-button>
|
|
|
</view>
|
|
|
- <!-- <u-modal v-model="isShowAlert" :title-style="{fontSize: '18px',fontWeight:'500'}"
|
|
|
- :content-style="{fontSize: '14px',fontWeight:'400'}" confirm-color='#22C572' confirm-text='确定' title='提示'
|
|
|
- showCancelButton='false' :content="content" @confirm="alertBtn" @cancel="cancelClick"></u-modal> -->
|
|
|
- <view v-if="show" class="shade">
|
|
|
- <view class="wrap">
|
|
|
- <view class="alert-top">
|
|
|
- <view class="titleAudit">
|
|
|
- {{title}}
|
|
|
- </view>
|
|
|
- <u-icon name="close" class="close" color="#8890B1" @click="close()"></u-icon>
|
|
|
+ <view v-if="show" class="shade">
|
|
|
+ <view class="wrap">
|
|
|
+ <view class="alert-top">
|
|
|
+ <view class="titleAudit">
|
|
|
+ {{title}}
|
|
|
</view>
|
|
|
- <view class="u-textarea-style">
|
|
|
- <view class="right-bottom">
|
|
|
- {{auditMind.length}}/100个字
|
|
|
- </view>
|
|
|
- <u-input class="" v-model='auditMind' placeholder="请在此输入审核意见" type="textarea" height="414"
|
|
|
- maxlength="100" />
|
|
|
+ <u-icon name="close" class="close" color="#8890B1" @click="close()"></u-icon>
|
|
|
+ </view>
|
|
|
+ <view class="u-textarea-style">
|
|
|
+ <view class="right-bottom">
|
|
|
+ {{auditMind.length}}/100个字
|
|
|
</view>
|
|
|
- <view @click='close()' class="cancel">取消</view>
|
|
|
- <view @click='passSubmit()' class="confirm">确定</view>
|
|
|
+ <u-input class="" v-model='auditMind' placeholder="请在此输入审核意见" type="textarea" height="414"
|
|
|
+ maxlength="100" />
|
|
|
</view>
|
|
|
+ <view @click='close()' class="cancel">取消</view>
|
|
|
+ <view @click='passSubmit()' class="confirm">确定</view>
|
|
|
</view>
|
|
|
+ </view>
|
|
|
</view>
|
|
|
</template>
|
|
|
|
|
@@ -116,11 +141,13 @@
|
|
|
btnLoading: false, //防止重复点击
|
|
|
imgUrl: [],
|
|
|
tradeList: {},
|
|
|
- isShowAlert:false,
|
|
|
- show:false,
|
|
|
- content:"",
|
|
|
- title:"",
|
|
|
- auditMind:"",//审核意见
|
|
|
+ isShowAlert: false,
|
|
|
+ show: false,
|
|
|
+ content: "",
|
|
|
+ title: "",
|
|
|
+ auditMind: "", //审核意见
|
|
|
+ count: [],
|
|
|
+ addshow: false
|
|
|
}
|
|
|
},
|
|
|
onLoad(options) {
|
|
@@ -131,46 +158,127 @@
|
|
|
|
|
|
},
|
|
|
methods: {
|
|
|
+ calculation() {
|
|
|
+ let money = Number(this.tradeList.paymentAmount)
|
|
|
+ for (let i = 0; i < this.count.length; i++) {
|
|
|
+ money += Number(this.count[i].expenses)
|
|
|
+ }
|
|
|
+ this.tradeList.amountDue = money.toFixed(2)
|
|
|
+ },
|
|
|
+ del(num) {
|
|
|
+ this.count.splice(num, 1)
|
|
|
+ if (this.count.length == 4) {
|
|
|
+ this.addshow = true
|
|
|
+ } else {
|
|
|
+ this.addshow = false
|
|
|
+ }
|
|
|
+ let money = Number(this.tradeList.paymentAmount)
|
|
|
+ for (let i = 0; i < this.count.length; i++) {
|
|
|
+ money += Number(this.count[i].expenses)
|
|
|
+ }
|
|
|
+ this.tradeList.amountDue = money.toFixed(2)
|
|
|
+ },
|
|
|
+ add() {
|
|
|
+ this.count.push({
|
|
|
+ modifyExpense: "",
|
|
|
+ expenses: ""
|
|
|
+ })
|
|
|
+ if (this.count.length == 4) {
|
|
|
+ this.addshow = true
|
|
|
+ } else {
|
|
|
+ this.addshow = false
|
|
|
+ }
|
|
|
+ },
|
|
|
getList() {
|
|
|
var that = this
|
|
|
that.$api.doRequest('get', '/tradeWarehouseReceiptAppl/getTrageInfo', {
|
|
|
id: that.id
|
|
|
}).then(res => {
|
|
|
that.tradeList = res.data.data
|
|
|
+ // if (that.tradeList.approveStatus == "待银行审批") {
|
|
|
+ // that.tradeList.amountDue = that.tradeList.interest
|
|
|
+ // }
|
|
|
//通过图片id找到地址
|
|
|
that.$api.doRequest('get', '/appendix/query/getFileList', {
|
|
|
- appendixIds: that.tradeList.appendix
|
|
|
- }).then(res => {
|
|
|
- for (let i = 0; i < res.data.data.length; i++) {
|
|
|
- that.imgUrl.push({
|
|
|
- url: res.data.data[i].appendixPath
|
|
|
- })
|
|
|
- }
|
|
|
- }).catch(res => {
|
|
|
- if (res.errmsg) {
|
|
|
- uni.showToast({
|
|
|
- title: res.errmsg,
|
|
|
- icon: 'none',
|
|
|
- duration: 2000
|
|
|
- })
|
|
|
- }
|
|
|
- });
|
|
|
+ appendixIds: that.tradeList.appendix
|
|
|
+ }).then(res => {
|
|
|
+ for (let i = 0; i < res.data.data.length; i++) {
|
|
|
+ that.imgUrl.push({
|
|
|
+ url: res.data.data[i].appendixPath
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }).catch(res => {
|
|
|
+ if (res.errmsg) {
|
|
|
+ uni.showToast({
|
|
|
+ title: res.errmsg,
|
|
|
+ icon: 'none',
|
|
|
+ duration: 2000
|
|
|
+ })
|
|
|
+ }
|
|
|
+ });
|
|
|
})
|
|
|
},
|
|
|
- reject(){
|
|
|
+ reject() {
|
|
|
this.show = true
|
|
|
this.title = "驳回原因(驳回)"
|
|
|
},
|
|
|
- pass(){
|
|
|
+ pass() {
|
|
|
+ if(this.tradeList.approveStatus == "待银行审批"){
|
|
|
+ if (!this.tradeList.contractNo) {
|
|
|
+ this.$api.msg('合同编号不能为空!')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (!this.tradeList.paymentAmount) {
|
|
|
+ this.$api.msg('发放金额不能为空!')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for(var index = 0 ; index < this.count.length;index++){
|
|
|
+ if(!this.count[index].modifyExpense){
|
|
|
+ this.$api.msg('请输入费用名称!')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if(!this.count[index].expenses){
|
|
|
+ this.$api.msg('请输入费用!')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if(Number(this.count[index].expenses) < 1 || Number(this.count[index].expenses) > 100000000){
|
|
|
+ this.$api.msg('费用输入有误!')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if(this.count[index].expenses.toString().split(".")[1]){
|
|
|
+ if(this.count[index].expenses.toString().split(".")[1].length > 2){
|
|
|
+ this.$api.msg('费用请保留两位小数!')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(index == 0){
|
|
|
+ this.tradeList.modifyExpense1 = this.count[index].modifyExpense
|
|
|
+ this.tradeList.applicationAmount = this.count[index].expenses
|
|
|
+ this.tradeList.applicationAmountFlag = "显示中"
|
|
|
+ }else if(index == 1){
|
|
|
+ this.tradeList.modifyExpense2 = this.count[index].modifyExpense
|
|
|
+ this.tradeList.supervisionFee = this.count[index].expenses
|
|
|
+ this.tradeList.supervisionFeeFlag = "显示中"
|
|
|
+ }else if(index == 2){
|
|
|
+ this.tradeList.modifyExpense3 = this.count[index].modifyExpense
|
|
|
+ this.tradeList.insurancePremium = this.count[index].expenses
|
|
|
+ this.tradeList.insurancePremiumFlag = "显示中"
|
|
|
+ }else if(index == 3){
|
|
|
+ this.tradeList.modifyExpense4 = this.count[index].modifyExpense
|
|
|
+ this.tradeList.otherFee = this.count[index].expenses
|
|
|
+ this.tradeList.otherFeeFlag = "显示中"
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
this.show = true
|
|
|
this.title = "审核意见(通过)"
|
|
|
},
|
|
|
- close(){
|
|
|
+ close() {
|
|
|
this.show = false
|
|
|
},
|
|
|
- passSubmit(){
|
|
|
- if(this.title = "驳回原因(驳回)"){
|
|
|
- if(!this.auditMind){
|
|
|
+ passSubmit() {
|
|
|
+ if (this.title == "驳回原因(驳回)") {
|
|
|
+ if (!this.auditMind) {
|
|
|
this.$api.msg('驳回意见不能为空')
|
|
|
return
|
|
|
}
|
|
@@ -180,7 +288,62 @@
|
|
|
auditMind: this.auditMind,
|
|
|
needReapply: true,
|
|
|
}).then(res => {
|
|
|
- if(res.data.code == 200){
|
|
|
+ if (res.data.code == 200) {
|
|
|
+ uni.showToast({
|
|
|
+ title: "驳回成功",
|
|
|
+ icon: 'none',
|
|
|
+ duration: 2000
|
|
|
+ })
|
|
|
+ uni.navigateBack()
|
|
|
+ }
|
|
|
+ }).catch(res => {
|
|
|
+ if (res.errmsg) {
|
|
|
+ uni.showToast({
|
|
|
+ title: res.errmsg,
|
|
|
+ icon: 'none',
|
|
|
+ duration: 2000
|
|
|
+ })
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else {//通过
|
|
|
+ if(this.tradeList.approveStatus == "待银行审批"){
|
|
|
+ this.$api.doRequest('post', '/tradeWarehouseReceiptAppl/api/editTradeWarehouseReceiptAppl', this.tradeList)
|
|
|
+ .then(res => {
|
|
|
+ if(res.data.code == 200){
|
|
|
+ this.$api.doRequest('post', '/workflow/api/handle', {
|
|
|
+ taskId: this.tradeList.taskId,
|
|
|
+ approved: true,
|
|
|
+ auditMind: this.auditMind ? this.auditMind : "审核通过",
|
|
|
+ needReapply: false,
|
|
|
+ }).then(res => {
|
|
|
+ if (res.data.code == 200) {
|
|
|
+ uni.showToast({
|
|
|
+ title: "审核成功",
|
|
|
+ icon: 'none',
|
|
|
+ duration: 2000
|
|
|
+ })
|
|
|
+ uni.navigateBack()
|
|
|
+ }
|
|
|
+ }).catch(res => {
|
|
|
+ if (res.errmsg) {
|
|
|
+ uni.showToast({
|
|
|
+ title: res.errmsg,
|
|
|
+ icon: 'none',
|
|
|
+ duration: 2000
|
|
|
+ })
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ }else{
|
|
|
+ this.$api.doRequest('post', '/workflow/api/handle', {
|
|
|
+ taskId: this.tradeList.taskId,
|
|
|
+ approved: true,
|
|
|
+ auditMind: this.auditMind ? this.auditMind : "审核通过",
|
|
|
+ needReapply: false,
|
|
|
+ }).then(res => {
|
|
|
+ if (res.data.code == 200) {
|
|
|
uni.showToast({
|
|
|
title: "审核成功",
|
|
|
icon: 'none',
|
|
@@ -189,46 +352,23 @@
|
|
|
uni.navigateBack()
|
|
|
}
|
|
|
}).catch(res => {
|
|
|
- if (res.errmsg) {
|
|
|
- uni.showToast({
|
|
|
- title: res.errmsg,
|
|
|
- icon: 'none',
|
|
|
- duration: 2000
|
|
|
- })
|
|
|
- }
|
|
|
- });
|
|
|
- // }
|
|
|
- }else{
|
|
|
- this.$api.doRequest('post', '/workflow/api/handle', {
|
|
|
- taskId: this.tradeList.taskId,
|
|
|
- approved: true,
|
|
|
- auditMind: this.auditMind ? this.auditMind : "审核通过",
|
|
|
- needReapply: false,
|
|
|
- }).then(res => {
|
|
|
- if(res.data.code == 200){
|
|
|
- uni.showToast({
|
|
|
- title: "审核成功",
|
|
|
- icon: 'none',
|
|
|
- duration: 2000
|
|
|
- })
|
|
|
- uni.navigateBack()
|
|
|
- }
|
|
|
- }).catch(res => {
|
|
|
- if (res.errmsg) {
|
|
|
- uni.showToast({
|
|
|
- title: res.errmsg,
|
|
|
- icon: 'none',
|
|
|
- duration: 2000
|
|
|
- })
|
|
|
- }
|
|
|
- });
|
|
|
+ if (res.errmsg) {
|
|
|
+ uni.showToast({
|
|
|
+ title: res.errmsg,
|
|
|
+ icon: 'none',
|
|
|
+ duration: 2000
|
|
|
+ })
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
-
|
|
|
},
|
|
|
- auditInfo(){
|
|
|
- // uni.navigateTo({
|
|
|
- // url: '/pages/task/procurement_close_details?id=' + item.businessId + "&isShowbtn=true"
|
|
|
- // })
|
|
|
+ auditInfo() {
|
|
|
+ uni.navigateTo({
|
|
|
+ url: '/pages/task/audit_info?id=' + this.tradeList.id + "&workflowId=" + this.tradeList
|
|
|
+ .workflowId
|
|
|
+ })
|
|
|
},
|
|
|
filterFileType(index, lists) {
|
|
|
if (lists[index].fileType != 'jpg' && lists[index].fileType != 'png' && lists[index].fileType != 'gif' &&
|
|
@@ -249,14 +389,14 @@
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
.container {
|
|
|
- padding: 20rpx 12rpx 250rpx 12rpx;
|
|
|
+ padding: 6rpx 12rpx 250rpx 12rpx;
|
|
|
}
|
|
|
|
|
|
.title {
|
|
|
font-size: 34rpx;
|
|
|
font-weight: 600;
|
|
|
margin-top: 20rpx;
|
|
|
- line-height: 70rpx;
|
|
|
+ line-height: 90rpx;
|
|
|
border-bottom: 2rpx solid #EEEEEE;
|
|
|
}
|
|
|
|
|
@@ -264,7 +404,7 @@
|
|
|
background: #fff;
|
|
|
margin: 10px;
|
|
|
border-radius: 10px;
|
|
|
- padding: 20rpx 30rpx;
|
|
|
+ padding: 10rpx 30rpx;
|
|
|
// width: 100%;
|
|
|
}
|
|
|
|
|
@@ -283,6 +423,7 @@
|
|
|
line-height: 70rpx;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.bottom-btn {
|
|
|
width: 100%;
|
|
|
position: fixed;
|
|
@@ -292,19 +433,20 @@
|
|
|
left: 0;
|
|
|
background-color: #f8f8f8;
|
|
|
flex-direction: column;
|
|
|
-
|
|
|
+
|
|
|
.btn1,
|
|
|
.btn2 {
|
|
|
width: 100%;
|
|
|
margin-bottom: 26rpx;
|
|
|
border-radius: 90rpx;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
.btn1 {
|
|
|
background: white;
|
|
|
color: #00C265;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.shade {
|
|
|
position: fixed;
|
|
|
top: 0;
|
|
@@ -313,7 +455,7 @@
|
|
|
width: 100%;
|
|
|
background: rgba(0, 0, 0, 0.4);
|
|
|
z-index: 3;
|
|
|
-
|
|
|
+
|
|
|
.wrap {
|
|
|
position: absolute;
|
|
|
left: 0;
|
|
@@ -325,7 +467,7 @@
|
|
|
width: calc(100% - 198rpx);
|
|
|
height: 700rpx;
|
|
|
border-radius: 20rpx;
|
|
|
-
|
|
|
+
|
|
|
.alert-top {
|
|
|
padding: 33rpx;
|
|
|
display: flex;
|
|
@@ -333,19 +475,20 @@
|
|
|
align-items: center;
|
|
|
position: relative;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
.titleAudit {
|
|
|
font-size: 32rpx;
|
|
|
font-weight: 600;
|
|
|
color: #333333;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
.close {
|
|
|
position: absolute;
|
|
|
right: 33rpx;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.cancel,
|
|
|
.confirm {
|
|
|
position: absolute;
|
|
@@ -357,16 +500,18 @@
|
|
|
border-top: 1px solid #eee;
|
|
|
font-size: 34rpx;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
.cancel {
|
|
|
left: 0;
|
|
|
border-right: 1px solid #eee;
|
|
|
color: #AFB3BF;
|
|
|
}
|
|
|
+
|
|
|
.confirm {
|
|
|
right: 0;
|
|
|
color: #22C572;
|
|
|
}
|
|
|
+
|
|
|
.u-textarea-style {
|
|
|
margin: 20rpx;
|
|
|
background: #F9F9FA;
|
|
@@ -374,7 +519,7 @@
|
|
|
border: 1px solid #EEEEEE;
|
|
|
padding: 10rpx 20rpx;
|
|
|
position: relative;
|
|
|
-
|
|
|
+
|
|
|
.right-bottom {
|
|
|
position: absolute;
|
|
|
right: 20rpx;
|
|
@@ -382,7 +527,66 @@
|
|
|
color: #AFB3BF;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ .row {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ border-bottom: 1px solid #eee;
|
|
|
+
|
|
|
+ .right {
|
|
|
+ display: flex;
|
|
|
+
|
|
|
+ // .uni-input-input{
|
|
|
+ // width: 30%;
|
|
|
+ // font-size: 28rpx;
|
|
|
+ // }
|
|
|
+ .del {
|
|
|
+ width: 46rpx;
|
|
|
+ height: 46rpx;
|
|
|
+ border-radius: 25rpx;
|
|
|
+ background-color: #F1F4FB;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 46rpx;
|
|
|
+ font-weight: 600;
|
|
|
+ margin-top: 8rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .yuan {
|
|
|
+ line-height: 70rpx;
|
|
|
+ margin: 0 16rpx;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ .count {
|
|
|
+ width: 100%;
|
|
|
+ margin: 20rpx 0;
|
|
|
+
|
|
|
+ .add {
|
|
|
+ width: 162rpx;
|
|
|
+ height: 64rpx;
|
|
|
+ background: #22C572;
|
|
|
+ border-radius: 10rpx;
|
|
|
+ color: #FFFFFF;
|
|
|
+ line-height: 64rpx;
|
|
|
+ text-align: center;
|
|
|
+ font-size: 28rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .count_item {
|
|
|
+ font-size: 30rpx;
|
|
|
+ line-height: 70rpx;
|
|
|
+
|
|
|
+ .number {
|
|
|
+ font-size: 32rpx;
|
|
|
+ font-weight: 600;
|
|
|
+ margin-left: 20rpx;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/deep/.u-list-item {
|
|
|
- margin: 4rpx !important;
|
|
|
+ margin: 20rpx 4rpx !important;
|
|
|
}
|
|
|
</style>
|