WuXinyu 7 лет назад
Родитель
Сommit
fcac8396f6

+ 12 - 2
src/components/CardJudgeItem/index.vue

@@ -1,5 +1,11 @@
 <template>
-  <div :class="{ 'judge-section': true, 'judge-success': success }">
+  <div
+    :class="{
+      'judge-section': true,
+      'judge-success': success,
+      'judge-primary': isPrimary
+    }"
+  >
     <slot></slot>
   </div>
 </template>
@@ -11,6 +17,10 @@ export default {
     success: {
       type: Boolean,
       default: false
+    },
+    isPrimary: {
+      type: Boolean,
+      default: false
     }
   }
 };
@@ -28,6 +38,6 @@ export default {
   border-left: 6px solid $success;
 }
 .judge-primary {
-  border-left: 6px solid $info;
+  border-left: 6px solid $primary;
 }
 </style>

+ 10 - 2
src/components/CheckList/index.vue

@@ -1,11 +1,16 @@
 <template>
   <div>
-    <card-judge-item v-for="item in value" :key="item.id" :success="item.level">
+    <card-judge-item
+      v-for="item in value"
+      :key="item.id"
+      :success="item.level"
+      :is-primary="item.state === 'PENDING'"
+    >
       <b-tooltip :label="item.explain" position="is-left">
         <b-checkbox
           class="checkbox-section"
           v-model="item.level"
-          type="is-success"
+          :type="item.state === 'PENDING' ? 'is-primary' : 'is-success'"
         >
           {{ item.content }}
         </b-checkbox>
@@ -40,6 +45,9 @@ export default {
       },
       deep: true
     }
+  },
+  methods: {
+    // getColor(state) {}
   }
 };
 </script>

+ 31 - 0
src/data/checkListItemState.js

@@ -5,3 +5,34 @@ export const SOLVING = "SOLVING";
 export const ARGUED = "ARGUED";
 
 export const ALL_STATE = [DEFAULT, SUBMITTED, PENDING, SOLVING, ARGUED];
+
+/**
+ * @typedef CheckListItemStateHelper
+ * @property {string} name
+ * @property {string} styledClass
+ */
+
+class CheckListItemStateHelperFactory {
+  /**
+   * @param state
+   * @return {ReviewStateHelper}
+   */
+  getStateHelper = state => {
+    switch (state) {
+      case DEFAULT:
+        return { name: "未评价", styledClass: "is-light" };
+      case SUBMITTED:
+        return { name: "已评价", styledClass: "is-success" };
+      case PENDING:
+        return { name: "待处理重判", styledClass: "is-warning" };
+      case SOLVING:
+        return { name: "处理重判期间", styledClass: "is-info" };
+      case ARGUED:
+        return { name: "重判已结束", styledClass: "is-danger" };
+      default:
+        console.log("checklist item state not found : ", state);
+    }
+  };
+}
+
+export const checkListItemStateHelperFactory = new CheckListItemStateHelperFactory();

+ 2 - 2
src/data/reviewState.js

@@ -11,7 +11,7 @@ export const ALL_STATE = [DEFAULT, REVIEWING, ARGUING, SOLVING, END];
  * @property {string} styledClass
  */
 
-class ReviewStateHelperFectory {
+class ReviewStateHelperFactory {
   /**
    * @param state
    * @return {ReviewStateHelper}
@@ -34,4 +34,4 @@ class ReviewStateHelperFectory {
   };
 }
 
-export const reviewStateHelperFectory = new ReviewStateHelperFectory();
+export const reviewStateHelperFectory = new ReviewStateHelperFactory();