liuchengxin
2022-06-09 0d68be1fa109b0f55fa0b4c023baf4b66dcc9f28
src/views/basics/school/index.vue
@@ -1,6 +1,6 @@
<template>
  <div class="app-container">
    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px" @submit.native.prevent>
      <el-form-item label="学校代码" prop="code">
        <el-input
          v-model="queryParams.code"
@@ -19,47 +19,47 @@
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="省份" prop="provinceCode">
        <el-select v-model="queryParams.provinceCode" placeholder="请选择省份" clearable size="small"
                   @change="provinceQueryChange">
          <el-option
            v-for="item in provinceList"
            :key="item.provinceCode"
            :label="item.provinceName"
            :value="item.provinceCode"
          />
        </el-select>
      </el-form-item>
      <el-form-item label="城市" prop="cityCode">
        <el-select v-model="queryParams.cityCode" placeholder="请选择省份" clearable size="small">
          <el-option
            v-for="item in cityList"
            :key="item.cityCode"
            :label="item.cityName"
            :value="item.cityCode"
          />
        </el-select>
      </el-form-item>
      <el-form-item label="办学层次" prop="schoolRunLevel">
        <el-select v-model="queryParams.schoolRunLevel" placeholder="请选择办学层次" clearable size="small">
          <el-option
            v-for="dict in dict.type.DICT105"
            :key="dict.value"
            :label="dict.label"
            :value="dict.value"
          />
        </el-select>
      </el-form-item>
      <el-form-item label="学科范围" prop="disciplineScope">
        <el-select v-model="queryParams.disciplineScope" placeholder="请选择学科范围" clearable size="small">
          <el-option
            v-for="dict in dict.type.DICT106"
            :key="dict.value"
            :label="dict.label"
            :value="dict.value"
          />
        </el-select>
      </el-form-item>
      <!--<el-form-item label="省份" prop="provinceCode">-->
        <!--<el-select v-model="queryParams.provinceCode" placeholder="请选择省份" clearable size="small"-->
                   <!--@change="provinceQueryChange">-->
          <!--<el-option-->
            <!--v-for="item in provinceList"-->
            <!--:key="item.provinceCode"-->
            <!--:label="item.provinceName"-->
            <!--:value="item.provinceCode"-->
          <!--/>-->
        <!--</el-select>-->
      <!--</el-form-item>-->
      <!--<el-form-item label="城市" prop="cityCode">-->
        <!--<el-select v-model="queryParams.cityCode" placeholder="请选择省份" clearable size="small">-->
          <!--<el-option-->
            <!--v-for="item in cityList"-->
            <!--:key="item.cityCode"-->
            <!--:label="item.cityName"-->
            <!--:value="item.cityCode"-->
          <!--/>-->
        <!--</el-select>-->
      <!--</el-form-item>-->
      <!--<el-form-item label="办学层次" prop="schoolRunLevel">-->
        <!--<el-select v-model="queryParams.schoolRunLevel" placeholder="请选择办学层次" clearable size="small">-->
          <!--<el-option-->
            <!--v-for="dict in dict.type.DICT105"-->
            <!--:key="dict.value"-->
            <!--:label="dict.label"-->
            <!--:value="dict.value"-->
          <!--/>-->
        <!--</el-select>-->
      <!--</el-form-item>-->
      <!--<el-form-item label="学科范围" prop="disciplineScope">-->
        <!--<el-select v-model="queryParams.disciplineScope" placeholder="请选择学科范围" clearable size="small">-->
          <!--<el-option-->
            <!--v-for="dict in dict.type.DICT106"-->
            <!--:key="dict.value"-->
            <!--:label="dict.label"-->
            <!--:value="dict.value"-->
          <!--/>-->
        <!--</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>
