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

vue使用el-select下拉框匹配不到值的問(wèn)題及解決

 更新時(shí)間:2023年05月20日 10:51:51   作者:鐵錘妹妹@  
這篇文章主要介紹了vue使用el-select下拉框匹配不到值的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

使用el-select下拉框匹配不到值的問(wèn)題

問(wèn)題描述

點(diǎn)擊編輯彈窗里從上面列表行數(shù)據(jù)里取到的乙方名稱變成了乙方id15,產(chǎn)生的原因是因?yàn)閺棿袄锏募滓曳搅斜硎菑慕涌谡?qǐng)求來(lái)的,比如后期某個(gè)乙方公司關(guān)停了,這條數(shù)據(jù)就會(huì)被刪除,導(dǎo)致我們?nèi)〔坏竭@條數(shù)據(jù)

查看接口返回的列表,發(fā)現(xiàn)少了行數(shù)據(jù)中的乙方這條數(shù)據(jù)

解決思路

1.findIndex() 返回值判斷編輯當(dāng)前行數(shù)據(jù)取到的id和甲乙方列表里的id是否有一樣的; 如果有相同id的話,返回第一個(gè)符合條件的數(shù)組成員位置,都不符合條件,則返回 -1

2.如果返回?cái)?shù)組成員位置 < 0 的話,從列表行數(shù)據(jù)取id和name值,創(chuàng)建一條被刪除這條數(shù)據(jù)的新對(duì)象;push進(jìn)數(shù)組的最后一條,這樣就不存在id取不到的情況了

解決方法

 <el-form-item v-if="showPartner === '1'" label="甲方">
        <el-select v-model="partnerForm.partner_id_a" filterable>
          <el-option
            v-for="(val, key) in partnerAList"
            :key="key"
            :label="val.partner_name"
            :value="val.id"
          />
        </el-select>
      </el-form-item>
      <el-form-item v-if="showPartner === '1'" label="乙方">
        <el-select v-model="partnerForm.partner_id_b" filterable>
          <el-option
            v-for="(val, key) in partnerBList"
            :key="key"
            :label="val.partner_name"
            :value="val.id"
          />
        </el-select>
      </el-form-item>
setup(props, { emit }) {
    const partnerAList = ref<any[]>([])
    const partnerBList = ref<any[]>([])
    const showPartner = ref<string>('0')
    const dataMap = reactive({
      partnerForm: {
        phone: '',
        partner_id_a: '0',
        partner_id_b: '0',
        username: '',
        remark: '',
        status: ''
      }
    })
    const { onSubmit, close, formNode, subLoading } = useForm({ type: props.type, emit: emit, editApi: partnerApi['EDITPARTNERUSER'], addApi: partnerApi['ADDPARTNERUSER'], form: dataMap.partnerForm }) 
    function getPartnerAList() {
      partnerApi['GETPARTNERALIST']().then((res: any) => {
        if (res.data.code === '20000') {
          partnerAList.value = res.data.data
          var tempObj = { id: '0', partner_name: '請(qǐng)選擇' }
          partnerAList.value.unshift(tempObj)
          const temp = res.data.data.findIndex((item:any) => {
            return item.id === props.info['partner_id_a']
          })
          if (temp < 0) {
            const presentObj = { id: props.info['partner_id_a'], partner_name: props.info['party_a_name'] }
            partnerAList.value.push(presentObj)
          }
        }
      })
    }
    function getPartnerBList() {
      partnerApi['GETPARTNERBLIST']().then((res: any) => {
        if (res.data.code === '20000') {
          partnerBList.value = res.data.data
          var tempObj = { id: '0', partner_name: '請(qǐng)選擇' }
          partnerBList.value.unshift(tempObj)
          const temp = res.data.data.findIndex((item:any) => {
            return item.id === props.info['partner_id_b']
          })
          if (temp < 0) {
            const presentObj = { id: props.info['partner_id_b'], partner_name: props.info['party_b_name'] }
            partnerBList.value.push(presentObj)
          }
        }
      })
    }
    onMounted(() => {
      getPartnerAList()
      getPartnerBList()
    })
    return {
      formNode,
      ...toRefs(dataMap),
      partnerFormRules,
      onSubmit,
      close,
      subLoading,
      partnerAList,
      partnerBList,
      showPartner,
      onSubmitForm
    }
  }

el-select下拉框,選擇后賦值成功,但是框上不顯示選中的值的解決

最近在做項(xiàng)目時(shí)發(fā)現(xiàn)el-select下拉框,選擇后賦值成功,但是框上不顯示選中的值。

后來(lái)查了下官方文檔之后發(fā)現(xiàn)原因:

vue 無(wú)法監(jiān)聽動(dòng)態(tài)新增的屬性的變化,需要用 $set 來(lái)為這些屬性賦值。

如上圖所示,操作人下拉框初始沒(méi)有值,選擇了操作班組之后,根據(jù)所選的班組去獲取后臺(tái)數(shù)據(jù)填充操作人下拉框。

然后就發(fā)現(xiàn)了問(wèn)題:選擇了操作人之后輸入框還是沒(méi)有值,但是綁定的@change事件currOperatorChange 打印出了選中的值。

