bri-components 1.6.9 → 1.6.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/components/controls/base/DshSelect/DshSelectAll.vue +19 -5
- package/src/components/controls/controlMap.js +2 -2
- package/src/components/list/mixins/DshFlatTableMixin.js +35 -1
- package/src/components/list/mixins/tableBaseMixin.js +65 -58
- package/src/components/list/mixins/treeTableBaseMixin.js +50 -6
- package/src/components/other/DshVideoPlayer.vue +27 -5
- package/src/styles/components/BriTable.less +39 -18
package/package.json
CHANGED
|
@@ -11,8 +11,14 @@
|
|
|
11
11
|
:stop-propagation="true"
|
|
12
12
|
:events-enabled="true"
|
|
13
13
|
>
|
|
14
|
-
<div
|
|
15
|
-
|
|
14
|
+
<div
|
|
15
|
+
class="DshSelectAll-input"
|
|
16
|
+
@click="clickInput"
|
|
17
|
+
>
|
|
18
|
+
<div
|
|
19
|
+
v-if="inputData.length"
|
|
20
|
+
class="DshSelectAll-input-selected dsh-ellipsis"
|
|
21
|
+
>
|
|
16
22
|
<Tag
|
|
17
23
|
v-for="(item, index) in inputData"
|
|
18
24
|
:key="item._key"
|
|
@@ -30,9 +36,13 @@
|
|
|
30
36
|
:size="selfPropsObj._size"
|
|
31
37
|
></Input>
|
|
32
38
|
</div>
|
|
39
|
+
|
|
33
40
|
<DropdownMenu slot="list">
|
|
34
41
|
<!-- 用了transfer="true",防止点击面板冒泡关闭 -->
|
|
35
|
-
<div
|
|
42
|
+
<div
|
|
43
|
+
class="DshSelectAll-down-box"
|
|
44
|
+
@click.stop="0"
|
|
45
|
+
>
|
|
36
46
|
<div class="DshSelectAll-down-all">
|
|
37
47
|
<Checkbox
|
|
38
48
|
:indeterminate="indeterminate"
|
|
@@ -40,10 +50,14 @@
|
|
|
40
50
|
@click.prevent.native="handleCheckAll"
|
|
41
51
|
>全选</Checkbox>
|
|
42
52
|
</div>
|
|
43
|
-
<CheckboxGroup
|
|
53
|
+
<CheckboxGroup
|
|
54
|
+
v-model="checkAllGroup"
|
|
55
|
+
@on-change="checkAllGroupChange"
|
|
56
|
+
>
|
|
44
57
|
<div
|
|
45
58
|
v-for="dataItem in dropDownData"
|
|
46
|
-
:key="dataItem._key"
|
|
59
|
+
:key="dataItem._key"
|
|
60
|
+
>
|
|
47
61
|
<Checkbox :label="dataItem._key">
|
|
48
62
|
<span>{{ dataItem._name || dataItem.name }}</span>
|
|
49
63
|
</Checkbox>
|
|
@@ -77,8 +77,8 @@ const pathMap = {
|
|
|
77
77
|
DshLabels: "./senior/DshLabels.vue",
|
|
78
78
|
DshPackage: "./senior/DshPackage.vue",
|
|
79
79
|
flatTable: "./senior/flatTable.vue",
|
|
80
|
-
cascaderTable: "./senior/cascaderTable",
|
|
81
|
-
DshCorrelation: "./senior/correlation"
|
|
80
|
+
cascaderTable: "./senior/cascaderTable.vue",
|
|
81
|
+
DshCorrelation: "./senior/correlation.vue"
|
|
82
82
|
},
|
|
83
83
|
extra: {
|
|
84
84
|
DshThemeColor: "./extra/DshThemeColor.vue",
|
|
@@ -97,7 +97,14 @@ export default {
|
|
|
97
97
|
return this.tableDataObj.rowspanMap || {};
|
|
98
98
|
},
|
|
99
99
|
allListData () {
|
|
100
|
-
this.data.forEach((row) => {
|
|
100
|
+
this.data.forEach((row, index, list) => {
|
|
101
|
+
row.__position__ = list.length <= 1
|
|
102
|
+
? ""
|
|
103
|
+
: index === 0
|
|
104
|
+
? "first"
|
|
105
|
+
: index === list.length - 1
|
|
106
|
+
? "last"
|
|
107
|
+
: "center";
|
|
101
108
|
this.fixRowData(row);
|
|
102
109
|
});
|
|
103
110
|
this.initFlag = false;
|
|
@@ -378,6 +385,22 @@ export default {
|
|
|
378
385
|
}
|
|
379
386
|
});
|
|
380
387
|
},
|
|
388
|
+
// 点击 -下移
|
|
389
|
+
clickMoveDown (operationItem, row, rowIndex, column) {
|
|
390
|
+
const list = this.data;
|
|
391
|
+
list.splice(rowIndex, 1);
|
|
392
|
+
list.splice(rowIndex + 1, 0, row);
|
|
393
|
+
|
|
394
|
+
this.change("moveDown", row, rowIndex, null);
|
|
395
|
+
},
|
|
396
|
+
// 点击 -上移
|
|
397
|
+
clickMoveUp (operationItem, row, rowIndex, column) {
|
|
398
|
+
const list = this.data;
|
|
399
|
+
list.splice(rowIndex, 1);
|
|
400
|
+
list.splice(rowIndex - 1, 0, row);
|
|
401
|
+
|
|
402
|
+
this.change("moveUp", row, rowIndex, null);
|
|
403
|
+
},
|
|
381
404
|
quickChangeVal (operationItem, row, rowIndex, column, params) {
|
|
382
405
|
if (["text", "textarea", "idcard", "email", "phone", "url", "password"].includes(column._type)) {
|
|
383
406
|
this.dealRuleRecord(row, column);
|
|
@@ -504,6 +527,17 @@ export default {
|
|
|
504
527
|
rowItem[column._key] = this.$deepCopy(row[column._key]);
|
|
505
528
|
});
|
|
506
529
|
}
|
|
530
|
+
},
|
|
531
|
+
// 比较两行某列的值是否相等
|
|
532
|
+
isCompareSame (column, row, compareRow) {
|
|
533
|
+
const curColKey = column ? column._key : undefined;
|
|
534
|
+
const curColType = column ? column._type : undefined;
|
|
535
|
+
|
|
536
|
+
return this.$isEmptyData(compareRow[curColKey]) && this.$isEmptyData(row[curColKey])
|
|
537
|
+
? true
|
|
538
|
+
: ["users", "departments"].includes(curColType)
|
|
539
|
+
? compareRow[curColKey].length === row[curColKey].length && compareRow[curColKey].every((item, index) => item._key === row[curColKey][index]._key)
|
|
540
|
+
: compareRow[curColKey] === row[curColKey];
|
|
507
541
|
}
|
|
508
542
|
}
|
|
509
543
|
};
|
|
@@ -109,6 +109,28 @@ export default {
|
|
|
109
109
|
isEnlargeFlag: false, // 为重渲染膜态框内容而用
|
|
110
110
|
|
|
111
111
|
baseOperationMap: {
|
|
112
|
+
canMoveUp: {
|
|
113
|
+
name: "上移",
|
|
114
|
+
tip: "上移",
|
|
115
|
+
type: "canMoveUp",
|
|
116
|
+
btnType: "primaryText",
|
|
117
|
+
icon: "md-arrow-up",
|
|
118
|
+
size: "small",
|
|
119
|
+
triggerType: "hover",
|
|
120
|
+
disabled: false,
|
|
121
|
+
event: "clickMoveUp"
|
|
122
|
+
},
|
|
123
|
+
canMoveDown: {
|
|
124
|
+
name: "下移",
|
|
125
|
+
tip: "下移",
|
|
126
|
+
type: "canMoveDown",
|
|
127
|
+
btnType: "primaryText",
|
|
128
|
+
icon: "md-arrow-down",
|
|
129
|
+
size: "small",
|
|
130
|
+
triggerType: "hover",
|
|
131
|
+
disabled: false,
|
|
132
|
+
event: "clickMoveDown"
|
|
133
|
+
},
|
|
112
134
|
canCreate: {
|
|
113
135
|
name: "添加一行",
|
|
114
136
|
tip: "添加一行",
|
|
@@ -244,12 +266,14 @@ export default {
|
|
|
244
266
|
_noborderColKeys: [], // 无边线的列
|
|
245
267
|
_bgColKeys: [], // 带背景色的列
|
|
246
268
|
|
|
247
|
-
_disabledBtns: false, //
|
|
269
|
+
_disabledBtns: false, // 禁用增、删、上下移按功能
|
|
248
270
|
_showCreateBtnColKeys: [], // 显示增删图标的列
|
|
249
271
|
_useInsertInOperationCol: false, // 操作列出现插入行按钮
|
|
250
272
|
_disabledFootCreateBtn: false, // 禁用底部新增按钮
|
|
251
273
|
_disabledDeleteDftRow: false, // 默认的数据行禁止删除
|
|
252
274
|
_disabledDeleteOldRow: false, // 保存的数据行禁止删除
|
|
275
|
+
_useMoveBtns: false, // 使用上移、下移功能
|
|
276
|
+
_useMoveInOperationCol: false, // 操作列出现上移、下移按钮
|
|
253
277
|
_dftReadonly: false, // 默认的数据只读
|
|
254
278
|
_dftReadonlyColKeys: [], // 默认的数据只读的列
|
|
255
279
|
_oldReadonly: false, // 保存的数据只读
|
|
@@ -355,6 +379,13 @@ export default {
|
|
|
355
379
|
disabledDeleteOldRow () {
|
|
356
380
|
return this.isDftSet ? false : this.selfPropsObj._disabledDeleteOldRow;
|
|
357
381
|
},
|
|
382
|
+
useMoveBtns () {
|
|
383
|
+
return this.selfPropsObj._useMoveBtns;
|
|
384
|
+
},
|
|
385
|
+
useMoveInOperationCol () {
|
|
386
|
+
return this.selfPropsObj._useMoveInOperationCol;
|
|
387
|
+
},
|
|
388
|
+
|
|
358
389
|
dftReadonly () {
|
|
359
390
|
return this.isDftSet ? false : this.selfPropsObj._dftReadonly;
|
|
360
391
|
},
|
|
@@ -476,8 +507,8 @@ export default {
|
|
|
476
507
|
align: "center",
|
|
477
508
|
_fixed: "right",
|
|
478
509
|
fixed: "right",
|
|
479
|
-
_width:
|
|
480
|
-
width:
|
|
510
|
+
_width: 40 + this.rowOperationList.length * 70,
|
|
511
|
+
width: 40 + this.rowOperationList.length * 70,
|
|
481
512
|
renderBodyCell: ({ row, rowIndex, column }, h) => {
|
|
482
513
|
return this.operationTdCellRender(h, { row, rowIndex, column });
|
|
483
514
|
}
|
|
@@ -730,7 +761,8 @@ export default {
|
|
|
730
761
|
...(
|
|
731
762
|
this.canEdit
|
|
732
763
|
? [
|
|
733
|
-
...(this.disabledBtns ? [] : this.baseOperationBtns),
|
|
764
|
+
...(this.disabledBtns ? [] : this.baseOperationBtns.filter(btn => !["canMoveUp", "canMoveDown"].includes(btn))),
|
|
765
|
+
...(this.useMoveBtns ? ["canMoveUp", "canMoveDown"] : []),
|
|
734
766
|
...this.otherOperationBtns,
|
|
735
767
|
...(this.isQuote ? ["canQuote"] : []),
|
|
736
768
|
...(this.isImport ? ["canImport"] : [])
|
|
@@ -744,11 +776,11 @@ export default {
|
|
|
744
776
|
);
|
|
745
777
|
},
|
|
746
778
|
rowOperationList () {
|
|
747
|
-
|
|
779
|
+
return this.$getOperationList([
|
|
780
|
+
...(this.useMoveInOperationCol ? ["canMoveUp", "canMoveDown"] : []),
|
|
748
781
|
...(this.useInsertInOperationCol ? ["canInsert"] : []),
|
|
749
782
|
"canDelete"
|
|
750
|
-
];
|
|
751
|
-
return this.$getOperationList(btns);
|
|
783
|
+
]);
|
|
752
784
|
}
|
|
753
785
|
},
|
|
754
786
|
watch: {
|
|
@@ -1290,9 +1322,13 @@ export default {
|
|
|
1290
1322
|
operationTdCellRender (h, { row, rowIndex, column }) {
|
|
1291
1323
|
const operationList = this.rowOperationList.map(btnItem => ({
|
|
1292
1324
|
...btnItem,
|
|
1293
|
-
disabled: btnItem.type === "
|
|
1294
|
-
? !this.getRowDelBtnCanEdit(row, rowIndex)
|
|
1295
|
-
: btnItem.
|
|
1325
|
+
disabled: btnItem.type === "canMoveUp"
|
|
1326
|
+
? !(this.getRowDelBtnCanEdit(row, rowIndex) && ["last", "center"].includes(row.__position__))
|
|
1327
|
+
: btnItem.type === "canMoveDown"
|
|
1328
|
+
? !(this.getRowDelBtnCanEdit(row, rowIndex) && ["first", "center"].includes(row.__position__))
|
|
1329
|
+
: btnItem.type === "canDelete"
|
|
1330
|
+
? !this.getRowDelBtnCanEdit(row, rowIndex)
|
|
1331
|
+
: btnItem.disabled
|
|
1296
1332
|
}));
|
|
1297
1333
|
|
|
1298
1334
|
return [
|
|
@@ -1312,38 +1348,45 @@ export default {
|
|
|
1312
1348
|
const baseBool = !this.isSearching &&
|
|
1313
1349
|
(this.showCreateBtnColKeys.length ? this.showCreateBtnColKeys.includes(column._key) : ["__index__", "__treeIndex__"].includes(column._key));
|
|
1314
1350
|
// this.hoverRecordMap[`${row._id}`];
|
|
1351
|
+
let sortNum = -1;
|
|
1315
1352
|
|
|
1316
1353
|
return [
|
|
1317
1354
|
// 插入一行图标
|
|
1318
1355
|
baseBool
|
|
1319
|
-
? this.getOperationIconRender(h, { row, rowIndex, column }, "canInsert", iconSize)
|
|
1356
|
+
? this.getOperationIconRender(h, { row, rowIndex, column }, "canInsert", iconSize, ++sortNum)
|
|
1320
1357
|
: h("span", ""),
|
|
1321
1358
|
|
|
1322
1359
|
// 添加一行下级图标
|
|
1323
|
-
baseBool &&
|
|
1324
|
-
|
|
1325
|
-
!["cascaderTable"].includes(this.inTableType) // 老版级联表格类型不要“添加下级”图标
|
|
1326
|
-
? this.getOperationIconRender(h, { row, rowIndex, column }, "canCreateChild", iconSize, true)
|
|
1360
|
+
baseBool && ["treeTable"].includes(this.inTableType) && row.level < this.maxLevel // 只有层级表格要“添加下级”图标
|
|
1361
|
+
? this.getOperationIconRender(h, { row, rowIndex, column }, "canCreateChild", iconSize, ++sortNum)
|
|
1327
1362
|
: h("span", ""),
|
|
1328
1363
|
|
|
1329
1364
|
// 删除该行图标
|
|
1330
|
-
baseBool &&
|
|
1331
|
-
this.
|
|
1332
|
-
|
|
1333
|
-
|
|
1365
|
+
baseBool && ["cascaderTable"].includes(this.inTableType) && this.getRowDelBtnCanEdit(row, rowIndex)
|
|
1366
|
+
? this.getOperationIconRender(h, { row, rowIndex, column }, "canDelete", iconSize, ++sortNum)
|
|
1367
|
+
: h("span", ""),
|
|
1368
|
+
|
|
1369
|
+
// 下移图标
|
|
1370
|
+
baseBool && !this.useMoveInOperationCol && this.getRowDelBtnCanEdit(row, rowIndex) && ["first", "center"].includes(row.__position__)
|
|
1371
|
+
? this.getOperationIconRender(h, { row, rowIndex, column }, "canMoveDown", iconSize, ++sortNum)
|
|
1372
|
+
: h("span", ""),
|
|
1373
|
+
|
|
1374
|
+
// 上移图标
|
|
1375
|
+
baseBool && !this.useMoveInOperationCol && this.getRowDelBtnCanEdit(row, rowIndex) && ["last", "center"].includes(row.__position__)
|
|
1376
|
+
? this.getOperationIconRender(h, { row, rowIndex, column }, "canMoveUp", iconSize, ++sortNum)
|
|
1334
1377
|
: h("span", "")
|
|
1335
1378
|
];
|
|
1336
1379
|
},
|
|
1337
|
-
getOperationIconRender (h, { row, rowIndex, column }, operationType, iconSize = 14,
|
|
1380
|
+
getOperationIconRender (h, { row, rowIndex, column }, operationType, iconSize = 14, sortNum = 0) {
|
|
1338
1381
|
const operationItem = this.operationMap[operationType];
|
|
1339
1382
|
|
|
1340
1383
|
return operationItem && operationItem.disabled !== true
|
|
1341
1384
|
? h("div", {
|
|
1342
|
-
class: `dsh-color-border-${operationItem.btnType.includes("error") ? "error" : "primary"}`,
|
|
1385
|
+
class: `dsh-color-border-${operationItem.btnType.includes("error") ? "error" : "primary"}${operationItem.triggerType === "hover" ? " dsh-tr-hover-show" : ""}`,
|
|
1343
1386
|
style: {
|
|
1344
1387
|
position: "absolute",
|
|
1345
1388
|
bottom: "0px",
|
|
1346
|
-
right:
|
|
1389
|
+
right: `${(iconSize + 3) * sortNum}px`,
|
|
1347
1390
|
width: `${iconSize + 2}px`,
|
|
1348
1391
|
height: `${iconSize + 2}px`,
|
|
1349
1392
|
borderRadius: "2px",
|
|
@@ -1593,31 +1636,6 @@ export default {
|
|
|
1593
1636
|
};
|
|
1594
1637
|
}
|
|
1595
1638
|
},
|
|
1596
|
-
// 获取父级行
|
|
1597
|
-
getParentRow (row, tree = []) {
|
|
1598
|
-
if (row.level === 1) {
|
|
1599
|
-
return {
|
|
1600
|
-
children: tree
|
|
1601
|
-
};
|
|
1602
|
-
} else {
|
|
1603
|
-
let parentRow;
|
|
1604
|
-
|
|
1605
|
-
const loop = (list = []) => {
|
|
1606
|
-
return list.some(rowItem => {
|
|
1607
|
-
if (rowItem.level === row.level - 1) {
|
|
1608
|
-
const isExist = rowItem.children.some(childRowItem => childRowItem._id === row._id);
|
|
1609
|
-
parentRow = rowItem;
|
|
1610
|
-
return isExist;
|
|
1611
|
-
} else {
|
|
1612
|
-
return loop(rowItem.children);
|
|
1613
|
-
}
|
|
1614
|
-
});
|
|
1615
|
-
};
|
|
1616
|
-
loop(tree);
|
|
1617
|
-
|
|
1618
|
-
return parentRow;
|
|
1619
|
-
}
|
|
1620
|
-
},
|
|
1621
1639
|
// // 单元格是否显示对比
|
|
1622
1640
|
// isShowCompare ({ row, rowIndex, column }) {
|
|
1623
1641
|
// const oldRow = this.compareListData[rowIndex] || {};
|
|
@@ -1629,17 +1647,6 @@ export default {
|
|
|
1629
1647
|
// !(this.$isEmptyData(curVal) && this.$isEmptyData(oldVal)) &&
|
|
1630
1648
|
// curVal !== oldVal;
|
|
1631
1649
|
// },
|
|
1632
|
-
// 比较两行某列的值是否相等
|
|
1633
|
-
isCompareSame (column, row, compareRow) {
|
|
1634
|
-
const curColKey = column ? column._key : undefined;
|
|
1635
|
-
const curColType = column ? column._type : undefined;
|
|
1636
|
-
|
|
1637
|
-
return this.$isEmptyData(compareRow[curColKey]) && this.$isEmptyData(row[curColKey])
|
|
1638
|
-
? true
|
|
1639
|
-
: ["users", "departments"].includes(curColType)
|
|
1640
|
-
? compareRow[curColKey].length === row[curColKey].length && compareRow[curColKey].every((item, index) => item._key === row[curColKey][index]._key)
|
|
1641
|
-
: compareRow[curColKey] === row[curColKey];
|
|
1642
|
-
},
|
|
1643
1650
|
// 行id + 分隔符 + 列key 组成键
|
|
1644
1651
|
getMixKey (row, column, splitStr = "--") {
|
|
1645
1652
|
return `${row._id}${splitStr}${column._key}`;
|
|
@@ -91,7 +91,7 @@ export default {
|
|
|
91
91
|
},
|
|
92
92
|
|
|
93
93
|
// 节点操作 -添加一行
|
|
94
|
-
clickCreate (operationItem, row, rowIndex,
|
|
94
|
+
clickCreate (operationItem, row, rowIndex, column) {
|
|
95
95
|
const list = row
|
|
96
96
|
? this.getParentRow(row, this.data).children
|
|
97
97
|
: this.data;
|
|
@@ -104,7 +104,7 @@ export default {
|
|
|
104
104
|
this.change("createRow", newRow, newRowIndex, null);
|
|
105
105
|
},
|
|
106
106
|
// 节点操作 -添加子行
|
|
107
|
-
clickCreateChild (operationItem, row, rowIndex,
|
|
107
|
+
clickCreateChild (operationItem, row, rowIndex, column) {
|
|
108
108
|
const list = row.children;
|
|
109
109
|
const newRow = this.getNewRowData(row.level + 1, list);
|
|
110
110
|
const newRowIndex = list.length;
|
|
@@ -116,21 +116,21 @@ export default {
|
|
|
116
116
|
this.change("createChildRow", newRow, newRowIndex, null);
|
|
117
117
|
},
|
|
118
118
|
// 节点操作 -删除行
|
|
119
|
-
clickDelete (operationItem, row, rowIndex,
|
|
119
|
+
clickDelete (operationItem, row, rowIndex, column) {
|
|
120
120
|
this.$Modal.confirm({
|
|
121
121
|
title: "警告",
|
|
122
122
|
content: "确定删除该行及其所有下级吗?",
|
|
123
123
|
onOk: () => {
|
|
124
124
|
const parentRow = this.getParentRow(row, this.data);
|
|
125
|
-
const index = parentRow.children.findIndex(
|
|
125
|
+
const index = parentRow.children.findIndex(childRow => childRow._id === row._id);
|
|
126
126
|
parentRow.children.splice(index, 1);
|
|
127
127
|
|
|
128
128
|
this.change("deleteRow", row, rowIndex, null);
|
|
129
129
|
}
|
|
130
130
|
});
|
|
131
|
-
}
|
|
131
|
+
},
|
|
132
132
|
// // 节点操作 -删除所有子行
|
|
133
|
-
// clickDeleteChilds (operationItem, row, rowIndex,
|
|
133
|
+
// clickDeleteChilds (operationItem, row, rowIndex, column) {
|
|
134
134
|
// this.$Modal.confirm({
|
|
135
135
|
// title: "警告",
|
|
136
136
|
// content: "确定删除所有下级吗?",
|
|
@@ -141,5 +141,49 @@ export default {
|
|
|
141
141
|
// }
|
|
142
142
|
// });
|
|
143
143
|
// },
|
|
144
|
+
// 点击 -下移
|
|
145
|
+
clickMoveDown (operationItem, row, rowIndex, column) {
|
|
146
|
+
const parentRow = this.getParentRow(row, this.data);
|
|
147
|
+
const index = parentRow.children.findIndex(childRow => childRow._id === row._id);
|
|
148
|
+
parentRow.children.splice(index, 1);
|
|
149
|
+
parentRow.children.splice(index + 1, 0, row);
|
|
150
|
+
|
|
151
|
+
this.change("moveDown", row, rowIndex, null);
|
|
152
|
+
},
|
|
153
|
+
// 点击 -上移
|
|
154
|
+
clickMoveUp (operationItem, row, rowIndex, column) {
|
|
155
|
+
const parentRow = this.getParentRow(row, this.data);
|
|
156
|
+
const index = parentRow.children.findIndex(childRow => childRow._id === row._id);
|
|
157
|
+
parentRow.children.splice(index, 1);
|
|
158
|
+
parentRow.children.splice(index - 1, 0, row);
|
|
159
|
+
|
|
160
|
+
this.change("moveUp", row, rowIndex, null);
|
|
161
|
+
},
|
|
162
|
+
|
|
163
|
+
// 获取父级行
|
|
164
|
+
getParentRow (row, tree = []) {
|
|
165
|
+
if (row.level === 1) {
|
|
166
|
+
return {
|
|
167
|
+
children: tree
|
|
168
|
+
};
|
|
169
|
+
} else {
|
|
170
|
+
let parentRow;
|
|
171
|
+
|
|
172
|
+
const loop = (list = []) => {
|
|
173
|
+
return list.some(rowItem => {
|
|
174
|
+
if (rowItem.level === row.level - 1) {
|
|
175
|
+
const isExist = rowItem.children.some(childRow => childRow._id === row._id);
|
|
176
|
+
parentRow = rowItem;
|
|
177
|
+
return isExist;
|
|
178
|
+
} else {
|
|
179
|
+
return loop(rowItem.children);
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
};
|
|
183
|
+
loop(tree);
|
|
184
|
+
|
|
185
|
+
return parentRow;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
144
188
|
}
|
|
145
189
|
};
|
|
@@ -318,6 +318,28 @@
|
|
|
318
318
|
},
|
|
319
319
|
computed: {
|
|
320
320
|
sourceType () {
|
|
321
|
+
// const a = [
|
|
322
|
+
// {
|
|
323
|
+
// src: "https://example.com/stream.m3u8",
|
|
324
|
+
// type: "application/x-mpegURL"
|
|
325
|
+
// },
|
|
326
|
+
// {
|
|
327
|
+
// src: "https://example.com/stream.mpd",
|
|
328
|
+
// type: "application/dash+xml"
|
|
329
|
+
// },
|
|
330
|
+
// {
|
|
331
|
+
// src: "https://example.com/video.mp4",
|
|
332
|
+
// type: "video/mp4"
|
|
333
|
+
// },
|
|
334
|
+
// {
|
|
335
|
+
// src: "https://example.com/stream.flv",
|
|
336
|
+
// type: "video/flv"
|
|
337
|
+
// },
|
|
338
|
+
// {
|
|
339
|
+
// src: "https://example.com/webrtc-stream",
|
|
340
|
+
// type: "application/webrtc"
|
|
341
|
+
// }
|
|
342
|
+
// ];
|
|
321
343
|
return this.videoType === "m3u8"
|
|
322
344
|
? "application/x-mpegURL" // 告诉videojs,这是一个hls流
|
|
323
345
|
: "video/mp4";
|
|
@@ -385,6 +407,7 @@
|
|
|
385
407
|
beforeDestroy () {
|
|
386
408
|
if (this.player) {
|
|
387
409
|
this.player.dispose();
|
|
410
|
+
// this.player = null;
|
|
388
411
|
}
|
|
389
412
|
},
|
|
390
413
|
methods: {
|
|
@@ -416,12 +439,11 @@
|
|
|
416
439
|
},
|
|
417
440
|
onPlayerReady () {
|
|
418
441
|
// console.log("Player ready", this.finalOptions);
|
|
419
|
-
},
|
|
420
|
-
|
|
421
|
-
playVideo () {
|
|
422
|
-
let video = document.getElementById("video");
|
|
423
|
-
video.play();
|
|
424
442
|
}
|
|
443
|
+
// playVideo () {
|
|
444
|
+
// let video = document.getElementById("video");
|
|
445
|
+
// video.play();
|
|
446
|
+
// }
|
|
425
447
|
}
|
|
426
448
|
};
|
|
427
449
|
</script>
|
|
@@ -14,15 +14,19 @@
|
|
|
14
14
|
td {
|
|
15
15
|
white-space: normal !important;
|
|
16
16
|
}
|
|
17
|
+
|
|
17
18
|
th.ve-table-fixed-right {
|
|
18
19
|
box-shadow: -4px 0 6px -2px rgba(0, 0, 0, 0.1);
|
|
19
20
|
}
|
|
21
|
+
|
|
20
22
|
td.ve-table-fixed-right {
|
|
21
23
|
box-shadow: -4px 0 6px -2px rgba(0, 0, 0, 0.1);
|
|
22
24
|
}
|
|
25
|
+
|
|
23
26
|
th.ve-table-last-left-fixed-column {
|
|
24
27
|
box-shadow: 4px 0 7px -2px rgba(0, 0, 0, 0.1);
|
|
25
28
|
}
|
|
29
|
+
|
|
26
30
|
td.ve-table-last-left-fixed-column {
|
|
27
31
|
box-shadow: 4px 0 7px -2px rgba(0, 0, 0, 0.1);
|
|
28
32
|
}
|
|
@@ -41,7 +45,7 @@
|
|
|
41
45
|
thead.ve-table-header {
|
|
42
46
|
tr.ve-table-header-tr th.ve-table-header-th {
|
|
43
47
|
padding: 4px 8px;
|
|
44
|
-
|
|
48
|
+
|
|
45
49
|
.ve-table-filter .ve-table-filter-icon {
|
|
46
50
|
position: absolute;
|
|
47
51
|
top: 0px;
|
|
@@ -61,7 +65,7 @@
|
|
|
61
65
|
margin-bottom: auto;
|
|
62
66
|
right: 17px;
|
|
63
67
|
}
|
|
64
|
-
|
|
68
|
+
|
|
65
69
|
// 排序
|
|
66
70
|
.ve-table-sort {
|
|
67
71
|
height: 30px;
|
|
@@ -71,11 +75,11 @@
|
|
|
71
75
|
margin-top: auto;
|
|
72
76
|
margin-bottom: auto;
|
|
73
77
|
right: 0px;
|
|
74
|
-
|
|
78
|
+
|
|
75
79
|
.icon-vet-sort-top-arrow:before {
|
|
76
80
|
content: "\e6347";
|
|
77
81
|
}
|
|
78
|
-
|
|
82
|
+
|
|
79
83
|
.icon-vet-sort-bottom-arrow:before {
|
|
80
84
|
content: "\e6349";
|
|
81
85
|
}
|
|
@@ -84,16 +88,29 @@
|
|
|
84
88
|
}
|
|
85
89
|
|
|
86
90
|
tbody.ve-table-body {
|
|
87
|
-
|
|
91
|
+
|
|
92
|
+
tr.ve-table-body-tr,
|
|
88
93
|
tr.ve-table-expand-tr {
|
|
89
94
|
height: auto;
|
|
90
95
|
// position: relative;
|
|
91
96
|
|
|
97
|
+
.dsh-tr-hover-show {
|
|
98
|
+
display: none;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
&:hover {
|
|
102
|
+
.dsh-tr-hover-show {
|
|
103
|
+
display: block;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
92
107
|
td.ve-table-body-td {
|
|
93
108
|
height: 40px;
|
|
94
109
|
padding: 4px 16px;
|
|
95
110
|
|
|
111
|
+
|
|
96
112
|
&.bri-table-td-noborder {
|
|
113
|
+
|
|
97
114
|
.ivu-input,
|
|
98
115
|
textarea.ivu-input,
|
|
99
116
|
.ivu-select-selection {
|
|
@@ -105,7 +122,7 @@
|
|
|
105
122
|
line-height: 18px;
|
|
106
123
|
}
|
|
107
124
|
|
|
108
|
-
.ivu-input-prefix,
|
|
125
|
+
.ivu-input-prefix,
|
|
109
126
|
.ivu-input-suffix {
|
|
110
127
|
width: 0px;
|
|
111
128
|
display: none;
|
|
@@ -115,6 +132,7 @@
|
|
|
115
132
|
box-shadow: none;
|
|
116
133
|
}
|
|
117
134
|
}
|
|
135
|
+
|
|
118
136
|
&.bri-table-td-bg {
|
|
119
137
|
background-color: #fbfbfb;
|
|
120
138
|
}
|
|
@@ -123,13 +141,13 @@
|
|
|
123
141
|
}
|
|
124
142
|
}
|
|
125
143
|
}
|
|
126
|
-
|
|
144
|
+
|
|
127
145
|
&.ve-table-border-around {
|
|
128
146
|
border-radius: @borderRadius;
|
|
129
147
|
}
|
|
130
148
|
}
|
|
131
149
|
}
|
|
132
|
-
|
|
150
|
+
|
|
133
151
|
&-click {
|
|
134
152
|
td {
|
|
135
153
|
cursor: pointer;
|
|
@@ -195,29 +213,30 @@
|
|
|
195
213
|
height: 40px;
|
|
196
214
|
padding: 4px 16px;
|
|
197
215
|
position: relative;
|
|
198
|
-
|
|
216
|
+
|
|
199
217
|
// &-expand {
|
|
200
218
|
|
|
201
219
|
// }
|
|
202
220
|
&-treeIndex {
|
|
203
|
-
padding: 4px 16px 4px 12px!important;
|
|
221
|
+
padding: 4px 16px 4px 12px !important;
|
|
204
222
|
}
|
|
223
|
+
|
|
205
224
|
&-operation {
|
|
206
225
|
.DshButtons-dropdown-more {
|
|
207
226
|
padding: 0px;
|
|
208
227
|
margin-left: 16px;
|
|
209
228
|
}
|
|
210
|
-
|
|
229
|
+
|
|
211
230
|
&-btn {
|
|
212
231
|
margin-left: 16px;
|
|
213
232
|
padding: 0px;
|
|
214
|
-
|
|
233
|
+
|
|
215
234
|
&:first-of-type {
|
|
216
235
|
margin: 0px;
|
|
217
236
|
}
|
|
218
237
|
}
|
|
219
238
|
}
|
|
220
|
-
|
|
239
|
+
|
|
221
240
|
&-tip {
|
|
222
241
|
padding: 0px 0px 0px 16px;
|
|
223
242
|
// text-align: left;
|
|
@@ -231,7 +250,7 @@
|
|
|
231
250
|
}
|
|
232
251
|
|
|
233
252
|
&-edit {
|
|
234
|
-
padding: 4px 16px 12px 16px!important;
|
|
253
|
+
padding: 4px 16px 12px 16px !important;
|
|
235
254
|
}
|
|
236
255
|
|
|
237
256
|
&-visible {
|
|
@@ -240,7 +259,7 @@
|
|
|
240
259
|
top: -49px;
|
|
241
260
|
opacity: 0.9;
|
|
242
261
|
}
|
|
243
|
-
|
|
262
|
+
|
|
244
263
|
to {
|
|
245
264
|
top: 0px;
|
|
246
265
|
opacity: 1;
|
|
@@ -251,10 +270,11 @@
|
|
|
251
270
|
}
|
|
252
271
|
|
|
253
272
|
&-hide {
|
|
254
|
-
display: none!important;
|
|
273
|
+
display: none !important;
|
|
255
274
|
}
|
|
256
275
|
|
|
257
276
|
&-noborder {
|
|
277
|
+
|
|
258
278
|
.ivu-input,
|
|
259
279
|
textarea.ivu-input,
|
|
260
280
|
.ivu-select-selection {
|
|
@@ -266,16 +286,17 @@
|
|
|
266
286
|
line-height: 18px;
|
|
267
287
|
}
|
|
268
288
|
|
|
269
|
-
.ivu-input-prefix,
|
|
289
|
+
.ivu-input-prefix,
|
|
270
290
|
.ivu-input-suffix {
|
|
271
291
|
width: 0px;
|
|
272
292
|
display: none;
|
|
273
293
|
}
|
|
274
|
-
|
|
294
|
+
|
|
275
295
|
.ivu-date-picker-focused input:not([disabled]) {
|
|
276
296
|
box-shadow: none;
|
|
277
297
|
}
|
|
278
298
|
}
|
|
299
|
+
|
|
279
300
|
&-bg {
|
|
280
301
|
background-color: #fbfbfb;
|
|
281
302
|
}
|