当前位置: 首页 > news >正文

el-select获取id和name

         一般选中节点只会返回:value绑定的数据给v-model中,要想获取id和name一并传给后端,需要如下几步:

        1、给选择框添加点击事件 @input="selectChangeParent" 

        2、v-for中多添加一个参数 index

<el-select v-model="inputForm.projectId" filterable placeholder="请选择"         @input="selectChangeParent"><el-optionv-for="(item, index) in projectInfo":key="item.id":label="item.name":value="item.id"></el-option>
</el-select>

        3、添加选择框点击事件的方法 

          selectChangeParent(index){let listData=[];listData = this.projectInfo;for (let i = 0; i <listData.length ; i++) {if ( listData[i].id==this.inputForm.projectId){this.inputForm.projectName=listData[i].name}}},

        这是我在data中下拉框的数据结构 

                projectInfo: {id: '',name: ''},

         总体思路,点击事件触发时获取到点击的id后,再和v-for绑定的数组做对比,对比时projectInfo的id和点击选择的id相同时,给inputForm里的对象赋值

完整代码:

<%
layout("/include/_vue_body.html", {title:"列表", parent:"隐患处理"}){
%>
<style>body {background: #ffffff !important;}
</style>
<div id="app" class="bg-white"><el-form :model="inputForm" size="small" ref="inputForm" v-loading="loading"label-width="120px"><el-row :gutter="15"><el-col :span="12"><el-form-item label="隐患名称" prop="hiddenName":rules="[{required: true, message:'隐患名称不能为空', trigger:'blur'}]"><el-input v-model="inputForm.hiddenName" placeholder="请填写隐患名称" maxlength="25"></el-input></el-form-item></el-col><el-col :span="12"><el-form-item label="整改措施" prop="hiddenMeasurId":rules="[]"><el-select v-model="inputForm.hiddenMeasurId" filterable placeholder="请选择"><el-optionv-for="item in hiddenMeasureList":key="item.id":label="item.measureName":value="item.id"></el-option></el-select></el-form-item></el-col><el-col :span="12"><el-form-item label="整改负责人" prop="principal":rules="[]"><fs-user-select:is_layer="true":limit="1":value="inputForm.principal"@get-value="(value) => { inputForm.principal = value}"></fs-user-select></el-form-item></el-col><el-col :span="12"><el-form-item label="整改监督人" prop="supervision":rules="[]"><fs-user-select:is_layer="true":limit="1":value="inputForm.supervision"@get-value="(value) => { inputForm.supervision = value}"></fs-user-select></el-form-item></el-col><el-col :span="12"><el-form-item label="隐患类型" prop="hiddenType":rules="[]"><el-select v-model="hiddenType" @change="selectProjectType"><el-option v-for="item in hiddenTypeList" :key="item.value" :label="item.label":value="item.value"></el-option></el-select></el-form-item></el-col><el-col :span="12"><el-form-item label="所属项目" prop="projectId":rules="[]"><el-select v-model="inputForm.projectId" filterable placeholder="请选择" @input="selectChangeParent"><el-optionv-for="(item, index) in projectInfo":key="item.id":label="item.name":value="item.id"></el-option></el-select></el-form-item></el-col><el-col :span="24"><el-form-item label="隐患地点" prop="address":rules="[]"><el-input v-model="inputForm.address" placeholder="请填写隐患地点" maxlength="64"show-word-limit></el-input></el-form-item></el-col><el-col :span="24"><el-form-item label="隐患详情" prop="hiddenDetail":rules="[]"><el-input :rows="6" type="textarea" v-model="inputForm.hiddenDetail" placeholder="请填写隐患详情"maxlength="200" show-word-limit></el-input></el-form-item></el-col><el-col :span="12"><el-form-item label="隐患图片" prop="hiddenUrl":rules="[]"><fs-upload-imgs v-model="inputForm.hiddenUrl"></fs-upload-imgs></el-form-item></el-col></el-row></el-form>
</div>
<script>var formContainer = new Vue({el: '#app',mixins: [sharpMixin],data() {return {loading: false,inputForm: {id: '${hiddenInfo.id}',hiddenName: '',principal: '',supervision: '',hiddenUrl: '',hiddenDetail: '',address: '',projectId: '',hiddenMeasurId: '',projectType: '',projectName:'',hiddenMeasurName: ''},hiddenType: '',hiddenTypeList: [],projectInfo: {id: '',name: ''},hiddenMeasure:{id: '',measureName: '',},hiddenMeasureList:[]}},created() {let that = thisthis.clearForm(function () {if (that.inputForm.id != '') {that.loadData()}});this.hiddenTypeList = this.getDictList("hidden_type")this.initHiddenMeasure()},methods: {loadData() {this.loading = truethis.get('${ctx}/safety/hiddenInfo/info', {id: this.inputForm.id}).then((res) => {if (res.data) {this.inputForm = res.datathis.hiddenType = this.inputForm.projectType}this.initBasicData()this.selectProjectType()this.loading = false})},selectChangeParent(index){let listData=[];listData = this.projectInfo;for (let i = 0; i <listData.length ; i++) {if ( listData[i].id==this.inputForm.projectId){this.inputForm.projectName=listData[i].name}}},initBasicData() {let initData = {}Object.assign(this.inputForm, initData);},initHiddenMeasure(){this.get('${ctx}/safety/hiddenMeasure/hiddenList').then((res) => {if (res.data) {this.hiddenMeasureList = res.data}})},initProjectData(type) {this.get('${ctx}/safety/hiddenInfo/findProjectInfo?type=' + type).then((res) => {if (res.data) {this.projectInfo = res.data}})},initBuildData(type) {this.get('${ctx}/safety/hiddenInfo/findProjectInfo?type=' + type).then((res) => {if (res.data) {this.projectInfo = res.data}})},initRoomData(type) {this.get('${ctx}/safety/hiddenInfo/findProjectInfo?type=' + type).then((res) => {if (res.data) {this.projectInfo = res.data}})},selectProjectType() {this.inputForm.projectType = this.hiddenTypelet type = this.inputForm.projectTypeif (this.hiddenType == 1) {//hiddenType为1时查询在建项目信息this.projectInfo = ''this.initProjectData(type)} else if (this.hiddenType == 2) {//hiddenType为2时查询建筑物信息this.projectInfo = ''this.initBuildData(type)} else {//hiddenType为3时查询房屋信息this.projectInfo = ''this.initRoomData(type)}},clearForm(call) {let that = thissetTimeout(function () {that.$refs['inputForm'].resetFields();if (call) {call();}}, 300)},// 提交doSubmit(call) {this.$refs['inputForm'].validate((valid) => {if (valid) {this.post('${ctx}/safety/hiddenInfo/save', this.inputForm).then((res) => {if (res.success) {this.$message.success(res.msg)call()} else {this.$message.error(res.msg)}})} else {return false;}})}}})
</script>
<% } %>

http://www.lryc.cn/news/216710.html

相关文章:

  • 最简单的驱动程序
  • MFC String类的初始化学习
  • vue项目使用vite设置proxy代理,vite.config.js配置,解决本地跨域问题
  • 实用-----七牛云绑定自定义域名 配置 HTTPS
  • 【TS篇三】类、函数、for-of循环、类型推断
  • Chatgpt批量改写文章网页版可多开软件-自动登录换号生成word或者TXT
  • Modelsim 使用教程(4)—— Working With Multiple Libraries
  • 【重要】浏览器输入地址提示【您的连接不是私密连接】解决方法
  • ESP-07S烧写固件记录
  • 网络编程中关于UDP套接字的一些知识点
  • 淘宝商品评论API接口(评论内容|日期|买家昵称|追评内容|评论图片|评论视频..)
  • 计算机网络 第五章传输层
  • cartographer,ros,路径规划近两年的工作笔记
  • react 生命周期讲解
  • 什么是TCY油封?
  • 【Vue.js】使用Element入门搭建登入注册界面axios中GET请求与POST请求跨域问题
  • Apache Hive
  • [idea]关于idea开发乱码的配置
  • 比较一个结构分割平面的两种方式
  • 学习笔记二十九:K8S配置管理中心Configmap实现微服务配置管理
  • AITO问界崛起的“临门一脚”,落在了赛力斯汽车的智慧工厂里
  • 影视企业有哪些方式将视频文件快速海外跨国传输国内?
  • Android原生分享与指定app分享
  • ActiveMQ是什么?-九五小庞
  • <蓝桥杯软件赛>零基础备赛20周--第4周--杂题-1
  • Telnet/ssh/Serial远程工具WindTerm
  • 电脑技巧:台式机噪音非常大的几个原因以及解决办法
  • C++名称空间
  • Centos7扩容
  • react中ref的使用(useRef,forwardRef,useImperativeHandle,createRef)