2 Commits 3077c7274e ... 4b4464049f

Author SHA1 Message Date
  natasha 4b4464049f 表格增加勾叉选项 1 day ago
  natasha d7ab68326f 表格支持单元格单独设置背景色 1 day ago

+ 51 - 0
src/views/book/courseware/create/components/question/table/Table.vue

@@ -121,6 +121,7 @@
               @handleRichTextBlur="handleBlurCon"
             />
             <el-input v-else v-model="li.content" @blur="handleBlurCon" />
+            <el-button size="mini" @click="editCell(li.cell)">配置</el-button>
           </div>
         </div>
         <div class="table-node">
@@ -150,6 +151,17 @@
           <div v-for="(item, i) in data.answer_lists" :key="i" class="table-node">
             <div v-for="(li, j) in item" :key="i + 'col' + j" class="table-item">
               <el-input v-model="li.answer" type="textarea" :readonly="!data.option_list[i][j].hasInput" />
+              <span
+                v-if="data.option_list[i][j].cell.isCross"
+                style="display: flex; align-items: center; font-size: 14px"
+                >勾叉答案<i
+                  @click="toggle(li)"
+                  :class="[
+                    { 'el-icon-check': li.crossAnswer === statusList[1] },
+                    { 'el-icon-close': li.crossAnswer === statusList[2] },
+                  ]"
+                  style="display: block; width: 14px; height: 14px; border: 1px solid #000"
+              /></span>
             </div>
           </div>
         </div>
@@ -190,6 +202,33 @@
         :font-family="data?.unified_attrib?.font"
         @fillCorrectPinyin="fillCorrectPinyin"
       />
+      <el-dialog
+        title="配置单元格"
+        :visible="editCellFlag"
+        width="460px"
+        :close-on-click-modal="false"
+        v-if="editCellFlag"
+        @close="editCellFlag = false"
+      >
+        <el-form :model="activeCell" :inline="true">
+          <el-form-item label="背景色">
+            <el-color-picker v-model="activeCell.bgColor" />
+          </el-form-item>
+          <el-form-item label="勾叉">
+            <el-switch v-model="activeCell.isCross" />
+          </el-form-item>
+          <el-form-item label="合并行">
+            <el-input v-model="activeCell.rowspan" class="rowspan" type="number" />
+          </el-form-item>
+          <el-form-item label="合并列">
+            <el-input v-model="activeCell.colspan" class="colspan" type="number" />
+          </el-form-item>
+        </el-form>
+        <div slot="footer">
+          <el-button @click="editCellFlag = false">取消</el-button>
+          <el-button type="primary" @click="editCellFlag = false">确定</el-button>
+        </div>
+      </el-dialog>
     </template>
   </ModuleBase>
 </template>
@@ -227,6 +266,9 @@ export default {
       isViewExplanatoryNoteDialog: false,
       oldRichData: {},
       fillTypeList,
+      activeCell: null,
+      editCellFlag: false,
+      statusList: ['normal', 'tick', 'cross'],
     };
   },
   watch: {
@@ -346,6 +388,14 @@ export default {
     },
   },
   methods: {
+    toggle(status) {
+      const index = this.statusList.findIndex((item) => status.crossAnswer === item);
+      status.crossAnswer = index === this.statusList.length - 1 ? this.statusList[0] : this.statusList[index + 1];
+    },
+    editCell(cell) {
+      this.activeCell = cell;
+      this.editCellFlag = true;
+    },
     // 设置样式
     BatchSetFormat(type, val = '') {
       this.$refs.richText.forEach((richText) => {
@@ -392,6 +442,7 @@ export default {
                 // .replace(/<span class="rich-fill".*?>(.*?)<\/span>|([_]{3,})/gi, '###$1$2###');
               });
           }
+          items.crossAnswer = 'normal';
           // text += `${items.content.replace(/<[^>]+>/g, '')}\n`;
           text += `${items.content}\n`;
         });

+ 8 - 0
src/views/book/courseware/data/table.js

