ソースを参照

feat: 超管配置修改

zhangjie 3 ヶ月 前
コミット
4eefefc7b3

+ 6 - 0
src/constants/adminNavs.js

@@ -41,6 +41,12 @@ const navs = [
     name: "工具管理",
     url: "ToolManage",
   },
+  {
+    id: "10",
+    parentId: "1",
+    name: "版本管理",
+    url: "VersionManage",
+  },
 ];
 
 export default navs;

+ 18 - 0
src/modules/admin/api.js

@@ -131,6 +131,13 @@ export const schoolSetSyncUpdate = (datas) => {
 export const schoolSetDataBackup = (schoolId) => {
   return $postParam("/api/admin/set/backup", { schoolId });
 };
+// 识别配置
+export const schoolSetRecognitionInfo = (schoolId) => {
+  return $postParam("/api/admin/set/recognition/select", { schoolId });
+};
+export const schoolSetRecognitionUpdate = (datas) => {
+  return $post("/api/admin/set/recognition/save", datas);
+};
 
 // 数据同步 school database sync
 export const schoolSetDatabaseSyncBaseinfo = (schoolId) => {
@@ -214,3 +221,14 @@ export const toolInfo = () => {
     toolType: "PICTURE_DOWNLOAD",
   });
 };
+
+// 版本管理
+export const versionList = (datas) => {
+  return $postParam("/api/admin/sys/client/version/list", datas);
+};
+export const versionSave = (datas) => {
+  return $post("/api/admin/sys/client/version/save", datas);
+};
+export const versionDelete = (id) => {
+  return $post("/api/admin/sys/client/version/delete", { id });
+};

+ 6 - 0
src/modules/admin/components/ModifySchoolSet.vue

@@ -39,6 +39,7 @@ import SchoolSetTarget from "./school/SchoolSetTarget.vue";
 import SchoolSetStdno from "./school/SchoolSetStdno.vue";
 import SchoolSetDatabaseSync from "./school/SchoolSetDatabaseSync.vue";
 import SchoolSetRobot from "./school/SchoolSetRobot.vue";
