Browse Source

字典管理修改

zhangjie 2 years ago
parent
commit
1e84e17d10

+ 155 - 155
src/modules/base/components/ModifyCampus.vue

@@ -1,155 +1,155 @@
-<template>
-  <el-dialog
-    class="modify-campus"
-    :visible.sync="modalIsShow"
-    :title="title"
-    top="10vh"
-    width="448px"
-    :close-on-click-modal="false"
-    :close-on-press-escape="false"
-    append-to-body
-    @open="visibleChange"
-  >
-    <el-form
-      ref="modalFormComp"
-      :model="modalForm"
-      :rules="rules"
-      :key="modalForm.id"
-      label-position="top"
-    >
-      <el-form-item prop="campusName" label="校区名称:">
-        <el-input
-          v-model.trim="modalForm.campusName"
-          placeholder="请输入校区名称"
-          clearable
-        ></el-input>
-      </el-form-item>
-      <el-form-item prop="campusCode" label="校区编码:">
-        <el-input
-          v-model.trim="modalForm.campusCode"
-          placeholder="请输入校区编码"
-          disabled
-        ></el-input>
-      </el-form-item>
-      <el-form-item prop="printHouseId" label="印刷室">
-        <print-room-select
-          v-model.trim="modalForm.printHouseId"
-          style="width:100%;"
-          clearable
-        ></print-room-select>
-      </el-form-item>
-    </el-form>
-    <div slot="footer">
-      <el-button type="primary" :disabled="isSubmit" @click="submit"
-        >确认</el-button
-      >
-      <el-button @click="cancel">取消</el-button>
-    </div>
-  </el-dialog>
-</template>
-
-<script>
-import { updateCampus, getCode } from "../api";
-
-const initModalForm = {
-  id: null,
-  campusName: "",
-  campusCode: "",
-  printHouseId: ""
-};
-
-export default {
-  name: "modify-campus",
-  props: {
-    instance: {
-      type: Object,
-      default() {
-        return {};
-      }
-    }
-  },
-  computed: {
-    isEdit() {
-      return !!this.instance.id;
-    },
-    title() {
-      return (this.isEdit ? "编辑" : "新增") + "校区";
-    }
-  },
-  data() {
-    return {
-      modalIsShow: false,
-      isSubmit: false,
-      modalForm: { ...initModalForm },
-      rules: {
-        campusName: [
-          {
-            required: true,
-            // pattern: /^[0-9a-zA-Z\u4E00-\u9FA5]{1,20}$/,
-            // message: "校区名称只能输入汉字、数字和字母,长度不能超过20",
-            message: "校区名称不能超过30个字",
-            max: 30,
-            trigger: "change"
-          }
-        ],
-        campusCode: [
-          {
-            required: true,
-            // pattern: /^[0-9a-zA-Z_-]{3,30}$/,
-            // message: "校区编码只能由数字字母短横线组成,长度在3-30之间",
-            message: "校区名称不能超过30个字",
-            max: 30,
-            trigger: "change"
-          }
-        ],
-        printHouseId: [
-          {
-            required: true,
-            message: "请选择要关联的印刷室",
-            trigger: "change"
-          }
-        ]
-      }
-    };
-  },
-  methods: {
-    initData(val) {
-      if (val.id) {
-        this.modalForm = this.$objAssign(initModalForm, val);
-      } else {
-        this.modalForm = { ...initModalForm };
-        this.createCode();
-      }
-    },
-    async createCode() {
-      this.modalForm.campusCode = await getCode("CAMPUS_CODE");
-    },
-    visibleChange() {
-      this.initData(this.instance);
-    },
-    cancel() {
-      this.modalIsShow = false;
-    },
-    open() {
-      this.modalIsShow = true;
-    },
-    async submit() {
-      const valid = await this.$refs.modalFormComp.validate().catch(() => {});
-      if (!valid) return;
-
-      if (this.isSubmit) return;
-      this.isSubmit = true;
-      const data = await updateCampus(this.modalForm).catch(() => {
-        this.isSubmit = false;
-      });
-
-      if (!data) return;
-
-      this.isSubmit = false;
-      this.$message.success(this.title + "成功!");
-      this.$emit("modified");
-      this.cancel();
-    }
-  }
-};
-</script>
+<template>
+  <el-dialog
+    class="modify-campus"
+    :visible.sync="modalIsShow"
+    :title="title"
+    top="10vh"
+    width="448px"
+    :close-on-click-modal="false"
+    :close-on-press-escape="false"
+    append-to-body
+    @open="visibleChange"
+  >
+    <el-form
+      ref="modalFormComp"
+      :model="modalForm"
+      :rules="rules"
+      :key="modalForm.id"
+      label-position="top"
+    >
+      <el-form-item prop="campusName" label="校区名称:">
+        <el-input
+          v-model.trim="modalForm.campusName"
+          placeholder="请输入校区名称"
+          clearable
+        ></el-input>
+      </el-form-item>
+      <!-- <el-form-item prop="campusCode" label="校区编码:">
+        <el-input
+          v-model.trim="modalForm.campusCode"
+          placeholder="请输入校区编码"
+          disabled
+        ></el-input>
+      </el-form-item> -->
+      <el-form-item prop="printHouseId" label="印刷室">
+        <print-room-select
+          v-model.trim="modalForm.printHouseId"
+          style="width:100%;"
+          clearable
+        ></print-room-select>
+      </el-form-item>
+    </el-form>
+    <div slot="footer">
+      <el-button type="primary" :disabled="isSubmit" @click="submit"
+        >确认</el-button
+      >
+      <el-button @click="cancel">取消</el-button>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+import { updateCampus, getCode } from "../api";
+
+const initModalForm = {
+  id: null,
+  campusName: "",
+  campusCode: "",
+  printHouseId: ""
+};
+
+export default {
+  name: "modify-campus",
+  props: {
+    instance: {
+      type: Object,
+      default() {
+        return {};
+      }
+    }
+  },
+  computed: {
+    isEdit() {
+      return !!this.instance.id;
+    },
+    title() {
+      return (this.isEdit ? "编辑" : "新增") + "校区";
+    }
+  },
+  data() {
+    return {
+      modalIsShow: false,
+      isSubmit: false,
+      modalForm: { ...initModalForm },
+      rules: {
+        campusName: [
+          {
+            required: true,
+            // pattern: /^[0-9a-zA-Z\u4E00-\u9FA5]{1,20}$/,
+            // message: "校区名称只能输入汉字、数字和字母,长度不能超过20",
+            message: "校区名称不能超过30个字",
+            max: 30,
+            trigger: "change"
+          }
+        ],
+        campusCode: [
+          {
+            required: true,
+            // pattern: /^[0-9a-zA-Z_-]{3,30}$/,
+            // message: "校区编码只能由数字字母短横线组成,长度在3-30之间",
+            message: "校区名称不能超过30个字",
+            max: 30,
+            trigger: "change"
+          }
+        ],
+        printHouseId: [
+          {
+            required: true,
+            message: "请选择要关联的印刷室",
+            trigger: "change"
+          }
+        ]
+      }
+    };
+  },
+  methods: {
+    initData(val) {
+      if (val.id) {
+        this.modalForm = this.$objAssign(initModalForm, val);
+      } else {
+        this.modalForm = { ...initModalForm };
+        this.createCode();
+      }
+    },
+    async createCode() {
+      this.modalForm.campusCode = await getCode("CAMPUS_CODE");
+    },
+    visibleChange() {
+      this.initData(this.instance);
+    },
+    cancel() {
+      this.modalIsShow = false;
+    },
+    open() {
+      this.modalIsShow = true;
+    },
+    async submit() {
+      const valid = await this.$refs.modalFormComp.validate().catch(() => {});
+      if (!valid) return;
+
+      if (this.isSubmit) return;
+      this.isSubmit = true;
+      const data = await updateCampus(this.modalForm).catch(() => {
+        this.isSubmit = false;
+      });
+
+      if (!data) return;
+
+      this.isSubmit = false;
+      this.$message.success(this.title + "成功!");
+      this.$emit("modified");
+      this.cancel();
+    }
+  }
+};
+</script>