@@ -62,6 +62,13 @@ export function getOption() {
     content: '',
     mark: getRandomNumber(),
     model_essay: [],
+    
+    cell: {
+      bgColor: '',
+      isCross: false,
+      rowspan: 1,
+      colspan: 1,
+    }
   };
 }
 
@@ -69,6 +76,7 @@ export function getAnswerOption() {
   return {
     answer: '',
     answer_list: [],
+    crossAnswer:'normal'
   };
 }
 

+ 271 - 200
src/views/book/courseware/preview/components/table/TablePreview.vue

@@ -41,166 +41,181 @@
                           (data.property.decoration_color ? data.property.decoration_color : data.property.border_color)
                         : '1px dotted ' + data.property.border_color,
                   borderRadius: i === 0 && data.property.first_line_color ? '4px ' : '0',
-                  background: data.cols_bg_list[j]
-                    ? data.cols_bg_list[j]
-                    : data.rows_bg_list[i]
-                      ? data.rows_bg_list[i]
-                      : '',
+                  background: col.cell.bgColor
+                    ? col.cell.bgColor
+                    : data.cols_bg_list[j]
+                      ? data.cols_bg_list[j]
+                      : data.rows_bg_list[i]
+                        ? data.rows_bg_list[i]
+                        : '',
                   height: data.property.height + 'px',
                 }"
               >
-                <div :style="[tdStyle, computedRichStyle(col.content)]" class="cell-wrap">
-                  <template v-if="isEnable(data.property.view_pinyin)">
-                    <div
-                      v-for="(item, index) in col.model_pinyin"
-                      :key="index"
-                      class="pinyin-text"
-                      :class="[index === 0 ? 'pinyin-text-left' : '']"
-                    >
-                      <template v-if="item.type === 'input'">
-                        <template v-if="data.property.fill_type === fillTypeList[0].value">
-                          <el-input
-                            :key="index"
-                            v-model="item.value"
-                            :disabled="disabled"
-                            :class="[...computedAnswerClass(item, i, j)]"
-                            :style="[{ width: Math.max(40, item.value.length * 21.3) + 'px' }]"
-                          />
-                        </template>
-                        <template v-else-if="data.property.fill_type === fillTypeList[1].value">
-                          <el-popover :key="index" placement="top" trigger="click">
-                            <div class="word-list">
-                              <span
-                                v-for="{ content, mark } in data.word_list"
-                                :key="mark"
-                                class="word-item"
-                                @click="handleSelectWord(content, mark, item)"
-                              >
-                                {{ convertText(content) }}
-                              </span>
-                            </div>
-
+                <div class="cell-wrap">
+                  <div class="cell-wrap-content" :style="[tdStyle, computedRichStyle(col.content)]">
+                    <template v-if="isEnable(data.property.view_pinyin)">
+                      <div
+                        v-for="(item, index) in col.model_pinyin"
+                        :key="index"
+                        class="pinyin-text"
+                        :class="[index === 0 ? 'pinyin-text-left' : '']"
+                      >
+                        <template v-if="item.type === 'input'">
+                          <template v-if="data.property.fill_type === fillTypeList[0].value">
                             <el-input
-                              slot="reference"
+                              :key="index"
                               v-model="item.value"
-                              :readonly="true"
+                              :disabled="disabled"
                               :class="[...computedAnswerClass(item, i, j)]"
                               :style="[{ width: Math.max(40, item.value.length * 21.3) + 'px' }]"
                             />
-                          </el-popover>
-                        </template>
+                          </template>
+                          <template v-else-if="data.property.fill_type === fillTypeList[1].value">
+                            <el-popover :key="index" placement="top" trigger="click">
+                              <div class="word-list">
+                                <span
+                                  v-for="{ content, mark } in data.word_list"
+                                  :key="mark"
+                                  class="word-item"
+                                  @click="handleSelectWord(content, mark, item)"
+                                >
+                                  {{ convertText(content) }}
+                                </span>
+                              </div>
 
