Merge remote-tracking branch 'websoft/master'
# Conflicts: # src/views/business/contract-manage.vue # src/views/business/project-apply.vue
This commit is contained in:
@@ -279,6 +279,7 @@ export default {
|
||||
|
||||
:deep(.track-tracking-page__search .el-form-item__label) {
|
||||
min-width: 96px;
|
||||
max-width: 96px;
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
@@ -143,7 +143,7 @@
|
||||
>
|
||||
<section-card title="基础船舶信息">
|
||||
<el-row :gutter="18">
|
||||
<el-col :span="8">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="船舶所属组织" prop="organizationName">
|
||||
<el-select
|
||||
v-model="shipForm.organizationName"
|
||||
@@ -160,13 +160,17 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="船名" prop="shipName">
|
||||
<el-input v-model="shipForm.shipName" maxlength="20" show-word-limit />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="安放龙骨日期/建造完工日期" prop="keelLayingDate">
|
||||
<el-col :span="12">
|
||||
<el-form-item
|
||||
label="安放龙骨日期/建造完工日期"
|
||||
prop="keelLayingDate"
|
||||
label-width="88px"
|
||||
>
|
||||
<div class="date-range-inline">
|
||||
<el-date-picker
|
||||
v-model="shipForm.keelLayingDate"
|
||||
@@ -186,7 +190,7 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="18">
|
||||
<el-col :span="8">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="总长(m)" prop="totalLength">
|
||||
<el-input
|
||||
v-model="shipForm.totalLength"
|
||||
@@ -194,7 +198,7 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="船宽(m)" prop="shipWidth">
|
||||
<el-input
|
||||
v-model="shipForm.shipWidth"
|
||||
@@ -202,7 +206,7 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="型深(m)" prop="moldedDepth">
|
||||
<el-input
|
||||
v-model="shipForm.moldedDepth"
|
||||
@@ -210,9 +214,7 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="18">
|
||||
<el-col :span="8">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="最大船高(m)" prop="maxShipHeight">
|
||||
<el-input
|
||||
v-model="shipForm.maxShipHeight"
|
||||
@@ -220,7 +222,9 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
</el-row>
|
||||
<el-row :gutter="18">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="空载吃水(t)" prop="lightDraft">
|
||||
<el-input
|
||||
v-model="shipForm.lightDraft"
|
||||
@@ -228,7 +232,7 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="满载吃水(t)" prop="fullLoadDraft">
|
||||
<el-input
|
||||
v-model="shipForm.fullLoadDraft"
|
||||
@@ -236,9 +240,7 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="18">
|
||||
<el-col :span="8">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="航区" prop="navigationArea">
|
||||
<div class="navigation-area-field">
|
||||
<el-select v-model="shipForm.navigationArea" placeholder="请选择">
|
||||
@@ -279,24 +281,22 @@
|
||||
<div class="cert-block">
|
||||
<div class="cert-block__title">船舶所有权证书</div>
|
||||
<el-row :gutter="18">
|
||||
<el-col :span="8">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="登记号码" prop="ownershipRegistrationNo">
|
||||
<el-input v-model="shipForm.ownershipRegistrationNo" maxlength="50" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="初次登记号码" prop="initialRegistrationNo">
|
||||
<el-input v-model="shipForm.initialRegistrationNo" maxlength="50" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="船舶所有人" prop="shipOwner">
|
||||
<el-input v-model="shipForm.shipOwner" maxlength="50" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="18">
|
||||
<el-col :span="8">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="取得所有权日期" prop="ownershipAcquisitionDate">
|
||||
<el-date-picker
|
||||
v-model="shipForm.ownershipAcquisitionDate"
|
||||
@@ -305,7 +305,9 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
</el-row>
|
||||
<el-row :gutter="18">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="船舶识别号" prop="shipIdentifierNo">
|
||||
<el-input
|
||||
v-model="shipForm.shipIdentifierNo"
|
||||
@@ -324,7 +326,7 @@
|
||||
<div class="cert-block">
|
||||
<div class="cert-block__title">内河船舶安全与环保证书</div>
|
||||
<el-row :gutter="18">
|
||||
<el-col :span="8">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="总吨" prop="grossTonnage">
|
||||
<el-input-number
|
||||
v-model="shipForm.grossTonnage"
|
||||
@@ -334,7 +336,7 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="净吨" prop="netTonnage">
|
||||
<el-input-number
|
||||
v-model="shipForm.netTonnage"
|
||||
@@ -344,14 +346,12 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="船检登记号" prop="shipInspectionNo">
|
||||
<el-input v-model="shipForm.shipInspectionNo" maxlength="50" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="18">
|
||||
<el-col :span="8">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="船舶类型" prop="shipType">
|
||||
<el-select v-model="shipForm.shipType" placeholder="请选择船舶类型" clearable>
|
||||
<el-option label="散货船" value="散货船" />
|
||||
|
||||
@@ -488,7 +488,6 @@
|
||||
>新增联系人</el-button
|
||||
>
|
||||
</div>
|
||||
<section-card>
|
||||
<el-table :data="contactTableData" border class="contact-table">
|
||||
<el-table-column label="序号" prop="__index" width="90" align="center" />
|
||||
<el-table-column label="联系人姓名" prop="contactName" min-width="150" />
|
||||
@@ -520,7 +519,6 @@
|
||||
@size-change="size => handleDetailSizeChange('contact', size)"
|
||||
@current-change="page => handleDetailCurrentChange('contact', page)"
|
||||
/>
|
||||
</section-card>
|
||||
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="收款信息" name="receiptAccounts">
|
||||
@@ -1372,6 +1370,8 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { h } from 'vue';
|
||||
import { ElTreeSelect } from 'element-plus';
|
||||
import {
|
||||
getList,
|
||||
getDetail,
|
||||
@@ -1773,11 +1773,8 @@ export default {
|
||||
label: '所属组织',
|
||||
prop: 'deptName',
|
||||
search: true,
|
||||
searchType: 'select',
|
||||
searchOrder: 1,
|
||||
searchValue: '',
|
||||
minWidth: 180,
|
||||
dicData: [{ label: '全部', value: '' }],
|
||||
},
|
||||
{
|
||||
label: '准入类型',
|
||||
@@ -2441,13 +2438,7 @@ export default {
|
||||
this.deptOptions = this.flattenDept(this.deptTree);
|
||||
this.setDefaultTopLevelDept();
|
||||
const deptColumn = this.findColumn(this.option.column, 'deptName');
|
||||
deptColumn.dicData = [
|
||||
{ label: '全部', value: '' },
|
||||
...this.deptOptions.map(item => ({
|
||||
label: item.label,
|
||||
value: item.rawLabel,
|
||||
})),
|
||||
];
|
||||
deptColumn.renderSearch = scope => this.renderDeptSearch(scope);
|
||||
})
|
||||
.finally(() => {
|
||||
this.deptSearchInitialized = true;
|
||||
@@ -2669,6 +2660,31 @@ export default {
|
||||
this.archiveForm.deptName = deptNames.join(',');
|
||||
this.$refs.archiveForm?.validateField('deptName');
|
||||
},
|
||||
renderDeptSearch(scope) {
|
||||
// 搜索区所属组织:多选树形下拉(与新增/编辑表单一致)
|
||||
// 多选返回 ID 数组,转换为部门名称按逗号拼接写入 searchForm.deptName
|
||||
return h(ElTreeSelect, {
|
||||
modelValue: Array.isArray(scope.row?.deptName) ? scope.row.deptName : [],
|
||||
'onUpdate:modelValue': value => {
|
||||
// 多选模式:modelValue 必须是 ID 数组,否则 el-tree-select 内部状态会错乱导致无法再次选中
|
||||
const ids = Array.isArray(value) ? value : value ? [value] : [];
|
||||
if (scope.row) scope.row.deptName = ids;
|
||||
},
|
||||
data: this.deptTree,
|
||||
'node-key': 'value',
|
||||
'check-strictly': true,
|
||||
multiple: true,
|
||||
filterable: true,
|
||||
clearable: true,
|
||||
'render-after-expand': false,
|
||||
collapseTags: true,
|
||||
'collapse-tags-tooltip': true,
|
||||
'default-expand-all': false,
|
||||
style: 'width: 100%',
|
||||
placeholder: '请选择 所属组织',
|
||||
props: { label: 'label', value: 'value', children: 'children' },
|
||||
});
|
||||
},
|
||||
handleNoFixedTermChange(checked) {
|
||||
this.archiveForm.businessTermType = checked ? '长期' : '固定期限';
|
||||
if (checked) {
|
||||
@@ -4529,6 +4545,13 @@ export default {
|
||||
this.onLoad(this.page);
|
||||
},
|
||||
searchChange(params, done) {
|
||||
// 搜索区所属组织多选返回的是部门 ID 数组,需转成部门名称逗号串传给后端(与列表接口 deptName 字段一致)
|
||||
if (Array.isArray(params.deptName)) {
|
||||
params.deptName = params.deptName
|
||||
.map(id => this.deptOptions.find(item => String(item.value) === String(id))?.rawLabel)
|
||||
.filter(Boolean)
|
||||
.join(',');
|
||||
}
|
||||
this.query = this.buildQuery(params);
|
||||
this.page.currentPage = 1;
|
||||
this.onLoad(this.page);
|
||||
|
||||
Reference in New Issue
Block a user