瀏覽代碼

扫描任务管理页面调整

zhangjie 2 年之前
父節點
當前提交
19308ac992

+ 1 - 1
src/components/ImportFile.vue

@@ -37,7 +37,7 @@
         ref="UploadComp"
       >
         <i class="el-icon-upload"></i><br />
-        <em class="el-upload__text">将文件拖到此处,或<em>点击上传</em></em>
+        <em class="el-upload__text">点击或将文件拖拽到这里上传</em>
         <p
           slot="tip"
           :class="[

+ 20 - 0
src/constants/menus-data.js

@@ -724,6 +724,15 @@ export default [
       }
     ],
     buttons: [
+      {
+        id: "511",
+        name: "学期管理-新建学期",
+        url: "select",
+        type: "BUTTON",
+        parentId: "510",
+        sequence: 1,
+        enable: true
+      },
       {
         id: "511",
         name: "学期管理-新建学期",
@@ -800,6 +809,17 @@ export default [
         sequence: 1,
         enable: true
       }
+    ],
+    conditions: [
+      {
+        id: "234",
+        name: "组织架构-查询条件",
+        url: "Condition",
+        type: "CONDITION",
+        parentId: "4",
+        sequence: 1,
+        enable: true
+      }
     ]
   },
   {

+ 6 - 0
src/modules/record/api.js

@@ -4,6 +4,9 @@ import { $postParam, $post } from "@/plugins/axios";
 export const scanTaskListPage = datas => {
   return $postParam("/api/admin/sys/role/list", datas);
 };
+export const scanTaskDetailPage = datas => {
+  return $postParam("/api/admin/sys/role/list", datas);
+};
 export const updateScanTask = datas => {
   return $post("/api/admin/sys/user/save", datas);
 };
@@ -13,6 +16,9 @@ export const ableScanTask = ({ id, enable }) => {
 export const deleteScanTask = ids => {
   return $postParam("/api/admin/sys/role/remove", { ids });
 };
+export const clearScanTaskData = ids => {
+  return $postParam("/api/admin/sys/role/remove", { ids });
+};
 export const scanTaskBindUser = datas => {
   return $postParam("/api/admin/sys/role/bind_range", datas);
 };

+ 2 - 6
src/modules/record/components/DataCheckStateDialog.vue

@@ -4,7 +4,7 @@
     :visible.sync="modalIsShow"
     title="绑定详情"
     top="10vh"
-    width="600px"
+    width="700px"
     :close-on-click-modal="false"
     :close-on-press-escape="false"
     append-to-body
@@ -12,11 +12,7 @@
   >
     <el-table ref="TableList" :data="dataList">
       <el-table-column type="index" label="序号" width="70"></el-table-column>
-      <el-table-column
-        prop="chckerName"
-        label="绑定员"
-        width="120"
-      ></el-table-column>
+      <el-table-column prop="chckerName" label="绑定员"></el-table-column>
       <el-table-column
         prop="chckerName"
         label="已绑量"

+ 2 - 27
src/modules/record/components/ModifyScanTask.vue

@@ -60,22 +60,6 @@
           clearable
         ></el-input>
       </el-form-item>
-      <el-form-item prop="scanUserId" label="扫描员:">
-        <el-select
-          style="width:100%;"
-          v-model="modalForm.scanUserId"
-          placeholder="请选择扫描员"
-          filterable
-        >
-          <el-option
-            v-for="item in scanUsers"
-            :key="item.id"
-            :value="item.id"
-            :label="item.name"
-          >
-          </el-option>
-        </el-select>
-      </el-form-item>
     </el-form>
     <div slot="footer">
       <el-button type="primary" :disabled="isSubmit" @click="submit"
@@ -95,8 +79,7 @@ const initModalForm = {
   recordId: "",
   courseName: "",
   teacherName: "",
-  teachingClass: "",
-  scanUserId: ""
+  teachingClass: ""
 };
 
 export default {
@@ -177,17 +160,9 @@ export default {
             message: "教学班不能超过100字符",
             trigger: "change"
           }
-        ],
-        scanUserId: [
-          {
-            required: true,
-            message: "请选择扫描员",
-            trigger: "change"
-          }
         ]
       },
-      records: [],
-      scanUsers: []
+      records: []
     };
   },
   methods: {

+ 97 - 0
src/modules/record/components/ScanTaskDetailDialog.vue

@@ -0,0 +1,97 @@
+<template>
+  <el-dialog
+    class="scan-task-detail-dialog"
+    :visible.sync="modalIsShow"
+    title="详情"
+    :close-on-click-modal="false"
+    :close-on-press-escape="false"
+    append-to-body
+    fullscreen
+    @open="visibleChange"
+  >
+    <el-table ref="TableList" :data="dataList">
+      <el-table-column
+        type="index"
+        label="序号"
+        width="70"
+        :index="indexMethod"
+      ></el-table-column>
+      <el-table-column prop="chckerName" label="姓名"></el-table-column>
+      <el-table-column prop="chckerName" label="学号"></el-table-column>
+      <el-table-column prop="chckerName" label="课程"></el-table-column>
+      <el-table-column prop="chckerName" label="任课老师"></el-table-column>
+      <el-table-column prop="chckerName" label="教学班"></el-table-column>
+      <el-table-column
+        prop="chckerName"
+        label="扫描张数"
+        width="120"
+      ></el-table-column>
+      <el-table-column
+        prop="chckerName"
+        label="数据检查员"
+        width="120"
+      ></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>
+  </el-dialog>
+</template>
+
+<script>
+import { scanTaskDetailPage } from "../api";
+
+export default {
+  name: "scan-task-detail-dialog",
+  props: {
+    task: {
+      type: Object,
+      default() {
+        return {};
+      }
+    }
+  },
+  data() {
+    return {
+      modalIsShow: false,
+      dataList: [],
+      current: 1,
+      size: this.GLOBAL.pageSize,
+      total: 0
+    };
+  },
+  methods: {
+    visibleChange() {
+      this.dataList = [];
+      this.toPage(1);
+    },
+    cancel() {
+      this.modalIsShow = false;
+    },
+    open() {
+      this.modalIsShow = true;
+    },
+    async getList() {
+      const datas = {
+        taskId: this.taskId,
+        pageNumber: this.current,
+        pageSize: this.size
+      };
+      const data = await scanTaskDetailPage(datas);
+      this.dataList = data || [];
+    },
+    toPage(page) {
+      this.current = page;
+      this.getList();
+    }
+  }
+};
+</script>

+ 86 - 48
src/modules/record/views/ScanTaskManage.vue

@@ -3,14 +3,53 @@
     <div class="part-box part-box-filter part-box-flex">
       <el-form ref="FilterForm" label-position="left" label-width="85px" inline>
         <template v-if="checkPrivilege('condition', 'condition')">
-          <!-- <el-form-item label="关键词:" label-width="75px">
+          <el-form-item label="课程:">
+            <el-select
+              style="width:100%;"
+              v-model="filter.courseCode"
+              placeholder="请选择课程"
+              filterable
+            >
+              <el-option
+                v-for="item in courses"
+                :key="item.code"
+                :value="item.code"
+                :label="item.name"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="任课老师:">
             <el-input
               style="width: 180px;"
               v-model.trim="filter.userInfo"
-              placeholder="扫描员/课程"
+              placeholder="任课老师"
               clearable
             ></el-input>
-          </el-form-item> -->
+          </el-form-item>
+          <el-form-item label="绑定进度范围:">
+            <el-input-number
+              v-model="filter.startProgress"
+              style="width: 84px"
+              :min="0"
+              :max="100"
+              :step="1"
+              step-strictly
+              :controls="false"
+              placeholder="最小进度"
+            ></el-input-number>
+            <span>~</span>
+            <el-input-number
+              v-model="filter.endProgress"
+              style="width: 84px"
+              :min="0"
+              :max="100"
+              :step="1"
+              step-strictly
+              :controls="false"
+              placeholder="最大进度"
+            ></el-input-number>
+          </el-form-item>
         </template>
 
         <el-form-item label-width="0px">
@@ -38,13 +77,6 @@
           @click="toImportTask"
           >导入任务</el-button
         >
-        <el-button
-          v-if="checkPrivilege('button', 'bind')"
-          type="primary"
-          icon="el-icon-upload"
-          @click="toBind"
-          >绑定扫描员</el-button
-        >
         <el-button
           v-if="checkPrivilege('button', 'add')"
           type="primary"
@@ -109,13 +141,6 @@
           fixed="right"
         >
           <template slot-scope="scope">
-            <el-button
-              v-if="checkPrivilege('link', 'edit')"
-              class="btn-primary"
-              type="text"
-              @click="toBindScanUser(scope.row)"
-              >绑定扫描员</el-button
-            >
             <el-button
               v-if="checkPrivilege('link', 'detail')"
               class="btn-primary"
@@ -130,6 +155,13 @@
               @click="toDelete(scope.row)"
               >删除</el-button
             >
+            <el-button
+              v-if="checkPrivilege('link', 'delete')"
+              class="btn-danger"
+              type="text"
+              @click="toClear(scope.row)"
+              >清除数据</el-button
+            >
           </template>
         </el-table-column>
       </el-table>
@@ -146,12 +178,6 @@
       </div>
     </div>
 
-    <!-- ScanTaskBindUserDialog -->
-    <scan-task-bind-user-dialog
-      ref="ScanTaskBindUserDialog"
-      :instance="curRow"
-      @modified="getList"
-    ></scan-task-bind-user-dialog>
     <!-- ImportTask -->
     <import-file
       v-if="checkPrivilege('button', 'import')"
@@ -194,39 +220,39 @@
         </el-form-item>
       </el-form>
     </import-file>
-    <!-- TaskBindScanUser -->
-    <import-file
-      v-if="checkPrivilege('button', 'bind')"
-      ref="TaskBindScanUser"
-      title="绑定扫描员"
-      :upload-url="bindUrl"
-      :format="['xls', 'xlsx']"
-      :download-url="bindTemplateUrl"
-      :download-filename="bindTemplateFilename"
-      :auto-upload="false"
-      @upload-success="uploadSuccess"
-    ></import-file>
     <!-- ModifyScanTask -->
     <modify-scan-task
       ref="ModifyScanTask"
       :instance="curRow"
       :modified="getList"
     ></modify-scan-task>
+    <!-- DataCheckStateDialog -->
+    <data-check-state-dialog ref="DataCheckStateDialog" :task="curRow">
+    </data-check-state-dialog>
   </div>
 </template>
 
 <script>
-import { scanTaskListPage, deleteScanTask } from "../api";
+import { scanTaskListPage, deleteScanTask, clearScanTaskData } from "../api";
 import ImportFile from "../../../components/ImportFile.vue";
-import ScanTaskBindUserDialog from "../components/ScanTaskBindUserDialog.vue";
 import ModifyScanTask from "../components/ModifyScanTask.vue";
+import DataCheckStateDialog from "../components/DataCheckStateDialog.vue";
 
 export default {
-  name: "user-manage",
-  components: { ScanTaskBindUserDialog, ImportFile, ModifyScanTask },
+  name: "scan-task-manage",
+  components: {
+    ImportFile,
+    ModifyScanTask,
+    DataCheckStateDialog
+  },
   data() {
     return {
-      filter: {},
+      filter: {
+        courseCode: "",
+        teacherName: "",
+        startProgress: undefined,
+        endProgress: undefined
+      },
       current: 1,
       size: this.GLOBAL.pageSize,
       total: 0,
@@ -235,6 +261,7 @@ export default {
       curRow: {},
       loading: false,
       userId: this.$ls.get("user", { id: "" }).id,
+      courses: [],
       records: [],
       // import-task
       modalForm: { recordId: "" },
@@ -279,24 +306,21 @@ export default {
     handleSelectionChange(val) {
       this.multipleSelection = val.map(item => item.id);
     },
-    toBindScanUser(row) {
-      this.curRow = row;
-      this.$refs.ScanTaskBindUserDialog.open();
-    },
     toDetail(row) {
       this.curRow = row;
-      this.$refs.ScanTaskBindUserDialog.open();
+      this.$refs.ScanTaskDetailDialog.open();
     },
     toAdd() {
       this.curRow = {};
       this.$refs.ModifyScanTask.open();
     },
+    toShowProgress(row) {
+      this.curRow = row;
+      this.$refs.DataCheckStateDialog.open();
+    },
     toImportTask() {
       this.$refs.ImportTask.open();
     },
-    toBind() {
-      this.$refs.TaskBindScanUser.open();
-    },
     async batchDelete() {
       if (!this.multipleSelection.length) {
         this.$message.error("请选择要删除的数据");
@@ -326,6 +350,20 @@ export default {
       this.$message.success("操作成功!");
       this.deletePageLastItem();
     },
+    async toClear(row) {
+      const res = await this.$confirm(
+        `请确认是否清除当前任务已扫描数据?`,
+        "提示",
+        {
+          type: "warning"
+        }
+      ).catch(() => {});
+      if (res !== "confirm") return;
+
+      await clearScanTaskData([row.id]);
+      this.$message.success("操作成功!");
+      this.getList();
+    },
     // import
     async submitImport() {
       this.uploadData = { ...this.modalForm };