|
|
@ -3,102 +3,102 @@ |
|
|
|
<view class="statbar"> |
|
|
|
<view class="status_bar"></view> |
|
|
|
</view> |
|
|
|
|
|
|
|
<view class="business-box"> |
|
|
|
<view class="business-wrap" v-for="(item, index) in list" :key="index" @click="toUpload(item.url)"> |
|
|
|
|
|
|
|
<view class="business-box"> |
|
|
|
<view class="business-wrap" v-for="(item, index) in list" :key="index" @click="toUpload(item.url)"> |
|
|
|
<view class="business-info"> |
|
|
|
<view class="name">{{item.name}}</view> |
|
|
|
<view class="name">{{ item.name }}</view> |
|
|
|
<!-- <view class="desc">{{item.url}}</view> --> |
|
|
|
</view> |
|
|
|
|
|
|
|
<view class="mwbs-list" v-if="item.mwbsList && item.mwbsList.length > 0"> |
|
|
|
<view class="mwbs-item" v-for="(val, key) in item.mwbsList" :key="key" @click.stop="toUpload(item.url)"> |
|
|
|
<view class="name">{{val.projectName}}</view> |
|
|
|
<view class="name">{{ val.projectName }}</view> |
|
|
|
<!-- <view class="desc">{{val}}</view> --> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</template> |
|
|
|
|
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</template> |
|
|
|
|
|
|
|
<script setup> |
|
|
|
import { ref, computed } from 'vue'; |
|
|
|
import { useStore } from 'vuex'; |
|
|
|
import Config from '@/common/js/config.js'; |
|
|
|
|
|
|
|
const store = useStore(); |
|
|
|
const list = ref([]); |
|
|
|
const user = computed(() => store.state.user.user); |
|
|
|
const userJson = uni.$storage.getStorageSync('user'); |
|
|
|
|
|
|
|
if (userJson) { |
|
|
|
const user = JSON.parse(userJson); |
|
|
|
store.commit('user/setUser', user); |
|
|
|
import { ref, computed } from 'vue'; |
|
|
|
import { useStore } from 'vuex'; |
|
|
|
import Config from '@/common/js/config.js'; |
|
|
|
|
|
|
|
const store = useStore(); |
|
|
|
const list = ref([]); |
|
|
|
const user = computed(() => store.state.user.user); |
|
|
|
const userJson = uni.$storage.getStorageSync('user'); |
|
|
|
|
|
|
|
if (userJson) { |
|
|
|
const user = JSON.parse(userJson); |
|
|
|
store.commit('user/setUser', user); |
|
|
|
} |
|
|
|
|
|
|
|
getList(); |
|
|
|
|
|
|
|
async function getList() { |
|
|
|
try { |
|
|
|
const res = await uni.$u.api.getBusinessList(); |
|
|
|
list.value = res; |
|
|
|
} catch (error) { |
|
|
|
console.error('error: ', error); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
getList(); |
|
|
|
async function toUpload(url) { |
|
|
|
store.commit('setDomain', url); |
|
|
|
|
|
|
|
async function getList() { |
|
|
|
try { |
|
|
|
const res = await uni.$u.api.getBusinessList(); |
|
|
|
list.value = res; |
|
|
|
} catch (error) { |
|
|
|
console.error('error: ', error); |
|
|
|
} |
|
|
|
try { |
|
|
|
const res = await uni.$u.api.import(); |
|
|
|
// 导入WBS成功后 |
|
|
|
// 直接打开导入的项目 |
|
|
|
uni.$ui.showToast('导入成功,即将打开新项目', 3000); |
|
|
|
const { apiUrl } = Config; |
|
|
|
let defaultwbs = `${apiUrl}/defaultwbs`; |
|
|
|
res.url && (defaultwbs = res.url); |
|
|
|
|
|
|
|
setTimeout(() => { |
|
|
|
uni.navigateTo({ url: `/pages/project/project?u=${user.value.id}&p=${res.id}&pname=${res.name}&url=${encodeURIComponent(res.url)}` }); |
|
|
|
}, 2000); |
|
|
|
} catch (error) { |
|
|
|
console.error('error: ', error); |
|
|
|
uni.$ui.showToast(error || '导入失败', 6000); |
|
|
|
} |
|
|
|
|
|
|
|
async function toUpload(url) { |
|
|
|
store.commit('setDomain', url); |
|
|
|
|
|
|
|
try { |
|
|
|
const res = await uni.$u.api.import(); |
|
|
|
// 导入WBS成功后 |
|
|
|
// 直接打开导入的项目 |
|
|
|
uni.$ui.showToast('导入成功,即将打开新项目', 3000); |
|
|
|
const { apiUrl } = Config; |
|
|
|
const defaultwbs = `${apiUrl}/defaultwbs`; |
|
|
|
res.url && (defaultwbs = res.url); |
|
|
|
setTimeout(() => { |
|
|
|
uni.navigateTo({ |
|
|
|
url: `/pages/project/project?u=${user.value.id}&p=${res.id}&pname=${res.name}&url=${encodeURIComponent(res.url)}` |
|
|
|
}); |
|
|
|
}, 2000); |
|
|
|
} catch (error) { |
|
|
|
console.error('error: ', error); |
|
|
|
uni.$ui.showToast(error || '导入失败', 6000); |
|
|
|
} |
|
|
|
} |
|
|
|
</script> |
|
|
|
|
|
|
|
<style lang="scss" scoped> |
|
|
|
.business-box { |
|
|
|
padding: 0 16px; |
|
|
|
} |
|
|
|
|
|
|
|
.business-wrap { |
|
|
|
width: 100%; |
|
|
|
box-sizing: border-box; |
|
|
|
|
|
|
|
.business-info, .mwbs-item { |
|
|
|
padding: 10px; |
|
|
|
border-bottom: 1px solid #eeeeee; |
|
|
|
} |
|
|
|
|
|
|
|
.name { |
|
|
|
line-height: 36px; |
|
|
|
} |
|
|
|
|
|
|
|
.desc { |
|
|
|
font-size: 12px; |
|
|
|
color: #999; |
|
|
|
} |
|
|
|
} |
|
|
|
</script> |
|
|
|
|
|
|
|
.mwbs-list { |
|
|
|
padding-left: 16px; |
|
|
|
<style lang="scss" scoped> |
|
|
|
.business-box { |
|
|
|
padding: 0 16px; |
|
|
|
} |
|
|
|
|
|
|
|
.mwbs-item:last-child { |
|
|
|
border-bottom: none; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
.business-wrap { |
|
|
|
width: 100%; |
|
|
|
box-sizing: border-box; |
|
|
|
|
|
|
|
.business-info, |
|
|
|
.mwbs-item { |
|
|
|
padding: 10px; |
|
|
|
border-bottom: 1px solid #eeeeee; |
|
|
|
} |
|
|
|
|
|
|
|
.name { |
|
|
|
line-height: 36px; |
|
|
|
} |
|
|
|
|
|
|
|
.desc { |
|
|
|
font-size: 12px; |
|
|
|
color: #999; |
|
|
|
} |
|
|
|
|
|
|
|
.mwbs-list { |
|
|
|
padding-left: 16px; |
|
|
|
|
|
|
|
.mwbs-item:last-child { |
|
|
|
border-bottom: none; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
</style> |
|
|
|