Browse Source

样式调整

zhangjie 2 years ago
parent
commit
9e65a14ed1

+ 15 - 1
src/assets/styles/marker.less

@@ -343,7 +343,8 @@
   .image-info {
     white-space: nowrap;
     overflow: hidden;
-    flex-grow: 2;
+    flex-grow: 0;
+    flex-shrink: 0;
     > div {
       display: inline-block;
       vertical-align: top;
@@ -388,7 +389,12 @@
   .image-title {
     height: 26px;
     padding-left: 5px;
+    flex-grow: 2;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
     cursor: pointer;
+
     &:hover {
       color: @color-text-act;
     }
@@ -429,6 +435,14 @@
       color: @warning-color;
     }
   }
+  .image-sn {
+    padding-left: 10px;
+    flex-grow: 2;
+    text-align: right;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+  }
 }
 .marker-image-none {
   padding-top: 150px;

+ 12 - 8
src/modules/grading/leader/LeaderGrading.vue

@@ -53,7 +53,7 @@
               ref="MarkerImageView"
               :data="paper"
               :can-select="ACTION_CAN_BATCH"
-              @to-review="toReview(index)"
+              @to-review="toReview"
               @to-select="selectMultiplePaper"
             ></marker-image-view>
           </div>
@@ -253,7 +253,7 @@ export default {
       this.setCurSubject(curSubject || {});
     },
     async getList() {
-      this.multipleGradingList = [];
+      this.clearMultiplePaper();
 
       let data = {
         data: [],
@@ -410,6 +410,12 @@ export default {
       curPaper.selected = paper.selected;
       this.multipleGradingList = this.papers.filter(paper => paper.selected);
     },
+    clearMultiplePaper() {
+      this.multipleGradingList = [];
+      this.papers.forEach(paper => {
+        paper.selected = false;
+      });
+    },
     checkPapersIsSelectLevel(levelName, papers) {
       const firstLevel = papers[0].level;
       const hasOtherLevel = this.papers.some(item => item.level !== firstLevel);
@@ -452,13 +458,11 @@ export default {
       this.multiplebtnClicked = false;
     },
     // paper view action
-    toReview(index) {
+    toReview(data) {
       this.isFullscreenMarking = true;
-      this.multipleGradingList = [];
-      this.papers.forEach(paper => {
-        paper.selected = false;
-      });
-      this.selectPaper(index);
+      this.clearMultiplePaper();
+      this.curPaperIndex = this.papers.findIndex(item => item.id === data.id);
+      this.curPaper = Object.assign({}, this.papers[this.curPaperIndex], data);
       this.$refs.SimpleImagePreview.open();
     },
     selectPaper(index) {

+ 0 - 1
src/modules/grading/marker/MarkerGrading.vue

@@ -355,7 +355,6 @@ export default {
       const curPaper = this.papers.find(p => p.id === paper.id);
       curPaper.selected = paper.selected;
       this.multipleGradingList = this.papers.filter(paper => paper.selected);
-      console.log(this.multipleGradingList);
     },
     clearMultiplePaper() {
       this.multipleGradingList = [];

+ 3 - 1
src/modules/grading/marker/MarkerHistory.vue

@@ -21,7 +21,9 @@
               </div>
               <div class="image-action-name">{{ paper.actionName }}</div>
             </div>
-            <div class="image-sn">NO.{{ paper.sn }}</div>
+            <div class="image-sn" :title="'NO.' + paper.sn">
+              NO.{{ paper.sn }}
+            </div>
           </marker-image-view>
         </div>
       </div>

+ 4 - 7
src/modules/grading/marker/MarkerImageView.vue

@@ -22,16 +22,13 @@
           >
             <Icon v-if="image.selected" type="md-checkmark" />
           </div>
-          <div class="image-title" @click="toSelect">
-            {{ image.title }}
-          </div>
         </div>
         <div v-else class="image-info">
           <div v-if="image.level" class="image-level">{{ image.level }}</div>
           <div v-if="image.score" class="image-level">{{ image.score }}</div>
-          <div class="image-title">
-            {{ image.title }}
-          </div>
+        </div>
+        <div class="image-title" :title="image.title" @click="toSelect">
+          {{ image.title }}
         </div>
         <div class="image-action">
           <div class="image-action-li" title="标记" @click="toMark">
@@ -127,7 +124,7 @@ export default {
       this.image.mark = !this.image.mark;
     },
     toSelect() {
-      if (this.image.sample) return;
+      if (this.image.sample || !this.IS_LEVEL) return;
       this.image.selected = !this.image.selected;
       this.$emit("to-select", this.image);
     },

+ 250 - 250
src/modules/grading/marker/MarkerStandard.vue

@@ -1,250 +1,250 @@
-<template>
-  <Modal
-    v-model="modalIsShow"
-    class="marker-standard marker-modal"
-    title="标准卷"
-    footer-hide
-    fullscreen
-    @on-visible-change="visibleChange"
-  >
-    <div class="level-list">
-      <div
-        v-for="(level, index) in levels"
-        :key="index"
-        :class="['level-item', { 'level-item-act': curLevel === level.name }]"
-        @click="setCurLevel(level.name)"
-      >
-        {{ level.name }}
-      </div>
-      <div
-        :class="['level-item', { 'level-item-act': !curLevel }]"
-        @click="setCurLevel('')"
-      >
-        全部
-      </div>
-    </div>
-
-    <div class="standard-image-list marker-image-list" v-if="papers.length">
-      <div
-        v-for="(paper, index) in papers"
-        :key="paper.id"
-        class="marker-image-item"
-      >
-        <div class="marker-image-content">
-          <marker-image-view :data="paper" @to-review="toReview(index)">
-            <div class="image-info">
-              <div class="image-level">
-                {{ paper.level }}
-              </div>
-              <div class="image-title">{{ paper.title }}</div>
-            </div>
-            <div v-if="canEditStandard" class="image-action">
-              <Button
-                type="error"
-                size="small"
-                icon="md-trash"
-                :disabled="paper.loading"
-                @click="cancelPaper(paper)"
-              ></Button>
-              <Button
-                type="primary"
-                size="small"
-                icon="md-create"
-                @click="toChangePaper(paper)"
-              ></Button>
-            </div>
-          </marker-image-view>
-        </div>
-      </div>
-    </div>
-    <div v-else class="standard-image-none">
-      <p>暂无数据</p>
-    </div>
-
-    <!-- change-standard -->
-    <Modal
-      class="change-standard marker-modal"
-      v-model="levelModalIsShow"
-      title="修改标准卷"
-      width="400px"
-      :mask-closable="false"
-    >
-      <div class="level-list">
-        <p
-          v-for="level in levels"
-          :key="level.name"
-          :class="[
-            'level-item',
-            {
-              'level-item-act': level.name === curSelectLevel,
-              'level-item-disabled': level.name === curChangePaper.level
-            }
-          ]"
-          @click="selectLevel(level.name)"
-        >
-          {{ level.name }}
-        </p>
-      </div>
-
-      <div slot="footer">
-        <Button
-          type="primary"
-          size="small"
-          :disabled="isSubmit || !curSelectLevel"
-          @click="confirmChange"
-          >确认</Button
-        >
-        <Button size="small" @click="cancelChange">取消</Button>
-      </div>
-    </Modal>
-  </Modal>
-</template>
-
-<script>
-import { mapState } from "vuex";
-import { paperList, cancelStandardPaper, leaderGradingPaper } from "@/api";
-import MarkerImageView from "./MarkerImageView";
-
-export default {
-  name: "marker-standard",
-  props: {
-    questionId: {
-      type: [Number, String]
-    },
-    levels: {
-      type: Array,
-      default() {
-        return [];
-      }
-    }
-  },
-  components: { MarkerImageView },
-  data() {
-    return {
-      modalIsShow: false,
-      curLevel: "",
-      paperList: [],
-      papers: [],
-      isLoading: false,
-      // change standard
-      levelModalIsShow: false,
-      curChangePaper: {},
-      curSelectLevel: null,
-      isSubmit: false
-    };
-  },
-  computed: {
-    ...mapState("marker", ["IS_MARK_LEADER", "paramsSet"]),
-    showStandardPaperManage() {
-      return this.paramsSet["showStandardPaperManage"] !== 0;
-    },
-    canEditStandard() {
-      const user = this.$ls.get("user", {});
-      return (
-        this.IS_MARK_LEADER &&
-        this.showStandardPaperManage &&
-        user.standardVolume
-      );
-    }
-  },
-  methods: {
-    async visibleChange(visible) {
-      if (!visible) return;
-
-      this.getPaperList();
-    },
-    async getPaperList() {
-      this.isLoading = true;
-      const datas = {
-        questionId: this.questionId,
-        level: "",
-        sort: "secretNumber",
-        isSample: true,
-        page: 0,
-        size: 1000
-      };
-      const data = await paperList(datas).catch(() => {});
-      this.isLoading = false;
-      if (!data) return;
-      this.paperList = data.data.map(item => {
-        item.title = `NO.${item.sn}`;
-        item.loading = false;
-        return item;
-      });
-      this.paperList.sort((a, b) => (a.level < b.level ? -1 : 1));
-      this.updatePapers();
-    },
-    updatePapers() {
-      if (this.curLevel) {
-        this.papers = this.paperList.filter(
-          paper => paper.level === this.curLevel
-        );
-      } else {
-        this.papers = this.paperList;
-      }
-    },
-    setCurLevel(levelName) {
-      this.curLevel = levelName;
-      this.updatePapers();
-    },
-    cancel() {
-      this.modalIsShow = false;
-    },
-    open() {
-      this.modalIsShow = true;
-    },
-    toReview(index) {
-      this.$emit("on-paper-click", index, this.papers);
-    },
-    cancelPaper(paper) {
-      if (paper.loading) return;
-      this.$Modal.confirm({
-        content: "确定要取消当前标准卷吗?",
-        onOk: async () => {
-          paper.loading = true;
-          const res = await cancelStandardPaper(paper.id).catch(() => {});
-          paper.loading = false;
-          if (!res) return;
-          this.getPaperList();
-        }
-      });
-    },
-    // change standard paper
-    toChangePaper(paper) {
-      this.curChangePaper = paper;
-      this.levelModalIsShow = true;
-    },
-    selectLevel(levelName) {
-      if (levelName === this.curChangePaper.level) return;
-      this.curSelectLevel = levelName;
-    },
-    async confirmChange() {
-      if (!this.curSelectLevel) return;
-      if (this.isSubmit) return;
-
-      this.isSubmit = true;
-      const datas = {
-        action: "sampling",
-        level: this.curSelectLevel,
-        originLevel: this.curChangePaper.level,
-        paperIds: this.curChangePaper.id
-      };
-      let result = true;
-      await leaderGradingPaper(datas).catch(() => {
-        result = false;
-      });
-      this.isSubmit = false;
-
-      if (!result) return;
-
-      this.$Message.success("操作成功!");
-      this.getPaperList();
-      this.cancelChange();
-    },
-    cancelChange() {
-      this.curSelectLevel = null;
-      this.levelModalIsShow = false;
-    }
-  }
-};
-</script>
+<template>
+  <Modal
+    v-model="modalIsShow"
+    class="marker-standard marker-modal"
+    title="标准卷"
+    footer-hide
+    fullscreen
+    @on-visible-change="visibleChange"
+  >
+    <div class="level-list">
+      <div
+        v-for="(level, index) in levels"
+        :key="index"
+        :class="['level-item', { 'level-item-act': curLevel === level.name }]"
+        @click="setCurLevel(level.name)"
+      >
+        {{ level.name }}
+      </div>
+      <div
+        :class="['level-item', { 'level-item-act': !curLevel }]"
+        @click="setCurLevel('')"
+      >
+        全部
+      </div>
+    </div>
+
+    <div class="standard-image-list marker-image-list" v-if="papers.length">
+      <div
+        v-for="(paper, index) in papers"
+        :key="paper.id"
+        class="marker-image-item"
+      >
+        <div class="marker-image-content">
+          <marker-image-view :data="paper" @to-review="toReview(index)">
+            <div class="image-info">
+              <div class="image-level">
+                {{ paper.level }}
+              </div>
+            </div>
+            <div class="image-title">{{ paper.title }}</div>
+            <div v-if="canEditStandard" class="image-action">
+              <Button
+                type="error"
+                size="small"
+                icon="md-trash"
+                :disabled="paper.loading"
+                @click="cancelPaper(paper)"
+              ></Button>
+              <Button
+                type="primary"
+                size="small"
+                icon="md-create"
+                @click="toChangePaper(paper)"
+              ></Button>
+            </div>
+          </marker-image-view>
+        </div>
+      </div>
+    </div>
+    <div v-else class="standard-image-none">
+      <p>暂无数据</p>
+    </div>
+
+    <!-- change-standard -->
+    <Modal
+      class="change-standard marker-modal"
+      v-model="levelModalIsShow"
+      title="修改标准卷"
+      width="400px"
+      :mask-closable="false"
+    >
+      <div class="level-list">
+        <p
+          v-for="level in levels"
+          :key="level.name"
+          :class="[
+            'level-item',
+            {
+              'level-item-act': level.name === curSelectLevel,
+              'level-item-disabled': level.name === curChangePaper.level
+            }
+          ]"
+          @click="selectLevel(level.name)"
+        >
+          {{ level.name }}
+        </p>
+      </div>
+
+      <div slot="footer">
+        <Button
+          type="primary"
+          size="small"
+          :disabled="isSubmit || !curSelectLevel"
+          @click="confirmChange"
+          >确认</Button
+        >
+        <Button size="small" @click="cancelChange">取消</Button>
+      </div>
+    </Modal>
+  </Modal>
+</template>
+
+<script>
+import { mapState } from "vuex";
+import { paperList, cancelStandardPaper, leaderGradingPaper } from "@/api";
+import MarkerImageView from "./MarkerImageView";
+
+export default {
+  name: "marker-standard",
+  props: {
+    questionId: {
+      type: [Number, String]
+    },
+    levels: {
+      type: Array,
+      default() {
+        return [];
+      }
+    }
+  },
+  components: { MarkerImageView },
+  data() {
+    return {
+      modalIsShow: false,
+      curLevel: "",
+      paperList: [],
+      papers: [],
+      isLoading: false,
+      // change standard
+      levelModalIsShow: false,
+      curChangePaper: {},
+      curSelectLevel: null,
+      isSubmit: false
+    };
+  },
+  computed: {
+    ...mapState("marker", ["IS_MARK_LEADER", "paramsSet"]),
+    showStandardPaperManage() {
+      return this.paramsSet["showStandardPaperManage"] !== 0;
+    },
+    canEditStandard() {
+      const user = this.$ls.get("user", {});
+      return (
+        this.IS_MARK_LEADER &&
+        this.showStandardPaperManage &&
+        user.standardVolume
+      );
+    }
+  },
+  methods: {
+    async visibleChange(visible) {
+      if (!visible) return;
+
+      this.getPaperList();
+    },
+    async getPaperList() {
+      this.isLoading = true;
+      const datas = {
+        questionId: this.questionId,
+        level: "",
+        sort: "secretNumber",
+        isSample: true,
+        page: 0,
+        size: 1000
+      };
+      const data = await paperList(datas).catch(() => {});
+      this.isLoading = false;
+      if (!data) return;
+      this.paperList = data.data.map(item => {
+        item.title = `NO.${item.sn}`;
+        item.loading = false;
+        return item;
+      });
+      this.paperList.sort((a, b) => (a.level < b.level ? -1 : 1));
+      this.updatePapers();
+    },
+    updatePapers() {
+      if (this.curLevel) {
+        this.papers = this.paperList.filter(
+          paper => paper.level === this.curLevel
+        );
+      } else {
+        this.papers = this.paperList;
+      }
+    },
+    setCurLevel(levelName) {
+      this.curLevel = levelName;
+      this.updatePapers();
+    },
+    cancel() {
+      this.modalIsShow = false;
+    },
+    open() {
+      this.modalIsShow = true;
+    },
+    toReview(index) {
+      this.$emit("on-paper-click", index, this.papers);
+    },
+    cancelPaper(paper) {
+      if (paper.loading) return;
+      this.$Modal.confirm({
+        content: "确定要取消当前标准卷吗?",
+        onOk: async () => {
+          paper.loading = true;
+          const res = await cancelStandardPaper(paper.id).catch(() => {});
+          paper.loading = false;
+          if (!res) return;
+          this.getPaperList();
+        }
+      });
+    },
+    // change standard paper
+    toChangePaper(paper) {
+      this.curChangePaper = paper;
+      this.levelModalIsShow = true;
+    },
+    selectLevel(levelName) {
+      if (levelName === this.curChangePaper.level) return;
+      this.curSelectLevel = levelName;
+    },
+    async confirmChange() {
+      if (!this.curSelectLevel) return;
+      if (this.isSubmit) return;
+
+      this.isSubmit = true;
+      const datas = {
+        action: "sampling",
+        level: this.curSelectLevel,
+        originLevel: this.curChangePaper.level,
+        paperIds: this.curChangePaper.id
+      };
+      let result = true;
+      await leaderGradingPaper(datas).catch(() => {
+        result = false;
+      });
+      this.isSubmit = false;
+
+      if (!result) return;
+
+      this.$Message.success("操作成功!");
+      this.getPaperList();
+      this.cancelChange();
+    },
+    cancelChange() {
+      this.curSelectLevel = null;
+      this.levelModalIsShow = false;
+    }
+  }
+};
+</script>

+ 4 - 3
src/modules/mark/leader/LeaderMarking.vue

@@ -48,7 +48,7 @@
             <marker-image-view
               :data="paper"
               :stage="stage"
-              @to-review="toReview(index)"
+              @to-review="toReview"
             ></marker-image-view>
           </div>
         </div>
@@ -356,9 +356,10 @@ export default {
       await this.getStepLevels();
       this.toPage(1);
     },
-    toReview(index) {
+    toReview(data) {
       this.isFullscreenMarking = true;
-      this.selectPaper(index);
+      this.curPaperIndex = this.papers.findIndex(item => item.id === data.id);
+      this.curPaper = Object.assign({}, this.papers[this.curPaperIndex], data);
       this.$refs.SimpleImagePreview.open();
     },
     selectPaper(index) {

+ 4 - 3
src/modules/mark/marker/MarkerMarking.vue

@@ -48,7 +48,7 @@
             <marker-image-view
               :data="paper"
               :stage="stage"
-              @to-review="toReview(index)"
+              @to-review="toReview"
             ></marker-image-view>
           </div>
         </div>
@@ -382,9 +382,10 @@ export default {
       await this.getStepLevels();
       this.toPage(1);
     },
-    toReview(index) {
+    toReview(data) {
       this.isFullscreenMarking = true;
-      this.selectPaper(index);
+      this.curPaperIndex = this.papers.findIndex(item => item.id === data.id);
+      this.curPaper = Object.assign({}, this.papers[this.curPaperIndex], data);
       this.$refs.SimpleImagePreview.open();
     },
     selectPaper(index) {