执行后有多条数据,只有一条数据时显示一行,一行的最后有个+按钮,当数据大于等于2时,数据后会有一个+和一个-号按钮。
<div>
<div class="currentJob" v-for="(item, index) in isAdd">
<div @click="isShowSelectedDep = true; tabIndex = index" class="first">干部任职单位: 
<el-input v-model="item.departmentName" placeholder="请选择" size="mini" style="width:80px">
</el-input>
</div>
<div class="second">任职岗位: 
<el-select v-model="item.ZSID" placeholder="请选择" size="mini" filterable :clearable="true"
@change="getID()">
<el-option v-for="(item, index) in item.selectArr" :key="index" :label="item.zwmc"
:value="item.ZsID">
</el-option>
</el-select>
<button size="mini" @click="addNumber(index)">+</button>
<button size="mini" v-if='index != 0' @click="deleteNumber(index)">-</button>
</div>
</div>
</div>
当用户点击这个div时,代码会将isShowSelectedDep设置为true,并将tabIndex设置为index。 @click="isShowSelectedDep = true; tabIndex = index"
在这段代码中,我们可以看到一个名为isAdd的数组,用于存储干部的任职单位和岗位信息。在页面上,我们可以通过循环渲染isAdd数组中的每个元素来显示干部的任职单位和岗位信息。在每个元素中,我们使用el-input指令来渲染干部的任职单位输入框,使用el-select指令来渲染干部的任职岗位下拉框。同时,我们还提供了一个“+”按钮和一个“-”按钮,用于添加和删除干部的任职单位和岗位信息。
在data中定义一个isAdd
isAdd: [
{
departmentName: "",
ZSID: "",
selectArr: []
}
],
获取部门名称
通过部门名称ID去找岗位,通过下拉选择到对应的岗位
使用了箭头函数来定义map方法的回调函数。回调函数接收一个参数value,表示当前遍历的元素。在回调函数中,我们将value.zwmc和value.ZsID分别赋值给一个新的对象的zwmc和ZsID属性,然后返回这个新的对象。最后,我们将返回的新数组赋值给this.isAdd[this.tabIndex].selectArr属性。
// 点击加号
addNumber(index) {
this.tabIndex = index;
this.isAdd.push({
departmentName: "",
ZSID: "",
selectArr: []
});
},
// 点击减号
deleteNumber(index) {
this.isAdd.splice(index, 1);
},
// 获取ID
getID(value) {
for (let i in this.isAdd) {
if (this.isAdd[i].departmentName === "") {
this.$message({
type: "warning",
message: "请选择干部任职单位"
});
this.isAdd = [{ departmentName: "", ZSID: "", selectArr: [] }];
}
}
}
点击加号,push一行,点击减号,删除一行。