Browse Source

通用组件修改

Michael Wang 4 years ago
parent
commit
27633cbc6c

+ 9 - 9
public/index.html

@@ -15,16 +15,16 @@
       >
       >
     </noscript>
     </noscript>
     <div id="app"></div>
     <div id="app"></div>
-    <!-- <script>
+    <script>
       var _hmt = _hmt || [];
       var _hmt = _hmt || [];
-      (function () {
-        var hmId = "xxxxx";
-        var hm = document.createElement("script");
-        hm.src = "https://hm.baidu.com/hm.js?" + hmId;
-        var s = document.getElementsByTagName("script")[0];
-        s.parentNode.insertBefore(hm, s);
-      })();
-    </script> -->
+      // (function () {
+      //   var hmId = "xxxxx";
+      //   var hm = document.createElement("script");
+      //   hm.src = "https://hm.baidu.com/hm.js?" + hmId;
+      //   var s = document.getElementsByTagName("script")[0];
+      //   s.parentNode.insertBefore(hm, s);
+      // })();
+    </script>
     <!-- built files will be auto injected -->
     <!-- built files will be auto injected -->
   </body>
   </body>
 </html>
 </html>

+ 4 - 0
src/api/examwork-exam.js

@@ -113,3 +113,7 @@ export function saveExam({
   );
   );
   return httpApp.post("/api/admin/exam/save", data);
   return httpApp.post("/api/admin/exam/save", data);
 }
 }
+
+export function getExamRoom() {
+  return httpApp.post("/api/admin/sys/examRoom/query");
+}

+ 2 - 1
src/components/ActivitySelect.vue

@@ -4,7 +4,7 @@
     class="size-select"
     class="size-select"
     placeholder="请选择"
     placeholder="请选择"
     @change="select"
     @change="select"
-    style="width: 100px;"
+    :style="styles"
     filterable
     filterable
     remote
     remote
     :remote-method="search"
     :remote-method="search"
