Pear,梨子项目管理系统
相关资料:https://www.yuque.com/bzsxmz
安装指南:https://www.yuque.com/bzsxmz/siuq1w/kggzna
需要配合后端接口使用,链接:https://github.com/a54552239/pearProjectApi
有不明白的地方的可以加群:275264059,或者联系我,QQ:545522390
账号:123456 密码:123456
pear,梨子,轻量级的在线项目/任务协作系统,远程办公协作
Home Page: https://home.vilson.xyz
License: GNU General Public License v3.0
Pear,梨子项目管理系统
相关资料:https://www.yuque.com/bzsxmz
安装指南:https://www.yuque.com/bzsxmz/siuq1w/kggzna
需要配合后端接口使用,链接:https://github.com/a54552239/pearProjectApi
有不明白的地方的可以加群:275264059,或者联系我,QQ:545522390
账号:123456 密码:123456
使用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)
例如我上传一个文件名字叫 我爱**.docx,但是网页上显示我上传的文件名字是.docx.docx,并且f12查看了下a标签链接的文件路径地址,又是没有问题的(时间戳前缀+文件名字+文件后缀),希望修复一下
我觉得可以打造成一个类似 coding 的代码托管管理平台
[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;
如题,求解答
希望能有docker镜像
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)
钉钉内免登录
钉钉推送
导入钉钉用户等
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)
求增加 任务怎加自定义字段
/index.php/project/project/read
返回
{"code":404,"msg":"","data":[]}
主页面右上角的警铃图标的代办提醒点击”清空待办“无效
请问大大有什么好用的甘特图插件推荐吗,搜了一下支持拖拽的只有bryntum-gantt,但那个是收费
目前不能直接对接代码管理工具
真心觉着这个项目不错,布局,逻辑都挺合理的,看群里讨论说是没开源版有甘特图,要是能有的话就更好了
`
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) {
`
大佬有空帮忙看看嘛
如果要上传服务器,也还要自己打包。很麻烦唉
上传头像之后不生效,变成灰色
线上链接: https://beta.vilson.xyz/index.php/project/index/systemConfig
可以直接访问到,里面包含了七牛的授权配置,微信appkey、oss设置等等
你好,演示地址好像无法正常打开了
任务的执行者下拉列表里面,好像有最多人数显示限制,我们这边一个项目成员数量比较多,然后这里就不显示后面的成员了。
点击团队成员 》 某个成员 》 任务安排。
系统报错:
chunk-vendors.cc66b7f0.js:79 DOMException: Failed to execute 'setAttribute' on 'Element': '`' is not a valid attribute name.
at Wr (https://static.vilson.online/pearProject/static/js/chunk-vendors.cc66b7f0.js:79:51049)
at Br (https://static.vilson.online/pearProject/static/js/chunk-vendors.cc66b7f0.js:79:50786)
at Array.Ir (https://static.vilson.online/pearProject/static/js/chunk-vendors.cc66b7f0.js:79:50376)
at M (https://static.vilson.online/pearProject/static/js/chunk-vendors.cc66b7f0.js:79:45153)
at m (https://static.vilson.online/pearProject/static/js/chunk-vendors.cc66b7f0.js:79:44516)
at p (https://static.vilson.online/pearProject/static/js/chunk-vendors.cc66b7f0.js:79:44333)
at f (https://static.vilson.online/pearProject/static/js/chunk-vendors.cc66b7f0.js:79:43924)
at _ (https://static.vilson.online/pearProject/static/js/chunk-vendors.cc66b7f0.js:79:44909)
at f (https://static.vilson.online/pearProject/static/js/chunk-vendors.cc66b7f0.js:79:44039)
首页/系统设置/成员管理/账号列表
这个页面的个人信息有时似乎不会与:个人设置-安全设置中的信息同步
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
有系统公告板块。但是系统公告由谁发?超级管理员权限账号怎么创建?
删除一级部门,子部门数据不能加载,需重新刷新页面,部门没有滚动条下拉
我看Github会比Gittee中的代码新一点,但自2.8.10后没有新的push,是停止开源了吗?
建议增加微信扫码登录
希望项目管理者在项目中能更方便的看到各成员的完成状况,现在要看到某个成员的任务,操作路径是“工作台-->团队成员-->具体成员-->任务安排”,而且在任务安排列表中只能筛选未完成和已完成的任务,但在未完成的任务中,逾期未完成的不会直接在列表中提示逾期。
我觉得项目管理者在工作台中点进具体项目时,应该点击任务条目右上角的执行者头像就可以快速进入到该成员的所有任务列表,因为一般都是看到任务逾期或者想给Ta分配新任务时,想看看该成员手中任务情况再进行分析。目前的操作方式感觉有些繁琐,而且成员的任务列表中显示的信息太少
在安装界面点击立即安装出现该错误
请问是什么问题?
你好,看了文件管理,有两个建议,看能否解决:
1、项目管理中的文件目前都是扁平化管理,在一个项目中,不同类型的文件往往是分类管理存放的,能否增加“文件夹”的管理方式?
2、部分文件可能需要进行编辑,目前管理方式需要下载编辑后再进行上传,能否做成“有道云协作”当中的方式,编辑时可用本地office软件打开,保存关闭后自动上传覆盖。作为轻量级的项目管理软件,只增加每次修改的文档的版本管理即可,同一文档的多人同时编辑我觉得没必要,在用户编辑时,对该文档进行锁定。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.