zhangjie 2 gadi atpakaļ
vecāks
revīzija
f45a3331fa

+ 46 - 0
src/components/base/OrgSelect.vue

@@ -104,6 +104,11 @@ export default {
       }
     };
   },
+  watch: {
+    value(val, oldval) {
+      if (val !== oldval) this.initSelected(val);
+    }
+  },
   mounted() {
     this.getList();
   },
@@ -120,6 +125,7 @@ export default {
           return 0;
         });
       }
+      if (this.value) this.initSelected(this.value);
     },
     switchOpen() {
       if (this.visible) {
@@ -138,6 +144,46 @@ export default {
       this.visible = false;
       this.isFocus = false;
     },
+    getSelectedData(selectedIds) {
+      let selectedData = [];
+      if (!selectedIds.length) return [];
+
+      const findTree = list => {
+        list.forEach(item => {
+          if (selectedIds.includes(item.id)) {
+            selectedData.push({ ...item });
+          }
+          if (item.children && item.children.length) {
+            findTree(item.children);
+          }
+        });
+      };
+
+      findTree(this.orgs);
+
+      return selectedData;
+    },
+    initSelected(val) {
+      if (!this.orgs.length) return;
+      if (this.multiple) {
+        const selectedIds = val || [];
+        const selectedData = this.getSelectedData(selectedIds);
+        this.selectedOrg = {};
+        this.selectedOrgList = selectedData;
+      } else {
+        const selectedIds = val ? [val] : [];
+        const selectedData = this.getSelectedData(selectedIds);
+        if (selectedData.length) {
+          this.selectedOrg = { ...selectedData[0] };
+          this.selectedOrgList = selectedData;
+        } else {
+          this.selectedOrg = {};
+          this.selectedOrgList = [];
+        }
+      }
+      this.updateSelectOrgIds();
+      this.emitChange();
+    },
     nodeClick(data) {
       if (!this.multiple) {
         this.selectedOrg = { ...data };

+ 16 - 0
src/modules/card/views/CardEdit.vue

@@ -209,6 +209,22 @@ export default {
     },
     // save
     async toSave(datas) {
+      if (!this.cardName) {
+        const res = await this.$prompt("请输入题卡名称", "提示", {
+          type: "warning",
+          showInput: true,
+          inputPlaceholder: "请输入题卡名称",
+          inputValue: this.cardName,
+          inputValidator: val => {
+            if (!val) return "请输入题卡名称!";
+            if (val.length > 50) return "题卡名称不得超过50个字符!";
+            return true;
+          }
+        }).catch(() => {});
+        if (!res || res.action !== "confirm") return;
+        this.cardName = res.value;
+      }
+
       let cardInfo = this.getCardInfo(datas);
       cardInfo.status = "STAGE";
       const result = await saveCard(

+ 3 - 1
src/modules/exam/components/ApplyContent.vue

@@ -83,7 +83,9 @@
               <el-button
                 class="btn-primary"
                 type="text"
-                :disabled="!attachment.cardId"
+                :disabled="
+                  !attachment.cardId || attachment.cardType === 'GENERIC'
+                "
                 @click="toCopyCard(attachment)"
                 >复制</el-button
               >

+ 3 - 1
src/modules/exam/components/ModifyTaskPaper.vue

@@ -141,7 +141,9 @@
                 <el-button
                   class="btn-primary"
                   type="text"
-                  :disabled="!attachment.cardId"
+                  :disabled="
+                    !attachment.cardId || attachment.cardType === 'GENERIC'
+                  "
                   @click="toCopyCard(attachment)"
                   >复制</el-button
                 >

+ 6 - 2
src/modules/exam/components/createExamAndPrintTask/InfoExamTask.vue

@@ -152,7 +152,9 @@
               <el-button
                 class="btn-primary"
                 type="text"
-                :disabled="!attachment.cardId"
+                :disabled="
+                  !attachment.cardId || attachment.cardType === 'GENERIC'
+                "
                 @click="toCopyCard(attachment)"
                 >复制</el-button
               >
@@ -382,7 +384,9 @@ export default {
   methods: {
     ...mapMutations("exam", ["updateTaskInfo"]),
     initData() {
-      this.examTask = { ...this.infoExamTask };
+      const userOrg = this.$ls.get("user", { orgInfo: {} }).orgInfo;
+
+      this.examTask = { ...this.infoExamTask, teachingRoomId: userOrg.id };
       this.examTaskDetail = { ...this.infoExamTaskDetail };
       this.paperAttachments = this.examTaskDetail.paperAttachmentIds
         ? JSON.parse(this.examTaskDetail.paperAttachmentIds)

+ 0 - 32
src/modules/exam/views/TaskPaperManage.vue

@@ -28,28 +28,6 @@
               clearable
             ></paper-number-select>
           </el-form-item>
-          <el-form-item label="题卡规则:">
-            <card-rule-select
-              v-model="filter.cardRuleId"
-              placeholder="题卡规则"
-              clearable
-            ></card-rule-select>
-          </el-form-item>
-          <el-form-item label="题卡创建类型:">
-            <el-select
-              v-model="filter.makeMethod"
-              placeholder="题卡创建类型"
-              clearable
-            >
-              <el-option
-                v-for="(val, key) in CARD_SOURCE_TYPE"
-                :key="key"
-                :value="key"
-                :label="val"
-              >
-              </el-option>
-            </el-select>
-          </el-form-item>
           <el-form-item label="入库时间:">
             <el-date-picker
               v-model="createTime"
@@ -140,16 +118,6 @@
             scope.row.unexposedPaperType | defaultFieldFilter
           }}</span>
         </el-table-column>
-        <el-table-column
-          prop="cardRuleName"
-          label="题卡规则"
-          width="120"
-        ></el-table-column>
-        <el-table-column prop="makeMethod" label="题卡创建类型" width="120">
-          <span slot-scope="scope">{{
-            scope.row.makeMethod | cardSourceTypeFilter
-          }}</span>
-        </el-table-column>
         <el-table-column prop="enable" label="启用/禁用" width="80">
           <template slot-scope="scope">
             {{ scope.row.enable | enableFilter }}