@@ -137,9 +137,23 @@
          <dict-tag :options="dict.type.DICT106" :value="scope.row.disciplineScope"/>
        </template>
      </el-table-column>
      <el-table-column label="备注" align="center" prop="remarks"/>
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<!--      <el-table-column label="备注" align="center" prop="remarks"/>-->
      <el-table-column label="操作" fixed="right" width="220" align="center" class-name="small-padding fixed-width">
        <template slot-scope="scope">
          <el-button
              size="mini"
              type="text"
              icon="el-icon-wind-power"
              @click="handleOrganization(scope.row)"
          >机构
          </el-button>
          <el-button
              size="mini"
              type="text"
              icon="el-icon-office-building"
              @click="handleBuild(scope.row)"
          >建筑
          </el-button>
          <el-button
            size="mini"
            type="text"
@@ -151,6 +165,7 @@
          <el-button
            size="mini"
            type="text"
            class="del-btn"
            icon="el-icon-delete"
            @click="handleDelete(scope.row)"
            v-hasPermi="['oa:school:remove']"
@@ -169,7 +184,7 @@
    />
    <!-- 添加或修改学校对话框 -->
    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
    <Dialog :title="title" :visible.sync="open" width="500px" :append-to-body="true" :close-on-click-modal="false">
      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
        <el-form-item label="学校代码" prop="code">
          <el-input v-model="form.code" placeholder="请输入学校代码"/>
@@ -226,17 +241,33 @@
        <el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
        <el-button @click="cancel">取 消</el-button>
      </div>
    </el-dialog>
    </Dialog>
    <!-- 建筑 -->
    <el-drawer title="建筑单元" :visible.sync="buildOpen" size="50%" :append-to-body="true" :destroy-on-close="true">
      <building :schoolId="id"></building>
    </el-drawer>
    <!-- 组织机构 -->
    <el-drawer title="组织机构" :visible.sync="organizationOpen" size="50%" :append-to-body="true" :destroy-on-close="true">
      <organization :schoolId="id"></organization>
    </el-drawer>
  </div>
</template>
<script>
import {listSchool, getSchool, delSchool, addSchool, updateSchool} from "@/api/oa/school";
import {listProvince, listCity} from "@/api/common/common";
import building from '../building'
import organization from '../organization'
export default {
  name: "School",
  dicts: ['DICT105', 'DICT106'],
  components: {
    building,
    organization
  },
  data() {
    return {
      // 按钮loading
@@ -295,6 +326,9 @@
        disciplineScope: [
          {required: true, message: "学科范围不能为空", trigger: "change"}
        ],
        remarks: [
          {max: 128, message: '最多输入128个字符', trigger: 'blur' }
        ]
      },
      // 省份
      provinceList: [],
@@ -303,12 +337,16 @@
      // 省份
      provinceFormList: [],
      // 城市
      cityFormList: []
      cityFormList: [],
      buildOpen: false,
      organizationOpen: false,
      id: undefined
    };
  },
  created() {
    this.getProvince().then(res => {
      this.provinceList = res
      this.provinceFormList = res
    })
    this.getList();
  },
@@ -381,6 +419,10 @@
      getSchool(id).then(response => {
        this.loading = false;
        this.form = response.data;
        listCity(this.form.provinceCode)
          .then(res => {
            this.cityFormList = res.data
          })
        this.open = true;
        this.title = "修改学校";
      });
@@ -413,7 +455,7 @@
    /** 删除按钮操作 */
    handleDelete(row) {
      const ids = row.id || this.ids;
      this.$modal.confirm('是否确认删除学校编号为"' + ids + '"的数据项?').then(() => {
      this.$modal.confirm(`是否确认删除学校代码为${row.code}的学校?`).then(() => {
        this.loading = true;
        return delSchool(ids);
      }).then(() => {
@@ -448,7 +490,6 @@
    },
    // 查询条件省份改变
    provinceQueryChange(v) {
      this.queryParams.cityCode = undefined
      this.getCity(v).then(res => {
        this.cityList = res
      })
@@ -459,6 +500,16 @@
      this.getCity(v).then(res => {
        this.cityFormList = res
      })
    },
    // 建筑
    handleBuild(r) {
      this.id = r.id;
      this.buildOpen = true;
    },
    // 组织机构
    handleOrganization(r) {
      this.id = r.id;
      this.organizationOpen = true;
    }
  }
};