-                        <template v-else-if="data.property.fill_type === fillTypeList[2].value">
-                          <span :key="j" class="write-click" @click="handleWriteClick(item)">
-                            <img
-                              v-show="item.write_base64"
-                              style="background-color: #f4f4f4"
-                              :src="item.write_base64"
-                              alt="write-show"
-                            />
-                          </span>
-                        </template>
+                              <el-input
+                                slot="reference"
+                                v-model="item.value"
+                                :readonly="true"
+                                :class="[...computedAnswerClass(item, i, j)]"
+                                :style="[{ width: Math.max(40, item.value.length * 21.3) + 'px' }]"
+                              />
+                            </el-popover>
+                          </template>
 
-                        <template v-else-if="data.property.fill_type === fillTypeList[3].value">
-                          <SoundRecordBox
-                            ref="record"
-                            :key="j"
-                            type="mini"
-                            :many-times="false"
-                            class="record-box"
-                            :answer-record-list="data.audio_answer_list"
-                            :task-model="isJudgingRightWrong ? 'ANSWER' : ''"
-                            :attrib="data.unified_attrib"
-                            @handleWav="handleMiniWav($event, item)"
-                          />
+                          <template v-else-if="data.property.fill_type === fillTypeList[2].value">
+                            <span :key="j" class="write-click" @click="handleWriteClick(item)">
+                              <img
+                                v-show="item.write_base64"
+                                style="background-color: #f4f4f4"
+                                :src="item.write_base64"
+                                alt="write-show"
+                              />
+                            </span>
+                          </template>
+
+                          <template v-else-if="data.property.fill_type === fillTypeList[3].value">
+                            <SoundRecordBox
+                              ref="record"
+                              :key="j"
+                              type="mini"
+                              :many-times="false"
+                              class="record-box"
+                              :answer-record-list="data.audio_answer_list"
+                              :task-model="isJudgingRightWrong ? 'ANSWER' : ''"
+                              :attrib="data.unified_attrib"
+                              @handleWav="handleMiniWav($event, item)"
+                            />
+                          </template>
+                          <span v-if="data.property.pinyin_position === 'bottom'" class="pinyin">&nbsp;</span>
                         </template>
-                        <span v-if="data.property.pinyin_position === 'bottom'" class="pinyin">&nbsp;</span>
-                      </template>
-                      <template v-else>
-                        <span v-if="data.property.pinyin_position === 'top'" class="pinyin">
-                          {{ item.pinyin.replace(/\s+/g, '') }}
-                        </span>
-                        <span :style="{ ...item.activeTextStyle }">
-                          {{ convertText(item.text) }}
-                        </span>
-                        <span v-if="data.property.pinyin_position === 'bottom'" class="pinyin">{{
-                          item.pinyin.replace(/\s+/g, '')
-                        }}</span>
-                      </template>
-                    </div>
-                  </template>
-                  <template v-else>
-                    <div v-for="(item, index) in col.model_essay" :key="index" :style="[tdStyle]">
-                      <span
-                        v-if="item.type === 'text'"
-                        :key="index"
-                        :style="{
-                          fontSize:
-                            data.unified_attrib && data.unified_attrib.font_size ? data.unified_attrib.font_size : '',
-                          fontFamily: data.unified_attrib && data.unified_attrib.font ? data.unified_attrib.font : '',
-                        }"
-                        v-html="convertText(sanitizeHTML(item.value))"
-                      ></span>
-                      <template v-if="item.type === 'input'">
-                        <template v-if="data.property.fill_type === fillTypeList[0].value">
-                          <el-input
-                            :key="index"
-                            v-model="item.value"
-                            :disabled="disabled"
-                            :class="[...computedAnswerClass(item, i, j)]"
-                            :style="[{ width: Math.max(40, item.value.length * 21.3) + 'px' }]"
-                          />
+                        <template v-else>
+                          <span v-if="data.property.pinyin_position === 'top'" class="pinyin">
+                            {{ item.pinyin.replace(/\s+/g, '') }}
+                          </span>
+                          <span :style="{ ...item.activeTextStyle }">
+                            {{ convertText(item.text) }}
+                          </span>
+                          <span v-if="data.property.pinyin_position === 'bottom'" class="pinyin">{{
+                            item.pinyin.replace(/\s+/g, '')
+                          }}</span>
                         </template>