+import SchoolSetRecognition from "./school/SchoolSetRecognition.vue";
 
 export default {
   name: "modify-school-set",
@@ -53,6 +54,7 @@ export default {
     SchoolSetStdno,
     SchoolSetDatabaseSync,
     SchoolSetRobot,
+    SchoolSetRecognition,
   },
   props: {
     school: {
@@ -95,6 +97,10 @@ export default {
           name: "课程目标",
           val: "target",
         },
+        {
+          name: "识别配置",
+          val: "recognition",
+        },
         {
           name: "数据同步",
           val: "database-sync",

+ 139 - 0
src/modules/admin/components/ModifyVersion.vue

@@ -0,0 +1,139 @@
+<template>
+  <el-dialog
+    :visible.sync="modalIsShow"
+    :title="title"
+    top="10vh"
+    width="540px"
+    :close-on-click-modal="false"
+    :close-on-press-escape="false"
+    append-to-body
+    @opened="visibleChange"
+  >
+    <el-form
+      :model="modalForm"
+      :rules="rules"
+      ref="modalFormComp"
+      label-width="100px"
+    >
+      <el-form-item label="客户端版本:" prop="clientVersion">
+        <el-input
+          v-model="modalForm.clientVersion"
+          placeholder="请输入版本号"
+          clearable
+        ></el-input>
+      </el-form-item>
+      <el-form-item label="服务端版本:" prop="serverVersion">
+        <el-input
+          v-model="modalForm.serverVersion"
+          placeholder="请输入版本号"
+          clearable
+        ></el-input>
+        <br />
+        <p class="tips-info mt-1">需要录入多个版本用英文逗号隔开</p>
+      </el-form-item>
+    </el-form>
+
+    <div slot="footer">
+      <el-button type="danger" @click="cancel" plain>取消</el-button>
+      <el-button type="primary" :disabled="isSubmit" @click="submit"
+        >确认</el-button
+      >
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+import { versionSave } from "@/modules/admin/api";
+
+const initModalForm = {
+  clientVersion: "",
+  serverVersion: "",
+};
+
+export default {
+  name: "ModifyVersion",
+  props: {
+    instance: {
+      type: Object,
+      default() {
+        return {};
+      },
+    },
+  },
+
+  data() {
+    const versionReg = /^v?[0-9]+(\.[0-9]+)*$/;
+    const serverVersionValidator = (rule, value, callback) => {
+      if (!value) return callback();
+      const versions = value.split(",");
+      if (versions.some((v) => !versionReg.test(v))) {
+        callback(new Error("请输入正确的版本号"));
+      } else {
+        callback();
+      }
+    };
+
+    return {
+      modalIsShow: false,
+      isSubmit: false,
+      modalForm: { ...initModalForm },
+      rules: {
+        clientVersion: [
+          { required: true, message: "请输入客户端版本号" },
+          {
+            pattern: versionReg,
+            message: "请输入正确的版本号",
+            trigger: "change",
+          },
+        ],
+        serverVersion: [
+          { required: true, message: "请输入服务端版本号" },
+          {
+            validator: serverVersionValidator,
+            trigger: "change",
+          },
+        ],
+      },
+    };
+  },
+  computed: {
+    isEdit() {
+      return !!this.instance.id;
+    },
+    title() {
+      return (this.isEdit ? "管理" : "新增") + "版本";
+    },
+  },
+  methods: {
+    visibleChange() {
+      if (this.instance.id) {
+        this.modalForm = this.$objAssign(initModalForm, this.instance);
+      } else {
+        this.modalForm = { ...initModalForm };
+      }
+      this.$refs.modalFormComp.clearValidate();
+    },
+    open() {
+      this.modalIsShow = true;
+    },
+    cancel() {
+      this.modalIsShow = false;
+    },
+    async submit() {
+      const valid = await this.$refs.modalFormComp.validate();
+      if (!valid) return;
+
+      if (this.isSubmit) return;
+      this.isSubmit = true;
+      const datas = { ...this.modalForm };
+      const res = await versionSave(datas).catch(() => {});
+      this.isSubmit = false;
+
+      if (!res) return;
+      this.$message.success("保存成功");
+      this.$emit("modified");
+      this.cancel();
+    },
+  },
+};
+</script>

+ 5 - 4
src/modules/admin/components/school/SchoolSetPaper.vue

@@ -8,16 +8,17 @@
     >
       <el-form-item prop="pdfSize" label="允许上传试卷规格:">
         <el-checkbox-group v-model="modalForm.pdfSize">
-          <el-checkbox v-for="item in sysPdfSize" :key="item" :label="item">{{
-            item
-          }}</el-checkbox>
+          <el-checkbox v-for="item in sysPdfSize" :key="item" :label="item"
+            >{{ item }}
+            <span v-if="item === '8K'" style="margin-left: 5px">(270*390)</span>
+          </el-checkbox>
         </el-checkbox-group>
       </el-form-item>
       <el-form-item prop="cardSize" label="答题卡规格:">
         <el-radio-group v-model="modalForm.cardSize">
           <el-radio v-for="item in sysCardSize" :key="item" :label="item">
             <span>{{ item }}</span>
-            <span v-if="item === '8K'" style="margin-left: 5px">(255*370)</span>
+            <span v-if="item === '8K'" style="margin-left: 5px">(270*390)</span>
           </el-radio>
         </el-radio-group>
       </el-form-item>

+ 100 - 0
src/modules/admin/components/school/SchoolSetRecognition.vue

@@ -0,0 +1,100 @@
+<template>
+  <div>
+    <el-form
+      ref="modalFormComp"
+      :model="modalForm"
+      :rules="rules"
+      label-width="120px"
+    >
+      <el-form-item label="扩展算法" prop="extendAlgorithm">
+        <el-radio-group v-model="modalForm.extendAlgorithm">
+          <el-radio
+            v-for="item in OPEN_STATUS"
+            :key="item.value"
+            :label="item.value"
+            >{{ item.label }}</el-radio
+          >
+        </el-radio-group>
+        <br />
+        <el-radio-group v-model="modalForm.extendAlgorithmType">
+          <el-radio :key="1" :label="1">仅识别正式算法有嫌疑的题</el-radio>
+          <el-radio :key="2" :label="2">识别全部答题卡</el-radio>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item label="客观题检查扩展条件">
+        <el-checkbox v-model="modalForm.avoidSingleChoice">
+          单选题有且仅有一个识别答案不进客观题检查
+        </el-checkbox>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" :loading="loading" @click="confirm"
+          >保存</el-button
+        >
+      </el-form-item>
+    </el-form>
+  </div>
+</template>
+
+<script>
+import { OPEN_STATUS } from "@/constants/enumerate";
+import {
+  schoolSetRecognitionInfo,
+  schoolSetRecognitionUpdate,
+} from "../../api";
+
+export default {
+  name: "SchoolSetRecognition",
+  props: {
+    school: {
+      type: Object,
+      default() {
+        return {};
+      },
+    },
+  },
+  data() {
+    return {
+      modalForm: {
+        // 扩展算法
+        extendAlgorithm: false,
+        extendAlgorithmType: 1,
+        avoidSingleChoice: false,
+      },
+      OPEN_STATUS,
+      loading: false,
+      rules: {
+        extendAlgorithm: [{ required: true, message: "请选择扩展算法" }],
+        extendAlgorithmType: [
+          { required: true, message: "请选择扩展算法类型" },
+        ],
+      },
+    };
+  },
+  mounted() {
+    this.initData();
+  },
+  methods: {
+    async initData() {
+      const data = await schoolSetRecognitionInfo(this.school.id);
+      this.modalForm = data.result || {};
+    },
+    async confirm() {
+      const valid = await this.$refs.modalFormComp.validate().catch(() => {});
+      if (!valid) return;
+
+      if (this.loading) return;
+      this.loading = true;
+      const datas = {
+        ...this.modalForm,
+        schoolId: this.school.id,
+      };
+      const res = await schoolSetRecognitionUpdate(datas).catch(() => {});
+      this.loading = false;
+      if (!res) return;
+
+      this.$message.success("修改成功!");
+      this.initData();
+    },
+  },
+};
+</script>

+ 6 - 0
src/modules/admin/router.js

@@ -5,6 +5,7 @@ import AuthSet from "./views/AuthSet.vue";
 import ScanLogManage from "./views/ScanLogManage.vue";
 import PackageManage from "./views/PackageManage.vue";
 import ToolManage from "./views/ToolManage.vue";
+import VersionManage from "./views/VersionManage.vue";
 import Admin from "./views/Admin.vue";
 
 export default {
@@ -47,5 +48,10 @@ export default {
       name: "ToolManage",
       component: ToolManage,
     },
+    {
+      path: "version-manage",
+      name: "VersionManage",
+      component: VersionManage,
+    },
   ],
 };

+ 110 - 0
src/modules/admin/views/VersionManage.vue

@@ -0,0 +1,110 @@
+<template>
+  <div class="version-manage">
+    <div class="part-box part-box-pad">
+      <el-button type="primary" @click="addVersion">新增版本</el-button>
+    </div>
+    <div class="part-box part-box-pad">
+      <el-table :data="dataList">
+        <el-table-column type="index" label="序号"></el-table-column>
+        <el-table-column prop="version" label="客户端版本"></el-table-column>
+        <el-table-column prop="version" label="服务端版本"></el-table-column>
+        <el-table-column
+          class-name="action-column"
+          label="操作"
+          fixed="right"
+          width="100"
+        >
+          <template slot-scope="scope">
+            <el-button
+              class="btn-primary"
+              type="text"
+              @click="toEdit(scope.row)"
+              >管理</el-button
+            >
+            <el-button
+              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, sizes, prev, pager, next, jumper"
+          :pager-count="5"
+          :current-page="current"
+          :total="total"
+          :page-size="size"
+          @current-change="toPage"
+          @size-change="pageSizeChange"
+        >
+        </el-pagination>
+      </div>
+    </div>
+
+    <modify-version ref="modifyVersion"></modify-version>
+  </div>
+</template>
+
+<script>
+import ModifyVersion from "../components/ModifyVersion.vue";
+import { versionList, versionDelete } from "@/modules/admin/api";
+
+export default {
+  name: "version-manage",
+  components: {
+    ModifyVersion,
+  },
+  data() {
+    return {
+      dataList: [],
+      current: 1,
+      size: this.GLOBAL.pageSize,
+      total: 0,
+      curRow: {},
+    };
+  },
+  mounted() {
+    this.getList();
+  },
+  methods: {
+    async getList() {
+      const datas = {
+        pageNumber: this.current,
+        pageSize: this.size,
+      };
+      const data = await versionList(datas);
+      this.dataList = data.records;
+      this.total = data.total;
+    },
+    toPage(page) {
+      this.current = page;
+      this.getList();
+    },
+    addVersion() {
+      this.curRow = {};
+      this.$refs.modifyVersion.open();
+    },
+    toEdit(row) {
+      this.curRow = row;
+      this.$refs.modifyVersion.open();
+    },
+    toDelete(row) {
+      this.$confirm("确定删除该版本吗?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(async () => {
+          await versionDelete(row.id);
+          this.$message.success("删除成功");
+          this.getList();
+        })
+        .catch(() => {});
+    },
+  },
+};
+</script>