Giter Site home page Giter Site logo

a54552239 / pearproject Goto Github PK

View Code? Open in Web Editor NEW
1.8K 56.0 456.0 1.27 MB

pear,梨子,轻量级的在线项目/任务协作系统,远程办公协作

Home Page: https://home.vilson.xyz

License: GNU General Public License v3.0

JavaScript 6.70% HTML 0.06% Vue 86.87% CSS 1.83% Shell 0.02% Less 4.52%
admin vue project-management thinkphp ant-design php jwt websocket

pearproject's Introduction

pearproject's People

Contributors

a54552239 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pearproject's Issues

Version 2.8.2 登录提示success后页面无跳转。首页白屏无内容。控制台报错。

使用Version 2.8.2版本。开发环境运行。
第一次访问自动跳转到登录页。使用123456/123456登录,提示success.但是页面无跳转。未转到程序主页面。
人工切换到首页,白屏,控制台报错。内容如下:

VM9926:1 Uncaught SyntaxError: Unexpected token u in JSON at position 0
at JSON.parse ()
at getStore (storage.js?68fe:38)
at eval (state.js?fcc2:3)
at Module../src/store/state.js (app.js:14687)
at webpack_require (app.js:767)
at fn (app.js:130)
at eval (index.js?4360:1)
at Module../src/store/index.js (app.js:14639)
at webpack_require (app.js:767)
at fn (app.js:130)

经常跳回到登录页

image

没有很明显的规律,就是我点击一些导航切换,点着点着就重定向到登录页了,请教下大概是啥问题?

感谢!!

上传文件后文件名偶尔需要重命名

例如我上传一个文件名字叫 我爱**.docx,但是网页上显示我上传的文件名字是.docx.docx,并且f12查看了下a标签链接的文件路径地址,又是没有问题的(时间戳前缀+文件名字+文件后缀),希望修复一下

后台搭建完成访问http://127.0.0.1/pearProjectApi报错

[0] HttpException在Module.php线63
模块不存在:pearprojectapi
$available = true;
}

        // 模块初始化
        if ($module && $available) {
            // 初始化模块
            $this->request->setModule($module);
            $this->app->init($module);
        } else {
            throw new HttpException(404, 'module not exists:' . $module);
        }
    }

    // 是否自动转换控制器和操作名
    $convert = is_bool($this->convert) ? $this->convert : $this->rule->getConfig('url_convert');
    // 获取控制器名
    $controller = strip_tags($result[1] ?: $this->rule->getConfig('default_controller'));

    $this->controller = $convert ? strtolower($controller) : $controller;

npm run serve 页面console报错

ndex.js?72c8:5 Uncaught TypeError: Object(...) is not a function
at eval (index.js?72c8:5:1)
at Module../node_modules/_ant-design-vue@2.2.8@ant-design-vue/es/vc-resize-observer/index.js (app.js:8104:1)
at webpack_require (app.js:833:30)
at fn (app.js:130:20)
at eval (index.js?3502:1:1)
at Module../node_modules/_ant-design-vue@2.2.8@ant-design-vue/es/affix/index.js (app.js:4084:1)
at webpack_require (app.js:833:30)
at fn (app.js:130:20)
at eval (components.js?e52b:1:1)
at Module../node_modules/_ant-design-vue@2.2.8@ant-design-vue/es/components.js (app.js:4624:1)

npm

internal/modules/cjs/loader.js:583
throw err;
^

Error: Cannot find module 'lru-cache'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
at Function.Module._load (internal/modules/cjs/loader.js:507:25)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:20:18)
at Object. (D:\vue\pearProject-master\node_modules_@vue_cli-shar
[email protected]@@VUE\cli-shared-utils\lib\env.js:4:13)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)

无法构建

当使用npm run servebuild报一系列的找不到vue
如下:
warning in ./node_modules/ant-design-vue/es/vc-trigger/Popup/PopupInner.js "export 'withModifiers' was not found in 'vue'
image
尝试修改模块的中的版本 一个一个排除仍未解决

