最近遇到一个问题,前端用的vue的select组件,select支持多选,选多个选项则该值需要存储在数组里面['技术部','营销中心']这样,但后端只接受String类型,我既做前端又做后端,前端也尝试了,后端也尝试了,最后发现还是前端改起来比较方便快捷

例如你这个select组件在页面请绑定

departmentList:[]

在传递给后端的时候,传递

department:''

即定义两个字段,然后在select上绑定一个方法监测select值的变化,每次变化都同步转换数据类型更新至department

同样,当后端返回department时候,将department转换数据格式后赋值给departmentList

上代码!

<Select multiple v-model="applicationData.leadDepList" filterable @on-change="onChangeLeadDep">
                                                        <Option value="全公司" key="全公司">全公司</Option>
                                                        <Option value="员工管理部" key="员工管理部">员工管理部</Option>
</Select>
//将数组转成字符串,index是数组
onChangeLeadDep(index) {
                this.applicationData.leadDep = index.join(",");
            },
//将字符串转成数组row.leadDep是字符串
openUpdateApplicationModel(row) {
this.applicationData.leadDepList = row.leadDep.split(',')}

以上为解决问题的核心代码

参考了这篇文章

vue怎么将数组转为字符串-前端问答-PHP中文网

更多推荐

前端传递数组给后端