diff --git a/.env b/.env new file mode 100644 index 00000000..9dc0309a --- /dev/null +++ b/.env @@ -0,0 +1,2 @@ +# NODE_ENV = 'production' +VUE_APP_BASE_URL = 'http://www.aida.com.hk' diff --git a/.env.test b/.env.test index 3a0ddd5a..7f5fd7f5 100644 --- a/.env.test +++ b/.env.test @@ -1,2 +1,2 @@ -NODE_ENV = 'production' -VUE_APP_BASE_URL = 'http://18.162.111.141:80' +NODE_ENV = 'development' +VUE_APP_BASE_URL = 'http://18.167.251.121:10086' diff --git a/.env.test_build b/.env.test_build new file mode 100644 index 00000000..6457fbcb --- /dev/null +++ b/.env.test_build @@ -0,0 +1,2 @@ +NODE_ENV = 'production' +VUE_APP_BASE_URL = 'http://18.167.251.121:10086' diff --git a/.eslintrc.js b/.eslintrc.js index 61c89b40..1129ec58 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -2,7 +2,7 @@ module.exports = { root: true, // 停止在父级目录中寻找 env: { es6: true, // 启用 ES6 语法支持以及新的 ES6 全局变量或类型 - node: true // Node.js 全局变量和 Node.js 作用域 + node: true, // Node.js 全局变量和 Node.js 作用域 }, extends: ['plugin:vue/essential'], rules: { diff --git a/package-lock.json b/package-lock.json index 5d98998b..d491f29a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,8 +9,9 @@ "version": "0.1.0", "dependencies": { "@ans1998/vue3-color": "^3.0.7", + "@flaticon/flaticon-uicons": "^2.2.0", "ant-design-vue": "^3.2.12", - "axios": "^0.27.2", + "axios": "^1.4.0", "core-js": "^3.8.3", "file-saver": "^2.0.5", "html2canvas": "^1.4.1", @@ -1809,6 +1810,14 @@ "node": ">=10" } }, + "node_modules/@flaticon/flaticon-uicons": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/@flaticon/flaticon-uicons/-/flaticon-uicons-2.2.0.tgz", + "integrity": "sha512-9rZ9dKhqrR/XLI84HHfOwetK8ew/Y0FONp5l6n+fMhqGBrDZKkOGMjAoEgSfBH6d+VaVGcm0E28xhlBt7ggbRg==", + "optionalDependencies": { + "esbuild-linux-64": "^0.14.5" + } + }, "node_modules/@hapi/hoek": { "version": "9.3.0", "resolved": "https://registry.npmmirror.com/@hapi/hoek/-/hoek-9.3.0.tgz", @@ -3693,12 +3702,13 @@ } }, "node_modules/axios": { - "version": "0.27.2", - "resolved": "https://registry.npmmirror.com/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.4.0.tgz", + "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", "dependencies": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, "node_modules/babel-eslint": { @@ -5365,6 +5375,21 @@ "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", "dev": true }, + "node_modules/esbuild-linux-64": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz", + "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz", @@ -9434,6 +9459,11 @@ "node": ">= 0.10" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz", @@ -13293,6 +13323,14 @@ } } }, + "@flaticon/flaticon-uicons": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/@flaticon/flaticon-uicons/-/flaticon-uicons-2.2.0.tgz", + "integrity": "sha512-9rZ9dKhqrR/XLI84HHfOwetK8ew/Y0FONp5l6n+fMhqGBrDZKkOGMjAoEgSfBH6d+VaVGcm0E28xhlBt7ggbRg==", + "requires": { + "esbuild-linux-64": "^0.14.5" + } + }, "@hapi/hoek": { "version": "9.3.0", "resolved": "https://registry.npmmirror.com/@hapi/hoek/-/hoek-9.3.0.tgz", @@ -14844,12 +14882,13 @@ } }, "axios": { - "version": "0.27.2", - "resolved": "https://registry.npmmirror.com/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.4.0.tgz", + "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", "requires": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, "babel-eslint": { @@ -16198,6 +16237,12 @@ "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", "dev": true }, + "esbuild-linux-64": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz", + "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==", + "optional": true + }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz", @@ -19340,6 +19385,11 @@ } } }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "prr": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz", diff --git a/package.json b/package.json index d29ed805..b5509d3b 100644 --- a/package.json +++ b/package.json @@ -5,13 +5,15 @@ "scripts": { "serve": "vue-cli-service serve", "build": "vue-cli-service build", - "build:test": "vue-cli-service build --mode test", + "serve:test": "vue-cli-service serve --mode test", + "build:test": "vue-cli-service build --mode test_build", "lint": "vue-cli-service lint" }, "dependencies": { "@ans1998/vue3-color": "^3.0.7", + "@flaticon/flaticon-uicons": "^2.2.0", "ant-design-vue": "^3.2.12", - "axios": "^0.27.2", + "axios": "^1.4.0", "core-js": "^3.8.3", "file-saver": "^2.0.5", "html2canvas": "^1.4.1", diff --git a/src/assets/images/homePage/robot.png b/src/assets/images/homePage/robot.png new file mode 100644 index 00000000..311c2090 Binary files /dev/null and b/src/assets/images/homePage/robot.png differ diff --git a/src/assets/style/style.css b/src/assets/style/style.css new file mode 100644 index 00000000..dafba0da --- /dev/null +++ b/src/assets/style/style.css @@ -0,0 +1,173 @@ +html, +body, +#app { + margin: 0; + padding: 0; + height: 100%; + font-family: 'Roboto', sans-serif; +} +input { + outline: none; +} +.page_content { + width: 1440px; + max-width: 100%; + height: 100%; + margin: 0 auto; +} +.button_first { + width: 9.85rem; + text-align: center; + background: #E0E0F6; + height: 4rem; + line-height: 4rem; + font-size: 1.3rem; + font-weight: 400; + color: #343579; + cursor: pointer; +} +.button_second { + width: 9.85rem; + text-align: center; + background: #343579; + height: 4rem; + line-height: 4rem; + font-size: 1.4rem; + font-weight: 400; + color: #fff; + cursor: pointer; +} +.system_silder { + width: 100%; +} +.system_silder .ant-slider { + margin: 0; + width: 12rem; +} +.system_silder .ant-slider .ant-slider-rail { + height: 0.6rem; + border-radius: 0.3rem; + background: #F2F0FD; +} +.system_silder .ant-slider .ant-slider-track { + height: 0.6rem; + border-radius: 0.3rem; + background: #343579; +} +.system_silder .ant-slider .ant-slider-handle { + margin-top: -0.4rem; + border: solid 0.2rem #343579; +} +.ant-tooltip { + z-index: 2; +} +.ant-tooltip .ant-tooltip-inner { + background: #343579; + border-radius: 5px; + padding: 0.6rem 0.5rem; +} +.select_block .ant-select:not(.ant-select-customize-input) .ant-select-selector { + background: transparent; + height: 4rem; + border: 0.1rem solid #000 !important; + border-radius: 0; + box-shadow: none !important; +} +.select_block .ant-select-single .ant-select-selector .ant-select-selection-item, +.select_block .ant-select-single .ant-select-selector .ant-select-selection-placeholder { + line-height: 3.8rem; + color: #1A1A1A; + font-size: 1.3rem; + font-weight: bold; +} +.modal_component.ant-modal { + top: 0; +} +.modal_component .ant-modal-content { + overflow: hidden; +} +.modal_component .ant-modal-content .ant-modal-header { + padding: 2.4rem 2.6rem; + background: #F7F7F7; +} +.modal_component .ant-modal-content .ant-modal-header .ant-modal-title { + font-size: 1.8rem; + line-height: 1.8rem; + color: #030303; +} +.modal_component .ant-modal-content .ant-modal-body { + padding: 0; +} +.collection_modal .ant-modal-body { + height: calc(80vh - 6.4rem); + overflow-y: hidden; +} +.collection_modal .ant-upload.ant-upload-select-picture-card { + width: 16.5rem; + height: 16.5rem; + background: #FFFFFF; + border: 0.3rem dashed #EDEDED; + margin: 0 2rem 2rem 0; +} +.collection_modal .ant-upload.ant-upload-select-picture-card .upload_tip_block .icon-jiahao { + font-size: 3.2rem; + color: #B7B7B7; +} +.collection_modal .ant-upload.ant-upload-select-picture-card .ant-upload-text { + font-size: 1.6rem; + color: #B7B7B7; +} +.collection_modal .ant-upload-list-picture-card-container { + display: none !important; +} +.collection_modal .ant-upload-picture-card-wrapper { + width: auto; + vertical-align: top; +} +.cut_pricture_modal .ant-modal-body { + height: 65.4rem; + overflow-y: hidden; +} +.scroll_style::-webkit-scrollbar-button:single-button { + display: block; + border-style: solid; + height: 1.3rem; + width: 1.4rem; +} +.scroll_style::-webkit-scrollbar-button:single-button:vertical:decrement { + border-width: 0 0.8rem 0.8rem 0.8rem; + border-color: transparent transparent #555555 transparent; +} +.scroll_style::-webkit-scrollbar-button:single-button:vertical:decrement:hover { + border-color: transparent transparent #777777 transparent; +} +.scroll_style::-webkit-scrollbar-button:single-button:vertical:increment { + border-width: 0.8rem 0.8rem 0 0.8rem; + border-color: #555555 transparent transparent transparent; +} +.scroll_style::-webkit-scrollbar-button:vertical:single-button:increment:hover { + border-color: #777777 transparent transparent transparent; +} +.scroll_style::-webkit-scrollbar { + /*滚动条整体样式*/ + width: 1.4rem; + /*高宽分别对应横竖滚动条的尺寸*/ +} +.scroll_style::-webkit-scrollbar-thumb { + /*滚动条里面小方块*/ + background: #c2c2c2; + opacity: 0.8; + border-radius: 0.7rem; +} +.mark_loading { + position: fixed; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.2); + left: 0; + top: 0; + z-index: 99999; + display: flex; + align-items: center; + justify-content: center; +} diff --git a/src/assets/style/style.less b/src/assets/style/style.less index 1e32c5f4..ff7230bd 100644 --- a/src/assets/style/style.less +++ b/src/assets/style/style.less @@ -5,6 +5,9 @@ html,body,#app{ height: 100%; font-family: 'Roboto', sans-serif; } +input{ + outline:none +} .page_content{ width: 1440px; max-width: 100%; @@ -83,6 +86,7 @@ html,body,#app{ } } + //弹窗公共样式 .modal_component{ diff --git a/src/component/Detail/habit.vue b/src/component/Detail/habit.vue new file mode 100644 index 00000000..d87e4ffb --- /dev/null +++ b/src/component/Detail/habit.vue @@ -0,0 +1,433 @@ + + + + \ No newline at end of file diff --git a/src/component/HomePage/Generate.vue b/src/component/HomePage/Generate.vue new file mode 100644 index 00000000..5fab4b79 --- /dev/null +++ b/src/component/HomePage/Generate.vue @@ -0,0 +1,470 @@ + + + diff --git a/src/component/HomePage/Header.vue b/src/component/HomePage/Header.vue index dc95850c..c8e8a6a6 100644 --- a/src/component/HomePage/Header.vue +++ b/src/component/HomePage/Header.vue @@ -1,32 +1,75 @@ diff --git a/src/component/HomePage/collectionModal.vue b/src/component/HomePage/collectionModal.vue index f3eb3110..00629dde 100644 --- a/src/component/HomePage/collectionModal.vue +++ b/src/component/HomePage/collectionModal.vue @@ -8,10 +8,10 @@ :centered="true" >