-                        <template v-else-if="data.property.fill_type === fillTypeList[1].value">
-                          <el-popover :key="index" placement="top" trigger="click">
-                            <div class="word-list">
-                              <span
-                                v-for="{ content, mark } in data.word_list"
-                                :key="mark"
-                                class="word-item"
-                                @click="handleSelectWord(content, mark, item)"
-                              >
-                                {{ convertText(content) }}
-                              </span>
-                            </div>
-
+                      </div>
+                    </template>
+                    <template v-else>
+                      <div v-for="(item, index) in col.model_essay" :key="index" :style="[tdStyle]">
+                        <span
+                          v-if="item.type === 'text'"
+                          :key="index"
+                          :style="{
+                            fontSize:
+                              data.unified_attrib && data.unified_attrib.font_size ? data.unified_attrib.font_size : '',
+                            fontFamily: data.unified_attrib && data.unified_attrib.font ? data.unified_attrib.font : '',
+                          }"
+                          v-html="convertText(sanitizeHTML(item.value))"
+                        ></span>
+                        <template v-if="item.type === 'input'">
+                          <template v-if="data.property.fill_type === fillTypeList[0].value">
                             <el-input
-                              slot="reference"
+                              :key="index"
                               v-model="item.value"
-                              :readonly="true"
+                              :disabled="disabled"
                               :class="[...computedAnswerClass(item, i, j)]"
                               :style="[{ width: Math.max(40, item.value.length * 21.3) + 'px' }]"
                             />
-                          </el-popover>
-                        </template>
+                          </template>
+                          <template v-else-if="data.property.fill_type === fillTypeList[1].value">
+                            <el-popover :key="index" placement="top" trigger="click">
+                              <div class="word-list">
+                                <span
+                                  v-for="{ content, mark } in data.word_list"
+                                  :key="mark"
+                                  class="word-item"
+                                  @click="handleSelectWord(content, mark, item)"
+                                >
+                                  {{ convertText(content) }}
+                                </span>
+                              </div>
+
+                              <el-input
+                                slot="reference"
+                                v-model="item.value"
+                                :readonly="true"
+                                :class="[...computedAnswerClass(item, i, j)]"
+                                :style="[{ width: Math.max(40, item.value.length * 21.3) + 'px' }]"
+                              />
+                            </el-popover>
+                          </template>
+
+                          <template v-else-if="data.property.fill_type === fillTypeList[2].value">
+                            <span :key="j" class="write-click" @click="handleWriteClick(item)">
+                              <img
+                                v-show="item.write_base64"
+                                style="background-color: #f4f4f4"
+                                :src="item.write_base64"
+                                alt="write-show"
+                              />
+                            </span>
+                          </template>
 
-                        <template v-else-if="data.property.fill_type === fillTypeList[2].value">
-                          <span :key="j" class="write-click" @click="handleWriteClick(item)">
-                            <img
-                              v-show="item.write_base64"
-                              style="background-color: #f4f4f4"
-                              :src="item.write_base64"
-                              alt="write-show"
+                          <template v-else-if="data.property.fill_type === fillTypeList[3].value">
+                            <SoundRecordBox
+                              ref="record"
+                              :key="j"
+                              type="mini"
+                              :many-times="false"
+                              class="record-box"
+                              :answer-record-list="data.audio_answer_list"
+                              :task-model="isJudgingRightWrong ? 'ANSWER' : ''"
+                              :attrib="data.unified_attrib"
+                              @handleWav="handleMiniWav($event, item)"
                             />
-                          </span>
+                          </template>
                         </template>
+                      </div>
+                    </template>
+                  </div>
 
