Browse Source

提交代码

zhangli 2 years ago
parent
commit
9785e5400c

+ 21 - 0
package-lock.json

@@ -52,6 +52,7 @@
         "vue": "2.6.10",
         "vue-clipboard2": "^0.2.1",
         "vue-cropper": "0.4.9",
+        "vue-drag-resize": "^1.5.4",
         "vue-grid-layout": "^2.3.7",
         "vue-i18n": "^8.14.0",
         "vue-json-viewer": "^2.2.8",
@@ -24800,6 +24801,18 @@
       "integrity": "sha512-Uf1i/sCh+ZqSM9hb2YTGRENzJFH+mvDuv8N2brGLjK7UBuF7XDP7zbis8g/dcqZiMojAcBDtObFCn4ERFbRMxQ==",
       "license": "ISC"
     },
+    "node_modules/vue-drag-resize": {
+      "version": "1.5.4",
+      "resolved": "https://registry.npmmirror.com/vue-drag-resize/-/vue-drag-resize-1.5.4.tgz",
+      "integrity": "sha512-SR3U7n6TAZEBgP7zw7bR9mjtAlYBjqIoaWTDPz5HXN/nYhOxKSA31aD7p71fmq1jtyt9reAnCx62valNL9ZAcg==",
+      "dependencies": {
+        "vue-drag-resize": "^1.5.0-rc3"
+      },
+      "engines": {
+        "node": ">= 4.0.0",
+        "npm": ">= 3.0.0"
+      }
+    },
     "node_modules/vue-grid-layout": {
       "version": "2.3.12",
       "resolved": "http://nexus.redxun.cn:18081/repository/npm-redxun-group/vue-grid-layout/-/vue-grid-layout-2.3.12.tgz",
@@ -44866,6 +44879,14 @@
       "resolved": "http://nexus.redxun.cn:18081/repository/npm-redxun-group/vue-cropper/-/vue-cropper-0.4.9.tgz",
       "integrity": "sha512-Uf1i/sCh+ZqSM9hb2YTGRENzJFH+mvDuv8N2brGLjK7UBuF7XDP7zbis8g/dcqZiMojAcBDtObFCn4ERFbRMxQ=="
     },
+    "vue-drag-resize": {
+      "version": "1.5.4",
+      "resolved": "https://registry.npmmirror.com/vue-drag-resize/-/vue-drag-resize-1.5.4.tgz",
+      "integrity": "sha512-SR3U7n6TAZEBgP7zw7bR9mjtAlYBjqIoaWTDPz5HXN/nYhOxKSA31aD7p71fmq1jtyt9reAnCx62valNL9ZAcg==",
+      "requires": {
+        "vue-drag-resize": "^1.5.0-rc3"
+      }
+    },
     "vue-grid-layout": {
       "version": "2.3.12",
       "resolved": "http://nexus.redxun.cn:18081/repository/npm-redxun-group/vue-grid-layout/-/vue-grid-layout-2.3.12.tgz",

+ 1 - 0
package.json

@@ -56,6 +56,7 @@
     "vue": "2.6.10",
     "vue-clipboard2": "^0.2.1",
     "vue-cropper": "0.4.9",
+    "vue-drag-resize": "^1.5.4",
     "vue-grid-layout": "^2.3.7",
     "vue-i18n": "^8.14.0",
     "vue-json-viewer": "^2.2.8",

+ 14 - 0
src/api/knowledge/album.js

@@ -66,4 +66,18 @@ returnData.create=function (parameter) {
     return res
   })
 }
+//  点评/回复知识专辑
+returnData.yelp=function (parameter) {
+  var url= returnData.baseUrl + 'yelp';
+  return rxAjax.postJson(url,parameter).then (res => {
+    return res
+  })
+}
+//  查询点评信息
+returnData.yelpQuery=function (parameter) {
+  var url= returnData.baseUrl + 'yelp/query';
+  return rxAjax.postJson(url,parameter).then (res => {
+    return res
+  })
+}
 export default returnData;

+ 8 - 1
src/api/knowledge/map.js

