修改禅道已知bug

This commit is contained in:
qq787203167
2022-05-11 11:09:23 +08:00
parent 0f78e9fc6c
commit 44a2fa1d16
20 changed files with 83 additions and 20 deletions
@@ -163,6 +163,7 @@
v-model="formInline[item.db_field_name]" v-model="formInline[item.db_field_name]"
style="width: 100%" style="width: 100%"
:maxTagCount="1" :maxTagCount="1"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
:tree-data="treeData" :tree-data="treeData"
tree-checkable tree-checkable
placeholder="Please select" placeholder="Please select"
@@ -155,6 +155,7 @@
v-model="formInline[item.db_field_name]" v-model="formInline[item.db_field_name]"
style="width: 100%" style="width: 100%"
:maxTagCount="1" :maxTagCount="1"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
:tree-data="treeData" :tree-data="treeData"
tree-checkable tree-checkable
placeholder="Please select" placeholder="Please select"
@@ -222,6 +223,7 @@
:maxTagCount="1" :maxTagCount="1"
style="width: 100%" style="width: 100%"
:tree-data="item.tree" :tree-data="item.tree"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
tree-checkable tree-checkable
:placeholder="$t('PleaseSelect')+item.db_field_txt" :placeholder="$t('PleaseSelect')+item.db_field_txt"
/> />
@@ -12,6 +12,7 @@
v-model="queryParam[item.db_field_name]" v-model="queryParam[item.db_field_name]"
:maxTagCount="1" :maxTagCount="1"
:tree-data="item.tree" :tree-data="item.tree"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
tree-checkable tree-checkable
:placeholder="$t('PleaseSelect')+item.db_field_txt" :placeholder="$t('PleaseSelect')+item.db_field_txt"
/> />
@@ -76,6 +77,7 @@
class="box-input" class="box-input"
v-model="queryParam[item.db_field_name]" v-model="queryParam[item.db_field_name]"
:maxTagCount="1" :maxTagCount="1"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
:tree-data="item.tree" :tree-data="item.tree"
tree-checkable tree-checkable
:placeholder="$t('PleaseSelect')+item.db_field_txt" :placeholder="$t('PleaseSelect')+item.db_field_txt"
@@ -185,6 +185,7 @@
v-model="formInline[item.db_field_name]" v-model="formInline[item.db_field_name]"
:maxTagCount="1" :maxTagCount="1"
style="width: 100%" style="width: 100%"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
:tree-data="item.tree" :tree-data="item.tree"
tree-checkable tree-checkable
:placeholder="$t('PleaseSelect')+item.db_field_txt" :placeholder="$t('PleaseSelect')+item.db_field_txt"
@@ -11,6 +11,7 @@
class="box-input" class="box-input"
v-model="queryParam[item.db_field_name]" v-model="queryParam[item.db_field_name]"
:maxTagCount="1" :maxTagCount="1"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
:tree-data="item.tree" :tree-data="item.tree"
tree-checkable tree-checkable
:placeholder="$t('PleaseSelect')+item.db_field_txt" :placeholder="$t('PleaseSelect')+item.db_field_txt"
@@ -74,6 +75,7 @@
class="box-input" class="box-input"
v-model="queryParam[item.db_field_name]" v-model="queryParam[item.db_field_name]"
:maxTagCount="1" :maxTagCount="1"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
:tree-data="item.tree" :tree-data="item.tree"
tree-checkable tree-checkable
:placeholder="$t('PleaseSelect')+item.db_field_txt" :placeholder="$t('PleaseSelect')+item.db_field_txt"
@@ -7,7 +7,7 @@
<a-radio-button v-for="(item, key) in dictOptions" :key="key" :value="item.value">{{ item.text }}</a-radio-button> <a-radio-button v-for="(item, key) in dictOptions" :key="key" :value="item.value">{{ item.text }}</a-radio-button>
</a-radio-group> </a-radio-group>
<a-select v-else-if="tagType=='select'" :getPopupContainer = "getPopupContainer" :placeholder="placeholder" :disabled="disabled" :value="getValueSting" @change="handleInput"> <a-select v-else-if="tagType=='select'" allowClear :getPopupContainer = "getPopupContainer" :placeholder="placeholder" :disabled="disabled" :value="getValueSting" @change="handleInput">
<!-- <a-select-option :value="null">{{$t('pleaseSelect')}}</a-select-option>--> <!-- <a-select-option :value="null">{{$t('pleaseSelect')}}</a-select-option>-->
<a-select-option v-for="(item, key) in dictOptionsValue" :key="key" :value="item.value"> <a-select-option v-for="(item, key) in dictOptionsValue" :key="key" :value="item.value">
<span class="itemOption" :title=" item.text || item.label "> <span class="itemOption" :title=" item.text || item.label ">
@@ -10,11 +10,8 @@
@change="onChange" @change="onChange"
:disabled="disabled" :disabled="disabled"
mode="multiple" mode="multiple"
:maxTagCount="1"
:maxTagTextLength="2"
:placeholder="placeholder" :placeholder="placeholder"
:getPopupContainer="getParentContainer" :getPopupContainer="getParentContainer"
:maxTagPlaceholder="content"
optionFilterProp="children" optionFilterProp="children"
:filterOption="filterOption"> :filterOption="filterOption">
<a-select-option <a-select-option
@@ -187,13 +184,11 @@
/* max-width: 50% !important;*/ /* max-width: 50% !important;*/
/*}*/ /*}*/
.ant-select-selection--multiple { .ant-select-selection--multiple {
overflow: hidden; overflow: auto;
} }
.ant-select-selection__rendered ul { .ant-select-selection--multiple::-webkit-scrollbar {
word-break: break-all; display: none; /* Chrome Safari */
display: -webkit-box;
-webkit-box-orient: vertical;
float: left;
} }
</style> </style>
@@ -99,6 +99,7 @@
<a-form-model-item class="itemModel" :prop="item.db_field_name"> <a-form-model-item class="itemModel" :prop="item.db_field_name">
<a-range-picker class="box-input" v-model="formInline[item.db_field_name]" <a-range-picker class="box-input" v-model="formInline[item.db_field_name]"
:disabled="disabled" :disabled="disabled"
:getCalendarContainer="(trigger) => trigger.parentNode"
@change="onChange(item.db_field_name)"></a-range-picker> @change="onChange(item.db_field_name)"></a-range-picker>
</a-form-model-item> </a-form-model-item>
</div> </div>
@@ -130,7 +131,7 @@
<span class="Required" v-if="item.field_must_input == 1">*</span> <span class="Required" v-if="item.field_must_input == 1">*</span>
<span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span> <span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
</div> </div>
<a-form-model-item class="itemModel" :prop="item.db_field_name"> <a-form-model-item class="itemModel-text" :prop="item.db_field_name">
<a-textarea <a-textarea
:placeholder="$t('PleaseEnter')+item.db_field_txt" :placeholder="$t('PleaseEnter')+item.db_field_txt"
:disabled="disabled" :disabled="disabled"
@@ -196,6 +197,7 @@
<a-tree-select <a-tree-select
v-model="formInline[item.db_field_name]" v-model="formInline[item.db_field_name]"
:maxTagCount="1" :maxTagCount="1"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
style="width: 100%" style="width: 100%"
:tree-data="item.tree" :tree-data="item.tree"
tree-checkable tree-checkable
@@ -424,7 +426,7 @@
}) })
} }
} }
if (res.field_show_type === '1' || if (res.field_show_type === '1' ||
res.field_show_type === '8' || res.field_show_type === '9' || res.field_show_type === '10' res.field_show_type === '8' || res.field_show_type === '9' || res.field_show_type === '10'
|| res.field_show_type === '11') { || res.field_show_type === '11') {
rule.push({ rule.push({
@@ -501,6 +503,9 @@
width: 100%; width: 100%;
} }
.itemModel-text .ant-form-item-control-wrapper {
width: 100% !important;
}
.box-input .ant-select-selection--single { .box-input .ant-select-selection--single {
height: 38px; height: 38px;
} }
@@ -563,6 +568,13 @@
width: calc(100% - 130px); width: calc(100% - 130px);
display: inline-block; display: inline-block;
margin-top: 2px; margin-top: 2px;
height: 40px;
}
.itemModel-text {
width: calc(100% - 130px);
display: inline-block;
margin-top: 2px;
} }
.Required { .Required {
+2
View File
@@ -11,6 +11,7 @@
class="box-input" class="box-input"
v-model="queryParam[item.db_field_name]" v-model="queryParam[item.db_field_name]"
:maxTagCount="1" :maxTagCount="1"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
:tree-data="item.tree" :tree-data="item.tree"
tree-checkable tree-checkable
:placeholder="$t('PleaseSelect')+item.db_field_txt" :placeholder="$t('PleaseSelect')+item.db_field_txt"
@@ -76,6 +77,7 @@
class="box-input" class="box-input"
v-model="queryParam[item.db_field_name]" v-model="queryParam[item.db_field_name]"
:maxTagCount="1" :maxTagCount="1"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
:tree-data="item.tree" :tree-data="item.tree"
tree-checkable tree-checkable
:placeholder="$t('PleaseSelect')+item.db_field_txt" :placeholder="$t('PleaseSelect')+item.db_field_txt"
@@ -11,6 +11,7 @@
class="box-input" class="box-input"
v-model="queryParam[item.db_field_name]" v-model="queryParam[item.db_field_name]"
:maxTagCount="1" :maxTagCount="1"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
:tree-data="item.tree" :tree-data="item.tree"
tree-checkable tree-checkable
:placeholder="$t('PleaseSelect')+item.db_field_txt" :placeholder="$t('PleaseSelect')+item.db_field_txt"
@@ -76,6 +77,7 @@
class="box-input" class="box-input"
v-model="queryParam[item.db_field_name]" v-model="queryParam[item.db_field_name]"
:maxTagCount="1" :maxTagCount="1"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
:tree-data="item.tree" :tree-data="item.tree"
tree-checkable tree-checkable
:placeholder="$t('PleaseSelect')+item.db_field_txt" :placeholder="$t('PleaseSelect')+item.db_field_txt"
@@ -11,6 +11,7 @@
class="box-input" class="box-input"
v-model="queryParam[item.db_field_name]" v-model="queryParam[item.db_field_name]"
:maxTagCount="1" :maxTagCount="1"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
:tree-data="item.tree" :tree-data="item.tree"
tree-checkable tree-checkable
:placeholder="$t('PleaseSelect')+item.db_field_txt" :placeholder="$t('PleaseSelect')+item.db_field_txt"
@@ -76,6 +77,7 @@
class="box-input" class="box-input"
v-model="queryParam[item.db_field_name]" v-model="queryParam[item.db_field_name]"
:maxTagCount="1" :maxTagCount="1"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
:tree-data="item.tree" :tree-data="item.tree"
tree-checkable tree-checkable
:placeholder="$t('PleaseSelect')+item.db_field_txt" :placeholder="$t('PleaseSelect')+item.db_field_txt"
@@ -199,7 +199,7 @@
<a-form-model-item class="itemModel" :prop="item.db_field_name"> <a-form-model-item class="itemModel" :prop="item.db_field_name">
<a-tree-select <a-tree-select
v-model="formInline[item.db_field_name]" v-model="formInline[item.db_field_name]"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
style="width: 100%" style="width: 100%"
:tree-data="item.tree" :tree-data="item.tree"
tree-checkable tree-checkable
@@ -9,6 +9,7 @@
class="text-select" class="text-select"
v-model="queryParamOne[item.db_field_name]" v-model="queryParamOne[item.db_field_name]"
:maxTagCount="1" :maxTagCount="1"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
:tree-data="item.tree" :tree-data="item.tree"
tree-checkable tree-checkable
@click="treeClick(item.db_field_name)" @click="treeClick(item.db_field_name)"
@@ -112,6 +112,7 @@
<a-tree-select <a-tree-select
v-model="formInline.technologyTerritory" v-model="formInline.technologyTerritory"
:maxTagCount="1" :maxTagCount="1"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
class="box-input" class="box-input"
style="width: 100%" style="width: 100%"
:tree-data="CategoryTreeList" :tree-data="CategoryTreeList"
@@ -182,6 +182,7 @@
<a-tree-select <a-tree-select
v-model="formInline.technologyTerritory" v-model="formInline.technologyTerritory"
:maxTagCount="1" :maxTagCount="1"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
class="box-input" class="box-input"
style="width: 100%" style="width: 100%"
:tree-data="CategoryTreeList" :tree-data="CategoryTreeList"
@@ -266,7 +267,7 @@
<div class="title-text"> <div class="title-text">
<span class="title-text-text" :title="$t('remarks')">{{$t('remarks')}}</span> <span class="title-text-text" :title="$t('remarks')">{{$t('remarks')}}</span>
</div> </div>
<a-form-model-item class="itemModel" :prop="'remark'"> <a-form-model-item class="itemModel-text" :prop="'remark'">
<a-textarea <a-textarea
:placeholder="$t('PleaseEnter')+$t('remarks')" :placeholder="$t('PleaseEnter')+$t('remarks')"
:disabled="disabled" :disabled="disabled"
@@ -661,6 +662,10 @@
width: 100%; width: 100%;
} }
.itemModel-text .ant-form-item-control-wrapper {
width: 100% !important;
}
.box-input .ant-select-selection--single { .box-input .ant-select-selection--single {
height: 38px; height: 38px;
} }
@@ -731,6 +736,13 @@
width: calc(100% - 130px); width: calc(100% - 130px);
display: inline-block; display: inline-block;
margin-top: 2px; margin-top: 2px;
height: 40px;
}
.itemModel-text {
width: calc(100% - 130px);
display: inline-block;
margin-top: 2px;
} }
.Required { .Required {
@@ -67,6 +67,7 @@
v-model="formInline.technologyTerritory" v-model="formInline.technologyTerritory"
:maxTagCount="1" :maxTagCount="1"
class="box-input" class="box-input"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
style="width: 100%" style="width: 100%"
:tree-data="CategoryTreeList" :tree-data="CategoryTreeList"
tree-checkable tree-checkable
@@ -432,6 +432,7 @@
width: calc(100% - 130px); width: calc(100% - 130px);
display: inline-block; display: inline-block;
margin-top: 2px; margin-top: 2px;
height: 40px;
} }
.Required { .Required {
@@ -196,6 +196,8 @@
</div> </div>
<a-form-model-item class="itemModel" :prop="'regulationOwnerId'"> <a-form-model-item class="itemModel" :prop="'regulationOwnerId'">
<a-select :placeholder="$t('PleaseSelect')+$t('regulatoryEngineer')" <a-select :placeholder="$t('PleaseSelect')+$t('regulatoryEngineer')"
class="box-input"
allowClear
:disabled="formInline.roleCode == 0 ? false : true" :disabled="formInline.roleCode == 0 ? false : true"
v-model="formInline.regulationOwnerId"> v-model="formInline.regulationOwnerId">
<a-select-option v-for="(item, key) in regulatoryEngineerList" <a-select-option v-for="(item, key) in regulatoryEngineerList"
@@ -219,6 +221,8 @@
</div> </div>
<a-form-model-item class="itemModel" :prop="'homologationEngineerId'"> <a-form-model-item class="itemModel" :prop="'homologationEngineerId'">
<a-select :placeholder="$t('PleaseSelect')+$t('certifiedEngineer')" <a-select :placeholder="$t('PleaseSelect')+$t('certifiedEngineer')"
class="box-input"
allowClear
:disabled="formInline.roleCode == 0 ? false : true" :disabled="formInline.roleCode == 0 ? false : true"
v-model="formInline.homologationEngineerId"> v-model="formInline.homologationEngineerId">
<a-select-option v-for="(item, key) in certificationEngineerList" <a-select-option v-for="(item, key) in certificationEngineerList"
@@ -240,6 +244,8 @@
</div> </div>
<a-form-model-item class="itemModel" :prop="'engineeringInterfacePerson'"> <a-form-model-item class="itemModel" :prop="'engineeringInterfacePerson'">
<a-select :placeholder="$t('PleaseSelect')+$t('engineeringInterfacePerson')" <a-select :placeholder="$t('PleaseSelect')+$t('engineeringInterfacePerson')"
class="box-input"
allowClear
:disabled="formInline.roleCode == 0 ? false : true" :disabled="formInline.roleCode == 0 ? false : true"
v-model="formInline.engineeringInterfacePerson"> v-model="formInline.engineeringInterfacePerson">
<a-select-option v-for="(item, key) in engineeringInterfacePersonList" <a-select-option v-for="(item, key) in engineeringInterfacePersonList"
@@ -279,8 +285,9 @@
<div class="title-text"> <div class="title-text">
<span class="title-text-text" :title="$t('remarks')">{{$t('remarks')}}</span> <span class="title-text-text" :title="$t('remarks')">{{$t('remarks')}}</span>
</div> </div>
<a-form-model-item class="itemModel" :prop="'remarks'"> <a-form-model-item class="itemModel-text" :prop="'remarks'">
<a-textarea <a-textarea
style="width: 100%"
:placeholder="$t('PleaseEnter')+$t('remarks')" :placeholder="$t('PleaseEnter')+$t('remarks')"
:disabled="false" :disabled="false"
v-model="formInline.remark" :rows="4"/> v-model="formInline.remark" :rows="4"/>
@@ -335,6 +342,8 @@
<a-form-model-item class="itemModel" prop="designInitiatorId"> <a-form-model-item class="itemModel" prop="designInitiatorId">
<a-select :placeholder="$t('PleaseSelect')+$t('Sponsor')" <a-select :placeholder="$t('PleaseSelect')+$t('Sponsor')"
:disabled="formInline.roleCode == 0 ? false : true" :disabled="formInline.roleCode == 0 ? false : true"
class="box-input"
allowClear
v-model="formInline.designInitiatorId"> v-model="formInline.designInitiatorId">
<a-select-option v-for="(item, key) in designInitiatorList" <a-select-option v-for="(item, key) in designInitiatorList"
:key="key" :key="key"
@@ -362,6 +371,8 @@
<a-form-model-item class="itemModel" prop="designDutyId"> <a-form-model-item class="itemModel" prop="designDutyId">
<a-select :placeholder="$t('PleaseSelect')+$t('personLiable')" <a-select :placeholder="$t('PleaseSelect')+$t('personLiable')"
:disabled="formInline.roleCode == 0 ? false : true" :disabled="formInline.roleCode == 0 ? false : true"
class="box-input"
allowClear
v-model="formInline.designDutyId"> v-model="formInline.designDutyId">
<a-select-option v-for="(item, key) in designDutyList" <a-select-option v-for="(item, key) in designDutyList"
:key="key" :key="key"
@@ -450,6 +461,8 @@
<a-form-model-item class="itemModel" prop="prehomoInitiatorId"> <a-form-model-item class="itemModel" prop="prehomoInitiatorId">
<a-select :placeholder="$t('PleaseSelect')+$t('Sponsor')" <a-select :placeholder="$t('PleaseSelect')+$t('Sponsor')"
:disabled="formInline.roleCode == 0 ? false : true" :disabled="formInline.roleCode == 0 ? false : true"
class="box-input"
allowClear
v-model="formInline.prehomoInitiatorId"> v-model="formInline.prehomoInitiatorId">
<a-select-option v-for="(item, key) in prehomoInitiatorList" <a-select-option v-for="(item, key) in prehomoInitiatorList"
:key="key" :key="key"
@@ -476,6 +489,8 @@
</div> </div>
<a-form-model-item class="itemModel" prop="prehomoDutyId"> <a-form-model-item class="itemModel" prop="prehomoDutyId">
<a-select :placeholder="$t('PleaseSelect')+$t('personLiable')" <a-select :placeholder="$t('PleaseSelect')+$t('personLiable')"
class="box-input"
allowClear
:disabled="formInline.roleCode == 0 ? false : true" :disabled="formInline.roleCode == 0 ? false : true"
v-model="formInline.prehomoDutyId"> v-model="formInline.prehomoDutyId">
<a-select-option v-for="(item, key) in prehomoDutyList" <a-select-option v-for="(item, key) in prehomoDutyList"
@@ -562,6 +577,8 @@
</div> </div>
<a-form-model-item class="itemModel" prop="verifyInitiatorId"> <a-form-model-item class="itemModel" prop="verifyInitiatorId">
<a-select :placeholder="$t('PleaseSelect')+$t('Sponsor')" <a-select :placeholder="$t('PleaseSelect')+$t('Sponsor')"
class="box-input"
allowClear
:disabled="formInline.roleCode == 0 ? false : true" :disabled="formInline.roleCode == 0 ? false : true"
v-model="formInline.verifyInitiatorId"> v-model="formInline.verifyInitiatorId">
<a-select-option v-for="(item, key) in verifyInitiatorList" <a-select-option v-for="(item, key) in verifyInitiatorList"
@@ -589,6 +606,8 @@
</div> </div>
<a-form-model-item class="itemModel" prop="verifyDutyId"> <a-form-model-item class="itemModel" prop="verifyDutyId">
<a-select :placeholder="$t('PleaseSelect')+$t('personLiable')" <a-select :placeholder="$t('PleaseSelect')+$t('personLiable')"
class="box-input"
allowClear
:disabled="formInline.roleCode == 0 ? false : true" :disabled="formInline.roleCode == 0 ? false : true"
v-model="formInline.verifyDutyId"> v-model="formInline.verifyDutyId">
<a-select-option v-for="(item, key) in verifyDutyList" <a-select-option v-for="(item, key) in verifyDutyList"
@@ -999,14 +1018,12 @@
width: calc(100% - 130px); width: calc(100% - 130px);
} }
/*.formAdd .ant-form-item {*/
/* margin-bottom: 20px;*/
/*}*/
.itemModel .ant-form-item-control-wrapper { .itemModel .ant-form-item-control-wrapper {
width: 100%; width: 100%;
} }
.itemModel-text .ant-form-item-control-wrapper{
width: 100% !important;
}
.box-input .ant-select-selection--single { .box-input .ant-select-selection--single {
height: 38px; height: 38px;
} }
@@ -1077,6 +1094,13 @@
width: calc(100% - 130px); width: calc(100% - 130px);
display: inline-block; display: inline-block;
margin-top: 2px; margin-top: 2px;
height: 40px;
}
.itemModel-text {
width: calc(100% - 130px);
display: inline-block;
margin-top: 2px;
} }
.Required { .Required {
+1
View File
@@ -86,6 +86,7 @@
:dropdownStyle="{maxHeight:'200px',overflow:'auto'}" :dropdownStyle="{maxHeight:'200px',overflow:'auto'}"
:treeData="treeData" :treeData="treeData"
:disabled="disable" :disabled="disable"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
v-model="model.parentId" v-model="model.parentId"
:placeholder="$t('nothing')"> :placeholder="$t('nothing')">
</a-tree-select> </a-tree-select>
@@ -48,6 +48,7 @@
<span slot="help">{{ validateStatus=='error'? $t('selectSuperiorMenu'):'&nbsp;&nbsp;' }}</span> <span slot="help">{{ validateStatus=='error'? $t('selectSuperiorMenu'):'&nbsp;&nbsp;' }}</span>
<a-tree-select <a-tree-select
style="width:100%" style="width:100%"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
:dropdownStyle="{ maxHeight: '200px', overflow: 'auto' }" :dropdownStyle="{ maxHeight: '200px', overflow: 'auto' }"
:treeData="treeData" :treeData="treeData"
v-model="model.parentId" v-model="model.parentId"