Giter VIP home page Giter VIP logo

tank-front's Introduction

蓝眼云盘logo

English Version

蓝眼云盘(4.0.4)

在线Demo (体验账号: demo 密码:123456)

蓝眼云盘是蓝眼开源系列代表作品之一,致力于打造精致,优雅,简约的云盘。核心功能如下:

  1. 文件列表
  2. 文件/文件夹上传 + 拖拽上传
  3. 文件分享
  4. 文件监控统计
  5. 回收站
  6. 多用户
  7. WebDav
  8. 扫描磁盘任务
  9. 在线预览及自定义配置预览引擎
  10. 无需安装数据库,支持文件数据库sqlite.

更多内容请移步至文档

前端技术栈:Typescript + React + Ant Design 4.0 + OOP

软件截图

PC端截图

手机端截图

启动本项目

# if not install yarn
# npm install -g yarn

yarn --registry=https://registry.npmmirror.com
yarn start

Contribution

感谢所有蓝眼云盘的贡献者 @zicla@seaheart@yemuhe@hxsherry

如果您也想参与进来,请尽情的fork, star, post issue, pull requests

当然你可以加入钉钉群(一群已满员)一起直接交流,在钉钉群中可以获取最新beta版本。

群号:44754005

Support

IDE for this project is supported by Jetbrains.

License

MIT

Copyright (c) 2017-present, eyeblue.cn

tank-front's People

Contributors

biuaxia avatar dependabot[bot] avatar hxsherry avatar logzc avatar seaheart avatar zicla 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

tank-front's Issues

runtime error: invalid memory

第一天没有问题
第二天登陆的时候报以下错误,并且第一天上传的东西不显示了
runtime error: invalid memory address or nil pointer dereference

共享空间,查看文件夹下面的子文件时,找不到已上传的文件

我创建了一个共享空间,里面上传一些文件是正常的,然后我在里面创建一个文件夹,往这个文件夹里面传一些文件,上传成功过后,刷新列表,没有已上传的文件,而且从外面重新进,还是找不到这些文件,找到了对应的请求
http://localhost:6015/api/matter/page?page=0&name=undefined&pageSize=500&orderCreateTime=DESC&puuid=2a9cdc30-a602-423b-5f06-4662c7b2fefc&deleted=false&orderDir=DESC&spaceUuid=26dc62c6-38c0-4b28-5bcd-de6261f6a768,
我发现把这个name这个请求字段删除就正常,代码在 src/pages/matter/List.tsx 里面有个函数叫goToDirectory 里面写了一个name:undefined,我把这个注释掉就可以,不能理解这个name:undefined在这有什么用

401

/api/matter/page?page=0&pageSize=50&orderCreateTime=DESC&puuid=root&userUuid=6157a96f-e2a9-489b-6c59-c9d0ed97ea15&orderDir=DESC Failed to load resource: the server responded with a status of 401 ()

npm install报错

npm ERR! Unexpected end of JSON input while parsing near '...urce-map-support":"^0'

npm ERR! Unexpected end of JSON input while parsing near '..."},"directories":{},"'

移动文件错误(子目录文件->根目录)

移动文件错误

根目录下可以上传文件,所以根目录应该和其他子目录一样具有相同的功能。
但是当从子目录中选取文件移动到根目录时会报错。

ps. 报的错误提示 not found record with uuid =

elementui剥离

是否可以吧elementui剥离出vendor,放到cdn更好些,现在vendor太大了,页面是否也可以改成require.ensure按需加载模式?移动端是否也可以加入-webkit-overflow-scrolling: touch;

install/index.vue在chrome更新密码时的问题

如果在创建完管理员后,选择chrome的更新密码,那么前面的mysqlpassword会自动被chrome更新成adminpassword,是不是可以把index.vue中的mysqlpassword input加入autocomplete = 'new-password'属性,或者把httpFinish请求提前到上一步自动发起,而不是在点击返回首页时触发更好一些?

上传时UI出现冻结现象

上传多个文件时
在某些情况下会导致进度条处于冻结状态
src\pages\matter\List.tsx-794

  this.uploadMattersMap[this.getSpaceUuid()]?.map((m) => (
    <UploadMatterPanel matter={m} />
  ))

src\pages\matter\widget\UploadMatterPanel.tsx-33

    componentWillUnmount() {
      this.props.matter.reactComponent = null;
    }

未设置key导致列表中的组件全部卸载了一遍
导致reactComponent为null,updateUI函数失效
已提交PR

