瀏覽代碼

知识点详情

201250038 2 年之前
父節點
當前提交
d7ca23749c

File diff suppressed because it is too large
+ 202 - 101
src/assets/knowledge.json


+ 1 - 1
src/router/index.js

@@ -9,7 +9,7 @@ const routes = [
     path: "/",
     name: "BokFrontEnd",
     component: () => import("../views/Bok/index"),
-    redirect: "/questionRepository",
+    redirect: "/knowledgePoint",
     children: [
       {
         path: "questionRepository",

+ 4 - 0
src/utils/knowledgeData.js

@@ -58,6 +58,7 @@ function formTreeData() {
           label: knowledge.name,
           value: knowledge.abbreviation,
           grasp: knowledge.grasp,
+          descrpiton: knowledge.description,
         });
       }
       tempChildren1.push({
@@ -66,6 +67,7 @@ function formTreeData() {
         value: k.abbreviation,
         children: tempChildren2,
         grasp: k.grasp,
+        description: k.description,
       });
     }
     tempChildren.push({
@@ -74,6 +76,7 @@ function formTreeData() {
       value: j.abbreviation,
       children: tempChildren1,
       grasp: j.grasp,
+      description: j.description,
     });
   }
 
@@ -83,6 +86,7 @@ function formTreeData() {
     value: root.abbreviation,
     children: tempChildren,
     grasp: root.grasp,
+    description: root.description,
   });
 }
 

+ 82 - 47
src/views/Bok/Main/Knowledge.vue

@@ -2,32 +2,77 @@
   <el-space :fill="true" direction="vertical" class="knowledge-wrapper">
     <h1>知识树</h1>
     <div class="tree_body">
+      <!-- 搜索框 -->
       <el-input class="tree_input" placeholder="输入关键字进行过滤" v-model="filterText">
       </el-input>
+
+      <!-- 知识树 -->
       <el-tree node-key="id" :data="knowledgeData" :props="defaultProps" :filter-node-method="filterNode"
-        :default-expanded-keys="expandId" ref="tree" :defalt-expand-all>
+        :default-expanded-keys="expandId" ref="tree">
         <template #default="{ node, data }">
           <span class="custom-tree-node">
             <!-- 知识名 -->
-            <span style="width:160px; text-align: left;">{{ node.label }}</span>
-            <!-- 掌握程度(百分比)-->
-            <span style="  display: flex; justify-content: flex-end; align-items: center;">
-              <el-progress :percentage="data.grasp"
-                :status="data.grasp >= 80 ? 'success' : data.grasp >= 60 ? 'warning' : 'danger'" style="width: 100px;">
-              </el-progress>
-              <span>{{ data.grasp }}%</span>
-            </span>
-            <!-- 编辑按钮 -->
+            <span style="text-align: left;">{{ node.label }}</span>
+            <!-- 按钮区 -->
             <span>
-              <i class=" el-icon-plus" @click="append(data)"></i>
+              <i class="el-icon-info" @click="() => { curData = data; detailVisible = true }"></i>
+              <el-divider direction="vertical"></el-divider>
+              <i class=" el-icon-plus" @click="() => { curData = data; addVisible = true }"></i>
               <el-divider direction="vertical"></el-divider>
-              <i class="el-icon-edit" @click="edit(data)"></i>
+              <i class="el-icon-edit" @click="() => { curData = data; editVisible = true }"></i>
               <el-divider direction="vertical"></el-divider>
               <i class="el-icon-delete" @click="remove(node, data)"></i>
             </span>
           </span>
         </template>
       </el-tree>
