Vue (下拉列表)实现数据的双向绑定

Vue 实现数据的双向绑定

10.12

tavble
<el-col :lg="12">
        <el-form-item label="上级菜单" prop="menucode">
          <!-- <el-input v-model="form.menucode" placeholder="请输入所属菜单" /> -->
          <el-select v-model="form.menucode" class="m-2" placeholder="Select">
            <el-option
              v-for="item in menuSelect"
              :key="item.menuId"
              :label="item.menuName"
              :value="item.menuId"
            />
            <!--  下拉列表的创建-->
            <script>
              const menuSelect = ref([]) <!--  为menuSelect 赋值常量-->
  <!--  得到列表-->
  function getList(){
  loading.value = true
  listSysAutoTable(queryParams).then(res => {
    if (res.code == 200) {
      dataList.value = res.data.result
      total.value = res.data.totalNum
      loading.value = false
    }
  })
}
 <!--  关闭dialog-->     
function cancel(){
  open.value = false
  reset()
}
   <!--  重置表单-->               
 function reset() {
  form.value = {
    tablename: undefined,
    tablecode: undefined,
    tabledate: undefined,
    creator: undefined,
    createtime: undefined,
    menucode: undefined,
  };
  proxy.resetForm("formRef")
}  
   <!--  查询表单-->     
function handleQuery() {
  queryParams.pageNum = 1
  getList()
}
<!--  添加表单-->     
 function handleAdd() {
  columns.value = [];
  reset();
  open.value = true
  title.value = '添加'
  opertype.value = 1
  columns.value.push({
  columnComment: "",
  columnId: 29,
  columnName: "id",    });
}         
  <!--   删除按钮操作-->                
  function handleDelete(row) {
  const Ids = row.id || ids.value

  proxy.$confirm('是否确认删除参数编号为"' + Ids + '"的数据项?')
  .then(function () {
      return delSysAutoTable(Ids)
  })
  .then(() => {
      handleQuery()
      proxy.$modal.msgSuccess("删除成功")
  })
  .catch(() => {})
}           
    <!--   生成按钮操作-->                  
function handleGenerate(row) {
  columns.value = [];
  reset()
  const id = row.id || ids.value
  generateSysAutoTable(row).then((res) => {
    proxy.$modal.msgSuccess("生成成功")
    open.value = false
    getList()
  })
  .catch(() => {})
}
        <!--    修改按钮操作    -->       
           function handleUpdate(row) {
  columns.value = [];
  reset()
  const id = row.id || ids.value
  getSysAutoTable(id).then((res) => {
    const { code, data } = res
    if (code == 200) {
      open.value = true
      title.value = "修改数据"
      opertype.value = 2

      form.value = {
      ...data,
      }
      columns.value = JSON.parse(form.value.tabledate);
      form.value.menucode = Number(form.value.menucode);
    }
  })
}   
              <!--    得到选择按钮    -->     
              
    function getSelctMenu() {
  listMenu({ menuTypeIds: 'M' }).then((response) => {
    menuSelect.value = response.data;
  })
} 
       <!--    得到选择按钮并返回    -->              
  getSelctMenu();
function getmenuName(code) {
  return menuSelect.value.filter(e => e.menuId === Number(code))[0]?.menuName;
}            
           <!--    表单提交    -->            
   function submitForm() {
  form.value.tabledate = JSON.stringify(columns.value);
  form.value.menucode = form.value.menucode + "";
  proxy.$refs["formRef"].validate((valid) => {
    if (valid) {
      if (form.value.id != undefined && opertype.value === 2) {
        updateSysAutoTable(form.value).then((res) => {
          proxy.$modal.msgSuccess("修改成功")
          open.value = false
          getList()
        })
        .catch(() => {})
      } else {
        addSysAutoTable(form.value).then((res) => {
            proxy.$modal.msgSuccess("新增成功")
            open.value = false
            getList()
          })
          .catch((err) => {
            //TODO 错误逻辑
          })
      }
    }
  })
}
              
          <!--    重置查询操作  -->                
              
        function resetQuery(){
  proxy.resetForm("queryRef")
  handleQuery()
}      
</script>
              
 table modle
               <el-col :lg="12">
            <el-form-item label="上级菜单" prop="menucode">
              <!-- <el-input v-model="form.menucode" placeholder="请输入所属菜单" /> -->
              <el-select v-model="form.menucode" class="m-2" placeholder="Select">
                <el-option
                  v-for="item in menuSelect"
                  :key="item.menuId"
                  :label="item.menuName"
                  :value="item.menuId"
                />
              </el-select>
            </el-form-item>
          </el-col>
              
  • 8
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Bootstrap Select 是一个很好用的下拉选择框插件,它可以和 Vue 2.6 的双向绑定结合使用,使得我们可以更方便地操作下拉选择框的选项。下面是一个在 Vue 2.6 中实现 Bootstrap Select 双向绑定的示例: 1. 首先,我们需要在 HTML 文件中引入 Bootstrap Select 的 CSS 和 JavaScript 文件: ```html <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-select@1.14.0/dist/css/bootstrap-select.min.css"> <script src="https://cdn.jsdelivr.net/npm/bootstrap-select@1.14.0/dist/js/bootstrap-select.min.js"></script> ``` 2. 在 Vue 实例中,我们需要定义一个 data 属性来存储下拉选择框的选项列表和选中的值: ```html <div id="app"> <select v-model="selected" class="selectpicker"> <option v-for="option in options" :value="option.value">{{ option.text }}</option> </select> <p>Selected value: {{ selected }}</p> </div> <script> new Vue({ el: '#app', data: { options: [ { value: '1', text: 'Option 1' }, { value: '2', text: 'Option 2' }, { value: '3', text: 'Option 3' } ], selected: '' }, mounted() { $('.selectpicker').selectpicker() } }) </script> ``` 在上面的代码中,我们定义了一个 data 属性来存储下拉选择框的选项列表和选中的值。然后在模板中使用 `v-model` 指令来实现双向绑定。需要注意的是,在 `mounted` 生命周期钩子函数中,我们需要使用 jQuery 的 `selectpicker()` 方法来初始化 Bootstrap Select 插件。 这样,我们就可以在 Vue 2.6 中实现 Bootstrap Select 的双向绑定了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是貔貅喔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值