|
|
@@ -5,7 +5,7 @@
|
|
|
<el-form-item label="起火对象" class="mandatory">
|
|
|
<el-input
|
|
|
v-model="bindFire.projectName"
|
|
|
- maxlength="50"
|
|
|
+ maxlength="100"
|
|
|
placeholder="请输入起火对象"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
@@ -52,6 +52,8 @@
|
|
|
style="width: 100%"
|
|
|
:row-class-name="rowClassName"
|
|
|
@selection-change="onSelectionChange"
|
|
|
+ @select="ItemChange"
|
|
|
+ @select-all="listChange"
|
|
|
>
|
|
|
<el-table-column type="selection" width="48" :selectable="isRowSelectable" />
|
|
|
<el-table-column label="标题" min-width="140">
|
|
|
@@ -107,7 +109,7 @@
|
|
|
<el-form-item label="起火对象" class="mandatory">
|
|
|
<el-input
|
|
|
v-model="bindFire.projectName"
|
|
|
- maxlength="50"
|
|
|
+ maxlength="100"
|
|
|
placeholder="请输入起火对象"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
@@ -245,7 +247,7 @@ const tableLoading = ref(false);
|
|
|
const pager = ref({ page: 1, pageSize: 10, total: 0 });
|
|
|
let titleDebounceTimer: any = null;
|
|
|
|
|
|
-const rowKey = (row: any) => `${Number(row?.type)}__${String(row?.num)}`;
|
|
|
+const rowKey = (row: any) => `${Number(row?.type)}__${String(row?.num??row?.fusionId)}`;
|
|
|
const isRowSelectable = (_row: any) => true;
|
|
|
const rowClassName = () => '';
|
|
|
const preselectRows = () => {
|
|
|
@@ -254,6 +256,7 @@ const preselectRows = () => {
|
|
|
tableRef.value?.clearSelection?.();
|
|
|
(tableData.value || []).forEach((r: any) => {
|
|
|
const exists = (selectedRows.value || []).some((s: any) => rowKey(s) === rowKey(r));
|
|
|
+ console.log('exists', exists);
|
|
|
if (exists) {
|
|
|
tableRef.value?.toggleRowSelection?.(r, true);
|
|
|
}
|
|
|
@@ -302,12 +305,39 @@ const onTitleInput = () => {
|
|
|
fetchTableData();
|
|
|
}, 300);
|
|
|
};
|
|
|
-
|
|
|
+const ItemChange = (selection, row) => {
|
|
|
+ let item = selection.find(ele => row.fusionId?ele.fusionId === row.fusionId : ele.num === row.num)
|
|
|
+ if(!item){//判断为取消
|
|
|
+ selectedRows.value = selectedRows.value.filter(ele => {
|
|
|
+ if(ele.fusionId){//多元融合
|
|
|
+ return ele.fusionId != row.fusionId
|
|
|
+ }else{
|
|
|
+ return !(ele.isObj == row.isObj && ele.num == row.num)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+};
|
|
|
+const listChange = (selection) => {
|
|
|
+ let check = selection.length == 0
|
|
|
+ if(check){//判断为取消
|
|
|
+ selectedRows.value = selectedRows.value.filter(ele => {
|
|
|
+ if(query.value.type == 2 && ele.fusionId){
|
|
|
+ return false
|
|
|
+ }else if(query.value.type == ele.isObj){
|
|
|
+ return false
|
|
|
+ }else{
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ console.log('selectedRows2', check, selectedRows.value, selection);
|
|
|
+};
|
|
|
const onSelectionChange = (rows: Scene[]) => {
|
|
|
const map = new Map<string, any>();
|
|
|
(selectedRows.value || []).forEach((r: any) => map.set(rowKey(r), r));
|
|
|
(rows || []).forEach((r: any) => map.set(rowKey(r), r));
|
|
|
selectedRows.value = Array.from(map.values());
|
|
|
+ console.log('selectedRows1', selectedRows.value);
|
|
|
};
|
|
|
|
|
|
const onPageChange = (page: number) => {
|