在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ vue多維數組提交問題?

vue多維數組提交問題?

題目描述

從后臺獲取的多維數組,經過解析,形成一個多選框界面,經過多選提交,再將數據傳回后臺,但是傳入的數據格式不一樣圖片描述圖片描述我傳的格式圖片描述
系統需要的格式圖片描述

題目來源及自己的思路

傳回的格式要求為第一層json串不用處理 直接遍歷第二層children 也就是雙層循環(huán)即可
父級和子級SN 組成 例子Security:view。我的思路是將checked的父級SN和子級SN放入postForm.permissionList中,然后獲取后臺父級SN匹配替換,然后清空postForm.permissionList,提交

相關代碼

// 請把代碼文本粘貼到下方(請勿用圖片代替代碼)
頁面代碼 queryData獲取的是data.module.children

<el-form-item label="角色名" prop="name">

      <el-input :maxlength="300" v-model="postForm.name" />
    </el-form-item>
    <el-checkbox-group v-for="(items,index) in queryData" :key="index">
      <el-form-item :label="items.description">
        <el-checkbox-group v-model="postForm.permissionList" @change="checkinlist">{{ items[index] }}
          <el-checkbox v-for="(data,index) in items.operations" :label="items.sn+data.sn" :key="index">
            {{ data.name }}
          </el-checkbox>
        </el-checkbox-group>
      </el-form-item>
      <el-checkbox-group v-for="(items,index) in items.children" :key="index" >
        <el-form-item :label="items.description">
          <el-checkbox-group v-model="postForm.permissionList" @change="checkinlist">{{ items[index] }}
            <el-checkbox v-for="(data,index) in items.operations" :label="items.sn+data.sn" :key="index">
              {{ data.name }}
            </el-checkbox>
          </el-checkbox-group>
        </el-form-item>
      </el-checkbox-group>
    </el-checkbox-group>
    
    替換SN的代碼,因為label中不能加入:所以我只能替換this.role_obj是獲取所有的父級SN
     const Str = []
  for (let j = 0; j < this.role_obj.length; j++) {
    for (let i = 0; i < this.postForm.permissionList.length; i++) {
      if (this.postForm.permissionList[i].match(this.role_obj[j])) {
        Str.push(this.postForm.permissionList[i].replace(this.role_obj[j], this.role_obj[j] + ':'))
      }
    }
  }
  console.info(Str)
  this.postForm.permissionList = []
  for (let i = 0; i < Str.length; i++) {
    this.postForm.permissionList[i] = Str[i]
    JSON.stringify(this.postForm.permissionList)
    console.info(this.postForm.permissionList)
  }

你期待的結果是什么?實際看到的錯誤信息又是什么?

我想知道怎么拼接,或者是不是我的思路錯了

回答
編輯回答
涼心人

不太理解你們后端為什么要你這么傳,你這傳一個對象回去不就好了,然后對象里面字段對應一個權限,權限的值為數組,如果沒有勾選就傳空數組。后端自己去取對應的值就行了。

permissonList: {
  Security: ['view'],
  Role: ['view', 'save', 'edit'],
  Module: []
}
2018年3月24日 19:33