Browse Source

档案管理

zhangjie 2 years ago
parent
commit
7910b96af7

+ 66 - 0
src/components/base/ArchivesManageUserSelect.vue

@@ -0,0 +1,66 @@
+<template>
+  <el-select
+    v-model="selected"
+    class="archives-manage-user-select"
+    :placeholder="placeholder"
+    filterable
+    :clearable="clearable"
+    :disabled="disabled"
+    @change="select"
+  >
+    <el-option
+      v-for="item in optionList"
+      :key="item.id"
+      :value="item.id"
+      :label="item.name"
+    >
+    </el-option>
+  </el-select>
+</template>
+
+<script>
+import { commonArchivesManageUserQuery } from "../../modules/base/api";
+
+export default {
+  name: "archives-manage-user-select",
+  props: {
+    disabled: { type: Boolean, default: false },
+    placeholder: { type: String, default: "请选择学期" },
+    value: { type: [Number, String], default: "" },
+    clearable: { type: Boolean, default: true }
+  },
+  data() {
+    return {
+      optionList: [],
+      selected: ""
+    };
+  },
+  watch: {
+    value: {
+      immediate: true,
+      handler(val) {
+        this.selected = val;
+      }
+    }
+  },
+  created() {
+    this.search();
+  },
+  methods: {
+    async search() {
+      this.optionList = [];
+
+      let data = {};
+      const res = await commonArchivesManageUserQuery(data);
+      this.optionList = res;
+    },
+    select() {
+      this.$emit("input", this.selected);
+      this.$emit(
+        "change",
+        this.optionList.find(item => item.id === this.selected)
+      );
+    }
+  }
+};
+</script>

+ 2 - 2
src/components/base/ArchivesOrgSelect.vue

@@ -1,7 +1,7 @@
 <template>
   <el-select
     v-model="selected"
-    class="archives-select"
+    class="archives-org-select"
     :placeholder="placeholder"
     filterable
     :clearable="clearable"
