瀏覽代碼

补充something

Karsa 9 月之前
父節點
當前提交
2ce32ceb67

+ 11 - 5
src/views/semantics_manage/summery/components/promptDetail.vue

@@ -10,15 +10,14 @@
           :disabled="item.type==='public'"
         ></el-input>
       </div>
+      <div class="btn-handle" v-if="item.type!=='public'">
+        <el-button type="primary" @click="handleSavePrompt"><!-- 确定 -->{{$t('Dialog.confirm_btn')}}</el-button>
+          <el-button type="primary" plain ><!-- 取消 -->{{$t('Dialog.cancel_btn')}}</el-button>
+      </div>
     </header>
 
     <div class="main">
       <Editor ref="editorRef" :disabled="item.type==='public'"/>
-
-      <div class="bot" v-if="item.type!=='public'">
-        <el-button type="primary" @click="handleSavePrompt"><!-- 确定 -->{{$t('Dialog.confirm_btn')}}</el-button>
-          <el-button type="primary" plain ><!-- 取消 -->{{$t('Dialog.cancel_btn')}}</el-button>
-      </div>
     </div>
   </div>
 </template>
@@ -90,6 +89,13 @@ export default {
   background: #fff;
   padding: 20px;
   height: 100%;
+  border: 1px solid #C8CDD9;
+  border-radius: 4px;
+  header {
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+  }
   .main {
     margin-top: 30px;
   }

+ 13 - 5
src/views/semantics_manage/summery/components/summeryDetail.vue

@@ -2,10 +2,12 @@
   <div class="detail-wrapper">
     <header>
         原文:
-        <span v-if="summeryInfo.OriginTitle" @click="handleLinkToArticle">{{summeryInfo.OriginTitle}}</span>
+        <span v-if="summeryInfo.OriginTitle">{{summeryInfo.OriginTitle}}</span>
 
-        <span v-else-if="summeryInfo.AiSummaryId" @click="handleLinkToArticle">{{summeryInfo.SaDocTitle}}</span>
+        <!-- 文档库 -->
+        <span v-else-if="summeryInfo.AiSummaryId" class="editsty" @click="handleLinkToArticle">{{summeryInfo.SaDocTitle}}</span>
 
+        <!-- 上传文件 -->
         <span v-else-if="summeryInfo.OpenaiFilePath" class="editsty" @click="previewFileHandle(summeryInfo.OpenaiFilePath)">{{summeryInfo.OpenaiFileName}}</span>
     </header>
     
@@ -48,10 +50,11 @@ export default {
     },
 
     handleLinkToArticle() {
+      sessionStorage.setItem('fileClassify',this.summeryInfo.SaDocClassifyId+'')
+      sessionStorage.setItem('fileId',this.summeryInfo.SaDocId+'')
 
-      this.router.push({
-        path: '/documentPage'
-      })
+      let {href} = this.$router.resolve({path:'/documentPage'});
+      window.open(href, "_blank")
     },
 
     previewFileHandle(url) {
@@ -80,6 +83,8 @@ export default {
     display: flex;
     align-items: center;
     margin-bottom: 15px;
+    border: 1px solid #C8CDD9;
+    border-radius: 4px;
   }
 
   .article-item {
@@ -88,6 +93,9 @@ export default {
     overflow-y: auto;
     flex: 1;
     margin-bottom: 20px;
+    border: 1px solid #C8CDD9;
+    border-radius: 4px;
+    white-space: pre-wrap;
   }
 }
 </style>

+ 43 - 21
src/views/semantics_manage/summery/index.vue

@@ -1,11 +1,7 @@
 <template>
   <div class="aiSummery-index-page">
     <div class="main-left left" id="left">
-				<div class="left_top">
-						<el-button type="primary" @click="goSummeryEdit" v-if="activeTab==='summery'&&permissionBtn.checkPermissionBtn(permissionBtn.semanticPermission.AiSummery_add)"><!-- 添加纪要 -->{{$t('SemanticsManage.AiSummeryPage.btn_add_summery')}}</el-button>
-						<el-button type="primary" @click="handleAddPrompt" v-else-if="activeTab==='prompt'&&permissionBtn.checkPermissionBtn(permissionBtn.semanticPermission.AiSummery_prompt_add)"><!-- 添加提示词 -->{{$t('SemanticsManage.AiSummeryPage.btn_add_prompt')}}</el-button>
-				</div>
-
+				
 				<div class="left-main">
 					<el-tabs v-model="activeTab" @tab-click="changeTab">
 						<el-tab-pane :label="$t('SemanticsManage.AiSummeryPage.tab_summery')" name="summery"/>
@@ -95,14 +91,14 @@
 											alt=""
 											style="width: 15px; height: 14px; margin-right: 8px"
 											@click.stop="editNode(node, data)"
-											v-if="!data.AiSummaryId&&permissionBtn.checkPermissionBtn(permissionBtn.semanticPermission.AiSummery_classify_edit)"
+											v-if="!data.AiSummaryId&&permissionBtn.checkPermissionBtn(permissionBtn.semanticPermission.AiSummery_classify_edit)&&RoleId===data.SysUserId"
 										/>
 										<img
 											src="~@/assets/img/set_m/del.png"
 											alt=""
 											style="width: 14px; height: 14px;"
-											@click.stop="removeNode(node,data)"
-											v-if="!data.AiSummaryId&&permissionBtn.checkPermissionBtn(permissionBtn.semanticPermission.AiSummery_classify_del)"
+											@click.stop="handleDelSummery(data)"
+											v-if="permissionBtn.checkPermissionBtn(permissionBtn.semanticPermission.AiSummery_classify_del)&&RoleId===data.SysUserId"
 										/>
 									</span>
 								</span>
@@ -136,6 +132,12 @@
 					/>
 				</div>
 
+
+				<div class="left-bottom">
+						<el-button type="primary" @click="goSummeryEdit" v-if="activeTab==='summery'&&permissionBtn.checkPermissionBtn(permissionBtn.semanticPermission.AiSummery_add)"><!-- 添加纪要 -->{{$t('SemanticsManage.AiSummeryPage.btn_add_summery')}}</el-button>
+						<el-button type="primary" @click="handleAddPrompt" v-else-if="activeTab==='prompt'&&permissionBtn.checkPermissionBtn(permissionBtn.semanticPermission.AiSummery_prompt_add)"><!-- 添加提示词 -->{{$t('SemanticsManage.AiSummeryPage.btn_add_prompt')}}</el-button>
+				</div>
+
       </div>
 
 			<div class="main-right" id="right">
@@ -176,6 +178,11 @@ export default {
 		promptClassifySection,
 		classifyDia 
 	},
+	computed: {
+		RoleId() {
+			return Number(localStorage.getItem('AdminId'))
+		}
+	},
   data() {
     return {
 			activeTab: 'summery',
@@ -424,7 +431,7 @@ export default {
 		 /* 删除节点校验 */
     async removeNode(node, { AiSummaryClassifyId,AiSummaryId }) {
 
-			const { Data } = await aiSummeryInterface.classifyDelCheck({ AiSummaryClassifyId })
+			const { Data } = await aiSummeryInterface.classifyDelCheck({ AiSummaryClassifyId,AiSummaryId })
 
 			const { DeleteStatus } = Data;
 
@@ -442,8 +449,17 @@ export default {
 
     },
 
+		/* 删除纪要 */
+		handleDelSummery({AiSummaryClassifyId,AiSummaryId}) {
+			this.$confirm('确认删除该纪要吗', this.$t('Confirm.prompt'), {
+				type: 'warning',
+			}).then(() => {
+				this.delApi(AiSummaryClassifyId,AiSummaryId)
+			});
+		},
+
 		 /* 删除方法 */
-    delApi(AiSummaryClassifyId,AiSummaryId,type='') {
+    delApi(AiSummaryClassifyId,AiSummaryId,) {
       aiSummeryInterface
         .classifyDel({
           AiSummaryClassifyId,
@@ -453,7 +469,10 @@ export default {
           if (res.Ret !== 200) return
 					this.$message.success(res.Msg);
 
-					if (!res.Data) this.select_id = '';
+					if (this.select_id){
+						this.select_id = '';
+						this.showSummertDetail = false
+					}
 
 					this.getTreeData();
         });
@@ -485,21 +504,25 @@ export default {
 		min-width: 300px;
 		background: #fff;
 		margin-right: 20px;
-		border: 1px solid #ececec;
 		border-radius: 4px;
-		box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.05);
+		/* box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.05); */
 		height: calc(100vh - 120px);
 		overflow: hidden;
 		position: relative;
 		box-sizing: border-box;
+		border: 1px solid #C8CDD9;
 
-		.left_top {
+		.left-bottom{
 			padding: 20px;
 			background: #fff;
-			border: 1px solid #ececec;
-			box-shadow: 0 3px 6px rgba(0, 0, 0, 0.05);
-			display: flex;
-			justify-content: space-between;
+			position: absolute;
+			bottom: 0;
+			left: 0;
+			right: 0;
+			border-top: 1px solid #C8CDD9;
+			.el-button {
+				width: 100%;
+			}
 		}
 		.left-main {
 			padding: 20px;
@@ -509,7 +532,6 @@ export default {
 		}
 
 		.tree-cont {
-			padding-bottom: 30px;
 			max-height: calc(100vh - 480px);
 			overflow: auto;
 		}
@@ -533,10 +555,10 @@ export default {
 			}
 		}
 		.noDepart {
-			margin: 30px 0;
+			margin-bottom: 30px;
+			margin-top: 20px;
 			display: flex;
 			align-items: center;
-			justify-content: center;
 			color: #409eff;
 			font-size: 16px;
 			cursor: pointer;

+ 15 - 14
src/views/semantics_manage/summery/mixins/classifyTree.js

@@ -9,15 +9,6 @@ export default {
     /* 选中id */
     select_id(newval) {
       if (newval) {
-        let deep_arr = _.cloneDeep(this.treeData);
-        // 查找图表的分类父级id
-
-        // let arr = this.findParentNodeHandle(deep_arr,this.select_node)
-        //   .slice(1)
-        //   .reverse(); // 父的父的父-父的父-父
-        // this.defaultShowNodes = arr;
-        // this.$refs.treeRef.setCurrentKey(this.select_node);
-        
         this.showSummertDetail = true;
       } else {
         this.summeryInfo = {};
@@ -31,9 +22,12 @@ export default {
           (_) => _.AiSummaryId === newval
         );
         this.select_node = search_obj.UniqueCode;
-        this.$refs.treeRef.setCurrentKey(this.select_node);
+        // // 查找分类父级code
+        // let arr = this.findParentNodeHandle(this.select_node).slice(1).reverse(); // 父的父的父-父的父-父
+        // this.defaultShowNodes = arr;
         // 重置筛选状态
         this.select_id = newval;
+        this.changeTreeNode()
       }
     },
   },
@@ -73,18 +67,25 @@ export default {
   methods: {
     /* 根据unicode展开树结构并选中 */
     selectCurrentNode({ code, id, classifyId }) {
-      // let deep_arr = _.cloneDeep(this.treeData);
-      // // 查找分类父级id
+      // let deep_arr = _.cloneDeep(this.classifyData);
+      // 查找分类父级id
       // let arr = this.findParentNodeHandle(deep_arr, code).slice(1).reverse(); // 父的父的父-父的父-父
       // this.defaultShowNodes = arr;
       this.select_node = code;
-      // this.$refs.treeRef.setCurrentKey(this.select_node);
       // // 重置筛选状态
       this.select_id = id;
+      this.changeTreeNode()
     },
 
+    changeTreeNode(){
+      this.$refs.treeRef.setCurrentKey(this.select_node);
+      this.$nextTick(()=>{
+          this.$refs.treeRef.getNode(this.select_node)
+      })
+  },
+
     // 查找树节点所有父节点
-    findParentNodeHandle(arr, code) {
+    async findParentNodeHandle(arr, code) {
       // 遍历取父级code push数组
       for (let i of arr) {
         if (i.UniqueCode === code) {

+ 0 - 0
src/views/semantics_manage/summery/mixins/utils.js


+ 16 - 0
src/views/semantics_manage/summery/summeryEdit.vue

@@ -304,6 +304,17 @@ export default {
       if(res.Ret !== 200) return
 
       this.classifyOptions = res.Data.AllNodes;
+      this.filterNodes(this.classifyOptions)
+    },
+    
+    filterNodes(arr) {
+      arr.forEach(item => {
+        if(item.Children.length) {
+          this.filterNodes(item.Children)
+        }else {
+          item.Children = null
+        }
+      })
     },
 
     selectPrompt(val,type='mine') {
@@ -520,6 +531,8 @@ export default {
       flex-direction: column;
       overflow: hidden;
       overflow-y: auto;
+      border: 1px solid #C8CDD9;
+      border-radius: 4px;
       
       .header {
         justify-content: space-between;
@@ -572,11 +585,14 @@ export default {
     .create-cont {
       background: #fff;
       padding: 20px;
+      border: 1px solid #C8CDD9;
+      border-radius: 4px;
     }
     .result-text {
       height: 250px;
       overflow-y: auto;
       margin-bottom: 10px;
+      white-space: pre-wrap;
     }
     .bottom {
       display: flex;