Merge remote-tracking branch 'origin/master' into feature/hcs-api-p0-web

This commit is contained in:
刘泉佳
2026-10-22 09:43:02 +08:00
108 changed files with 7779 additions and 1683 deletions
+55 -13
View File
@@ -413,17 +413,15 @@
/>
</el-select>
</el-form-item>
<el-form-item label="合同编号">
<el-form-item label="合同编号" prop="contractNo">
<el-input
v-model="form.contractNo"
disabled
maxlength="100"
clearable
:placeholder="
formMode === 'add'
? form.organizationId
? '系统按部门规则自动生成'
: '请先选择合同负责部门'
: ''
formMode === 'add' ? '不填写则按部门规则自动生成' : '请输入合同编号'
"
@input="handleContractNoInput"
/>
</el-form-item>
<el-form-item label="合同名称" prop="contractName">
@@ -687,7 +685,12 @@
<el-radio label="manual">账单导入生成</el-radio>
</el-radio-group>
</div>
<el-button type="primary" @click="openBillingPlan()">添加</el-button>
<el-button
v-if="form.feeGenerationMode !== 'manual'"
type="primary"
@click="openBillingPlan()"
>添加</el-button
>
</div>
<el-table :data="billingPlanRows" border>
<el-table-column type="index" label="序号" width="80" align="center" />
@@ -1313,7 +1316,23 @@ export default {
{ label: '已到期', value: 'expired', statKey: 'expired' },
],
form: defaultForm(),
contractNoManual: false,
formRules: {
contractNo: [
{
validator: (rule, value, callback) => {
const contractNo = String(value || '').trim();
if (this.formMode === 'edit' && !contractNo) {
return callback(new Error('请输入合同编号'));
}
if (contractNo.length > 100) {
return callback(new Error('合同编号不能超过100个字符'));
}
callback();
},
trigger: 'blur',
},
],
contractName: [{ required: true, message: '请输入合同名称', trigger: 'blur' }],
contractCategory: [{ required: true, message: '请选择合同类别', trigger: 'change' }],
signType: [{ required: true, message: '请选择签约类型', trigger: 'change' }],
@@ -1936,6 +1955,7 @@ export default {
this.api.getDetail(id).then(res => this.applyDetail(res.data?.data || {}));
},
resetFormState() {
this.contractNoManual = false;
this.form = {
...defaultForm(),
handlerUserName:
@@ -2011,7 +2031,20 @@ export default {
this.$router.$avueRouter?.closeTag?.();
this.$router.push(contractManageListRoute);
},
validateContractNo() {
const contractNo = String(this.form.contractNo || '').trim();
if (this.formMode === 'edit' && !contractNo) {
this.$message.warning('请输入合同编号');
return false;
}
if (contractNo.length > 100) {
this.$message.warning('合同编号不能超过100个字符');
return false;
}
return true;
},
validateBase(action) {
if (!this.validateContractNo()) return false;
if (action === 'temporary') {
const required = [
['signType', '签约类型'],
@@ -2097,6 +2130,7 @@ export default {
const projectName = projectId ? normalizeProjectValue(this.form.projectName) : '';
return {
...this.form,
contractNo: String(this.form.contractNo || '').trim(),
projectId,
projectName,
copyCount: normalizeOptionalInteger(this.form.copyCount),
@@ -2145,7 +2179,9 @@ export default {
bizType: 'contract-manage',
bizId: id,
subjectName: saved.contractName || submit.contractName || '',
approvalStatus: previousApprovalStatus || saved.approvalStatus || submit.approvalStatus || '',
approvalStatus:
previousApprovalStatus || saved.approvalStatus || submit.approvalStatus || '',
mkEnabled: this.mkEnabled,
})
);
}
@@ -2184,6 +2220,7 @@ export default {
bizId: payload.id || this.form.id,
subjectName: payload.contractName || this.form.contractName || '',
approvalStatus: this.form.approvalStatus || 'change_rejected',
mkEnabled: this.mkEnabled,
}).then(() => {
this.$message.success('已重新提交变更审批');
this.closeForm();
@@ -2507,11 +2544,14 @@ export default {
this.refreshPreviewContractNo();
}
},
handleContractNoInput(value) {
this.contractNoManual = String(value || '').trim() !== '';
},
refreshPreviewContractNo() {
if (this.formMode !== 'add') return;
const organizationId = this.form.organizationId;
if (!organizationId) {
this.form.contractNo = '';
if (!this.contractNoManual) this.form.contractNo = '';
return;
}
const requestId = (this.contractNoPreviewRequestId =
@@ -2519,11 +2559,11 @@ export default {
api
.nextContractNo(organizationId)
.then(res => {
if (requestId !== this.contractNoPreviewRequestId) return;
if (requestId !== this.contractNoPreviewRequestId || this.contractNoManual) return;
this.form.contractNo = res.data?.data || '';
})
.catch(() => {
if (requestId !== this.contractNoPreviewRequestId) return;
if (requestId !== this.contractNoPreviewRequestId || this.contractNoManual) return;
this.form.contractNo = '';
});
},
@@ -2956,6 +2996,7 @@ export default {
},
getContractChangeFieldLabel(field) {
const labels = {
contractNo: '合同编号',
contractName: '合同名称',
partyB: '乙方',
startDate: '开始日期',
@@ -3202,6 +3243,7 @@ export default {
bizId: row.id,
subjectName: row.contractName || '',
approvalStatus: row.approvalStatus || '',
mkEnabled: this.mkEnabled,
})
)
: request();
@@ -3578,7 +3620,7 @@ export default {
:deep(.el-form-item) {
align-items: center;
margin-bottom: 24px;
//margin-bottom: 24px;
}
:deep(.el-form-item__label) {