@@ -29,6 +29,7 @@ export default {
   props: {
   props: {
     value: String,
     value: String,
     examId: String,
     examId: String,
+    styles: { type: String, default: "width: 100px;" },
   },
   },
   data() {
   data() {
     return {
     return {

+ 2 - 1
src/components/CourseSelect.vue

@@ -4,7 +4,7 @@
     class="size-select"
     class="size-select"
     placeholder="请选择"
     placeholder="请选择"
     @change="select"
     @change="select"
-    style="width: 100px;"
+    :style="styles"
     filterable
     filterable
     remote
     remote
     :remote-method="search"
     :remote-method="search"
@@ -29,6 +29,7 @@ export default {
   props: {
   props: {
     value: String,
     value: String,
     examId: String,
     examId: String,
+    styles: { type: String, default: "width: 100px;" },
   },
   },
   data() {
   data() {
     return {
     return {

+ 66 - 0
src/components/ExamRoomSelect.vue

@@ -0,0 +1,66 @@
+<template>
+  <el-select
+    v-model="selected"
+    class="size-select"
+    placeholder="请选择"
+    @change="select"
+    :style="styles"
+    filterable
+    remote
+    :remote-method="search"
+    clearable
+  >
+    <el-option
+      v-for="item in optionList"
+      :key="item.roomCode"
+      :label="item.roomName"
+      :value="item.roomCode"
+    >
+      <span>{{ item.roomName }}</span>
+    </el-option>
+  </el-select>
+</template>
+
+<script>
+import { object2QueryString } from "@/utils/utils";
+export default {
+  name: "ExamRoomSelect",
+  props: {
+    value: [String, Array],
+    styles: { type: String, default: "width: 100px;" },
+  },
+  data() {
+    return {
+      optionList: [],
+      selected: "",
+    };
+  },
+  async created() {
+    this.search();
+  },
+  watch: {
+    value: {
+      immediate: true,
+      handler(val) {
+        this.selected = val;
+      },
+    },
+  },
+  methods: {
+    async search(query) {
+      const res = await this.$http.post(
+        "/api/admin/sys/examRoom/query?" +
+          object2QueryString({ roomName: query })
+      );
+      // console.log(res.data);
+      this.optionList = res.data.data.records;
+    },
+    select() {
+      this.$emit("input", this.selected);
+      this.$emit("change", this.selected);
+    },
+  },
+};
+</script>
+
+<style></style>

+ 2 - 1
src/components/ExamSelect.vue

@@ -4,7 +4,7 @@
     class="size-select"
     class="size-select"
     placeholder="请选择"
     placeholder="请选择"
     @change="select"
     @change="select"
-    style="width: 100px;"
+    :style="styles"
     filterable
     filterable
     remote
     remote
     :remote-method="search"
     :remote-method="search"
@@ -28,6 +28,7 @@ export default {
   name: "ExamSelect",
   name: "ExamSelect",
   props: {
   props: {
     value: String,
     value: String,
+    styles: { type: String, default: "width: 100px;" },
   },
   },
   data() {
   data() {
     return {
     return {

+ 2 - 1
src/components/ExamTypeSelect.vue

@@ -4,7 +4,7 @@
     class="size-select"
     class="size-select"
     placeholder="请选择"
     placeholder="请选择"
     @change="select"
     @change="select"
-    style="width: 100px;"
+    :style="styles"
     clearable
     clearable
   >
   >
     <el-option
     <el-option
@@ -26,6 +26,7 @@ export default {
       type: String,
       type: String,
       default: "",
       default: "",
     },
     },
+    styles: { type: String, default: "width: 100px;" },
   },
   },
   data() {
   data() {
     return {
     return {

+ 2 - 1
src/components/OrgSelect.vue

@@ -4,7 +4,7 @@
     class="size-select"
     class="size-select"
     placeholder="请选择"
     placeholder="请选择"
     @change="select"
     @change="select"
-    style="width: 100px;"
+    :style="styles"
     clearable
     clearable
   >
   >
     <el-option
     <el-option
@@ -23,6 +23,7 @@ export default {
   name: "OrgSelect",
   name: "OrgSelect",
   props: {
   props: {
     value: [String, Array],
     value: [String, Array],
+    styles: { type: String, default: "width: 100px;" },
   },
   },
   data() {
   data() {
     return {
     return {

+ 2 - 1
src/components/RoleSelect.vue

@@ -4,7 +4,7 @@
     class="size-select"
     class="size-select"
     placeholder="请选择"
     placeholder="请选择"
     @change="select"
     @change="select"
-    style="width: 100px;"
+    :style="styles"
     :multiple="multiple"
     :multiple="multiple"
     clearable
     clearable
   >
   >
@@ -25,6 +25,7 @@ export default {
   props: {
   props: {
     value: [String, Array],
     value: [String, Array],
     multiple: Boolean,
     multiple: Boolean,
+    styles: { type: String, default: "width: 100px;" },
   },
   },
   data() {
   data() {
     return {
     return {

+ 2 - 1
src/components/StateSelect.vue

@@ -4,7 +4,7 @@
     class="size-select"
     class="size-select"
     placeholder="请选择"
     placeholder="请选择"
     @change="select"
     @change="select"
-    style="width: 100px;"
+    :style="styles"
     clearable
     clearable
   >
   >
     <el-option
     <el-option
@@ -27,6 +27,7 @@ export default {
       default: 1,
       default: 1,
     },
     },
     options: { type: Array, default: () => null },
     options: { type: Array, default: () => null },
+    styles: { type: String, default: "width: 100px;" },
   },
   },
   data() {
   data() {
     return {
     return {

+ 1 - 1
src/constant/constants.js

@@ -1,5 +1,5 @@
 export const YYYYMMDDHHmmss = "YYYY-MM-DD HH:mm:ss";
 export const YYYYMMDDHHmmss = "YYYY-MM-DD HH:mm:ss";
-export const PLATFORM = "web";
+export const PLATFORM = "WEB";
 
 
 if (!localStorage.getItem("deviceId")) {
 if (!localStorage.getItem("deviceId")) {
   localStorage.setItem("deviceId", Math.random() + "-" + Date.now());
   localStorage.setItem("deviceId", Math.random() + "-" + Date.now());

+ 1 - 1
src/features/examwork/ExamStudentManagement/ExamStudentManagement.vue

@@ -8,7 +8,7 @@
         <ActivitySelect :examId="form.examId" v-model="form.activityId" />
         <ActivitySelect :examId="form.examId" v-model="form.activityId" />
       </el-form-item>
       </el-form-item>
       <el-form-item label="考场名称">
       <el-form-item label="考场名称">
-        <el-input v-model.trim="form.roomCode"></el-input>
+        <ExamRoomSelect v-model="form.roomCode" />
       </el-form-item>
       </el-form-item>
       <el-form-item label="科目">
       <el-form-item label="科目">
         <CourseSelect :examId="form.examId" v-model="form.courseCode" />
         <CourseSelect :examId="form.examId" v-model="form.courseCode" />

+ 12 - 4
src/features/examwork/ExamStudentManagement/ExamStudentManagementDialog.vue

@@ -15,22 +15,30 @@
     >
     >
       <el-row>
       <el-row>
         <el-form-item label="批次名称" prop="examId">
         <el-form-item label="批次名称" prop="examId">
-          <ExamSelect v-model="form.examId" />
+          <ExamSelect v-model="form.examId" styles="width: 100%" />
         </el-form-item>
         </el-form-item>
       </el-row>
       </el-row>
       <el-row>
       <el-row>
         <el-form-item label="场次代码">
         <el-form-item label="场次代码">
-          <ActivitySelect :examId="form.examId" v-model="form.activityId" />
+          <ActivitySelect
+            :examId="form.examId"
+            v-model="form.examActivityId"
+            styles="width: 100%"
+          />
         </el-form-item>
         </el-form-item>
       </el-row>
       </el-row>
       <el-row>
       <el-row>
         <el-form-item label="考场名称">
         <el-form-item label="考场名称">
-          <el-input v-model.trim="form.roomCode"></el-input>
+          <ExamRoomSelect v-model="form.roomCode" styles="width: 100%" />
         </el-form-item>
         </el-form-item>
       </el-row>
       </el-row>
       <el-row>
       <el-row>
         <el-form-item label="科目">
         <el-form-item label="科目">
-          <CourseSelect :examId="form.examId" v-model="form.courseCode" />
+          <CourseSelect
+            :examId="form.examId"
+            v-model="form.courseCode"
+            styles="width: 100%"
+          />
         </el-form-item>
         </el-form-item>
       </el-row>
       </el-row>
       <el-row>
       <el-row>

+ 1 - 1
src/router/index.js

@@ -36,11 +36,11 @@ Vue.use(VueRouter);
 const routes = [
 const routes = [
   {
   {
     path: "/home",
     path: "/home",
-    name: "Home",
     component: Layout,
     component: Layout,
     children: [
     children: [
       {
       {
         path: "",
         path: "",
+        name: "Home",
         component: Home,
         component: Home,
       },
       },
       ...invigilation,
       ...invigilation,