-                        <template v-else-if="data.property.fill_type === fillTypeList[3].value">
-                          <SoundRecordBox
-                            ref="record"
-                            :key="j"
-                            type="mini"
-                            :many-times="false"
-                            class="record-box"
-                            :answer-record-list="data.audio_answer_list"
-                            :task-model="isJudgingRightWrong ? 'ANSWER' : ''"
-                            :attrib="data.unified_attrib"
-                            @handleWav="handleMiniWav($event, item)"
-                          />
-                        </template>
-                      </template>
-                    </div>
-                  </template>
+                  <i
+                    v-if="col.cell.isCross"
+                    @click="toggle(col)"
+                    :class="[
+                      { 'el-icon-check': col.crossAnswer === statusList[1] },
+                      { 'el-icon-close': col.crossAnswer === statusList[2] },
+                      ...computedAnswerCrossClass(col, i, j),
+                    ]"
+                    :style="{ display: 'block', width: '18px', height: '18px', border: '1px solid #000' }"
+                  />
                 </div>
                 <span v-if="showLang" class="multilingual" :style="[tdStyle, computedRichStyle(col.content)]">
                   {{
@@ -272,24 +287,27 @@
                               : data.property.border_color)
                           : '1px dotted ' + data.property.border_color,
                     borderRadius: i === 0 && data.property.first_line_color ? '4px ' : '0',
-                    background: data.cols_bg_list[j]
-                      ? data.cols_bg_list[j]
-                      : data.rows_bg_list[i]
-                        ? data.rows_bg_list[i]
-                        : '',
+                    background: col.cell.bgColor
+                      ? col.cell.bgColor
+                      : data.cols_bg_list[j]
+                        ? data.cols_bg_list[j]
+                        : data.rows_bg_list[i]
+                          ? data.rows_bg_list[i]
+                          : '',
                     height: data.property.height + 'px',
                   }"
                 >
-                  <div :style="[tdStyle, computedRichStyle(col.content)]" class="cell-wrap">
-                    <template v-if="isEnable(data.property.view_pinyin)">
-                      <div
-                        v-for="(item, index) in col.model_pinyin"
-                        :key="index"
-                        class="pinyin-text"
-                        :class="[index === 0 ? 'pinyin-text-left' : '']"
-                      >
-                        <template v-if="item.type === 'input'">
-                          <!-- <template v-if="data.property.fill_type === fillTypeList[0].value">
+                  <div class="cell-wrap">
+                    <div class="cell-wrap-content" :style="[tdStyle, computedRichStyle(col.content)]">
+                      <template v-if="isEnable(data.property.view_pinyin)">
+                        <div
+                          v-for="(item, index) in col.model_pinyin"
+                          :key="index"
+                          class="pinyin-text"
+                          :class="[index === 0 ? 'pinyin-text-left' : '']"
+                        >
+                          <template v-if="item.type === 'input'">
+                            <!-- <template v-if="data.property.fill_type === fillTypeList[0].value">
                             <el-input
                               :key="index"
                               v-model="item.value"
@@ -345,42 +363,45 @@
                               @handleWav="handleMiniWav($event, item)"
                             />
                           </template> -->
-                          <span v-if="data.property.pinyin_position === 'bottom'" class="pinyin">&nbsp;</span>
-                        </template>
-                        <template v-else>
-                          <span v-if="data.property.pinyin_position === 'top'" class="pinyin">
-                            {{ item.pinyin.replace(/\s+/g, '') }}
-                          </span>
-                          <span :style="{ ...item.activeTextStyle }">
-                            {{ convertText(item.text) }}
+                            <span v-if="data.property.pinyin_position === 'bottom'" class="pinyin">&nbsp;</span>
+                          </template>
+                          <template v-else>
+                            <span v-if="data.property.pinyin_position === 'top'" class="pinyin">
+                              {{ item.pinyin.replace(/\s+/g, '') }}
+                            </span>
+                            <span :style="{ ...item.activeTextStyle }">
+                              {{ convertText(item.text) }}
+                            </span>
+                            <span v-if="data.property.pinyin_position === 'bottom'" class="pinyin">{{
+                              item.pinyin.replace(/\s+/g, '')
+                            }}</span>
+                          </template>
+                          <span
+                            :key="`answer-${j}`"
+                            class="right-answer"
+                            v-show="computedAnswerText(item, i, j).length > 0"
+                          >
+                            {{ convertText(computedAnswerText(item, i, j)) }}
                           </span>
