最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue項(xiàng)目element-ui級(jí)聯(lián)選擇器el-cascader回顯的問題及解決

 更新時(shí)間:2023年07月03日 10:58:12   作者:wocwin  
這篇文章主要介紹了vue項(xiàng)目element-ui級(jí)聯(lián)選擇器el-cascader回顯的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

vue項(xiàng)目element-ui級(jí)聯(lián)選擇器el-cascader回顯問題

1、需求

el-cascader內(nèi)部是數(shù)組形式的,而后臺(tái)接口只需傳入數(shù)組的最后一個(gè)字段,但修改時(shí)候往往也只返回這最后一個(gè)字段,導(dǎo)致el-cascader無法正確回顯

2、原因分析

v-model屬性才是回顯的關(guān)鍵,只有綁定了v-model屬性才會(huì)讓 <el-cascader \/> 回顯,而且數(shù)組中的值(即:targetViewId值)一定是最后一級(jí)的id加上它父級(jí)的id組成

3、解決方案

由于后端返回來的只有最后一級(jí)的id,所以我們需要寫一個(gè)遞歸來拿到最后一級(jí)id和它父級(jí)id的數(shù)組。廢話不多說直接上代碼

   /*
    * el-cascader遞歸獲取父級(jí)id
    * @param  list 數(shù)據(jù)列表
    * @param  id 后端返回的id
    * propsCascader 是el-cascader props屬性
    **/
    getParentsById(list, id) {
      for (let i in list) {
        if (list[i][this.propsCascader.value || 'value'] == id) {
          return [list[i][this.propsCascader.value || 'value']]
        }
        if (list[i].children) {
          let node = this.getParentsById(list[i].children, id)
          if (node !== undefined) {
            // 追加父節(jié)點(diǎn)
            node.unshift(list[i][this.propsCascader.value || 'value'])
            return node
          }
        }
      }
    },

4、效果圖

5、注意

如果直接將targetViewId賦值后臺(tái)返回的最后一個(gè)id值,也能回顯(最后一級(jí)沒有選中),其效果如下:

vue+elementui el-cascader回填功能

<el-cascader
              style="width:97%;margin:5px 0;"
              v-model="dataInfo2"
              :options="subjects"
              :props="defaultProps"
              @change="handleChange"
              placeholder="請(qǐng)選擇數(shù)據(jù)表"
              size="small">
