若依实现级联查询

<template>
  <div class="app-container">
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
     
       <el-form-item label="培训省份" prop="province">
                <el-select v-model="queryParams.province"  placeholder="请选择省" v-on="{focus:seeProvince,change:seeCity}">
                      <el-option
                        v-for="item in ProvinceList"
                       :key="item.dictValue"
                                         :label="item.dictLabel"
                                         :value="item.dictValue"
                        :disabled="item.status == 1"

                      ></el-option>
                    </el-select>
                </el-form-item>
          <el-form-item label="培训城市" prop="city">
                <el-select v-model="queryParams.city"  placeholder="请选择市" >
                      <el-option
                        v-for="item in CityList"
                        :key="item.dictValue"
                                          :label="item.dictLabel"
                                          :value="item.dictValue"
                        :disabled="item.status == 1"

                      ></el-option>
                    </el-select>
                </el-form-item>


    
      <el-form-item>
        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
      </el-form-item>
    </el-form>

    <el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-plus"
          size="mini"
          @click="handleAdd"
          v-hasPermi="['employment:train:add']"
        >新增</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="success"
          plain
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="handleUpdate"
          v-hasPermi="['employment:train:edit']"
        >修改</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="danger"
          plain
          icon="el-icon-delete"
          size="mini"
          :disabled="multiple"
          @click="handleDelete"
          v-hasPermi="['employment:train:remove']"
        >删除</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="warning"
          plain
          icon="el-icon-download"
          size="mini"
          @click="handleExport"
          v-hasPermi="['employment:train:export']"
        >导出</el-button>
      </el-col>
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
    </el-row>

    <el-table v-loading="loading" :data="trainList" @selection-change="handleSelectionChange">
      <el-table-column type="selection" width="55" align="center" />
      <!-- <el-table-column label="主键" align="center" prop="id" /> -->
      <el-table-column label="培训标题" align="center" prop="title" />
      <el-table-column label="培训院校" align="center" prop="schoolName" />
      <el-table-column label="首页图片" align="center" prop="picture" width="100">
        <template slot-scope="scope">
          <image-preview :src="scope.row.picture" :width="50" :height="50"/>
        </template>
      </el-table-column>
      <el-table-column label="培训方向" align="center" prop="direction">
        <template slot-scope="scope">
          <dict-tag :options="dict.type.speciality_train_direction" :value="scope.row.direction"/>
        </template>
      </el-table-column>
      <el-table-column label="培训省份" align="center" prop="province">
        <template slot-scope="scope">
          <dict-tag :options="dict.type.sys_area_province" :value="scope.row.province"/>
        </template>
      </el-table-column>
      <el-table-column label="培训城市" align="center" prop="city">
        <template slot-scope="scope">
          <dict-tag :options="dict.type.sys_area_city" :value="scope.row.city"/>
        </template>
      </el-table-column>
      <el-table-column label="联系方式" align="center" prop="phonenumber" />
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
        <template slot-scope="scope">
          <el-button
            size="mini"
            type="text"
            icon="el-icon-edit"
            @click="handleUpdate(scope.row)"
            v-hasPermi="['employment:train:edit']"
          >修改</el-button>
          <el-button
            size="mini"
            type="text"
            icon="el-icon-delete"
            @click="handleDelete(scope.row)"
            v-hasPermi="['employment:train:remove']"
          >删除</el-button>
        </template>
      </el-table-column>
    </el-table>

    <pagination
      v-show="total>0"
      :total="total"
      :page.sync="queryParams.pageNum"
      :limit.sync="queryParams.pageSize"
      @pagination="getList"
    />

    <!-- 添加或修改专业培训对话框 -->
    <el-dialog :title="title" :visible.sync="open" width="40%" append-to-body v-dialogDrag>
      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
      
<el-row>
          <el-col :span="12">
            <el-form-item label="培训省份" prop="province">
                      <el-select v-model="form.province"  placeholder="培训省份" v-on="{focus:formProvince,change:formCity}">
                            <el-option
                              v-for="item in FormProvinceList"
                              :key="item.dictValue"
                              :label="item.dictLabel"
                              :value="item.dictValue"

                            ></el-option>
                          </el-select>
                      </el-form-item>
          </el-col>
          <el-col :span="12">
              <el-form-item label="培训城市" prop="city" >
                      <el-select v-model="form.city"  placeholder="培训城市">
                            <el-option
                              v-for="item in FormCityList"
                              :key="item.dictValue"
                              :label="item.dictLabel"
                              :value="item.dictValue"

                            ></el-option>
                          </el-select>
                      </el-form-item>
          </el-col>
        </el-row>




      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitForm">确 定</el-button>
        <el-button @click="cancel">取 消</el-button>
      </div>
    </el-dialog>
  </div>