好像编译出错了?

`
Module Warning (from ./node_modules/eslint-loader/index.js):
error: 'oldVal' is defined but never used (no-unused-vars) at src/views/project/space/files.vue:203:33:
201 | watch: {
202 | uploader: {

203 | handler(newVal, oldVal) {
| ^
204 | //监听是否有上传文件行为
205 | const files = newVal.fileList;
206 | const index = files.findIndex(item => item.projectName == this.project.name);

1 error found.

Module Warning (from ./node_modules/eslint-loader/index.js):
error: 'range' is defined but never used (no-unused-vars) at src/mixins/pagination.js:9:36:
7 | pageSize: 10,
8 | total: 0,

9 | showTotal: (total, range) => 共 ${total} 条
| ^
10 | },
11 | // requestData: {
12 | // page: this.pagination.page,

1 error found.

Module Warning (from ./node_modules/eslint-loader/index.js):
error: 'relativelyTaskTime' is defined but never used (no-unused-vars) at src/components/project/taskTag.vue:78:29:
76 | import {list, del} from "../../api/taskTag";
77 | import pagination from "../../mixins/pagination";

78 | import {formatTaskTime, relativelyTaskTime} from "../../assets/js/dateTime";
| ^
79 | import {getListByTaskTag} from "../../api/task";
80 | import moment from "moment";
81 |

error: 'val' is defined but never used (no-unused-vars) at src/components/project/taskTag.vue:108:20:
106 | this.init();
107 | },

108 | tabKey(val) {
| ^
109 | this.getTaskList();
110 | }
111 |

error: 'delFile' is not defined (no-undef) at src/components/project/taskTag.vue:204:33:
202 | cancelText: '再想想',
203 | onOk() {

204 | delFile(item.code).then((res) => {
| ^
205 | if (!checkResponse(res)) {
206 | return;
207 | }

3 errors found.

Module Warning (from ./node_modules/eslint-loader/index.js):
error: 'relativelyTime' is defined but never used (no-unused-vars) at src/components/layout/header/HeaderNotice.vue:123:13:
121 | import {showMsgNotification} from "../../../assets/js/notify";
122 | import {selfList} from "../../../api/task";

123 | import {relativelyTime} from "../../../assets/js/dateTime";
| ^
124 |
125 | export default {
126 | name: 'HeaderNotice',

1 error found.

Module Warning (from ./node_modules/eslint-loader/index.js):
error: 'res' is defined but never used (no-unused-vars) at src/components/project/projectConfig.vue:654:59:
652 | if (this.taskWorkflow) {
653 | submitData.taskWorkflowCode = this.taskWorkflow.code;

654 | EditTaskWorkflow(submitData).then(res => {
| ^
655 | this.getTaskWorkflowList();
656 |
657 | });

error: 'res' is defined but never used (no-unused-vars) at src/components/project/projectConfig.vue:660:59:
658 | } else {
659 | submitData.projectCode = this.code;

660 | saveTaskWorkflow(submitData).then(res => {
| ^
661 | this.getTaskWorkflowList();
662 | });
663 | }

error: Unexpected console statement (no-console) at src/components/project/projectConfig.vue:745:17:
743 | },
744 | workflowRuleChange(value, name) {

745 | console.log(value);
| ^
746 | console.log(name);
747 | if (name == 'firstAction.action') {
748 | this.currentTaskWorkflowRule.firstAction.value = '';

error: Unexpected console statement (no-console) at src/components/project/projectConfig.vue:746:17:
744 | workflowRuleChange(value, name) {
745 | console.log(value);

746 | console.log(name);
| ^
747 | if (name == 'firstAction.action') {
748 | this.currentTaskWorkflowRule.firstAction.value = '';
749 | }

4 errors found.

Module Warning (from ./node_modules/eslint-loader/index.js):
error: 'res' is defined but never used (no-unused-vars) at src/views/members/profile.vue:326:52:
324 | },
325 | syncDetail() {

326 | syncDetail({code: this.code}).then(res => {
| ^
327 | this.getMember();
328 | });
329 | },

error: 'obj' is defined but never used (no-unused-vars) at src/views/members/profile.vue:343:28:
341 | })
342 | },

343 | changeTaskType(obj) {
| ^
344 | this.$nextTick(() => {
345 | this.getTasks();
346 | })

2 errors found.

Module Warning (from ./node_modules/eslint-loader/index.js):
error: 'res' is defined but never used (no-unused-vars) at src/views/notify/notice.vue:147:49:
145 | cancelText: '取消',
146 | onOk() {

147 | del(record.id).then(res => {
| ^
148 | app.init();
149 | });
150 | return Promise.resolve();

error: 'values' is defined but never used (no-unused-vars) at src/views/notify/notice.vue:159:27:
157 | let app = this;
158 | app.searchForm.validateFields(

159 | (err, values) => {
| ^
160 | if (!err) {
161 | app.search();
162 | }

2 errors found.

Module Warning (from ./node_modules/eslint-loader/index.js):
error: 'res' is defined but never used (no-unused-vars) at src/views/notify/system.vue:146:49:
144 | cancelText: '取消',
145 | onOk() {

146 | del(record.id).then(res => {
| ^
147 | app.init();
148 | });
149 | return Promise.resolve();

error: 'values' is defined but never used (no-unused-vars) at src/views/notify/system.vue:158:27:
156 | let app = this;
157 | app.searchForm.validateFields(

158 | (err, values) => {
| ^
159 | if (!err) {
160 | app.search();
161 | }

2 errors found.

Module Warning (from ./node_modules/eslint-loader/index.js):
error: 'setStore' is defined but never used (no-unused-vars) at src/views/member/login.vue:135:13:
133 | import {getStore} from '@/assets/js/storage'
134 | import {checkInstall} from "../../api/common/common";

135 | import {setStore} from "../../assets/js/storage";
| ^
136 | import {_checkLogin} from "../../api/user";
137 | import {dingTalkLoginByCode, dingTalkOauth} from "../../api/oauth";
138 | import {notice} from "../../assets/js/notice";

error: 'hide' is assigned a value but never used (no-unused-vars) at src/views/member/login.vue:268:31:
266 | }, 1000);
267 |

268 | const hide = this.$message.loading('验证码发送中..', 0);
| ^
269 | getCaptcha(values.mobile)
270 | .then(res => {
271 | this.$message.destroy();

error: Unexpected console statement (no-console) at src/views/member/login.vue:321:25:
319 | redirect = config.HOME_PAGE + '/' + org.code
320 | }

321 | console.log('redirect');
| ^
322 | console.log(redirect);
323 | this.$router.push({
324 | path: redirect

error: Unexpected console statement (no-console) at src/views/member/login.vue:322:25:
320 | }
321 | console.log('redirect');

322 | console.log(redirect);
| ^
323 | this.$router.push({
324 | path: redirect
325 | });

4 errors found.

Module Warning (from ./node_modules/eslint-loader/index.js):
error: 'startStop' is assigned a value but never used (no-unused-vars) at src/assets/js/dateTime.js:9:9:
7 | export const getWeekDay = () => {
8 | //起止日期数组

9 | var startStop = [];
| ^
10 | //获取当前时间
11 | var currentDate = new Date();
12 | //返回date是一周中的某一天

error: 'month' is assigned a value but never used (no-unused-vars) at src/assets/js/dateTime.js:15:9:
13 | var week = currentDate.getDay();
14 | //返回date是一个月中的某一天

15 | var month = currentDate.getDate();
| ^
16 |
17 | //一天的毫秒数
18 | var millisecond = 1000 * 60 * 60 * 24;

2 errors found.

Module Warning (from ./node_modules/eslint-loader/index.js):
error: 'to' is defined but never used (no-unused-vars) at src/components/project/taskDetail.vue:1237:20:
1235 | },
1236 | watch: {

1237 | $route(to, from) {
| ^
1238 | // if (from.name == 'taskdetail') {
1239 | // this.init();
1240 | // }

error: 'from' is defined but never used (no-unused-vars) at src/components/project/taskDetail.vue:1237:24:
1235 | },
1236 | watch: {

1237 | $route(to, from) {
| ^
1238 | // if (from.name == 'taskdetail') {
1239 | // this.init();
1240 | // }

error: 'oldVal' is defined but never used (no-unused-vars) at src/components/project/taskDetail.vue:1259:33:
1257 | },
1258 | uploader: {

1259 | handler(newVal, oldVal) {
| ^
1260 | //监听是否有上传文件行为
1261 | console.log(newVal);
1262 | console.log(newVal.fileList);

error: Unexpected console statement (no-console) at src/components/project/taskDetail.vue:1261:21:
1259 | handler(newVal, oldVal) {
1260 | //监听是否有上传文件行为

1261 | console.log(newVal);
| ^
1262 | console.log(newVal.fileList);
1263 | const files = newVal.fileList;
1264 | const index = files.findIndex(item => item.projectName == this.task.projectName);

error: Unexpected console statement (no-console) at src/components/project/taskDetail.vue:1262:21:
1260 | //监听是否有上传文件行为
1261 | console.log(newVal);

1262 | console.log(newVal.fileList);
| ^
1263 | const files = newVal.fileList;
1264 | const index = files.findIndex(item => item.projectName == this.task.projectName);
1265 | if (index !== -1) {

error: Unexpected console statement (no-console) at src/components/project/taskDetail.vue:1284:17:
1282 | };
1283 | document.onkeydown = (event) => {

1284 | console.log(event);
| ^
1285 | var e = event || window.event || arguments.callee.caller.arguments[0];
1286 | if (13 == e.keyCode && e.ctrlKey) {
1287 | //处理的部分

error: 'res' is defined but never used (no-unused-vars) at src/components/project/taskDetail.vue:1506:45:
1504 | cancelText: 再想想,
1505 | onOk() {

1506 | del(app.code).then((res) => {
| ^
1507 | ``
1508 | app.detailClose();
1509 | });

7 errors found.

Module Warning (from ./node_modules/eslint-loader/index.js):
error: 'to' is defined but never used (no-unused-vars) at src/components/project/versionDetail.vue:595:20:
593 | },
594 | watch: {

595 | $route(to, from) {
| ^
596 | // if (from.name == 'taskdetail') {
597 | // this.init();
598 | // }

error: 'from' is defined but never used (no-unused-vars) at src/components/project/versionDetail.vue:595:24:
593 | },
594 | watch: {

595 | $route(to, from) {
| ^
596 | // if (from.name == 'taskdetail') {
597 | // this.init();
598 | // }

error: 'res' is defined but never used (no-unused-vars) at src/components/project/versionDetail.vue:752:45:
750 | cancelText: 再想想,
751 | onOk() {

752 | del(app.code).then((res) => {
| ^
753 | ``
754 | app.detailClose();
755 | });

error: 'res' is defined but never used (no-unused-vars) at src/components/project/versionDetail.vue:785:88:
783 |
784 | } else {

785 | changeStatus({versionCode: this.version.code, status: e.key}).then(res => {
| ^
786 | this.getVersion();
787 | });
788 | }

error: 'res' is defined but never used (no-unused-vars) at src/components/project/versionDetail.vue:801:37:
799 | status: this.publishVersion.status,
800 | publishTime: obj.publishTime,

801 | }).then(res => {
| ^
802 | app.publishVersion.modalStatus = false;
803 | app.getVersion();
804 | });

5 errors found.

Module Warning (from ./node_modules/eslint-loader/index.js):
error: 'to' is defined but never used (no-unused-vars) at src/views/home/index.vue:234:31:
232 | },
233 | watch:{

234 | $route: function (to, from) {
| ^
235 | this.init();
236 | },
237 | socketAction(val) {

error: 'from' is defined but never used (no-unused-vars) at src/views/home/index.vue:234:35:
232 | },
233 | watch:{

234 | $route: function (to, from) {
| ^
235 | this.init();
236 | },
237 | socketAction(val) {

error: Unexpected console statement (no-console) at src/views/home/index.vue:238:17:
236 | },
237 | socketAction(val) {

238 | console.log(val);
| ^
239 | if (val.action === 'organization:task') {
240 | this.init(false, false);
241 | }

3 errors found.

Module Warning (from ./node_modules/eslint-loader/index.js):
error: 'tokenList' is defined but never used (no-unused-vars) at src/store/mutations.js:2:24:
1 | export default {

2 | SET_LOGGED(state, {tokenList, userInfo}) {
| ^
3 | state.logged = true;
4 | state.userInfo = userInfo;
5 | },

1 error found.

Module Warning (from ./node_modules/eslint-loader/index.js):
error: 'val' is defined but never used (no-unused-vars) at src/components/project/recycleBin.vue:92:20:
90 | this.init();
91 | },

92 | tabKey(val) {
| ^
93 | this.init();
94 | }
95 |

1 error found.

Module Warning (from ./node_modules/eslint-loader/index.js):
error: 'values' is defined but never used (no-unused-vars) at src/views/account/setting/security.vue:348:27:
346 | let app = this;
347 | this.form.validateFields(

348 | (err, values) => {
| ^
349 | if (!err) {
350 | let obj = app.form.getFieldsValue();
351 | if (obj.password.length < 6 || obj.newPassword.length < 6 || obj.confirmPassword.length < 6) {

error: 'values' is defined but never used (no-unused-vars) at src/views/account/setting/security.vue:379:27:
377 | let app = this;
378 | this.mobileForm.validateFields(

379 | (err, values) => {
| ^
380 | if (!err) {
`
大佬有空帮忙看看嘛