+
+      <!-- 新建提示框 -->
+      <el-dialog title="新建知识点" v-model="addVisible">
+        <el-form>
+          <el-form-item label="知识点名">
+            <el-input v-model="newData.label" placeholder="请输入知识名"></el-input>
+          </el-form-item>
+          <el-form-item label="掌握要求">
+            <el-input v-model="newData.grasp" placeholder="请输入掌握要求"></el-input>
+          </el-form-item>
+          <el-form-item label="知识描述">
+            <el-input v-model="newData.description" placeholder="请输入知识描述"></el-input>
+          </el-form-item>
+        </el-form>
+        <template #footer>
+          <el-button @click="addVisible = false">取 消</el-button>
+          <el-button type="primary" @click="append">确 定</el-button>
+        </template>
+      </el-dialog>
+
+      <!-- 修改提示框 -->
+      <el-dialog title="修改知识点" v-model="editVisible">
+        <el-form>
+          <el-form-item label="知识点名">
+            <el-input v-model="curData.label" placeholder="请输入知识名"></el-input>
+          </el-form-item>
+          <el-form-item label="掌握要求">
+            <el-input v-model="curData.grasp" placeholder="请输入掌握要求"></el-input>
+          </el-form-item>
+          <el-form-item label="知识描述">
+            <el-input v-model="curData.description" placeholder="请输入知识描述"></el-input>
+          </el-form-item>
+        </el-form>
+        <template #footer>
+          <el-button @click="editVisible = false">取 消</el-button>
+          <el-button type="primary" @click="edit">确 定</el-button>
+        </template>
+      </el-dialog>
+
+      <!-- 详情提示框 -->
+      <el-dialog title="知识点详情" v-model="detailVisible">
+        <el-descriptions size="large" border :column="2">
+          <el-descriptions-item label="知识点名">{{ curData.label }}</el-descriptions-item>
+          <el-descriptions-item label="掌握要求">{{ curData.grasp }}</el-descriptions-item>
+          <el-descriptions-item label="知识描述">{{ curData.description }}</el-descriptions-item>
+        </el-descriptions>
+      </el-dialog>
     </div>
 
   </el-space>
@@ -35,7 +80,7 @@
 
 <script>
 // import axios from 'axios'
