<el-select v-model="conPO.departmentId" placeholder="请选择工程名称" class="fill-width" clearable> <departmentSelectFormItems :parentOrgId.sync="conPO.orgId" :props="{ancestralOrgId: 'parentOrgId', parentOrgId: 'orgId'}" /> </el-select>
时间: 2023-11-11 10:49:48 浏览: 149
这是一个使用ElementUI的级联选择器(el-select)的示例代码。其中包含了以下props属性:
- v-model:用于双向绑定选中值的变量,这里是"conPO.departmentId"。
- placeholder:设置选择器的占位符文本为"请选择工程名称"。
- class:添加样式类名"fill-width",用于设置宽度为100%。
- clearable:设置选择器是否显示清空按钮。
在el-select标签内部,还使用了一个自定义组件departmentSelectFormItems,通过props属性传递了两个参数:
- parentOrgId.sync:双向绑定的父级组织id,这里是"conPO.orgId"。
- props:配置选项对象,指定了两个属性名,ancestralOrgId为'parentOrgId',parentOrgId为'orgId'。
这个示例代码实现了一个级联选择器,根据父级组织id(conPO.orgId)动态加载工程名称选项,并将选中的工程名称存储在conPO.departmentId变量中。
相关问题
<el-select v-model="ujbForm.departmentTree" multiple placeholder="请选择" @change="clickDepartmentId"> <el-option v-for="item in departmentTreeData" :key="item.departmentId" :label="item.departmentName" :value="item.departmentId"> </el-option> </el-select> departmentTree有值时自动选中
您可以在 `mounted()` 钩子函数中使用 `this.$nextTick()` 方法来等待 Vue 实例渲染完成后再设置 `departmentTree` 的值,从而自动选中 `el-select` 组件中对应的选项。
以下是示例代码:
```javascript
mounted() {
this.$nextTick(() => {
if (this.ujbForm.departmentTree && this.ujbForm.departmentTree.length > 0) {
this.$refs.departmentTree.$refs.multiple.setCheckedNodes(this.departmentTreeData.filter(item => this.ujbForm.departmentTree.includes(item.departmentId)));
}
})
}
```
在上面的代码中,我们首先判断 `departmentTree` 是否有值,如果有值,则使用 `$refs` 获取 `el-select` 组件的实例,并调用其 `setCheckedNodes()` 方法来设置选中的节点。在 `setCheckedNodes()` 方法中,我们使用 `filter()` 方法来过滤出与 `departmentTree` 数组中的 id 相匹配的节点,然后将过滤出来的节点作为参数传入方法中即可。
需要注意的是,上述代码中的 `this.$refs.departmentTree` 应该与 `el-select` 组件的 `ref` 属性值相同。例如,如果您的 `el-select` 组件的 `ref` 属性值为 "departmentTree",则上述代码中的 `this.$refs.departmentTree` 应该改为 `this.$refs.departmentTree.$refs.multiple`。
merchantId =[1,2,3,4] <div v-if ="merchantId == ''">暂无数据</div> <div v-else> <div v-for="i in merchantId" :key="i.departmentId" :label="i.departmentId" :value="i.departmentName">{{ i.departmentName }}</div> merchantId 怎么渲染不到div
根据你提供的代码片段,merchantId 是一个数组,所以在渲染 div 的时候需要使用 v-for 指令来遍历数组,然后将数组中的每个元素渲染为一个 div。在 v-for 指令中,需要指定一个循环变量来代表数组中的每个元素,这个变量在每次循环中会自动更新为当前元素的值。同时,需要给每个渲染出来的 div 指定一个唯一的 key 值,这个值应该是每个元素的唯一标识。以下是一个示例代码片段:
```
<div v-if="merchantId.length === 0">暂无数据</div>
<div v-else>
<div v-for="item in merchantId" :key="item.departmentId">
{{ item.departmentName }}
</div>
</div>
```
在上述代码中,我们首先使用 v-if 判断 merchantId 数组是否为空,如果为空则渲染“暂无数据”的提示信息,否则使用 v-for 遍历数组中的每个元素,将其渲染为一个 div。每个 div 的内容是 item.departmentName,而 key 值则是 item.departmentId。注意,这里使用了 item.departmentId 作为 key 值,因为在数组中每个元素都有自己的 departmentId,而且这个值应该是唯一的。
阅读全文