@@ -22,7 +22,7 @@
 import { commonArchivesOrgQuery } from "../../modules/base/api";
 
 export default {
-  name: "archives-select",
+  name: "archives-org-select",
   props: {
     disabled: { type: Boolean, default: false },
     placeholder: { type: String, default: "请选择学期" },

+ 2 - 2
src/components/base/ArchivesTypeSelect.vue

@@ -1,7 +1,7 @@
 <template>
   <el-select
     v-model="selected"
-    class="archives-select"
+    class="archives-type-select"
     :placeholder="placeholder"
     filterable
     :clearable="clearable"
@@ -22,7 +22,7 @@
 import { commonArchivesTypeQuery } from "../../modules/base/api";
 
 export default {
-  name: "archives-select",
+  name: "archives-type-select",
   props: {
     disabled: { type: Boolean, default: false },
     placeholder: { type: String, default: "请选择学期" },

+ 4 - 0
src/modules/base/api.js

@@ -28,6 +28,10 @@ export const commonArchivesQuery = data => {
 export const commonArchivesTypeQuery = () => {
   return $postParam("/api/admin/common/archives_type/query", {});
 };
+// 档案类型
+export const commonArchivesManageUserQuery = () => {
+  return $postParam("/api/admin/common/manager_user/query", {});
+};
 // 档案部门
 export const commonArchivesOrgQuery = data => {
   return $postParam("/api/admin/common/manager_org/query", data);

+ 25 - 37
src/modules/record/components/ModifyArchives.vue

@@ -16,28 +16,20 @@
       :rules="rules"
       label-width="110px"
     >
-      <el-form-item prop="name" label="档案名称:">
+      <el-form-item prop="archivesName" label="档案名称:">
         <el-input
-          v-model.trim="modalForm.name"
+          v-model.trim="modalForm.archivesName"
           placeholder="请输入档案名称"
           clearable
         ></el-input>
       </el-form-item>
-      <el-form-item prop="archivesType" label="档案类型:">
-        <el-select
+      <el-form-item prop="archivesTypeId" label="档案类型:">
+        <archives-type-select
           class="width-full"
-          v-model="modalForm.archivesType"
-          placeholder="请选择档案类型"
-          filterable
+          v-model="modalForm.archivesTypeId"
+          placeholder="档案类型"
         >
-          <el-option
-            v-for="item in archivesTypes"
-            :key="item.id"
-            :value="item.id"
-            :label="item.name"
-          >
-          </el-option>
-        </el-select>
+        </archives-type-select>
       </el-form-item>
       <el-form-item prop="semesterId" label="所属学期:">
         <semester-select
@@ -45,24 +37,20 @@
           v-model="modalForm.semesterId"
         ></semester-select>
       </el-form-item>
-      <el-form-item prop="adminUserId" label="档案管理员:">
-        <el-select
+      <el-form-item prop="managerId" label="档案管理员:">
+        <archives-manage-user-select
           class="width-full"
-          v-model="modalForm.adminUserId"
-          placeholder="请选择档案管理员"
-          filterable
+          v-model="modalForm.managerId"
+          placeholder="档案管理员"
         >
-          <el-option
-            v-for="item in adminUsers"
-            :key="item.id"
-            :value="item.id"
-            :label="item.name"
-          >
-          </el-option>
-        </el-select>
+        </archives-manage-user-select>
       </el-form-item>
-      <el-form-item prop="orgId" label="档案管理部门:">
-        <org-select class="width-full" v-model="modalForm.orgId"></org-select>
+      <el-form-item prop="managerOrgId" label="档案管理部门:">
+        <org-select
+          class="width-full"
+          v-model="modalForm.managerOrgId"
+          :semesterId="modalForm.semesterId"
+        ></org-select>
       </el-form-item>
       <el-form-item prop="warningTime" label="到期预警时间:">
         <el-date-picker
@@ -89,11 +77,11 @@ import { updateArchives } from "../api";
 
 const initModalForm = {
   id: "",
-  name: "",
-  archivesType: "",
+  archivesName: "",
+  archivesTypeId: "",
   semesterId: "",
-  adminUserId: "",
-  orgId: "",
+  managerId: "",
+  managerOrgId: "",
   warningTime: undefined
 };
 
@@ -133,7 +121,7 @@ export default {
             trigger: "change"
           }
         ],
-        archivesType: [
+        archivesTypeId: [
           {
             required: true,
             message: "请选择档案类型",
@@ -147,14 +135,14 @@ export default {
             trigger: "change"
           }
         ],
-        adminUserId: [
+        managerId: [
           {
             required: true,
             message: "请选择档案管理员",
             trigger: "change"
           }
         ],
-        orgId: [
+        managerOrgId: [
           {
             required: true,
             message: "请选择档案管理部门",

+ 9 - 27
src/modules/record/views/ArchivesManage.vue

@@ -10,34 +10,19 @@
             ></semester-select>
           </el-form-item>
           <el-form-item label="档案管理部门:">
-            <el-select
+            <archives-org-select
               v-model="filter.managerOrgId"
+              :semesterId="filter.semesterId"
               placeholder="档案管理部门"
-              filterable
             >
-              <el-option
-                v-for="item in orgs"
-                :key="item.id"
-                :value="item.id"
-                :label="item.name"
-              >
-              </el-option>
-            </el-select>
+            </archives-org-select>
           </el-form-item>
           <el-form-item label="档案类型:">
-            <el-select
+            <archives-type-select
               v-model="filter.archivesTypeId"
               placeholder="档案类型"
-              filterable
             >
-              <el-option
-                v-for="item in archivesTypes"
-                :key="item.id"
-                :value="item.id"
-                :label="item.name"
-              >
-              </el-option>
-            </el-select>
+            </archives-type-select>
           </el-form-item>
           <el-form-item label="档案名称:">
             <el-input
@@ -48,7 +33,6 @@
             ></el-input>
           </el-form-item>
         </template>
-
         <el-form-item label-width="0px">
           <el-button
             v-if="checkPrivilege('button', 'select')"
@@ -184,17 +168,15 @@ export default {
       current: 1,
       size: this.GLOBAL.pageSize,
       total: 0,
-      dataList: [
-        {
-          id: "1",
-          name: "12312"
-        }
-      ],
+      dataList: [],
       curRow: {},
       orgs: [],
       archivesTypes: []
     };
   },
+  mounted() {
+    this.toPage(1);
+  },
   methods: {
     async getList() {
       if (!this.checkPrivilege("list", "list")) return;

+ 3 - 1
src/plugins/globalVuePlugins.js

@@ -16,6 +16,7 @@ import TeachClazzSelect from "../components/base/TeachClazzSelect.vue";
 import ArchivesSelect from "../components/base/ArchivesSelect.vue";
 import ArchivesOrgSelect from "../components/base/ArchivesOrgSelect.vue";
 import ArchivesTypeSelect from "../components/base/ArchivesTypeSelect.vue";
+import ArchivesManageUserSelect from "../components/base/ArchivesManageUserSelect.vue";
 
 const components = {
   ViewFooter,
@@ -30,7 +31,8 @@ const components = {
   TeachClazzSelect,
   ArchivesSelect,
   ArchivesOrgSelect,
-  ArchivesTypeSelect
+  ArchivesTypeSelect,
+  ArchivesManageUserSelect
 };
 
 export default {