diff --git a/src/views/contract/components/printPaymentForm.vue b/src/views/contract/components/printPaymentForm.vue
new file mode 100644
index 0000000..71b8f2a
--- /dev/null
+++ b/src/views/contract/components/printPaymentForm.vue
@@ -0,0 +1,132 @@
+
+
+
+
+
+
+ 事前支付表格
+ 事后支付表格
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/contract/components/printReimbursement.vue b/src/views/contract/components/printReimbursement.vue
index d07a835..11912b4 100644
--- a/src/views/contract/components/printReimbursement.vue
+++ b/src/views/contract/components/printReimbursement.vue
@@ -49,7 +49,7 @@
{{ getChildrenRatio }} |
{{ getChildrenActual }} |
财审科审核 |
- {{ getFinanceApproval }} |
+ {{ }} |
| 幼托费用 |
@@ -57,7 +57,7 @@
无 |
{{ getNurseryActual }} |
分管领导审核 |
- {{ getLeaderApproval }} |
+ {{ }} |
| 子女保险费 |
@@ -65,13 +65,13 @@
无 |
{{ getChildInsuranceActual }} |
财务分管领导审核 |
- {{ getFinanceLeaderApproval }} |
+ {{ }} |
| 合计 |
{{ getTotalFee }} {{ getTotalActual }} |
单位负责人审批 |
- {{ getUnitApproval }} |
+ {{ }} |
| 报销金额(大写) |
diff --git a/src/views/contract/contractList.vue b/src/views/contract/contractList.vue
index 7005d50..1132125 100644
--- a/src/views/contract/contractList.vue
+++ b/src/views/contract/contractList.vue
@@ -164,14 +164,14 @@
@@ -510,44 +510,66 @@
@@ -643,7 +665,8 @@ import {
addContrant,
delContract,
checkContractName,
- editorContract
+ editorContract,
+ detailContract
} from "@/api/contract/contract"
import {
getparameter
@@ -906,6 +929,9 @@ export default {
return '无'
}
switch (value) {
+ case 0:
+ return "无"
+ break;
case 1:
return "待申请"
break;
@@ -930,6 +956,9 @@ export default {
return '无'
}
switch (value) {
+ case 0:
+ return "无"
+ break;
case 1:
return "待申请"
break;
@@ -957,6 +986,9 @@ export default {
return '无'
}
switch (value) {
+ case 0:
+ return "无"
+ break;
case 1:
return "待申请"
break;
@@ -981,6 +1013,9 @@ export default {
return "无"
}
switch (value) {
+ case 0:
+ return "无"
+ break;
case 1:
return "待申请"
break;
@@ -1303,7 +1338,7 @@ export default {
payee: ''
}
],
- showAfterPayment: false, // 是否显示事后支付表格
+ showAfterPayment: true, // 是否显示事后支付表格
contract_carry_department: [] // 新增执行科室字段
},
categoryOptions: [],
@@ -1330,6 +1365,7 @@ export default {
plan: [], // 添加这个来存储选中的预算计划
isEditMode: false, // 添加编辑模式标识
currentContractId: null, // 添加当前编辑的合同ID
+ isFromPayment: false, // 是否从付款登记进入
}
},
methods: {
@@ -1427,6 +1463,11 @@ export default {
}
}
switch (row.req_status) {
+ case 0:
+ return {
+ 'color': 'rgb(140,140,140)'
+ }
+ break;
case 1:
return {
'color': 'rgb(96,109,241)'
@@ -1455,6 +1496,11 @@ export default {
}
}
switch (row.purchase_status) {
+ case 0:
+ return {
+ 'color': 'rgb(140,140,140)'
+ }
+ break;
case 1:
return {
'color': 'rgb(96,109,241)'
@@ -1483,6 +1529,11 @@ export default {
}
}
switch (row.invite_status) {
+ case 0:
+ return {
+ 'color': 'rgb(140,140,140)'
+ }
+ break;
case 1:
return {
'color': 'rgb(96,109,241)'
@@ -1511,6 +1562,11 @@ export default {
}
}
switch (row.join_status) {
+ case 0:
+ return {
+ 'color': 'rgb(140,140,140)'
+ }
+ break;
case 1:
return {
'color': 'rgb(96,109,241)'
@@ -1874,6 +1930,8 @@ export default {
//提交新建
async submit() {
try {
+ console.log(this.form.showAfterPayment);
+
// 保存事前支付表格的数据
if (!this.form.showAfterPayment && this.form.before_contract_template) {
// 获取所有输入控件
@@ -1963,6 +2021,7 @@ export default {
submitData.contract_type = this.form.contractType
submitData.purchase_type_id = this.form.purchaseForm
submitData.purchase_way_id = this.form.purchaseMethod
+ submitData.plan_price = this.form.price
// 处理事前支付模板
if (this.form.skipBeforeTemplate && !this.isEditMode) {
@@ -2151,6 +2210,8 @@ export default {
}
});
+ console.log(missingFields);
+
if (missingFields.length > 0) {
this.$Message.warning('请填写所有必填项');
return;
@@ -2646,39 +2707,39 @@ export default {
},
// 切换到事后支付表格
nextPaymentStep() {
- // 保存事前支付表格的数据
+ // 保存事前支付表格的数据
if (this.form.before_contract_template && !this.form.showAfterPayment) {
- // 获取所有输入控件
- const inputs = this.$refs.beforePaymentForm.querySelectorAll('input, select, textarea');
-
- // 遍历所有输入控件,更新值到 HTML
- inputs.forEach(input => {
- const fieldName = input.getAttribute('data-field');
- if (fieldName) {
- const field = this.form.before_contract_template.contract_template_fields.find(f => f.field === fieldName);
- if (field) {
- if (input.type === 'checkbox' || input.type === 'radio') {
- // 对于复选框和单选框,需要找到选中的值
- const checkedInput = this.$refs.beforePaymentForm.querySelector(`[data-field="${fieldName}"]:checked`);
- field.value = checkedInput ? checkedInput.value : '';
- // 更新 HTML 中的 checked 状态
- if (checkedInput) {
- checkedInput.setAttribute('checked', 'checked');
+ // 获取所有输入控件
+ const inputs = this.$refs.beforePaymentForm.querySelectorAll('input, select, textarea');
+
+ // 遍历所有输入控件,更新值到 HTML
+ inputs.forEach(input => {
+ const fieldName = input.getAttribute('data-field');
+ if (fieldName) {
+ const field = this.form.before_contract_template.contract_template_fields.find(f => f.field === fieldName);
+ if (field) {
+ if (input.type === 'checkbox' || input.type === 'radio') {
+ // 对于复选框和单选框,需要找到选中的值
+ const checkedInput = this.$refs.beforePaymentForm.querySelector(`[data-field="${fieldName}"]:checked`);
+ field.value = checkedInput ? checkedInput.value : '';
+ // 更新 HTML 中的 checked 状态
+ if (checkedInput) {
+ checkedInput.setAttribute('checked', 'checked');
+ }
+ } else {
+ field.value = input.value;
+ // 更新 HTML 中的 value
+ input.setAttribute('value', input.value);
}
- } else {
- field.value = input.value;
- // 更新 HTML 中的 value
- input.setAttribute('value', input.value);
}
}
- }
- });
-
- // 获取更新后的 HTML
- const beforeFormHtml = this.$refs.beforePaymentForm.innerHTML;
-
- // 更新模板和保存数据
- this.form.before_forms = beforeFormHtml;
+ });
+
+ // 获取更新后的 HTML
+ const beforeFormHtml = this.$refs.beforePaymentForm.innerHTML;
+
+ // 更新模板和保存数据
+ this.form.before_forms = beforeFormHtml;
}
this.form.showAfterPayment = true;
},
@@ -2751,12 +2812,13 @@ export default {
},
// 编辑按钮点击事件
- async handleEdit(row) {
+ async handleEdit(row, isFromPayment = false) {
this.isEditMode = true;
this.currentContractId = row.id;
this.isShowAdd = true;
- this.currentStep = 1;
-
+ this.currentStep = 1; // 始终保持初始值为1
+ this.isFromPayment = isFromPayment; // 设置是否从付款登记进入
+
try {
// 1. 先获取分类选项
await this.getCategoryOptions();
@@ -2796,8 +2858,6 @@ export default {
this.form.purchaseMethod = detail.purchase_way_id;
}
- console.log("detail", detail);
-
// 保存其他表单数据
this.form = {
...this.form,
@@ -2837,6 +2897,15 @@ export default {
if (this.form.plan && this.form.plan.length > 0) {
this.form.plan_display = this.form.plan.map(item => item.label).join(', ');
}
+
+ // 如果是从付款登记进入,手动触发流程
+ if (isFromPayment) {
+ this.disablePrevStep = true;
+ // 手动触发第一步到第二步的流程
+ await this.nextStep();
+ // 手动触发第二步到第三步的流程
+ await this.nextStep();
+ }
}
} catch (error) {
console.error('初始化编辑数据失败:', error);
@@ -3030,6 +3099,38 @@ export default {
return true;
},
+ async checkFormsBeforePayment(row) {
+ try {
+ // 获取最新的合同详情
+ const res = await detailContract({ id: row.id });
+ if (res) {
+ console.log("detail", res);
+
+ // 检查是否有事前支付表格且未填写
+ if (res.before_contract_template && !res.before_forms) {
+ // 有事前支付表格但未填写,进入编辑模式
+ await this.handleEdit(row, true);
+ return;
+ }
+
+ // 检查是否有事后支付表格且未填写
+ if (res.contract_template && !res.forms) {
+ // 有事后支付表格但未填写,进入编辑模式
+ await this.handleEdit(row, true);
+ return;
+ }
+
+ // 如果都有填写或没有配置支付表格,则继续付款登记流程
+ this.$refs['paymentRegistration'].getContract(row);
+ this.$refs['paymentRegistration'].isShowPaymentRegistration = true;
+ } else {
+ this.$Message.error('获取合同详情失败');
+ }
+ } catch (error) {
+ console.error('Error checking forms:', error);
+ this.$Message.error('检查表单时发生错误');
+ }
+ },
},
mounted() {
this.window.width = screen.availWidth * 0.95
diff --git a/src/views/contract/paymentRegistrationList.vue b/src/views/contract/paymentRegistrationList.vue
index bc2a7ca..76566d5 100644
--- a/src/views/contract/paymentRegistrationList.vue
+++ b/src/views/contract/paymentRegistrationList.vue
@@ -159,6 +159,7 @@
+
@@ -181,6 +182,7 @@ import printUtilityBill from "./components/printUtilityBill";
import printReimbursementSimple from "./components/printReimbursementSimple";
import printMeetingSettlement from "./components/printMeetingSettlement";
import printFundApproval from "./components/printFundApproval";
+import printPaymentForm from "./components/printPaymentForm";
export default {
components: {
@@ -195,6 +197,7 @@ export default {
printMeetingSettlement,
printFundApproval,
detailPaymentRegistration,
+ printPaymentForm,
},
data() {
return {
@@ -551,9 +554,18 @@ export default {
},
async handlePrint(row) {
try {
- const rowIndex = this.list.findIndex(item => item.id === row.id);
- console.log('当前行号:', rowIndex);
+ // 检查合同信息中的forms和before_forms
+ if (row.contract) {
+ // 如果有forms或before_forms,显示支付表格打印窗口
+ if (row.contract.forms || row.contract.before_forms) {
+ this.$refs['printPaymentForm'].getDetailFundLog(row.id);
+ this.$refs['printPaymentForm'].isShow = true;
+ return;
+ }
+ }
+ // 如果没有forms和before_forms,则按原来的逻辑处理
+ const rowIndex = this.list.findIndex(item => item.id === row.id);
if(rowIndex === 0) { // 第一行
this.$refs['printRegistration'].getDetailFundLog(row.id);
this.$refs['printRegistration'].isShow = true;