+ 119 - 156
src/modules/base/components/ModifySemester.vue

@@ -1,156 +1,119 @@
-<template>
-  <el-dialog
-    class="modify-semester"
-    :visible.sync="modalIsShow"
-    :title="title"
-    top="10vh"
-    width="600px"
-    :close-on-click-modal="false"
-    :close-on-press-escape="false"
-    append-to-body
-    @open="visibleChange"
-  >
-    <el-form
-      ref="modalFormComp"
-      :model="modalForm"
-      :rules="rules"
-      label-position="top"
-    >
-      <el-form-item prop="semesterName" label="学期名称:">
-        <el-input
-          v-model.trim="modalForm.semesterName"
-          placeholder="请输入学期名称"
-          clearable
-        ></el-input>
-        <p class="tips-info">示例:2021~2022第一学期/上学期</p>
-      </el-form-item>
-      <el-form-item prop="startTime" label="所属时间:">
-        <el-date-picker
-          v-model="createTime"
-          type="datetimerange"
-          range-separator="至"
-          start-placeholder="学期开始时间"
-          end-placeholder="学期结束时间"
-          value-format="timestamp"
-          align="right"
-          unlink-panels
-          @change="dateChange"
-        >
-        </el-date-picker>
-      </el-form-item>
-    </el-form>
-    <div slot="footer">
-      <el-button type="primary" :disabled="isSubmit" @click="submit"
-        >确认</el-button
-      >
-      <el-button @click="cancel">取消</el-button>
-    </div>
-  </el-dialog>
-</template>
-
-<script>
-import { updateSemester } from "../api";
-
-const initModalForm = {
-  id: null,
-  semesterName: "",
-  startTime: "",
-  endTime: ""
-};
-
-export default {
-  name: "modify-semester",
-  props: {
-    instance: {
-      type: Object,
-      default() {
-        return {};
-      }
-    }
-  },
-  computed: {
-    isEdit() {
-      return !!this.instance.id;
-    },
-    title() {
-      return (this.isEdit ? "编辑" : "新增") + "学年学期";
-    }
-  },
-  data() {
-    return {
-      modalIsShow: false,
-      isSubmit: false,
-      modalForm: { ...initModalForm },
-      createTime: [],
-      rules: {
-        semesterName: [
-          {
-            required: true,
-            message: "请输入学期名称",
-            trigger: "change"
-          },
-          {
-            message: "学期名称不能超过100个字",
-            max: 100,
-            trigger: "change"
-          }
-        ],
-        startTime: [
-          {
-            required: true,
-            message: "请设置所属时间",
-            trigger: "change"
-          }
-        ]
-      }
-    };
-  },
-  methods: {
-    initData(val) {
-      if (val.id) {
-        this.modalForm = this.$objAssign(initModalForm, val);
-        this.createTime = [this.modalForm.startTime, this.modalForm.endTime];
-      } else {
-        this.modalForm = { ...initModalForm };
-        this.createTime = [];
-      }
-    },
-    visibleChange() {
-      this.initData(this.instance);
-    },
-    cancel() {
-      this.modalIsShow = false;
-    },
-    open() {
-      this.modalIsShow = true;
-    },
-    dateChange() {
-      if (this.createTime) {
-        this.modalForm.startTime = this.createTime[0];
-        this.modalForm.endTime = this.createTime[1];
-      } else {
-        this.modalForm.startTime = "";
-        this.modalForm.endTime = "";
-      }
-    },
-    async submit() {
-      const valid = await this.$refs.modalFormComp.validate().catch(() => {});
-      if (!valid) return;
-
-      if (this.isSubmit) return;
-      this.isSubmit = true;
-      let datas = { ...this.modalForm };
-      const data = await updateSemester(datas).catch(() => {
-        this.isSubmit = false;
-      });
-
-      if (!data) return;
-
-      this.isSubmit = false;
-      this.$message.success(this.title + "成功!");
-      this.$emit("modified");
-      this.cancel();
-    }
-  }
-};
-</script>
+<template>
+  <el-dialog
+    class="modify-semester"
+    :visible.sync="modalIsShow"
+    :title="title"
+    top="10vh"
+    width="600px"
+    :close-on-click-modal="false"
+    :close-on-press-escape="false"
+    append-to-body
+    @open="visibleChange"
+  >
+    <el-form
+      ref="modalFormComp"
+      :model="modalForm"
+      :rules="rules"
+      label-position="top"
+    >
+      <el-form-item prop="semesterName" label="学期名称:">
+        <el-input
+          v-model.trim="modalForm.semesterName"
+          placeholder="请输入学期名称"
+          clearable
+        ></el-input>
+        <p class="tips-info">示例:2021~2022第一学期/上学期</p>
+      </el-form-item>
+    </el-form>
+    <div slot="footer">
+      <el-button type="primary" :disabled="isSubmit" @click="submit"
+        >确认</el-button
+      >
+      <el-button @click="cancel">取消</el-button>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+import { updateSemester } from "../api";
+
+const initModalForm = {
+  id: null,
+  semesterName: ""
+};
+
+export default {
+  name: "modify-semester",
+  props: {
+    instance: {
+      type: Object,
+      default() {
+        return {};
+      }
+    }
+  },
+  computed: {
+    isEdit() {
+      return !!this.instance.id;
+    },
+    title() {
+      return (this.isEdit ? "编辑" : "新增") + "学年学期";
+    }
+  },
+  data() {
+    return {
+      modalIsShow: false,
+      isSubmit: false,
+      modalForm: { ...initModalForm },
+      rules: {
+        semesterName: [
+          {
+            required: true,
+            message: "请输入学期名称",
+            trigger: "change"
+          },
+          {
+            message: "学期名称不能超过100个字",
+            max: 100,
+            trigger: "change"
+          }
+        ]
+      }
+    };
+  },
+  methods: {
+    initData(val) {
+      if (val.id) {
+        this.modalForm = this.$objAssign(initModalForm, val);
+      } else {
+        this.modalForm = { ...initModalForm };
+      }
+    },
+    visibleChange() {
+      this.initData(this.instance);
+    },
+    cancel() {
+      this.modalIsShow = false;
+    },
+    open() {
+      this.modalIsShow = true;
+    },
+    async submit() {
+      const valid = await this.$refs.modalFormComp.validate().catch(() => {});
+      if (!valid) return;
+
+      if (this.isSubmit) return;
+      this.isSubmit = true;
+      let datas = { ...this.modalForm };
+      const data = await updateSemester(datas).catch(() => {});
+      this.isSubmit = false;
+
+      if (!data) return;
+
+      this.$message.success(this.title + "成功!");
+      this.$emit("modified");
+      this.cancel();
+    }
+  }
+};
+</script>

