| export default { | 
|   initViewColumns(isReset) { | 
|     //初始化自定列配置 | 
|     if (isReset) { | 
|       this.resetViewColumns(); | 
|     } | 
|     if (!this.orginColumnFields) { | 
|       this.orginColumnFields = this.columns.map((c) => { | 
|         return c.field; | 
|       }); | 
|     } | 
|     this.viewColumns = this.columns | 
|       .filter((c) => { | 
|         return !c.hidden && !c.render; | 
|       }) | 
|       .map((c) => { | 
|         return { field: c.field, title: c.title, show: !c.hidden }; | 
|       }); | 
|     if (isReset) { | 
|       return; | 
|     } | 
|     this.getCacheViewColumn(); | 
|   }, | 
|   getViewCacheKey(){ | 
|     return 'custom:column'+this.table.name; | 
|   }, | 
|   getCacheViewColumn() { | 
|     try { | 
|       let columns = localStorage.getItem(this.getViewCacheKey()); | 
|       if (!columns) return; | 
|       columns = JSON.parse(columns); | 
|       if (columns.some(x=>{return !this.viewColumns.some(c=> {return c.field==x.field})})|| | 
|           this.viewColumns.some(x=>{return !columns.some(c=> {return c.field==x.field})}) | 
|       ) { | 
|           localStorage.removeItem(this.getViewCacheKey()) | 
|           return; | 
|       } | 
|       let sortTableColumns = []; | 
|       //弹出框的列 | 
|       let _viewColumns = []; | 
|       columns.forEach((column) => { | 
|         let _column = this.viewColumns.find((c) => { | 
|           return c.field == column.field; | 
|         }); | 
|         if (_column) { | 
|           _column.show = column.show; | 
|           _viewColumns.push(_column); | 
|         } | 
|         let tableColumn = this.columns.find((c) => { | 
|           return c.field == column.field; | 
|         }); | 
|         if (tableColumn) { | 
|           tableColumn.hidden = !column.show; | 
|           sortTableColumns.push(tableColumn); | 
|         } | 
|       }); | 
|       //重新排版弹出框自定义列 | 
|       let otherColumns = this.viewColumns.filter((c) => { | 
|         return !_viewColumns.some((s) => { | 
|           return c.field == s.field; | 
|         }); | 
|       }); | 
|             //重新排版弹出框自定义列 | 
|       _viewColumns.push(...otherColumns); | 
|       this.viewColumns.splice(0); | 
|       this.viewColumns.push(..._viewColumns); | 
|   | 
|       this.sortViewColumns(sortTableColumns); | 
|     } catch (error) { | 
|       console.log('设置默认自定义列异常:' + error.message); | 
|     } | 
|   }, | 
|   sortViewColumns(sortColumns) { | 
|     if (sortColumns.length) { | 
|       let hiddenColumns = this.columns.filter((c) => { | 
|         return !sortColumns.some((s) => { | 
|           return c.field == s.field; | 
|         }); | 
|       }); | 
|       sortColumns.push(...hiddenColumns); | 
|       this.columns.splice(0); | 
|       this.columns.push(...sortColumns); | 
|     } | 
|   }, | 
|   resetViewColumns() { | 
|     if (!this.orginColumnFields) { | 
|       return; | 
|     } | 
|     let _columns = []; | 
|     this.orginColumnFields.forEach((x) => { | 
|       _columns.push( | 
|         this.columns.find((c) => { | 
|           return c.field == x; | 
|         }) | 
|       ); | 
|     }); | 
|     let otherColumns = this.columns.filter((c) => { | 
|       return !this.orginColumnFields.some((s) => { | 
|         return c.field == s; | 
|       }); | 
|     }); | 
|     _columns.push(...otherColumns); | 
|     this.columns.splice(0); | 
|     this.columns.push(..._columns); | 
|   }, | 
|   showCustomModel() { | 
|     if (!this.viewColumns.length) { | 
|       this.initViewColumns(); | 
|     } | 
|     this.viewColumnsClone = JSON.parse(JSON.stringify(this.viewColumns)); | 
|     this.viewModel = true; | 
|   }, | 
|   closeCustomModel() { | 
|     this.viewModel=false; | 
|     if (this.checkColumnChanged()) { | 
|       this.viewColumns = JSON.parse(JSON.stringify(this.viewColumnsClone)); | 
|     } | 
|   }, | 
|   checkColumnChanged() { | 
|     return ( | 
|       JSON.stringify(this.viewColumns) != JSON.stringify(this.viewColumnsClone) | 
|     ); | 
|   }, | 
|   saveColumnConfig() { | 
|     let hasShowColumn = this.viewColumns.some((x) => { | 
|       return x.show; | 
|     }); | 
|     if (!hasShowColumn) { | 
|       return this.$message.error('至少选择一列显示'); | 
|     } | 
|     this.viewModel = false; | 
|     if (this.checkColumnChanged()) { | 
|       let sortColumns = []; | 
|       this.viewColumns.forEach((column) => { | 
|         let _column = this.columns.find((c) => { | 
|           return c.field == column.field; | 
|         }); | 
|         if (_column) { | 
|           _column.hidden = !column.show; | 
|           sortColumns.push(_column); | 
|         } | 
|       }); | 
|       this.sortViewColumns(sortColumns); | 
|     } | 
|     try { | 
|       localStorage.setItem(this.getViewCacheKey(), JSON.stringify(this.viewColumns)); | 
|     } catch (error) { | 
|       console.log('获取自定义列异常:' + error.message); | 
|     } | 
|   } | 
| }; |