-import { knowledgeData } from "../../../utils/knowledgeData";
+import { knowledgeData } from "@/utils/knowledgeData";
 
 export default {
   name: "Knowledge",
@@ -51,28 +96,19 @@ export default {
       if (!value) return true;
       return data.label.includes(value);
     },
-    append(data) {
+    append() {
+      let data = this.curData;
       if (!data.children) {
         data.children = [];
       }
-      this.$prompt('请输入知识点名称', '添加知识点', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        inputPattern: /\S/,
-        inputErrorMessage: '知识点名称不能为空'
-      }).then(({ value }) => {
-        data.children.push({
-          id: data.id * 10 + data.children.length,
-          label: value,
-          grasp: "0"
-        });
-      }).catch((err) => {
-        console.log(err);
-        this.$message({
-          type: 'info',
-          message: '取消输入'
-        });
+      // 知识点名、知识点缩写、知识点描述
+      data.children.push({
+        id: data.id * 10 + data.children.length,
+        label: this.newData.label,
+        grasp: this.newData.grasp,
+        description: this.newData.description,
       });
+      this.addVisible = false;
     },
     remove(node, data) {
       this.$confirm('确认删除该知识点吗?', '删除知识点', {
@@ -91,21 +127,8 @@ export default {
         });
       });
     },
-    edit(data) {
-      this.$prompt('请输入新知识点名称', '修改知识点', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        inputPattern: /\S/,
-        inputErrorMessage: '知识点名称不能为空',
-        inputValue: data.label
-      }).then(({ value }) => {
-        data.label = value;
-      }).catch(() => {
-        this.$message({
-          type: 'info',
-          message: '取消输入'
-        });
-      });
+    edit() {
+      this.editVisible = false;
     },
   },
   data() {
@@ -117,6 +140,18 @@ export default {
         children: 'children',
         label: 'label',
       },
+      // 编辑相关
+      newData: {
+        id: '',
+        label: '',
+        grasp: '',
+        description: '',
+      },
+      curData: {},
+      curNode: {},
+      addVisible: false,
+      editVisible: false,
+      detailVisible: false,
     }
   },
   mounted() {
@@ -136,7 +171,7 @@ export default {
 }
 </script>
 
-<style>
+<style scoped>
 .custom-tree-node {
   flex: 1;
   display: flex;

+ 11 - 5
src/views/Bok/Main/KnowledgeCheck.vue

@@ -7,16 +7,20 @@
                     :current-page="currentPage" :page-sizes="[5, 10, 15, 20]" :page-size="pageSize"
                     layout="total, sizes, prev, pager, next, jumper" :total=checkTotalNum
                     tv-if="checkKnowledgeLis.length !== 0" />
-                <standard-card v-for="(item, index) in checkKnowledgeList" :checkMode="true"
+                <standard-card v-for="(item, index) in checkKnowledgeList"
+                    :checkMode="item.status !== 'REFUSED' && item.status !== 'APPROVED'"
                     v-show="item.status === activeName && item.type === 'standard'" :key="item.id" :standard-v-o="item"
                     :total-num="checkTotalNum" :cur-num="index + (currentPage - 1) * pageSize" />
-                <literature-card v-for="(item, index) in checkKnowledgeList" :checkMode="true"
+                <literature-card v-for="(item, index) in checkKnowledgeList"
+                    :checkMode="item.status !== 'REFUSED' && item.status !== 'APPROVED'"
                     v-show="item.status === activeName && item.type === 'literature'" :key="item.id"
                     :literature-v-o="item" :total-num="checkTotalNum" :cur-num="index + (currentPage - 1) * pageSize" />
-                <monograph-card v-for="(item, index) in checkKnowledgeList" :checkMode="true"
+                <monograph-card v-for="(item, index) in checkKnowledgeList"
+                    :checkMode="item.status !== 'REFUSED' && item.status !== 'APPROVED'"
                     v-show="item.status === activeName && item.type === 'monograph'" :key="item.id"
                     :monograph-v-o="item" :total-num="checkTotalNum" :cur-num="index + (currentPage - 1) * pageSize" />
-                <certification-card v-for="(item, index) in checkKnowledgeList" :checkMode="true"
+                <certification-card v-for="(item, index) in checkKnowledgeList"
+                    :checkMode="item.status !== 'REFUSED' && item.status !== 'APPROVED'"
                     v-show="item.status === activeName && item.type === 'certification'" :key="item.id"
                     :certification-v-o="item" :total-num="checkTotalNum"
                     :cur-num="index + (currentPage - 1) * pageSize" />
@@ -45,6 +49,8 @@ export default {
                 { name: "CREATING", label: "新建知识审核" },
                 { name: "UPDATING", label: "更新知识审核" },
                 { name: "DELETING", label: "删除知识审核" },
+                { name: "REFUSED", label: "已拒绝知识" },
+                { name: "APPROVED", label: "已通过知识" },
             ],
 
             // 分页所需数据
@@ -64,7 +70,7 @@ export default {
                 title: "信息处理 - 数据、程序和系统流程图、程序网络图以及系统资源图表用的文档符号和约定",
                 abstract: "ISO 5807:1985定义了用于数据、程序和系统流程图、程序网络图以及系统资源图表的文档符号和约定。这些符号和约定用于表示数据、程序和系统的逻辑和物理特性,以及它们之间的关系。",
                 link: 'http://www.iso.ch/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=11955',
-                status: 'UPDATING',
+                status: 'REFUSED',
             },
             {
                 type: 'literature', // 文献综述

+ 6 - 6
src/views/Bok/SideBar.vue

@@ -28,10 +28,10 @@
         <i class="el-icon-search"></i>
         <template #title>题目搜索</template>
       </el-menu-item>
-      <el-menu-item index="operation">
+      <!-- <el-menu-item index="operation">
         <i class="el-icon-folder-add"></i>
         <template #title>新建题目</template>
-      </el-menu-item>
+      </el-menu-item> -->
       <el-menu-item index="knowledgeGraph" v-if="false">
         <i class="el-icon-connection"></i>
         <template #title>知识图谱</template>
@@ -40,14 +40,14 @@
         <i class="el-icon-document"></i>
         <template #title>试卷袋</template>
       </el-menu-item>
-      <el-menu-item index="check" v-if="role">
+      <!-- <el-menu-item index="check" v-if="role">
         <i class="el-icon-s-check"></i>
         <template #title>题目审核</template>
-      </el-menu-item>
-      <el-menu-item index="questionRepository">
+      </el-menu-item> -->
+      <!-- <el-menu-item index="questionRepository">
         <i class="el-icon-files"></i>
         <template #title>题库</template>
-      </el-menu-item>
+      </el-menu-item> -->
       <el-menu-item index="my">
         <i class="el-icon-user"></i>
         <template #title>我的交互记录</template>

Some files were not shown because too many files changed in this diff