Переглянути джерело

Merge branch 'master' of http://121.4.203.192:9000/mingxue/front

shilipojs 2 роки тому
батько
коміт
365b202858

+ 146 - 0
public/usign2/index.html

@@ -0,0 +1,146 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+
+<head>
+  <meta charset="UTF-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <title>Document</title>
+  <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14"></script>
+  <!-- 引入样式 -->
+  <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
+  <!-- 引入组件库 -->
+  <script src="https://unpkg.com/element-ui/lib/index.js"></script>
+  <script src="./index.js"></script>
+  <style>
+    @font-face {
+      font-family: cntext;
+      src: url(./yfe2.woff2);
+    }
+
+    * {
+      font-family: cntext;
+    }
+
+    .container {
+      width: 100%;
+      height: 300px;
+    }
+  </style>
+</head>
+
+<body>
+  <div id="app" class="container">
+    <el-table :data="tableData" stripe  style="width: 100%">
+      <el-table-column prop="year" label="年份">
+      </el-table-column>
+      <el-table-column prop="collegeNameText" label="院校(招生方向)">
+        <template slot-scope="scope">
+          <span v-html="scope.row.collegeNameText"></span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="batch" label="批次/段">
+      </el-table-column>
+      <el-table-column prop="chooseSubjectText" label="选考要求">
+        <template slot-scope="scope">
+          <span v-html="scope.row.chooseSubjectText"></span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="enterNum" label="录取数">
+        <template slot-scope="scope">
+          <span v-html="scope.row.enterNum"></span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="maxScore" label="最高分">
+        <template slot-scope="scope">
+          <span v-html="scope.row.maxScore"></span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="minScore" label="最低分">
+        <template slot-scope="scope">
+          <span v-html="scope.row.minScore"></span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="avgScore" label="平均分">
+        <template slot-scope="scope">
+          <span v-html="scope.row.avgScore"></span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="minRank" label="最低位次">
+        <template slot-scope="scope">
+          <span v-html="scope.row.minRank"></span>
+        </template>
+      </el-table-column>
+
+
+    </el-table>
+  </div>
+  <script>
+    window.onload = () => {
+      var app = new Vue({
+        el: '#app',
+        data: {
+          tableData: []
+        },
+        methods: {
+          init() {
+            const data = [{
+              "provinceCode": "43",
+              "year": 2021,
+              "batch": "本科",
+              "course": "历史",
+              "remark": "001G001I0030002P003E003A001K001C0038001I002P001I001F0035001L0038003G09HS001409HT003G002R002T001G002Q003G002R002R001D001L003G002R002R001E001K003G09HS0K3Z09HT003G002R002T002S001I003G002R001L002T002S003G002R001L002T001D003G09HS001509HT",
+              "eduLevel": "001F001L001F0033001L001E002W001D001J001I001I001H001H0039001G002V003G002R001L001C002U003G002R002T001L002S",
+              "collegeEnrollCode": "00380033001F001I001C001I001J001H001K001H001C001I001G001L001I001J003G002S001C001L002U003G002S001C001D001L003G002R002U002T001I003G002R002U002U002T003G09HS001909HT003G002R002U002T001H003G002S001C001H001G003G002S001C001K002U",
+              "uCode": "43_10045_0",
+              "collegeCode": "10045",
+              "collegeName": "003E001G001J002U001J001C0039001E001I001D001I00390037001L001D001D003G09HS0LSM09HT003G09HS0GGN09HT003G002R001L001K002Q003G002R002P002Q002R",
+              "collegeNameText": "001H001I003B001F002T0036002Y001G001I001E001L002Y001J003A001E001H003G09HS0LSM09HT003G09HS0GGN09HT003G002R002Q002T001F003G002R002Q002T001K003G09HS001409HT003G002R002S002P002P003G002R002T001L002S003G09HS001509HT003G09HS001409HT003G002S001C001K001D003G002R002U002U001D003G002S001C001E002R003G002R002U002U001G003G09HS001909HT003G002S001C001C001F003G002S001C001E001E003G002S001C001J002Q003G09HS001509HT003G09HS001409HT003G09HS001409HT003G002R001L001L002Q003G002R001L002R001D003G002R001L002S001C003G09HS0K3Z09HT003G002R002T002S001I003G002R002S001J001D003G002R002T001L001D003G09HS001509HT003G09HS001509HT",
+              "collegeCity": "001L002X003D001K0030001F001L001L001I00360030001G001F001J001G001I003G09HS0TJ309HT003G09HS0LG909HT003G002R002P002R002S",
+              "chooseSubjectText": "001I001D001L001K0037001I001I001L001J002W001C001J001K001H001C001G003G002R001L001E001F003G002R002T001E002T003G09HS001709HT003G09HS0FF109HT003G09HS0TOW09HT",
+              "planNum": "001C002Q003B001J001K001H003A001J001C001E001D001H0035001D001J001L003G002S001C001I002U",
+              "enterNum": "0030001G001J001G0032001D001F0034001K001C001H002R001L002T001K001L003G002R002U002T002S",
+              "enterLine": "003D001H001H002X003C001F001K001D003D003C001K001L002Q003400330034003G002R002U002T001G003G002S001C001I002Q003G002S001C001E002Q",
+              "maxScore": "002W001H001K001C001C0039002T001D001C0033001J002U001G00380032001J003G002S001C001H001I003G002R002U002T001I003G002S001C001G001D",
+              "minScore": "001I001F003A003A002Y001G001J002Q003B001K003B001E00320035001J001J003G002S001C002P001E003G002R002U002U001F003G002S001C001F002U",
+              "avgScore": "003E0036001H001K001J002X001F001E001J001F003A001H002X003B001D001I003G002S001C001E001G003G002S001C001L001C003G002S001C001I002R",
+              "maxRank": "—",
+              "minRank": "001L001E001C001E001L001D001G001E002P001L00370031001J001F001F001I003G002S001C001G001G003G002S001C002P001C003G002R002U002U001F003G002S001C001J001G",
+              "avgRank": "—"
+            }, {
+              "provinceCode": "43",
+              "year": 2021,
+              "batch": "本科",
+              "course": "历史",
+              "remark": "",
+              "eduLevel": "0035001G001F001G002W003E001G001C0039002P001H001I002Q0038002Z001D003G002R002S002Q002U003G002R002Q001D001L",
+              "collegeEnrollCode": "001F001E001K001L002W001J001K003B003C002S001E001J003E003E001K0036003G002S001C001F001D003G002S001C001L002Q003G002S001C001C002T003G002S001C001G001G003G09HS001909HT003G002R002U002T002P003G002S001C001J001E003G002S001C001I002R",
+              "uCode": "43_10045_0",
+              "collegeCode": "10045",
+              "collegeName": "0031001J001F002P001G00380036001G001I001D001L001I001C002W001F001J003G09HS0LSM09HT003G09HS0GGN09HT003G002R002Q002T001F003G002R002T001G001C",
+              "collegeNameText": "001E001J002X001E001I001K001C001K00380030001H0036001C003C001L001G003G09HS0LSM09HT003G09HS0GGN09HT003G002R002P002Q001J003G002R001L001L001C003G09HS001409HT003G002R002U002T002Q003G002S001C001F001J003G002R002U002U002P003G002S001C001H001K003G09HS001909HT003G002S001C001K001C003G002S001C001C001G003G002S001C001F002P003G09HS001509HT",
+              "collegeCity": "002Y002U002X001G001L003A001G001L001L001C001D002Y001H001E003C001J003G09HS0TJ309HT003G09HS0LG909HT003G002R002P002R002S",
+              "chooseSubjectText": "0036001G001I001K001I0032001C001F001I001E002R002Q001E0030002X002Q003G002R002P001G002U003G002R002Q002S001I003G09HS001709HT003G09HS0FF109HT003G09HS0TOW09HT",
+              "planNum": "001L001K001G001L0037001F001I001J001E001D002X001E001D001H0030002W003G002R002U002U002Q003G002R002U002U001K",
+              "enterNum": "001H0038001L001H003A0034001E001G001H001G001C001I001I003E001K003C003G002S001C001L002Q003G002S001C001C001C",
+              "enterLine": "001J001K0032002P001J001D001J001J003D0033001E003C0032002Y001F001D003G002S001C001J001G003G002S001C001D001E003G002S001C001C002T",
+              "maxScore": "001F001K002W001G001I002P002T003D002Z00340030001E001E001F002Y001F003G002S001C001G002R003G002S001C001F001F003G002S001C001E001F",
+              "minScore": "001J001F001J001F001E001I0039001C001C001G001J001E003A001F001D001J003G002S001C001G001E003G002S001C001H001K003G002S001C001C002T",
+              "avgScore": "—",
+              "maxRank": "—",
+              "minRank": "002S001F002Z002S001E001J0036001K0036003A001H001C002T001I002W001G003G002S001C001E001H003G002S001C001L001K003G002S001C001J001I",
+              "avgRank": "—"
+            }];
+            this.tableData = u_sign(data);
+            console.log(this.tableData);
+          }
+        },
+        mounted() {
+          this.init();
+        }
+      })
+    }
+  </script>
+</body>
+
+</html>

