Procházet zdrojové kódy

feat: 添加、修改接口定义与vuex定义。

Jinyao před 5 roky
rodič
revize
aec38513be

+ 1 - 0
mock/index.js

@@ -26,6 +26,7 @@ app.use(`${prefix}/users`, require('./routers/user'));
 app.use(`${prefix}/project`, require('./routers/project'));
 app.use(`${prefix}/pipelines`, require('./routers/pipeline'));
 app.use(`${prefix}/deployments`, require('./routers/deployment'));
+app.use(`${prefix}/bug_list`, require('./routers/buglist'));
 
 app.listen(4000);
 

+ 70 - 0
mock/routers/buglist.js

@@ -0,0 +1,70 @@
+/* eslint-disable max-len */
+/* eslint-disable import/no-extraneous-dependencies */
+/* eslint-disable @typescript-eslint/no-var-requires */
+const router = require('express').Router();
+const Mock = require('mockjs');
+const wrapper = require('../wrapper');
+
+const { Random } = Mock;
+
+router.post('', (req, res) => {
+  res.json(wrapper('success'));
+});
+
+router.put('', (req, res) => {
+  res.json(wrapper('success'));
+});
+
+router.post('/finish', (req, res) => {
+  res.json(wrapper('success'));
+});
+
+router.get('/list', (req, res) => {
+  res.json(wrapper(Mock.mock(
+    {
+      'data|5-10': {
+        'commits|0-10': [
+          {
+            'gitlabUsername|1': ['hks', 'wph', 'zxr', 'cyt'],
+            'id|+1': 101,
+            message: 'git commit message',
+            timestamp: 'time',
+            title: 'titleeee',
+          },
+        ],
+        description: 'bug description',
+        endTime: {
+          date: 0,
+          day: 0,
+          hours: 0,
+          minutes: 0,
+          month: 0,
+          nanos: 0,
+          seconds: 0,
+          time: 0,
+          timezoneOffset: 0,
+          year: 0,
+        },
+        expectedTimeCost: 140,
+        'id|+5': 1001,
+        priority: ['紧急', '一般', '宽松'],
+        startTime: {
+          date: 0,
+          day: 0,
+          hours: 0,
+          minutes: 0,
+          month: 0,
+          nanos: 0,
+          seconds: 0,
+          time: 0,
+          timezoneOffset: 0,
+          year: 0,
+        },
+        'state|1': ['CREATED', 'PROCESSING', 'FINISHED'],
+        title: 'bug titleeee',
+      },
+    },
+  ).data));
+});
+
+module.exports = router;

+ 5 - 0
mock/routers/user.js

@@ -12,3 +12,8 @@ router.get('/self',
     res.json(wrapper(userinfo));
   });
 module.exports = router;
+
+router.post('/gitlab',
+  (req, res) => {
+    res.json(wrapper('success'));
+  });

+ 34 - 0
src/api/devcloud/buglist.ts

@@ -0,0 +1,34 @@
+import axios from '@/utils/axios';
+
+import { BUGLIST_PREFIX } from './prefix';
+
+interface BugRecordPayload {
+  description: string;
+  expectedTimeCost: number;
+  priority: '紧急'|'一般'|'宽松';
+  title: string;
+}
+
+type CreateBugRecordPayload = BugRecordPayload & {
+  projectId: number;
+}
+
+type UpdateBugRecordPayload = BugRecordPayload & {
+  id: number;
+}
+
+export const createBugRecord = (createBugRecordPayload: CreateBugRecordPayload) => axios.post(`${BUGLIST_PREFIX}`, createBugRecordPayload);
+
+export const updateBugRecord = (updateBugRecordPayload: UpdateBugRecordPayload) => axios.post(`${BUGLIST_PREFIX}`, updateBugRecordPayload);
+
+export const finishBugRecord = (id: number) => axios.post(`${BUGLIST_PREFIX}/finish`, null, {
+  params: {
+    id,
+  },
+});
+
+export const getBugListByProjectId = (projectId: number) => axios.get(`${BUGLIST_PREFIX}/list`, {
+  params: {
+    projectId,
+  },
+});

+ 1 - 0
src/api/devcloud/prefix.ts

@@ -4,3 +4,4 @@ export const USER_PREFIX = '/users';
 export const TREE_PREFIX = '/tree';
 export const PROJECT_PREFIX = '/project';
 export const GROUP_PREFIX = '/groups';
+export const BUGLIST_PREFIX = '/bug_list';

+ 9 - 0
src/api/devcloud/user.ts

@@ -2,5 +2,14 @@ import axios from '@/utils/axios';
 
 import { USER_PREFIX } from './prefix';
 
+interface CreateGitlabAccountPayload {
+  email: string;
+  password: string;
+  username: string;
+}
+
 // USER API
 export const getUserInfo = () => axios.get(`${USER_PREFIX}/self`);
+
+export const createGitlabAccount = (createGitlabAccountPayload: CreateGitlabAccountPayload) => axios.post(`${USER_PREFIX}/gitlab`,
+  createGitlabAccountPayload);

+ 0 - 1
src/store/modules/token.ts

@@ -1,5 +1,4 @@
 import { saveToken, destoryToken } from '@/utils/token';
-import { useRouter } from 'vue-router';
 import { ActionTree, Module, MutationTree } from 'vuex';
 import { RootState, TokenPayload, TokenState } from '../typings';
 

+ 1 - 0
src/store/modules/user.ts

@@ -8,6 +8,7 @@ const DEFAULT: UserState = {
   id: -1,
   phone: '',
   role: 'GUEST',
+  withGitlab: false,
 };
 
 const actions: ActionTree<UserState, RootState> = {

+ 1 - 0
src/store/typings.ts

@@ -16,6 +16,7 @@ export interface UserState {
   phone: string;
   role: Role;
   username: string;
+  withGitlab: boolean;
 }
 
 export interface WorkspaceState {

+ 1 - 0
src/typings/vuex.d.ts

@@ -13,6 +13,7 @@ declare module '@vue/runtime-core' {
       phone: string;
       role: Role;
       username: string;
+      withGitlab: boolean;
     };
     workspace: {
       currentProjectId: ProjectId;