feat(project-apply): 调整项目管理表单及搜索功能
- 项目编号放开编辑,新增时可输入,编辑时禁用 - 取消项目简称的必填校验,仅限制最大长度20 - 业务部门、项目由来说明表单项占满一行,优化布局 - 业务部门下拉增加过滤,重大项目补录模式不显示外部组织 - 新增变更编号及变更日期字段,关联变更类型显示 - 搜索栏将项目负责人由下拉切换为手动输入模糊查询 - 新增项目编号、客户名称、下游承运商三个搜索字段 - 清理无用的搜索工具函数和配置,优化代码结构
This commit is contained in:
@@ -120,7 +120,12 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<div v-if="isChangeDialog"></div>
|
||||
<el-form-item v-if="isChangeDialog" label="变更编号" prop="changeNo">
|
||||
<el-input v-model="form.changeNo" disabled placeholder="系统自动生成" />
|
||||
</el-form-item>
|
||||
<el-form-item v-if="isChangeDialog" label="变更日期" prop="changeDate">
|
||||
<el-input v-model="form.changeDate" disabled placeholder="系统自动生成" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目类型" prop="projectType">
|
||||
<el-select
|
||||
v-model="form.projectType"
|
||||
@@ -138,7 +143,11 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="项目编号" prop="projectCode">
|
||||
<el-input v-model="form.projectCode" disabled placeholder="系统自动生成" />
|
||||
<el-input
|
||||
v-model="form.projectCode"
|
||||
placeholder="请输入项目编号,不填自动生成"
|
||||
:disabled="dialogType === 'edit'"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="项目名称" prop="projectName">
|
||||
<el-input
|
||||
@@ -156,7 +165,7 @@
|
||||
:disabled="isBasicInfoReadonly"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="业务部门" prop="businessDeptId">
|
||||
<el-form-item label="业务部门" prop="businessDeptId" class="project-apply-form__item--full">
|
||||
<el-tree-select
|
||||
v-model="form.businessDeptId"
|
||||
:data="businessDeptTreeOptions"
|
||||
@@ -201,7 +210,7 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="项目由来说明" prop="sourceRemark">
|
||||
<el-form-item label="项目由来说明" prop="sourceRemark" class="project-apply-form__item--full">
|
||||
<el-input v-model="form.sourceRemark" maxlength="300" :disabled="isBasicInfoReadonly" />
|
||||
</el-form-item>
|
||||
</div>
|
||||
@@ -790,6 +799,8 @@ const emptyForm = () => ({
|
||||
projectSource: '商务洽谈',
|
||||
sourceRemark: '',
|
||||
changeType: '',
|
||||
changeNo: '',
|
||||
changeDate: '',
|
||||
customerNames: '',
|
||||
carrierNames: '',
|
||||
fundLimit: '',
|
||||
@@ -947,7 +958,6 @@ export default {
|
||||
{ max: 50, message: '项目名称不能超过50个字符', trigger: 'blur' },
|
||||
],
|
||||
projectShortName: [
|
||||
{ required: true, message: '请输入项目简称', trigger: 'blur' },
|
||||
{ max: 20, message: '项目简称不能超过20个字符', trigger: 'blur' },
|
||||
],
|
||||
businessDeptId: [{ required: true, message: '请选择业务部门', trigger: 'change' }],
|
||||
@@ -1193,9 +1203,12 @@ export default {
|
||||
}
|
||||
this.api.getDetail(id).then(res => {
|
||||
const detail = res.data.data || {};
|
||||
const isChange = type === 'change';
|
||||
this.applyProjectDetail({
|
||||
...detail,
|
||||
changeType: type === 'change' ? this.resolveChangeType(detail) : detail.changeType,
|
||||
changeType: isChange ? this.resolveChangeType(detail) : detail.changeType,
|
||||
changeNo: isChange ? this.generateChangeNo(detail) : '',
|
||||
changeDate: isChange ? this.$dayjs().format('YYYY-MM-DD') : '',
|
||||
});
|
||||
});
|
||||
},
|
||||
@@ -1786,6 +1799,10 @@ export default {
|
||||
},
|
||||
];
|
||||
},
|
||||
generateChangeNo(detail) {
|
||||
const base = detail && detail.projectCode ? detail.projectCode : 'XM';
|
||||
return `${base}-BG${this.$dayjs().format('YYYYMMDD')}`;
|
||||
},
|
||||
handleBusinessDeptChange(value) {
|
||||
const dept = this.deptOptions.find(item => item.value === value);
|
||||
this.form.businessDeptName = dept ? dept.rawLabel : '';
|
||||
@@ -1803,7 +1820,7 @@ export default {
|
||||
loadDeptOptions() {
|
||||
getDeptTree().then(res => {
|
||||
const deptTree = res.data.data || [];
|
||||
const businessDeptTree = ['add', 'edit'].includes(this.dialogType)
|
||||
const businessDeptTree = ['add', 'edit', 'majorSupplement'].includes(this.dialogType)
|
||||
? this.excludeExternalOrganization(deptTree)
|
||||
: deptTree;
|
||||
const undertakeDeptTree =
|
||||
@@ -2172,6 +2189,15 @@ export default {
|
||||
min-width: 0 !important;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
// 占满整行的表单项(业务部门 / 项目由来说明)
|
||||
:deep(.project-apply-form__item--full) {
|
||||
grid-column: 1 / -1;
|
||||
|
||||
.el-form-item__content {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&__picker-icon {
|
||||
|
||||
Reference in New Issue
Block a user