Merge remote-tracking branch 'origin/master' into feature/hcs-api-p0-web
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user