前端项目build出的文件不能正常使用

只显示首层文件夹,二级文件夹不显示文件

image

image

控制台 并未报错

image

修改内容:

添加了下图的一个按钮,应该只是前端
image

控制台输出

image

是编译环境不正确吗?

PS C:\Users\Administrator\Downloads\DrvCeo\tank-front-master> node -v v18.19.0 PS C:\Users\Administrator\Downloads\DrvCeo\tank-front-master> npm -v 10.4.0 PS C:\Users\Administrator\Downloads\DrvCeo\tank-front-master>

前端项目编译失败

编译报错

(node:29417) UnhandledPromiseRejectionWarning: /home/azureuser/test/tank-front/node_modules/eslint-webpack-plugin/node_modules/jest-worker/build/index.js:110
_ending;
^

SyntaxError: Unexpected token ;
at Module._compile (internal/modules/cjs/loader.js:723:23)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Module.require (internal/modules/cjs/loader.js:692:17)
at require (internal/modules/cjs/helpers.js:25:18)
at Object. (/home/azureuser/test/tank-front/node_modules/eslint-webpack-plugin/dist/getESLint.js:9:5)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
(node:29417) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:29417) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

前端有一个动画 bug

修改了下,暂时能用

.side-navigation {
position: fixed;
width: 170px;
left: -170px;
top: 0;
bottom: 0;
z-index: 1000;
background: #343848;
/* -webkit-transition: all .4s;
transition: all .4s; */
}

.side-navigation.show-drawer {
left: 0;
-webkit-transition: all .4s;
transition: all .4s;
}

Video playback problems

This is a feature recommendation.
I tried to use the online disc to play online, but I found that the content was downloaded directly. Is there a problem with the preview? Or is the video preview format limited?
Video format for. WMV.
We hope to increase the video preview. This function can be turned on and off for users with traffic.
Hope the program is getting better and better.

编译前端出问题

配置好环境后运行 npm run build 提示
npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! [email protected] build:node scripts/build.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2021-04-11T05_53_44_135Z-debug.log
完整代码如下 非常喜欢大大的程序,希望能够指正我的问题 谢谢root@vmi520813:/www/wwwroot/tank-front# npm run build

[email protected] build /www/wwwroot/tank-front
node scripts/build.js

/www/wwwroot/tank-front/node_modules/terser-webpack-plugin/node_modules/schema-utils/dist/validate.js:104
throw new _ValidationError.default(errors, schema, configuration);
^

