關於前端vue el-cascader級聯選擇器


最簡單的方法,往往才是最有效的方法:前端代碼:

 1 <template>
 2     <el-container>
 3           <el-form-item label="選擇老婆們和孩子們:" >
 4                                        <el-cascader
 5                                        style="width: 200px"
 6                                        @change="handleChange"
 7                                        :options="defaultOptions"
 8                                        v-model="wifesAndBabes"
 9                                        clearable>
10                                        </el-cascader>
11                                  </el-form-item>
12     </el-container>
13 </template>
14 
15 
16 
17  export default {
18 
19           //封裝數據
20     data() {
21       return {
22 
23              defaultOptions: [],
24 
25                  };
26                },
27 
28   //頁面加載前執行方法
29      created(){
30         this.showOptions();     //默認獲取后端傳至前端的下拉框聯查數據
31     },
32 
33         //方法封裝區
34         methods: {
35        
36 showOptions(){
37        //執行調用后端接口方法selectNextWifesAndBabes
38          selectNextWifesAndBabes().then(response => {
39        //將獲取的后端數據封裝在defaultOptions 里
40          this.defaultOptions = response.data.options;
41       //工作台打印
42          console.log("獲取的封裝值為:"+this.defaultOptions);
43         });
44      },
45 
46       },
47   }
48 
49 
50 注意:此方法默認在 import{調后端接口方法} from "指定文件位置"
51   //獲取多級聯查條件數據
52   export function selectNextWifesAndBabes() {
53     return request({
54       url: '/a/B/C',           //后端接口
55       method: 'get'          //方法類型
56     })
57   }

后端接口:   

控制層:

@RequestMapping("/C")
public Result C()
{
OptionsVO result = demService.method();
return Result.success(result);
}


業務層:
@Override
public OptionsVO method() {

//通過查詢老婆表獲取老婆列表
List<Wife> wifeList = wifeMapper.selectAllWife();

//老婆和孩子數據獲取並展示數據
List<WifeVO> wifeVOList = new ArrayList<>();

for(Wife wife:wifeList){

//根據組件ID來查詢該老婆下對應的孩子數據
List<Babes> babesList = babesMapper.selectAllBabes(wife.getWifeId());

//封裝獲取到的孩子信息,並返回前端展示
List<BabesVO> babesVOList = new ArrayList<>();

for(Babes babes:babesList) {
BabesVO babesVO = BabesVO.builder()
.value(babes.getBabesNo())
.label(babes.getBabesNo())
.build();

babesVOList.add(babesVO);
}

//封裝老婆及孩子信息 展示到前端
WifeVO wifeVO = WifeVO.builder()
.value(wife.getId())
.label(wife.getWifeName())
.children(babesVOList)
.build();

wifeVOList.add(wifeVO);

}

//封裝返回前端數據
OptionsVO optionsVO = OptionsVO.builder().options(wifeVOList).build();

return optionsVO;

}



//實體類及VO
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class WifeType extends BaseEntity
{
private static final long serialVersionUID = 1L;

/** 老婆-主鍵 */
private String id;

/** 老婆編號 */
private String wifeId;

/** 老婆名稱 */
private String wifeName;
}


@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class Babes extends BaseEntity
{
private static final long serialVersionUID = 1L;

/** 孩子表主鍵 */
private String id;

/** 老婆編號(孩子的parentID) */
private String wifeId;

/** 孩子名 */
private String BabesNo;
}


@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class WifeVO extends BaseEntity
{
private static final long serialVersionUID = 1L;

/** 組件類型value */
private String value;

/** 組件類型label */
private String label;

/** 封裝組件版本信息集合 **/
List<BabesVO> children;

}



@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class BabesVO extends BaseEntity
{
private static final long serialVersionUID = 1L;

/** value */
private String value;

/** label */
private String label;
}


@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class BabesVO extends BaseEntity
{
private static final long serialVersionUID = 1L;

/** value */
private String value;

/** label */
private String label;
}













免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM