1.11
|
@ -0,0 +1,7 @@
|
|||
[*.{js,jsx,ts,tsx,vue}]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
end_of_line = lf
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
max_line_length = 150
|
|
@ -0,0 +1,2 @@
|
|||
# 发布
|
||||
NODE_ENV=production
|
|
@ -0,0 +1,24 @@
|
|||
.DS_Store
|
||||
node_modules
|
||||
/dist
|
||||
*.zip
|
||||
|
||||
|
||||
# local env files
|
||||
.env.local
|
||||
.env.*.local
|
||||
|
||||
# Log files
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
pnpm-debug.log*
|
||||
|
||||
# Editor directories and files
|
||||
.idea
|
||||
.vscode
|
||||
*.suo
|
||||
*.ntvs*
|
||||
*.njsproj
|
||||
*.sln
|
||||
*.sw?
|
|
@ -0,0 +1,56 @@
|
|||
# jointcloud 云际计算
|
||||
|
||||
## 电脑需要安装 node 环境
|
||||
|
||||
## 安装依赖命令
|
||||
|
||||
```
|
||||
npm install
|
||||
```
|
||||
|
||||
### 编译及热加载命令
|
||||
|
||||
```
|
||||
npm run dev
|
||||
```
|
||||
|
||||
### 生产环境打包命令
|
||||
|
||||
```
|
||||
npm run build
|
||||
```
|
||||
|
||||
### 项目目录结构 src
|
||||
|
||||
├── api `接口`
|
||||
├── assets `图片资源`
|
||||
│ ├── modules `八大模块图片`
|
||||
│ ├── partner `合作伙伴图片`
|
||||
├── components `组件`
|
||||
│ ├── documents `文件`
|
||||
│ ├── modules `模块组件`
|
||||
│ │ ├── cloudBookkeepingAsync `云际异步记账`
|
||||
│ │ ├── cloudBookkeepingSync `云际同步记账`
|
||||
│ │ ├── cloudComputation `云际计算`
|
||||
│ │ ├── cloudStorage `云际存储`
|
||||
│ │ ├── disasterRecovery `云际容灾`
|
||||
│ │ ├── serviceRecommendation `云际推荐`
|
||||
│ │ └── header.vue `模块公共头部`
|
||||
│ └── .. `其他组件`
|
||||
├── mixin `复用代码`
|
||||
├── router `路径声明`
|
||||
├── scripts/map `列表map(表头)`
|
||||
├── store `vuex存储`
|
||||
├── styles `公共样式文件`
|
||||
├── utils `封装请求及多语言`
|
||||
├── views `page页面`
|
||||
│ ├── error-page `模块页面`
|
||||
│ ├── modules `模块页面`
|
||||
│ │ ├── cloudBookkeepingAsync `云际异步记账`
|
||||
│ │ ├── cloudBookkeepingSync `云际同步记账`
|
||||
│ │ ├── cloudComputation `云际计算`
|
||||
│ │ ├── cloudStorage `云际存储`
|
||||
│ │ ├── disasterRecovery `云际容灾`
|
||||
│ │ └── serviceRecommendation `云际推荐`
|
||||
└── └── .. `其他页面`
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
module.exports = {
|
||||
presets: [
|
||||
'@vue/cli-plugin-babel/preset',
|
||||
],
|
||||
};
|
|
@ -0,0 +1,61 @@
|
|||
{
|
||||
"name": "jointcloud",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"author": "annzee <aannzee@gmail.com>",
|
||||
"scripts": {
|
||||
"dev": "vue-cli-service serve",
|
||||
"prod": "vue-cli-service serve --mode production",
|
||||
"build": "vue-cli-service build --mode production",
|
||||
"lint": "vue-cli-service lint"
|
||||
},
|
||||
"dependencies": {
|
||||
"axios": "^0.20.0",
|
||||
"compression-webpack-plugin": "^6.0.4",
|
||||
"core-js": "^3.6.5",
|
||||
"dedent": "^0.7.0",
|
||||
"echarts": "^4.9.0",
|
||||
"element-ui": "^2.13.2",
|
||||
"filemanager-webpack-plugin": "^3.0.0-alpha.4",
|
||||
"qs": "^6.9.4",
|
||||
"uglifyjs-webpack-plugin": "^2.2.0",
|
||||
"vue": "^2.6.11",
|
||||
"vue-codemirror": "^4.0.6",
|
||||
"vue-i18n": "^8.22.2",
|
||||
"vue-router": "^3.4.4",
|
||||
"vuex": "^3.5.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vue/cli-plugin-babel": "~4.5.0",
|
||||
"@vue/cli-plugin-eslint": "^4.5.6",
|
||||
"@vue/cli-service": "~4.5.0",
|
||||
"@vue/eslint-config-airbnb": "^5.0.2",
|
||||
"babel-eslint": "^10.1.0",
|
||||
"eslint": "^6.7.2",
|
||||
"eslint-plugin-import": "^2.20.2",
|
||||
"eslint-plugin-vue": "^6.2.2",
|
||||
"node-sass": "^4.14.1",
|
||||
"sass-loader": "^10.0.2",
|
||||
"vue-template-compiler": "^2.6.11"
|
||||
},
|
||||
"eslintConfig": {
|
||||
"root": true,
|
||||
"env": {
|
||||
"node": true
|
||||
},
|
||||
"extends": [
|
||||
"plugin:vue/essential",
|
||||
"eslint:recommended",
|
||||
"@vue/airbnb"
|
||||
],
|
||||
"parserOptions": {
|
||||
"parser": "babel-eslint"
|
||||
},
|
||||
"rules": {}
|
||||
},
|
||||
"browserslist": [
|
||||
"> 1%",
|
||||
"last 2 versions",
|
||||
"not dead"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 4.2 KiB |
|
@ -0,0 +1,31 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
||||
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
|
||||
<title><%= htmlWebpackPlugin.options.title %></title>
|
||||
<!-- 使用CDN的CSS文件 -->
|
||||
<% for (var i in htmlWebpackPlugin.options.cdn &&
|
||||
htmlWebpackPlugin.options.cdn.css) { %>
|
||||
<link rel="stylesheet" href="<%= htmlWebpackPlugin.options.cdn.css[i] %>" />
|
||||
<% } %>
|
||||
|
||||
<!-- 使用CDN的JS文件 -->
|
||||
<% for (var i in htmlWebpackPlugin.options.cdn &&
|
||||
htmlWebpackPlugin.options.cdn.js) { %>
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="<%= htmlWebpackPlugin.options.cdn.js[i] %>"
|
||||
></script>
|
||||
<% } %>
|
||||
</head>
|
||||
<body>
|
||||
<noscript>
|
||||
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
|
||||
</noscript>
|
||||
<div id="app"></div>
|
||||
<!-- built files will be auto injected -->
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,23 @@
|
|||
<template>
|
||||
<div id="app">
|
||||
<router-view />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
export default {
|
||||
name: 'App',
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
#app {
|
||||
font-family: Avenir, Helvetica, Arial, sans-serif;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
text-align: center;
|
||||
color: #2c3e50;
|
||||
/* margin-top: 60px; */
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,6 @@
|
|||
import common from './common';
|
||||
import cloudStorage from './cloudStorage';
|
||||
import cloudComputation from './cloudComputation';
|
||||
import serviceRecommendation from './serviceRecommendation';
|
||||
|
||||
export default { common, cloudStorage, cloudComputation, serviceRecommendation };
|
|
@ -0,0 +1,50 @@
|
|||
import request from '@/utils/request';
|
||||
|
||||
// 云计算接口
|
||||
export default {
|
||||
createFunction(query) {
|
||||
return request({
|
||||
url: '/function/createFunction',
|
||||
method: 'post',
|
||||
data: query,
|
||||
});
|
||||
},
|
||||
deleteFunctionByName() {
|
||||
return request({
|
||||
url: '/function/delete/functionByName',
|
||||
method: 'delete',
|
||||
});
|
||||
},
|
||||
deleteFunction(functionId) {
|
||||
return request({
|
||||
url: `/function/deleteFunction/${functionId}`,
|
||||
method: 'delete',
|
||||
});
|
||||
},
|
||||
getFunctionByFunctionName() {
|
||||
return request({
|
||||
url: '/function/delete/functionByName',
|
||||
method: 'get',
|
||||
});
|
||||
},
|
||||
invokeFunction(query) {
|
||||
return request({
|
||||
url: '/function/invokeFunction',
|
||||
method: 'post',
|
||||
data: query,
|
||||
});
|
||||
},
|
||||
listFunctions(query) {
|
||||
return request({
|
||||
url: '/function/lists',
|
||||
method: 'get',
|
||||
params: query || { page: 1, size: 10 },
|
||||
});
|
||||
},
|
||||
updateFunction() {
|
||||
return request({
|
||||
url: '/function/updateFunction',
|
||||
method: 'put',
|
||||
});
|
||||
},
|
||||
};
|
|
@ -0,0 +1,45 @@
|
|||
import request from '@/utils/request';
|
||||
|
||||
// 云存储接口
|
||||
export default {
|
||||
makeBucket(query) {
|
||||
return request({
|
||||
url: '/storage/makeBucket',
|
||||
method: 'post',
|
||||
params: query,
|
||||
});
|
||||
},
|
||||
listBuckets() {
|
||||
return request({
|
||||
url: '/storage/listBuckets',
|
||||
method: 'get',
|
||||
});
|
||||
},
|
||||
listCloudFiles() {
|
||||
return request({
|
||||
url: '/storage/listCloudFiles',
|
||||
method: 'get',
|
||||
});
|
||||
},
|
||||
uploadFile(query) {
|
||||
return request({
|
||||
url: '/storage/uploadFile',
|
||||
method: 'post',
|
||||
params: query,
|
||||
});
|
||||
},
|
||||
downloadFile() {
|
||||
return request({
|
||||
url: '/storage/downloadFile',
|
||||
method: 'get',
|
||||
});
|
||||
},
|
||||
deleteFile(query) {
|
||||
return request({
|
||||
url: '/storage/deleteFile',
|
||||
method: 'post',
|
||||
params: query,
|
||||
});
|
||||
},
|
||||
|
||||
};
|
|
@ -0,0 +1,18 @@
|
|||
import request from '@/utils/request';
|
||||
|
||||
export default {
|
||||
create(query) {
|
||||
return request({
|
||||
url: '/api/register',
|
||||
method: 'post',
|
||||
params: query,
|
||||
});
|
||||
},
|
||||
login(query) {
|
||||
return request({
|
||||
url: '/login',
|
||||
method: 'post',
|
||||
params: query,
|
||||
});
|
||||
},
|
||||
};
|
|
@ -0,0 +1,26 @@
|
|||
import request from '@/utils/request';
|
||||
|
||||
// 云推荐接口
|
||||
export default {
|
||||
scoreTotal(query) {
|
||||
return request({
|
||||
url: '/scoreTotal/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
},
|
||||
scoreCost(query) {
|
||||
return request({
|
||||
url: '/scoreCost/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
},
|
||||
score(query) {
|
||||
return request({
|
||||
url: '/score/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
},
|
||||
}
|
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 430 KiB |
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 71 KiB |
After Width: | Height: | Size: 178 KiB |
After Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 397 KiB |
After Width: | Height: | Size: 572 KiB |
After Width: | Height: | Size: 388 KiB |
After Width: | Height: | Size: 152 KiB |
After Width: | Height: | Size: 318 KiB |
After Width: | Height: | Size: 683 KiB |
After Width: | Height: | Size: 1.2 MiB |
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 279 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 46 KiB |
After Width: | Height: | Size: 151 KiB |
After Width: | Height: | Size: 49 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 729 KiB |
After Width: | Height: | Size: 228 KiB |
After Width: | Height: | Size: 113 KiB |
After Width: | Height: | Size: 184 KiB |
After Width: | Height: | Size: 44 KiB |
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 697 KiB |
After Width: | Height: | Size: 206 KiB |
After Width: | Height: | Size: 525 KiB |
After Width: | Height: | Size: 533 KiB |
After Width: | Height: | Size: 165 KiB |
After Width: | Height: | Size: 280 KiB |
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 119 KiB |
After Width: | Height: | Size: 65 KiB |
After Width: | Height: | Size: 119 KiB |
After Width: | Height: | Size: 148 KiB |
After Width: | Height: | Size: 143 KiB |
After Width: | Height: | Size: 116 KiB |
After Width: | Height: | Size: 152 KiB |
After Width: | Height: | Size: 163 KiB |
After Width: | Height: | Size: 149 KiB |
After Width: | Height: | Size: 58 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 25 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 351 KiB |
After Width: | Height: | Size: 123 KiB |
After Width: | Height: | Size: 77 KiB |
After Width: | Height: | Size: 71 KiB |
After Width: | Height: | Size: 117 KiB |
After Width: | Height: | Size: 103 KiB |
After Width: | Height: | Size: 6.5 KiB |
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 29 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 25 KiB |
After Width: | Height: | Size: 7.6 KiB |
After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 62 KiB |
After Width: | Height: | Size: 93 KiB |
After Width: | Height: | Size: 7.3 KiB |
After Width: | Height: | Size: 98 KiB |
After Width: | Height: | Size: 4.6 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 5.2 KiB |
After Width: | Height: | Size: 2.9 KiB |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 165 KiB |
After Width: | Height: | Size: 119 KiB |