|
|
@@ -18,13 +18,17 @@
|
|
|
@fetch-success="handleFetchSuccess"
|
|
|
>
|
|
|
<template #tableTitle>
|
|
|
- <div class="fileName">root</div>
|
|
|
+ <div class="fileName" v-if="parentId">
|
|
|
+ <span @click="handleItem({})">Root</span>
|
|
|
+ <span class="fileNameItem" v-for="(item, index) in folderList" :key="index" @click="handleItem(item, index)" :class="{'active': item.id == parentId}">{{` / `}}{{ item.sceneName }}</span>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
<template #toolbar>
|
|
|
<a-button v-if="isPatchAuth" type="primary" @click="handlePatchSelect">
|
|
|
{{ t('routes.archive.patchArchive') }}</a-button
|
|
|
>
|
|
|
<!-- <a-button type="primary" color="warning" @click="() => {}"> 编辑</a-button>-->
|
|
|
+ <a-button type="primary" @click="openfolderModal(true, {type: tableType, parentId})"> {{t('routes.scenes.creatFloder')}}</a-button>
|
|
|
</template>
|
|
|
<template #mapShow="{ record }">
|
|
|
<Switch
|
|
|
@@ -37,7 +41,7 @@
|
|
|
</template>
|
|
|
<template #cover="{ record }">
|
|
|
<div class="cover">
|
|
|
- <img src="/resource/img/file.png" style="margin: 0 auto;" alt="" v-if="record.companyName == '哈哈哈哈'" />
|
|
|
+ <img @click="handleFolder(record)" src="/resource/img/file.png" style="margin: 0 auto;" alt="" v-if="record.isFolder" />
|
|
|
<TableImg v-else
|
|
|
:size="120"
|
|
|
:simpleShow="true"
|
|
|
@@ -63,7 +67,28 @@
|
|
|
</template>
|
|
|
<template #action="{ record }">
|
|
|
<TableAction
|
|
|
- v-if="record.payStatus != -2"
|
|
|
+ v-if="record.isFolder == 1"
|
|
|
+ :actions="[
|
|
|
+ {
|
|
|
+ icon: 'mage:edit-fill',
|
|
|
+ tooltip: t('routes.scenes.rename'),
|
|
|
+ onClick: openFolderEditor.bind(null, record),
|
|
|
+ ifShow: !record.coldStorage,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ color: 'error',
|
|
|
+ icon: 'material-symbols:delete',
|
|
|
+ tooltip: t('routes.scenes.delete'),
|
|
|
+ ifShow: record.isDel,
|
|
|
+ popConfirm: {
|
|
|
+ title: t('common.delConfirm'),
|
|
|
+ confirm: handleFolderDelete.bind(null, record),
|
|
|
+ },
|
|
|
+ }
|
|
|
+ ]"
|
|
|
+ />
|
|
|
+ <TableAction
|
|
|
+ v-else-if="record.payStatus != -2"
|
|
|
:actions="[
|
|
|
{
|
|
|
color: 'error',
|
|
|
@@ -94,6 +119,12 @@
|
|
|
onClick: handleCopy.bind(null, record),
|
|
|
},
|
|
|
{
|
|
|
+ tooltip: '移动',
|
|
|
+ icon: 'material-symbols:drive-file-move-outline',
|
|
|
+ disabled: record.status != -2,
|
|
|
+ onClick: handleOpenTree.bind(null, record),
|
|
|
+ },
|
|
|
+ {
|
|
|
tooltip: t('routes.scenes.creatobj'),
|
|
|
icon: 'carbon:chart-3d',
|
|
|
ifShow:
|
|
|
@@ -151,6 +182,8 @@
|
|
|
</template>
|
|
|
</BasicTable>
|
|
|
<DownloadModal @register="registerDownloadModal" />
|
|
|
+ <folderModal @register="registerfolderModal" @success="reload" />
|
|
|
+ <folderTreeModal @register="registerTreeModal" @success="reload" />
|
|
|
<DownloadE57Modal @register="registerDownloadE57Modal" />
|
|
|
<AssistantModal @register="registerAssistantModal" @success="reload" />
|
|
|
<MigrateModal
|
|
|
@@ -190,6 +223,7 @@
|
|
|
updateMapShowApi,
|
|
|
checkDownloadE57Api,
|
|
|
downloadSceneDataE57APi,
|
|
|
+ folderDel,
|
|
|
} from '/@/api/scene/list';
|
|
|
import { useI18n } from '/@/hooks/web/useI18n';
|
|
|
import {
|
|
|
@@ -201,6 +235,8 @@
|
|
|
|
|
|
import { useUserStore } from '/@/store/modules/user';
|
|
|
import DownloadModal from './downloadModal.vue';
|
|
|
+ import folderModal from './folderModal.vue';
|
|
|
+ import folderTreeModal from './folderTreeModal.vue';
|
|
|
import DownloadE57Modal from './downloadE57Modal.vue';
|
|
|
import AssistantModal from './assistantModal.vue';
|
|
|
import { useLocaleStore } from '/@/store/modules/locale';
|
|
|
@@ -219,6 +255,8 @@
|
|
|
TableImg,
|
|
|
DownloadModal,
|
|
|
AssistantModal,
|
|
|
+ folderTreeModal,
|
|
|
+ folderModal,
|
|
|
PageWrapper,
|
|
|
MigrateModal,
|
|
|
Switch,
|
|
|
@@ -229,6 +267,8 @@
|
|
|
setup() {
|
|
|
const roleList = userStore.roleList;
|
|
|
console.log('roleList', roleList);
|
|
|
+ const folderList = ref<any>([]);
|
|
|
+ const parentId = ref<Number | null>(null);
|
|
|
|
|
|
const isPatchAuth = computed(() => {
|
|
|
return (
|
|
|
@@ -239,6 +279,8 @@
|
|
|
});
|
|
|
|
|
|
const { createMessage, createConfirm } = useMessage();
|
|
|
+ const [registerfolderModal, { openModal: openfolderModal }] = useModal();
|
|
|
+ const [registerTreeModal, { openModal: openTreeModal }] = useModal();
|
|
|
const [registerDownloadModal, { openModal: openDownloadModal }] = useModal();
|
|
|
const [registerDownloadE57Modal, { openModal: openDownloadE57Modal }] = useModal();
|
|
|
const [registerAssistantModal, { openModal: openAssistantModal }] = useModal();
|
|
|
@@ -346,7 +388,7 @@
|
|
|
title: t('common.operation'),
|
|
|
dataIndex: '',
|
|
|
slots: { customRender: 'action' },
|
|
|
- width: 300,
|
|
|
+ width: 330,
|
|
|
ellipsis: false,
|
|
|
fixed: 'right',
|
|
|
},
|
|
|
@@ -413,7 +455,7 @@
|
|
|
useSearchForm: true,
|
|
|
formConfig: searchForm,
|
|
|
showTableSetting: true,
|
|
|
- searchInfo: { type: tableType, lang: isJA.value ? 'ja' : 'zh' },
|
|
|
+ searchInfo: { type: tableType, lang: isJA.value ? 'ja' : 'zh', haveFolder: 1, folderId: parentId },
|
|
|
tableSetting: { fullScreen: true },
|
|
|
clickToRowSelect: false,
|
|
|
showIndexColumn: false,
|
|
|
@@ -516,6 +558,15 @@
|
|
|
console.log('error', error);
|
|
|
}
|
|
|
}
|
|
|
+ async function openFolderEditor(record: Recordable) {
|
|
|
+ openfolderModal(true, {...record, type: tableType})
|
|
|
+ }
|
|
|
+ async function handleFolderDelete(record: Recordable) {
|
|
|
+ console.log('DeleteApi', record);
|
|
|
+ await folderDel({id: record.id});
|
|
|
+ createMessage.success(t('common.optSuccess'));
|
|
|
+ reload();
|
|
|
+ }
|
|
|
async function handleDelete(record: Recordable) {
|
|
|
console.log('DeleteApi', record);
|
|
|
await DeleteApi(record.num);
|
|
|
@@ -556,6 +607,9 @@
|
|
|
// console.log('record', record);
|
|
|
openAssistantModal(true, { ...record });
|
|
|
}
|
|
|
+ function createdFolder(record){
|
|
|
+ openfolderModal(true, record);
|
|
|
+ }
|
|
|
function handlePatchSelect() {
|
|
|
const keys = getSelectRowKeys();
|
|
|
if (keys.length > 0) {
|
|
|
@@ -636,19 +690,47 @@
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ function handleFolder(record){
|
|
|
+ parentId.value = record.id;
|
|
|
+ folderList.value.push(record);
|
|
|
+ console.log('folderList', folderList.value, record);
|
|
|
+ reload();
|
|
|
+ }
|
|
|
+ function handleItem(item, index) {
|
|
|
+ console.log('item', item, index);
|
|
|
+ if(!item.id){//为空
|
|
|
+ folderList.value = []
|
|
|
+ parentId.value = null;
|
|
|
+ reload();
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if(parentId.value != item.id ){
|
|
|
+ parentId.value = item.id;
|
|
|
+ folderList.value.splice(index, 1);
|
|
|
+ reload();
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ function handleOpenTree (record) {
|
|
|
+ openTreeModal(true, {type: tableType.value, numList: [record.num]});
|
|
|
+ }
|
|
|
return {
|
|
|
reload,
|
|
|
registerTable,
|
|
|
createMessage,
|
|
|
t,
|
|
|
+ folderList,
|
|
|
handleGenerate,
|
|
|
openSceneEditor,
|
|
|
+ openFolderEditor,
|
|
|
handleDownloadScene,
|
|
|
handleDelete,
|
|
|
handleLivestream,
|
|
|
handleUpgrade,
|
|
|
registerDownloadModal,
|
|
|
+ openfolderModal,
|
|
|
+ registerfolderModal,
|
|
|
+ registerTreeModal,
|
|
|
changeTable,
|
|
|
handleCopy,
|
|
|
tableType,
|
|
|
@@ -668,12 +750,17 @@
|
|
|
handleDownloadSceneE57,
|
|
|
registerDownloadE57Modal,
|
|
|
dayjs,
|
|
|
+ parentId,
|
|
|
+ handleFolder,
|
|
|
+ handleItem,
|
|
|
+ handleOpenTree,
|
|
|
+ handleFolderDelete,
|
|
|
};
|
|
|
},
|
|
|
});
|
|
|
</script>
|
|
|
|
|
|
-<style scoped>
|
|
|
+<style scoped lang="less">
|
|
|
:deep(.ant-table-tbody > tr:has(.ant-checkbox-disabled) > td) {
|
|
|
opacity: 0.5;
|
|
|
user-select: none;
|
|
|
@@ -682,4 +769,21 @@
|
|
|
:deep(.vben-basic-table-action.left) {
|
|
|
justify-content: center;
|
|
|
}
|
|
|
+ .desc-wrap-BasicTable{
|
|
|
+ .fileName{
|
|
|
+ font-weight: 400;
|
|
|
+ font-size: 14px;
|
|
|
+ line-height: 22px;
|
|
|
+ color: #9D9D9D;//#6C6C6C
|
|
|
+ span{
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+ .active{
|
|
|
+ color: #000;//#165DFF;
|
|
|
+ }
|
|
|
+ .fileNameItem{
|
|
|
+ margin-right: 8px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
</style>
|