|
@@ -1,7 +1,7 @@
|
|
|
<template>
|
|
|
<div class="container-remindDlg">
|
|
|
<el-dialog title="权限详情" v-dialogDrag :visible.sync="isPermissionDetailShow" :close-on-click-modal="false" :modal-append-to-body="false" @close="cancelHandle" center width="800px">
|
|
|
- <el-table :data="filterAuth" :span-method="objectSpanMethod" @selection-change="handleSelectionChange" ref="authTable" border style="margin-top: 20px">
|
|
|
+ <el-table :data="filterAuth" ref="authTable" border style="margin-bottom: 20px">
|
|
|
<el-table-column label="行业" align="center">
|
|
|
<template slot-scope="scope">{{ scope.row.PermissionName }}</template>
|
|
|
</el-table-column>
|
|
@@ -89,6 +89,7 @@ export default {
|
|
|
},
|
|
|
/* 获取客户详情 */
|
|
|
async getDetailList() {
|
|
|
+ this.filterAuth = [];
|
|
|
const res = await customInterence.customDetail({
|
|
|
CompanyId: this.researchDetailId,
|
|
|
});
|
|
@@ -102,99 +103,17 @@ export default {
|
|
|
},
|
|
|
/* 处理合并数组 */
|
|
|
getRowSpan() {
|
|
|
- this.filterAuth.map((v, i, s) => {
|
|
|
- if (!v.PermissionTypeName) {
|
|
|
- this.indexArrEquity.push(i);
|
|
|
+ const resultMap = new Map();
|
|
|
+
|
|
|
+ this.filterAuth.forEach((item) => {
|
|
|
+ const { PermissionName, PermissionType } = item;
|
|
|
+ if (!resultMap.has(PermissionName) || PermissionType === 1) {
|
|
|
+ resultMap.set(PermissionName, item);
|
|
|
}
|
|
|
});
|
|
|
- for (var i = 0; i < this.filterAuth.length; i++) {
|
|
|
- let element = this.filterAuth[i];
|
|
|
- if (i === 0) {
|
|
|
- this.spanArrEquity.push(1);
|
|
|
- this.posEquity = 0;
|
|
|
- } else {
|
|
|
- // 判断当前元素与上一个元素是否相同(line为标记)
|
|
|
- if (element.PermissionName === this.filterAuth[i - 1].PermissionName) {
|
|
|
- if (element.IsMerge) {
|
|
|
- // 主客观都有,需要合并
|
|
|
- this.spanArrEquity[this.posEquity] += 1;
|
|
|
- this.spanArrEquity.push(0);
|
|
|
- } else {
|
|
|
- // 主客观都有 不需要合并,说明是服务期限或者状态不一样
|
|
|
- this.spanArrEquity[this.posEquity] += 0.5;
|
|
|
- this.spanArrEquity.push(0.5);
|
|
|
- }
|
|
|
- } else {
|
|
|
- this.spanArrEquity.push(1);
|
|
|
- this.posEquity = i;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- /* 合并行规则 */
|
|
|
- objectSpanMethod({ row, column, rowIndex, columnIndex }) {
|
|
|
- if (!this.isMerge) {
|
|
|
- // 产品类型不显示
|
|
|
- const _row = this.spanArrEquity[rowIndex];
|
|
|
- if (_row == 0) {
|
|
|
- return {
|
|
|
- rowspan: _row,
|
|
|
- colspan: 0,
|
|
|
- };
|
|
|
- }
|
|
|
- } else {
|
|
|
- //处理行的合并
|
|
|
- if (this.indexArrEquity.includes(rowIndex)) {
|
|
|
- if (columnIndex === 0) {
|
|
|
- return {
|
|
|
- rowspan: 1,
|
|
|
- colspan: 2,
|
|
|
- };
|
|
|
- } else if (columnIndex === 1) {
|
|
|
- return {
|
|
|
- rowspan: 0,
|
|
|
- colspan: 0,
|
|
|
- };
|
|
|
- }
|
|
|
- }
|
|
|
- // 权益行业主客观合并
|
|
|
- const _row = this.spanArrEquity[rowIndex];
|
|
|
- if (_row == 2) {
|
|
|
- // 为2 是主客观都有,合并,这时合并行业和产品类型
|
|
|
- if (columnIndex === 0) {
|
|
|
- return {
|
|
|
- rowspan: 1,
|
|
|
- colspan: 2,
|
|
|
- };
|
|
|
- } else if (columnIndex === 1) {
|
|
|
- return {
|
|
|
- rowspan: 0,
|
|
|
- colspan: 0,
|
|
|
- };
|
|
|
- }
|
|
|
- } else if (_row == 0) {
|
|
|
- // 为0 表示不需要这行,被合并掉了
|
|
|
- return {
|
|
|
- rowspan: _row,
|
|
|
- colspan: 0,
|
|
|
- };
|
|
|
- } else if (_row == 1.5) {
|
|
|
- // 为1.5 是主客观都有,但不合并,这时合并行业
|
|
|
- if (columnIndex === 0) {
|
|
|
- return {
|
|
|
- rowspan: 2,
|
|
|
- colspan: 1,
|
|
|
- };
|
|
|
- }
|
|
|
- } else if (_row == 0.5) {
|
|
|
- if (columnIndex === 0) {
|
|
|
- return {
|
|
|
- rowspan: 0,
|
|
|
- colspan: 0,
|
|
|
- };
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+
|
|
|
+ const result = Array.from(resultMap.values());
|
|
|
+ this.filterAuth = result;
|
|
|
},
|
|
|
// 查看
|
|
|
lookNumber() {
|