+ 277 - 0
public/usign2/index.js

@@ -0,0 +1,277 @@
+const rr = {
+  d() {
+    return cnDeCryptV2;
+  },
+  "53ca": function (e, t, r) {
+    "use strict";
+    function n(e) {
+      return n = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator
+        ? function (e) { return typeof e }
+        : function (e) {
+          return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
+        }
+        ,
+        n(e)
+    }
+    // cnDeCryptV2
+    // return cnDeCryptV2(String(e))
+    rr.d(t, "a", (function () {
+      return n
+    }
+    ))
+  },
+  "159b": function (e, t, r) {
+    var n = rr["da84"]
+      , i = rr["fdbc"]
+      , o = rr["17c2"]
+      , a = rr["9112"];
+    for (var s in i) {
+      var u = n[s]
+        , c = u && u.prototype;
+      if (c && c.forEach !== o)
+        try {
+          a(c, "forEach", o)
+        } catch (e) {
+          c.forEach = o
+        }
+    }
+  },
+  9112: function (e, t, r) {
+    var n = rr["83ab"]
+      , i = rr["9bf2"]
+      , o = rr["5c6c"];
+    e.exports = n ? function (e, t, r) {
+      return i.f(e, t, o(1, r))
+    }
+      : function (e, t, r) {
+        return e[t] = r,
+          e
+      }
+  },
+  "83ab": function (e, t, r) {
+    var n = rr["d039"];
+    e.exports = !n((function () {
+      return 7 != Object.defineProperty({}, 1, {
+        get: function () {
+          return 7
+        }
+      })[1]
+    }
+    ))
+  },
+  "9bf2": function (e, t, r) {
+    var n = rr["83ab"]
+      , i = rr["0cfb"]
+      , o = rr["825a"]
+      , a = rr["c04e"]
+      , s = Object.defineProperty;
+    t.f = n ? s : function (e, t, r) {
+      if (o(e),
+        t = a(t, !0),
+        o(r),
+        i)
+        try {
+          return s(e, t, r)
+        } catch (e) { }
+      if ("get" in r || "set" in r)
+        throw TypeError("Accessors not supported");
+      return "value" in r && (e[t] = r.value),
+        e
+    }
+  },
+  c04e: function (e, t, r) {
+    var n = rr["861d"];
+    e.exports = function (e, t) {
+      if (!n(e))
+        return e;
+      var r, i;
+      if (t && "function" == typeof (r = e.toString) && !n(i = r.call(e)))
+        return i;
+      if ("function" == typeof (r = e.valueOf) && !n(i = r.call(e)))
+        return i;
+      if (!t && "function" == typeof (r = e.toString) && !n(i = r.call(e)))
+        return i;
+      throw TypeError("Can't convert object to primitive value")
+    }
+  },
+  "861d": function (e, t) {
+    e.exports = function (e) {
+      return "object" == typeof e ? null !== e : "function" == typeof e
+    }
+  },
+  "0cfb": function (e, t, r) {
+    var n = rr["83ab"]
+      , i = rr["d039"]
+      , o = rr["cc12"];
+    e.exports = !n && !i((function () {
+      return 7 != Object.defineProperty(o("div"), "a", {
+        get: function () {
+          return 7
+        }
+      }).a
+    }
+    ))
+  },
+  cc12: function (e, t, r) {
+    var n = rr["da84"]
+      , i = rr["861d"]
+      , o = nr.document
+      , a = ir(o) && i(o.createElement);
+    e.exports = function (e) {
+      return a ? o.createElement(e) : {}
+    }
+  },
+  da84: function (e, t, r) {
+    (function (t) {
+      var r = function (e) {
+        return e && e.Math == Math && e
+      };
+      e.exports = r("object" == typeof globalThis && globalThis) || r("object" == typeof window && window) || r("object" == typeof self && self) || r("object" == typeof t && t) || function () {
+        return this
+      }() || Function("return this")()
+    }
+    ).call(this, rr["c8ba"])
+  },
+  "825a": function (e, t, r) {
+    var n = rr["861d"];
+    e.exports = function (e) {
+      if (!n(e))
+        throw TypeError(String(e) + " is not an object");
+      return e
+    }
+  },
+  d039: function (e, t) {
+    e.exports = function (e) {
+      try {
+        return !!e()
+      } catch (e) {
+        return !0
+      }
+    }
+  },
+  "5c6c": function (e, t) {
+    e.exports = function (e, t) {
+      return {
+        enumerable: !(1 & e),
+        configurable: !(2 & e),
+        writable: !(4 & e),
+        value: t
+      }
+    }
+  },
+  "17c2": function (e, t, r) {
+    "use strict";
+    var n = rr["b727"].forEach
+      , i = rr["a640"]("forEach");
+    e.exports = i ? [].forEach : function (e) {
+      return n(this, e, arguments.length > 1 ? arguments[1] : void 0)
+    }
+  },
+  da84: function (e, t, r) {
+    (function (t) {
+      var r = function (e) {
+        return e && e.Math == Math && e
+      };
+      e.exports = r("object" == typeof globalThis && globalThis) || r("object" == typeof window && window) || r("object" == typeof self && self) || r("object" == typeof t && t) || function () {
+        return this
+      }() || Function("return this")()
+    }
+    ).call(this, rr["c8ba"])
+  },
+  fdbc: function (e, t) {
+    e.exports = {
+      CSSRuleList: 0,
+      CSSStyleDeclaration: 0,
+      CSSValueList: 0,
+      ClientRectList: 0,
+      DOMRectList: 0,
+      DOMStringList: 0,
+      DOMTokenList: 1,
+      DataTransferItemList: 0,
+      FileList: 0,
+      HTMLAllCollection: 0,
+      HTMLCollection: 0,
+      HTMLFormElement: 0,
+      HTMLSelectElement: 0,
+      MediaList: 0,
+      MimeTypeArray: 0,
+      NamedNodeMap: 0,
+      NodeList: 1,
+      PaintRequestList: 0,
+      Plugin: 0,
+      PluginArray: 0,
+      SVGLengthList: 0,
+      SVGNumberList: 0,
+      SVGPathSegList: 0,
+      SVGPointList: 0,
+      SVGStringList: 0,
+      SVGTransformList: 0,
+      SourceBufferList: 0,
+      StyleSheetList: 0,
+      TextTrackCueList: 0,
+      TextTrackList: 0,
+      TouchList: 0
+    }
+  },
+};
+function cnDeCryptV2(str) {
+  var k = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", l = k.length, b, b0, b1, b2, b3, d = 0, s;
+  s = new Array(Math.floor(str.length / 4)),
+    b = s.length;
+  for (var i = 0; i < b; i++)
+    b0 = k.indexOf(str.charAt(d)),
+      d++,
+      b1 = k.indexOf(str.charAt(d)),
+      d++,
+      b2 = k.indexOf(str.charAt(d)),
+      d++,
+      b3 = k.indexOf(str.charAt(d)),
+      d++,
+      s[i] = ((b1 + b0 * l) * l + b2) * l + b3;
+  b = eval("String.fromCharCode(" + s.join(",") + ")");
+  var w = "";
+  return b.split("|").forEach((function (e, t) {
+    t > 0 && (-1 != e.search(/【(.*?)】/) ? w += e.replace("【", "").replace("】", "") : e.length > 0 && (w += "&#x" + e + ";"))
+  }
+  )),
+    w
+}
+
+function abrupt(e, t) {
+  for (var r = this.tryEntries.length - 1; r >= 0; --r) {
+    var i = this.tryEntries[r];
+    if (i.tryLoc <= this.prev && n.call(i, "finallyLoc") && this.prev < i.finallyLoc) {
+      var o = i;
+      break
+    }
+  }
+  o && ("break" === e || "continue" === e) && o.tryLoc <= t && t <= o.finallyLoc && (o = null);
+  var a = o ? o.completion : {};
+  return a.type = e,
+    a.arg = t,
+    o ? (this.method = "next",
+      this.next = o.finallyLoc,
+      b) : this.complete(a)
+}
+
+
+function u_sign(data) {
+  const e = data;
+  const s = rr["53ca"];
+  const a = rr['159b'];
+  data.forEach(item => {
+    const e = item;
+    for (var t in e) {
+      if (e.hasOwnProperty(t)) {
+        var r = e[t];
+        if ("—" !== r && r && "year" !== t && "dataType" !== t && "course" !== t && "batch" !== t && "majorCode" !== t && t !== 'provinceCode') {
+          e[t] = cnDeCryptV2(String(r))
+        }
+        // "object" !== Object(s)(r) && "-" !== r && r && "year" !== t && "dataType" !== t &&
+        //   "course" !== t && "batch" !== t && "majorCode" !== t && (e[t] = Object(a)(e[t])),
+        //   "&#xc3a;" === e[t] && (e[t] = "—")
+      }
+    }
+  });
+  return data;
+}