+ 103 - 103
src/modules/base/views/CampusManage.vue

@@ -1,103 +1,103 @@
-<template>
-  <div class="campus-manage">
-    <div class="part-box part-box-filter part-box-flex">
-      <div></div>
-      <div class="part-box-action">
-        <el-button
-          v-if="checkPrivilege('button', 'add')"
-          type="primary"
-          icon="el-icon-circle-plus-outline"
-          @click="toAdd"
-          >新增校区</el-button
-        >
-      </div>
-    </div>
-    <div class="part-box part-box-pad">
-      <el-table ref="TableList" :data="dataList">
-        <el-table-column
-          type="index"
-          label="序号"
-          width="70"
-          :index="indexMethod"
-        ></el-table-column>
-        <el-table-column prop="campusName" label="校区名称"></el-table-column>
-        <el-table-column prop="campusCode" label="校区编码"></el-table-column>
-        <el-table-column prop="printHouseName" label="印刷室"></el-table-column>
-        <el-table-column prop="createTime" label="创建时间">
-          <span slot-scope="scope">{{
-            scope.row.createTime | timestampFilter
-          }}</span>
-        </el-table-column>
-        <el-table-column class-name="action-column" label="操作" width="120px">
-          <template slot-scope="scope">
-            <el-button
-              v-if="checkPrivilege('link', 'edit')"
-              class="btn-primary"
-              type="text"
-              @click="toEdit(scope.row)"
-              >编辑</el-button
-            >
-            <el-button
-              v-if="checkPrivilege('link', 'delete')"
-              class="btn-danger"
-              type="text"
-              @click="toDelete(scope.row)"
-              >删除</el-button
-            >
-          </template>
-        </el-table-column>
-      </el-table>
-    </div>
-
-    <modify-campus
-      :instance="curRow"
-      @modified="getList"
-      ref="ModifyCampus"
-    ></modify-campus>
-  </div>
-</template>
-
-<script>
-import { campusQuery, deleteCampus } from "../api";
-import ModifyCampus from "../components/ModifyCampus";
-
-export default {
-  name: "campus-manage",
-  components: { ModifyCampus },
-  data() {
-    return {
-      dataList: [],
-      curRow: {}
-    };
-  },
-  mounted() {
-    this.getList();
-  },
-  methods: {
-    async getList() {
-      if (!this.checkPrivilege("list", "list")) return;
-
-      this.dataList = await campusQuery();
-    },
-    toAdd() {
-      this.curRow = {};
-      this.$refs.ModifyCampus.open();
-    },
-    toEdit(row) {
-      this.curRow = row;
-      this.$refs.ModifyCampus.open();
-    },
-    toDelete(row) {
-      this.$confirm(`确定要删除校区【${row.campusName}】吗?`, "提示", {
-        type: "warning"
-      })
-        .then(async () => {
-          await deleteCampus(row.id);
-          this.$message.success("删除成功!");
-          this.getList();
-        })
-        .catch(() => {});
-    }
-  }
-};
-</script>
+<template>
+  <div class="campus-manage">
+    <div class="part-box part-box-filter part-box-flex">
+      <div></div>
+      <div class="part-box-action">
+        <el-button
+          v-if="checkPrivilege('button', 'add')"
+          type="primary"
+          icon="el-icon-circle-plus-outline"
+          @click="toAdd"
+          >新增校区</el-button
+        >
+      </div>
+    </div>
+    <div class="part-box part-box-pad">
+      <el-table ref="TableList" :data="dataList">
+        <el-table-column
+          type="index"
+          label="序号"
+          width="70"
+          :index="indexMethod"
+        ></el-table-column>
+        <el-table-column prop="campusName" label="校区名称"></el-table-column>
+        <!-- <el-table-column prop="campusCode" label="校区编码"></el-table-column> -->
+        <el-table-column prop="printHouseName" label="印刷室"></el-table-column>
+        <el-table-column prop="createTime" label="创建时间">
+          <span slot-scope="scope">{{
+            scope.row.createTime | timestampFilter
+          }}</span>
+        </el-table-column>
+        <el-table-column class-name="action-column" label="操作" width="120px">
+          <template slot-scope="scope">
+            <el-button
+              v-if="checkPrivilege('link', 'edit')"
+              class="btn-primary"
+              type="text"
+              @click="toEdit(scope.row)"
+              >编辑</el-button
+            >
+            <el-button
+              v-if="checkPrivilege('link', 'delete')"
+              class="btn-danger"
+              type="text"
+              @click="toDelete(scope.row)"
+              >删除</el-button
+            >
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
+
+    <modify-campus
+      :instance="curRow"
+      @modified="getList"
+      ref="ModifyCampus"
+    ></modify-campus>
+  </div>
+</template>
+
+<script>
+import { campusQuery, deleteCampus } from "../api";
+import ModifyCampus from "../components/ModifyCampus";
+
+export default {
+  name: "campus-manage",
+  components: { ModifyCampus },
+  data() {
+    return {
+      dataList: [],
+      curRow: {}
+    };
+  },
+  mounted() {
+    this.getList();
+  },
+  methods: {
+    async getList() {
+      if (!this.checkPrivilege("list", "list")) return;
+
+      this.dataList = await campusQuery();
+    },
+    toAdd() {
+      this.curRow = {};
+      this.$refs.ModifyCampus.open();
+    },
+    toEdit(row) {
+      this.curRow = row;
+      this.$refs.ModifyCampus.open();
+    },
+    toDelete(row) {
+      this.$confirm(`确定要删除校区【${row.campusName}】吗?`, "提示", {
+        type: "warning"
+      })
+        .then(async () => {
+          await deleteCampus(row.id);
+          this.$message.success("删除成功!");
+          this.getList();
+        })
+        .catch(() => {});
+    }
+  }
+};
+</script>

