zhangjie 2 سال پیش
والد
کامیت
a5e9a0c6ad

+ 9 - 5
src/modules/base/api.js

@@ -308,17 +308,21 @@ export const updateClazzSimple = datas => {
 export const semesterListQuery = datas => {
   return $postParam("/api/admin/basic/semester/query", datas);
 };
-export const examSemesterList = datas => {
-  return $postParam("/api/admin/basic/semester/list", datas);
-};
 export const deleteSemester = id => {
   return $postParam("/api/admin/basic/semester/delete", { id });
 };
 export const updateSemester = datas => {
   return $post("/api/admin/basic/semester/save", datas);
 };
-export const semesterSetInUsed = id => {
-  return $postParam("/api/admin/basic/semester/set_in_used", { id });
+// record-type-manage
+export const recordTypeListQuery = datas => {
+  return $postParam("/api/admin/basic/recordType/query", datas);
+};
+export const deleteRecordType = id => {
+  return $postParam("/api/admin/basic/recordType/delete", { id });
+};
+export const updateRecordType = datas => {
+  return $post("/api/admin/basic/recordType/save", datas);
 };
 // major-manage
 export const majorListQuery = datas => {

+ 113 - 0
src/modules/base/components/ModifyRecordType.vue

@@ -0,0 +1,113 @@
+<template>
+  <el-dialog
+    class="modify-record-type"
+    :visible.sync="modalIsShow"
+    :title="title"
+    top="10vh"
+    width="460px"
+    :close-on-click-modal="false"
+    :close-on-press-escape="false"
+    append-to-body
+    @open="visibleChange"
+  >
+    <el-form ref="modalFormComp" :model="modalForm" :rules="rules">
+      <el-form-item prop="name" label="类型名称:" label-width="100px">
+        <el-input
+          v-model.trim="modalForm.name"
+          placeholder="请输入类型名称"
+          clearable
+        ></el-input>
+      </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 { updateRecordType } from "../api";
+
+const initModalForm = {
+  id: null,
+  name: ""
+};
+
+export default {
+  name: "modify-record-type",
+  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: {
+        name: [
+          {
+            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 updateRecordType(datas).catch(() => {});
+      this.isSubmit = false;
+
+      if (!data) return;
+
+      this.$message.success(this.title + "成功!");
+      this.$emit("modified");
+      this.cancel();
+    }
+  }
+};
+</script>

+ 4 - 16
src/modules/base/router.js

@@ -5,10 +5,8 @@ import UserManage from "./views/UserManage.vue";
 
 // dict
 import StudentManage from "./views/StudentManage.vue";
-import CourseManage from "./views/CourseManage.vue";
 import SemesterManage from "./views/SemesterManage.vue";
-import MajorManage from "./views/MajorManage.vue";
-import CollegeManage from "./views/CollegeManage.vue";
+import RecordTypeManage from "./views/RecordTypeManage.vue";
 
 export default [
   {
@@ -26,11 +24,6 @@ export default [
     name: "UserManage",
     component: UserManage
   },
-  {
-    path: "/base/course-manage",
-    name: "CourseManage",
-    component: CourseManage
-  },
   {
     path: "/base/student-manage",
     name: "StudentManage",
@@ -42,13 +35,8 @@ export default [
     component: SemesterManage
   },
   {
-    path: "/base/major-manage",
-    name: "MajorManage",
-    component: MajorManage
-  },
-  {
-    path: "/base/college-manage",
-    name: "CollegeManage",
-    component: CollegeManage
+    path: "/base/record-type-manage",
+    name: "RecordTypeManage",
+    component: RecordTypeManage
   }
 ];

+ 132 - 0
src/modules/base/views/RecordTypeManage.vue

@@ -0,0 +1,132 @@
+<template>
+  <div class="record-type-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="name" label="类型名称"></el-table-column>
+        <el-table-column class-name="action-column" label="操作" width="160px">
+          <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 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-record-type
+      :instance="curRow"
+      @modified="getList"
+      ref="ModifyRecordType"
+    ></modify-record-type>
+  </div>
+</template>
+
+<script>
+import { recordTypeListQuery, deleteRecordType } from "../api";
+import ModifyRecordType from "../components/ModifyRecordType.vue";
+
+export default {
+  name: "record-type-manage",
+  components: { ModifyRecordType },
+  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 recordTypeListQuery(datas);
+      this.dataList = data.records;
+      this.total = data.total;
+    },
+    toPage(page) {
+      this.current = page;
+      this.getList();
+    },
+    toAdd() {
+      this.curRow = {};
+      this.$refs.ModifyRecordType.open();
+    },
+    toEdit(row) {
+      this.curRow = row;
+      this.$refs.ModifyRecordType.open();
+    },
+    async toDelete(row) {
+      const result = await this.$confirm(
+        `确定要删除类型【${row.semesterName}】吗?`,
+        "提示",
+        {
+          type: "warning"
+        }
+      ).catch(() => {});
+      if (result !== "confirm") return;
+
+      await deleteRecordType(row.id);
+      this.$message.success("删除成功!");
+      this.deletePageLastItem();
+    }
+  }
+};
+</script>

+ 2 - 31
src/modules/base/views/SemesterManage.vue

@@ -28,22 +28,8 @@
           :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">
+        <el-table-column class-name="action-column" label="操作" width="160px">
           <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"
@@ -83,7 +69,7 @@
 </template>
 
 <script>
-import { semesterListQuery, deleteSemester, semesterSetInUsed } from "../api";
+import { semesterListQuery, deleteSemester } from "../api";
 import ModifySemester from "../components/ModifySemester";
 
 export default {
@@ -140,21 +126,6 @@ export default {
       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("设置成功!");
     }
   }
 };