You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
1.6 KiB
72 lines
1.6 KiB
4 years ago
|
<template>
|
||
|
<view>
|
||
|
<view @click="handleUpload" v-if="task.name === '导入WBS新建项目'">{{ task.name }}</view>
|
||
|
<view @click="handleUpdate" v-if="task.name === '导入WBS更新项目'">{{ task.name }}</view>
|
||
|
<!-- 全局提示框 -->
|
||
|
<u-top-tips ref="uTips"></u-top-tips>
|
||
|
</view>
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
import { ref, computed, defineProps } from 'vue';
|
||
|
import { useStore } from 'vuex';
|
||
|
|
||
|
defineProps({ task: { type: Object, default: () => {} } });
|
||
|
|
||
|
const store = useStore();
|
||
|
const userId = computed(() => store.state.user.userId);
|
||
|
const projectId = computed(() => store.getters['project/projectId']);
|
||
|
const uTips = ref(null);
|
||
|
|
||
|
// 导入成功
|
||
|
function onUploadSuccess() {
|
||
|
uTips.show({
|
||
|
title: '导入成功,即将打开新项目',
|
||
|
type: 'success',
|
||
|
duration: '3000',
|
||
|
});
|
||
|
}
|
||
|
|
||
|
// 导入失败
|
||
|
function onUploadError(error) {
|
||
|
uTips.show({
|
||
|
title: error || '导入失败',
|
||
|
type: 'error',
|
||
|
duration: '6000',
|
||
|
});
|
||
|
}
|
||
|
|
||
|
// 更新项目
|
||
|
// TODO: 更新接口没写完
|
||
|
async function handleUpdate() {
|
||
|
try {
|
||
|
await uni.$u.api.import({ projectId: projectId.value });
|
||
|
// 导入WBS成功后
|
||
|
// 直接打开导入的项目
|
||
|
onUploadSuccess();
|
||
|
} catch (error) {
|
||
|
onUploadError(error);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// 导入wbs
|
||
|
async function handleUpload() {
|
||
|
try {
|
||
|
const res = await uni.$u.api.import();
|
||
|
// 导入WBS成功后
|
||
|
// 直接打开导入的项目
|
||
|
onUploadSuccess();
|
||
|
setTimeout(() => {
|
||
|
uni.$u.route('/pages/project/project', {
|
||
|
u: userId.value,
|
||
|
p: res.id,
|
||
|
pname: res.pname,
|
||
|
url: res.url,
|
||
|
});
|
||
|
}, 2000);
|
||
|
} catch (error) {
|
||
|
onUploadError(error);
|
||
|
}
|
||
|
}
|
||
|
</script>
|