+ 3 - 2
src/modules/base/views/CourseManage.vue

@@ -136,12 +136,13 @@
               @click="toEnable(scope.row)"
               >{{ scope.row.enable ? "禁用" : "启用" }}</el-button
             >
-            <!-- <el-button
+            <el-button
+              v-if="checkPrivilege('link', 'delete')"
               class="btn-danger"
               type="text"
               @click="toDelete(scope.row)"
               >删除</el-button
-            > -->
+            >
           </template>
         </el-table-column>
       </el-table>

+ 161 - 171
src/modules/base/views/SemesterManage.vue

@@ -1,171 +1,161 @@
-<template>
-  <div class="semester-manage">
-    <div class="part-box part-box-filter part-box-flex">
-      <div>
-        <el-button
-          v-if="checkPrivilege('button', 'select')"
-          type="primary"
-          @click="toPage(1)"
-          >查询</el-button
-        >
-      </div>
-      <div class="part-box-action">
-        <el-button
-          v-if="checkPrivilege('button', 'add')"
-          type="primary"
-          icon="el-icon-circle-plus-outline"
-          @click="toAdd"
-          >新增学期</el-button
-        >
-      </div>
-    </div>
-    <div class="part-box part-box-pad">
-      <el-table ref="TableList" :data="dataList">
-        <el-table-column
-          type="index"
-          label="序号"
-          width="70"
-          :index="indexMethod"
-        ></el-table-column>
-        <el-table-column prop="semesterName" label="学期"></el-table-column>
-        <el-table-column prop="startTime" label="开始时间">
-          <span slot-scope="scope">{{
-            scope.row.startTime | timestampFilter
-          }}</span>
-        </el-table-column>
-        <el-table-column prop="endTime" label="结束时间">
-          <span slot-scope="scope">{{
-            scope.row.endTime | timestampFilter
-          }}</span>
-        </el-table-column>
-        <el-table-column prop="inUsed" label="当前学期">
-          <span
-            :class="{ 'color-success': scope.row.inUsed }"
-            slot-scope="scope"
-            >{{ scope.row.inUsed ? "是" : "否" }}</span
-          >
-        </el-table-column>
-        <el-table-column class-name="action-column" label="操作" width="200px">
-          <template slot-scope="scope">
-            <el-button
-              v-if="checkPrivilege('link', 'edit') && !scope.row.inUsed"
-              class="btn-primary"
-              type="text"
-              @click="setUsed(scope.row)"
-              >设置为当前学期</el-button
-            >
-            <el-button
-              v-if="checkPrivilege('link', 'edit')"
-              class="btn-primary"
-              type="text"
-              @click="toEdit(scope.row)"
-              >编辑</el-button
-            >
-            <el-button
-              v-if="checkPrivilege('link', 'delete')"
-              class="btn-danger"
-              type="text"
-              @click="toDelete(scope.row)"
-              >删除</el-button
-            >
-          </template>
-        </el-table-column>
-      </el-table>
-      <div class="part-page">
-        <el-pagination
-          background
-          layout="total,prev, pager, next"
-          :current-page="current"
-          :total="total"
-          :page-size="size"
-          @current-change="toPage"
-        >
-        </el-pagination>
-      </div>
-    </div>
-
-    <modify-semester
-      :instance="curRow"
-      @modified="getList"
-      ref="ModifySemester"
-    ></modify-semester>
-  </div>
-</template>
-
-<script>
-import { semesterListQuery, deleteSemester, semesterSetInUsed } from "../api";
-import ModifySemester from "../components/ModifySemester";
-
-export default {
-  name: "semester-manage",
-  components: { ModifySemester },
-  data() {
-    return {
-      filter: {},
-      current: 1,
-      size: this.GLOBAL.pageSize,
-      total: 0,
-      dataList: [],
-      curRow: {}
-    };
-  },
-  mounted() {
-    this.getList();
-  },
-  methods: {
-    async getList() {
-      if (!this.checkPrivilege("list", "list")) return;
-
-      const datas = {
-        ...this.filter,
-        pageNumber: this.current,
-        pageSize: this.size
-      };
-      const data = await semesterListQuery(datas);
-      this.dataList = data.records;
-      this.total = data.total;
-    },
-    toPage(page) {
-      this.current = page;
-      this.getList();
-    },
-    toAdd() {
-      this.curRow = {};
-      this.$refs.ModifySemester.open();
-    },
-    toEdit(row) {
-      this.curRow = row;
-      this.$refs.ModifySemester.open();
-    },
-    async toDelete(row) {
-      const result = await this.$confirm(
-        `确定要删除学期【${row.semesterName}】吗?`,
-        "提示",
-        {
-          type: "warning"
-        }
-      ).catch(() => {});
-      if (result !== "confirm") return;
-
-      await deleteSemester(row.id);
-      this.$message.success("删除成功!");
-      this.deletePageLastItem();
-    },
-    async setUsed(row) {
-      const result = await this.$confirm(
-        `确定要将学期【${row.semesterName}】设置成当前学期吗?`,
-        "提示",
-        {
-          type: "warning"
-        }
-      ).catch(() => {});
-      if (result !== "confirm") return;
-
-      await semesterSetInUsed(row.id);
-
-      this.getList();
-      this.$message.success("设置成功!");
-    }
-  }
-};
-</script>
+<template>
+  <div class="semester-manage">
+    <div class="part-box part-box-filter part-box-flex">
+      <div>
+        <el-button
+          v-if="checkPrivilege('button', 'select')"
+          type="primary"
+          @click="toPage(1)"
+          >查询</el-button
+        >
+      </div>
+      <div class="part-box-action">
+        <el-button
+          v-if="checkPrivilege('button', 'add')"
+          type="primary"
+          icon="el-icon-circle-plus-outline"
+          @click="toAdd"
+          >新增学期</el-button
+        >
+      </div>
+    </div>
+    <div class="part-box part-box-pad">
+      <el-table ref="TableList" :data="dataList">
+        <el-table-column
+          type="index"
+          label="序号"
+          width="70"
+          :index="indexMethod"
+        ></el-table-column>
+        <el-table-column prop="semesterName" label="学期"></el-table-column>
+        <el-table-column prop="inUsed" label="当前学期">
+          <span
+            :class="{ 'color-success': scope.row.inUsed }"
+            slot-scope="scope"
+            >{{ scope.row.inUsed ? "是" : "否" }}</span
+          >
+        </el-table-column>
+        <el-table-column class-name="action-column" label="操作" width="200px">
+          <template slot-scope="scope">
+            <el-button
+              v-if="checkPrivilege('link', 'edit') && !scope.row.inUsed"
+              class="btn-primary"
+              type="text"
+              @click="setUsed(scope.row)"
+              >设置为当前学期</el-button
+            >
+            <el-button
+              v-if="checkPrivilege('link', 'edit')"
+              class="btn-primary"
+              type="text"
+              @click="toEdit(scope.row)"
+              >编辑</el-button
+            >
+            <el-button
+              v-if="checkPrivilege('link', 'delete')"
+              class="btn-danger"
+              type="text"
+              @click="toDelete(scope.row)"
+              >删除</el-button
+            >
+          </template>
+        </el-table-column>
+      </el-table>
+      <div class="part-page">
+        <el-pagination
+          background
+          layout="total,prev, pager, next"
+          :current-page="current"
+          :total="total"
+          :page-size="size"
+          @current-change="toPage"
+        >
+        </el-pagination>
+      </div>
+    </div>
+
+    <modify-semester
+      :instance="curRow"
+      @modified="getList"
+      ref="ModifySemester"
+    ></modify-semester>
+  </div>
+</template>
+
+<script>
+import { semesterListQuery, deleteSemester, semesterSetInUsed } from "../api";
+import ModifySemester from "../components/ModifySemester";
+
+export default {
+  name: "semester-manage",
+  components: { ModifySemester },
+  data() {
+    return {
+      filter: {},
+      current: 1,
+      size: this.GLOBAL.pageSize,
+      total: 0,
+      dataList: [],
+      curRow: {}
+    };
+  },
+  mounted() {
+    this.getList();
+  },
+  methods: {
+    async getList() {
+      if (!this.checkPrivilege("list", "list")) return;
+
+      const datas = {
+        ...this.filter,
+        pageNumber: this.current,
+        pageSize: this.size
+      };
+      const data = await semesterListQuery(datas);
+      this.dataList = data.records;
+      this.total = data.total;
+    },
+    toPage(page) {
+      this.current = page;
+      this.getList();
+    },
+    toAdd() {
+      this.curRow = {};
+      this.$refs.ModifySemester.open();
+    },
+    toEdit(row) {
+      this.curRow = row;
+      this.$refs.ModifySemester.open();
+    },
+    async toDelete(row) {
+      const result = await this.$confirm(
+        `确定要删除学期【${row.semesterName}】吗?`,
+        "提示",
+        {
+          type: "warning"
+        }
+      ).catch(() => {});
+      if (result !== "confirm") return;
+
+      await deleteSemester(row.id);
+      this.$message.success("删除成功!");
+      this.deletePageLastItem();
+    },
+    async setUsed(row) {
+      const result = await this.$confirm(
+        `确定要将学期【${row.semesterName}】设置成当前学期吗?`,
+        "提示",
+        {
+          type: "warning"
+        }
+      ).catch(() => {});
+      if (result !== "confirm") return;
+
+      await semesterSetInUsed(row.id);
+
+      this.getList();
+      this.$message.success("设置成功!");
+    }
+  }
+};
+</script>