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.
55 lines
1.2 KiB
55 lines
1.2 KiB
4 years ago
|
<template>
|
||
|
<!-- 子项目插件 -->
|
||
|
<view>
|
||
|
<view v-for="item in data.sonProject" :key="item.detailId">
|
||
|
<span class="text-xs text-blue-500" @click="openProject(item)">{{ item.name }}</span>
|
||
|
</view>
|
||
|
</view>
|
||
|
</template>
|
||
|
|
||
|
<script setup>
|
||
|
import { defineProps, onMounted } from 'vue';
|
||
|
import Config from '@/common/js/config.js';
|
||
|
|
||
|
const props = defineProps({
|
||
|
task: {
|
||
|
type: Object,
|
||
|
default: () => {},
|
||
|
},
|
||
|
});
|
||
|
|
||
|
const data = reactive({ sonProject: [] });
|
||
|
|
||
|
onMounted(() => {
|
||
|
getSonProject();
|
||
|
});
|
||
|
|
||
|
async function getSonProject() {
|
||
|
try {
|
||
|
const data = await uni.$u.api.findSonProject({ projectId: props.task.detailId });
|
||
|
data.sonProject = data;
|
||
|
} catch (error) {
|
||
|
console.error('p-subproject.vue getSonProject error: ', error);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 打开项目
|
||
|
* @param {object} project 所点击的项目的信息
|
||
|
*/
|
||
|
function openProject(project) {
|
||
|
const { name, id, url } = project;
|
||
|
const { apiUrl } = Config;
|
||
|
const defaultwbs = `${apiUrl}/defaultwbs`;
|
||
|
url && (defaultwbs = url);
|
||
|
uni.$u.route('pages/project/project', {
|
||
|
u: userId.value,
|
||
|
p: id,
|
||
|
pname: name,
|
||
|
url: encodeURIComponent(url),
|
||
|
});
|
||
|
}
|
||
|
</script>
|
||
|
|
||
|
<style></style>
|