项目任务的执行者列表错误

任务的执行者下拉列表里面,好像有最多人数显示限制,我们这边一个项目成员数量比较多,然后这里就不显示后面的成员了。

Failed to execute 'setAttribute' on 'Element': '`' is not a valid attribute name.

个人信息不同步问题

首页/系统设置/成员管理/账号列表
这个页面的个人信息有时似乎不会与:个人设置-安全设置中的信息同步

项目管理-我的项目 报错

Error Code | 10501

-- | --

Error Message | SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'pearproject.pp.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

Error SQL | select * from pear_project as pp join pear_project_member as pm on pm.project_code = pp.code where pp.organization_code = '7vwpiyz26fmdon451tq0xjeu' and (pm.member_code = '627s3cyojt4zfiwx1pu89hen' or pp.private = 0) group by pp.code order by pp.id desc

删除部门

删除一级部门,子部门数据不能加载,需重新刷新页面,部门没有滚动条下拉

项目管理者的功能希望能加强

希望项目管理者在项目中能更方便的看到各成员的完成状况,现在要看到某个成员的任务,操作路径是“工作台-->团队成员-->具体成员-->任务安排”,而且在任务安排列表中只能筛选未完成和已完成的任务,但在未完成的任务中,逾期未完成的不会直接在列表中提示逾期。
我觉得项目管理者在工作台中点进具体项目时,应该点击任务条目右上角的执行者头像就可以快速进入到该成员的所有任务列表,因为一般都是看到任务逾期或者想给Ta分配新任务时,想看看该成员手中任务情况再进行分析。目前的操作方式感觉有些繁琐,而且成员的任务列表中显示的信息太少

项目管理中的文件管理功能增强

你好,看了文件管理,有两个建议,看能否解决:
1、项目管理中的文件目前都是扁平化管理,在一个项目中,不同类型的文件往往是分类管理存放的,能否增加“文件夹”的管理方式?
2、部分文件可能需要进行编辑,目前管理方式需要下载编辑后再进行上传,能否做成“有道云协作”当中的方式,编辑时可用本地office软件打开,保存关闭后自动上传覆盖。作为轻量级的项目管理软件,只增加每次修改的文档的版本管理即可,同一文档的多人同时编辑我觉得没必要,在用户编辑时,对该文档进行锁定。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.