diff --git a/frontend/jest.config.js b/frontend/jest.config.js deleted file mode 100644 index 143cdc868c..0000000000 --- a/frontend/jest.config.js +++ /dev/null @@ -1,24 +0,0 @@ -module.exports = { - moduleFileExtensions: ['js', 'jsx', 'json', 'vue'], - transform: { - '^.+\\.vue$': 'vue-jest', - '.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$': - 'jest-transform-stub', - '^.+\\.jsx?$': 'babel-jest' - }, - moduleNameMapper: { - '^@/(.*)$': '/src/$1' - }, - snapshotSerializers: ['jest-serializer-vue'], - testMatch: [ - '**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)' - ], - collectCoverageFrom: ['src/utils/**/*.{js,vue}', '!src/utils/auth.js', '!src/utils/request.js', 'src/components/**/*.{js,vue}'], - coverageDirectory: '/tests/unit/coverage', - // 'collectCoverage': true, - 'coverageReporters': [ - 'lcov', - 'text-summary' - ], - testURL: 'http://localhost/' -} diff --git a/frontend/package.json b/frontend/package.json index 16bc7e2550..3a046154dc 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -4,6 +4,7 @@ "description": "A vue admin template with Element UI & axios & iconfont & permission control & lint", "author": "Pan ", "license": "MIT", + "private": true, "scripts": { "serve": "vue-cli-service serve", "build:prod": "vue-cli-service build", @@ -23,18 +24,17 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "screenfull": "4.2.0", - "stylus": "^0.54.8", - "stylus-loader": "^5.0.0", "svg-sprite-loader": "4.1.3", "svgo": "1.2.2", "vue": "2.6.10", "vue-i18n": "7.3.2", "vue-router": "3.0.6", "vuedraggable": "^2.24.3", - "vuex": "3.1.0" + "vuex": "3.1.0", + "webpack": "^4.46.0" }, "devDependencies": { - "@babel/core": "7.0.0", + "@babel/core": "^7.4.0-0", "@babel/register": "7.0.0", "@vue/cli-plugin-babel": "3.6.0", "@vue/cli-plugin-eslint": "^3.9.1", @@ -46,9 +46,9 @@ "eslint-plugin-vue": "5.2.2", "html-webpack-plugin": "3.2.0", "mockjs": "1.0.1-beta3", - "node-sass": "^4.9.0", "runjs": "^4.3.2", - "sass-loader": "^7.1.0", + "sass": "^1.32.5", + "sass-loader": "^10.1.1", "script-ext-html-webpack-plugin": "2.1.3", "script-loader": "0.7.2", "serve-static": "^1.13.2", diff --git a/frontend/src/components/GridButton/index.vue b/frontend/src/components/GridButton/index.vue new file mode 100644 index 0000000000..34d1521433 --- /dev/null +++ b/frontend/src/components/GridButton/index.vue @@ -0,0 +1,38 @@ + + + diff --git a/frontend/src/main.js b/frontend/src/main.js index 97f99bc7cf..f8038f4214 100644 --- a/frontend/src/main.js +++ b/frontend/src/main.js @@ -1,6 +1,5 @@ import Vue from 'vue' import Cookies from 'js-cookie' -import 'normalize.css/normalize.css' // A modern alternative to CSS resets import '@/styles/index.scss' // global css import ElementUI from 'element-ui' import Fit2CloudUI from 'fit2cloud-ui' diff --git a/frontend/src/metersphere/common/js/regex.js b/frontend/src/metersphere/common/js/regex.js index 4f6f028161..32aab68ac0 100644 --- a/frontend/src/metersphere/common/js/regex.js +++ b/frontend/src/metersphere/common/js/regex.js @@ -1 +1 @@ -export const PHONE_REGEX = '^1(3|4|5|6|7|8|9)\\d{9}$'; +export const PHONE_REGEX = '^1(3|4|5|6|7|8|9)\\d{9}$' diff --git a/frontend/src/store/modules/panel.js b/frontend/src/store/modules/panel.js index 96e6916d1d..a3c5d064e7 100644 --- a/frontend/src/store/modules/panel.js +++ b/frontend/src/store/modules/panel.js @@ -1,7 +1,7 @@ const getDefaultState = () => { return { - panelName: "" + panelName: '' } } diff --git a/frontend/src/styles/common/mixins.scss b/frontend/src/styles/common/mixins.scss new file mode 100644 index 0000000000..13c38117a0 --- /dev/null +++ b/frontend/src/styles/common/mixins.scss @@ -0,0 +1,9 @@ +@mixin flex-row($justify: flex-start, $align: stretch) { + display: flex; + @if $justify != flex-start { + justify-content: $justify; + } + @if $align != stretch { + align-items: $align; + } +} diff --git a/frontend/src/styles/common/variables.scss b/frontend/src/styles/common/variables.scss new file mode 100644 index 0000000000..5f8faa4d83 --- /dev/null +++ b/frontend/src/styles/common/variables.scss @@ -0,0 +1,54 @@ +/* Element 变量 */ +$--color-primary: #447DF7; +$--color-success: #87CB16; +$--color-warning: #FFA534; +$--color-danger: #FB404B; + +$--box-shadow-light: 0 1px 4px 0 rgb(0 0 0 / 14%); + +$--color-text-primary: #3c4858; + +/* layout */ +$layout-bg-color: #F2F2F2; + +/* sidebar */ +$sidebar-open-width: 260px; +$sidebar-close-width: 60px; +$sidebar-bg-color: #30373d; +$sidebar-bg-gradient: linear-gradient(to bottom right, #30373D, #3E3E3D); + +/* menu */ +$menu-height: 50px; // 菜单项高度 +$menu-bg-color: transparent; // 菜单项背景 +$menu-bg-color-hover: mix($sidebar-bg-color, #000, 90%); // 菜单项hover背景 +$menu-color: #B6C0CD; // 菜单项字体颜色 +$menu-open-bg-color: #252B2F; // 菜单项展开背景 +$menu-active-color: #FFF; // 菜单项激活时颜色 +$menu-active-bg-color: transparent; // 菜单项激活时背景 + +$submenu-height: 40px; // 子菜单项高度 +$submenu-bg-color-hover: mix($menu-open-bg-color, #000, 80%); // 子菜单项hover背景 +$submenu-active-color: $menu-active-color; // 子菜单项激活时颜色 +$submenu-active-bg-color: transparent; // 子菜单项激活时背景 + +$menu-active-prefix-color: $--color-primary; // 菜单激活前缀颜色 +$menu-active-prefix-width: 4px; // 菜单激活前缀宽度 + +/* logo */ +$logo-height: 40px; +$logo-bg-color: #4E5051; + +/* header */ +$header-height: 60px; +$header-padding: 30px; + +/* main */ +$view-padding: 15px; + +/* fit2cloud-ui的variables加载了element-ui的变量 */ +@import "~fit2cloud-ui/src/styles/common/variables"; + +:export { + theme: $--color-primary; +} + diff --git a/frontend/src/styles/index.scss b/frontend/src/styles/index.scss index daa8f25b6e..c8f6acbde9 100644 --- a/frontend/src/styles/index.scss +++ b/frontend/src/styles/index.scss @@ -1,9 +1,11 @@ +@import '~normalize.css/normalize.css'; @import './variables.scss'; @import './mixin.scss'; @import './transition.scss'; @import './element-ui.scss'; @import './sidebar.scss'; @import './topbar.scss'; +@import "~fit2cloud-ui/src/styles/index.scss"; // @import '../metersphere/common/css/index.css'; diff --git a/frontend/src/views/system/user/CustomCondtion.vue b/frontend/src/views/system/user/CustomCondtion.vue index f1f65bad51..056cd3b94c 100644 --- a/frontend/src/views/system/user/CustomCondtion.vue +++ b/frontend/src/views/system/user/CustomCondtion.vue @@ -10,9 +10,13 @@ import { ComplexCondition } from 'fit2cloud-ui/src/components/search-bar/model' export default { name: 'CustomCondition', props: { + // eslint-disable-next-line vue/require-default-prop field: String, + // eslint-disable-next-line vue/require-default-prop label: String, + // eslint-disable-next-line vue/require-default-prop defaultOperator: String, + // eslint-disable-next-line vue/require-default-prop options: Array }, data() { diff --git a/frontend/src/views/system/user/index_back.vue b/frontend/src/views/system/user/index1.vue similarity index 70% rename from frontend/src/views/system/user/index_back.vue rename to frontend/src/views/system/user/index1.vue index 54d60e48e0..89d8a720d3 100644 --- a/frontend/src/views/system/user/index_back.vue +++ b/frontend/src/views/system/user/index1.vue @@ -4,25 +4,36 @@ :data="data" :columns="columns" :buttons="buttons" + :header="header" :search-config="searchConfig" :pagination-config="paginationConfig" @select="select" @search="search" > + + - - - - - -