-                          <span v-if="data.property.pinyin_position === 'bottom'" class="pinyin">{{
-                            item.pinyin.replace(/\s+/g, '')
-                          }}</span>
-                        </template>
-                        <span
-                          :key="`answer-${j}`"
-                          class="right-answer"
-                          v-show="computedAnswerText(item, i, j).length > 0"
-                        >
-                          {{ convertText(computedAnswerText(item, i, j)) }}
-                        </span>
-                      </div>
-                    </template>
-                    <template v-else>
-                      <div v-for="(item, index) in col.model_essay" :key="index" :style="[tdStyle]">
-                        <span
-                          v-if="item.type === 'text'"
-                          :key="index"
-                          :style="{
-                            fontSize:
-                              data.unified_attrib && data.unified_attrib.font_size ? data.unified_attrib.font_size : '',
-                            fontFamily: data.unified_attrib && data.unified_attrib.font ? data.unified_attrib.font : '',
-                          }"
-                          v-html="convertText(sanitizeHTML(item.value))"
-                        ></span>
-                        <template v-if="item.type === 'input'">
-                          <!-- <template v-if="data.property.fill_type === fillTypeList[0].value">
+                        </div>
+                      </template>
+                      <template v-else>
+                        <div v-for="(item, index) in col.model_essay" :key="index" :style="[tdStyle]">
+                          <span
+                            v-if="item.type === 'text'"
+                            :key="index"
+                            :style="{
+                              fontSize:
+                                data.unified_attrib && data.unified_attrib.font_size
+                                  ? data.unified_attrib.font_size
+                                  : '',
+                              fontFamily:
+                                data.unified_attrib && data.unified_attrib.font ? data.unified_attrib.font : '',
+                            }"
+                            v-html="convertText(sanitizeHTML(item.value))"
+                          ></span>
+                          <template v-if="item.type === 'input'">
+                            <!-- <template v-if="data.property.fill_type === fillTypeList[0].value">
                             <el-input
                               :key="index"
                               v-model="item.value"
@@ -437,16 +458,25 @@
                             />
                           </template> -->
 
