ant design vue 1.7.8版本treeSelect组件坑
生活随笔
收集整理的這篇文章主要介紹了
ant design vue 1.7.8版本treeSelect组件坑
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
treeSelect組件對于一些屬性官方文檔沒有詳細(xì)說明踩坑
勾選效果圖:
搜索效果圖:
html:
<a-tree-selectclass="treeinput"v-model="form.codeSchemeId":dropdown-style="{ maxHeight: '300px', overflow: 'auto' }"placeholder="請選擇"tree-checkable:tree-data="SaveCodeList"showSearchlabelInValuetreeNodeFilterProp="schemeName":filterTreeNode="fillterFUN"><templateslot="title"slot-scope="{ versionNum, schemeName, remark, schemeId }"class="titleSchem"><a-tooltip><template slot="title"><span>{{ schemeName }}</span></template><div style="width: 26%" v-if="schemeId != '-1'">{{ schemeName }}</div><div style="width: 26%" v-if="schemeId == '-1'" class="titleSchem">{{ schemeName }}</div></a-tooltip><a-tooltip><template slot="title"><span>{{ versionNum }}</span></template><div style="width: 15%" v-if="schemeId != '-1'">{{ versionNum }}</div><div style="width: 15%" v-if="schemeId == '-1'" class="titleSchem">{{ versionNum }}</div></a-tooltip><a-tooltip><template slot="title"><span>{{ remark }}</span></template><div v-if="schemeId != '-1'">{{ remark }}</div><div v-if="schemeId == '-1'" class="titleSchem">{{ remark }}</div></a-tooltip></template></a-tree-select>javascript:
data(){return{//treeselect勾選的值form:{codeSchemeId: [], },//treeselect的下拉內(nèi)容SaveCodeList:[],} }, methods:{//treeselect搜索事件fillterFUN(searchVal, treeNode) {return treeNode.data.props.schemeName.includes(searchVal)},//查詢編碼方案modeManageMent() {const iten = {}this.keyword != '' ? (iten.keyword = this.keyword) : '',//這里是調(diào)后端接口返回的schemeEnableList(iten).then((res) => {//加一個行頭標(biāo)題欄const SaveCodeList = [{schemeId: '-1',schemeName: '編碼方案名稱',remark: '描述',versionNum: '版本編號',value: '-1',scopedSlots: { title: 'title' },disabled: true,//這里設(shè)置禁止勾選是為了效果像table標(biāo)題},]//如果已勾選的則不加入treeselect里,用于編輯回顯數(shù)據(jù)使用const NewSaveCodeList = res.data.filter((item) => !this.tableModelform.codeSchemeId.some((ele) => ele === item.schemeId))NewSaveCodeList.forEach((item) => {//把值額外賦值到value是為了搜索和勾選顯示值用的(schemeId是數(shù)據(jù)對象的唯一id)item.value = item.schemeId//把值額外賦值到scopedSlots 是為了插槽顯示如table列表一樣的效果item.scopedSlots = { title: 'title' }SaveCodeList.push(item)})this.SaveCodeList = SaveCodeList}).catch((err) => {this.$message.error(err.message)})}, }Css
.treeinput {width: 100%;line-height: 35px;overflow: auto;white-space: nowrap;text-overflow: ellipsis;margin-bottom: 10px; } .ant-select-tree-title {display: flex;display: -webkit-flex; /* Safari */> div {width: 59%;overflow: hidden;text-overflow: ellipsis;display: inline-flex;} } .titleSchem {background-color: #ececec;line-height: 33px;font-weight: 600; }勾選后獲取所有勾選的值:
const form = {codeSchemeId:[]}if (this.form.codeSchemeId.length) {this.form.codeSchemeId.forEach((item) => {//這個是所有勾選的值idform.codeSchemeId.push(item.value)})}踩坑點(diǎn):
1.搜索時使用treeNodeFilterProp是沒有效果的,改treeNodeFilterProp屬性值能對使用replaceFields有效, 所以我這邊使用filterTreeNode屬性進(jìn)行搜索 2.設(shè)置labelInValue勾選時才是保存鍵值對并且回顯在selecttree值是正確的 3.想使用插槽slot一定不能同時使用replaceFields 以上官方文檔沒有詳細(xì)說明,真是坑總結(jié)
以上是生活随笔為你收集整理的ant design vue 1.7.8版本treeSelect组件坑的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: avd修改dns方法(android s
- 下一篇: Pytorch快速搭建并训练CNN模型?