刘翔宇-旅管家 3 years ago
commit 046dda1fc6

@ -51,6 +51,9 @@ export default {
showChange(e){ showChange(e){
this.$emit('update:isShow',e) this.$emit('update:isShow',e)
}, },
cancelClick(){
this.$emit('update:isShow',false)
},
reset(){ reset(){
if(this.type === 'normal'){ if(this.type === 'normal'){
return return
@ -85,7 +88,7 @@ export default {
footer slot: footer slot:
footerContent footerContent
*/ */
const {okText,okClick,footerRender,width,type,$scopedSlots,rules,form,showChange,isShow,title} = this const {cancelClick,okText,okClick,footerRender,width,type,$scopedSlots,rules,form,showChange,isShow,title} = this
return ( return (
<Modal <Modal
ok-text={okText} ok-text={okText}
@ -147,6 +150,12 @@ export default {
footer(){ footer(){
{ {
if(type === 'form') return ($scopedSlots.footerContent ? $scopedSlots.footerContent() : footerRender()) if(type === 'form') return ($scopedSlots.footerContent ? $scopedSlots.footerContent() : footerRender())
if(type === 'normal') return (
<div>
<Button ghost type="primary" on-click={cancelClick}>取消</Button>
<Button type="primary" on-click={okClick}>确定</Button>
</div>
)
} }
} }
}}> }}>

@ -102,7 +102,7 @@
</xy-dialog> </xy-dialog>
<!-- 编辑中 预算计划 --> <!-- 编辑中 预算计划 -->
<xy-dialog :is-show.sync="isShowPlan" title="预算计划" :width="640"> <xy-dialog :is-show.sync="isShowPlan" title="预算计划" :width="640" @on-ok="planSelect">
<template v-slot:normalContent> <template v-slot:normalContent>
<Input v-model="planSearch" search enter-button=" " placeholder="搜索预算计划.." @on-search="getBudgets"/> <Input v-model="planSearch" search enter-button=" " placeholder="搜索预算计划.." @on-search="getBudgets"/>
@ -156,6 +156,7 @@ export default {
isShowEditor:false, isShowEditor:false,
isShowPlan:false, isShowPlan:false,
detail:{}, detail:{},
plan:[],
rules:{ rules:{
name:[ name:[
{required:true,message:"必填"} {required:true,message:"必填"}
@ -222,20 +223,55 @@ export default {
methods: { methods: {
// //
planInput(e,row){ planInput(e,row){
if(!/^[0-9]+.?[0-9]*$/.test(e) && e){
Message({
type:'warning',
message:'金额格式错误'
})
row.useMoney = 0
return
}
if(e <= (Number(row.money) - Number(row.use_money_total))){ if(e <= (Number(row.money) - Number(row.use_money_total))){
row.useMoney = e row.useMoney = e
}else{ this.plan.forEach(item => {
if(item.value.plan_id == row.id){
item.value.use_money = e
}
})
return
}
Message({ Message({
type:'warning', type:'warning',
message:'使用金额大于剩余预算' message:'使用金额大于剩余预算'
}) })
row.useMoney = 0 row.useMoney = 0
},
//
planSelect(){
if(this.plan.length === 0){
Message({
type:'warning',
message:'选择计划不能为空'
})
return
}
for(let item of this.plan){
console.log(item)
if(!item.value.use_money){
Message({
type:'warning',
message:'金额不能为空'
})
return
}
} }
this.detail.plan = this.plan
this.isShowPlan = false
}, },
// //
selectPlan(sel,row){ selectPlan(sel,row){
if(sel){ if(sel){
this.detail.plan = sel.map(item => { this.plan = sel.map(item => {
return { return {
label:item.name, label:item.name,
value:{ value:{
@ -246,7 +282,7 @@ export default {
} }
}) })
}else{ }else{
this.detail.plan = [] this.plan = []
} }
}, },
delPlan(val){ delPlan(val){
@ -309,6 +345,7 @@ export default {
} }
}) })
} }
this.plan = this.detail.plan
}, },
editor(){ editor(){
editorContract({ editorContract({

@ -256,7 +256,7 @@
</xy-dialog> </xy-dialog>
<!-- 新增表 预算计划 --> <!-- 新增表 预算计划 -->
<xy-dialog :is-show.sync="isShowPlan" title="预算计划" :width="640"> <xy-dialog :is-show.sync="isShowPlan" title="预算计划" :width="640" @on-ok="planSelect">
<template v-slot:normalContent> <template v-slot:normalContent>
<Input v-model="planSearch" search enter-button=" " placeholder="搜索预算计划.." @on-search="getBudgets"/> <Input v-model="planSearch" search enter-button=" " placeholder="搜索预算计划.." @on-search="getBudgets"/>
@ -636,6 +636,7 @@ export default {
isBudget:true, isBudget:true,
plan:[] plan:[]
}, },
plan:[],
rules:{ rules:{
name:[ name:[
{required:true,message:"必填"} {required:true,message:"必填"}
@ -672,15 +673,28 @@ export default {
methods: { methods: {
// //
planInput(e,row){ planInput(e,row){
if(!/^[0-9]+.?[0-9]*$/.test(e) && e){
Message({
type:'warning',
message:'金额格式错误'
})
row.useMoney = 0
return
}
if(e <= (Number(row.money) - Number(row.use_money_total))){ if(e <= (Number(row.money) - Number(row.use_money_total))){
row.useMoney = e row.useMoney = e
}else{ this.plan.forEach(item => {
if(item.value.plan_id == row.id){
item.value.use_money = e
}
})
return
}
Message({ Message({
type:'warning', type:'warning',
message:'使用金额大于剩余预算' message:'使用金额大于剩余预算'
}) })
row.useMoney = 0 row.useMoney = 0
}
}, },
// //
summary(param){ summary(param){
@ -930,7 +944,7 @@ export default {
selectPlan(sel,row){ selectPlan(sel,row){
if(sel){ if(sel){
//console.log(sel,row) //console.log(sel,row)
this.form.plan = sel.map(item => { this.plan = sel.map(item => {
return { return {
label:item.name, label:item.name,
value:{ value:{
@ -941,14 +955,39 @@ export default {
} }
}) })
}else{ }else{
this.form.plan = [] this.plan = []
} }
}, },
//
planSelect(){
if(this.plan.length === 0){
Message({
type:'warning',
message:'选择计划不能为空'
})
return
}
for(let item of this.plan){
console.log(item)
if(!item.value.use_money){
Message({
type:'warning',
message:'金额不能为空'
})
return
}
}
this.form.plan = this.plan
this.isShowPlan = false
},
// //
toggleSelection(plans) { toggleSelection(plans) {
if (plans && plans.length > 0) { if (plans) {
this.plans.filter(plan => { this.plans.filter(plan => {
return plans.includes(plan.id) if(plans.includes(plan.id)){
plan.useMoney = this.form.plan[plans.indexOf(plan.id)].value.use_money
return true
}
}).map(row => { }).map(row => {
this.$refs.planTable.toggleRowSelection(row) this.$refs.planTable.toggleRowSelection(row)
}) })

@ -154,4 +154,3 @@ module.exports = {
} }
) )
} }
}

Loading…
Cancel
Save