DESKTOP-USV654P\pc vor 8 Monaten
Ursprung
Commit
267afb6264

+ 1 - 1
.env.development

@@ -1,6 +1,6 @@
 
   VUE_APP_BaseTIP1= "http://124.70.71.172"
   VUE_APP_BaseTIP2= "http://gv.api.ngrok.yingcaibx.com"
-  VUE_APP_BaseTIP= "http://219.153.208.30:8180"
+  VUE_APP_BaseTIP= "http://localhost:21021"
   VUE_APP_LOGIN= "https://zhxy.cqtlzjzx.com"
 

Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/css/chunk-de3342da.0d34aac8.css


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/index.html


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/js/app.0e7bd161.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/js/app.0e7bd161.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/js/chunk-4843abff.98c7513e.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/js/chunk-4843abff.98c7513e.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/js/chunk-de3342da.ac56a08a.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/js/chunk-de3342da.ac56a08a.js.map


+ 278 - 226
src/views/BaseData/components/LearningSection/LearningSection.vue

@@ -1,235 +1,287 @@
 <template>
-    <div>
-        <div class="top-box flex-align">
-            <div>
-                <a-button type="primary" @click="showModal('add')">创建</a-button>
-                <a-button type="primary" style="margin: 0 24px;" @click="_EducationCategoryDeleteList">删除</a-button>
-                <a-button type="danger" v-if="isSource" @click="dataSyncClick">同步</a-button>
-            </div>
-            <div class="flex">
-                <a-select style="width: 260px;margin-right:8px;" placeholder="选择状态" @change="statusChange">
-                    <a-select-option :key="''">全部</a-select-option>
-                    <a-select-option :key="1">启用</a-select-option>
-                    <a-select-option :key="0">禁用</a-select-option>
-                </a-select>
-                <a-input-search style="width:400px;" placeholder="搜索学段" enter-button @search="onSearch" />
-            </div>
-        </div>
-        <a-table :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" :columns="columns"
-            :loading="loading" :dataSource="data" size="small" :rowKey="record => record.id" :pagination="pagination"
-            @change="handleChange">
-            <template slot="isActive" slot-scope="text">
-                <span :style="{'color':text?'green':'red'}">{{text?'已启用':'已禁用'}}</span>
-            </template>
-            <template slot="gradeCount" slot-scope="text,record">
-                <a v-if="record.isActive" @click="changeComponent('GradeManage',record)">管理</a>
-            </template>
-            <template slot="action" slot-scope="text,record">
-                <a class="m-r8" @click="showModal('edit',record)">修改</a>
-                <a class="m-r8" v-if="!record.isActive" @click="_EducationCategoryActive(true,record)">启用</a>
-                <a class="m-r8" v-if="record.isActive" @click="_EducationCategoryActive(false,record)">禁用</a>
-                <a @click="_EducationCategoryDelete(record)">删除</a>
-            </template>
-        </a-table>
-        <EditLearningSection ref="EditLearningSection" />
+  <div>
+    <div class="top-box flex-align">
+      <div>
+        <a-button type="primary" @click="showModal('add')">创建</a-button>
+        <a-button
+          type="primary"
+          style="margin: 0 24px"
+          @click="_EducationCategoryDeleteList"
+        >
+          删除
+        </a-button>
+        <!-- <a-button type="danger" v-if="isSource" @click="dataSyncClick">同步</a-button> -->
+      </div>
+      <div class="flex">
+        <a-select
+          style="width: 260px; margin-right: 8px"
+          placeholder="选择状态"
+          @change="statusChange"
+        >
+          <a-select-option :key="''">全部</a-select-option>
+          <a-select-option :key="1">启用</a-select-option>
+          <a-select-option :key="0">禁用</a-select-option>
+        </a-select>
+        <a-input-search
+          style="width: 400px"
+          placeholder="搜索学段"
+          enter-button
+          @search="onSearch"
+        />
+      </div>
     </div>
+    <a-table
+      :rowSelection="{
+        selectedRowKeys: selectedRowKeys,
+        onChange: onSelectChange,
+      }"
+      :columns="columns"
+      :loading="loading"
+      :dataSource="data"
+      size="small"
+      :rowKey="(record) => record.id"
+      :pagination="pagination"
+      @change="handleChange"
+    >
+      <template slot="isActive" slot-scope="text">
+        <span :style="{ color: text ? 'green' : 'red' }">{{
+          text ? '已启用' : '已禁用'
+        }}</span>
+      </template>
+      <template slot="gradeCount" slot-scope="text, record">
+        <a
+          v-if="record.isActive"
+          @click="changeComponent('GradeManage', record)"
+          >管理</a
+        >
+      </template>
+      <template slot="action" slot-scope="text, record">
+        <a class="m-r8" @click="showModal('edit', record)">修改</a>
+        <a
+          class="m-r8"
+          v-if="!record.isActive"
+          @click="_EducationCategoryActive(true, record)"
+          >启用</a
+        >
+        <a
+          class="m-r8"
+          v-if="record.isActive"
+          @click="_EducationCategoryActive(false, record)"
+          >禁用</a
+        >
+        <a @click="_EducationCategoryDelete(record)">删除</a>
+      </template>
+    </a-table>
+    <EditLearningSection ref="EditLearningSection" />
+  </div>
 </template>
 <script>
