|
|
|
@ -10,7 +10,7 @@ |
|
|
|
<a-popover placement="bottomLeft"> |
|
|
|
<template #content> |
|
|
|
<p class="cursor-pointer" @click="showImportCard(item)">导入</p> |
|
|
|
<p class="m-0 cursor-pointer" @click="exportProject(item.id)">导出</p> |
|
|
|
<p class="m-0 cursor-pointer" @click="exportProject(item.id, item.url)">导出</p> |
|
|
|
<!-- <p class="m-0 cursor-pointer" @click="showDelCard(item)">删除</p> --> |
|
|
|
</template> |
|
|
|
<div class="icon"><img src="https://www.tall.wiki/staticrec/drag.svg" /></div> |
|
|
|
@ -52,7 +52,7 @@ |
|
|
|
<a-popover placement="bottomLeft"> |
|
|
|
<template #content> |
|
|
|
<!-- <p class="cursor-pointer" @click="showImportCard(sonItem)">导入</p> --> |
|
|
|
<p class="cursor-pointer" @click="exportProject(sonItem.id)">导出</p> |
|
|
|
<p class="cursor-pointer" @click="exportProject(sonItem.id, sonItem.url)">导出</p> |
|
|
|
<p class="m-0 cursor-pointer" @click="showDelCard(sonItem)">删除</p> |
|
|
|
</template> |
|
|
|
<div class="icon"><img src="https://www.tall.wiki/staticrec/drag.svg" /></div> |
|
|
|
@ -96,7 +96,6 @@ |
|
|
|
> |
|
|
|
<template #item="{ element }"> |
|
|
|
<li class="item-box" v-if="element.businessCode !== 'ZERO'"> |
|
|
|
<!-- <p>{{ element.name }}</p> --> |
|
|
|
<div |
|
|
|
class="one-level cursor-pointer h-60 flex items-center" |
|
|
|
:class="{ 'h-70': element.sonProjectList && element.sonProjectList.length > 0 }" |
|
|
|
@ -107,7 +106,7 @@ |
|
|
|
<a-popover placement="bottomLeft"> |
|
|
|
<template #content> |
|
|
|
<p class="cursor-pointer" @click="showImportCard(element)">导入</p> |
|
|
|
<p class="cursor-pointer" @click="exportProject(element.id)">导出</p> |
|
|
|
<p class="cursor-pointer" @click="exportProject(element.id, element.url)">导出</p> |
|
|
|
<p class="m-0 cursor-pointer" @click="showDelCard(element)">删除</p> |
|
|
|
</template> |
|
|
|
<div class="icon"><img src="https://www.tall.wiki/staticrec/drag.svg" /></div> |
|
|
|
@ -161,7 +160,7 @@ |
|
|
|
<a-popover placement="bottomLeft"> |
|
|
|
<template #content> |
|
|
|
<!-- <p class="cursor-pointer" @click="showImportCard(sonItem)">导入</p> --> |
|
|
|
<p class="cursor-pointer" @click="exportProject(element.id)">导出</p> |
|
|
|
<p class="cursor-pointer" @click="exportProject(element.id, element.url)">导出</p> |
|
|
|
<p class="m-0 cursor-pointer" @click="showDelCard(element)">删除</p> |
|
|
|
</template> |
|
|
|
<div class="icon"><img src="https://www.tall.wiki/staticrec/drag.svg" /></div> |
|
|
|
@ -270,7 +269,7 @@ async function getProjectsList() { |
|
|
|
|
|
|
|
store.commit('projects/setProjects', data); |
|
|
|
} catch (error) { |
|
|
|
message.info(error); |
|
|
|
message.info(error || '项目列表获取失败'); |
|
|
|
throw new Error(error); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -279,11 +278,12 @@ async function getProjectsList() { |
|
|
|
function toDetail(item) { |
|
|
|
clearRolesData(); |
|
|
|
clearTasksData(); |
|
|
|
|
|
|
|
store.commit('projects/setProject', item); |
|
|
|
store.commit('task/setTaskDetailParams', ''); // 设置详情页参数 |
|
|
|
store.commit('task/setTaskDetailUrl', ''); // 设置详情页链接 |
|
|
|
store.commit('task/setTaskDetailShow', ''); |
|
|
|
router.push({ path: '/tall/pc/home/test' }); |
|
|
|
// router.push({ path: '/tall/pc/home/test' }); |
|
|
|
} |
|
|
|
|
|
|
|
// 父项目展开收起 |
|
|
|
@ -303,7 +303,6 @@ const showImportCard = item => { |
|
|
|
async function handleImport() { |
|
|
|
importVisible.value = false; |
|
|
|
await importProject(); |
|
|
|
getProjectsList(); |
|
|
|
} |
|
|
|
|
|
|
|
// 导入 |
|
|
|
@ -314,11 +313,12 @@ async function importProject() { |
|
|
|
async function toImport(e) { |
|
|
|
try { |
|
|
|
const file = e.target.files[0]; |
|
|
|
const param = new FormData(); |
|
|
|
param.append('file', file); |
|
|
|
const formData = new FormData(); |
|
|
|
formData.append('param', file); |
|
|
|
const config = { headers: { 'Content-Type': 'multipart/form-data' } }; |
|
|
|
|
|
|
|
const res = await importWbs(currUrl.value, param, importParentId.value); |
|
|
|
const res = await importWbs(currUrl.value, formData, importParentId.value); |
|
|
|
getProjectsList(); |
|
|
|
} catch (error) { |
|
|
|
message.info(error || '导入失败'); |
|
|
|
} |
|
|
|
@ -328,6 +328,7 @@ async function toImport(e) { |
|
|
|
const showDelCard = item => { |
|
|
|
visible.value = true; |
|
|
|
deleteId.value = item.id; |
|
|
|
currUrl.value = item.url; |
|
|
|
}; |
|
|
|
|
|
|
|
// 删除 |
|
|
|
@ -338,25 +339,23 @@ async function handleOk() { |
|
|
|
} |
|
|
|
|
|
|
|
// 删除项目 |
|
|
|
async function deleteProject(param) { |
|
|
|
async function deleteProject(id) { |
|
|
|
try { |
|
|
|
await delProject(param); |
|
|
|
await delProject(id, currUrl.value); |
|
|
|
} catch (error) { |
|
|
|
message.info(error); |
|
|
|
message.info(error || '删除失败'); |
|
|
|
throw new Error(error); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 导出 |
|
|
|
async function exportProject(id) { |
|
|
|
async function exportProject(id, url) { |
|
|
|
try { |
|
|
|
const params = { param: { projectId: id } }; |
|
|
|
|
|
|
|
const { url } = store.state.projects.project; |
|
|
|
const data = await exportWbs(params, url); |
|
|
|
window.open(data.url, '_blank'); |
|
|
|
} catch (error) { |
|
|
|
message.info(error); |
|
|
|
message.info(error || '导出失败'); |
|
|
|
throw new Error(error); |
|
|
|
} |
|
|
|
} |
|
|
|
|