jetli 2024-07-08 08:43:34 +08:00
commit a0abef40b5
16 changed files with 0 additions and 650 deletions

View File

@ -128,9 +128,6 @@ export default {
gotoProfile() { gotoProfile() {
this.mnx_navToUserProfile() this.mnx_navToUserProfile()
}, },
gotoFinance() {
this.mnx_navToFinanceCenter()
},
gotoHistory() { gotoHistory() {
this.mnx_navToHistoryHub() this.mnx_navToHistoryHub()
}, },

View File

@ -39,9 +39,6 @@ export default {
mnx_navToNewUserSetFlid(suggested_flid) { mnx_navToNewUserSetFlid(suggested_flid) {
this.$router.push('/new-user-set-flid/' + suggested_flid) this.$router.push('/new-user-set-flid/' + suggested_flid)
}, },
mnx_navToMyWorkspaceProjects() {
this.$router.push('/my-workspace-projects/')
},
mnx_navToRequestIssue(loadFrom) { mnx_navToRequestIssue(loadFrom) {
this.$router.push('/request-issue/' + loadFrom) this.$router.push('/request-issue/' + loadFrom)
@ -52,14 +49,6 @@ export default {
mnx_navToRequestSubmitted(requestId) { mnx_navToRequestSubmitted(requestId) {
this.$router.push('/request-submitted/' + requestId) this.$router.push('/request-submitted/' + requestId)
}, },
// mnx_navToRequestDeposit(requestId) {
// this.$router.push('/request-deposit/' + requestId)
// },
// mnx_navToRequestDeposited(requestId) {
// this.$router.push('/request-deposited/' + requestId)
// },
mnx_navToLoadTemplates() { mnx_navToLoadTemplates() {
this.$router.push('/load-template') this.$router.push('/load-template')
}, },
@ -68,10 +57,6 @@ export default {
this.$router.push('/copy-existing') this.$router.push('/copy-existing')
}, },
// mnx_navToMyWorkspaceProposals() {
// this.$router.push('/my-workspace-proposals/')
// },
// //message hub // //message hub
mnx_navToMessageHub() { mnx_navToMessageHub() {
this.$router.push('/message-hub') this.$router.push('/message-hub')
@ -81,13 +66,6 @@ export default {
mnx_navToProviderHub() { mnx_navToProviderHub() {
this.$router.push('/provider-hub') this.$router.push('/provider-hub')
}, },
// mnx_navToRequestManage(requestId) {
// this.$router.push('/request-manage/' + requestId)
// },
// mnx_navToReviewProposalBeforeAcceptance(requestId, proposalId) {
// this.$router.push('/review-proposal-before-acceptance/' + requestId + '/' + proposalId)
// },
// //request hub // //request hub
mnx_navToRequestHub() { mnx_navToRequestHub() {
@ -111,9 +89,6 @@ export default {
mnx_navToUserProfile() { mnx_navToUserProfile() {
this.$router.push('/user-profile') this.$router.push('/user-profile')
}, },
mnx_navToFinanceCenter() {
this.$router.push('/user-finance')
},
mnx_navToHistoryHub() { mnx_navToHistoryHub() {
this.$router.push('/user-history') this.$router.push('/user-history')
}, },

View File

@ -25,7 +25,6 @@
import { import {
UserAuthApi, UserAuthApi,
applicantValidator applicantValidator
// userProfileValidator,
} from '@/utils/index' } from '@/utils/index'
import { signinActionEnum } from '@/types/index' import { signinActionEnum } from '@/types/index'
@ -75,7 +74,6 @@ export default {
} }
</script> </script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped lang="scss"> <style scoped lang="scss">
.front-container { .front-container {
padding: 20px 0; padding: 20px 0;

View File

@ -278,7 +278,6 @@
<script> <script>
import { import {
ProviderHubApi ProviderHubApi
// userProfileValidator,
} from '@/utils/index' } from '@/utils/index'
export default { export default {
name: 'ProviderHub', name: 'ProviderHub',

View File

@ -1,29 +0,0 @@
<template>
<div>
<p>Code Information</p>
</div>
</template>
<script>
import { WorksapceApi } from '@/utils/index'
export default {
name: 'ProjectManageCode',
props: {
projectId: {
required: true,
type: String
}
},
mounted() {},
data() {
return {
project: null,
message: null
}
},
methods: {
fetchProjectGeneral() {}
}
}
</script>

View File

@ -1,27 +0,0 @@
<template>
<div>
<p>Deploy Information</p>
</div>
</template>
<script>
import { WorksapceApi } from '@/utils/index'
export default {
name: 'ProjectManageDeploy',
props: {
projectId: {
required: true,
type: String
}
},
mounted() {},
data() {
return {
project: null,
message: null
}
},
methods: {}
}
</script>

View File

@ -1,39 +0,0 @@
<template>
<div>
<p>General Information</p>
</div>
</template>
<script>
import { WorksapceApi } from '@/utils/index'
export default {
name: 'ProjectManageGeneral',
props: {
projectId: {
required: true,
type: String
}
},
mounted() {
this.fetchProject()
},
data() {
return {
project: null,
message: null
}
},
methods: {
fetchProject() {
WorksapceApi.fetchProject(this.projectId)
.then((response) => {
this.project = response.data
})
.catch((error) => {
this.mnx_backendErrorHandler(error)
})
}
}
}
</script>

View File

@ -1,140 +0,0 @@
<template>
<div class="workspace-container">
<div class="workspace-header">
<button class="issue-request-button" @click="issueRequest()">
{{ $t('Issue Request') }}
</button>
</div>
<div class="workspace-body">
<div class="accordion" v-for="(project, index) in projects" :key="index" :id="project.id">
<div class="accordion-item">
<h2 class="accordion-header">
<button
class="accordion-button collapsed"
type="button"
data-bs-toggle="collapse"
:data-bs-target="'#collapse-' + index"
aria-expanded="false"
:aria-controls="'collapse-' + index"
>
<span class="project-item-title">{{ project.title }}</span>
<span class="project-item-partner">{{ project.partner }}</span>
<span class="project-item-status">{{ fromIntToProjectStatus(project.status) }}</span>
<span class="project-item-date">{{
getDateFromFulltimeString(project.update_time)
}}</span>
</button>
</h2>
<div
:id="'collapse-' + index"
class="accordion-collapse collapse"
:data-bs-parent="'#' + project.id"
>
<div class="accordion-body">
<strong>{{ $t('pm-1') }}</strong> {{ $t('pm-2') }}<code>{{ $t('pm-3') }}</code
>{{ $t('pm-4') }}
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { WorksapceApi, DateUtils } from '@/utils/index'
import { projectStatusEnum, convertIntoToProjectStatus } from '@/types/index'
export default {
name: 'MyWorkspaceProjects',
props: {},
mounted() {
this.fetchProject()
},
data() {
return {
projects: null,
message: null
}
},
methods: {
issueRequest() {
this.mnx_navToRequestIssue(1)
},
fetchProject() {
WorksapceApi.fetchWorkspaceProjects()
.then((response) => {
this.projects = response.data
})
.catch((error) => {
this.mnx_backendErrorHandler(error)
})
},
goToManage(project) {
switch (project.status) {
case projectStatusEnum.RECRUITING:
this.mnx_navToRequestManage(project.request_id)
break
case projectStatusEnum.PENDING:
this.mnx_navToProposalManage(project.proposal_id)
break
case projectStatusEnum.ONGOING:
this.mnx_navToProjectManage(project.project_id)
break
default:
console.error('unexpected value:' + project.status)
}
},
fromIntToProjectStatus(statusInt) {
return convertIntoToProjectStatus(statusInt)
},
getDateFromFulltimeString(fulltime) {
return DateUtils.FromJsonToDateString(fulltime)
}
}
}
</script>
<style scoped lang="scss">
.workspace-container {
@extend .flex-colum-container;
}
.workspace-header {
@extend .flex-row-container;
@extend .justify-content-end;
}
.issue-request-button {
@extend .initiate-button;
}
.workspace-body {
@extend .container;
}
.project-item {
@extend .text-start;
@extend .px-3;
}
.project-item-title {
@extend .project-item;
@extend .w-40;
}
.project-item-partner {
@extend .project-item;
@extend .w-20;
}
.project-item-status {
@extend .project-item;
@extend .w-10;
}
.project-item-date {
@extend .project-item;
@extend .w-30;
}
</style>

View File

@ -1,27 +0,0 @@
<template>
<div>
<p>Issue Information</p>
</div>
</template>
<script>
import { WorksapceApi } from '@/utils/index'
export default {
name: 'ProjectManageIssues',
props: {
projectId: {
required: true,
type: String
}
},
mounted() {},
data() {
return {
project: null,
message: null
}
},
methods: {}
}
</script>

View File

@ -1,27 +0,0 @@
<template>
<div>
<p>Product Information</p>
</div>
</template>
<script>
import { WorksapceApi } from '@/utils/index'
export default {
name: 'ProjectManageProduct',
props: {
projectId: {
required: true,
type: String
}
},
mounted() {},
data() {
return {
project: null,
message: null
}
},
methods: {}
}
</script>

View File

@ -1,27 +0,0 @@
<template>
<div>
<p>Progress Information</p>
</div>
</template>
<script>
import { WorksapceApi } from '@/utils/index'
export default {
name: 'ProjectManageProgress',
props: {
projectId: {
required: true,
type: String
}
},
mounted() {},
data() {
return {
project: null,
message: null
}
},
methods: {}
}
</script>

View File

@ -1,85 +0,0 @@
<template>
<div>
<div class="header-container">
<div class="nav-bar-container" role="navigation">
<button class="nav-bar-button" @click="gotoGeneral">General</button>
<button class="nav-bar-button" @click="gotoProgress">Progress</button>
<button class="nav-bar-button" @click="gotoCode">Code</button>
<button class="nav-bar-button" @click="gotoIssues">Issues</button>
<button class="nav-bar-button" @click="gotoDeploy">Deploy</button>
<button class="nav-bar-button" @click="gotoProduct">Product</button>
</div>
</div>
<div class="project-manager-main">
<router-view></router-view>
</div>
</div>
</template>
<script>
import { WorksapceApi } from '@/utils/index'
export default {
name: 'ProjectManage',
props: {
projectId: {
required: true,
type: String
}
},
mounted() {
this.gotoGeneral()
},
data() {
return {
project: null,
message: null
}
},
methods: {
gotoCode() {
this.mnx_navToProjectManageCode(this.projectId)
},
gotoDeploy() {
this.mnx_navToProjectManageDeploy(this.projectId)
},
gotoGeneral() {
this.mnx_navToProjectManageGeneral(this.projectId)
},
gotoIssues() {
this.mnx_navToProjectManageIssues(this.projectId)
},
gotoProduct() {
this.mnx_navToProjectManageProduct(this.projectId)
},
gotoProgress() {
this.mnx_navToProjectManageProgress(this.projectId)
}
}
}
</script>
<style lang="scss">
.project-manager-main {
width: 100%;
}
.header-container {
@extend .flex-colum-container;
}
.nav-bar-container {
@extend .flex-row-container;
}
.nav-bar-item {
@extend .nav-bar-item;
@extend .nav-link;
@extend .btn;
@extend .btn-outline-info;
}
.nav-bar-button {
@extend .nav-bar-item;
@extend .w-20;
}
</style>

View File

@ -1,56 +0,0 @@
<template>
<div>
<p class="deposit-title">Choose the amount to deposit</p>
<div class="action-footer">
<button class="cancel-button" @click="cancel">Skip</button>
<button class="submit-button" @click="deposit">Deposit</button>
</div>
</div>
</template>
<script>
export default {
name: 'RquestIssueDeposit',
props: {
requestId: {
required: true,
type: String
}
},
mounted() {},
data() {
return {
email: null,
message: null
}
},
methods: {
cancel() {
this.mnx_navToWorkspace()
},
deposit() {
this.mnx_navToRequestDeposited(this.requestId)
}
}
}
</script>
<style lang="scss" scoped>
.deposit-title {
@extend .fs-2;
}
.action-footer {
@extend .flex-row-container;
@extend .justify-content-around;
}
.cancel-button {
@extend .stop-button;
}
.submit-button {
@extend .proceed-button;
}
</style>

View File

@ -1,51 +0,0 @@
<template>
<div>
<p class="deposited-title">The money has been deposited.</p>
<div class="action-footer">
<button class="submit-button" @click="back()">Back to workspace</button>
</div>
</div>
</template>
<script>
export default {
name: 'RquestIssueDeposited',
props: {
requestId: {
required: true,
type: String
}
},
mounted() {},
data() {
return {
email: null,
message: null
}
},
methods: {
back() {
this.mnx_navToWorkspace()
}
}
}
</script>
<style lang="scss" scoped>
.deposited-title {
@extend .fs-2;
}
.action-footer {
@extend .flex-row-container;
@extend .justify-content-around;
}
.cancel-button {
@extend .stop-button;
}
.submit-button {
@extend .proceed-button;
}
</style>

View File

@ -12,10 +12,6 @@
</template> </template>
<script> <script>
import {
UserProfileApi
// userProfileValidator,
} from '@/utils/index'
export default { export default {
name: 'RquestIssueSubmitted', name: 'RquestIssueSubmitted',
props: { props: {

View File

@ -16,25 +16,12 @@ import NewUserSetPassword from '@/pages/guest/NewUserSetPassword.vue'
import NewUserSetFlid from '@/pages/guest/NewUserSetFlid.vue' import NewUserSetFlid from '@/pages/guest/NewUserSetFlid.vue'
import SigninWithEmailAndPassword from '@/pages/guest/SigninWithEmailAndPassword.vue' import SigninWithEmailAndPassword from '@/pages/guest/SigninWithEmailAndPassword.vue'
//Workspace projects
import MyWorkspaceProjects from '@/pages/user/workspace/projectManage/Home.vue'
import ProjectManage from '@/pages/user/workspace/projectManage/ProjectManage.vue'
import ProjectManageCode from '@/pages/user/workspace/projectManage/Code.vue'
import ProjectManageDeploy from '@/pages/user/workspace/projectManage/Deploy.vue'
import ProjectManageGeneral from '@/pages/user/workspace/projectManage/General.vue'
import ProjectManageIssues from '@/pages/user/workspace/projectManage/Issues.vue'
import ProjectManageProduct from '@/pages/user/workspace/projectManage/Product.vue'
import ProjectManageProgress from '@/pages/user/workspace/projectManage/Progress.vue'
//Workspace Requests //Workspace Requests
import MyWorkspaceRequests from '@/pages/user/workspace/requestManage/Home.vue' import MyWorkspaceRequests from '@/pages/user/workspace/requestManage/Home.vue'
/// Request Issue /// Request Issue
import IssueRequest from '@/pages/user/workspace/requestIssue/Issue.vue' import IssueRequest from '@/pages/user/workspace/requestIssue/Issue.vue'
import RequestSubmitted from '@/pages/user/workspace/requestIssue/Submitted.vue' import RequestSubmitted from '@/pages/user/workspace/requestIssue/Submitted.vue'
import RequestDeposit from '@/pages/user/workspace/requestIssue/Deposit.vue'
import RequestDeposited from '@/pages/user/workspace/requestIssue/Deposited.vue'
//Workspace Proposals //Workspace Proposals
import MyWorkspaceProposals from '@/pages/user/workspace/proposalManage/Home.vue' import MyWorkspaceProposals from '@/pages/user/workspace/proposalManage/Home.vue'
@ -53,7 +40,6 @@ import ProposalSubmitted from '@/pages/user/requests/ProposalSubmitted.vue'
import RequestManage from '@/pages/user/workspace/requestManage/Manage.vue' import RequestManage from '@/pages/user/workspace/requestManage/Manage.vue'
import ReviewProposalBeforeAccetance from '@/pages/user/workspace/requestManage/ReviewProposal.vue' import ReviewProposalBeforeAccetance from '@/pages/user/workspace/requestManage/ReviewProposal.vue'
import UserProfile from '@/pages/user/account/UserProfile.vue' import UserProfile from '@/pages/user/account/UserProfile.vue'
import UserFinance from '@/pages/user/account/UserFinance.vue'
import UserHistory from '@/pages/user/account/UserHistory.vue' import UserHistory from '@/pages/user/account/UserHistory.vue'
import Workspace from '@/pages/user/workspace/Home.vue' import Workspace from '@/pages/user/workspace/Home.vue'
@ -75,18 +61,6 @@ const router = createRouter({
routes: [ routes: [
{ path: '/', redirect: '/front-door' }, { path: '/', redirect: '/front-door' },
/* /*
{
path: '/users',
components: {
default: UsersList,
footer: UsersFooter
},
beforeEnter(to, from, next) {
console.log('users beforeEnter');
console.log(to, from);
next();
}
},
{ path: '/:notFound(.*)', component: NotFound } { path: '/:notFound(.*)', component: NotFound }
*/ //public */ //public
{ {
@ -138,14 +112,6 @@ const router = createRouter({
path: '/front-door', path: '/front-door',
meta: { requiredRoles: [userRoleEnum.NONE] }, meta: { requiredRoles: [userRoleEnum.NONE] },
components: { default: FrontDoor, footer: FooterGuest, header: HeaderGuest } components: { default: FrontDoor, footer: FooterGuest, header: HeaderGuest }
/*children: [
{
name: 'team-members',
path: ':teamId',
component: TeamMembers,
props: true
} // /teams/t1
]*/
}, },
{ {
@ -180,59 +146,6 @@ const router = createRouter({
components: { default: NewUserSetFlid, footer: FooterGuest, header: HeaderGuest }, components: { default: NewUserSetFlid, footer: FooterGuest, header: HeaderGuest },
props: true props: true
}, },
{
name: 'my-workspace-projects',
path: '/my-workspace-projects',
meta: { requiredRoles: [userRoleEnum.PERSONAL] },
components: { default: MyWorkspaceProjects, footer: FooterUser, header: HeaderUser },
props: false
},
{
name: 'project-manage',
path: '/project-manage/:projectId',
meta: { requiredRoles: [userRoleEnum.PERSONAL] },
components: { default: ProjectManage, footer: FooterUser, header: HeaderUser },
props: true,
children: [
{
name: 'project-manage-code',
path: 'code',
components: { default: ProjectManageCode },
props: true
},
{
name: 'project-manage-deploy',
path: 'deploy',
components: { default: ProjectManageDeploy },
props: true
},
{
name: 'project-manage-general',
path: 'general',
components: { default: ProjectManageGeneral },
props: true
},
{
name: 'project-manage-issues',
path: 'issues',
components: { default: ProjectManageIssues },
props: true
},
{
name: 'project-manage-product',
path: 'product',
components: { default: ProjectManageProduct },
props: true
},
{
name: 'project-manage-progress',
path: 'progress',
components: { default: ProjectManageProgress },
props: true
}
]
},
{ {
name: 'my-workspace-requests', name: 'my-workspace-requests',
path: '/my-workspace-requests', path: '/my-workspace-requests',
@ -281,20 +194,6 @@ const router = createRouter({
components: { default: RequestSubmitted, footer: FooterUser, header: HeaderUser }, components: { default: RequestSubmitted, footer: FooterUser, header: HeaderUser },
props: true props: true
}, },
{
name: 'request-deposit',
path: '/request-deposit/:requestId',
meta: { requiredRoles: [userRoleEnum.PERSONAL] },
components: { default: RequestDeposit, footer: FooterUser, header: HeaderUser },
props: true
},
{
name: 'request-deposited',
path: '/request-deposited/:requestId',
meta: { requiredRoles: [userRoleEnum.PERSONAL] },
components: { default: RequestDeposited, footer: FooterUser, header: HeaderUser },
props: true
},
{ {
name: 'my-workspace-proposals', name: 'my-workspace-proposals',
path: '/my-workspace-proposals', path: '/my-workspace-proposals',
@ -363,12 +262,6 @@ const router = createRouter({
meta: { requiredRoles: [userRoleEnum.PERSONAL] }, meta: { requiredRoles: [userRoleEnum.PERSONAL] },
components: { default: UserProfile, footer: FooterUser, header: HeaderUser } components: { default: UserProfile, footer: FooterUser, header: HeaderUser }
}, },
{
name: 'user-finance',
path: '/user-finance',
meta: { requiredRoles: [userRoleEnum.PERSONAL] },
components: { default: UserFinance, footer: FooterUser, header: HeaderUser }
},
{ {
name: 'user-history', name: 'user-history',
path: '/user-history', path: '/user-history',