解決方法:用 $set 來(lái)賦值

如下所示:

<el-row>
              <el-col :span="12">
                <el-form-item prop="deptId"
                              :label="$t('taskManage.lockTask.deptId')+':'">
                  <treeselect :placeholder="$t('taskManage.lockTask.selDeptId')"
                              :options="deptTree"
                              :normalizer="normalizer"
                              v-model="formData.deptId"
                              @select="selectDepart">
                  </treeselect>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item prop="operateId"
                              :label="$t('taskManage.lockTask.table.operateName')+':'">
                  <el-select clearable
                             v-model="formData.operateId"
                             @change="currOperatorChange"
                             :placeholder="$t('taskManage.lockTask.selOperateName')">
                    <el-option v-for="item in operateOption"
                               :key="item.value"
                               :label="item.label"
                               :value="item.value">
                    </el-option>
                  </el-select>
                </el-form-item>
              </el-col>
            </el-row>
// 操作人選中項(xiàng)發(fā)生變化
    currOperatorChange(val) {
      console.log('操作人選中項(xiàng)發(fā)生變化', val)
      if (val) {
        let obj = {}
        obj = this.operateOption.find(item => {
          //這里的operateOption就是上面遍歷的數(shù)據(jù)源
          return item.value === val //篩選出匹配數(shù)據(jù)
        })
        this.$set(this.formData, this.formData.operateId, val.value)
        this.formData.operateName = obj.label
        console.log('修改操作人名稱', obj.label, obj.value)
      } else {
        this.formData.operateName = ''
        this.$set(this.formData, this.formData.operateId, '')
      }
    }

總結(jié)

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

相關(guān)文章

  • Vue折疊面板組件的封裝

    Vue折疊面板組件的封裝

    這篇文章主要為大家詳細(xì)介紹了Vue折疊面板組件的封裝,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 深入理解Vue transition源碼分析

    深入理解Vue transition源碼分析

    本篇文章主要介紹了深入理解Vue transition源碼分析,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • Vue中如何定義數(shù)據(jù)示例詳解

    Vue中如何定義數(shù)據(jù)示例詳解

    這篇文章主要給大家介紹了關(guān)于Vue中如何定義數(shù)據(jù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用vue具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2021-09-09
  • vue+elementUI面包屑組件封裝方法詳解

    vue+elementUI面包屑組件封裝方法詳解

    這篇文章主要為大家詳細(xì)介紹了vue+elementUI面包屑組件封裝方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Vue?Router解決多路由復(fù)用同一組件頁(yè)面不刷新問(wèn)題(場(chǎng)景分析)

    Vue?Router解決多路由復(fù)用同一組件頁(yè)面不刷新問(wèn)題(場(chǎng)景分析)

    這篇文章主要介紹了Vue?Router解決多路由復(fù)用同一組件頁(yè)面不刷新問(wèn)題,多路由復(fù)用同一組件的場(chǎng)景分析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • vue接入下載文件接口問(wèn)題

    vue接入下載文件接口問(wèn)題

    這篇文章主要介紹了vue接入下載文件接口問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Vue腳手架搭建及創(chuàng)建Vue項(xiàng)目流程的詳細(xì)教程

    Vue腳手架搭建及創(chuàng)建Vue項(xiàng)目流程的詳細(xì)教程

    Vue腳手架指的是vue-cli,它是一個(gè)快速構(gòu)建**單頁(yè)面應(yīng)用程序(SPA)**環(huán)境配置的工具,cli是(command-line-interfac)命令行界面,下面這篇文章主要給大家介紹了關(guān)于Vue腳手架搭建及創(chuàng)建Vue項(xiàng)目流程的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • 淺談vuex之mutation和action的基本使用

    淺談vuex之mutation和action的基本使用

    本篇文章主要介紹了淺談vuex之mutation和action的基本使用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • Vue中component標(biāo)簽解決項(xiàng)目組件化操作

    Vue中component標(biāo)簽解決項(xiàng)目組件化操作

    這篇文章主要介紹了Vue中component標(biāo)簽解決項(xiàng)目組件化操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • 一篇文章總結(jié)Vue3.2語(yǔ)法糖使用

    一篇文章總結(jié)Vue3.2語(yǔ)法糖使用

    Vue3.2(21年8月10日)相比于Vue3新增了語(yǔ)法糖,減少了代碼冗余,下面這篇文章主要給大家介紹了關(guān)于Vue3.2語(yǔ)法糖使用的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11

最新評(píng)論

兰考县| 青阳县| 河津市| 喀什市| 马山县| 繁峙县| 司法| 茌平县| 定边县| 阿拉善右旗| 濮阳县| 类乌齐县| 楚雄市| 达日县| 虎林市| 金昌市| 昂仁县| 阿城市| 和顺县| 会宁县| 唐山市| 澄迈县| 三明市| 海原县| 炎陵县| 资中县| 鄂伦春自治旗| 久治县| 宜阳县| 元朗区| 崇明县| 湟中县| 揭东县| 湖北省| 鹤岗市| 开封市| 新竹市| 多伦县| 泉州市| 衡东县| 葵青区|