+
diff --git a/src/components/error/errorPage.vue b/src/components/error/errorPage.vue
index 9cfaaef..dbb3cac 100644
--- a/src/components/error/errorPage.vue
+++ b/src/components/error/errorPage.vue
@@ -20,6 +20,8 @@
+
+
diff --git a/src/components/project/events.vue b/src/components/project/events.vue
new file mode 100644
index 0000000..f5f381b
--- /dev/null
+++ b/src/components/project/events.vue
@@ -0,0 +1,364 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/project/inviteProjectMember.vue b/src/components/project/inviteProjectMember.vue
index 9ddee45..e6c7097 100644
--- a/src/components/project/inviteProjectMember.vue
+++ b/src/components/project/inviteProjectMember.vue
@@ -2,7 +2,7 @@
-
+
-
-
-
+
+
+
+
已加入
-
- {{item.name}}
-
-
-
-
-
+
+ {{item.name}}
+
+
+
+
+
+
import _ from 'lodash'
import moment from 'moment';
- import {inviteMember, searchInviteMember} from "../../api/projectMember";
+ import {inviteMember, searchInviteMember, _listForInvite} from "../../api/projectMember";
import {checkResponse} from "../../assets/js/utils";
import {createInviteLink} from "../../api/common/common";
@@ -119,7 +121,16 @@
this.search();
}
},
+ created() {
+ this.getMembers();
+ },
methods: {
+ getMembers() {
+ let app = this;
+ _listForInvite({projectCode: app.projectCode}).then(res=>{
+ app.list = res.data;
+ });
+ },
invite(item) {
inviteMember(item.memberCode, this.projectCode).then((res) => {
const success = checkResponse(res);
@@ -148,6 +159,7 @@
this.list = [];
}
if (this.keyword.length <= 1) {
+ this.getMembers();
return false;
}
this.searching = true;
@@ -169,6 +181,7 @@
.invite-project-member {
.ant-modal-body {
padding-top: 0;
+ padding-right: 12px;
padding-bottom: 24px;
min-height: 40vh;
}
@@ -181,7 +194,8 @@
}
.member-list {
- padding-top: 12px;
+ padding-right: 12px;
+ max-height: 400px;
}
}
diff --git a/src/components/project/projectConfig.vue b/src/components/project/projectConfig.vue
index e097c03..55785bc 100644
--- a/src/components/project/projectConfig.vue
+++ b/src/components/project/projectConfig.vue
@@ -471,6 +471,7 @@
this.project.open_prefix = !!res.data.open_prefix;
this.project.open_begin_time = !!res.data.open_begin_time;
this.project.open_task_private = !!res.data.open_task_private;
+ this.project.auto_update_schedule = !!res.data.auto_update_schedule;
});
},
getTaskWorkflowList() {
@@ -517,7 +518,8 @@
if (!checkResponse(res)) {
return;
}
- app.$router.replace('/project/archive');
+ app.$emit('complete');
+ // app.$router.replace('/project/list/archive');
});
return Promise.resolve();
}
@@ -534,7 +536,8 @@
if (!checkResponse(res)) {
return;
}
- app.$router.replace('/project/list/my');
+ app.$emit('complete');
+ // app.$router.replace('/project/list/my');
});
return Promise.resolve();
}
@@ -555,7 +558,8 @@
if (!checkResponse(res)) {
return;
}
- app.$router.replace('/project/recycle');
+ app.$emit('complete');
+ // app.$router.replace('/project/recycle');
});
return Promise.resolve();
}
@@ -572,7 +576,8 @@
if (!checkResponse(res)) {
return;
}
- app.$router.replace('/project/list/my');
+ app.$emit('complete');
+ // app.$router.replace('/project/list/my');
});
return Promise.resolve();
}
@@ -592,6 +597,7 @@
if (!checkResponse(res)) {
return;
}
+ app.$emit('complete');
app.$router.replace('/project/list/my');
});
diff --git a/src/components/project/projectSelect.vue b/src/components/project/projectSelect.vue
index c03f8bf..952896d 100644
--- a/src/components/project/projectSelect.vue
+++ b/src/components/project/projectSelect.vue
@@ -4,7 +4,7 @@
v-model="visibleMenu"
class="action-item" placement="bottomCenter">
-
+
{{currentProject.name}}
@@ -48,7 +48,7 @@
+
+
diff --git a/src/components/project/taskTable.vue b/src/components/project/taskTable.vue
new file mode 100644
index 0000000..92cae08
--- /dev/null
+++ b/src/components/project/taskTable.vue
@@ -0,0 +1,395 @@
+
+
+
+
+
+
+
+
+ {{ task.name }}
+
+
+ {{ task.name }}
+
+
+ {{ task.name }}
+
+
+
+ {{task.sumKeyResult}}
+
+
+
+
+ {{task.hasSource}}个文件
+
+
+
+
+
+
+
+ 点击设置开始时间
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 点击设置截止时间
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 点击设置执行者
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/tools/VUploader.vue b/src/components/tools/VUploader.vue
index 40cdf19..02facad 100644
--- a/src/components/tools/VUploader.vue
+++ b/src/components/tools/VUploader.vue
@@ -13,6 +13,7 @@
{
+ if (v.size > singleMaxSize) {
+ ignored = true;
+ fileName = v.file.name;
+ return false;
+ }
+ });
+ files.ignored = ignored;
+ if (ignored) {
+ this.$info({
+ title: '文件超过最大限制',
+ content: `上传文件「${fileName}」过大,请选择${this.singleMaxSize}MB以内的文件`,
+ });
+ }
+ },
filesSubmitted(files) { //添加上传文件
// this.$refs.uploader.uploader.opts.query = this.tempData;
this.showUploader = true;
diff --git a/src/config/config.js b/src/config/config.js
index 0fcb66b..c9bbba9 100644
--- a/src/config/config.js
+++ b/src/config/config.js
@@ -1,6 +1,6 @@
export default {
- crossDomain: false, //是否开启跨域支持
- PROD_URL: 'https://beta.vilson.xyz/index.php', //生产环境接口地址
- WS_URI: 'ws://192.168.31.68:2345',//wss://beta.vilson.xyz:2345 //WebSocket地址
- HOME_PAGE: '/home',//主页路由
+ crossDomain: process.env.VUE_APP_CROSS_DOMAIN, //是否开启跨域支持
+ PROD_URL: process.env.VUE_APP_API_URL, //生产环境接口地址
+ WS_URI: process.env.VUE_APP_WS_URI,//wss://beta.vilson.xyz:2345 //WebSocket地址
+ HOME_PAGE: process.env.VUE_APP_HOME_PAGE,//主页路由
};
diff --git a/src/config/version.js b/src/config/version.js
index ae09240..e56ab76 100644
--- a/src/config/version.js
+++ b/src/config/version.js
@@ -1,3 +1,3 @@
export default {
- VERSION: '2.8.6',
+ VERSION: '2.8.17',
};
diff --git a/src/const/common.js b/src/const/common.js
index 539c447..2ff3953 100644
--- a/src/const/common.js
+++ b/src/const/common.js
@@ -1,5 +1,6 @@
export const COMMON = {
PAGE_SIZE: 20,
PAGE_NUM: 1,
+ TASK_STATUS: [{id: 0, name: '未开始', color: 'rgba(0, 0, 0, 0.65)'},{id: 1, name: '已完成', color: '#1890ff'},{id: 2, name: '进行中', color: '#52c41a'},{id: 3, name: '挂起', color: '#f5222d'},{id: 4, name: '测试中', color: '#faad14'},]
};
diff --git a/src/main.js b/src/main.js
index bef08ae..c3f2e4c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -12,7 +12,7 @@ import '@/assets/css/theme.less'
import '@/assets/icon/iconfont'
import WrapperContent from '@/components/layout/WrapperContent'
import {message, notification} from 'ant-design-vue'
-import {notice, destroyNotice} from './assets/js/notice'
+import {notice, destroyNotice} from 'assets/js/notice'
import moment from 'moment';
import 'moment/locale/zh-cn';
diff --git a/src/mixins/common.js b/src/mixins/common.js
index c5a898b..eb22778 100644
--- a/src/mixins/common.js
+++ b/src/mixins/common.js
@@ -1,4 +1,7 @@
// common-mixin.vue
+import {getStore} from "../assets/js/storage";
+import config from "../config/config";
+
export default {
data() {
return {}
@@ -11,5 +14,13 @@ export default {
this.$router.push(page);
}
},
+ toHome() {
+ const currentOrganization = getStore('currentOrganization', true);
+ let home = config.HOME_PAGE;
+ if (currentOrganization) {
+ home = home + '/' + currentOrganization.code;
+ }
+ this.$router.push(home);
+ },
}
}
diff --git a/src/router/home.js b/src/router/home.js
index 3d89511..655a481 100644
--- a/src/router/home.js
+++ b/src/router/home.js
@@ -25,4 +25,10 @@ export default [
component: resolve => require(['@/views/common/inviteFromLink'], resolve),
meta: {model: 'Common', info: {show_slider: false}},
},
+ {
+ name: 'calendar',
+ path: '/calendar',
+ component: resolve => require(['@/views/common/calendar'], resolve),
+ meta: {model: 'Common', info: {show_slider: false}},
+ },
];
diff --git a/src/router/index.js b/src/router/index.js
index 271a13d..86ac64a 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -8,6 +8,12 @@ import {createRoute, isTokenExpired} from "../assets/js/utils";
import config from "../config/config";
import {refreshAccessToken} from "../api/common/common";
+let HOME_PAGE = config.HOME_PAGE;
+const currentOrganization = getStore('currentOrganization', true);
+if (currentOrganization) {
+ HOME_PAGE = HOME_PAGE + '/' + currentOrganization.code;
+}
+
Vue.use(Router);
const routes = [].concat(
Home
@@ -121,10 +127,13 @@ router.beforeEach((to, from, next) => {
tokenList.accessToken = res.data.accessToken;
tokenList.accessTokenExp = res.data.accessTokenExp;
setStore('tokenList', tokenList);
- });
+ }).catch((() => {
+ store.state.logged = false;
+ store.state.userInfo = null;
+ return false;
+ }));
}
}
- const HOME_PAGE = config.HOME_PAGE;
//页面中转
if (to.name === 'index' || to.path === '/index' || to.path === '/') {
next({path: HOME_PAGE});
diff --git a/src/store/actions.js b/src/store/actions.js
index fabb146..2c99deb 100644
--- a/src/store/actions.js
+++ b/src/store/actions.js
@@ -5,7 +5,7 @@ export default {
SET_LOGGED({commit}, data) {
setStore('tokenList', data.tokenList);
setStore('userInfo', data.userInfo);
- commit('SET_LOGGED', data);
+ return commit('SET_LOGGED', data);
},
SET_USER({commit}, data) {
setStore('userInfo', data);
@@ -57,11 +57,11 @@ export default {
},
setOrganizationList({commit}, data) {
setStore('organizationList', data);
- commit('setOrganizationList', data);
+ return commit('setOrganizationList', data);
},
setCurrentOrganization({commit}, data) {
setStore('currentOrganization', data);
- commit('setCurrentOrganization', data);
+ return commit('setCurrentOrganization', data);
},
setSystem({commit}, data) {
setStore('system', data);
diff --git a/src/store/modules/menu.js b/src/store/modules/menu.js
index 090d4cd..e077586 100644
--- a/src/store/modules/menu.js
+++ b/src/store/modules/menu.js
@@ -16,7 +16,7 @@ const common = {
},
actions: {
GET_MENU({commit}) {
- getMenuForUser().then(res => {
+ return getMenuForUser().then(res => {
setStore('menu', res.data);
commit('SET_MENU', res.data);
});
diff --git a/src/views/common/calendar.vue b/src/views/common/calendar.vue
new file mode 100644
index 0000000..8d090c8
--- /dev/null
+++ b/src/views/common/calendar.vue
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
diff --git a/src/views/common/inviteFromLink.vue b/src/views/common/inviteFromLink.vue
index 88b4f30..77fc6f7 100644
--- a/src/views/common/inviteFromLink.vue
+++ b/src/views/common/inviteFromLink.vue
@@ -75,12 +75,14 @@
});
} else if (this.inviteLink.invite_type == 'organization') {
joinOrganation(this.$route.params.code).then(res => {
- this.$store.dispatch('setOrganizationList', res.data.organizationList);
- this.$store.dispatch('setCurrentOrganization', res.data.currentOrganization);
- this.$notice({title: '你已成功加入组织', msg: '你可以在右上方切换当前组织'}, 'notice', 'success');
- setTimeout(function () {
- app.$router.replace('/')
- }, 500);
+ if (checkResponse(res)) {
+ this.$store.dispatch('setOrganizationList', res.data.organizationList);
+ this.$store.dispatch('setCurrentOrganization', res.data.currentOrganization);
+ this.$notice({title: '你已成功加入组织', msg: '你可以在右上方切换当前组织'}, 'notice', 'success');
+ setTimeout(function () {
+ app.$router.replace('/')
+ }, 500);
+ }
});
}
}
diff --git a/src/views/error/install.vue b/src/views/error/install.vue
index 2c85839..e7b2bb6 100644
--- a/src/views/error/install.vue
+++ b/src/views/error/install.vue
@@ -2,6 +2,7 @@
+
-
-
+ -->
勾选后将清除预置数据
@@ -107,7 +108,7 @@
-