Browse Source

hidden——2

xvying 1 năm trước cách đây
mục cha
commit
b204ebd8b2

+ 18 - 1
src/views/kaohe/api/index.js

@@ -3,7 +3,7 @@
  * @Author: 旭颖
  * @Date: 2023-03-22 13:49:36
  * @LastEditors: Please set LastEditors
- * @LastEditTime: 2023-03-23 19:46:30
+ * @LastEditTime: 2023-03-24 19:19:37
  */
 
 import request from "@/utils/request";
@@ -74,3 +74,20 @@ export function examineDetail(data) {
     data,
   });
 }
+//获取父级组织名称
+export function organizationList(params) {
+  return request({
+    url: "/organizations-select-options",
+    method: "get",
+    params,
+  });
+}
+//删除
+
+export function deleteFile(data) {
+  return request({
+    url: "/examine/delete",
+    method: "post",
+    data,
+  });
+}

+ 33 - 9
src/views/kaohe/index.vue

@@ -3,7 +3,7 @@
  * @Author: 旭颖
  * @Date: 2023-03-22 10:15:16
  * @LastEditors: Please set LastEditors
- * @LastEditTime: 2023-03-23 19:23:15
+ * @LastEditTime: 2023-03-24 19:24:42
 -->
 <template>
   <div class="index-home" v-loading.fullscreen.lock="loadingFull">
@@ -73,11 +73,7 @@
         align="center"
       >
         <template #default="{ row }">
-          <el-button
-            type="success"
-            plain
-            size="mini"
-            @click="uploadFileStu(row)"
+          <el-button type="success" size="mini" @click="uploadFileStu(row)"
             >上传文件</el-button
           >
           <!-- <el-button type="primary" plain size="mini" @click="uploadList(row)"
@@ -86,7 +82,6 @@
           <el-button
             type="primary"
             v-if="row.type == 1"
-            plain
             size="mini"
             @click="lookDetail(row)"
             >查看</el-button
@@ -94,11 +89,17 @@
           <el-button
             type="primary"
             v-if="row.type == 2"
-            plain
             size="mini"
             @click="lookDetail(row)"
             >查看</el-button
           >
+          <el-button
+            v-if="row.is_one == 1 && row.examine && is_student"
+            type="danger"
+            size="mini"
+            @click="handleDelete(row)"
+            >删除</el-button
+          >
         </template>
       </el-table-column>
     </el-table>
@@ -111,7 +112,7 @@
 import uploadFile from "./components/uploadFile";
 import Detail from "./components/detail";
 
-import { geteExamines } from "./api/index";
+import { geteExamines, deleteFile } from "./api/index";
 export default {
   components: {
     uploadFile,
@@ -121,9 +122,14 @@ export default {
     return {
       loadingFull: true,
       list: [],
+      is_student: false,
     };
   },
   created() {
+    let roles = this.$store.state.user.roles;
+    if (roles.includes("Student")) {
+      this.is_student = true;
+    }
     this.geteExamines();
   },
   methods: {
@@ -151,6 +157,24 @@ export default {
         });
       }
     },
