|
|
|
|
@ -268,6 +268,8 @@
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!-- Step Content -->
|
|
|
|
|
<div class="step-content">
|
|
|
|
|
<!-- Step 1: Type Selection -->
|
|
|
|
|
<div v-show="currentStep === 1" class="step-content">
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
@ -402,7 +404,7 @@
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<el-form-item label="关联预算计划" prop="plan" v-show="showFields.budgetPlan">
|
|
|
|
|
<el-form-item label="关联预算计划" prop="plan" v-show="showFields.budgetPlan" :rules="[{ required: true, message: '请选择关联预算计划', trigger: 'change' }]">
|
|
|
|
|
<div class="plan-selector">
|
|
|
|
|
<el-input
|
|
|
|
|
v-model="form.plan_display"
|
|
|
|
|
@ -417,7 +419,7 @@
|
|
|
|
|
:key="item.id"
|
|
|
|
|
closable
|
|
|
|
|
@close="removePlan(item)">
|
|
|
|
|
{{ item.name }}
|
|
|
|
|
{{ item.label }}
|
|
|
|
|
</el-tag>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
@ -428,56 +430,27 @@
|
|
|
|
|
|
|
|
|
|
<!-- Step 3: Attachment Information -->
|
|
|
|
|
<div v-show="currentStep === 3" class="step-content">
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label class="form-label">部门</label>
|
|
|
|
|
<Input v-model="form.department" placeholder="请输入部门" class="form-input" />
|
|
|
|
|
<!-- 事前支付表格 -->
|
|
|
|
|
<div v-if="form.before_contract_template" class="form-section">
|
|
|
|
|
<div class="section-title">事前支付表格</div>
|
|
|
|
|
<div v-html="form.before_contract_template.template"></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label class="form-label">员工姓名</label>
|
|
|
|
|
<Input v-model="form.employee_name" placeholder="请输入员工姓名" class="form-input" />
|
|
|
|
|
<!-- 事后支付表格 -->
|
|
|
|
|
<div v-else-if="form.contract_template" class="form-section">
|
|
|
|
|
<div class="section-title">事后支付表格</div>
|
|
|
|
|
<div v-html="form.contract_template.template"></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label class="form-label">就业状态</label>
|
|
|
|
|
<Input v-model="form.employment_status" placeholder="请输入就业状态" class="form-input" />
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label class="form-label">家属姓名</label>
|
|
|
|
|
<Input v-model="form.family_name" placeholder="请输入家属姓名" class="form-input" />
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label class="form-label">关系</label>
|
|
|
|
|
<Input v-model="form.relationship" placeholder="请输入关系" class="form-input" />
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label class="form-label">费用明细</label>
|
|
|
|
|
<table class="expense-table">
|
|
|
|
|
<thead>
|
|
|
|
|
<tr>
|
|
|
|
|
<th>内容</th>
|
|
|
|
|
<th>金额</th>
|
|
|
|
|
<th>比例</th>
|
|
|
|
|
<th>收款人</th>
|
|
|
|
|
</tr>
|
|
|
|
|
</thead>
|
|
|
|
|
<tbody>
|
|
|
|
|
<tr v-for="(item, index) in form.expenses" :key="index">
|
|
|
|
|
<td><Input v-model="item.content" /></td>
|
|
|
|
|
<td><Input v-model="item.amount" type="number" /></td>
|
|
|
|
|
<td><Input v-model="item.ratio" /></td>
|
|
|
|
|
<td><Input v-model="item.payee" /></td>
|
|
|
|
|
</tr>
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!-- Navigation Buttons -->
|
|
|
|
|
<div class="step-actions">
|
|
|
|
|
<div slot="footer">
|
|
|
|
|
<div class="modal-footer">
|
|
|
|
|
<Button v-if="currentStep > 1" @click="prevStep" class="action-button">上一步</Button>
|
|
|
|
|
<Button v-if="currentStep < 3" type="primary" @click="nextStep" class="action-button">下一步</Button>
|
|
|
|
|
<Button v-if="currentStep === 3" type="primary" @click="submit" class="action-button">提交</Button>
|
|
|
|
|
<Button @click="cancel" class="action-button">取消</Button>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</Modal>
|
|
|
|
|
|
|
|
|
|
<!-- 搜索使用 预算计划 -->
|
|
|
|
|
@ -485,28 +458,61 @@
|
|
|
|
|
<template v-slot:normalContent>
|
|
|
|
|
<Input v-model="planSearch.name" search enter-button="搜 索" placeholder="搜索预算计划.."
|
|
|
|
|
@on-search="searchBudgets"/>
|
|
|
|
|
<div style="margin: 10px 0;display: flex;justify-content: space-between;
|
|
|
|
|
align-items: center;">
|
|
|
|
|
|
|
|
|
|
<div style="margin: 10px 0;display: flex;justify-content: space-between;align-items: center;">
|
|
|
|
|
<div v-if="planSource === 'search'">已选择:<span style="margin-right:10px">{{ select.plan_name }}</span></div>
|
|
|
|
|
<div v-if="planSource === 'modal'">已选择:<span style="margin-right:10px">{{ form.plan_display }}</span></div>
|
|
|
|
|
<el-link type="success" @click="clearSelectForSearch">清空选择</el-link>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
<xy-table :list="plans" @rowClick="selectPlanForSearch" :show-index="false" :table-item="planTableSearch"
|
|
|
|
|
:height="310" style="margin-top: 10px;" ref="singlePlanTable">
|
|
|
|
|
<template v-slot:btns>
|
|
|
|
|
<el-table-column label="使用金额" header-align="center" v-if="planSource === 'modal'">
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
<Input :value="scope.row.useMoney" @input="planInput($event, scope.row)" />
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
</template>
|
|
|
|
|
</xy-table>
|
|
|
|
|
|
|
|
|
|
<div style="display: flex;justify-content: flex-end;">
|
|
|
|
|
<Page :total="planTotal" show-elevator @on-change="planPageChange"/>
|
|
|
|
|
</div>
|
|
|
|
|
<el-tag type="warning">点击行进行选择</el-tag>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:footerContent>
|
|
|
|
|
<Button type="primary" @click="planSelectForSearch">确定</Button>
|
|
|
|
|
</template>
|
|
|
|
|
</xy-dialog>
|
|
|
|
|
|
|
|
|
|
<!-- 新增表 预算计划 -->
|
|
|
|
|
<xy-dialog :is-show.sync="isShowPlan" :width="720" title="预算计划" @on-ok="planSelect">
|
|
|
|
|
<template v-slot:normalContent>
|
|
|
|
|
<div style="display: flex;">
|
|
|
|
|
<el-select placeholder="科室选择" clearable size="small" v-model="planSearch.plan_department_id"
|
|
|
|
|
style="width: 160px;">
|
|
|
|
|
<el-option v-for="item in departments" :label="item.name" :value="item.id" :key="item.id">
|
|
|
|
|
</el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
<Input v-model="planSearch.name" enter-button="搜 索" placeholder="搜索预算计划.." search
|
|
|
|
|
@on-search="searchBudgets"/>
|
|
|
|
|
</div>
|
|
|
|
|
<xy-table ref="planTable" :height="300" :list="plans" :show-index="false" :table-item="planTable"
|
|
|
|
|
style="margin-top: 10px;" @select="selectPlan">
|
|
|
|
|
<template v-slot:btns>
|
|
|
|
|
<el-table-column header-align="center" label="使用金额" fixed="right" width="140">
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
<Input :value="scope.row.useMoney" @input="planInput($event,scope.row)"/>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
</template>
|
|
|
|
|
</xy-table>
|
|
|
|
|
|
|
|
|
|
<div style="display: flex;justify-content: flex-end;">
|
|
|
|
|
<Page :total="planTotal" show-elevator @on-change="planPageChange"/>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<template v-slot:footerContent>
|
|
|
|
|
<Button type="primary" @click="confirmPlanForSearch">确定</Button>
|
|
|
|
|
<Button type="primary" @click="isShowPlan = false">确定</Button>
|
|
|
|
|
</template>
|
|
|
|
|
</xy-dialog>
|
|
|
|
|
|
|
|
|
|
@ -1204,6 +1210,7 @@ export default {
|
|
|
|
|
{ label: '工程合同', value: 'project' },
|
|
|
|
|
{ label: '服务合同', value: 'service' }
|
|
|
|
|
],
|
|
|
|
|
plan: [], // 添加这个来存储选中的预算计划
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
@ -1234,10 +1241,7 @@ export default {
|
|
|
|
|
row.useMoney = 0
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
let money = Number(row.update_money) == 0 ? Number(row.money) : Number(row.update_money);
|
|
|
|
|
console.log(e, money, row.use_money_total)
|
|
|
|
|
console.log(e <= (money - Number(row.use_money_total)))
|
|
|
|
|
if (e <= (money - Number(row.use_money_total))) {
|
|
|
|
|
if (e <= (Number(row.money) - Number(row.use_money_total))) {
|
|
|
|
|
row.useMoney = e
|
|
|
|
|
this.plan.forEach(item => {
|
|
|
|
|
if (item.value.plan_id == row.id) {
|
|
|
|
|
@ -1620,31 +1624,67 @@ export default {
|
|
|
|
|
this.isShowPlan = true
|
|
|
|
|
await this.getBudgets()
|
|
|
|
|
},
|
|
|
|
|
async showPlanForSearch(search='search') {
|
|
|
|
|
console.log("sdfsdfsdfsdfsfsfsd:"+search)
|
|
|
|
|
this.planSource = search
|
|
|
|
|
this.isShowPlanForSearch = true
|
|
|
|
|
await this.getBudgets();
|
|
|
|
|
showPlanForSearch(source) {
|
|
|
|
|
this.planSource = source
|
|
|
|
|
this.isShowPlan = true
|
|
|
|
|
this.getBudgets()
|
|
|
|
|
// 初始化 plan 数组
|
|
|
|
|
if (source === 'modal') {
|
|
|
|
|
this.plan = this.form.plan || []
|
|
|
|
|
} else {
|
|
|
|
|
this.plan = []
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
//选择计划 搜索
|
|
|
|
|
selectPlanForSearch(sel) {
|
|
|
|
|
console.log(sel)
|
|
|
|
|
|
|
|
|
|
if (this.planSource === 'search') {
|
|
|
|
|
selectPlanForSearch(sel, row) {
|
|
|
|
|
if (this.planSource === 'modal') {
|
|
|
|
|
if (sel) {
|
|
|
|
|
this.select.plan_id = sel.id;
|
|
|
|
|
this.select.plan_name = sel.name;
|
|
|
|
|
} else {
|
|
|
|
|
this.select.plan_id = "";
|
|
|
|
|
this.select.plan_name = "";
|
|
|
|
|
let select = sel.map(item => {
|
|
|
|
|
let plan = this.plans.find(p => p.id === item.id)
|
|
|
|
|
return {
|
|
|
|
|
label: plan.name,
|
|
|
|
|
value: {
|
|
|
|
|
plan_id: plan.id,
|
|
|
|
|
use_money: plan.useMoney || 0,
|
|
|
|
|
new_money: plan.money
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
this.plan = [...this.form.plan, ...select]
|
|
|
|
|
// 更新显示文本,显示所有已选择的计划
|
|
|
|
|
this.form.plan_display = this.plan.map(item => item.label).join(', ')
|
|
|
|
|
} else {
|
|
|
|
|
if (sel) {
|
|
|
|
|
this.form.plan_display = sel.name;
|
|
|
|
|
this.plan = this.form.plan
|
|
|
|
|
// 更新显示文本,显示所有已选择的计划
|
|
|
|
|
this.form.plan_display = this.plan.map(item => item.label).join(', ')
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
this.form.plan_display = "";
|
|
|
|
|
this.select.plan_name = row.name
|
|
|
|
|
this.select.plan_id = row.id
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
planSelectForSearch() {
|
|
|
|
|
if (this.plan.length === 0) {
|
|
|
|
|
Message({
|
|
|
|
|
type: 'warning',
|
|
|
|
|
message: '选择计划不能为空'
|
|
|
|
|
})
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
for (let item of this.plan) {
|
|
|
|
|
if (!item.value.use_money) {
|
|
|
|
|
Message({
|
|
|
|
|
type: 'warning',
|
|
|
|
|
message: '金额不能为空'
|
|
|
|
|
})
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// 设置表单数据
|
|
|
|
|
this.form.plan = this.plan
|
|
|
|
|
// 设置显示文本
|
|
|
|
|
this.form.plan_display = this.plan.map(item => item.label).join(', ')
|
|
|
|
|
// 关闭对话框
|
|
|
|
|
this.isShowPlan = false
|
|
|
|
|
},
|
|
|
|
|
//选择计划
|
|
|
|
|
selectPlan(sel, row) {
|
|
|
|
|
@ -1660,87 +1700,49 @@ export default {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//说明被删除了
|
|
|
|
|
if (sel.filter(plan => {
|
|
|
|
|
return plan.id == row.id
|
|
|
|
|
}).length == 0) {
|
|
|
|
|
this.delPlan({
|
|
|
|
|
value: {
|
|
|
|
|
plan_id: row.id
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
let _plan = JSON.parse(JSON.stringify(this.plan));
|
|
|
|
|
|
|
|
|
|
var _select = [];
|
|
|
|
|
select.map(item => {
|
|
|
|
|
if (_plan.filter(plan => {
|
|
|
|
|
return plan.value.plan_id == item.value.plan_id
|
|
|
|
|
}).length == 0) {
|
|
|
|
|
_select.push(item)
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
this.plan = [..._plan, ..._select]
|
|
|
|
|
this.plan = [...this.form.plan, ...select]
|
|
|
|
|
} else {
|
|
|
|
|
this.plan = []
|
|
|
|
|
this.plan = this.form.plan
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
//确认计划选择
|
|
|
|
|
planSelect() {
|
|
|
|
|
const selectedRows = this.$refs.planTable.getSelection()
|
|
|
|
|
if (!selectedRows || selectedRows.length === 0) {
|
|
|
|
|
this.$Message.warning('请选择至少一个预算计划')
|
|
|
|
|
if (this.plan.length === 0) {
|
|
|
|
|
Message({
|
|
|
|
|
type: 'warning',
|
|
|
|
|
message: '选择计划不能为空'
|
|
|
|
|
})
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 更新选中的预算计划
|
|
|
|
|
this.form.plan = selectedRows.map(item => ({
|
|
|
|
|
id: item.id,
|
|
|
|
|
name: item.name,
|
|
|
|
|
money: item.money,
|
|
|
|
|
useMoney: item.useMoney || 0
|
|
|
|
|
}))
|
|
|
|
|
|
|
|
|
|
// 更新显示文本
|
|
|
|
|
this.updatePlanDisplay()
|
|
|
|
|
|
|
|
|
|
// 关闭弹框
|
|
|
|
|
for (let item of this.plan) {
|
|
|
|
|
if (!item.value.use_money) {
|
|
|
|
|
Message({
|
|
|
|
|
type: 'warning',
|
|
|
|
|
message: '金额不能为空'
|
|
|
|
|
})
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// 设置表单数据
|
|
|
|
|
this.form.plan = this.plan
|
|
|
|
|
// 设置显示文本
|
|
|
|
|
this.form.plan_display = this.plan.map(item => item.label).join(', ')
|
|
|
|
|
// 关闭对话框
|
|
|
|
|
this.isShowPlan = false
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
delPlan(val) {
|
|
|
|
|
this.form.plan.map((item, index) => {
|
|
|
|
|
if (item.value.plan_id === val.value.plan_id) {
|
|
|
|
|
this.form.plan.splice(index, 1)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
this.plan.map((item, index) => {
|
|
|
|
|
if (item.value.plan_id === val.value.plan_id) {
|
|
|
|
|
this.plan.splice(index, 1)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
//确认计划选择搜索
|
|
|
|
|
planSelectForSearch() {
|
|
|
|
|
// if (this.select.plan_id == "") {
|
|
|
|
|
// Message({
|
|
|
|
|
// type: 'warning',
|
|
|
|
|
// message: '选择计划不能为空'
|
|
|
|
|
// })
|
|
|
|
|
// return
|
|
|
|
|
// }
|
|
|
|
|
this.isShowPlanForSearch = false
|
|
|
|
|
this.form.plan = this.form.plan.filter(item => item.value.plan_id !== val.value.plan_id)
|
|
|
|
|
},
|
|
|
|
|
//默认选择计划
|
|
|
|
|
toggleSelection(plans, type) {
|
|
|
|
|
|
|
|
|
|
toggleSelection(plans) {
|
|
|
|
|
if (plans) {
|
|
|
|
|
this.plans.filter(plan => {
|
|
|
|
|
if (plans.includes(plan.id)) {
|
|
|
|
|
plan.useMoney = this.plan[plans.indexOf(plan.id)].value.use_money
|
|
|
|
|
let selectedPlan = this.plan.find(item => item.value.plan_id === plan.id)
|
|
|
|
|
if (selectedPlan) {
|
|
|
|
|
plan.useMoney = selectedPlan.value.use_money
|
|
|
|
|
}
|
|
|
|
|
return true
|
|
|
|
|
}
|
|
|
|
|
}).map(row => {
|
|
|
|
|
@ -1888,7 +1890,22 @@ export default {
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
nextStep() {
|
|
|
|
|
if (this.validateCurrentStep()) {
|
|
|
|
|
// 验证当前步骤的表单
|
|
|
|
|
if (this.currentStep === 2) {
|
|
|
|
|
this.$refs.basicInfoForm.validate((valid) => {
|
|
|
|
|
if (valid) {
|
|
|
|
|
// 如果显示预算计划字段,需要验证是否选择了预算计划
|
|
|
|
|
if (this.showFields.budgetPlan && (!this.form.plan || this.form.plan.length === 0)) {
|
|
|
|
|
Message({
|
|
|
|
|
type: 'warning',
|
|
|
|
|
message: '请选择关联预算计划'
|
|
|
|
|
})
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
this.currentStep++
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
} else {
|
|
|
|
|
this.currentStep++
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
@ -1961,6 +1978,14 @@ export default {
|
|
|
|
|
fundChannel: config.fund_channel === 1, // 资金渠道
|
|
|
|
|
budgetPlan: config.budget_plan === 1 // 预算计划
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
// 保存支付表格模板
|
|
|
|
|
if (config.before_contract_template) {
|
|
|
|
|
this.form.before_contract_template = config.before_contract_template
|
|
|
|
|
}
|
|
|
|
|
if (config.contract_template) {
|
|
|
|
|
this.form.contract_template = config.contract_template
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
handleAddContract() {
|
|
|
|
|
@ -1972,26 +1997,16 @@ export default {
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
handleAddContractOk() {
|
|
|
|
|
if (this.currentStep < 2) {
|
|
|
|
|
// 第一步,执行验证并进入下一步
|
|
|
|
|
if (this.validateCurrentStep()) {
|
|
|
|
|
this.currentStep++;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
// 最后一步,执行提交
|
|
|
|
|
if (this.validateCurrentStep()) {
|
|
|
|
|
this.submit()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// 这个方法可以移除,因为功能已经被 nextStep 和 submit 方法替代
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
handleAddContractCancel() {
|
|
|
|
|
this.resetForm()
|
|
|
|
|
this.isShowAdd = false
|
|
|
|
|
// 这个方法可以移除,因为功能已经被 cancel 方法替代
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
cancel() {
|
|
|
|
|
this.handleAddContractCancel()
|
|
|
|
|
this.isShowAdd = false
|
|
|
|
|
this.resetForm()
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
resetForm() {
|
|
|
|
|
@ -2183,18 +2198,13 @@ export default {
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
// 新增方法:移除预算计划
|
|
|
|
|
removePlan(plan) {
|
|
|
|
|
const index = this.form.plan.findIndex(item => item.id === plan.id)
|
|
|
|
|
if (index !== -1) {
|
|
|
|
|
this.form.plan.splice(index, 1)
|
|
|
|
|
|
|
|
|
|
removePlan(item) {
|
|
|
|
|
// 从 plan 数组中移除
|
|
|
|
|
this.plan = this.plan.filter(p => p.value.plan_id !== item.value.plan_id)
|
|
|
|
|
// 从 form.plan 中移除
|
|
|
|
|
this.form.plan = this.form.plan.filter(p => p.value.plan_id !== item.value.plan_id)
|
|
|
|
|
// 更新显示文本
|
|
|
|
|
if (this.form.plan && this.form.plan.length > 0) {
|
|
|
|
|
this.form.plan_display = `已选择 ${this.form.plan.length} 个预算计划`
|
|
|
|
|
} else {
|
|
|
|
|
this.form.plan_display = ''
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
this.form.plan_display = this.plan.map(p => p.label).join(', ')
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
mounted() {
|
|
|
|
|
@ -2581,4 +2591,15 @@ export default {
|
|
|
|
|
height: 400px;
|
|
|
|
|
overflow-y: auto;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.modal-footer {
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: flex-end;
|
|
|
|
|
gap: 12px;
|
|
|
|
|
padding: 10px 0;
|
|
|
|
|
|
|
|
|
|
.action-button {
|
|
|
|
|
min-width: 100px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
|