-                          <span
-                            :key="`answer-${j}`"
-                            class="right-answer"
-                            v-show="computedAnswerText(item, i, j).length > 0"
-                          >
-                            {{ convertText(computedAnswerText(item, i, j)) }}
-                          </span>
-                        </template>
-                      </div>
-                    </template>
+                            <span
+                              :key="`answer-${j}`"
+                              class="right-answer"
+                              v-show="computedAnswerText(item, i, j).length > 0"
+                            >
+                              {{ convertText(computedAnswerText(item, i, j)) }}
+                            </span>
+                          </template>
+                        </div>
+                      </template>
+                    </div>
+                    <i
+                      v-if="col.cell.isCross"
+                      :class="[
+                        { 'el-icon-check': data.answer_lists[i][j].crossAnswer === statusList[1] },
+                        { 'el-icon-close': data.answer_lists[i][j].crossAnswer === statusList[2] },
+                      ]"
+                      style="display: block; width: 18px; height: 18px; border: 1px solid #30a47d"
+                    />
                   </div>
                   <span v-if="showLang" class="multilingual" :style="[tdStyle, computedRichStyle(col.content)]">
                     {{
@@ -496,6 +526,7 @@ export default {
       writeVisible: false,
       writeMark: '',
       isHasInput: false,
+      statusList: ['normal', 'tick', 'cross'],
     };
   },
   computed: {
@@ -545,6 +576,10 @@ export default {
     this.handleData();
   },
   methods: {
+    toggle(status) {
+      const index = this.statusList.findIndex((item) => status.crossAnswer === item);
+      status.crossAnswer = index === this.statusList.length - 1 ? this.statusList[0] : this.statusList[index + 1];
+    },
     handleData() {
       this.table_width = 0;
       this.isHasInput = false;
@@ -613,6 +648,25 @@ export default {
       }
       return classList;
     },
+    computedAnswerCrossClass(item, i, j) {
+      if (!this.isJudgingRightWrong && !this.isShowRightAnswer) {
+        return '';
+      }
+      let answerOption =
+        this.data.answer_lists[i] && this.data.answer_lists[i][j] ? this.data.answer_lists[i][j].crossAnswer : '';
+      if (!item) return '';
+      let selectValue = item.crossAnswer;
+      let classList = [];
+      let isRight = answerOption === selectValue;
+      if (this.isJudgingRightWrong && answerOption) {
+        isRight ? classList.push('right') : classList.push('wrong');
+      }
+
+      if (this.isShowRightAnswer && !isRight) {
+        classList.push('show-right-answer');
+      }
+      return classList;
+    },
     /**
      * 处理小音频录音
      * @param {Object} data 音频数据
@@ -755,7 +809,16 @@ $border-color: #e6e6e6;
       display: flex;
       flex-flow: wrap;
       grid-area: fill;
-      align-items: end;
+
+      // align-items: end;
+      align-items: center; // 为了勾选框居中对齐
+      &-content {
+        display: flex;
+        flex: 1;
+        flex-flow: wrap;
+        grid-area: fill;
+        align-items: end;
+      }
 
       p {
         flex-grow: 1; // 为了常规模式时设置居中显示撑满整个单元格
@@ -829,6 +892,14 @@ $border-color: #e6e6e6;
         }
       }
 
+      .right {
+        border-color: $right-color !important;
+      }
+
+      .wrong {
+        border-color: $error-color !important;
+      }
+
       &-normal {
         p {
           width: 100%; // 为了解决换行问题

+ 2 - 2
src/views/personal_workbench/template_list/index.vue

@@ -9,11 +9,11 @@
             <el-input v-model="form.name" />
           </el-form-item>
 
-          <el-form-item prop="status" label="状态">
+          <!-- <el-form-item prop="status" label="状态">
             <el-select v-model="form.status">
               <el-option v-for="item in status_list" :key="item.value" :value="item.value" :label="item.label" />
             </el-select>
-          </el-form-item>
+          </el-form-item> -->
           <el-form-item class="search-box">
             <el-button class="search-btn" type="primary" @click="queryList">查询</el-button>
           </el-form-item>

+ 2 - 2
src/views/personal_workbench/template_list_manager/index.vue

@@ -7,11 +7,11 @@
             <el-input v-model="form.name" />
           </el-form-item>
 
-          <el-form-item prop="status" label="状态">
+          <!-- <el-form-item prop="status" label="状态">
             <el-select v-model="form.status">
               <el-option v-for="item in status_list" :key="item.value" :value="item.value" :label="item.label" />
             </el-select>
-          </el-form-item>
+          </el-form-item> -->
           <el-form-item class="search-box">
             <el-button class="search-btn" type="primary" @click="queryList">查询</el-button>
           </el-form-item>

+ 2 - 2
src/views/personal_workbench/template_list_org/index.vue

@@ -7,11 +7,11 @@
             <el-input v-model="form.name" />
           </el-form-item>
 
-          <el-form-item prop="status" label="状态">
+          <!-- <el-form-item prop="status" label="状态">
             <el-select v-model="form.status">
               <el-option v-for="item in status_list" :key="item.value" :value="item.value" :label="item.label" />
             </el-select>
-          </el-form-item>
+          </el-form-item> -->
           <el-form-item class="search-box">
             <el-button class="search-btn" type="primary" @click="queryList">查询</el-button>
           </el-form-item>