+    //单文件删除
+    handleDelete(row) {
+      this.$confirm("您确定要删除当前上传的文件吗?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      }).then(async () => {
+        const { message } = await deleteFile({
+          id: row.examine.id,
+          examine_question_id: row.id,
+          staff_id: this.$store.state.user.staff_id,
+        });
+        this.$message({
+          type: "success",
+          message: message,
+        });
+      });
+    },
     lookDetailList(row) {},
     //学生上传列表
     uploadList(row) {

+ 1 - 1
src/views/kaohe/rewardList.vue

@@ -3,7 +3,7 @@
  * @Author: 旭颖
  * @Date: 2023-03-22 10:15:16
  * @LastEditors: Please set LastEditors
- * @LastEditTime: 2023-03-24 18:13:52
+ * @LastEditTime: 2023-03-24 19:15:30
 -->
 <template>
   <div class="index-home" v-loading.fullscreen.lock="loadingFull">

+ 70 - 6
src/views/kaohe/statics.vue

@@ -3,10 +3,53 @@
  * @Author: 旭颖
  * @Date: 2023-03-22 10:15:16
  * @LastEditors: Please set LastEditors
- * @LastEditTime: 2023-03-23 15:58:49
+ * @LastEditTime: 2023-03-24 19:13:17
 -->
 <template>
   <div class="index-home" v-loading.fullscreen.lock="loadingFull">
+    <div>
+      <el-form
+        ref="searchParams"
+        :model="searchParams"
+        label-width="80px"
+        :inline="true"
+      >
+        <el-form-item v-if="can_check">
+          <el-select
+            v-model="searchParams.organization_id"
+            clearable
+            size="medium"
+            placeholder="请选择支部"
+          >
+            <el-option
+              v-for="item in organization_list"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-input
+            size="medium"
+            v-model="searchParams.staff_true_name"
+            placeholder="学生姓名"
+            clearable
+        /></el-form-item>
+        <el-form-item>
+          <el-input
+            size="medium"
+            v-model="searchParams.staff_no"
+            placeholder="学号"
+            clearable
+        /></el-form-item>
+
+        <el-button type="primary" @click="Search" icon="el-icon-search"
+          >搜索</el-button
+        >
+      </el-form>
+    </div>
     <el-table :data="list" style="width: 100%" border>
       <el-table-column label="序号" width="50" type="index" align="center" />
       <el-table-column
@@ -125,7 +168,7 @@
 <script>
 // import Detail from "./components/detail";
 
-import { examStatics } from "./api/index";
+import { examStatics, organizationList } from "./api/index";
 export default {
   data() {
     return {
@@ -133,15 +176,28 @@ export default {
       list: [],
       searchParams: {
         page: 1,
-        per_page: 15,
+        limit: 15,
       },
       totalPage: 0,
+      organization_list: [],
+      can_check: false,
     };
   },
   created() {
+    let roles = this.$store.state.user.roles;
+    if (roles.includes("Super admin")) {
+      this.can_check = true;
+    }
     this.getList();
+    this.selectOrganizationList();
   },
   methods: {
+    //获取组织列表
+    async selectOrganizationList() {
+      const { data } = await organizationList({ status: 1 });
+      this.organization_list = data;
+      console.log(data, "组织列表");
+    },
     //学生上传文件
     uploadFileStu(row) {
       this.$refs["upload-file"].showEdit(row);
@@ -155,14 +211,14 @@ export default {
         path: "/kaohe/uploadList",
         query: {
           id: row.id,
-          type:row.type
+          type: row.type,
         },
       });
     },
     //考核列表
     async getList() {
       this.loadingFull = true;
-      const { data } = await examStatics();
+      const { data } = await examStatics(this.searchParams);
       this.list = data.data;
       this.totalPage = data.meta.pagination.total;
       this.loadingFull = false;
@@ -177,7 +233,15 @@ export default {
       this.searchParams.limit = e;
       this.getList();
     },
+    Search() {
+      this.searchParams.page = 1;
+      this.getList();
+    },
   },
 };
 </script>
-<style lang="scss" scoped></style>
+<style lang="scss" scoped>
+  .el-table {
+    margin-top: 0 !important;
+  }
+</style>

+ 96 - 6
src/views/kaohe/uploadList.vue

@@ -3,11 +3,71 @@
  * @Author: 旭颖
  * @Date: 2023-03-22 10:15:16
  * @LastEditors: Please set LastEditors
- * @LastEditTime: 2023-03-24 18:14:50
+ * @LastEditTime: 2023-03-24 19:09:06
 -->
 <template>
   <div class="index-home" v-loading.fullscreen.lock="loadingFull">
     <el-page-header @back="goBack" content="上传人员列表"> </el-page-header>
+    <div style="margin-top: 20px">
+      <el-form
+        ref="searchParams"
+        :model="searchParams"
+        label-width="80px"
+        :inline="true"
+      >
+        <el-form-item v-if="can_check">
+          <el-select
+            size="medium"
+            v-model="searchParams.organization_id"
+            clearable
+            placeholder="请选择支部"
+          >
+            <el-option
+              v-for="item in organization_list"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-select
+            size="medium"
+            v-model="searchParams.check_status"
+            clearable
+            placeholder="审核状态"
+          >
+            <el-option
+              v-for="item in checkList"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-input
+            size="medium"
+            v-model="searchParams.staff_true_name"
+            placeholder="学生姓名"
+            clearable
+        /></el-form-item>
+        <el-form-item>
+          <el-input
+            size="medium"
+            v-model="searchParams.staff_no"
+            placeholder="学号"
+            clearable
+          />
+        </el-form-item>
+
+        <el-button type="primary" @click="Search" icon="el-icon-search"
+          >搜索</el-button
+        >
+      </el-form>
+    </div>
     <el-table :data="tableData" style="width: 100%" border>
       <el-table-column label="序号" width="50" type="index" />
       <el-table-column
@@ -118,7 +178,7 @@
   </div>
 </template>
 <script>
-import { examList } from "./api/index";
+import { examList, organizationList } from "./api/index";
 import checkOut from "./components/checkOut";
 import detail from "./components/detail";
 export default {
@@ -132,19 +192,44 @@ export default {
       totalPage: 0,
       searchParams: {
         page: 1,
-        per_page: 15,
+        limit: 15,
       },
       loadingFull: true,
       tableData: [],
+      checkList: [
+        { id: 1, name: "待审核" },
+        { id: 2, name: "审核成功" },
+        { id: 3, name: "审核失败" },
+      ],
+      organization_list: [],
+      can_check: false,
     };
   },
   created() {
     let route = this.$route.query;
-
     this.type = route.type;
+    let roles = this.$store.state.user.roles;
+    if (roles.includes("Super admin")) {
+      this.can_check = true;
+    }
     this.getList();
+    this.selectOrganizationList();
   },
   methods: {
+    //获取组织列表
+    async selectOrganizationList() {
+      const { data } = await organizationList({ status: 1 });
+      this.organization_list = data;
+      console.log(data, "组织列表");
+    },
+    //搜索
+    Search() {
+      this.searchParams.page = 1;
+      if (!this.searchParams.check_status) {
+        delete this.searchParams.check_status;
+      }
+      this.getList();
+    },
     //审核
     checkOutStu() {
       this.$refs["check-out"].showEdit({
@@ -184,7 +269,8 @@ export default {
     async getList() {
       this.loadingFull = true;
       let route = this.$route.query;
-      const { data } = await examList({ examine_question_id: route.id });
+      this.searchParams.examine_question_id = route.id;
+      const { data } = await examList(this.searchParams);
       this.tableData = data.data;
       this.totalPage = data.meta.pagination.total;
       this.loadingFull = false;
@@ -208,4 +294,8 @@ export default {
   },
 };
 </script>
-<style lang="scss" scoped></style>
+<style lang="scss" scoped>
+.el-table {
+  margin-top: 0 !important;
+}
+</style>