ValidationError: Invalid options object. Terser Plugin has been initialized using an options object that does not match the API schema.

  • options has an unknown property 'sourceMap'. These properties are valid:
    object { test?, include?, exclude?, terserOptions?, extractComments?, parallel?, minify? }
    at validate (/www/wwwroot/tank-front/node_modules/terser-webpack-plugin/node_modules/schema-utils/dist/validate.js:104:11)
    at new TerserPlugin (/www/wwwroot/tank-front/node_modules/terser-webpack-plugin/dist/index.js:116:31)
    at module.exports (/www/wwwroot/tank-front/config/webpack.config.js:196:9)
    at Object. (/www/wwwroot/tank-front/scripts/build.js:47:16)
    at Module._compile (internal/modules/cjs/loader.js:999:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
    at Module.load (internal/modules/cjs/loader.js:863:32)
    at Function.Module._load (internal/modules/cjs/loader.js:708:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12)
    at internal/main/run_main_module.js:17:47 {
    errors: [
    {
    keyword: 'additionalProperties',
    dataPath: '',
    schemaPath: '#/additionalProperties',
    params: { additionalProperty: 'sourceMap' },
    message: 'should NOT have additional properties',
    schema: false,
    parentSchema: {
    definitions: {
    Rule: {
    description: 'Filtering rule as regex or string.',
    anyOf: [Array]
    },
    Rules: { description: 'Filtering rules.', anyOf: [Array] }
    },
    title: 'TerserPluginOptions',
    type: 'object',
    additionalProperties: false,
    properties: {
    test: {
    description: 'Include all modules that pass test assertion.',
    oneOf: [Array]
    },
    include: {
    description: 'Include all modules matching any of these conditions.',
    oneOf: [Array]
    },
    exclude: {
    description: 'Exclude all modules matching any of these conditions.',
    oneOf: [Array]
    },
    terserOptions: {
    description: 'Options for terser.',
    additionalProperties: true,
    type: 'object'
    },
    extractComments: {
    description: 'Whether comments shall be extracted to a separate file.',
    anyOf: [Array]
    },
    parallel: {
    description: 'Use multi-process parallel running to improve the build speed.',
    anyOf: [Array]
    },
    minify: {
    description: 'Allows you to override default minify function.',
    instanceof: 'Function'
    }
    },
    default: {
    definitions: { Rule: [Object], Rules: [Object] },
    title: 'TerserPluginOptions',
    type: 'object',
    additionalProperties: false,
    properties: {
    test: [Object],
    include: [Object],
    exclude: [Object],
    terserOptions: [Object],
    extractComments: [Object],
    parallel: [Object],
    minify: [Object]
    }
    }
    },
    data: {
    terserOptions: {
    parse: { ecma: 8 },
    compress: {
    ecma: 5,
    warnings: false,
    comparisons: false,
    inline: 2,
    keep_fnames: true
    },
    mangle: { safari10: true, keep_fnames: true },
    keep_classnames: false,
    keep_fnames: false,
    output: { ecma: 5, comments: false, ascii_only: true }
    },
    sourceMap: true
    }
    }
    ],
    schema: {
    definitions: {
    Rule: {
    description: 'Filtering rule as regex or string.',
    anyOf: [
    { instanceof: 'RegExp', tsType: 'RegExp' },
    { type: 'string', minLength: 1 }
    ]
    },
    Rules: {
    description: 'Filtering rules.',
    anyOf: [
    { type: 'array', items: [Object] },
    { '$ref': '#/definitions/Rule' }
    ]
    }
    },
    title: 'TerserPluginOptions',
    type: 'object',
    additionalProperties: false,
    properties: {
    test: {
    description: 'Include all modules that pass test assertion.',
    oneOf: [ { '$ref': '#/definitions/Rules' } ]
    },
    include: {
    description: 'Include all modules matching any of these conditions.',
    oneOf: [ { '$ref': '#/definitions/Rules' } ]
    },
    exclude: {
    description: 'Exclude all modules matching any of these conditions.',
    oneOf: [ { '$ref': '#/definitions/Rules' } ]
    },
    terserOptions: {
    description: 'Options for terser.',
    additionalProperties: true,
    type: 'object'
    },
    extractComments: {
    description: 'Whether comments shall be extracted to a separate file.',
    anyOf: [
    { type: 'boolean' },
    { type: 'string', minLength: 1 },
    { instanceof: 'RegExp' },
    { instanceof: 'Function' },
    {
    additionalProperties: false,
    properties: [Object],
    type: 'object'
    }
    ]
    },
    parallel: {
    description: 'Use multi-process parallel running to improve the build speed.',
    anyOf: [ { type: 'boolean' }, { type: 'integer' } ]
    },
    minify: {
    description: 'Allows you to override default minify function.',
    instanceof: 'Function'
    }
    },
    default: {
    definitions: {
    Rule: {
    description: 'Filtering rule as regex or string.',
    anyOf: [ [Object], [Object] ]
    },
    Rules: {
    description: 'Filtering rules.',
    anyOf: [ [Object], [Object] ]
    }
    },
    title: 'TerserPluginOptions',
    type: 'object',
    additionalProperties: false,
    properties: {
    test: {
    description: 'Include all modules that pass test assertion.',
    oneOf: [ [Object] ]
    },
    include: {
    description: 'Include all modules matching any of these conditions.',
    oneOf: [ [Object] ]
    },
    exclude: {
    description: 'Exclude all modules matching any of these conditions.',
    oneOf: [ [Object] ]
    },
    terserOptions: {
    description: 'Options for terser.',
    additionalProperties: true,
    type: 'object'
    },
    extractComments: {
    description: 'Whether comments shall be extracted to a separate file.',
    anyOf: [ [Object], [Object], [Object], [Object], [Object] ]
    },
    parallel: {
    description: 'Use multi-process parallel running to improve the build speed.',
    anyOf: [ [Object], [Object] ]
    },
    minify: {
    description: 'Allows you to override default minify function.',
    instanceof: 'Function'
    }
    }
    }
    },
    headerName: 'Terser Plugin',
    baseDataPath: 'options',
    postFormatter: null
    }
    npm ERR! code ELIFECYCLE
    npm ERR! errno 1
    npm ERR! [email protected] build: node scripts/build.js
    npm ERR! Exit status 1
    npm ERR!
    npm ERR! Failed at the [email protected] build script.
    npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2021-04-11T05_53_44_135Z-debug.log
`

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.