</template>

<script>
import { listTrain, getTrain, delTrain, addTrain, updateTrain, getCity, getProvince } from "@/api/employment/train";
export default {
  name: "Train",
  dicts: ['sys_area_province', 'speciality_train_direction', 'sys_area_city'],
  data() {
    return {
      CityList: null,
      ProvinceList: null,
      FormCityList: null,
      FormProvinceList: null,
      
      // 查询参数
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        title: null,
        schoolName: null,
        direction: null,
        province: null,
        city: null,
      },
      // 表单参数
      form: {},
     
    };
  },
  created() {
    this.getList();
  },
  methods: {
    seeProvince(){
              const dictType='sys_area_province';
             getProvince(dictType).then(response =>{this.ProvinceList=response.data});
        },
        seeCity(){
             getCity('sys_area_city',this.queryParams.province.substr(0,2)).then(response =>{this.CityList=response.data});
             this.queryParams.city=null;
        },
        formProvince(){
             const dictType='sys_area_province';
             getProvince(dictType).then(response =>{
             this.FormProvinceList=response.data});
        },
        formCity(){
             getCity('sys_area_city',this.form.province.substr(0,2)).then(response =>{this.FormCityList=response.data});
             this.from.city=null;
        }
   
};
</script>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 HTML 和 JavaScript 实现级联查询的示例代码: ```html <!DOCTYPE html> <html> <head> <title>级联查询</title> <meta charset="utf-8"> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script> </head> <body> <label for="province">省份:</label> <select id="province"> <option value="">请选择</option> <option value="1">浙江省</option> <option value="2">江苏省</option> <option value="3">福建省</option> </select> <label for="city">城市:</label> <select id="city"> <option value="">请选择</option> </select> <label for="district">区县:</label> <select id="district"> <option value="">请选择</option> </select> <script> // 省份数据 var provinceData = [ { id: 1, name: '浙江省', city: [ { id: 11, name: '杭州市', district: [ { id: 111, name: '西湖区' }, { id: 112, name: '拱墅区' }, { id: 113, name: '江干区' } ] }, { id: 12, name: '温州市', district: [ { id: 121, name: '鹿城区' }, { id: 122, name: '龙湾区' }, { id: 123, name: '瓯海区' } ] } ] }, { id: 2, name: '江苏省', city: [ { id: 21, name: '南京市', district: [ { id: 211, name: '玄武区' }, { id: 212, name: '秦淮区' }, { id: 213, name: '白下区' } ] }, { id: 22, name: '苏州市', district: [ { id: 221, name: '虎丘区' }, { id: 222, name: '吴中区' }, { id: 223, name: '相城区' } ] } ] }, { id: 3, name: '福建省', city: [ { id: 31, name: '福州市', district: [ { id: 311, name: '鼓楼区' }, { id: 312, name: '台江区' }, { id: 313, name: '仓山区' } ] }, { id: 32, name: '厦门市', district: [ { id: 321, name: '思明区' }, { id: 322, name: '海沧区' }, { id: 323, name: '湖里区' } ] } ] } ]; // 加载省份数据 var provinceSelect = $('#province'); $.each(provinceData, function(index, item) { provinceSelect.append('<option value="' + item.id + '">' + item.name + '</option>'); }); // 省份改变事件 provinceSelect.change(function() { var provinceId = $(this).val(); var citySelect = $('#city'); var districtSelect = $('#district'); citySelect.empty().append('<option value="">请选择</option>'); districtSelect.empty().append('<option value="">请选择</option>'); if (provinceId) { // 加载城市数据 var cities = $.grep(provinceData, function(item) { return item.id == provinceId; })[0].city; $.each(cities, function(index, item) { citySelect.append('<option value="' + item.id + '">' + item.name + '</option>'); }); } }); // 城市改变事件 $('#city').change(function() { var cityId = $(this).val(); var districtSelect = $('#district'); districtSelect.empty().append('<option value="">请选择</option>'); if (cityId) { // 加载区县数据 var districts = $.grep(provinceData, function(province) { return $.grep(province.city, function(city) { return city.id == cityId; }).length > 0; })[0].city.filter(function(city) { return city.id == cityId; })[0].district; $.each(districts, function(index, item) { districtSelect.append('<option value="' + item.id + '">' + item.name + '</option>'); }); } }); </script> </body> </html> ``` 注:以上示例中使用了 jQuery 库,需要引入 jQuery 库才能正常运行该代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值