BIN
public/usign2/yfe2.woff2


+ 18 - 28
src/directive/permission/hasPermi.js

@@ -1,28 +1,18 @@
- /**
- * 操作权限处理
- * Copyright (c) 2019 ruoyi
- */
- 
-import store from '@/store'
-
-export default {
-  inserted(el, binding, vnode) {
-    const { value } = binding
-    const all_permission = "*:*:*";
-    const permissions = store.getters && store.getters.permissions
-
-    if (value && value instanceof Array && value.length > 0) {
-      const permissionFlag = value
-
-      const hasPermissions = permissions.some(permission => {
-        return all_permission === permission || permissionFlag.includes(permission)
-      })
-
-      if (!hasPermissions) {
-        el.parentNode && el.parentNode.removeChild(el)
-      }
-    } else {
-      throw new Error(`请设置操作权限标签值`)
-    }
-  }
-}
+/**
+ * 操作权限处理
+ * Copyright (c) 2019 ruoyi
+ */
+
+import store from '@/store'
+
+export default {
+  inserted(el, binding, vnode) {
+    const { value } = binding
+    const func = store.getters && store.getters.hasPermissions
+    
+    const hasPermissions = func(value)
+    if (!hasPermissions) {
+      el.parentNode && el.parentNode.removeChild(el)
+    }
+  }
+}