@@ -28,7 +28,7 @@ returnData.contentTops=function (parameter) {
 //  设置地图学习内容学习状态
 returnData.updateLearningState=function (parameter) {
   var url= returnData.baseUrl + 'updateLearningState';
-  return rxAjax.postJson(url,parameter).then (res => {
+  return rxAjax.get(url,parameter).then (res => {
     return res
   })
 }
@@ -39,5 +39,12 @@ returnData.info=function (parameter) {
     return res
   })
 }
+//  获取数据字典信息
+returnData.commonDic=function (parameter) {
+  var url= '/api-knowledge/common/dic';
+  return rxAjax.get(url,parameter).then (res => {
+    return res
+  })
+}
 
 export default returnData;

+ 5 - 1
src/layouts/MainHead.vue

@@ -107,7 +107,11 @@ export default {
       show: false, //是否打开更多应用
       numerous: 5, //默认展示几个
       customArr: ['customIcon', 'userCustomIcon'], //自定义图标
-      appSystem: [{'key':1,'title':'首页','component':'/knowledgePage/home','menuNavType':2},{'key':2,'title':'知识仓库','component':'/knowledgePage/warehouseIndex','menuNavType':2}], //系统应用
+      appSystem: [{'key':1,'title':'首页','component':'/knowledgePage/home','menuNavType':2},
+                  {'key':2,'title':'知识仓库','component':'/knowledgePage/warehouseIndex','menuNavType':2},
+                  {'key':3,'title':'知识地图','component':'/knowledgePage/mapIndex','menuNavType':2},
+                  {'key':4,'title':'知识专辑','component':'/knowledgePage/albumIndex','menuNavType':2},
+                ], //系统应用
       appSystemMore: [],
       appAdhibition: [], //应用
       keyword: '', //搜索应用

+ 234 - 7
src/views/modules/knowledge/album/detail.vue

@@ -156,29 +156,31 @@
           </div>
           <div class="submitBox">
             <a-input-search
+              v-model:value="yelpContent"
               class="commentAdd"
               placeholder="评论千万条,友善第一条"
               enter-button="提交"
+              maxLength="100"
               size="large"
-             
+              @search="replyAlbum"
             />
           </div>
           <div class="commentList">
             <div class="commentTitle commentPadd">
               点评信息
-              <a-radio-group v-model:value="commentType" button-style="solid" class="titleRight">
+              <a-radio-group v-model:value="commentType" button-style="solid" class="titleRight" @change="changeType">
                 <a-radio-button value="1">全部点评</a-radio-button>
                 <a-radio-button value="2">与我相关</a-radio-button>
               </a-radio-group>
             </div>
             <a-divider class="commentLine"/>
             <div>
-              <div class="albumListClass" v-for="(item, index) in dataList" :key="index">
-                <img v-if="index==0" @click="changeOpen(item)" src="../../../../image/dowmPoint.png" :class="item.open==1?'leftImg':'leftImg leftImgRotate'"/>
+              <div class="albumListClass" v-for="(item, index) in yelpDataList" :key="index">
+                <img v-if="item.replies.length!=0" @click="changeOpen(item)" src="../../../../image/dowmPoint.png" :class="item.open==1?'leftImg':'leftImg leftImgRotate'"/>
                 <img v-else src="../../../../image/dowmPoint.png" class="leftImg" style="opacity: 0;cursor: default;"/>
-                <albumList :item="item" style="flex-grow: 1;"></albumList>
+                <albumList @replyYelp="replyYelp" :item="item" style="flex-grow: 1;"></albumList>
               </div>
-              <div class="getMoreList">
+              <div class="getMoreList" @click="getMoreList" v-if="yelpPageTotle>yelpDataList.length">
                 点击加载更多评论
               </div>
             </div>
@@ -288,6 +290,7 @@ export default {
   },
   data() {
     return {
+      yelpContent:'',
       showDelete:true,//专辑内容是否加移除
       detailDataBase:{
         actionFlag:[]
@@ -379,7 +382,11 @@ export default {
 
       ],
       albumIndex:0,
-      dataList:[]
+      dataList:[],
+      yelpPageNum:1,
+      yelpPageSize:10,
+      yelpDataList:[],
+      yelpPageTotle:0
     }
   },
   mounted() {
@@ -389,6 +396,7 @@ export default {
     if(this.$route.query.pkId) {
       this.pkId = this.$route.query.pkId
       this.getInfo()
+      this.getYelp()
     }
     if(this.isAdd){
       album.approvalTemplate().then((res) => {
@@ -420,6 +428,225 @@ export default {
     this.init()
   },
   methods: {
+    //点击加载更多评论
+    getMoreList(){
+      this.yelpPageNum = this.yelpPageNum+1
+      this.getYelp()
+    },
+    //回复点评
+    replyYelp(data){
+      this.reportYelp(data.content,2,data.yelpId)
+    },
+    //回复专辑
+    replyAlbum(){
+      this.reportYelp(this.yelpContent,1,null)
+    },
+    //修改评论类型
+    changeType(){
+      this.yelpDataList=[]
+      this.getYelp()
+    },
+    //评论列表
+    getYelp(){
+      let getData = {
+        albumId:this.pkId,
+        type:this.commentType,
+        pageNum:this.yelpPageNum,
+        pageSize:this.yelpPageSize
+      }
+      album.yelpQuery(getData).then((res) => {
+        /*res.result.data = [
+          {
+              "pkId": "1607226213988474881",
+              "state": 1,
+              "createName": "夏诗意",
+              "createPhoto": "1607226213988474881",
+              "content": "评论内容",
+              "createTime": "2020-12-01 00:00:00",
+              "replyCount": 13,
+              open:0,
+              replyComment:'',
+              "replies": [
+                  {
+                      "pkId": "1607226213988475555",
+                      "state": 1,
+                      "createName": "夏诗意",
+                      "createPhoto": "1607226213988474881",
+                      "content": "评论内容",
+                      replyComment:'',
+                      "createTime": "2020-12-01 00:00:00"
+                  },{
+                      "pkId": "16072262139888888",
+                      "state": 1,
+                      "createName": "夏诗意1",
+                      "createPhoto": "1607226213988474881",
+                      "content": "评论内容111",
+                      replyComment:'',
+                      "createTime": "2020-12-01 00:00:00"
+                  },{
+                      "pkId": "160712338888881",
+                      "state": 1,
+                      "createName": "夏诗意1",
+                      "createPhoto": "1607226213988474881",
+                      "content": "评论内容111",
+                      replyComment:'',
+                      "createTime": "2020-12-01 00:00:00"
+                  },{
+                      "pkId": "16072262132452888",
+                      "state": 1,
+                      "createName": "夏诗意1",
+                      "createPhoto": "1607226213988474881",
+                      "content": "评论内容111",
+                      replyComment:'',
+                      "createTime": "2020-12-01 00:00:00"
+                  },{
+                      "pkId": "160722624356238888",
+                      "state": 1,
+                      "createName": "夏诗意1",
+                      "createPhoto": "1607226213988474881",
+                      "content": "评论内容111",
+                      replyComment:'',
+                      "createTime": "2020-12-01 00:00:00"
+                  }
+              ]
+          },{
+              "pkId": "1607226213988474881",
+              "state": 1,
+              "createName": "夏诗意",
+              "createPhoto": "1607226213988474881",
+              "content": "评论内容",
+              "createTime": "2020-12-01 00:00:00",
+              "replyCount": 13,
+              open:0,
+              replyComment:'',
+              "replies": [
+                  {
+                      "pkId": "1607226213988475555",
+                      "state": 1,
+                      "createName": "夏诗意",
+                      "createPhoto": "1607226213988474881",
+                      "content": "评论内容",
+                      replyComment:'',
+                      "createTime": "2020-12-01 00:00:00"
+                  },{
+                      "pkId": "160722621396234788",
+                      "state": 1,
+                      "createName": "夏诗意1",
+                      "createPhoto": "1607226213988474881",
+                      "content": "评论内容111",
+                      replyComment:'',
+                      "createTime": "2020-12-01 00:00:00"
+                  },{
+                      "pkId": "16072262133423788",
+                      "state": 1,
+                      "createName": "夏诗意1",
+                      "createPhoto": "1607226213988474881",
+                      "content": "评论内容111",
+                      replyComment:'',
+                      "createTime": "2020-12-01 00:00:00"
+                  },{
+                      "pkId": "160722621334782888",
+                      "state": 1,
+                      "createName": "夏诗意1",
+                      "createPhoto": "1607226213988474881",
+                      "content": "评论内容111",
+                      replyComment:'',
+                      "createTime": "2020-12-01 00:00:00"
+                  },{
+                      "pkId": "1607226218907588",
+                      "state": 1,
+                      "createName": "夏诗意1",
+                      "createPhoto": "1607226213988474881",
+                      "content": "评论内容111",
+                      replyComment:'',
+                      "createTime": "2020-12-01 00:00:00"
+                  }
+              ]
+          },{
+              "pkId": "1607226213988474881",
+              "state": 1,
+              "createName": "夏诗意",
+              "createPhoto": "1607226213988474881",
+              "content": "评论内容",
+              "createTime": "2020-12-01 00:00:00",
+              "replyCount": 13,
+              open:0,
+              replyComment:'',
+              "replies": [
+                  {
+                      "pkId": "1607226213988475555",
+                      "state": 1,
+                      "createName": "夏诗意",
+                      "createPhoto": "1607226213988474881",
+                      "content": "评论内容",
+                      replyComment:'',
+                      "createTime": "2020-12-01 00:00:00"
+                  },{
+                      "pkId": "1607226278443538",
+                      "state": 1,
+                      "createName": "夏诗意1",
+                      "createPhoto": "1607226213988474881",
+                      "content": "评论内容111",
+                      replyComment:'',
+                      "createTime": "2020-12-01 00:00:00"
+                  },{
+                      "pkId": "160722645793488",
+                      "state": 1,
+                      "createName": "夏诗意1",
+                      "createPhoto": "1607226213988474881",
+                      "content": "评论内容111",
+                      replyComment:'',
+                      "createTime": "2020-12-01 00:00:00"
+                  },{
+                      "pkId": "160722621233468288",
+                      "state": 1,
+                      "createName": "夏诗意1",
+                      "createPhoto": "1607226213988474881",
+                      "content": "评论内容111",
+                      replyComment:'',
+                      "createTime": "2020-12-01 00:00:00"
+                  },{
+                      "pkId": "1607226344647428",
+                      "state": 1,
+                      "createName": "夏诗意1",
+                      "createPhoto": "1607226213988474881",
+                      "content": "评论内容111",
+                      replyComment:'',
+                      "createTime": "2020-12-01 00:00:00"
+                  }
+              ]
+          }
+      ]*/
+        res.result.data.forEach(item => {
+          item.open = 0
+          item.replyComment = ''
+          if(item.replies==null){
+            item.replies = []
+          }else{
+            item.replies.forEach(item0 => {
+              item0.replyComment = ''
+              item0.replyLeft = '【@'+item0.createName+'】'
+            })
+          }
+        })
+        this.yelpPageTotle = res.result.totalCount
+        this.yelpDataList = this.yelpDataList.concat(res.result.data)
+      })
+    },
+    //评论回复
+    reportYelp(content,type,yelpId){
+      let postData = {
+        albumId:this.pkId,
+        content:content,
+        type:type
+      }
+      if(yelpId!=null){
+        postData.yelpId = yelpId
+      }
+      album.yelp(postData).then((res) => {
+        
+      })
+    },
     //获取详情
     getInfo(){
       let getData = {pkId:this.pkId}

+ 53 - 90
src/views/modules/knowledge/components/albumList.vue

@@ -4,111 +4,67 @@
       <div slot="actions" key="comment-nested-reply-to" >
         <div class="actionBox">
           {{item.createTime}}
-          <div class="albumCallback" @click="showSubmitBox">
+          <div class="albumCallback" @click="showSubmitBox(item.pkId)">
             <img src="../../../../image/reply.png" class="btnsty"/>
             回复
           </div>
         </div>
-        <div class="submitBoxAlbum" v-show="showSubmit">
+        <div class="submitBoxAlbum" v-show="replyPkid==item.pkId">
           <a-input-search
+            v-model="item.replyComment"
             class="commentAdd"
             placeholder="我也说一句"
             enter-button="提交"
             size="large"
-            @search="onSearch"
+            maxLength="100"
+            @search="reply(-1)"
           />
         </div>
       </div>
-      <a slot="author">{{item.author}}</a>
+      <a slot="author">{{item.createName}}</a>
       <a-avatar
         slot="avatar"
-        :src="'/api/api-system/system/core/sysFile/previewFile?fileId='+item.params.photo"
-        :alt="item.author"
-        v-if="item.params.photo"
-      />
-      <a-avatar
-        slot="avatar"
-        :src="item.params.sex=='male'?header0:header1"
-        :alt="item.author"
-        v-else
+        :src="'/api/api-system/system/core/sysFile/previewFile?fileId='+item.createPhoto"
+        :alt="item.createName"
       />
       <p slot="content" class="contentBox">
-        {{ item.summary }}
+        {{ item.content }}
       </p>
       <div v-if="item.open==1">
-        <a-comment style="margin-top:0.6vw">
+        <a-comment v-if="index0<2||showAll" style="margin-top:0.6vw" v-for="(item0, index0) in item.replies" :key="index">
           <div slot="actions" key="comment-nested-reply-to">
             <div class="actionBox">
-              {{item.createTime}}
-              <div class="albumCallback" @click="showSubmitBox">
+              {{item0.createTime}}
+              <div class="albumCallback" @click="showSubmitBox(item0.pkId)">
                 <img src="../../../../image/reply.png" class="btnsty"/>
                 回复
               </div>
             </div>
-            <div class="submitBoxAlbum" v-show="showSubmit">
+            <div class="submitBoxAlbum" v-show="replyPkid==item0.pkId">
               <a-input-search
-                class="commentAdd"
+                v-model="item0.replyComment"
+                class="commentAdd commentAddlevel2"
                 placeholder="我也说一句"
                 enter-button="提交"
                 size="large"
-                @search="onSearch"
-              />
+                maxLength="100"
+                @search="reply(index0)"
+              >
+              <div slot="prefix" style="font-size: 1.14583vw;">{{item0.replyLeft}}</div>
+              </a-input-search>
             </div>
           </div>
-          <a slot="author">{{item.author}}</a>
-          <a-avatar
-            slot="avatar"
-            :src="'/api/api-system/system/core/sysFile/previewFile?fileId='+item.params.photo"
-            :alt="item.author"
-            v-if="item.params.photo"
-          />
+          <a slot="author">{{item0.createName}}</a>
           <a-avatar
             slot="avatar"
-            :src="item.params.sex=='male'?header0:header1"
-            :alt="item.author"
-            v-else
+            :src="'/api/api-system/system/core/sysFile/previewFile?fileId='+item0.createPhoto"
+            :alt="item0.createName"
           />
           <p slot="content" class="contentBox">
-            {{ item.summary }}
+            {{ item0.content }}
           </p>
         </a-comment>
-        <a-comment style="margin-top:0.6vw">
-          <div slot="actions" key="comment-nested-reply-to">
-            <div class="actionBox">
-              {{item.createTime}}
-              <div class="albumCallback" @click="showSubmitBox">
-                <img src="../../../../image/reply.png" class="btnsty"/>
-                回复
-              </div>
-            </div>
-            <div class="submitBoxAlbum" v-show="showSubmit">
-              <a-input-search
-                class="commentAdd"
-                placeholder="我也说一句"
-                enter-button="提交"
-                size="large"
-                @search="onSearch"
-              />
-            </div>
-          </div>
-          <a slot="author">{{item.author}}</a>
-          <a-avatar
-            slot="avatar"
-            :src="'/api/api-system/system/core/sysFile/previewFile?fileId='+item.params.photo"
-            :alt="item.author"
-            v-if="item.params.photo"
-          />
-          <a-avatar
-            slot="avatar"
-            :src="item.params.sex=='male'?header0:header1"
-            :alt="item.author"
-            v-else
-          />
-          <p slot="content" class="contentBox">
-            {{ item.summary }}
-          </p>
-        </a-comment>
-        <div class="getMore">查看全部13条回复&nbsp;&nbsp;></div>
+        <div @click="showMoreData" class="getMore" v-if="item.replies.length>2&&showAll!=true">查看全部{{item.replies.length}}条回复&nbsp;&nbsp;></div>
       </div>
     </a-comment>
   </div>
@@ -134,35 +90,26 @@ export default {
   },
   data() {
     return {
-      showSubmit:false,
+      showAll:false,
       delVisible:false,
       header0,
       header1,
-      typeArr:['pdf','word','excel','ppt','其他']
+      typeArr:['pdf','word','excel','ppt','其他'],
+      replyPkid:''
     }
   },
   created() {
-    
-    /*if(this.type=='list0'||this.type=='list1'){
-      if(this.item.documentName!=null){
-        let typeName = this.item.documentName.split('.')[(this.item.documentName.split('.').length-1)]
-        if(typeName.indexOf("pdf")>-1){
-          this.item.documentType = 1
-        }else if(typeName.indexOf("doc")>-1){
-          this.item.documentType = 2
-        }else if(typeName.indexOf("xls")>-1){
-          this.item.documentType = 3
-        }else if(typeName.indexOf("ppt")>-1){
-          this.item.documentType = 4
-        }else{
-          this.item.documentType = 5
-        }
-      }
-    }*/
   },
   methods: {
-    showSubmitBox(){
-      this.showSubmit=!this.showSubmit
+    showMoreData(){
+      this.showAll = true
+    },
+    showSubmitBox(pkId){
+      if(this.replyPkid==pkId){
+        this.replyPkid = ''
+      }else{
+        this.replyPkid = pkId
+      }
     },
     lookDetail(data){
       if(this.type=='list0'||this.type=='list1'){
@@ -216,6 +163,19 @@ export default {
         path: '/knowledgePage/knowledgeAddUpdate',
         query: { pkId: item.pkId } 
       })
+    },
+    reply(num){
+      let content = ''
+      if(num==-1){
+        content = this.item.replyComment
+      }else{
+        content = this.item.replies[num].replyLeft+this.item.replies[num].replyComment
+      }
+      let replyData={
+        content:content,
+        yelpId:this.replyPkid
+      }
+      this.$emit('replyYelp',replyData);
     }
   }
 }
@@ -288,6 +248,9 @@ export default {
   font-size: 1.14583vw;
   border-radius: 0.41666vw;
 }
+.commentAddlevel2 /deep/.ant-input-lg{
+  padding-left: 8vw;
+}
 .commentAdd /deep/.ant-input-search-button{
   font-size: 1.14583vw;
   background-color: #406cc4;

+ 1 - 1
src/views/modules/knowledge/components/pageBar.vue

@@ -34,7 +34,7 @@ export default {
     return {
       pageNum:1,
       pageList:[],
-      inputNum:1,
+      inputNum:'',
       total:0,
     }
   },

+ 62 - 178
src/views/modules/knowledge/components/pageListMap.vue

@@ -1,121 +1,75 @@
 <template>
   <div>
-    <div class="listItem">
-      <div v-if="type!='list1'||showHeader">
-        <div v-if="type!='list0'">
-          <img v-if="item.uploaderHead==null||item.uploaderHead==''" class="listHead" :src="header0"/>
-          <img v-else class="listHead" :src="item.uploaderHead"/>
+    <div v-if="item.type==2">
+      <div class="listItem">
+        <div>
+          <img class="listHead" :src="'/api/api-system/system/core/sysFile/previewFile?fileId='+item.authorHead"/>
         </div>
-        <div v-else>
-          <img v-if="item.params.photo"  class="listHead" :src="'/api/api-system/system/core/sysFile/previewFile?fileId='+item.params.photo"/>
-          <img v-else class="listHead" :src="item.params.sex=='male'?header0:header1"/>
+        <span class="listName">{{item.author}}</span>
+        <div class="lookBox btnSmall" @click="lookDetail(item)">
+          <img src="../../../../image/look.png"/>
+          <span>查看</span>
         </div>
-      </div>
-      <span class="listName" v-if="type!='list1'||showHeader">{{item.uploaderName?item.uploaderName:item.author}}</span>
-      <div class="listTitle1" v-if="type=='list1'&&!showHeader">
-        {{item.titles}}
-        <div v-if="approval" style="display: inline-block;">
-          <span v-if="item.approvalStatus==4||item.approvalStatus==2" style="color: #F84E4C;" class="baseSpan">(审核进度:驳回)</span>
-          <span v-if="item.approvalStatus==1||item.approvalStatus==3" style="color: #FF900D;" class="baseSpan">(审核进度:审核中)</span>
-          <span v-if="item.approvalStatus==5" style="color: #FF900D;" class="baseSpan">(审核进度:通过)</span>
+        <div class="lookBox btnSmall" @click="download(item)" v-if="item.attachment">
+          <img src="../../../../image/download.png"/>
+          <span>下载</span>
         </div>
       </div>
-      <div class="lookBox btnSmall" @click="lookDetail(item)" v-if="type!='list1'||(type=='list1'&&item.approvalStatus!=4&&item.approvalStatus!=2)">
-        <img src="../../../../image/look.png"/>
-        <span>查看</span>
-      </div>
-      <div class="lookBox btnSmall" @click="download(item)" v-if="item.attachment&&(type=='list0'||(type=='list1'&&item.approvalStatus!=4&&item.approvalStatus!=2))">
-        <img src="../../../../image/download.png"/>
-        <span>下载</span>
+      <div class="listItem listTitle">
+        {{item.titles}}<div v-if="item.state==0" class="studyType0">未学习</div><div v-else class="studyType1">已学习</div>
       </div>
-      <div class="lookBox btnSmall" @click="deleteData(item)" v-if="type=='list1'&&(item.approvalStatus==4||item.approvalStatus==2)">
-        <img src="../../../../image/del.png"/>
-        <span>删除</span>
+      <div class="listItem listContent" v-if="item.summary!=null">
+        {{item.summary}}
       </div>
-      <div class="lookBox btnSmall" v-if="type=='list1'&&(item.approvalStatus==4||item.approvalStatus==2)" @click="jump(item)">
-        <img src="../../../../image/edit.png"/>
-        <span>编辑</span>
-      </div>
-    </div>
-    <div class="listItem listTitle" v-if="type!='list1'&&type!='list0'" v-html="item.documentTitle">
-    </div>
-    <div class="listItem listTitle" v-if="type=='list0'&&showHeader">
-      {{item.titles}}<div class="studyType0">未学习</div><div class="studyType1">已学习</div>
-    </div>
-    <div class="listItem listContent" v-if="type=='list0'||type=='list1'">
-      {{item.documentRemark}}
-    </div>
-    <div class="listItem listContent" style="display:flex" v-if="type=='home'&&item.documentRemark!=''">
-      <div style="white-space: nowrap;">摘要:</div>
-      <div class="documentRemarkBox" v-html="item.documentRemark.replaceAll('\n\r','</br>').replaceAll('\r\n','</br>').replaceAll('\n','</br>').replaceAll('\r','</br>')"></div>
-    </div>
-    <div class="listItem listContent"  v-if="type=='home'">
-      位于:{{item.documentPath}}
-    </div>
-    <div class="listItem listBottom"  v-if="type=='home'">
-      <img v-if="item.documentType==1" src="../../../../image/fileType1.png"/>
-      <img v-else-if="item.documentType==2" src="../../../../image/fileType2.png"/>
-      <img v-else-if="item.documentType==3" src="../../../../image/fileType3.png"/>
-      <img v-else-if="item.documentType==4" src="../../../../image/fileType4.png"/>
-      <img v-else src="../../../../image/fileType0.png"/>
-      <span v-if="item.documentType<5">{{typeArr[(item.documentType-1)]}}</span>
-      <span v-else>{{typeArr[4]}}</span>
-      <span class="listTime">{{item.uploadTime}}</span>
-    </div>
-    <div class="listItem listBottom1" v-if="type=='list1'">
-      <div v-for="(item0, index) in item.categoryArr" :key="index">
-        <div>
-          {{item0}}
+      <div class="listItem listBottom1" v-if="item.categoryArr.length!=0">
+        <div v-for="(item0, index) in item.categoryArr" :key="index">
+          <div>
+            {{item0}}
+          </div>
+          <a-divider style="margin-top: 0.5vw;" v-if="index!=(item.categoryArr.length-1)" class="lineBox" type="vertical" />
         </div>
-        <a-divider v-if="index!=(item.categoryArr.length-1)" class="lineBox" type="vertical" />
       </div>
-    </div>
-    <div class="listItem listBottom" v-if="type=='list0'||type=='list1'">
-      <template v-if="item.documentName">
+      <div class="listItem listBottom">
+        <template>
+          <div>
+            <img v-if="item.documentType==1" src="../../../../image/fileType1.png"/>
+            <img v-else-if="item.documentType==2" src="../../../../image/fileType2.png"/>
+            <img v-else-if="item.documentType==3" src="../../../../image/fileType3.png"/>
+            <img v-else-if="item.documentType==4" src="../../../../image/fileType4.png"/>
+            <img v-else src="../../../../image/fileType0.png"/>
+            <span v-if="item.documentType<5">{{typeArr[(item.documentType-1)]}}</span>
+            <span v-else>{{typeArr[4]}}</span>
+          </div>
+          <a-divider class="lineBox" type="vertical" />
+        </template>
         <div>
-          <img v-if="item.documentType==1" src="../../../../image/fileType1.png"/>
-          <img v-else-if="item.documentType==2" src="../../../../image/fileType2.png"/>
-          <img v-else-if="item.documentType==3" src="../../../../image/fileType3.png"/>
-          <img v-else-if="item.documentType==4" src="../../../../image/fileType4.png"/>
-          <img v-else src="../../../../image/fileType0.png"/>
-          <span v-if="item.documentType<5">{{typeArr[(item.documentType-1)]}}</span>
-          <span v-else>{{typeArr[4]}}</span>
+          <img src="../../../../image/lookTime.png"/>
+          <span>{{item.viewNum}}</span>
         </div>
-        <a-divider class="lineBox" type="vertical" />
-      </template>
-      <div>
-        <img src="../../../../image/lookTime.png"/>
-        <span>{{item.viewNum}}</span>
+        <div class="listTime">{{item.uploadTime}}</div>
       </div>
-      <div class="listTime">{{item.uploadTime}}</div>
     </div>
-    <a-modal
-      title=""
-      :visible="delVisible"
-      :confirm-loading="false"
-      class="delModal"
-      :footer="null"
-      :closable="false"
-      dialogClass="delBox"
-    >
-      <div class="delBoxMain">
-        <img src="../../../../image/confirm.png" class="confirmImg"/>
-        <p class="confirmTitle">确认要删除这个知识内容吗?</p>
-        <p class="confirmContent">您删除后的知识内容将无法恢复,请慎重操作。</p>
-        <div>
-          <div class="btnConfirmOk" @click="confirmOk">确认</div>
-          <div class="btnConfirmCancel" @click="closeDel">取消</div>
+    <div v-else>
+      <div class="listItem">
+        <span class="listName" style="margin-left:0px">
+          <span style="font-weight: 550;">{{item.outerContentName}}</span>
+          <div v-if="item.state==0" class="studyType0">未学习</div><div v-else class="studyType1">已学习</div>
+        </span>
+        <div class="lookBox btnSmall" @click="lookDetail(item)">
+          <img src="../../../../image/look.png"/>
+          <span>查看</span>
         </div>
       </div>
-    </a-modal>
+      <div class="listItem listBottom1" style="margin-top: 0.3vw;">
+        位于:{{item.outerSystemName}}
+      </div>
+    </div>
   </div>
 </template>
 
 <script>
 import header0 from '../../../../image/header0.png'
 import header1 from '../../../../image/header1.png'
-import home from '@/api/knowledge/home'
-import contentData from '@/api/knowledge/contentData'
 import {mapState} from "vuex";
 export default {
   props: {
@@ -150,77 +104,24 @@ export default {
     }
   },
   created() {
-    
-    /*if(this.type=='list0'||this.type=='list1'){
-      if(this.item.documentName!=null){
-        let typeName = this.item.documentName.split('.')[(this.item.documentName.split('.').length-1)]
-        if(typeName.indexOf("pdf")>-1){
-          this.item.documentType = 1
-        }else if(typeName.indexOf("doc")>-1){
-          this.item.documentType = 2
-        }else if(typeName.indexOf("xls")>-1){
-          this.item.documentType = 3
-        }else if(typeName.indexOf("ppt")>-1){
-          this.item.documentType = 4
-        }else{
-          this.item.documentType = 5
-        }
-      }
-    }*/
+  
   },
   methods: {
-    lookDetail(data){
-      if(this.type=='list0'||this.type=='list1'){
-        if(this.approval) {
-          this.$router.push({
-            name: "knowledgeAuditInfo",
-            query: {
-                pkId: data.pkId
-            }
-          })
-        } else {
-          this.$router.push({
-            name: "knowledgeContentInfo",
-            query: {
-                pkId: data.pkId
-            }
-          })
-        }
-      }else{
-        let getData = {
-          documentId:data.documentId,
-          userId:this.user.userId,
-          secretType:data.secretType
-        }
-        home.viewApi(getData).then((res) => {
-          window.open(res.data)
+    lookDetail(){
+      if(this.item.type==2){
+        this.$router.push({
+          name: "knowledgeContentInfo",
+          query: {
+              pkId: this.item.pkId,
+              type:1
+          }
         })
+      }else{
+        window.open(this.item.outerAccessUrl)
       }
     },
     download(data){
       window.open('/api/api-system/system/core/sysFile/previewFile?fileId='+data.attachment)
-    },
-    closeDel(){
-      this.delVisible = false
-    },
-    confirmOk(){
-      let param = {
-        knowledgeId:this.item.pkId
-      }
-      this.delVisible = false
-      contentData.deleteKnowledge(param).then((res) => {
-        this.$message.success('删除成功')
-        this.$emit('delRefresh')
-      })
-    },
-    deleteData(){
-      this.delVisible = true
-    },
-    jump(item){
-      this.$router.push({
-        path: '/knowledgePage/knowledgeAddUpdate',
-        query: { pkId: item.pkId } 
-      })
     }
   }
 }
@@ -267,13 +168,6 @@ export default {
   font-size: 1.04vw;
   margin-top: 1.0vw;
 }
-.listTitle1{
-  font-weight: 600;
-  color: #030303;
-  font-size: 1.04vw;
-  margin-top: 0.5vw;
-  display: inline-block;
-}
 .listContent{
   color: #202124;
   font-size: 0.9375vw;
@@ -294,13 +188,13 @@ export default {
 }
 .listBottom div{
   float: left;
+  display: flex;
 }
 .listTime{
   margin-left: 1.5625vw!important;
 }
 .listBottom img{
   width: 1vw;
-  float: left;
   margin-top: 0.1vw;
 }
 .listBottom span{
@@ -310,10 +204,6 @@ export default {
   margin: 0px 0.8333vw;
   margin-top: 0.34vw;
 }
-.baseSpan{
-  font-size: 0.9375vw;
-  margin-left: 0.52vw;
-}
 .studyType0{
   width: 3.02vw;
   height: 1.25vw;
@@ -338,10 +228,4 @@ export default {
   margin-left: 0.52vw;
   font-weight: normal;
 }
-.documentRemarkBox{
-  display: -webkit-box;
-  -webkit-box-orient: vertical;
-  -webkit-line-clamp: 4;
-  overflow: hidden;
-}
 </style>

+ 55 - 82
src/views/modules/knowledge/map/index.vue

@@ -6,10 +6,23 @@
       </div>
     </div>
     <div class="rightMenu">
-      <div class="pointBox" v-for="(item, index) in pointArr" :key="index" 
-      :style="{'top':item.top,'left':item.left}" @mouseover="pointOver(index)" @mouseout="pointOut">
-        <div v-if="overArr.indexOf(index)>-1" class="pointTextOver"><p>{{ dataArr[showBoxArr.indexOf(index)]['outerContentName'] }}</p>(已学习)</div>
-        <div v-else-if="showBoxArr.indexOf(index)>-1" class="pointText" >{{dataArr[showBoxArr.indexOf(index)]['outerContentName']}}</div>
+      <div @click="changeState(dataArr[showBoxArr.indexOf(index)])" class="pointBox" v-for="(item, index) in pointArr" :key="index" :style="{'top':item.top,'left':item.left}" @mouseover="pointOver(index)" @mouseout="pointOut">
+        <div v-if="overArr.indexOf(index)>-1" class="pointTextOver"><p>
+          <a-tooltip placement="top">
+            <template slot="title">
+              <span>{{ dataArr[showBoxArr.indexOf(index)]['outerContentName'] }}</span>
+            </template>
+            {{ dataArr[showBoxArr.indexOf(index)]['outerContentName'] }}
+          </a-tooltip>
+        </p>(已学习)</div>
+        <div v-else-if="showBoxArr.indexOf(index)>-1" class="pointText" >
+          <a-tooltip placement="top">
+            <template slot="title">
+              <span>{{dataArr[showBoxArr.indexOf(index)]['outerContentName']}}</span>
+            </template>
+            {{dataArr[showBoxArr.indexOf(index)]['outerContentName']}}
+          </a-tooltip>
+        </div>
         <div v-if="showBoxArr.indexOf(index)>-1">
           <img v-if="overArr.indexOf(index)>-1" src="../../../../image/map/list_bg_over.png" class="pointTextBg"/>
           <img v-else-if="pointNum==index" src="../../../../image/map/list_bg_over.png" class="pointTextBg"/>
@@ -81,33 +94,9 @@ export default {
       pointNum:-1,
       titleIndex:0,
       titleArr:[
-        {
-          "pkId": "1607226213988474881",
-          "name": "销售新人0"
-        },
-        {
-          "pkId": "1607226213988474811",
-          "name": "销售新人1"
-        }
       ],
-      menuArr:[{value:"1",name:'新人地图'},{value:"2",name:'岗位地图'},{value:"3",name:'制度地图'},{value:"4",name:'方案地图'}],
+      menuArr:[],
       menuDataArr:[
-        {
-            "pkId": "1607226213988474881",
-            "name": "第一天"
-        },
-        {
-            "pkId": "1607226213988474883",
-            "name": "第一周"
-        },
-        {
-            "pkId": "1607226213988474884",
-            "name": "第一月"
-        },
-        {
-            "pkId": "1607226213988474889",
-            "name": "第二月"
-        }
       ],
       actionMenu:0,
       imgArrX:[
@@ -161,53 +150,6 @@ export default {
         {left:'80.7004vw',top:'13.6vw',img:'box_block',imgNum:0},
       ],
       dataArr:[
-        {
-          "pkId": "1607226213988474883",
-          "type": "1",
-          "state": "0",
-          "outerSystemName": "OA系统",
-          "outerContentName": "新员工上邮箱开通新员工上邮箱开通",
-          "outerAccessUrl": "http://portal.hkcqjy.com.cn:8080/oa/login"
-        },
-        {
-          "pkId": "1607226213988474883",
-          "type": "1",
-          "state": "1",
-          "outerSystemName": "OA系统",
-          "outerContentName": "测试知识内容",
-          "outerAccessUrl": "http://portal.hkcqjy.com.cn:8080/oa/login"
-        },
-        {
-          "pkId": "1607226213988474883",
-          "type": "1",
-          "state": "0",
-          "outerSystemName": "OA系统",
-          "outerContentName": "知识内容测试展示",
-          "outerAccessUrl": "http://portal.hkcqjy.com.cn:8080/oa/login"
-        },
-        {
-          "pkId": "1607226213988474883",
-          "type": "1",
-          "state": "1",
-          "outerSystemName": "OA系统",
-          "outerContentName": "知识内容新的测试",
-          "outerAccessUrl": "http://portal.hkcqjy.com.cn:8080/oa/login"
-        },
-        {
-          "pkId": "1607226213988474883",
-          "type": "1",
-          "state": "0",
-          "outerSystemName": "OA系统",
-          "outerContentName": "知识内容新的测试8888",
-          "outerAccessUrl": "http://portal.hkcqjy.com.cn:8080/oa/login"
-        },{
-          "pkId": "1607226213988474883",
-          "type": "1",
-          "state": "0",
-          "outerSystemName": "OA系统",
-          "outerContentName": "知识内容新的测试8888",
-          "outerAccessUrl": "http://portal.hkcqjy.com.cn:8080/oa/login"
-        }
       ],
       showBoxArr:[],
       overArr:[],
@@ -215,15 +157,30 @@ export default {
     }
   },
   created() {
+    let getData={'alias':'KNOWLEDGE_MAP'}
+    map.commonDic(getData).then((res) => {
+      if(res.code == 200) {
+        this.menuArr = res.data
+        this.getType(this.menuArr[this.actionMenu].value)
+      }
+    })
     this.showData()
   },
   methods: {
     //设置地图学习内容学习状态
-    changeState(pkId){
-      let postData = {pkId:pkId}
+    changeState(data){
+      if(data.state==1){
+        return false
+      }
+      let postData = {pkId:data.pkId}
       map.updateLearningState(postData).then((res) => {
         if(res.code == 200) {
-          
+          if(data.type==1){
+            window.open(data.outerAccessUrl)
+          }else{
+            window.open('knowledgeContentInfo?pkId='+data.knowledgeId)
+          }
+          this.getContentTops(this.menuDataArr[this.menuIndex].pkId)
         }
       })
     },
@@ -233,6 +190,8 @@ export default {
       map.listOfType(getData).then((res) => {
         if(res.code == 200) {
           this.titleArr = res.data
+          this.titleIndex = 0
+          this.getRoutes(this.titleArr[this.titleIndex].pkId)
         }
       })
     },
@@ -242,15 +201,23 @@ export default {
       map.routes(getData).then((res) => {
         if(res.code == 200) {
           this.menuDataArr = res.data
+          this.menuIndex = 0
+          this.getContentTops(this.menuDataArr[this.menuIndex].pkId)
         }
       })
     },
     //  获取知识学习路径
-    getRoutes(pkId){
-      let getData = {pkId:pkId}
+    getContentTops(pkId){
+      let getData = {routeId:pkId,tops:10}
       map.contentTops(getData).then((res) => {
         if(res.code == 200) {
+          res.data.forEach(element => {
+            if(element.type==2){
+              element.outerContentName = element.titles
+            }
+          });
           this.dataArr = res.data
+          this.showData()
         }
       })
     },
@@ -271,7 +238,10 @@ export default {
     //点击更多
     goMore(){
       this.$router.push({
-        name: "mapList"
+        name: "mapList",
+        query: {
+          pkId: this.titleArr[this.titleIndex].pkId
+        }
       })
     },
     //鼠标经过知识
@@ -284,12 +254,15 @@ export default {
     },
     changeType(num){
       this.titleIndex = num
+      this.getRoutes(this.titleArr[this.titleIndex].pkId)
     },
     leftActionMenu(num){
       this.actionMenu = num
+      this.getType(this.menuArr[this.actionMenu].value)
     },
     rightActionMenu(num){
       this.menuIndex = num
+      this.getContentTops(this.menuDataArr[this.menuIndex].pkId)
     }
   }
 }

+ 46 - 413
src/views/modules/knowledge/map/list.vue

@@ -7,12 +7,12 @@
       </div>
     </div>
     <div class="tabBoxContent">
-      <div v-if="index==0||(index==1&&number1Bas!=0)||(index==2&&number2Bas!=0)" v-for="(item, index) in tapArr" :key="index" @click="changeAction(index)">
-        <span>{{index==0?categoryName:item}}({{index==0?number0:index==1?number1:number2}})</span>
+      <div v-for="(item, index) in dataDetail.routes" :key="index" @click="changeAction(index)">
+        <span>{{item.name}}{{ item.state==0?'(未完成)':'(已完成)' }}</span>
         <img v-if="tapAction==index" src="../../../../image/tabAction.png"/>
       </div>
     </div>
-    <div class="searchBoxContent" v-show="(tapAction==0)">
+    <div class="searchBoxContent">
       <div class="noDataBox" v-if="dataList.length==0">
         <img src="../../../../image/noDataNew.png" class="noData"/>
         <p class="noDataText">暂无搜索结果</p>
@@ -24,53 +24,20 @@
             <a-divider class="bottomBorder" v-if="(index!=dataList.length-1)"/>
           </div>
         </div>
-        <pageBar ref="pageBarref0" @pageChange="pageChange0" :total="total" :pageSize="pageSize" class="pageBar"></pageBar>
-      </div>
-    </div>
-    <div class="searchBoxContent" v-show="(tapAction==1)">
-      <div class="noDataBox" v-if="dataList1.length==0">
-        <img src="../../../../image/noDataNew.png" class="noData"/>
-        <p class="noDataText">暂无搜索结果</p>
-      </div>
-      <div v-else class="DataBoxContent">
-        <div class="listBox">
-          <div class="listBoxItemContent listItemClass" v-for="(item, index) in dataList1" :key="index">
-            <pageList :item="item" type="list1" :approval="true" @delRefresh="delRefresh"></pageList>
-            <a-divider class="bottomBorder" v-if="(index!=dataList1.length-1)"/>
-          </div>
-        </div>
-        <pageBar ref="pageBarref1" @pageChange="pageChange1" :total="total" :pageSize="pageSize" class="pageBar"></pageBar>
-      </div>
-    </div>
-    <div class="searchBoxContent" v-show="(tapAction==2)">
-      <div class="noDataBox" v-if="dataList2.length==0">
-        <img src="../../../../image/noDataNew.png" class="noData"/>
-        <p class="noDataText">暂无搜索结果</p>
-      </div>
-      <div v-else class="DataBoxContent">
-        <div class="listBox">
-          <div class="listBoxItemContent listItemClass" v-for="(item, index) in dataList2" :key="index">
-            <pageList :item="item" type="list1"></pageList>
-            <a-divider class="bottomBorder" v-if="(index!=dataList2.length-1)"/>
-          </div>
-        </div>
-        <pageBar ref="pageBarref2" @pageChange="pageChange2" :total="total" :pageSize="pageSize" class="pageBar"></pageBar>
+        <pageBar ref="pageBarref" @pageChange="pageChange" :total="total" :pageSize="pageSize" class="pageBar"></pageBar>
       </div>
     </div>
   </div>
 </template>
 
 <script>
-import contentData from '@/api/knowledge/contentData'
-import api from '@/api/knowledge/warehouseIndex'
-import search from '../components/search'
 import pageBar from '../components/pageBar'
 import pageList from '../components/pageListMap'
 import {mapState} from "vuex";
+import map from '@/api/knowledge/map'
 export default {
   name: 'contentData',
   components: {
-    search,
     pageBar,
     pageList
   },
@@ -81,315 +48,38 @@ export default {
   },
   data() {
     return {
-      dataDetail:{
-        "pkId": "1607226213988474881",
-        "title": "新人地图-销售岗位",
-        "contentTotal": 99,
-        "routes": [
-            {
-                "name": "第一天",
-                "state": "0",
-                "contents": [
-                    {
-                        "pkId": "1607226213988474883",
-                        "type": "1",
-                        "state": "0",
-                        "outerSystemName": "OA系统",
-                        "outerContentName": "新员工上邮箱开通",
-                        "outerAccessUrl": "http://portal.hkcqjy.com.cn:8080/oa/login"
-                    }
-                ]
-            }
-        ]
-      },
-      searchData:{
-        range:0,
-        keyword:''
-      },
-      categoryId:'',
-      defaultCascader:[],
-      categoryValue:[],
-      categoryDataArr:[],
+      dataDetail:{},
+      tapArr:['','我的审批','我的上传'],
+      tapAction:0,
       categoryName:'请选择分类',
-      userData:this.user,
       pageNum:1,
-      pageNum0:1,
-      pageNum1:1,
-      pageNum2:1,
-      total:2,
+      total:10,
       pageSize:10,
-      tapArr:['','我的审批','我的上传'],
-      number0:0,
-      number1:0,
-      number2:0,
-      number1Bas:0,
-      number2Bas:0,
-      myuploadNum:0,
-      tapAction:0,
       dataList:[
       ],
-      dataList1:[
-      ],
-      dataList2:[
-      ],
-      options: [],
-      type:null,
-      typeName:["最新知识","最热知识","文档排行","工作成果","经典案例","维基排行"]
+      detailPkId:''
     }
   },
-  created() {
-    if(this.$route.query.type!=undefined){
-      this.type=this.$route.query.type
-      this.categoryName=this.typeName[this.type]
-    }
-    if(this.$route.query.categoryId!=undefined){
-      this.categoryId=this.$route.query.categoryId
-      if(this.$route.query.parentp!=undefined){
-        this.defaultCascader=[this.$route.query.parentp,this.$route.query.parent,this.$route.query.categoryId]
-      }else if(this.$route.query.parent!=0){
-        this.defaultCascader=[this.$route.query.parent,this.$route.query.categoryId]
-      }else{
-        this.defaultCascader.push(this.$route.query.categoryId)
-      }
-      console.log(this.defaultCascader)
-      this.categoryName=this.$route.query.categoryName
-    }
-    this.getBaseData()
-    this.getData(false)
-  },
-  methods: {
-    //搜索返回
-    searchResult(data){
-      this.searchData=data
-      this.getData(true)
-    },
-   popupVisibleChange(value){
-    if(value==false){
-      //if(this.type!=0&&this.type!=1&&this.type!=2&&this.type!=5){
-        this.categoryName = this.categoryDataArr[this.categoryDataArr.length-1]['label']
-        this.type = null
-      //}
-      this.getData(true);
-    }
-   },
-   filter(inputValue, path) {
-    return path.some(option => option.label.toLowerCase().indexOf(inputValue.toLowerCase()) > -1);
-   },
-   addData(){
-    this.$router.push({
-      name: "knowledgeAddUpdate"
-    })
-   },
-   getData(type){
-    if(this.tapAction==0||type){
-      if(this.type==null){
-        let param = {
-          "pageNo": this.pageNum,
-          "pageSize": 10,
-          "sortField": "",
-          "sortOrder": "asc",
-          params: {
-            approvalStatus: 5,
-            "categoryId":this.categoryId,
-            "keyword":this.searchData.keyword,
-          }
-        }
-        if(this.searchData.range!=0){
-          param.params.type=this.searchData.range
-        }
-        contentData.findAllKnowledge(param).then((res) => {
-          res.result.data.forEach(element => {
-            element.documentName = element.attachmentName
-            element.documentRemark = element.summary
+  mounted() {
+    let that = this
+    this.detailPkId = this.$route.query.pkId
+    let getData={'pkId':this.detailPkId}
+    map.info(getData).then((res) => {
+      if(res.code == 200) {
+        this.dataDetail = res.data
+        this.dataDetail.routes[0].contents.forEach(element => {
+          if(element.type==2){
             element.viewNum = element.views
             element.uploadTime = element.createTime
-            element.categoryArr = []
+            element.categoryArr = element.category.split(' ')
             this.getType(element)
-            this.getCategory(element.categoryArr,element.knowledgeCategoryAdminVo)
-          });
-          this.number0 = res.result.totalCount
-          this.dataList = res.result.data
-          this.$nextTick(()=>{
-            this.$refs.pageBarref0.setTotal(Number(res.result.totalCount))
-          })
-        })
-      }else{
-        if(this.type==0||this.type==1||this.type==2||this.type==5){
-          let paramOne = {
-            pageNo: this.pageNum,
-            pageSize: 10,
-            sortField: 'CREATE_TIME_',
-            sortOrder: 'desc',
-            params: {
-              approvalStatus: 5,
-              "categoryId":this.categoryId,
-              "keyword":this.searchData.keyword,
-            }
-          }
-          if(this.searchData.range!=0){
-            paramOne.params.type=this.searchData.range
-          }
-          if(this.type==1){
-            paramOne.sortField='views'
-          }
-          if(this.type==2){
-            paramOne.sortField='views'
-            paramOne.type=1
-          }
-          if(this.type==5){
-            paramOne.sortField='views'
-            paramOne.type=2
-          }
-          contentData.findAllKnowledge({...paramOne}).then(res => { 
-            res.result.data.forEach(element => {
-              element.documentName = element.attachmentName
-              element.documentRemark = element.summary
-              element.viewNum = element.views
-              element.uploadTime = element.createTime
-              element.categoryArr = []
-              this.getType(element)
-              this.getCategory(element.categoryArr,element.knowledgeCategoryAdminVo)
-            });
-            this.number0 = res.result.totalCount
-            this.dataList = res.result.data
-            this.$nextTick(()=>{
-              this.$refs.pageBarref0.setTotal(Number(res.result.totalCount))
-            })
-          })
-        }else{
-          let paramTwo = {
-            pageNo: this.pageNum,
-            pageSize: 10,
-            sortField: 'views',
-            sortOrder: 'desc',
-            params: {
-              "keyword":this.searchData.keyword,
-            }
-          }
-          if(this.searchData.range!=0){
-            paramOne.params.type=this.searchData.range
-          }
-          if(this.type==3){
-            paramTwo.params.keyword='working'
           }
-          if(this.type==4){
-            paramTwo.params.keyword='experience'
-          }
-          api.getAllKnowledgeByCategoryId(paramTwo).then(res => { 
-            res.result.data.forEach(element => {
-              element.documentName = element.attachmentName
-              element.documentRemark = element.summary
-              element.viewNum = element.views
-              element.uploadTime = element.createTime
-              element.categoryArr = []
-              this.getType(element)
-              this.getCategory(element.categoryArr,element.knowledgeCategoryAdminVo)
-            });
-            this.number0 = res.result.totalCount
-            this.dataList = res.result.data
-            this.$nextTick(()=>{
-              this.$refs.pageBarref0.setTotal(Number(res.result.totalCount))
-            }) 
-          })
-        }
-      }
-    }
-    if(this.tapAction==1||type){
-      let param = {
-        "pageNo": this.pageNum,
-        "pageSize": 10,
-        "sortField": "APPROVAL_STATUS",
-        "sortOrder": "asc",
-        params: {
-          "createBy":this.user.userId,
-          "keyword":this.searchData.keyword,
-          "isNotAudit":5
-        }
-      }
-      if(this.searchData.range!=0){
-        param.params.type=this.searchData.range
-      }
-      contentData.findAllKnowledge(param).then((res) => {
-        res.result.data.forEach(element => {
-          element.documentName = element.attachmentName
-          element.documentRemark = element.summary
-          element.viewNum = element.views
-          element.uploadTime = element.createTime
-          element.categoryArr = []
-          this.getType(element)
-          this.getCategory(element.categoryArr,element.knowledgeCategoryAdminVo)
         });
-        this.number1 = res.result.totalCount
-        this.dataList1 = res.result.data
-        this.$nextTick(()=>{
-          this.$refs.pageBarref1.setTotal(Number(res.result.totalCount))
-        })
-      })
-    }
-    if(this.tapAction==2||type){
-      let param0 = {
-        "pageNo": this.pageNum,
-        "pageSize": 10,
-        "sortField": "CREATE_TIME_",
-        "sortOrder": "desc",
-        params: {
-          "approvalStatus":5,
-          "createBy":this.user.userId,
-          "keyword":this.searchData.keyword
-        }
-      }
-      if(this.searchData.range!=0){
-        param0.params.type=this.searchData.range
-      }
-      contentData.findAllKnowledge(param0).then((res) => {
-        res.result.data.forEach(element => {
-          element.documentName = element.attachmentName
-          element.documentRemark = element.summary
-          element.viewNum = element.views
-          element.uploadTime = element.createTime
-          element.categoryArr = []
-          this.getType(element)
-          this.getCategory(element.categoryArr,element.knowledgeCategoryAdminVo)
-        });
-        this.number2 = res.result.totalCount
-        this.dataList2 = res.result.data
-        this.$nextTick(()=>{
-          this.$refs.pageBarref2.setTotal(Number(res.result.totalCount))
-        })
-      })
-    }
-   },
-   delRefresh(){
-    console.log(this.pageNum)
-    let param = {
-      "pageNo": this.pageNum,
-      "pageSize": 10,
-      "sortField": "APPROVAL_STATUS",
-      "sortOrder": "asc",
-      params: {
-        "createBy":this.user.userId,
-        "keyword":this.searchData.keyword,
-        "isNotAudit":5
+        this.changeAction(0)
       }
-    }
-    contentData.findAllKnowledge(param).then((res) => {
-      res.result.data.forEach(element => {
-        element.documentName = element.attachmentName
-        element.documentRemark = element.summary
-        element.viewNum = element.views
-        element.uploadTime = element.createTime
-        element.categoryArr = []
-        this.getType(element)
-        this.getCategory(element.categoryArr,element.knowledgeCategoryAdminVo)
-      });
-      this.number1 = res.result.totalCount
-      this.number1Bas = res.result.totalCount
-      this.dataList1 = res.result.data
-      this.$nextTick(()=>{
-        this.$refs.pageBarref1.setTotal(Number(res.result.totalCount))
-      })
     })
-   },
+  },
+  methods: {
    categoryData(data){
     data.forEach(element => {
       element.label=element.name
@@ -399,62 +89,12 @@ export default {
       }
     })
    },
-   getBaseData(){
-    contentData.getAllKnowledgeCategory().then((res) =>{
-      this.categoryData(res.data)
-      console.log(res.data)
-      let allposition={
-        children: [],
-        isSys: 0,
-        label: "全部分类",
-        level: 1,
-        name: "全部分类",
-        operatorName: null,
-        parent: "0",
-        parents: null,
-        pkId: "",
-        sort: 2,
-        updateBy: "1",
-        updateTime: "2022-12-27 17:00:30",
-        value: ""
-      }
-      res.data.unshift(allposition)
-      this.options=res.data
-    })
-    this.delRefresh()
-    let param1 = {
-      "pageNo": 1,
-      "pageSize": 10,
-      "sortField": "CREATE_TIME_",
-      "sortOrder": "desc",
-      params: {
-        "approvalStatus":5,
-        "createBy":this.user.userId
-      }
-    }
-    contentData.findAllKnowledge(param1).then((res) => {
-      res.result.data.forEach(element => {
-        element.documentName = element.attachmentName
-        element.documentRemark = element.summary
-        element.viewNum = element.views
-        element.uploadTime = element.createTime
-        element.categoryArr = []
-        this.getType(element)
-        this.getCategory(element.categoryArr,element.knowledgeCategoryAdminVo)
-      });
-      this.number2 = res.result.totalCount
-      this.number2Bas = res.result.totalCount
-      this.myuploadNum = res.result.totalCount
-      this.dataList2 = res.result.data
-      this.$nextTick(()=>{
-        this.$refs.pageBarref2.setTotal(Number(res.result.totalCount))
-      })
-    })
-   },
    getType(item){
-    item.documentType = 5
-    if(item.documentName!=null){
-      let typeName = item.documentName.split('.')[(item.documentName.split('.').length-1)]
+      item.documentType = 5
+      let typeName = item.attachmentType
+      if(typeName==null){
+        return false
+      }
       if(typeName.indexOf("pdf")>-1){
         item.documentType = 1
       }else if(typeName.indexOf("doc")>-1){
@@ -466,7 +106,6 @@ export default {
       }else{
         item.documentType = 5
       }
-    }
    },
    getCategory(arr,data){
     arr.unshift(data.name)
@@ -474,32 +113,26 @@ export default {
       this.getCategory(arr,data.parents)
     }
    },
-   changeAction(num){
-    this.tapAction = num
-    if(this.tapAction==0){
-      this.pageNum = this.pageNum0
-    }
-    if(this.tapAction==1){
-      this.pageNum = this.pageNum1
-    }
-    if(this.tapAction==2){
-      this.pageNum = this.pageNum2
-    }
-   },
-   pageChange0(num){
-    this.pageNum = num
-    this.pageNum0 = num
-    this.getData(false)
-   },
-   pageChange1(num){
+   pageChange(num){
     this.pageNum = num
-    this.pageNum1 = num
-    this.getData(false)
+    this.dataList = this.dataDetail.routes[this.tapAction].contents.slice((this.pageNum-1)*this.pageSize,this.pageNum*this.pageSize)
    },
-   pageChange2(num){
-    this.pageNum = num
-    this.pageNum2 = num
-    this.getData(false)
+   changeAction(num){
+    let that = this
+    this.tapAction = num
+    this.dataDetail.routes[this.tapAction].contents.forEach(element => {
+      if(element.type==2){
+        element.viewNum = element.views
+        element.uploadTime = element.createTime
+        element.categoryArr = element.category.split(' ')
+        this.getType(element)
+      }
+    });
+    this.pageNum = 1
+    this.dataList = this.dataDetail.routes[this.tapAction].contents.slice((this.pageNum-1)*this.pageSize,this.pageNum*this.pageSize)
+    setTimeout(function(){
+      that.$refs.pageBarref.setTotal(that.dataDetail.routes[that.tapAction].contents.length)
+    },200)
    }
   }
 }

+ 3 - 2
vue.config.js

@@ -167,9 +167,10 @@ const vueConfig = {
         },
         '/api-knowledge/': {
             //target: 'http://192.168.0.185:7206',//张哲
-            target: 'http://10.5.100.230:9009',//服务器
+            //target: 'http://10.5.100.230:9009',//服务器
            // target: 'http://10.5.100.64:5208',
-            //target: 'http://192.168.0.176:7206',//柳哥
+            target: 'http://192.168.0.205:7206',//柳哥
+            //target: 'http://10.5.100.230:9009',//服务器
             // target: 'http://10.5.0.233:9900',
             // target: 'http://10.5.100.64:9900',
             pathRewrite: { '^/api': '' },