Bladeren bron

Merge branch 'termMap0909' of http://192.168.2.236:10080/zhouna/platformFront into termMap0909

wyq 3 jaren geleden
bovenliggende
commit
ce7e1d4666
2 gewijzigde bestanden met toevoegingen van 38 en 29 verwijderingen
  1. 29 0
      src/components/knowledgeExtra/AddDevKnow.vue
  2. 9 29
      src/components/knowledgeExtra/DevInfo.vue

+ 29 - 0
src/components/knowledgeExtra/AddDevKnow.vue

@@ -136,6 +136,8 @@
                 :total="form.prags.length"
                 :isEdit="isEdit"
                 :isCopy="isCopy"
+                :positionMap="positionMap"
+                :positionList="positionList"
                 ref="subForm"
                 @add="addParagraph(i)"
                 @del="delParagraph"
@@ -229,6 +231,8 @@ export default {
       isFixedTop: true,
       isEdit: false,
       isCopy: false,
+      positionMap:[],   //各类型内容类型对象
+      positionList:[],   //各类型内容类型对象
       title: '添加',
       termTypes: [],
       terms: [], //术语列表
@@ -330,6 +334,7 @@ export default {
     }
   },
   created: function() {
+      this.zskgetDict();    //获取内容类型
     const { isEdit, data, isCopy } = this.$route.params;
     if (isEdit || isCopy) {
       const loading = this.$loading({
@@ -472,6 +477,30 @@ export default {
     }
   },
   methods: {
+      zskgetDict() {  //获取位置枚举
+          api
+              .zskgetDict()
+              .then(res => {
+                  if (res.data.code == '0') {
+                      const data = res.data.data;
+                      this.positionList = data['50'];
+                      this.positionMap=this.getPositionMap(data['50'],data['51']);
+                  }
+              })
+              .catch(error => {
+                  console.log(error);
+              });
+      },
+      getPositionMap(list,maps){    //各类型需要显示的内容类型map
+          let tempObj = {},arr=[];
+          maps.map((it)=>{
+              arr = it.val.split(",").map((i)=>{
+                  return list.find((t)=>t.val===i);
+              });
+              tempObj[it.name]=arr;
+          });
+          return tempObj;
+      },
     scrollTo(dom) {
       var div = this.$refs['elscrollbar'].$refs['wrap'];
       if (dom >= 0) {

+ 9 - 29
src/components/knowledgeExtra/DevInfo.vue

@@ -105,7 +105,7 @@ import config from '@api/config';
 import { container, ImageExtend, QuillWatch } from 'quill-image-extend-module';
 Quill.register('modules/ImageExtend', ImageExtend);
 export default {
-  props: ['data', 'index', 'isEdit', 'isCopy', 'total', 'showType'],
+  props: ['data', 'index', 'isEdit', 'isCopy', 'total', 'showType','positionMap','positionList'],
   name: 'DevInfo',
   components: {
     quillEditor
@@ -165,10 +165,17 @@ export default {
         position: [],
         orderNo: 0
       },
-      positions: [], //位置列表
       rules: {}
     };
   },
+    computed:{
+      'positions':function(){
+          if(this.showType!==-1){
+              return this.positionMap[this.showType];
+          }
+          return this.positionList||[];
+      }
+    },
   watch: {
     'data.content': function() {
       if (this.data.content !== '') {
@@ -186,7 +193,6 @@ export default {
     this.editorOption.modules.toolbar.container = this.toolbars[
       this.toolbarMode
     ];
-    this.zskgetDict();
 
     if (this.isEdit || this.isCopy) {
       setTimeout(() => {
@@ -287,20 +293,6 @@ export default {
     );
   },
   methods: {
-    zskgetDict() {
-      api
-        .zskgetDict()
-        .then(res => {
-          if (res.data.code == '0') {
-            const data = res.data.data;
-            this.positions = data['50'];
-            this.renderPositions(data['50'], data['51']);
-          }
-        })
-        .catch(error => {
-          console.log(error);
-        });
-    },
     reOrder(i) {
       this.$emit('reOrder', i, this.index);
     },
@@ -321,18 +313,6 @@ export default {
       });
       this.data.position = arr;
     },
-    // 渲染内容类型
-    renderPositions(data1, data2) {
-      //显示位置枚举列表
-      if (this.showType>0) {
-        data2 = data2.filter(item => item.name == this.showType);
-        let val = data2[0].val.split(',');
-        this.positions = data1.filter(it => {
-          let arr = val.map(v => v);
-          return arr.includes(it.val);
-        });
-      }
-    }
   }
 };
 </script>