+ 17 - 1
src/store/getters.js

@@ -1,3 +1,5 @@
+import store from '@/store/index'
+
 const getters = {
   sidebar: state => state.app.sidebar,
   size: state => state.app.size,
@@ -31,6 +33,20 @@ const getters = {
   defaultRoutes: state => state.permission.defaultRoutes,
   sidebarRouters: state => state.permission.sidebarRouters,
   isWideScreen: state => state.permission.isWideScreen,
-  studentParams: state => state.settings.studentParams
+  studentParams: state => state.settings.studentParams,
+
+  hasPermissions: (state, getters) => {
+    return function(value) {
+      const all_permission = '*:*:*'
+      const permissions = getters.permissions
+
+      if (value && value instanceof Array && value.length > 0) {
+        const permissionFlag = value
+        return permissions.some(permission => all_permission === permission || permissionFlag.includes(permission))
+      } else {
+        throw new Error(`请设置操作权限标签值`)
+      }
+    }
+  }
 }
 export default getters

+ 1 - 1
src/views/elective/test/components/test-summary.vue

@@ -1,5 +1,5 @@
 <template>
-  <el-card shadow="hover" class="mt20">
+  <el-card shadow="hover">
     <template #header>选科测评
     </template>
     <el-row :gutter="20">

+ 5 - 3
src/views/system/user/profile/components/ai-analysis-dialog.vue

@@ -64,8 +64,10 @@
 <script>
 import SingleSubjectReport from './single-subject-report'
 import OverUnderBadge from '@/views/elective/publish/components/steps/fauclty/over-under-badge'
-import BackTrackingAiResolverMixins from './ai-round-select-resolvers/backTracking-ai-resolver-mixins'
-import FinalAdjustAiResolverMixins from './ai-round-select-resolvers/finalAdjust-ai-resolver-mixins'
+
+const resolverModules = require.context('./ai-round-select-resolvers', false, /\.js$/)
+const resolvers = resolverModules.keys().map(key => resolverModules(key).default)
+
 export default {
   components:{
     SingleSubjectReport,
@@ -75,7 +77,7 @@ export default {
     generation: Object,
     prevPreferencesInfo: String,
   },
-  mixins: [BackTrackingAiResolverMixins,FinalAdjustAiResolverMixins],
+  mixins: [...resolvers],
   data() {
     return{
       dialogVisible:false,

+ 11 - 28
src/views/system/user/profile/components/report-table.vue

@@ -72,15 +72,19 @@
       </template>
     </mx-table>
     <!-- 初录 多志愿拖拽 -->
-    <div v-if="this.generation.active == generation.options.primary.value || this.generation.active == generation.options.primaryDM.value">
+    <div
+      v-if="this.generation.active == generation.options.primary.value || this.generation.active == generation.options.primaryDM.value">
       <p>您的选科志愿: <span v-for="(item,index) in activeModels.selectedList">
         {{ item.groupName }}
       </span>
       </p>
       <div>
-        <test-drage ref="drage" :btnDisabled="this.generation.current != generation.options.primary.value" :selectedList="activeModels.selectedList"
+        <test-drage ref="drage" :btnDisabled="this.generation.current != generation.options.primary.value"
+                    :selectedList="activeModels.selectedList"
         ></test-drage>
-        <el-button @click="commit" type="primary" v-if="this.generation.current == generation.options.primary.value">提交</el-button>
+        <el-button @click="commit" type="primary" v-if="this.generation.current == generation.options.primary.value">
+          提交
+        </el-button>
       </div>
     </div>
     <div v-if="generation.current > generation.active && generation.active > generation.options.primaryDM.value">
@@ -128,24 +132,12 @@ import ChooseSubjectDialog from './choose-subject-dialog'
 import SelectSubjectReportDialog from '@/views/system/user/profile/components/select-subject-report-dialog'
 import EsignDialog from '@/views/system/user/profile/components/esign-dialog'
 import ReportStep from './report-step'
-import PrimaryResolverMixins
-  from '@/views/system/user/profile/components/round-select-resolvers/primary-resolver-mixins'
-import PrimaryDMResolverMixins
-  from '@/views/system/user/profile/components/round-select-resolvers/primaryDM-resolver-mixins'
-import BackTrackingResolverMixins
-  from '@/views/system/user/profile/components/round-select-resolvers/backTracking-resolver-mixins'
-import BackTrackingDMResolverMixins
-  from '@/views/system/user/profile/components/round-select-resolvers/backTrackingDM-resolver-mixins'
-
-import FinalAdjustResolverMixins
-  from '@/views/system/user/profile/components/round-select-resolvers/finalAdjust-resolver-mixins'
-import FinalAdjustDMResolverMixins
-  from '@/views/system/user/profile/components/round-select-resolvers/finalAdjustDM-resolver-mixins'
-import ForceAdjustResolverMixins
-  from '@/views/system/user/profile/components/round-select-resolvers/forceAdjust-resolver-mixins'
 import OverUnderBadge from '@/views/elective/publish/components/steps/fauclty/over-under-badge'
 import { submitElectiveModels } from '@/api/webApi/elective/selected-subject'
 
+const resolverModules = require.context('./round-select-resolvers', false, /\.js$/)
+const resolvers = resolverModules.keys().map(key => resolverModules(key).default)
+
 export default {
   props: {
     generation: Object,
@@ -168,16 +160,7 @@ export default {
       }
     }
   },
-  mixins: [
-    MxSelectTranslate,
-    PrimaryResolverMixins,
-    PrimaryDMResolverMixins,
-    BackTrackingResolverMixins,
-    BackTrackingDMResolverMixins,
-    FinalAdjustDMResolverMixins,
-    FinalAdjustResolverMixins,
-    ForceAdjustResolverMixins
-  ],
+  mixins: [MxSelectTranslate, ...resolvers],
   data() {
     return {
       popoShow: false,