动态增减表单项,如何定位,根据一个select控制另外一个select?

已解决 ,使用下面的 watch 监听就可以。

vue + iview
表单通过 添加删除 按钮动态增减表单条数,增减部分是 model.projects。循环如下结构数据展示。
功能要求:当 类型 选择 功能 时,禁用 规格 下拉选项,即增加disabled="true"属性。

如何实现?

1.页面结构片断:

      <z-form

ref="modelDialog"

:model="model"

:label-width="100"

label-position="left"

>

<z-row>

<z-col span="8">

<z-form-item label="模块名称">

<z-input

v-model="model.partName"

:maxlength="40"

placeholder="请输入..."

clearable

/>

</z-form-item>

</z-col>

</z-row>

<div v-for="(item, index) in model.projects" :key="index">

<z-edit-panel class="m-t-15 p-t-20">

<z-row>

<z-col span="8">

<z-form-item label="类型">

<z-select

v-model="item.type"

placeholder="请选择..."

@on-change="handleChange"

>

<z-option

v-for="item in typeName"

:value="item.value"

:key="item.value"

>{{ item.label }}</z-option

>

</z-select>

</z-form-item>

</z-col>

</z-row>

<z-row>

<z-col span="8">

<z-form-item label="名称">

<z-input

v-model="item.name"

:maxlength="40"

placeholder="请输入..."

clearable

/>

</z-form-item>

</z-col>

</z-row>

<z-row>

<z-col span="9">

<z-form-item label="等级">

<z-select v-model="item.level" placeholder="请选择...">

<z-option

v-for="item in projectLevelOption"

:value="item.value"

:key="item.value"

>{{ item.label }}</z-option

>

</z-select>

</z-form-item>

</z-col>

<z-col span="8">

<z-form-item label="规格">

<z-select

v-model="item.standard"

placeholder="请选择..."

>

<z-option

v-for="item in checkFunction"

:value="item.value"

:key="item.value"

>{{ item.label }}</z-option

>

</z-select>

</z-form-item>

</z-col>

</z-row>

<z-row>

<z-col span="10">

<z-form-item label="标准">

<z-input

v-model="item.projectStandard"

type="textarea"

:autosize="{ minRows: 3, maxRows: 5 }"

placeholder="Please enter the detailed address"

class="standard-textarea"

></z-input>

</z-form-item>

</z-col>

<z-col span="4">

<z-form-item

class="standardTextarea"

v-if="index === model.projects.length - 1"

>

<z-button

type="primary"

size="small"

icon="plus-round"

@click="addItem"

>添加</z-button

>

</z-form-item>

<z-form-item

class="standardTextarea"

v-if="index === model.projects.length - 1"

>

<z-button

type="error"

size="small"

icon="minus-round"

@click="delItem"

>删除</z-button

>

</z-form-item>

</z-col>

</z-row>

</z-edit-panel>

</div>

</z-form>

2.数据片断:

      model: {

typeId: '',

partId: '',

partName: '模块名称',

projects: [

{

name: '名称',

type: '类型',

standard: '规格',

level: '等级',

}

]

},

  1. 新增方法:
    addItem() {

this.model.projects.push({

name: '',

type: '',

standard: '',

level: '',

})

},

delItem() {

this.model.projects.pop()

}

=================================

watch监听里,用最简单的for循环,监听某一组表单有了变化,但如何将变化返回到指定的表单项呢?

    model: {

handler(newName, oldName) {

for (let i = 0; i < this.model.projects.length; i++) {

if (this.model.projects[i].type === '1') {

// 可以设置一个变量,控制当前表单项里指定select的disable

}

}

},

deep: true

}


回答:

 <z-select

:disabled="item.type== '功能编码'"

v-model="item.standard"

placeholder="请选择..."

>

以上是 动态增减表单项,如何定位,根据一个select控制另外一个select? 的全部内容, 来源链接: utcz.com/p/933996.html

回到顶部