zhuliu 1 年之前
父节点
当前提交
615c238bcb

+ 32 - 10
src/utils/common.js

@@ -304,27 +304,29 @@ treeToArray(data,prop={children:children}){
    * getColumnData({value:1},{type:'String',value:'value'}) //返回字符串1 
    */
   getColumnData(row, field, prop, data) {
+    var text = this.getDataByField(row,field.value)
     if (field.type == 'Array') {
-      if (row[field.value] && row[field.value].length > 0) {
+      if (text && text.length > 0) {
         if (prop) {
-          return row[field.value].map(item => {
+          return text.map(item => {
             return item[prop]
           }).join('、')
         }
-        return row[field.value].join('、')
+        return text.join('、')
       } else {
         return '--'
       }
     } else if (field.type == 'Object') {
-      if (!row[field.value]) {
+      if (!text) {
         return '--'
       }
       if (prop) {
-        return row[field.value][prop]
+        return text[prop]
       }
-      return row[field.value].name
+      return text.name
     }
     else {
+      
       if (data) {
         if (data.data.constructor == Array) {
           var dataProp = data.prop || {
@@ -332,7 +334,7 @@ treeToArray(data,prop={children:children}){
             value: 'value'
           }
           var obj = data.data.find(item => {
-            return item[dataProp.value] == row[field.value]
+            return item[dataProp.value] == text
           })
           if (obj) {
             return obj[dataProp.label]
@@ -340,16 +342,36 @@ treeToArray(data,prop={children:children}){
             return '--'
           }
         } else {
-          return data.data[row[field.value]]
+          return data.data[text]
         }
 
       }
-      if (row[field.value] == '0') {
+      if (text == '0') {
         return '0'
       }
-      return row[field.value] || '--'
+      return text || '--'
     }
   },
+   /**
+   * 根据配置的栏位获取数据
+   */
+   getDataByField(row,field){
+    const parts = this.getFieldArray(field) 
+    let current = row;  
+      
+    for (let i = 0; i < parts.length; i++) {  
+        if (current && current.hasOwnProperty(parts[i])) {  
+            current = current[parts[i]];  
+        } else {  
+            // 如果路径中的某一部分不存在,则返回undefined或自定义的默认值  
+            return ''; // 或者你可以返回null、默认值等  
+        }  
+    }  
+    return current; 
+  },
+  getFieldArray(field){
+    return field.split('.')
+  },
 
   //查看图片1
   checkViewer(guid) {

+ 4 - 1
src/views/project/patentCollection/components/mixins/index.js

@@ -213,7 +213,10 @@ export const handleData = {
           case 'inventor'://发明人
           case 'applicant'://申请人
           case 'rightHolder'://权利人
-            
+            if(!row[key]){
+              var text = ''
+              break
+            }
             var text = row[key].join('<br>')
             break;
           case 'legalStatus'://法律状态

+ 3 - 3
src/views/project/patentCollection/components/views/Table.vue

@@ -49,12 +49,12 @@
                   </td>
                 </tr>
               </table>
-              <template v-if="scope.row.ifSearch">
-                <el-link slot="reference" type="primary" @click="handleClick(scope.row, scope.$index)">
+              <template v-if="scope.row.ifSearch" slot="reference">
+                <el-link  type="primary" @click="handleClick(scope.row, scope.$index)">
                   <span v-html="getView(scope.row, item.value, item.type)"></span>
                 </el-link>
               </template>
-              <template v-else>
+              <template v-else slot="reference">
                   <span v-html="getView(scope.row, item.value, item.type)"></span>
                   <span>(未匹配到专利)</span>
               </template>