</el-cascader>
updateChart(id) {
      this.$http.get('url?id='+id)
        .then(res => {
          if (res.data.success === true) {
            this.dataTableId = res.data.data.dataTableId
            this.dragTo.values = res.data.data.dragTo
            this.$refs.hottable.editShowTableMe(res.data.data)
            this.$http.post('url', {id: this.dataTableId})
              .then(response => {
                this.dataInfo2 = [response.data.data[0].directoryId,this.dataTableId]
                this.dragFrom.measures = []
                this.dragFrom.measures = response.data.data[0].design.schema.measure
                this.deleteChecked()
              })
              .catch(function(error) {
                console.log(error)
              })
          }
        })
        .catch(err => {
          console.log(err)
        })
    },
    deleteChecked() {
      var arr = []
      for (let i = 0; i < this.dragFrom.measures.length; i++) {
        for (let j = 0; j < this.dragTo.values.length; j++) {
          if (
            this.dragFrom.measures[i].column === this.dragTo.values[j].column
          ) {
            arr.push(i)
          }
        }
      }
      for (var k = 0; k < arr.length; k++) {
        if (k == 0) {
          this.dragFrom.measures.splice(arr[k], 1)   //刪除arr[0],刪除一個(gè)
        } else {
          this.dragFrom.measures.splice(arr[k] - k, 1)   //刪除arr[0],刪除一個(gè),這樣判斷的意思是一直從第一個(gè)開始刪除
        }
      }
},

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue+web端仿微信網(wǎng)頁版聊天室功能

    vue+web端仿微信網(wǎng)頁版聊天室功能

    這篇文章主要介紹了vue+web端仿微信網(wǎng)頁版聊天室功能,非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-04-04
  • vue3?中v-model語法糖示例詳解

    vue3?中v-model語法糖示例詳解

    vue3中的v-model相當(dāng)于vue2中的v-model和v-bind.sync 修飾符組合在一起的產(chǎn)物(擇優(yōu)整合)v-bind.sync 在 vue3 中被移除了可以在組件標(biāo)簽上使用多個(gè) v-model 綁定屬性,使用參數(shù)區(qū)分,這篇文章主要介紹了vue3?中v-model語法糖,需要的朋友可以參考下
    2024-06-06
  • vue3+ts封裝彈窗及封裝分頁的示例代碼

    vue3+ts封裝彈窗及封裝分頁的示例代碼

    這篇文章主要介紹了vue3+ts封裝彈窗及封裝分頁的示例代碼,本文通過定義defaultDialog .vue,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • Vue使用v-model收集各種表單數(shù)據(jù)、過濾器的示例詳解

    Vue使用v-model收集各種表單數(shù)據(jù)、過濾器的示例詳解

    這篇文章主要介紹了Vue使用v-model收集各種表單數(shù)據(jù)、過濾器的示例,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • vue 取出v-for循環(huán)中的index值實(shí)例

    vue 取出v-for循環(huán)中的index值實(shí)例

    今天小編就為大家分享一篇vue 取出v-for循環(huán)中的index值實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • vue從一個(gè)頁面跳轉(zhuǎn)到另一個(gè)頁面并攜帶參數(shù)的解決方法

    vue從一個(gè)頁面跳轉(zhuǎn)到另一個(gè)頁面并攜帶參數(shù)的解決方法

    這篇文章主要介紹了vue從一個(gè)頁面跳轉(zhuǎn)到另一個(gè)頁面并攜帶參數(shù)的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • vue3+vite項(xiàng)目中顯示SVG圖片的實(shí)現(xiàn)

    vue3+vite項(xiàng)目中顯示SVG圖片的實(shí)現(xiàn)

    vite-plugin-svg-icons是一個(gè)Vite插件,其作用是將SVG圖標(biāo)文件轉(zhuǎn)換為Vue組件,本文主要介紹了vue3+vite項(xiàng)目中顯示SVG圖片的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • vue項(xiàng)目首屏加載時(shí)間優(yōu)化實(shí)戰(zhàn)

    vue項(xiàng)目首屏加載時(shí)間優(yōu)化實(shí)戰(zhàn)

    單頁面應(yīng)用的一個(gè)問題就是首頁加載東西過多,加載時(shí)間過長(zhǎng)。特別在移動(dòng)端,單頁面應(yīng)用的首屏加載優(yōu)化更是繞不開的話題,這篇文章主要介紹了vue項(xiàng)目首屏加載時(shí)間優(yōu)化實(shí)戰(zhàn),感興趣的小伙伴們可以參考一下
    2019-04-04
  • Vue3中實(shí)現(xiàn)微信掃碼登錄的步驟和代碼示例

    Vue3中實(shí)現(xiàn)微信掃碼登錄的步驟和代碼示例

    在 Vue 3 中實(shí)現(xiàn)微信掃碼登錄,涉及到前端生成二維碼、監(jiān)聽微信回調(diào)以及與后端的交互,本文給大家介紹了一個(gè)詳細(xì)的實(shí)現(xiàn)步驟和代碼示例,對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-07-07
  • Vue實(shí)現(xiàn)驗(yàn)證碼登錄的方法實(shí)例

    Vue實(shí)現(xiàn)驗(yàn)證碼登錄的方法實(shí)例

    最近在自己寫頁面,然后寫登錄注冊(cè)UI的時(shí)候需要一個(gè)驗(yàn)證碼組件,去搜一下沒找到什么合適的,于是自己寫一個(gè),這篇文章主要給大家介紹了關(guān)于Vue實(shí)現(xiàn)驗(yàn)證碼登錄的相關(guān)資料,需要的朋友可以參考下
    2022-03-03

最新評(píng)論

冕宁县| 大田县| 手游| 尼木县| 肃宁县| 慈溪市| 黄龙县| 吉水县| 长葛市| 绥中县| 兰考县| 广河县| 永清县| 邻水| 松原市| 无棣县| 江门市| 永春县| 锦州市| 陈巴尔虎旗| 麻江县| 安图县| 公安县| 格尔木市| 肥东县| 全椒县| 上杭县| 嘉荫县| 焦作市| 澳门| 江永县| 永泰县| 定州市| 夏津县| 英吉沙县| 舟曲县| 乐山市| 屏东县| 张家港市| 额敏县| 沅陵县|