zhengzhou 3 lat temu
rodzic
commit
fab96ff2af
3 zmienionych plików z 32 dodań i 16 usunięć
  1. +1
    -0
      src/utils/request.js
  2. +4
    -4
      src/views/main_web/recycle/components/collapse-unit.vue
  3. +27
    -12
      src/views/main_web/recycle/index.vue

+ 1
- 0
src/utils/request.js Wyświetl plik

@@ -140,6 +140,7 @@ function mapApiPathToFullPath(path) {
case "project/linkProject":
case 'file/submitDeliverables':
case 'lockingmsg/markRead':
case 'file/removeFromRecycleBin':
// case 'template/deleteTemplateNodeModelFile':
method = 'POST';
break;


+ 4
- 4
src/views/main_web/recycle/components/collapse-unit.vue Wyświetl plik

@@ -9,7 +9,7 @@
class="collapse-unit-item"
v-for="item in list"
:key="item[itemKey]"
:class="{ 'collapse-unit-item-active': item[itemKey] === selectedKey }"
:class="{ 'collapse-unit-item-active': item[itemKey] === selectedItem[itemKey]}"
@click.stop="clickItem(item)"
>
{{item[itemLabel]}}
@@ -21,7 +21,7 @@
<script>
export default {
model: {
prop: 'selectedKey',
prop: 'selectedItem',
event: 'select',
},
props: {
@@ -35,7 +35,7 @@ export default {
},
title: String,
defaultExpand: Boolean,
selectedKey: String,
selectedItem: Object,
list: Array, // [{ key, label }]
},
data() {
@@ -45,7 +45,7 @@ export default {
},
methods: {
clickItem(item) {
this.$emit('select', item[this.itemKey]);
this.$emit('select', item);
}
}
}


+ 27
- 12
src/views/main_web/recycle/index.vue Wyświetl plik

@@ -27,7 +27,7 @@
<collapse-unit
title="正在进行的项目"
:list="aliveProjectList"
v-model="selectedProjectId"
v-model="selectedProject"
itemKey="id"
itemLabel="projName"
style="max-height: 45%"
@@ -35,7 +35,7 @@
<collapse-unit
title="被删除的项目"
:list="removedProjectList"
v-model="selectedProjectId"
v-model="selectedProject"
itemKey="id"
itemLabel="projName"
style="max-height: 45%"
@@ -75,11 +75,11 @@
class="bottom-button"
type="primary"
:disabled="!canShowButton"
>放回原处</el-button>
@click.stop="selectedProject.deleted ? copyFiles() : recoverFiles()"
>{{selectedProject.deleted ? '拷贝转移至' : '放回原处'}}</el-button>
</div>
</div>
</div>

</div>
</template>
<script>
@@ -88,7 +88,8 @@ import AppHeader from "@/components/app-header/app-header.vue";
import CollapseUnit from "./components/collapse-unit.vue";
import ItemList from "./components/item-list";
import { VirtualFolder } from "../workspace/helper";
import { firstCharToLowerCase } from "@/utils/tool";
import { firstCharToLowerCase, notify } from "@/utils/tool";
import { wrapErrorHint } from '@/utils/request';
export default {
components: { AppHeader, /* SearchBar, */ CollapseUnit, ItemList },
mounted() {
@@ -101,15 +102,15 @@ export default {
// --------------------------------------
aliveProjectList: [],
removedProjectList: [],
selectedProjectId: undefined,
selectedProject: {},
rightPanelItemList: [],
selectable: false,
selectedKeyMap: {}, // 选中的文件的hash
};
},
watch: {
selectedProjectId(projectId) {
this.fetchProjectRemovedFiles(projectId);
selectedProject(project) {
this.fetchProjectRemovedFiles(project.id);
this.selectable = false;
},
selectable() {
@@ -144,11 +145,11 @@ export default {
this.aliveProjectList = aliveProjectList;
this.removedProjectList = removedProjectList;

this.selectedProjectId = aliveProjectList.length
? aliveProjectList[0].id
this.selectedProject = aliveProjectList.length
? aliveProjectList[0]
: removedProjectList.length
? removedProjectList[0].id
: undefined;
? removedProjectList[0]
: {};
},
async fetchProjectRemovedFiles(projectId) {
if (!projectId) {
@@ -188,6 +189,20 @@ export default {
this.selectedKeyMap = { ...tempMap, ...stateMap };
}
},
async recoverFiles() {
const project = this.selectedProject;
const fileIds = Object.keys(this.selectedKeyMap).filter((fileId) => {
return this.selectedKeyMap[fileId];
});
const res = await this.$fetchApi('file/removeFromRecycleBin', { Ids: fileIds });
wrapErrorHint(res);
if(res.Code !== 0) { return; }
notify.success('文件已放回原处');
this.fetchProjectRemovedFiles(project.id);
},
copyFiles() {
}
},
};



Ładowanie…
Anuluj
Zapisz