-    const columns = [
-        {
-            title: "名称",
-            dataIndex: "name",
-            key: "name",
-            scopedSlots: { customRender: "name" },
-            ellipsis: true,
-            width: 180
+const columns = [
+  {
+    title: '名称',
+    dataIndex: 'name',
+    key: 'name',
+    scopedSlots: { customRender: 'name' },
+    ellipsis: true,
+    width: 180,
+  },
+  {
+    title: '年级',
+    dataIndex: 'gradeCount',
+    key: 'gradeCount',
+    scopedSlots: { customRender: 'gradeCount' },
+    ellipsis: true,
+    width: 100,
+  },
+  // {
+  //     title: "用户",
+  //     dataIndex: "ssxk",
+  //     key: "ssxk",
+  //     scopedSlots: { customRender: "ssxk" },
+  //     ellipsis: true,
+  //     width: 100
+  // },
+  {
+    title: '状态',
+    dataIndex: 'isActive',
+    key: 'isActive',
+    scopedSlots: { customRender: 'isActive' },
+    ellipsis: true,
+    width: 100,
+  },
+  {
+    title: '操作',
+    key: 'action',
+    dataIndex: 'action',
+    scopedSlots: { customRender: 'action' },
+    width: 100,
+    align: 'center',
+  },
+];
+import { myPagination } from '@/mixins/myPagination.js';
+import {
+  EducationCategoryGetList,
+  EducationCategoryActive,
+  EducationCategoryDelete,
+  EducationCategoryDeleteList,
+  EducationCategoryDataSync,
+} from '@/api/api';
+import EditLearningSection from './EditLearningSection.vue';
+export default {
+  mixins: [myPagination],
+  components: {
+    EditLearningSection,
+  },
+  data() {
+    return {
+      columns,
+      loading: false,
+      data: [],
+      selectedRowKeys: [],
+      KeyWord: '',
+      isSource: false,
+      IsActive: null,
+    };
+  },
+  mounted() {
+    this.isSource = localStorage.getItem('isSource') === '1';
+    this._EducationCategoryGetList();
+  },
+  methods: {
+    changeComponent(name, record) {
+      console.log(record, 'record');
+      this.$emit('callBack', name, record);
+    },
+    //删除(多个)
+    _EducationCategoryDeleteList() {
+      if (this.selectedRowKeys.length === 0) {
+        this.$message.error('请选择需要删除的学段!');
+        return;
+      }
+      let _self = this;
+      this.$confirm({
+        okText: '确认',
+        cancelText: '取消',
+        mask: false,
+        title: `您确认要删除这"${_self.selectedRowKeys.length}"个学段吗?`,
+        onOk() {
+          let data = {
+            idList: _self.selectedRowKeys,
+          };
+          EducationCategoryDeleteList(data).then((res) => {
+            _self.selectedRowKeys = [];
+            _self.$message.success('删除成功!');
+            _self._EducationCategoryGetList();
+            _self.$store.dispatch('EducationCategoryGetList', true);
+          });
         },
-        {
-            title: "年级",
-            dataIndex: "gradeCount",
-            key: "gradeCount",
-            scopedSlots: { customRender: "gradeCount" },
-            ellipsis: true,
-            width: 100
+      });
+    },
+    //删除(单个)
+    _EducationCategoryDelete(record) {
+      let _this = this;
+      this.$confirm({
+        okText: '确认',
+        cancelText: '取消',
+        mask: false,
+        title: `您确认要${record.name}"学段吗?`,
+        onOk() {
+          let data = {
+            id: record.id,
+          };
+          EducationCategoryDelete(data).then((res) => {
+            _this.$message.success('删除成功!');
+            _this._EducationCategoryGetList();
+            _this.$store.dispatch('EducationCategoryGetList', true);
+          });
         },
-        // {
-        //     title: "用户",
-        //     dataIndex: "ssxk",
-        //     key: "ssxk",
-        //     scopedSlots: { customRender: "ssxk" },
-        //     ellipsis: true,
-        //     width: 100
-        // },
-        {
-            title: "状态",
-            dataIndex: "isActive",
-            key: "isActive",
-            scopedSlots: { customRender: "isActive" },
-            ellipsis: true,
-            width: 100
+      });
+    },
+    //是否启用
+    _EducationCategoryActive(active, item) {
+      console.log(item);
+      let data = {
+        id: item.id,
+        isActive: active,
+      };
+      EducationCategoryActive(data).then((res) => {
+        this.$message.success(`${active ? '启用' : '禁用'}成功!`);
+        this._EducationCategoryGetList();
+        this.$store.dispatch('EducationCategoryGetList', true);
+      });
+    },
+    //学段列表
+    _EducationCategoryGetList() {
+      this.loading = true;
+      let data = {
+        IsActive:
+          typeof this.IsActive == 'number'
+            ? Boolean(this.IsActive)
+            : this.IsActive,
+        KeyWord: this.KeyWord,
+        SkipCount: (this.pagination.current - 1) * this.pagination.pageSize,
+        MaxResultCount: this.pagination.pageSize,
+      };
+      EducationCategoryGetList(data)
+        .then((res) => {
+          console.log(res, '学段列表');
+          this.data = res.items;
+          this.pagination.total = res.totalCount;
+          this.loading = false;
+        })
+        .catch((err) => {
+          this.loading = false;
+        });
+    },
+    showModal(type, record = {}) {
+      this.$refs.EditLearningSection.showModal(type, record);
+    },
+    onSearch(val) {
+      this.KeyWord = val;
+      const pager = { ...this.pagination };
+      pager.current = 1;
+      this.pagination = pager;
+      this._EducationCategoryGetList();
+    },
+    statusChange(value) {
+      console.log(value);
+      this.IsActive = value;
+      const pager = { ...this.pagination };
+      pager.current = 1;
+      this.pagination = pager;
+      this._EducationCategoryGetList();
+    },
+    //表格选项选中
+    onSelectChange(selectedRowKeys) {
+      this.selectedRowKeys = selectedRowKeys;
+    },
+    //表格change
+    handleChange(pagination, filters, sorter) {
+      const pager = { ...this.pagination };
+      pager.current = pagination.current;
+      this.pagination = pager;
+      this._EducationCategoryGetList();
+    },
+    dataSyncClick() {
+      let _this = this;
+      this.$confirm({
+        mask: false,
+        title: `同步数据会清空现有数据,确定要同步数据吗?`,
+        onOk() {
+          EducationCategoryDataSync().then((res) => {
+            _this.$message.success('同步成功!');
+            _this._EducationCategoryGetList();
+            _this.$store.dispatch('EducationCategoryGetList', true);
+          });
         },
-        {
-            title: "操作",
-            key: "action",
-            dataIndex: "action",
-            scopedSlots: { customRender: "action" },
-            width: 100,
-            align: "center"
-        },
-    ]
-    import { myPagination } from '@/mixins/myPagination.js'
-    import { EducationCategoryGetList, EducationCategoryActive, EducationCategoryDelete, EducationCategoryDeleteList,EducationCategoryDataSync } from '@/api/api'
-    import EditLearningSection from './EditLearningSection.vue'
-    export default {
-        mixins: [myPagination],
-        components: {
-            EditLearningSection
-        },
-        data() {
-            return {
-                columns,
-                loading: false,
-                data: [],
-                selectedRowKeys: [],
-                KeyWord: '',
-                isSource:false,
-                IsActive: null
-            }
-        },
-        mounted() {
-            this.isSource=localStorage.getItem("isSource")==='1'
-            this._EducationCategoryGetList();
-        },
-        methods: {
-            changeComponent(name, record) {
-                console.log(record, 'record')
-                this.$emit('callBack', name, record)
-            },
-            //删除(多个)
-            _EducationCategoryDeleteList() {
-                if (this.selectedRowKeys.length === 0) {
-                    this.$message.error('请选择需要删除的学段!')
-                    return;
-                }
-                let _self = this;
-                this.$confirm({
-                    okText: '确认',
-                    cancelText: '取消',
-                    mask: false,
-                    title: `您确认要删除这"${_self.selectedRowKeys.length}"个学段吗?`,
-                    onOk() {
-                        let data = {
-                            idList: _self.selectedRowKeys
-                        }
-                        EducationCategoryDeleteList(data).then(res => {
-                            _self.selectedRowKeys = [];
-                            _self.$message.success('删除成功!');
-                            _self._EducationCategoryGetList();
-                            _self.$store.dispatch('EducationCategoryGetList', true);
-                        })
-                    }
-                });
-            },
-            //删除(单个)
-            _EducationCategoryDelete(record) {
-                let _this = this;
-                this.$confirm({
-                    okText: '确认',
-                    cancelText: '取消',
-                    mask: false,
-                    title: `您确认要${record.name}"学段吗?`,
-                    onOk() {
-                        let data = {
-                            id: record.id
-                        }
-                        EducationCategoryDelete(data).then(res => {
-                            _this.$message.success('删除成功!');
-                            _this._EducationCategoryGetList();
-                            _this.$store.dispatch('EducationCategoryGetList', true);
-                        })
-                    }
-                });
-            },
-            //是否启用
-            _EducationCategoryActive(active, item) {
-                console.log(item)
-                let data = {
-                    id: item.id,
-                    isActive: active
-                }
-                EducationCategoryActive(data).then(res => {
-                    this.$message.success(`${active ? '启用' : '禁用'}成功!`);
-                    this._EducationCategoryGetList();
-                    this.$store.dispatch('EducationCategoryGetList', true);
-                })
-            },
-            //学段列表
-            _EducationCategoryGetList() {
-                this.loading = true;
-                let data = {
-                    IsActive: typeof (this.IsActive) == 'number' ? Boolean(this.IsActive) : this.IsActive,
-                    KeyWord: this.KeyWord,
-                    SkipCount: (this.pagination.current - 1) * this.pagination.pageSize,
-                    MaxResultCount: this.pagination.pageSize,
-                }
-                EducationCategoryGetList(data).then(res => {
-                    console.log(res, '学段列表')
-                    this.data = res.items;
-                    this.pagination.total = res.totalCount;
-                    this.loading = false;
-                }).catch(err => {
-                    this.loading = false;
-                })
-            },
-            showModal(type, record = {}) {
-                this.$refs.EditLearningSection.showModal(type, record)
-            },
-            onSearch(val) {
-                this.KeyWord = val;
-                const pager = { ...this.pagination };
-                pager.current = 1;
-                this.pagination = pager;
-                this._EducationCategoryGetList();
-            },
-            statusChange(value) {
-                console.log(value)
-                this.IsActive = value;
-                const pager = { ...this.pagination };
-                pager.current = 1;
-                this.pagination = pager;
-                this._EducationCategoryGetList();
-            },
-            //表格选项选中
-            onSelectChange(selectedRowKeys) {
-                this.selectedRowKeys = selectedRowKeys;
-            },
-            //表格change
-            handleChange(pagination, filters, sorter) {
-                const pager = { ...this.pagination };
-                pager.current = pagination.current;
-                this.pagination = pager;
-                this._EducationCategoryGetList();
-            },
-            dataSyncClick(){
-              let _this = this;
-                this.$confirm({
-                    mask: false,
-                    title: `同步数据会清空现有数据,确定要同步数据吗?`,
-                    onOk() {
-                        EducationCategoryDataSync().then(res => {
-                            _this.$message.success('同步成功!');
-                            _this._EducationCategoryGetList();
-                            _this.$store.dispatch('EducationCategoryGetList', true);
-                        })
-                    }
-                });
-            }
-        }
-    }
+      });
+    },
+  },
+};
 </script>
 <style scoped>
-    .top-box {
-        height: 64px;
-        padding: 0 24px;
-    }
-</style>
+.top-box {
+  height: 64px;
+  padding: 0 24px;
+}
+</style>

+ 651 - 537
src/views/QusetionBankManage/QusetionBankManage.vue

@@ -1,580 +1,694 @@
 <template>
-    <div class="question-bank">
-        <div class="top">
-            <div class="top-left flex-items">
-                <a-icon type="menu-fold" class="subject-icon" @click="handleShowSubjectSelect" />
-                <template>
-                    <span
-                        class="subject-title only-line-1"><a href="#" @click="handleShowSubjectSelect">{{activeSubject.educationCategory}}{{activeSubject.name}}</a></span>
-                    <!-- 科目选择 -->
-                    <div class="subject-select-box" v-bind:class="{'subject-select-box-show':isShowSubjectSelect}" @mouseleave="isShowSubjectSelect=false">
-                        <div class="type-group">
-                            <!-- <myListSelect v-for="(value,key) in $store.state.baseInfo.SubjectsGroup" :title="key" :data="value" :needAll="false" /> -->
-                            <MultiListSelect v-if="activeSubject.id" :data="$store.state.baseInfo.SubjectsArr"
-                                :needAll="false" :defaultSelect="[activeSubject.id]" @callBack="subjectCallBack" />
-                        </div>
-                    </div>
-                </template>
-            </div>
-            <div class="top-right flex-align">
-                <div>
-                    <a-button :disabled="!ChapterId&&KnowledgePointIdList.length==0" class="m-r8"
-                        @click="QuestionImport">试题导入</a-button>
-                    <a-button :loading="templateLoading" :disabled="!activeSubject.id" class="m-r8" type="primary"
-                        @click="GetQuestionTemplate">
-                        获取下载模板</a-button>
-                    <a-button type="primary" @click="toPath('intelligencePaper')">智能组题</a-button>
-                </div>
-                <a-input-search style="width:400px;" placeholder="搜索题干" enter-button @search="onSearch" />
+  <div class="question-bank">
+    <div class="top">
+      <div class="top-left flex-items">
+        <a-icon
+          type="menu-fold"
+          class="subject-icon"
+          @click="handleShowSubjectSelect"
+        />
+        <template>
+          <span class="subject-title only-line-1">
+            <a href="#" @click="handleShowSubjectSelect"
+              >{{ activeSubject.educationCategory }}{{ activeSubject.name }}</a
+            >
+          </span>
+          <!-- 科目选择 -->
+          <div
+            class="subject-select-box"
+            v-bind:class="{ 'subject-select-box-show': isShowSubjectSelect }"
+            @mouseleave="isShowSubjectSelect = false"
+          >
+            <div class="type-group">
+              <!-- <myListSelect v-for="(value,key) in $store.state.baseInfo.SubjectsGroup" :title="key" :data="value" :needAll="false" /> -->
+              <MultiListSelect
+                v-if="activeSubject.id"
+                :data="$store.state.baseInfo.SubjectsArr"
+                :needAll="false"
+                :defaultSelect="[activeSubject.id]"
+                @callBack="subjectCallBack"
+              />
             </div>
+          </div>
+        </template>
+      </div>
+      <div class="top-right flex-align">
+        <div>
+          <a-button
+            :disabled="!ChapterId && KnowledgePointIdList.length == 0"
+            class="m-r8"
+            @click="QuestionImport"
+          >
+            试题导入
+          </a-button>
+          <a-button
+            :loading="templateLoading"
+            :disabled="!activeSubject.id"
+            class="m-r8"
+            type="primary"
+            @click="GetQuestionTemplate"
+          >
+            获取下载模板
+          </a-button>
+          <a-button type="primary" @click="toPath('intelligencePaper')">
+            智能组题
+          </a-button>
         </div>
-        <div class="main">
-            <!-- 左侧菜单树 -->
-            <div class="main-left">
-                <a-tabs default-active-key="1" @change="callback">
-                    <a-tab-pane key="1" tab="章节">
-                        <ChapterTree ref="ChapterTree" :activeSubject="activeSubject" @getQuestion="getQuestion"
-                            @clearPoints="clearPoints" />
-                    </a-tab-pane>
-                    <a-tab-pane key="2" tab="知识点" force-render>
-                        <PointsTree ref="PointsTree" :activeSubject="activeSubject" @getQuestion="getQuestion"
-                            @clearChapter="clearChapter" />
-                    </a-tab-pane>
-                </a-tabs>
-            </div>
-            <!-- 右侧试题框 -->
-            <div class="main-right">
-                <!-- 题目列表 -->
-                <div class="question-list">
-                    <!-- 难度 ,题型筛选 -->
-                    <!-- <div> -->
-                    <myListSelect title="试题难度" :data="difficultyList" :defaultSelect="activeDifficulty"
-                        :replaceFields="replaceFields" @callBack="difficultyCallBack" v-model="activeDifficulty" />
-                    <myListSelect title="试题题型" :data="questionTypeList" @callBack="questionTypeCallBack"
-                        :defaultSelect="activeQuestionType" v-model="activeQuestionType" />
-                    <a-spin :spinning="spinning">
-                        <template>
-                            <div v-if="questionData.length>0" class="question-item m16"
-                                v-for="(item,index) in questionData" :key="item.id">
-                                <QuestionItem :ref="'QuestionItem'+index" :data="item">
-                                    <template slot-scope="scope">
-                                        <div class="flex-align bordr-bottom-gray p-8">
-                                            <div>
-                                                <span class="m-r36">题型:{{item.disciplineQuestionType}}</span>
-                                                <span class="m-r36">难度:{{item.difficulty}}</span>
-                                            </div>
-                                            <div class="flex">
-                                                <span v-if="item.questionConvertState!=0">
-                                                    <a-icon type="undo" class="blue-hover m-r8" @click="_QuestionGetList"/></span>
-                                                <template v-if="item.questionConvertState!=0">
-                                                    <a-tooltip>
-                                                        <template slot="title" v-if="item.questionConvertState>1">
-                                                            {{item.convertFailMessage}}
-                                                        </template>
-                                                        <div class="flex m-r8" style="display: block;">
-                                                            <span>替换状态:</span>
-                                                            <span style="color:orange"
-                                                                v-if="item.questionConvertState==1">转换中</span>
-                                                            <span style="color:red"
-                                                                v-if="item.questionConvertState==2">转换失败</span>
-                                                            <span style="color:red"
-                                                                v-if="item.questionConvertState==3">解析替换失败</span>
-                                                        </div>
-                                                    </a-tooltip>
-                                                </template>
-                                                <a-upload :showUploadList="false"
-                                                    :customRequest="(data)=>customRequest(data,item.id,index)">
-                                                    <a class="m-r16">上传替换</a>
-                                                </a-upload>
-                                                <a class="m-r16" @click="questionDown(item)">下载</a>
-                                                <a class="m-r16" @click="toEdit(item,index)">纠错</a>
-                                                <a class="m-r16" @click="toggle(index)">详情</a>
-                                                <a class="m-r16" @click="addToTest(item)" v-show="!item.inbox">加入试卷</a>
-                                                <a class="m-r16" @click="delFromTest(item)" v-show="item.inbox">移出试卷</a>
-                                            </div>
-                                        </div>
-                                    </template>
-                                </QuestionItem>
+        <a-input-search
+          style="width: 400px"
+          placeholder="搜索题干"
+          enter-button
+          @search="onSearch"
+        />
+      </div>
+    </div>
+    <div class="main">
+      <!-- 左侧菜单树 -->
+      <div class="main-left">
+        <a-tabs default-active-key="1" @change="callback">
+          <a-tab-pane key="1" tab="章节">
+            <ChapterTree
+              ref="ChapterTree"
+              :activeSubject="activeSubject"
+              @getQuestion="getQuestion"
+              @clearPoints="clearPoints"
+            />
+          </a-tab-pane>
+          <a-tab-pane key="2" tab="知识点" force-render>
+            <PointsTree
+              ref="PointsTree"
+              :activeSubject="activeSubject"
+              @getQuestion="getQuestion"
+              @clearChapter="clearChapter"
+            />
+          </a-tab-pane>
+        </a-tabs>
+      </div>
+      <!-- 右侧试题框 -->
+      <div class="main-right">
+        <!-- 题目列表 -->
+        <div class="question-list">
+          <!-- 难度 ,题型筛选 -->
+          <!-- <div> -->
+          <myListSelect
+            title="试题难度"
+            :data="difficultyList"
+            :defaultSelect="activeDifficulty"
+            :replaceFields="replaceFields"
+            @callBack="difficultyCallBack"
+            v-model="activeDifficulty"
+          />
+          <myListSelect
+            title="试题题型"
+            :data="questionTypeList"
+            @callBack="questionTypeCallBack"
+            :defaultSelect="activeQuestionType"
+            v-model="activeQuestionType"
+          />
+          <a-spin :spinning="spinning">
+            <template>
+              <div
+                v-if="questionData.length > 0"
+                class="question-item m16"
+                v-for="(item, index) in questionData"
+                :key="item.id"
+              >
+                <QuestionItem :ref="'QuestionItem' + index" :data="item">
+                  <template slot-scope="scope">
+                    <div class="flex-align bordr-bottom-gray p-8">
+                      <div>
+                        <span class="m-r36"
+                          >题型:{{ item.disciplineQuestionType }}</span
+                        >
+                        <span class="m-r36">难度:{{ item.difficulty }}</span>
+                      </div>
+                      <div class="flex">
+                        <span v-if="item.questionConvertState != 0">
+                          <a-icon
+                            type="undo"
+                            class="blue-hover m-r8"
+                            @click="_QuestionGetList"
+                        /></span>
+                        <template v-if="item.questionConvertState != 0">
+                          <a-tooltip>
+                            <template
+                              slot="title"
+                              v-if="item.questionConvertState > 1"
+                            >
+                              {{ item.convertFailMessage }}
+                            </template>
+                            <div class="flex m-r8" style="display: block">
+                              <span>替换状态:</span>
+                              <span
+                                style="color: orange"
+                                v-if="item.questionConvertState == 1"
+                                >转换中</span
+                              >
+                              <span
+                                style="color: red"
+                                v-if="item.questionConvertState == 2"
+                                >转换失败</span
+                              >
+                              <span
+                                style="color: red"
+                                v-if="item.questionConvertState == 3"
+                                >解析替换失败</span
+                              >
                             </div>
-                            <a-empty v-if="questionData.length===0" />
+                          </a-tooltip>
                         </template>
-                    </a-spin>
+                        <a-upload
+                          :showUploadList="false"
+                          :customRequest="
+                            (data) => customRequest(data, item.id, index)
+                          "
+                        >
+                          <a class="m-r16">上传替换</a>
+                        </a-upload>
+                        <a class="m-r16" @click="questionDown(item)">下载</a>
+                        <a class="m-r16" @click="toEdit(item, index)">纠错</a>
+                        <a class="m-r16" @click="toggle(index)">详情</a>
+                        <a
+                          class="m-r16"
+                          @click="addToTest(item)"
+                          v-show="!item.inbox"
+                          >加入试卷</a
+                        >
+                        <a
+                          class="m-r16"
+                          @click="delFromTest(item)"
+                          v-show="item.inbox"
+                          >移出试卷</a
+                        >
+                      </div>
+                    </div>
+                  </template>
+                </QuestionItem>
+              </div>
+              <a-empty v-if="questionData.length === 0" />
+            </template>
+          </a-spin>
 
-                    <!-- </div> -->
+          <!-- </div> -->
 
-                <!-- 底部分页 -->
-                <div class="paging-box">
-                    <!-- <a-pagination size="small" :pagination="pagination" :total="50" show-size-changer
+          <!-- 底部分页 -->
+          <div class="paging-box">
+            <!-- <a-pagination size="small" :pagination="pagination" :total="50" show-size-changer
                         show-quick-jumper /> -->
-                    <oPagination :pagination="pagination" @change="handleChange" />
-                </div>
-                </div>
-            </div>
+            <oPagination :pagination="pagination" @change="handleChange" />
+          </div>
         </div>
-        <!-- 试题导入模态框 -->
-        <QuestionImport ref="QuestionImport" />
-        <!-- 试卷蓝抽屉 -->
-        <div class="basket" @click="showDrawer">
-            <div class="basket-inner">
-                <div v-if="$store.state.storage.testBox.length>0" class="basket-dot">{{dotNum}}</div>
-                试题篮
-            </div>
+      </div>
+    </div>
+    <!-- 试题导入模态框 -->
+    <QuestionImport ref="QuestionImport" />
+    <!-- 试卷蓝抽屉 -->
+    <div class="basket" @click="showDrawer">
+      <div class="basket-inner">
+        <div v-if="$store.state.storage.testBox.length > 0" class="basket-dot">
+          {{ dotNum }}
         </div>
-        <TestBasket ref="TestBasket" />
+        试题篮
+      </div>
     </div>
+    <TestBasket ref="TestBasket" />
+  </div>
 </template>
 
 <script>
-    import { myPagination } from '@/mixins/myPagination.js'
-    import ChapterTree from './components/ChapterTree.vue'
-    import PointsTree from './components/PointsTree.vue'
-    import myListSelect from '@/components/myListSelect.vue'
-    import MultiListSelect from '@/components/MultiListSelect.vue'
-    import QuestionImport from './components/QuestionImport.vue'
-    import TestBasket from './components/TestBasket.vue' //试题蓝
-    import QuestionItem from '@/components/Questions/QuestionItem'
-    import oPagination from '@/components/myPagination'
-    import { download, getFileID, getQueryString } from '@/utils/tools'
-    import { QuestionGetList, DisciplineQuestionTypeGetList, GetQuestionTemplate, QuestionGetQuestionDoc, QuestionReplace } from '@/api/api'
+import { myPagination } from '@/mixins/myPagination.js';
+import ChapterTree from './components/ChapterTree.vue';
+import PointsTree from './components/PointsTree.vue';
+import myListSelect from '@/components/myListSelect.vue';
+import MultiListSelect from '@/components/MultiListSelect.vue';
+import QuestionImport from './components/QuestionImport.vue';
+import TestBasket from './components/TestBasket.vue'; //试题蓝
+import QuestionItem from '@/components/Questions/QuestionItem';
+import oPagination from '@/components/myPagination';
+import { download, getFileID, getQueryString } from '@/utils/tools';
+import {
+  QuestionGetList,
+  DisciplineQuestionTypeGetList,
+  GetQuestionTemplate,
+  QuestionGetQuestionDoc,
+  QuestionReplace,
+} from '@/api/api';
 
-    export default {
-        mixins: [myPagination],
-        components: {
-            ChapterTree,
-            PointsTree,
-            myListSelect,
-            QuestionImport,
-            TestBasket,
-            QuestionItem,
-            MultiListSelect,
-            oPagination
-        },
-        data() {
-            return {
-                spinning: false,
-                templateLoading: false,
-                replaceFields: [
-                    ['id', 'value']
-                ],
-                activeSubject: {},//当前学科
-                difficultyList: [],//难度列表
-                activeDifficulty: [''],//当前难度
-                questionTypeList: [],//学科题型
-                activeQuestionType: [''],//当前题型
-                questionData: [],//试题列表
-                ChapterId: '',//选中的章节id
-                KnowledgePointIdList: [],//选中的知识点
-                KeyWord: '',//查询关键字
+export default {
+  mixins: [myPagination],
+  components: {
+    ChapterTree,
+    PointsTree,
+    myListSelect,
+    QuestionImport,
+    TestBasket,
+    QuestionItem,
+    MultiListSelect,
+    oPagination,
+  },
+  data() {
+    return {
+      spinning: false,
+      templateLoading: false,
+      replaceFields: [['id', 'value']],
+      activeSubject: {}, //当前学科
+      difficultyList: [], //难度列表
+      activeDifficulty: [''], //当前难度
+      questionTypeList: [], //学科题型
+      activeQuestionType: [''], //当前题型
+      questionData: [], //试题列表
+      ChapterId: '', //选中的章节id
+      KnowledgePointIdList: [], //选中的知识点
+      KeyWord: '', //查询关键字
 
-                isShowSubjectSelect:false,
-            }
-        },
-        created() {
-            this.$store.dispatch('GetDifficulty', true).then(res => {
-                this.difficultyList = res;
-                console.log(this.difficultyList, 'this.difficultyList')
-            })
-            this.$store.dispatch('DisciplineGetList', true).then(res => {
-                if (res.length > 0) {
-                    this.activeSubject = res[0].data.length > 0 ? res[0].data[0] : {};
-                    this.$refs.ChapterTree._TextbookGetList(this.activeSubject);
-                    this._DisciplineQuestionTypeGetList();
-                }
+      isShowSubjectSelect: false,
+    };
+  },
+  created() {
+    this.$store.dispatch('GetDifficulty', true).then((res) => {
+      this.difficultyList = res;
+      console.log(this.difficultyList, 'this.difficultyList');
+    });
+    this.$store.dispatch('DisciplineGetList', true).then((res) => {
+      if (res.length > 0) {
+        this.activeSubject = res[0].data.length > 0 ? res[0].data[0] : {};
+        this.$refs.ChapterTree._TextbookGetList(this.activeSubject);
+        this._DisciplineQuestionTypeGetList();
+      }
+    });
+    //console.log(this.$store.state.baseInfo.SubjectsArr, '$store.state.baseInfo.SubjectsArr')
+  },
+  computed: {
+    dotNum() {
+      let num =
+        this.$store.state.storage.testBox.length > 99
+          ? '99+'
+          : this.$store.state.storage.testBox.length;
+      return num;
+    },
+    textBox() {
+      return this.$store.state.storage.testBox;
+    },
+  },
+  watch: {
+    textBox(nVal) {
+      console.log(nVal, 'nVal');
+      this.questionData = this.questionData.map((item) => {
+        let arr = nVal.filter((v) => v.id == item.id);
+        if (arr.length > 0) {
+          item.inbox = true;
+        } else {
+          item.inbox = false;
+        }
+        return item;
+      });
+    },
+  },
+  mounted() {
+    this.checkSoruceToken();
+  },
+  methods: {
+    checkSoruceToken() {
+      localStorage.setItem('isSource', '1');
+      //   const query= getQueryString('token')
+      //     if(query){
+      //       const sourceToken= localStorage.getItem("sourceToken")
+      //       localStorage.setItem("isSource", '1')
+      //       //console.log('checkSoruceToken',query,sourceToken,sourceToken===query)
+      //       if(sourceToken!==query){
+      //         this.$router.push({ name: 'login' })
+      //       }
+      //     }
+    },
+    customRequest(data, id, index) {
+      console.log(index, 'index');
+      this.$refs['QuestionItem' + index][0].showLoading(true);
+      getFileID(data.file)
+        .then((res) => {
+          let values = {
+            questionId: id,
+            fileId: res,
+          };
+          console.log(values, 'values');
+          QuestionReplace(values)
+            .then((res) => {
+              console.log(res, '替换成功');
+              this.$message.success('替换成功');
+              this.$refs['QuestionItem' + index][0].showLoading(false);
+              this._QuestionGetList();
             })
-                //console.log(this.$store.state.baseInfo.SubjectsArr, '$store.state.baseInfo.SubjectsArr')
-
-        },
-        computed: {
-            dotNum() {
-                let num = this.$store.state.storage.testBox.length > 99 ? '99+' : this.$store.state.storage.testBox.length
-                return num
-            },
-            textBox() {
-                return this.$store.state.storage.testBox
+            .catch((err) => {
+              this.$refs['QuestionItem' + index][0].showLoading(false);
+            });
+        })
+        .catch((err) => {
+          this.$refs['QuestionItem' + index][0].showLoading(false);
+        });
+    },
+    //下载单道试题
+    questionDown(record) {
+      console.log(record, 'record');
+      let data = {
+        id: record.id,
+      };
+      QuestionGetQuestionDoc(data).then((res) => {
+        download(res, '试题.docx');
+      });
+    },
+    //下载导入模板
+    GetQuestionTemplate() {
+      this.templateLoading = true;
+      let data = {
+        disciplineId: this.activeSubject.id,
+      };
+      GetQuestionTemplate(data)
+        .then((res) => {
+          download(res, '试题标记说明举例.docx');
+          this.templateLoading = false;
+        })
+        .catch((err) => {
+          this.templateLoading = false;
+        });
+    },
+    //试题蓝-移除试题
+    delFromTest(item) {
+      item.inbox = false;
+      let testBox = this.$storage.get('testBox');
+      let index = testBox.findIndex((v) => v.id == item.id);
+      console.log(index, 'index');
+      testBox.splice(index, 1);
+      this.$storage.set('testBox', testBox);
+      console.log(
+        this.$store.state.storage.testBox,
+        '$store.state.storage.testBox'
+      );
+    },
+    //增加试题到试题蓝
+    addToTest(item) {
+      item.inbox = true;
+      console.log(item, 'item');
+      let testBox = this.$storage.get('testBox');
+      testBox.push(item);
+      this.$storage.set('testBox', testBox);
+      console.log(this.$storage.get('testBox'), 'localStorage.getItem(key)');
+      console.log(
+        this.$store.state.storage.testBox,
+        '$store.state.storage.testBox'
+      );
+    },
+    clearChapter() {
+      this.$nextTick(() => {
+        this.$refs.ChapterTree.clearChapter();
+      });
+    },
+    clearPoints() {
+      this.$nextTick(() => {
+        this.$refs.PointsTree.clearPoints();
+      });
+    },
+    //回调
+    getQuestion(data = {}) {
+      this.ChapterId = data.ChapterId || '';
+      this.KnowledgePointIdList = data.KnowledgePointIdList || [];
+      this.pagination.current = 1;
+      this._QuestionGetList();
+      console.log(this.ChapterId, 'this.ChapterId');
+      console.log(this.KnowledgePointIdList, 'this.KnowledgePointIdList');
+    },
+    //试题列表
+    _QuestionGetList(params = {}) {
+      this.spinning = true;
+      let data = {
+        DisciplineId: this.activeSubject.id, //学科id 666
+        DisciplineQuestionTypeId: this.activeQuestionType[0], //学科细分题型Id 666
+        Difficulty: this.activeDifficulty[0], //666
+        IsActive: null,
+        KnowledgePointIdList: this.KnowledgePointIdList, //知识点id
+        ChapterId: this.ChapterId, //章节id
+        IncludeChildChapter: true, //是否包括子章节(默认包括)
+        IncludeAncestor: false, //是否包括父级知识点(默认不包括)
+        KeyWord: this.KeyWord, //关键字
+        SkipCount: (this.pagination.current - 1) * this.pagination.pageSize,
+        MaxResultCount: this.pagination.pageSize,
+        ...params,
+      };
+      QuestionGetList(data)
+        .then((res) => {
+          console.log(res, '试题列表');
+          let testBox = this.$storage.get('testBox');
+          this.questionData = res.items.map((item) => {
+            let arr = testBox.filter((v) => v.id == item.id);
+            if (arr.length > 0) {
+              item.inbox = true;
+            } else {
+              item.inbox = false;
             }
-        },
-        watch: {
-            textBox(nVal) {
-                console.log(nVal, 'nVal')
-                this.questionData = this.questionData.map(item => {
-                    let arr = nVal.filter(v => v.id == item.id);
-                    if (arr.length > 0) {
-                        item.inbox = true;
-                    } else {
-                        item.inbox = false;
-                    }
-                    return item;
-                })
-            }
-        },
-        mounted() {
-          this.checkSoruceToken()
-        },
-        methods: {
-          checkSoruceToken(){
-          const query= getQueryString('token')
-            if(query){
-              const sourceToken= localStorage.getItem("sourceToken")
-              localStorage.setItem("isSource", '1')
-              //console.log('checkSoruceToken',query,sourceToken,sourceToken===query)
-              if(sourceToken!==query){
-                this.$router.push({ name: 'login' })
-              }
-            }
-          },
-            customRequest(data, id, index) {
-                console.log(index, 'index')
-                this.$refs['QuestionItem' + index][0].showLoading(true);
-                getFileID(data.file).then(res => {
-                    let values = {
-                        questionId: id,
-                        fileId: res
-                    }
-                    console.log(values, 'values')
-                    QuestionReplace(values).then(res => {
-                        console.log(res, '替换成功')
-                        this.$message.success('替换成功');
-                        this.$refs['QuestionItem' + index][0].showLoading(false);
-                        this._QuestionGetList();
-                    }).catch(err => {
-                        this.$refs['QuestionItem' + index][0].showLoading(false);
-                    })
-                }).catch(err => {
-                    this.$refs['QuestionItem' + index][0].showLoading(false);
-                })
-            },
-            //下载单道试题
-            questionDown(record) {
-                console.log(record, 'record')
-                let data = {
-                    id: record.id
-                }
-                QuestionGetQuestionDoc(data).then(res => {
-                    download(res, '试题.docx')
-                })
-            },
-            //下载导入模板
-            GetQuestionTemplate() {
-                this.templateLoading = true;
-                let data = {
-                    disciplineId: this.activeSubject.id
-                }
-                GetQuestionTemplate(data).then((res) => {
-                    download(res, '试题标记说明举例.docx')
-                    this.templateLoading = false;
-                }).catch(err => {
-                    this.templateLoading = false;
-                })
-            },
-            //试题蓝-移除试题
-            delFromTest(item) {
-                item.inbox = false;
-                let testBox = this.$storage.get('testBox');
-                let index = testBox.findIndex(v => v.id == item.id)
-                console.log(index, 'index')
-                testBox.splice(index, 1);
-                this.$storage.set('testBox', testBox);
-                console.log(this.$store.state.storage.testBox, '$store.state.storage.testBox')
-            },
-            //增加试题到试题蓝
-            addToTest(item) {
-                item.inbox = true;
-                console.log(item, 'item')
-                let testBox = this.$storage.get('testBox');
-                testBox.push(item);
-                this.$storage.set('testBox', testBox);
-                console.log(this.$storage.get('testBox'), 'localStorage.getItem(key)')
-                console.log(this.$store.state.storage.testBox, '$store.state.storage.testBox')
-            },
-            clearChapter() {
-                this.$nextTick(() => {
-                    this.$refs.ChapterTree.clearChapter();
-                })
-            },
-            clearPoints() {
-                this.$nextTick(() => {
-                    this.$refs.PointsTree.clearPoints();
-                })
-            },
-            //回调
-            getQuestion(data = {}) {
-                this.ChapterId = data.ChapterId || '';
-                this.KnowledgePointIdList = data.KnowledgePointIdList || []
-                this.pagination.current = 1;
-                this._QuestionGetList();
-                console.log(this.ChapterId, 'this.ChapterId');
-                console.log(this.KnowledgePointIdList, 'this.KnowledgePointIdList');
-            },
-            //试题列表
-            _QuestionGetList(params = {}) {
-                this.spinning = true;
-                let data = {
-                    DisciplineId: this.activeSubject.id,//学科id 666
-                    DisciplineQuestionTypeId: this.activeQuestionType[0],//学科细分题型Id 666
-                    Difficulty: this.activeDifficulty[0], //666
-                    IsActive: null,
-                    KnowledgePointIdList: this.KnowledgePointIdList,//知识点id
-                    ChapterId: this.ChapterId,//章节id
-                    IncludeChildChapter: true,//是否包括子章节(默认包括)
-                    IncludeAncestor: false,//是否包括父级知识点(默认不包括)
-                    KeyWord: this.KeyWord,//关键字
-                    SkipCount: (this.pagination.current - 1) * this.pagination.pageSize,
-                    MaxResultCount: this.pagination.pageSize,
-                    ...params
-                }
-                QuestionGetList(data).then(res => {
-                    console.log(res, '试题列表')
-                    let testBox = this.$storage.get('testBox');
-                    this.questionData = res.items.map(item => {
-                        let arr = testBox.filter(v => v.id == item.id);
-                        if (arr.length > 0) {
-                            item.inbox = true;
-                        } else {
-                            item.inbox = false;
-                        }
-                        return item;
-                    })
-                    this.pagination.total = res.totalCount;
-                    this.spinning = false;
-                }).catch(err => {
-                    this.spinning = false;
-                })
-            },
-            //获取学科题型
-            _DisciplineQuestionTypeGetList() {
-                this.activeQuestionType = [''];
-                let data = {
-                    disciplineId: this.activeSubject.id//学科题型
-                }
-                DisciplineQuestionTypeGetList(data).then(res => {
-                    console.log(res, '学科题型')
-                    this.questionTypeList = res;
-                })
-            },
-            //难度回调  
-            difficultyCallBack(data) {
-                console.log(data, '难度回调')
-                this.activeDifficulty = [data[0]];
-                this._QuestionGetList();
-            },
-            //题型回调
-            questionTypeCallBack(data) {
-                console.log(data, '题型回调')
-                this.activeQuestionType = [data[0]];
-                this._QuestionGetList();
-            },
-            toggle(index) {
-                this.$refs['QuestionItem' + index][0].toggle();
-            },
-            toEdit(item, index) {
-                this.$refs['QuestionItem' + index][0].toEdit(2);
-            },
-            onSearch(val) {
-                this.KeyWord = val;
-                const pager = { ...this.pagination };
-                pager.current = 1;
-                this.pagination = pager;
-                this._QuestionGetList();
-            },
-            callback(key) {
-                console.log(key);
-            },
-            //试题导入
-            QuestionImport() {
-                this.$refs.QuestionImport.showModal()
-            },
-            toPath(path) {
-                this.$router.push({
-                    name: path,
-                })
-            },
-            showDrawer() {
-                this.$refs.TestBasket.showDrawer()
-            },
-            //学科点击回调
-            subjectCallBack(data) {
-                console.log(data, '选中的学科')
-                this.activeDifficulty = [''];
-                this.activeSubject = data;
-                this._DisciplineQuestionTypeGetList();
-            },
-            //分页change
-            handleChange(pagination) {
-                this._QuestionGetList();
-            },
-            handleShowSubjectSelect(e){
-                e.preventDefault();
-                this.isShowSubjectSelect=!this.isShowSubjectSelect;
-            }
-        }
-    }
+            return item;
+          });
+          this.pagination.total = res.totalCount;
+          this.spinning = false;
+        })
+        .catch((err) => {
+          this.spinning = false;
+        });
+    },
+    //获取学科题型
+    _DisciplineQuestionTypeGetList() {
+      this.activeQuestionType = [''];
+      let data = {
+        disciplineId: this.activeSubject.id, //学科题型
+      };
+      DisciplineQuestionTypeGetList(data).then((res) => {
+        console.log(res, '学科题型');
+        this.questionTypeList = res;
+      });
+    },
+    //难度回调
+    difficultyCallBack(data) {
+      console.log(data, '难度回调');
+      this.activeDifficulty = [data[0]];
+      this._QuestionGetList();
+    },
+    //题型回调
+    questionTypeCallBack(data) {
+      console.log(data, '题型回调');
+      this.activeQuestionType = [data[0]];
+      this._QuestionGetList();
+    },
+    toggle(index) {
+      this.$refs['QuestionItem' + index][0].toggle();
+    },
+    toEdit(item, index) {
+      this.$refs['QuestionItem' + index][0].toEdit(2);
+    },
+    onSearch(val) {
+      this.KeyWord = val;
+      const pager = { ...this.pagination };
+      pager.current = 1;
+      this.pagination = pager;
+      this._QuestionGetList();
+    },
+    callback(key) {
+      console.log(key);
+    },
+    //试题导入
+    QuestionImport() {
+      this.$refs.QuestionImport.showModal();
+    },
+    toPath(path) {
+      this.$router.push({
+        name: path,
+      });
+    },
+    showDrawer() {
+      this.$refs.TestBasket.showDrawer();
+    },
+    //学科点击回调
+    subjectCallBack(data) {
+      console.log(data, '选中的学科');
+      this.activeDifficulty = [''];
+      this.activeSubject = data;
+      this._DisciplineQuestionTypeGetList();
+    },
+    //分页change
+    handleChange(pagination) {
+      this._QuestionGetList();
+    },
+    handleShowSubjectSelect(e) {
+      e.preventDefault();
+      this.isShowSubjectSelect = !this.isShowSubjectSelect;
+    },
+  },
+};
 </script>
 
 <style scoped lang="less">
-    .question-bank {
-        display: flex;
-        flex-direction: column;
-        width: 100%;
-        height: 100%;
-        background-color: yellow;
-    }
+.question-bank {
+  display: flex;
+  flex-direction: column;
+  width: 100%;
+  height: 100%;
+  background-color: yellow;
+}
 
-    .top {
-        width: 100%;
-        height: 64px;
-        border-bottom: 1px solid rgba(232, 232, 232, 1);
-        display: flex;
-        position: relative;
-    }
+.top {
+  width: 100%;
+  height: 64px;
+  border-bottom: 1px solid rgba(232, 232, 232, 1);
+  display: flex;
+  position: relative;
+}
 
-    .top-left {
-        width: 240px;
-        height: 100%;
-        border-right: 1px solid rgba(232, 232, 232, 1);
-        padding: 16px;
-        font-size: 20px;
-        color: #333333;
-        /* position: relative; */
-    }
+.top-left {
+  width: 240px;
+  height: 100%;
+  border-right: 1px solid rgba(232, 232, 232, 1);
+  padding: 16px;
+  font-size: 20px;
+  color: #333333;
+  /* position: relative; */
+}
 
-    .top-left .subject-title a{color:#333333}
+.top-left .subject-title a {
+  color: #333333;
+}
 
-    .subject-icon {
-        margin-right: 8px;
-        cursor: pointer;
-    }
+.subject-icon {
+  margin-right: 8px;
+  cursor: pointer;
+}
 
-    .subject-icon:hover {
-        color: rgb(24, 144, 255);
-    }
+.subject-icon:hover {
+  color: rgb(24, 144, 255);
+}
 
-    // .top-left:hover .subject-select-box {
-    //     max-height: 1000px;
-    //     display: block;
-    //     overflow-y: auto;
-    //     /* opacity: 1; */
-    // }
+// .top-left:hover .subject-select-box {
+//     max-height: 1000px;
+//     display: block;
+//     overflow-y: auto;
+//     /* opacity: 1; */
+// }
 
-    .subject-select-box.subject-select-box-show {
-        max-height: 1000px;
-        display: block;
-        overflow-y: auto;
-    }
+.subject-select-box.subject-select-box-show {
+  max-height: 1000px;
+  display: block;
+  overflow-y: auto;
+}
 
-    .subject-select-box {
-        font-size: 14px;
-        width: 100%;
-        max-height: 0px;
-        position: absolute;
-        top: 64px;
-        left: 0;
-        background-color: #fff;
-        z-index: 99;
-        transition: all 1s;
-        /* opacity: 0; */
-        /* display: none; */
-        overflow: hidden;
-    }
+.subject-select-box {
+  font-size: 14px;
+  width: 100%;
+  max-height: 0px;
+  position: absolute;
+  top: 64px;
+  left: 0;
+  background-color: #fff;
+  z-index: 99;
+  transition: all 1s;
+  /* opacity: 0; */
+  /* display: none; */
+  overflow: hidden;
+}
 
-    .subject-title {
-        flex: 1
-    }
+.subject-title {
+  flex: 1;
+}
 
-    .top-right {
-        padding: 24px;
-        flex: 1;
-    }
+.top-right {
+  padding: 24px;
+  flex: 1;
+}
 
-    .main {
-        display: flex;
-        width: 100%;
-        position: relative;
-        height: calc(100% - 64px);
-    }
+.main {
+  display: flex;
+  width: 100%;
+  position: relative;
+  height: calc(100% - 64px);
+}
 
-    .main-left {
-        width: 240px;
-        height: 100%;
-        border-right: 1px solid rgba(232, 232, 232, 1);
-        overflow-y: auto;
-    }
+.main-left {
+  width: 240px;
+  height: 100%;
+  border-right: 1px solid rgba(232, 232, 232, 1);
+  overflow-y: auto;
+}
 
-    /deep/.ant-tabs-nav .ant-tabs-tab {
-        padding: 8px 16px;
-        margin: 0;
-    }
+/deep/.ant-tabs-nav .ant-tabs-tab {
+  padding: 8px 16px;
+  margin: 0;
+}
 
-    /deep/.ant-tabs-bar {
-        margin: 0;
-    }
+/deep/.ant-tabs-bar {
+  margin: 0;
+}
 
-    .main-right {
-        flex: 1;
-        width: 100%;
-        height: 100%;
-        background-color: #f2f2f2;
-        position: relative;
-    }
+.main-right {
+  flex: 1;
+  width: 100%;
+  height: 100%;
+  background-color: #f2f2f2;
+  position: relative;
+}
 
-    .type-group {
-        padding: 8px;
-        background-color: #fff;
-    }
+.type-group {
+  padding: 8px;
+  background-color: #fff;
+}
 
-    .paging-box {
-        width: 100%;
-        height: 50px;
-        background-color: #fff;
-        position: relative;
-        //bottom: 0;
-        //right: 0;
-        display: flex;
-        flex-direction: row-reverse;
-        align-items: center;
-    }
+.paging-box {
+  width: 100%;
+  height: 50px;
+  background-color: #fff;
+  position: relative;
+  //bottom: 0;
+  //right: 0;
+  display: flex;
+  flex-direction: row-reverse;
+  align-items: center;
+}
 
-    .question-list {
-        flex: 1;
-        width: 100%;
-        height: 100%;//calc(100% - 50px);
-        overflow-y: auto;
-        /* background-color: pink; */
-        position: absolute;
-    }
+.question-list {
+  flex: 1;
+  width: 100%;
+  height: 100%; //calc(100% - 50px);
+  overflow-y: auto;
+  /* background-color: pink; */
+  position: absolute;
+}
 
-    .basket {
-        position: absolute;
-        right: 0;
-        top: 45%;
-        width: 36px;
-        word-break: break-all;
-        color: #fff;
-        background-color: #40a9ff;
-        border-radius: 2px;
-        text-align: center;
-        cursor: pointer;
-        letter-spacing: 5px;
-    }
+.basket {
+  position: absolute;
+  right: 0;
+  top: 45%;
+  width: 36px;
+  word-break: break-all;
+  color: #fff;
+  background-color: #40a9ff;
+  border-radius: 2px;
+  text-align: center;
+  cursor: pointer;
+  letter-spacing: 5px;
+}
 
-    .question-item {
-        background-color: #fff;
-    }
+.question-item {
+  background-color: #fff;
+}
 
-    .basket-inner {
-        flex: 1;
-        padding: 10px 0;
-        padding-left: 8px;
-        position: relative;
-    }
+.basket-inner {
+  flex: 1;
+  padding: 10px 0;
+  padding-left: 8px;
+  position: relative;
+}
 
-    .basket-dot {
-        background-color: red;
-        border-radius: 8px;
-        min-width: 20px;
-        padding: 0 4px;
-        position: absolute;
-        top: -8px;
-        left: -8px;
-        letter-spacing: 0px;
-    }
-</style>
+.basket-dot {
+  background-color: red;
+  border-radius: 8px;
+  min-width: 20px;
+  padding: 0 4px;
+  position: absolute;
+  top: -8px;
+  left: -8px;
+  letter-spacing: 0px;
+}
+</style>

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.