Compare commits
	
		
			No commits in common. "17cf3cf4b1c566e7d2a5d3ee33a318f7ea24bcf4" and "7baa91ca0c1a2ea450d2c7ad25a099d40c166b54" have entirely different histories.
		
	
	
		
			17cf3cf4b1
			...
			7baa91ca0c
		
	
		
| @ -1,29 +0,0 @@ | ||||
| spring: | ||||
|   jackson: | ||||
|     time-zone: GMT+8 | ||||
|     date-format: yyyy-MM-dd HH:mm:ss | ||||
|   cloud: | ||||
|     sentinel: | ||||
|       enabled: true | ||||
|       transport: | ||||
|         dashboard: localhost:8180 | ||||
| management: | ||||
|   endpoints: | ||||
|     web: | ||||
|       exposure: | ||||
|         include: "*" | ||||
|   endpoint: | ||||
|     health: | ||||
|       show-details: ALWAYS | ||||
| feign: | ||||
|   sentinel: | ||||
|     enabled: true | ||||
|   client: | ||||
|     config: | ||||
|       default: | ||||
|         loggerLevel: FULL | ||||
|   httpclient: | ||||
|     enabled: true | ||||
| ribbon: | ||||
|   ReadTimeout: 300000 | ||||
|   ConnectTimeout: 300000 | ||||
| @ -1,58 +0,0 @@ | ||||
| spring: | ||||
|   servlet: | ||||
|     multipart: | ||||
|       max-file-size: -1 | ||||
|       max-request-size: -1 | ||||
|   redis: | ||||
|     host: 192.168.1.197 | ||||
|     port: 6379 | ||||
|     database: 0 | ||||
|     password: menhu@123 | ||||
|     timeout: 30s | ||||
|   datasource: | ||||
|     druid: | ||||
|       driver-class-name: com.mysql.cj.jdbc.Driver | ||||
|       url: jdbc:mysql://192.168.1.197:3306/portal?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai | ||||
|       username: root | ||||
|       password: menhu@123 | ||||
|       initial-size: 2 | ||||
|       max-active: 5 | ||||
|       min-idle: 2 | ||||
|       max-wait: 6000 | ||||
|       pool-prepared-statements: true | ||||
|       max-pool-prepared-statement-per-connection-size: 5 | ||||
|       time-between-eviction-runs-millis: 60000 | ||||
|       min-evictable-idle-time-millis: 300000 | ||||
|       test-while-idle: true | ||||
|       test-on-borrow: false | ||||
|       test-on-return: false | ||||
|       filter: | ||||
|         stat: | ||||
|           log-slow-sql: true | ||||
|           slow-sql-millis: 1000 | ||||
|           merge-sql: false | ||||
|         wall: | ||||
|           config: | ||||
|             multi-statement-allow: true | ||||
|   rabbitmq: | ||||
|     host: 192.168.1.197 | ||||
|     port: 5672 | ||||
|     username: admin | ||||
|     password: menhu@123 | ||||
|     publisher-returns: true | ||||
|     listener: | ||||
|       simple: | ||||
|         acknowledge-mode: manual | ||||
|         prefetch: 5 | ||||
| mybatis-plus: | ||||
|   mapper-locations: classpath:/mapper/**/*.xml | ||||
|   typeAliasesPackage: com.dkha.entity | ||||
|   global-config: | ||||
|     db-config: | ||||
|       id-type: ID_WORKER | ||||
|     banner: false | ||||
|   configuration: | ||||
|     map-underscore-to-camel-case: true | ||||
|     cache-enabled: false | ||||
|     call-setters-on-nulls: true | ||||
|     jdbc-type-for-null: 'null' | ||||
| @ -1,200 +0,0 @@ | ||||
| [ | ||||
|   { | ||||
|     "remark": "认证服务", | ||||
|     "id": "dkha-auth-server", | ||||
|     "uri": "lb://dkha-auth-server", | ||||
|     "order": "1", | ||||
|     "predicates": [ | ||||
|       { | ||||
|         "name": "Path", | ||||
|         "args": { | ||||
|           "pattern": "/auth/**" | ||||
|         } | ||||
|       } | ||||
|     ], | ||||
|     "filters": [ | ||||
|       { | ||||
|         "name": "StripPrefix", | ||||
|         "args": { | ||||
|           "StripPrefix": 0 | ||||
|         } | ||||
|       } | ||||
|     ] | ||||
|   }, | ||||
|   { | ||||
|     "remark": "Admin服务", | ||||
|     "id": "dkha-admin-server", | ||||
|     "uri": "lb://dkha-admin-server", | ||||
|     "order": "2", | ||||
|     "predicates": [ | ||||
|       { | ||||
|         "name": "Path", | ||||
|         "args": { | ||||
|           "pattern": "/sys/**" | ||||
|         } | ||||
|       } | ||||
|     ], | ||||
|     "filters": [ | ||||
|       { | ||||
|         "name": "StripPrefix", | ||||
|         "args": { | ||||
|           "StripPrefix": 0 | ||||
|         } | ||||
|       } | ||||
|     ] | ||||
|   }, | ||||
|   { | ||||
|     "remark": "监控服务", | ||||
|     "id": "dkha-monitor-server", | ||||
|     "uri": "lb://dkha-monitor-server", | ||||
|     "order": "3", | ||||
|     "predicates": [ | ||||
|       { | ||||
|         "name": "Path", | ||||
|         "args": { | ||||
|           "pattern": "/monitor/**" | ||||
|         } | ||||
|       } | ||||
|     ], | ||||
|     "filters": [ | ||||
|       { | ||||
|         "name": "StripPrefix", | ||||
|         "args": { | ||||
|           "StripPrefix": 0 | ||||
|         } | ||||
|       } | ||||
|     ] | ||||
|   }, | ||||
|   { | ||||
|     "remark": "OSS服务", | ||||
|     "id": "dkha-oss-server", | ||||
|     "uri": "lb://dkha-oss-server", | ||||
|     "order": "4", | ||||
|     "predicates": [ | ||||
|       { | ||||
|         "name": "Path", | ||||
|         "args": { | ||||
|           "pattern": "/oss/**" | ||||
|         } | ||||
|       } | ||||
|     ], | ||||
|     "filters": [ | ||||
|       { | ||||
|         "name": "StripPrefix", | ||||
|         "args": { | ||||
|           "StripPrefix": 0 | ||||
|         } | ||||
|       } | ||||
|     ] | ||||
|   }, | ||||
|   { | ||||
|     "remark": "消息服务", | ||||
|     "id": "dkha-message-server", | ||||
|     "uri": "lb://dkha-message-server", | ||||
|     "order": "5", | ||||
|     "predicates": [ | ||||
|       { | ||||
|         "name": "Path", | ||||
|         "args": { | ||||
|           "pattern": "/message/**" | ||||
|         } | ||||
|       } | ||||
|     ], | ||||
|     "filters": [ | ||||
|       { | ||||
|         "name": "StripPrefix", | ||||
|         "args": { | ||||
|           "StripPrefix": 0 | ||||
|         } | ||||
|       } | ||||
|     ] | ||||
|   }, | ||||
|   { | ||||
|     "remark": "工作流服务", | ||||
|     "id": "dkha-activiti-server", | ||||
|     "uri": "lb://dkha-activiti-server", | ||||
|     "order": "6", | ||||
|     "predicates": [ | ||||
|       { | ||||
|         "name": "Path", | ||||
|         "args": { | ||||
|           "pattern": "/activiti/**" | ||||
|         } | ||||
|       } | ||||
|     ], | ||||
|     "filters": [ | ||||
|       { | ||||
|         "name": "StripPrefix", | ||||
|         "args": { | ||||
|           "StripPrefix": 0 | ||||
|         } | ||||
|       } | ||||
|     ] | ||||
|   }, | ||||
|   { | ||||
|     "remark": "定时任务服务", | ||||
|     "id": "dkha-job-server", | ||||
|     "uri": "lb://dkha-job-server", | ||||
|     "order": "7", | ||||
|     "predicates": [ | ||||
|       { | ||||
|         "name": "Path", | ||||
|         "args": { | ||||
|           "pattern": "/job/**" | ||||
|         } | ||||
|       } | ||||
|     ], | ||||
|     "filters": [ | ||||
|       { | ||||
|         "name": "StripPrefix", | ||||
|         "args": { | ||||
|           "StripPrefix": 0 | ||||
|         } | ||||
|       } | ||||
|     ] | ||||
|   }, | ||||
|   { | ||||
|     "remark": "APP流服务", | ||||
|     "id": "dkha-api-server", | ||||
|     "uri": "lb://dkha-api-server", | ||||
|     "order": "8", | ||||
|     "predicates": [ | ||||
|       { | ||||
|         "name": "Path", | ||||
|         "args": { | ||||
|           "pattern": "/api/**" | ||||
|         } | ||||
|       } | ||||
|     ], | ||||
|     "filters": [ | ||||
|       { | ||||
|         "name": "StripPrefix", | ||||
|         "args": { | ||||
|           "StripPrefix": 0 | ||||
|         } | ||||
|       } | ||||
|     ] | ||||
|   }, | ||||
|   { | ||||
|     "remark": "门户网站", | ||||
|     "id": "dkha-portal-server", | ||||
|     "uri": "lb://dkha-portal-server", | ||||
|     "order": "9", | ||||
|     "predicates": [ | ||||
|       { | ||||
|         "name": "Path", | ||||
|         "args": { | ||||
|           "pattern": "/portal/**" | ||||
|         } | ||||
|       } | ||||
|     ], | ||||
|     "filters": [ | ||||
|       { | ||||
|         "name": "StripPrefix", | ||||
|         "args": { | ||||
|           "StripPrefix": 0 | ||||
|         } | ||||
|       } | ||||
|     ] | ||||
|   } | ||||
| ] | ||||
| @ -1,3 +0,0 @@ | ||||
| > 1% | ||||
| last 2 versions | ||||
| not dead | ||||
| @ -1,5 +0,0 @@ | ||||
| [*.{js,jsx,ts,tsx,vue}] | ||||
| indent_style = space | ||||
| indent_size = 2 | ||||
| trim_trailing_whitespace = true | ||||
| insert_final_newline = true | ||||
| @ -1,4 +0,0 @@ | ||||
| NODE_ENV = development | ||||
| VUE_APP_NODE_ENV = dev | ||||
| VUE_APP_BASE_URL = 'http://192.168.1.133' | ||||
| VUE_APP_SERVER_URL = 'http://192.168.1.133' | ||||
| @ -1,4 +0,0 @@ | ||||
| NODE_ENV = production | ||||
| VUE_APP_NODE_ENV = prod | ||||
| VUE_APP_BASE_URL = 'http://127.0.0.1' | ||||
| VUE_APP_SERVER_URL = 'http://192.168.1.133' | ||||
| @ -1,18 +0,0 @@ | ||||
| module.exports = { | ||||
|   root: true, | ||||
|   env: { | ||||
|     node: true | ||||
|   }, | ||||
|   extends: [ | ||||
|     'plugin:vue/essential', | ||||
|     '@vue/standard' | ||||
|   ], | ||||
|   parserOptions: { | ||||
|     parser: 'babel-eslint' | ||||
|   }, | ||||
|   rules: { | ||||
|     'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', | ||||
|     'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off', | ||||
|     'space-before-function-paren': 0 | ||||
|   } | ||||
| } | ||||
							
								
								
									
										23
									
								
								portal_client/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						| @ -1,23 +0,0 @@ | ||||
| .DS_Store | ||||
| node_modules | ||||
| /dist | ||||
| 
 | ||||
| 
 | ||||
| # 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? | ||||
| @ -1,7 +0,0 @@ | ||||
| { | ||||
|   "printWidth": 80, | ||||
|   "tabWidth": 2, | ||||
|   "singleQuote": true, | ||||
|   "semi": false, | ||||
|   "htmlWhitespaceSensitivity": "ignore" | ||||
| } | ||||
| @ -1,24 +0,0 @@ | ||||
| # portal_client | ||||
| 
 | ||||
| ## Project setup | ||||
| ``` | ||||
| npm install | ||||
| ``` | ||||
| 
 | ||||
| ### Compiles and hot-reloads for development | ||||
| ``` | ||||
| npm run serve | ||||
| ``` | ||||
| 
 | ||||
| ### Compiles and minifies for production | ||||
| ``` | ||||
| npm run build | ||||
| ``` | ||||
| 
 | ||||
| ### Lints and fixes files | ||||
| ``` | ||||
| npm run lint | ||||
| ``` | ||||
| 
 | ||||
| ### Customize configuration | ||||
| See [Configuration Reference](https://cli.vuejs.org/config/). | ||||
| @ -1,10 +0,0 @@ | ||||
| // 项目发布阶段需要用到的babel插件
 | ||||
| const prodPlugins = [] | ||||
| if (process.env.NODE_ENV === 'production') { | ||||
|   prodPlugins.push('transform-remove-console') | ||||
| } | ||||
| 
 | ||||
| module.exports = { | ||||
|   presets: ['@vue/cli-plugin-babel/preset'], | ||||
|   plugins: [...prodPlugins] | ||||
| } | ||||
							
								
								
									
										14629
									
								
								portal_client/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						| @ -1,43 +0,0 @@ | ||||
| { | ||||
|   "name": "portal_client", | ||||
|   "version": "1.1.0", | ||||
|   "private": true, | ||||
|   "scripts": { | ||||
|     "serve": "vue-cli-service serve", | ||||
|     "build": "vue-cli-service build", | ||||
|     "serve:dev": "vue-cli-service build --mode development", | ||||
|     "build:prod": "vue-cli-service build --mode production", | ||||
|     "lint": "vue-cli-service lint" | ||||
|   }, | ||||
|   "dependencies": { | ||||
|     "core-js": "^3.6.5", | ||||
|     "element-ui": "^2.4.5", | ||||
|     "less-loader": "^6.0.0", | ||||
|     "quill": "^1.3.7", | ||||
|     "vue": "^2.6.11", | ||||
|     "vue-lazyload": "^1.3.3", | ||||
|     "vue-router": "^3.2.0", | ||||
|     "vuex": "^3.4.0" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@vue/cli-plugin-babel": "~4.5.0", | ||||
|     "@vue/cli-plugin-eslint": "~4.5.0", | ||||
|     "@vue/cli-plugin-router": "~4.5.0", | ||||
|     "@vue/cli-plugin-vuex": "~4.5.0", | ||||
|     "@vue/cli-service": "~4.5.0", | ||||
|     "@vue/eslint-config-standard": "^5.1.2", | ||||
|     "axios": "^0.21.1", | ||||
|     "babel-eslint": "^10.1.0", | ||||
|     "babel-plugin-transform-remove-console": "^6.9.4", | ||||
|     "eslint": "^6.7.2", | ||||
|     "eslint-plugin-import": "^2.20.2", | ||||
|     "eslint-plugin-node": "^11.1.0", | ||||
|     "eslint-plugin-promise": "^4.2.1", | ||||
|     "eslint-plugin-standard": "^4.0.0", | ||||
|     "eslint-plugin-vue": "^6.2.2", | ||||
|     "node-sass": "^4.12.0", | ||||
|     "sass-loader": "^8.0.2", | ||||
|     "vue-cli-plugin-element": "^1.0.1", | ||||
|     "vue-template-compiler": "^2.6.11" | ||||
|   } | ||||
| } | ||||
| Before Width: | Height: | Size: 30 KiB | 
| Before Width: | Height: | Size: 45 KiB | 
| Before Width: | Height: | Size: 81 KiB | 
| Before Width: | Height: | Size: 48 KiB | 
| Before Width: | Height: | Size: 7.3 KiB | 
| Before Width: | Height: | Size: 6.9 KiB | 
| @ -1 +0,0 @@ | ||||
| <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1626240865067" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="12783" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M194.97 566.272V747.52L512 919.552 829.03 747.52V566.477L512 738.509 194.97 566.272zM512 104.448L13.926 376.218 512 647.782l407.552-221.798v312.525h90.522V376.218L512 104.448z" p-id="12784" fill="#172B4D"></path></svg> | ||||
| Before Width: | Height: | Size: 596 B | 
| @ -1 +0,0 @@ | ||||
| <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1626241025270" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="14725" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M390.827 562.59c-113.17 0-205.242-92.071-205.242-205.242s92.071-205.241 205.242-205.241 205.241 92.071 205.241 205.241-92.07 205.242-205.241 205.242z m0-346.483c-77.881 0-141.242 63.36-141.242 141.241S312.946 498.59 390.827 498.59s141.241-63.361 141.241-141.242-63.36-141.241-141.241-141.241z" fill="#172B4D" p-id="14726"></path><path d="M668.021 869.327c-17.673 0-32-14.327-32-32 0-150.662-109.993-273.235-245.193-273.235S145.633 686.665 145.633 837.327c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-89.503 31.785-173.795 89.499-237.348 28.333-31.199 61.402-55.729 98.288-72.909 38.437-17.901 79.284-26.979 121.407-26.979s82.97 9.077 121.407 26.979c36.886 17.18 69.955 41.71 98.288 72.909 57.715 63.553 89.499 147.845 89.499 237.348 0 17.673-14.328 32-32 32zM630.633 567.59c-17.673 0-32-14.327-32-32s14.327-32 32-32c77.881 0 141.242-63.361 141.242-141.242s-63.361-141.241-141.242-141.241c-17.673 0-32-14.327-32-32s14.327-32 32-32c113.171 0 205.242 92.071 205.242 205.241S743.804 567.59 630.633 567.59z" fill="#172B4D" p-id="14727"></path><path d="M907.827 874.327c-17.673 0-32-14.327-32-32 0-150.662-109.994-273.235-245.194-273.235-17.673 0-32-14.327-32-32s14.327-32 32-32c42.123 0 82.971 9.077 121.407 26.979 36.886 17.18 69.955 41.71 98.288 72.909 57.714 63.553 89.499 147.845 89.499 237.348 0 17.672-14.327 31.999-32 31.999z" fill="#172B4D" p-id="14728"></path></svg> | ||||
| Before Width: | Height: | Size: 1.7 KiB | 
| @ -1 +0,0 @@ | ||||
| <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1626240434789" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1023" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M810.6 183.5c0-65.7-53.7-119.4-119.4-119.4H333c-65.7 0-119.4 53.7-119.4 119.4-203 0-179.1 0-179.1 119.4 0 98.5 80.6 179.1 179.1 179.1 6 0 14.9 0 20.9-3 38.8 116.4 134.3 223.9 247.8 238.8V900h-89.6c-17.9 0-29.9 11.9-29.9 29.9 0 17.9 11.9 29.8 29.9 29.8h238.8c17.9 0 29.9-11.9 29.9-29.8S649.5 900 631.5 900h-89.6V717.9c113.4-14.9 206-122.4 247.8-238.8 6 0 14.9 3 20.9 3 98.5 0 179.1-80.6 179.1-179.1 0-119.5 23.9-119.5-179.1-119.5z m-597 238.8c-65.7 0-119.4-53.7-119.4-119.4s0-59.7 119.4-59.7v179.1z m537.3-59.7c0 131.3-107.5 298.5-238.8 298.5S273.3 493.9 273.3 362.6V183.5c0-29.9 29.9-59.7 59.7-59.7h358.2c29.8 0 59.7 29.9 59.7 59.7v179.1z m59.7 59.7V243.2c119.4 0 119.4-6 119.4 59.7s-53.7 119.4-119.4 119.4z m0 0" p-id="1024" fill="#172B4D"></path></svg> | ||||
| Before Width: | Height: | Size: 1.1 KiB | 
| Before Width: | Height: | Size: 85 KiB | 
| Before Width: | Height: | Size: 85 KiB | 
| Before Width: | Height: | Size: 192 KiB | 
| Before Width: | Height: | Size: 205 KiB | 
| Before Width: | Height: | Size: 540 KiB | 
| Before Width: | Height: | Size: 79 KiB | 
| Before Width: | Height: | Size: 44 KiB | 
| Before Width: | Height: | Size: 193 KiB | 
| @ -1 +0,0 @@ | ||||
| <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1626240753020" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6489" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M711.9 959.9c-10.8 0-21.5-3.3-30.7-9.7L495.3 820.9c-1.5-1-3.5-0.9-4.8 0.4l-72 68.4c-16.2 15.4-39.7 19.2-59.8 9.7-20.2-9.4-32.3-29.9-30.9-52.2l9-141.8c0.8-12.1 5.7-23.8 13.9-32.8l216-237.8c9.3-10.2 25.1-11 35.3-1.7 10.2 9.3 11 25.1 1.7 35.3l-216 237.8c-0.6 0.6-0.9 1.5-1 2.3l-9 141.8c0 0.8-0.2 2.6 2.2 3.7 2.4 1.1 3.7-0.2 4.2-0.7l72-68.4c18.4-17.5 46.9-19.7 67.8-5.2l185.9 129.4c1.1 0.8 2.4 0.9 3.6 0.4 1.3-0.5 2.1-1.5 2.3-2.8L858.2 140c0.1-0.6 0.4-2.3-1.5-3.7-1.9-1.4-3.4-0.7-4-0.4l-745.9 372c-0.5 0.2-2 1-2.1 3.2-0.1 2.2 1.3 3.1 1.8 3.4l198 123.2c11.7 7.3 15.3 22.7 8 34.4s-22.7 15.3-34.4 8L80 557c-16.5-10.3-26.2-28.8-25.3-48.2 0.9-19.5 12.3-36.9 29.7-45.6l745.9-372c18.4-9.2 40-7.2 56.4 5.2s24.3 32.6 20.5 52.8L764.9 915.9c-3.4 18-15.5 33-32.5 40-6.6 2.7-13.6 4-20.5 4z" p-id="6490" fill="#172B4D"></path></svg> | ||||
| Before Width: | Height: | Size: 1.2 KiB | 
| Before Width: | Height: | Size: 66 KiB | 
| @ -1,17 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang=""> | ||||
|   <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>公共安全技术研究中心</title> | ||||
|   </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> | ||||
| @ -1,14 +0,0 @@ | ||||
| <template> | ||||
|   <div id="app" class="ap"> | ||||
|     <transition name="el-fade-in-linear"> | ||||
|       <router-view></router-view> | ||||
|     </transition> | ||||
|     <el-backtop></el-backtop> | ||||
|   </div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|   name: 'app' | ||||
| } | ||||
| </script> | ||||
| @ -1,24 +0,0 @@ | ||||
| import request from '../utils/request' | ||||
| 
 | ||||
| export function queryById(id, uuid) { | ||||
|   return request({ | ||||
|     url: `/article/${id}/${uuid}`, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| export function queryResults(params) { | ||||
|   return request({ | ||||
|     url: '/article/search', | ||||
|     method: 'get', | ||||
|     params: params | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| export function queryByQuery(params) { | ||||
|   return request({ | ||||
|     url: '/article/list', | ||||
|     method: 'get', | ||||
|     params: params | ||||
|   }) | ||||
| } | ||||
| @ -1,8 +0,0 @@ | ||||
| import request from '../utils/request' | ||||
| 
 | ||||
| export function queryComponents() { | ||||
|   return request({ | ||||
|     url: '/component', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| @ -1,8 +0,0 @@ | ||||
| import request from '../utils/request' | ||||
| 
 | ||||
| export function load() { | ||||
|   return request({ | ||||
|     url: '/config/load', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| @ -1,22 +0,0 @@ | ||||
| import request from '../utils/request' | ||||
| 
 | ||||
| export function queryAllModules() { | ||||
|   return request({ | ||||
|     url: '/module', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| export function queryModuleByRoute(route) { | ||||
|   return request({ | ||||
|     url: `/module/route/${route}`, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| export function queryModuleByParent(parent) { | ||||
|   return request({ | ||||
|     url: `/module/parent/${parent}`, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| @ -1,22 +0,0 @@ | ||||
| import request from '../utils/request' | ||||
| 
 | ||||
| export function querySession() { | ||||
|   return request({ | ||||
|     url: '/student/sessions', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| export function queryBySession(session) { | ||||
|   return request({ | ||||
|     url: `/student/session/${session}`, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| export function queryByUuid(uuid) { | ||||
|   return request({ | ||||
|     url: `/student/${uuid}`, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| @ -1,22 +0,0 @@ | ||||
| import request from '../utils/request' | ||||
| 
 | ||||
| export function queryByUuid(uuid) { | ||||
|   return request({ | ||||
|     url: `/teacher/${uuid}`, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| export function queryCollege() { | ||||
|   return request({ | ||||
|     url: '/teacher/college', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| export function queryByCollege(college) { | ||||
|   return request({ | ||||
|     url: `/teacher/college/${college}`, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| Before Width: | Height: | Size: 6.7 KiB | 
| @ -1,91 +0,0 @@ | ||||
| $image-size: 120px; | ||||
| 
 | ||||
| .app-footer { | ||||
|   width: 100%; | ||||
|   padding: 80px 0; | ||||
|   color: $--color-text-regular; | ||||
|   line-height: 150%; | ||||
|   background-color: $--background-color-base; | ||||
|   display: flex; | ||||
|   justify-content: space-around; | ||||
|   align-items: center; | ||||
| 
 | ||||
|   .footer-inner { | ||||
|     width: $min-width; | ||||
|     // min-width: $min-width; | ||||
|     // max-width: $max-width; | ||||
| 
 | ||||
|     .focus-us { | ||||
|       font-size: $--font-size-large; | ||||
|       display: flex; | ||||
| 
 | ||||
|       ul { | ||||
|         margin-left: 20px; | ||||
| 
 | ||||
|         li { | ||||
|           float: left; | ||||
|           min-width: 40px; | ||||
| 
 | ||||
|           .el-link { | ||||
|             font-size: inherit; | ||||
|           } | ||||
| 
 | ||||
|           i:hover { | ||||
|             cursor: pointer; | ||||
|             color: $--color-primary; | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     } | ||||
| 
 | ||||
|     .footer-row { | ||||
|       width: 100%; | ||||
|       display: flex; | ||||
|       flex-wrap: wrap; | ||||
| 
 | ||||
|       .footer-info { | ||||
|         width: 50%; | ||||
|         display: flex; | ||||
|         flex-direction: column; | ||||
|         justify-content: space-between; | ||||
| 
 | ||||
|         .link-list { | ||||
|           width: 100%; | ||||
| 
 | ||||
|           li { | ||||
|             float: left; | ||||
|             min-width: 20%; | ||||
| 
 | ||||
|             .el-link { | ||||
|               font-size: $--font-size-small; | ||||
|             } | ||||
|           } | ||||
|         } | ||||
| 
 | ||||
|         .contact-us { | ||||
|           margin-top: 20px; | ||||
|           font-size: $--font-size-extra-small; | ||||
|         } | ||||
|       } | ||||
| 
 | ||||
|       .footer-brand { | ||||
|         width: 50%; | ||||
|         display: flex; | ||||
|         justify-content: space-around; | ||||
|         align-items: center; | ||||
| 
 | ||||
|         .el-image { | ||||
|           width: $image-size; | ||||
|           height: $image-size; | ||||
|         } | ||||
|       } | ||||
|     } | ||||
| 
 | ||||
|     .footer-area { | ||||
|       font-size: $--font-size-extra-small; | ||||
|       display: flex; | ||||
|       justify-content: space-between; | ||||
|       align-items: center; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| @ -1,158 +0,0 @@ | ||||
| $header-height: 80px; | ||||
| 
 | ||||
| .app-header { | ||||
|   width: 100%; | ||||
|   height: $header-height; | ||||
|   display: flex; | ||||
|   justify-content: space-around; | ||||
|   align-items: center; | ||||
| 
 | ||||
|   .header-inner { | ||||
|     width: 70vw; | ||||
|     display: flex; | ||||
|     justify-content: space-between; | ||||
|     align-items: center; | ||||
| 
 | ||||
|     .header-before { | ||||
|       display: flex; | ||||
|       justify-content: space-around; | ||||
|       align-items: center; | ||||
| 
 | ||||
|       .el-image { | ||||
|         width: $header-height; | ||||
|         height: inherit; | ||||
|       } | ||||
| 
 | ||||
|       .el-menu { | ||||
|         border-bottom: none; | ||||
| 
 | ||||
|         .el-menu-item, | ||||
|         .el-submenu__title { | ||||
|           border-bottom: none; | ||||
|         } | ||||
| 
 | ||||
|         .el-submenu__icon-arrow { | ||||
|           display: none; | ||||
|         } | ||||
|       } | ||||
|     } | ||||
| 
 | ||||
|     .el-link { | ||||
|       font-weight: bolder; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| .header-transparent { | ||||
|   //position: absolute; | ||||
|   position: relative; | ||||
|   z-index: 999; | ||||
|   background: -webkit-gradient( | ||||
|     linear, | ||||
|     left top, | ||||
|     left bottom, | ||||
|     from($--color-white), | ||||
|     to($--color-white) | ||||
|   ); | ||||
| 
 | ||||
|   .el-menu { | ||||
|     background-color: transparent; | ||||
|     //background-color: $--color-white; | ||||
| 
 | ||||
|     .el-menu-item, | ||||
|     .el-submenu__title { | ||||
|       //color: $--color-white; | ||||
|       color: blue; | ||||
|       background-color: transparent; | ||||
|       //background-color: $--color-white; | ||||
| 
 | ||||
|       &:hover { | ||||
|         //color: $--color-text-placeholder; | ||||
|         color: blue; | ||||
|         background-color: transparent; | ||||
|         //background-color: $--color-white; | ||||
|       } | ||||
|     } | ||||
| 
 | ||||
|     .el-menu-item:active, | ||||
|     .el-menu-item:focus, | ||||
|     .el-submenu.is-active .el-submenu__title { | ||||
|       //color: $--color-text-placeholder; | ||||
|       color: blue; | ||||
|       background-color: transparent; | ||||
|       //background-color: $--color-white; | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   .el-link { | ||||
|     //color: $--color-white; | ||||
|     color: blue; | ||||
| 
 | ||||
|     &:hover { | ||||
|       //color: $--color-text-placeholder; | ||||
|       color: blue; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| .header-dark { | ||||
|   // position: sticky; | ||||
|   // position: -webkit-sticky; | ||||
|   // z-index: 999; | ||||
|   // top: 0px; | ||||
|   // left: 0px; | ||||
|   background-color: $--color-primary; | ||||
| 
 | ||||
|   .el-menu { | ||||
|     background-color: transparent; | ||||
|     //background-color: $--color-white; | ||||
| 
 | ||||
|     .el-menu-item, | ||||
|     .el-submenu__title { | ||||
|       //color: $--color-white; | ||||
|       color: blue; | ||||
|       background-color: $--color-primary; | ||||
| 
 | ||||
|       &:hover { | ||||
|         //color: $--color-text-placeholder; | ||||
|         color: blue; | ||||
|         background-color: $--color-primary; | ||||
|       } | ||||
|     } | ||||
| 
 | ||||
|     .el-menu-item:active, | ||||
|     .el-menu-item:focus, | ||||
|     .el-submenu.is-active .el-submenu__title { | ||||
|       //color: $--color-text-placeholder; | ||||
|       color: blue; | ||||
|       background-color: $--color-primary; | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   .el-link { | ||||
|     //color: $--color-white; | ||||
|     color: blue; | ||||
| 
 | ||||
|     &:hover { | ||||
|       //color: $--color-text-placeholder; | ||||
|       color: blue; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| .header-light { | ||||
|   .el-menu { | ||||
|     background-color: transparent; | ||||
|     //background-color: $--color-white; | ||||
|   } | ||||
| 
 | ||||
|   .el-link { | ||||
|     //color: $--color-text-secondary; | ||||
|     color: blue; | ||||
| 
 | ||||
|     &:hover { | ||||
|       //color: $--color-black; | ||||
|       color: darkblue; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| @ -1,36 +0,0 @@ | ||||
| .layout-header { | ||||
|   @extend .layout-body; | ||||
|   background-color: $--background-color-base; | ||||
| 
 | ||||
|   .header-inner { | ||||
|     @extend .body-inner; | ||||
| 
 | ||||
|     h1 { | ||||
|       margin: 60px 0; | ||||
|       font-weight: normal; | ||||
|       font-size: xx-large; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| .layout-body { | ||||
|   display: flex; | ||||
|   justify-content: space-around; | ||||
|   align-items: center; | ||||
|   margin-bottom: 50px; | ||||
| 
 | ||||
|   // 屏幕尺寸大于750px | ||||
|   @media screen and (min-width: 750px) { | ||||
|     .body-inner { | ||||
|       width: $min-width; | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   // 屏幕尺寸小于750px | ||||
|   @media screen and (max-width: 750px) { | ||||
|     .body-inner { | ||||
|       min-width: $min-width; | ||||
|       max-width: $max-width; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| @ -1,29 +0,0 @@ | ||||
| .body-inner { | ||||
|   .article-title { | ||||
|     display: block; | ||||
|     margin: 30px 0; | ||||
|     font-size: xx-large; | ||||
|   } | ||||
| 
 | ||||
|   .article-info { | ||||
|     color: $--color-text-secondary; | ||||
|     font-size: $--font-size-small; | ||||
|     margin-top: 20px; | ||||
| 
 | ||||
|     span + span { | ||||
|       margin: 0 10px; | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   .article-content { | ||||
|     line-height: 175%; | ||||
|   } | ||||
| 
 | ||||
|   .article-file { | ||||
|     margin-top: 20px; | ||||
| 
 | ||||
|     .el-link { | ||||
|       font-size: $--font-size-small; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| @ -1,66 +0,0 @@ | ||||
| .card-list { | ||||
|   .tip { | ||||
|     text-align: center; | ||||
|     font-size: $--font-size-extra-small; | ||||
|     color: $--color-text-secondary; | ||||
|   } | ||||
| 
 | ||||
|   &-item { | ||||
|     position: relative; | ||||
| 
 | ||||
|     img { | ||||
|       display: block; | ||||
|       margin: auto; | ||||
|     } | ||||
| 
 | ||||
|     .banner { | ||||
|       width: 100%; | ||||
|       height: 50px; | ||||
|       padding: 50px; | ||||
|       box-sizing: border-box; | ||||
|       position: absolute; | ||||
|       z-index: 10; | ||||
|       bottom: 0; | ||||
|       text-align: center; | ||||
|       color: $--color-white; | ||||
|       font-size: $--font-size-large; | ||||
|       font-weight: bolder; | ||||
|       white-space: nowrap; | ||||
|       overflow: hidden; | ||||
|       text-overflow: ellipsis; | ||||
|       transition: all 0.5s ease; | ||||
|       background: -webkit-gradient( | ||||
|         linear, | ||||
|         left bottom, | ||||
|         left top, | ||||
|         from($--color-black), | ||||
|         to(transparent) | ||||
|       ); | ||||
| 
 | ||||
|       .content { | ||||
|         text-align: start; | ||||
|         color: $--color-text-secondary; | ||||
|         font-size: $--font-size-base; | ||||
|         white-space: nowrap; | ||||
|         overflow: hidden; | ||||
|         text-overflow: ellipsis; | ||||
|       } | ||||
|     } | ||||
| 
 | ||||
|     &:hover { | ||||
|       cursor: pointer; | ||||
|       z-index: 5; | ||||
|       -webkit-transform: scale(1.1); | ||||
|       transform: scale(1.1); | ||||
| 
 | ||||
|       .banner { | ||||
|         height: 100%; | ||||
|         display: flex; | ||||
|         flex-direction: column; | ||||
|         justify-content: space-around; | ||||
|         align-items: center; | ||||
|         background: rgba($color: $--color-black, $alpha: 0.5); | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
| @ -1,6 +0,0 @@ | ||||
| .carousel { | ||||
|   .el-image { | ||||
|     width: 100%; | ||||
|     height: inherit; | ||||
|   } | ||||
| } | ||||
| @ -1,22 +0,0 @@ | ||||
| .chunk { | ||||
|   padding: 80px 15%; | ||||
| 
 | ||||
|   .title { | ||||
|     margin-bottom: 30px; | ||||
| 
 | ||||
|     h1 { | ||||
|       font-size: xx-large; | ||||
|       width: fit-content; | ||||
|       margin: auto; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| .chunk-light h1 { | ||||
|   border-bottom: 5px solid $--color-primary; | ||||
| } | ||||
| 
 | ||||
| .chunk-dark h1 { | ||||
|   color: $--color-white; | ||||
|   border-bottom: 5px solid $--color-white; | ||||
| } | ||||
| @ -1,17 +0,0 @@ | ||||
| .section-error { | ||||
|   width: 100%; | ||||
|   height: 80vh; | ||||
|   box-sizing: border-box; | ||||
|   display: flex; | ||||
|   justify-content: space-around; | ||||
|   align-items: center; | ||||
| 
 | ||||
|   .el-image { | ||||
|     width: 75%; | ||||
|   } | ||||
| 
 | ||||
|   h1 { | ||||
|     margin: 20px 0; | ||||
|   } | ||||
| 
 | ||||
| } | ||||
| @ -1,78 +0,0 @@ | ||||
| $min-width: 60vw; | ||||
| $max-width: 90vw; | ||||
| 
 | ||||
| /* 全局样式表 */ | ||||
| html, | ||||
| body, | ||||
| #app { | ||||
|   height: 100%; | ||||
|   margin: 0; | ||||
|   padding: 0; | ||||
|   font-family: 'Helvetica Neue', Helvetica, 'PingFang SC', 'Hiragino Sans GB', | ||||
|     'Microsoft YaHei', '微软雅黑', Arial, sans-serif; | ||||
| } | ||||
| 
 | ||||
| ul { | ||||
|   list-style: none; | ||||
| } | ||||
| 
 | ||||
| html, | ||||
| body, | ||||
| div, | ||||
| span, | ||||
| applet, | ||||
| object, | ||||
| iframe, | ||||
| h1, | ||||
| h2, | ||||
| h3, | ||||
| h4, | ||||
| h5, | ||||
| h6, | ||||
| p, | ||||
| blockquote, | ||||
| pre, | ||||
| a, | ||||
| abbr, | ||||
| acronym, | ||||
| address, | ||||
| big, | ||||
| cite, | ||||
| code, | ||||
| del, | ||||
| dfn, | ||||
| em, | ||||
| img, | ||||
| ins, | ||||
| kbd, | ||||
| q, | ||||
| s, | ||||
| samp, | ||||
| small, | ||||
| strike, | ||||
| strong, | ||||
| sub, | ||||
| sup, | ||||
| tt, | ||||
| var, | ||||
| dl, | ||||
| dt, | ||||
| dd, | ||||
| ol, | ||||
| ul, | ||||
| li, | ||||
| fieldset, | ||||
| form, | ||||
| label, | ||||
| legend, | ||||
| table, | ||||
| caption, | ||||
| tbody, | ||||
| tfoot, | ||||
| thead, | ||||
| tr, | ||||
| th, | ||||
| td { | ||||
|   margin: 0; | ||||
|   padding: 0; | ||||
| } | ||||
| @ -1,38 +0,0 @@ | ||||
| .image-list { | ||||
|   .tip { | ||||
|     text-align: center; | ||||
|     font-size: $--font-size-extra-small; | ||||
|     color: $--color-text-secondary; | ||||
|   } | ||||
| 
 | ||||
|   .content { | ||||
|     white-space: nowrap; | ||||
|     overflow: hidden; | ||||
|     text-overflow: ellipsis; | ||||
|   } | ||||
| 
 | ||||
|   .content, | ||||
|   .update-time { | ||||
|     margin-top: 10px; | ||||
|     font-size: $--font-size-small; | ||||
|     color: $--color-text-secondary; | ||||
|   } | ||||
| 
 | ||||
|   .el-button { | ||||
|     border: none; | ||||
|     font-weight: bolder; | ||||
|     background-color: $--background-color-base; | ||||
|   } | ||||
| 
 | ||||
|   .el-row ~ .el-row { | ||||
|     margin: 30px 0; | ||||
|   } | ||||
| 
 | ||||
|   .show-more { | ||||
|     @extend .tip; | ||||
| 
 | ||||
|     .el-link { | ||||
|       @extend .show-more; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| @ -1 +0,0 @@ | ||||
| @import './mixins/animation'; | ||||
| @ -1,45 +0,0 @@ | ||||
| .news { | ||||
|   background-color: $--background-color-base; | ||||
| } | ||||
| 
 | ||||
| .news-item { | ||||
|    | ||||
|   &-title { | ||||
|     display: flex; | ||||
|     justify-content: space-between; | ||||
|     align-items: center; | ||||
|     margin-bottom: 15px; | ||||
| 
 | ||||
|     &:first-child { | ||||
|       font-size: $--font-size-large; | ||||
|       color: $--color-primary; | ||||
|       font-weight: bold; | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   ul { | ||||
|     white-space: nowrap; | ||||
| 
 | ||||
|     li { | ||||
|       display: flex; | ||||
|       justify-content: space-between; | ||||
|       align-items: center; | ||||
| 
 | ||||
|       div { | ||||
|         white-space: nowrap; | ||||
|         overflow: hidden; | ||||
|         text-overflow: ellipsis; | ||||
| 
 | ||||
|         a:hover { | ||||
|           cursor: pointer; | ||||
|           color: $--color-primary; | ||||
|           text-decoration: underline; | ||||
|         } | ||||
|       } | ||||
|     } | ||||
| 
 | ||||
|     li + li { | ||||
|       margin: 10px 0; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| @ -1,8 +0,0 @@ | ||||
| .overview { | ||||
|   line-height: 180%; | ||||
|   color: $--color-text-primary; | ||||
| 
 | ||||
|   p { | ||||
|     text-indent: 2em; | ||||
|   } | ||||
| } | ||||
| @ -1,26 +0,0 @@ | ||||
| .research { | ||||
|   background-color: $--background-color-base; | ||||
| 
 | ||||
|   .item { | ||||
|     cursor: pointer; | ||||
|     text-align: center; | ||||
|     transition: all 0.5s ease; | ||||
|     margin: 50px 0; | ||||
| 
 | ||||
|     .el-image { | ||||
|       width: 120px; | ||||
|       height: 120px; | ||||
|     } | ||||
| 
 | ||||
|     span { | ||||
|       display: block; | ||||
|       font-size: $--font-size-large; | ||||
|       font-weight: bolder; | ||||
|     } | ||||
| 
 | ||||
|     &:hover { | ||||
|       -webkit-transform: scale(1.1); | ||||
|       transform: scale(1.1); | ||||
|     } | ||||
|   } | ||||
| } | ||||
| @ -1,48 +0,0 @@ | ||||
| .search { | ||||
|   .box { | ||||
|     text-align: center; | ||||
|     margin: 50px 0; | ||||
|     transition: all 0.5s ease; | ||||
| 
 | ||||
|     .el-autocomplete { | ||||
|       width: 40%; | ||||
| 
 | ||||
|       .el-input-group__append { | ||||
|         width: 20%; | ||||
|         text-align: center; | ||||
|         color: $--color-white; | ||||
|         background-color: $--color-primary; | ||||
|         border: 1px solid $--color-primary; | ||||
| 
 | ||||
|         &:hover { | ||||
|           background-color: $--color-primary-light-2; | ||||
|           border: 1px solid $--color-primary-light-2; | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   .box-resize { | ||||
|     margin: 150px 0; | ||||
|   } | ||||
| 
 | ||||
|   ul { | ||||
|     li { | ||||
|       a { | ||||
|         color: $--color-primary; | ||||
|         cursor: pointer; | ||||
|         text-decoration: underline; | ||||
|       } | ||||
| 
 | ||||
|       .content { | ||||
|         font-size: $--font-size-small; | ||||
|         color: $--color-text-secondary; | ||||
|         margin: 5px 0; | ||||
|       } | ||||
|     } | ||||
| 
 | ||||
|     li + li { | ||||
|       margin: 20px 0; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| @ -1,24 +0,0 @@ | ||||
| .college { | ||||
|   line-height: 150%; | ||||
| 
 | ||||
|   h1 { | ||||
|     font-weight: normal; | ||||
|   } | ||||
| 
 | ||||
|   .el-row + .el-row { | ||||
|     margin: 20px 0; | ||||
|   } | ||||
| 
 | ||||
|   .card { | ||||
|     cursor: pointer; | ||||
| 
 | ||||
|     .teacher-name { | ||||
|       font-size: $--font-size-large; | ||||
|       color: $--color-primary; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| .college + .college { | ||||
|   margin: 30px 0; | ||||
| } | ||||
| @ -1,26 +0,0 @@ | ||||
| .teacher { | ||||
|   line-height: 180%; | ||||
| 
 | ||||
|   .detail { | ||||
|     span { | ||||
|       display: block; | ||||
| 
 | ||||
|       strong { | ||||
|         color: $--color-text-primary; | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   .other { | ||||
|     h3 { | ||||
|       color: $--color-primary; | ||||
|     } | ||||
|     span { | ||||
|       display: block; | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   .other + .other { | ||||
|     margin: 10px 0; | ||||
|   } | ||||
| } | ||||
| @ -1,5 +0,0 @@ | ||||
| .team { | ||||
|   background-image: url('/img/home_bg1.png'); | ||||
|   background-size: contain; | ||||
|   background-color: #172B4D; | ||||
| } | ||||
| @ -1,137 +0,0 @@ | ||||
| @keyframes linear-move-left { | ||||
|   from { | ||||
|     left: 0px; | ||||
|   } | ||||
|   to { | ||||
|     left: 20px; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| @-webkit-keyframes linear-move-left { | ||||
|   from { | ||||
|     left: 0px; | ||||
|   } | ||||
|   to { | ||||
|     left: 20px; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| @-moz-keyframes linear-move-left { | ||||
|   from { | ||||
|     left: 0px; | ||||
|   } | ||||
|   to { | ||||
|     left: 20px; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| @-o-keyframes linear-move-bottom { | ||||
|   from { | ||||
|     bottom: 0px; | ||||
|   } | ||||
|   to { | ||||
|     bottom: 20px; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| @keyframes linear-move-bottom { | ||||
|   from { | ||||
|     bottom: 0px; | ||||
|   } | ||||
|   to { | ||||
|     bottom: 20px; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| @-webkit-keyframes linear-move-bottom { | ||||
|   from { | ||||
|     bottom: 0px; | ||||
|   } | ||||
|   to { | ||||
|     bottom: 20px; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| @-moz-keyframes linear-move-bottom { | ||||
|   from { | ||||
|     bottom: 0px; | ||||
|   } | ||||
|   to { | ||||
|     bottom: 20px; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| @-o-keyframes linear-move-bottom { | ||||
|   from { | ||||
|     bottom: 0px; | ||||
|   } | ||||
|   to { | ||||
|     bottom: 20px; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| @keyframes ease-transition { | ||||
|   from { | ||||
|     opacity: 0; | ||||
|   } | ||||
|   to { | ||||
|     opacity: 1; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| @-webkit-keyframes ease-transition { | ||||
|   from { | ||||
|     opacity: 0; | ||||
|   } | ||||
|   to { | ||||
|     opacity: 1; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| @-moz-keyframes ease-transition { | ||||
|   from { | ||||
|     opacity: 0; | ||||
|   } | ||||
|   to { | ||||
|     opacity: 1; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| @-o-keyframes ease-transition { | ||||
|   from { | ||||
|     opacity: 0; | ||||
|   } | ||||
|   to { | ||||
|     opacity: 1; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| @mixin linear-move-left { | ||||
|   animation: linear-move-left; | ||||
|   -moz-animation: linear-move-left; /* Firefox */ | ||||
|   -webkit-animation: linear-move-left; /* Safari 和 Chrome */ | ||||
|   -o-animation: linear-move-left; /* Opera */ | ||||
|   animation-duration: 0.3s; | ||||
|   animation-timing-function: linear; | ||||
|   animation-fill-mode: forwards; | ||||
| } | ||||
| 
 | ||||
| @mixin linear-move-bottom { | ||||
|   animation: linear-move-bottom; | ||||
|   -moz-animation: linear-move-bottom; /* Firefox */ | ||||
|   -webkit-animation: linear-move-bottom; /* Safari 和 Chrome */ | ||||
|   -o-animation: linear-move-bottom; /* Opera */ | ||||
|   animation-duration: 0.3s; | ||||
|   animation-timing-function: linear; | ||||
|   animation-fill-mode: forwards; | ||||
| } | ||||
| 
 | ||||
| @mixin ease-transition { | ||||
|   animation: ease-transition; | ||||
|   -moz-animation: ease-transition; /* Firefox */ | ||||
|   -webkit-animation: ease-transition; /* Safari 和 Chrome */ | ||||
|   -o-animation: ease-transition; /* Opera */ | ||||
|   animation-duration: 0.5s; | ||||
|   animation-timing-function: ease; | ||||
|   animation-fill-mode: forwards; | ||||
| } | ||||
| @ -1,996 +0,0 @@ | ||||
| /* Element Chalk Variables */ | ||||
| 
 | ||||
| // Special comment for theme configurator | ||||
| // type|skipAutoTranslation|Category|Order | ||||
| // skipAutoTranslation 1 | ||||
| 
 | ||||
| /* Transition | ||||
| -------------------------- */ | ||||
| $--all-transition: all .3s cubic-bezier(.645,.045,.355,1) !default; | ||||
| $--fade-transition: opacity 300ms cubic-bezier(0.23, 1, 0.32, 1) !default; | ||||
| $--fade-linear-transition: opacity 200ms linear !default; | ||||
| $--md-fade-transition: transform 300ms cubic-bezier(0.23, 1, 0.32, 1), opacity 300ms cubic-bezier(0.23, 1, 0.32, 1) !default; | ||||
| $--border-transition-base: border-color .2s cubic-bezier(.645,.045,.355,1) !default; | ||||
| $--color-transition-base: color .2s cubic-bezier(.645,.045,.355,1) !default; | ||||
| 
 | ||||
| /* Color | ||||
| -------------------------- */ | ||||
| /// color|1|Brand Color|0 | ||||
| $--color-primary: #172B4D !default; | ||||
| /// color|1|Background Color|4 | ||||
| $--color-white: #FFFFFF !default; | ||||
| /// color|1|Background Color|4 | ||||
| $--color-black: #000000 !default; | ||||
| $--color-primary-light-1: mix($--color-white, $--color-primary, 10%) !default; /* 53a8ff */ | ||||
| $--color-primary-light-2: mix($--color-white, $--color-primary, 20%) !default; /* 66b1ff */ | ||||
| $--color-primary-light-3: mix($--color-white, $--color-primary, 30%) !default; /* 79bbff */ | ||||
| $--color-primary-light-4: mix($--color-white, $--color-primary, 40%) !default; /* 8cc5ff */ | ||||
| $--color-primary-light-5: mix($--color-white, $--color-primary, 50%) !default; /* a0cfff */ | ||||
| $--color-primary-light-6: mix($--color-white, $--color-primary, 60%) !default; /* b3d8ff */ | ||||
| $--color-primary-light-7: mix($--color-white, $--color-primary, 70%) !default; /* c6e2ff */ | ||||
| $--color-primary-light-8: mix($--color-white, $--color-primary, 80%) !default; /* d9ecff */ | ||||
| $--color-primary-light-9: mix($--color-white, $--color-primary, 90%) !default; /* ecf5ff */ | ||||
| /// color|1|Functional Color|1 | ||||
| $--color-success: #67C23A !default; | ||||
| /// color|1|Functional Color|1 | ||||
| $--color-warning: #E6A23C !default; | ||||
| /// color|1|Functional Color|1 | ||||
| $--color-danger: #F56C6C !default; | ||||
| /// color|1|Functional Color|1 | ||||
| $--color-info: #909399 !default; | ||||
| 
 | ||||
| $--color-success-light: mix($--color-white, $--color-success, 80%) !default; | ||||
| $--color-warning-light: mix($--color-white, $--color-warning, 80%) !default; | ||||
| $--color-danger-light: mix($--color-white, $--color-danger, 80%) !default; | ||||
| $--color-info-light: mix($--color-white, $--color-info, 80%) !default; | ||||
| 
 | ||||
| $--color-success-lighter: mix($--color-white, $--color-success, 90%) !default; | ||||
| $--color-warning-lighter: mix($--color-white, $--color-warning, 90%) !default; | ||||
| $--color-danger-lighter: mix($--color-white, $--color-danger, 90%) !default; | ||||
| $--color-info-lighter: mix($--color-white, $--color-info, 90%) !default; | ||||
| /// color|1|Font Color|2 | ||||
| $--color-text-primary: #303133 !default; | ||||
| /// color|1|Font Color|2 | ||||
| $--color-text-regular: #606266 !default; | ||||
| /// color|1|Font Color|2 | ||||
| $--color-text-secondary: #909399 !default; | ||||
| /// color|1|Font Color|2 | ||||
| $--color-text-placeholder: #C0C4CC !default; | ||||
| /// color|1|Border Color|3 | ||||
| $--border-color-base: #DCDFE6 !default; | ||||
| /// color|1|Border Color|3 | ||||
| $--border-color-light: #E4E7ED !default; | ||||
| /// color|1|Border Color|3 | ||||
| $--border-color-lighter: #EBEEF5 !default; | ||||
| /// color|1|Border Color|3 | ||||
| $--border-color-extra-light: #F2F6FC !default; | ||||
| 
 | ||||
| // Background | ||||
| /// color|1|Background Color|4 | ||||
| $--background-color-base: #F5F7FA !default; | ||||
| 
 | ||||
| /* Link | ||||
| -------------------------- */ | ||||
| $--link-color: $--color-primary-light-2 !default; | ||||
| $--link-hover-color: $--color-primary !default; | ||||
| 
 | ||||
| /* Border | ||||
| -------------------------- */ | ||||
| $--border-width-base: 2px !default; | ||||
| $--border-style-base: solid !default; | ||||
| $--border-color-hover: $--color-text-placeholder !default; | ||||
| $--border-base: $--border-width-base $--border-style-base $--border-color-base !default; | ||||
| /// borderRadius|1|Radius|0 | ||||
| $--border-radius-base: 10px !default; | ||||
| /// borderRadius|1|Radius|0 | ||||
| $--border-radius-small: 3px !default; | ||||
| /// borderRadius|1|Radius|0 | ||||
| $--border-radius-circle: 100% !default; | ||||
| /// borderRadius|1|Radius|0 | ||||
| $--border-radius-zero: 0 !default; | ||||
| 
 | ||||
| // Box-shadow | ||||
| /// boxShadow|1|Shadow|1 | ||||
| $--box-shadow-base: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04) !default; | ||||
| // boxShadow|1|Shadow|1 | ||||
| $--box-shadow-dark: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .12) !default; | ||||
| /// boxShadow|1|Shadow|1 | ||||
| $--box-shadow-light: 0 2px 12px 0 rgba(0, 0, 0, 0.1) !default; | ||||
| 
 | ||||
| /* Fill | ||||
| -------------------------- */ | ||||
| $--fill-base: $--color-white !default; | ||||
| 
 | ||||
| /* Typography | ||||
| -------------------------- */ | ||||
| $--font-path: '~element-ui/packages/theme-chalk/src/fonts' !default; | ||||
| $--font-display: 'auto' !default; | ||||
| /// fontSize|1|Font Size|0 | ||||
| $--font-size-extra-large: 22px !default; | ||||
| /// fontSize|1|Font Size|0 | ||||
| $--font-size-large: 20px !default; | ||||
| /// fontSize|1|Font Size|0 | ||||
| $--font-size-medium: 18px !default; | ||||
| /// fontSize|1|Font Size|0 | ||||
| $--font-size-base: 16px !default; | ||||
| /// fontSize|1|Font Size|0 | ||||
| $--font-size-small: 15px !default; | ||||
| /// fontSize|1|Font Size|0 | ||||
| $--font-size-extra-small: 14px !default; | ||||
| /// fontWeight|1|Font Weight|1 | ||||
| $--font-weight-primary: 500 !default; | ||||
| /// fontWeight|1|Font Weight|1 | ||||
| $--font-weight-secondary: 100 !default; | ||||
| /// fontLineHeight|1|Line Height|2 | ||||
| $--font-line-height-primary: 24px !default; | ||||
| /// fontLineHeight|1|Line Height|2 | ||||
| $--font-line-height-secondary: 16px !default; | ||||
| $--font-color-disabled-base: #bbb !default; | ||||
| /* Size | ||||
| -------------------------- */ | ||||
| $--size-base: 14px !default; | ||||
| 
 | ||||
| /* z-index | ||||
| -------------------------- */ | ||||
| $--index-normal: 1 !default; | ||||
| $--index-top: 1000 !default; | ||||
| $--index-popper: 2000 !default; | ||||
| 
 | ||||
| /* Disable base | ||||
| -------------------------- */ | ||||
| $--disabled-fill-base: $--background-color-base !default; | ||||
| $--disabled-color-base: $--color-text-placeholder !default; | ||||
| $--disabled-border-base: $--border-color-light !default; | ||||
| 
 | ||||
| /* Icon | ||||
| -------------------------- */ | ||||
| $--icon-color: #666 !default; | ||||
| $--icon-color-base: $--color-info !default; | ||||
| 
 | ||||
| /* Checkbox | ||||
| -------------------------- */ | ||||
| /// fontSize||Font|1 | ||||
| $--checkbox-font-size: 14px !default; | ||||
| /// fontWeight||Font|1 | ||||
| $--checkbox-font-weight: $--font-weight-primary !default; | ||||
| /// color||Color|0 | ||||
| $--checkbox-font-color: $--color-text-regular !default; | ||||
| $--checkbox-input-height: 14px !default; | ||||
| $--checkbox-input-width: 14px !default; | ||||
| /// borderRadius||Border|2 | ||||
| $--checkbox-border-radius: $--border-radius-small !default; | ||||
| /// color||Color|0 | ||||
| $--checkbox-background-color: $--color-white !default; | ||||
| $--checkbox-input-border: $--border-base !default; | ||||
| 
 | ||||
| /// color||Color|0 | ||||
| $--checkbox-disabled-border-color: $--border-color-base !default; | ||||
| $--checkbox-disabled-input-fill: #edf2fc !default; | ||||
| $--checkbox-disabled-icon-color: $--color-text-placeholder !default; | ||||
| 
 | ||||
| $--checkbox-disabled-checked-input-fill: $--border-color-extra-light !default; | ||||
| $--checkbox-disabled-checked-input-border-color: $--border-color-base !default; | ||||
| $--checkbox-disabled-checked-icon-color: $--color-text-placeholder !default; | ||||
| 
 | ||||
| /// color||Color|0 | ||||
| $--checkbox-checked-font-color: $--color-primary !default; | ||||
| $--checkbox-checked-input-border-color: $--color-primary !default; | ||||
| /// color||Color|0 | ||||
| $--checkbox-checked-background-color: $--color-primary !default; | ||||
| $--checkbox-checked-icon-color: $--fill-base !default; | ||||
| 
 | ||||
| $--checkbox-input-border-color-hover: $--color-primary !default; | ||||
| /// height||Other|4 | ||||
| $--checkbox-bordered-height: 40px !default; | ||||
| /// padding||Spacing|3 | ||||
| $--checkbox-bordered-padding: 9px 20px 9px 10px !default; | ||||
| /// padding||Spacing|3 | ||||
| $--checkbox-bordered-medium-padding: 7px 20px 7px 10px !default; | ||||
| /// padding||Spacing|3 | ||||
| $--checkbox-bordered-small-padding: 5px 15px 5px 10px !default; | ||||
| /// padding||Spacing|3 | ||||
| $--checkbox-bordered-mini-padding: 3px 15px 3px 10px !default; | ||||
| $--checkbox-bordered-medium-input-height: 14px !default; | ||||
| $--checkbox-bordered-medium-input-width: 14px !default; | ||||
| /// height||Other|4 | ||||
| $--checkbox-bordered-medium-height: 36px !default; | ||||
| $--checkbox-bordered-small-input-height: 12px !default; | ||||
| $--checkbox-bordered-small-input-width: 12px !default; | ||||
| /// height||Other|4 | ||||
| $--checkbox-bordered-small-height: 32px !default; | ||||
| $--checkbox-bordered-mini-input-height: 12px !default; | ||||
| $--checkbox-bordered-mini-input-width: 12px !default; | ||||
| /// height||Other|4 | ||||
| $--checkbox-bordered-mini-height: 28px !default; | ||||
| 
 | ||||
| /// color||Color|0 | ||||
| $--checkbox-button-checked-background-color: $--color-primary !default; | ||||
| /// color||Color|0 | ||||
| $--checkbox-button-checked-font-color: $--color-white !default; | ||||
| /// color||Color|0 | ||||
| $--checkbox-button-checked-border-color: $--color-primary !default; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| /* Radio | ||||
| -------------------------- */ | ||||
| /// fontSize||Font|1 | ||||
| $--radio-font-size: $--font-size-base !default; | ||||
| /// fontWeight||Font|1 | ||||
| $--radio-font-weight: $--font-weight-primary !default; | ||||
| /// color||Color|0 | ||||
| $--radio-font-color: $--color-text-regular !default; | ||||
| $--radio-input-height: 14px !default; | ||||
| $--radio-input-width: 14px !default; | ||||
| /// borderRadius||Border|2 | ||||
| $--radio-input-border-radius: $--border-radius-circle !default; | ||||
| /// color||Color|0 | ||||
| $--radio-input-background-color: $--color-white !default; | ||||
| $--radio-input-border: $--border-base !default; | ||||
| /// color||Color|0 | ||||
| $--radio-input-border-color: $--border-color-base !default; | ||||
| /// color||Color|0 | ||||
| $--radio-icon-color: $--color-white !default; | ||||
| 
 | ||||
| $--radio-disabled-input-border-color: $--disabled-border-base !default; | ||||
| $--radio-disabled-input-fill: $--disabled-fill-base !default; | ||||
| $--radio-disabled-icon-color: $--disabled-fill-base !default; | ||||
| 
 | ||||
| $--radio-disabled-checked-input-border-color: $--disabled-border-base !default; | ||||
| $--radio-disabled-checked-input-fill: $--disabled-fill-base !default; | ||||
| $--radio-disabled-checked-icon-color: $--color-text-placeholder !default; | ||||
| 
 | ||||
| /// color||Color|0 | ||||
| $--radio-checked-font-color: $--color-primary !default; | ||||
| /// color||Color|0 | ||||
| $--radio-checked-input-border-color: $--color-primary !default; | ||||
| /// color||Color|0 | ||||
| $--radio-checked-input-background-color: $--color-white !default; | ||||
| /// color||Color|0 | ||||
| $--radio-checked-icon-color: $--color-primary !default; | ||||
| 
 | ||||
| $--radio-input-border-color-hover: $--color-primary !default; | ||||
| 
 | ||||
| $--radio-bordered-height: 40px !default; | ||||
| $--radio-bordered-padding: 12px 20px 0 10px !default; | ||||
| $--radio-bordered-medium-padding: 10px 20px 0 10px !default; | ||||
| $--radio-bordered-small-padding: 8px 15px 0 10px !default; | ||||
| $--radio-bordered-mini-padding: 6px 15px 0 10px !default; | ||||
| $--radio-bordered-medium-input-height: 14px !default; | ||||
| $--radio-bordered-medium-input-width: 14px !default; | ||||
| $--radio-bordered-medium-height: 36px !default; | ||||
| $--radio-bordered-small-input-height: 12px !default; | ||||
| $--radio-bordered-small-input-width: 12px !default; | ||||
| $--radio-bordered-small-height: 32px !default; | ||||
| $--radio-bordered-mini-input-height: 12px !default; | ||||
| $--radio-bordered-mini-input-width: 12px !default; | ||||
| $--radio-bordered-mini-height: 28px !default; | ||||
| 
 | ||||
| /// fontSize||Font|1 | ||||
| $--radio-button-font-size: $--font-size-base !default; | ||||
| /// color||Color|0 | ||||
| $--radio-button-checked-background-color: $--color-primary !default; | ||||
| /// color||Color|0 | ||||
| $--radio-button-checked-font-color: $--color-white !default; | ||||
| /// color||Color|0 | ||||
| $--radio-button-checked-border-color: $--color-primary !default; | ||||
| $--radio-button-disabled-checked-fill: $--border-color-extra-light !default; | ||||
| 
 | ||||
| /* Select | ||||
| -------------------------- */ | ||||
| $--select-border-color-hover: $--border-color-hover !default; | ||||
| $--select-disabled-border: $--disabled-border-base !default; | ||||
| /// fontSize||Font|1 | ||||
| $--select-font-size: $--font-size-base !default; | ||||
| $--select-close-hover-color: $--color-text-secondary !default; | ||||
| 
 | ||||
| $--select-input-color: $--color-text-placeholder !default; | ||||
| $--select-multiple-input-color: #666 !default; | ||||
| /// color||Color|0 | ||||
| $--select-input-focus-border-color: $--color-primary !default; | ||||
| /// fontSize||Font|1 | ||||
| $--select-input-font-size: 14px !default; | ||||
| 
 | ||||
| $--select-option-color: $--color-text-regular !default; | ||||
| $--select-option-disabled-color: $--color-text-placeholder !default; | ||||
| $--select-option-disabled-background: $--color-white !default; | ||||
| /// height||Other|4 | ||||
| $--select-option-height: 34px !default; | ||||
| $--select-option-hover-background: $--background-color-base !default; | ||||
| /// color||Color|0 | ||||
| $--select-option-selected-font-color: $--color-primary !default; | ||||
| $--select-option-selected-hover: $--background-color-base !default; | ||||
| 
 | ||||
| $--select-group-color: $--color-info !default; | ||||
| $--select-group-height: 30px !default; | ||||
| $--select-group-font-size: 12px !default; | ||||
| 
 | ||||
| $--select-dropdown-background: $--color-white !default; | ||||
| $--select-dropdown-shadow: $--box-shadow-light !default; | ||||
| $--select-dropdown-empty-color: #999 !default; | ||||
| /// height||Other|4 | ||||
| $--select-dropdown-max-height: 274px !default; | ||||
| $--select-dropdown-padding: 6px 0 !default; | ||||
| $--select-dropdown-empty-padding: 10px 0 !default; | ||||
| $--select-dropdown-border: solid 1px $--border-color-light !default; | ||||
| 
 | ||||
| /* Alert | ||||
| -------------------------- */ | ||||
| $--alert-padding: 8px 16px !default; | ||||
| /// borderRadius||Border|2 | ||||
| $--alert-border-radius: $--border-radius-base !default; | ||||
| /// fontSize||Font|1 | ||||
| $--alert-title-font-size: 13px !default; | ||||
| /// fontSize||Font|1 | ||||
| $--alert-description-font-size: 12px !default; | ||||
| /// fontSize||Font|1 | ||||
| $--alert-close-font-size: 12px !default; | ||||
| /// fontSize||Font|1 | ||||
| $--alert-close-customed-font-size: 13px !default; | ||||
| 
 | ||||
| $--alert-success-color: $--color-success-lighter !default; | ||||
| $--alert-info-color: $--color-info-lighter !default; | ||||
| $--alert-warning-color: $--color-warning-lighter !default; | ||||
| $--alert-danger-color: $--color-danger-lighter !default; | ||||
| 
 | ||||
| /// height||Other|4 | ||||
| $--alert-icon-size: 16px !default; | ||||
| /// height||Other|4 | ||||
| $--alert-icon-large-size: 28px !default; | ||||
| 
 | ||||
| /* MessageBox | ||||
| -------------------------- */ | ||||
| /// color||Color|0 | ||||
| $--messagebox-title-color: $--color-text-primary !default; | ||||
| $--msgbox-width: 420px !default; | ||||
| $--msgbox-border-radius: 4px !default; | ||||
| /// fontSize||Font|1 | ||||
| $--messagebox-font-size: $--font-size-large !default; | ||||
| /// fontSize||Font|1 | ||||
| $--messagebox-content-font-size: $--font-size-base !default; | ||||
| /// color||Color|0 | ||||
| $--messagebox-content-color: $--color-text-regular !default; | ||||
| /// fontSize||Font|1 | ||||
| $--messagebox-error-font-size: 12px !default; | ||||
| $--msgbox-padding-primary: 15px !default; | ||||
| /// color||Color|0 | ||||
| $--messagebox-success-color: $--color-success !default; | ||||
| /// color||Color|0 | ||||
| $--messagebox-info-color: $--color-info !default; | ||||
| /// color||Color|0 | ||||
| $--messagebox-warning-color: $--color-warning !default; | ||||
| /// color||Color|0 | ||||
| $--messagebox-danger-color: $--color-danger !default; | ||||
| 
 | ||||
| /* Message | ||||
| -------------------------- */ | ||||
| $--message-shadow: $--box-shadow-base !default; | ||||
| $--message-min-width: 380px !default; | ||||
| $--message-background-color: #edf2fc !default; | ||||
| $--message-padding: 15px 15px 15px 20px !default; | ||||
| /// color||Color|0 | ||||
| $--message-close-icon-color: $--color-text-placeholder !default; | ||||
| /// height||Other|4 | ||||
| $--message-close-size: 16px !default; | ||||
| /// color||Color|0 | ||||
| $--message-close-hover-color: $--color-text-secondary !default; | ||||
| 
 | ||||
| /// color||Color|0 | ||||
| $--message-success-font-color: $--color-success !default; | ||||
| /// color||Color|0 | ||||
| $--message-info-font-color: $--color-info !default; | ||||
| /// color||Color|0 | ||||
| $--message-warning-font-color: $--color-warning !default; | ||||
| /// color||Color|0 | ||||
| $--message-danger-font-color: $--color-danger !default; | ||||
| 
 | ||||
| /* Notification | ||||
| -------------------------- */ | ||||
| $--notification-width: 330px !default; | ||||
| /// padding||Spacing|3 | ||||
| $--notification-padding: 14px 26px 14px 13px !default; | ||||
| $--notification-radius: 8px !default; | ||||
| $--notification-shadow: $--box-shadow-light !default; | ||||
| /// color||Color|0 | ||||
| $--notification-border-color: $--border-color-lighter !default; | ||||
| $--notification-icon-size: 24px !default; | ||||
| $--notification-close-font-size: $--message-close-size !default; | ||||
| $--notification-group-margin-left: 13px !default; | ||||
| $--notification-group-margin-right: 8px !default; | ||||
| /// fontSize||Font|1 | ||||
| $--notification-content-font-size: $--font-size-base !default; | ||||
| /// color||Color|0 | ||||
| $--notification-content-color: $--color-text-regular !default; | ||||
| /// fontSize||Font|1 | ||||
| $--notification-title-font-size: 16px !default; | ||||
| /// color||Color|0 | ||||
| $--notification-title-color: $--color-text-primary !default; | ||||
| 
 | ||||
| /// color||Color|0 | ||||
| $--notification-close-color: $--color-text-secondary !default; | ||||
| /// color||Color|0 | ||||
| $--notification-close-hover-color: $--color-text-regular !default; | ||||
| 
 | ||||
| /// color||Color|0 | ||||
| $--notification-success-icon-color: $--color-success !default; | ||||
| /// color||Color|0 | ||||
| $--notification-info-icon-color: $--color-info !default; | ||||
| /// color||Color|0 | ||||
| $--notification-warning-icon-color: $--color-warning !default; | ||||
| /// color||Color|0 | ||||
| $--notification-danger-icon-color: $--color-danger !default; | ||||
| 
 | ||||
| /* Input | ||||
| -------------------------- */ | ||||
| $--input-font-size: $--font-size-base !default; | ||||
| /// color||Color|0 | ||||
| $--input-font-color: $--color-text-regular !default; | ||||
| /// height||Other|4 | ||||
| $--input-width: 150px !default; | ||||
| /// height||Other|4 | ||||
| $--input-height: 50px !default; | ||||
| $--input-border: $--border-base !default; | ||||
| $--input-border-color: $--border-color-base !default; | ||||
| /// borderRadius||Border|2 | ||||
| $--input-border-radius: $--border-radius-base !default; | ||||
| $--input-border-color-hover: $--border-color-hover !default; | ||||
| /// color||Color|0 | ||||
| $--input-background-color: $--color-white !default; | ||||
| $--input-fill-disabled: $--disabled-fill-base !default; | ||||
| $--input-color-disabled: $--font-color-disabled-base !default; | ||||
| /// color||Color|0 | ||||
| $--input-icon-color: $--color-text-placeholder !default; | ||||
| /// color||Color|0 | ||||
| $--input-placeholder-color: $--color-text-placeholder !default; | ||||
| $--input-max-width: 314px !default; | ||||
| 
 | ||||
| $--input-hover-border: $--border-color-hover !default; | ||||
| $--input-clear-hover-color: $--color-text-secondary !default; | ||||
| 
 | ||||
| $--input-focus-border: $--color-primary !default; | ||||
| $--input-focus-fill: $--color-white !default; | ||||
| 
 | ||||
| $--input-disabled-fill: $--disabled-fill-base !default; | ||||
| $--input-disabled-border: $--disabled-border-base !default; | ||||
| $--input-disabled-color: $--disabled-color-base !default; | ||||
| $--input-disabled-placeholder-color: $--color-text-placeholder !default; | ||||
| 
 | ||||
| /// fontSize||Font|1 | ||||
| $--input-medium-font-size: 14px !default; | ||||
| /// height||Other|4 | ||||
| $--input-medium-height: 36px !default; | ||||
| /// fontSize||Font|1 | ||||
| $--input-small-font-size: 13px !default; | ||||
| /// height||Other|4 | ||||
| $--input-small-height: 32px !default; | ||||
| /// fontSize||Font|1 | ||||
| $--input-mini-font-size: 12px !default; | ||||
| /// height||Other|4 | ||||
| $--input-mini-height: 28px !default; | ||||
| 
 | ||||
| /* Cascader | ||||
| -------------------------- */ | ||||
| /// color||Color|0 | ||||
| $--cascader-menu-font-color: $--color-text-regular !default; | ||||
| /// color||Color|0 | ||||
| $--cascader-menu-selected-font-color: $--color-primary !default; | ||||
| $--cascader-menu-fill: $--fill-base !default; | ||||
| $--cascader-menu-font-size: $--font-size-base !default; | ||||
| $--cascader-menu-radius: $--border-radius-base !default; | ||||
| $--cascader-menu-border: solid 1px $--border-color-light !default; | ||||
| $--cascader-menu-shadow: $--box-shadow-light !default; | ||||
| $--cascader-node-background-hover: $--background-color-base !default; | ||||
| $--cascader-node-color-disabled:$--color-text-placeholder !default; | ||||
| $--cascader-color-empty:$--color-text-placeholder !default; | ||||
| $--cascader-tag-background: #f0f2f5; | ||||
| 
 | ||||
| /* Group | ||||
| -------------------------- */ | ||||
| $--group-option-flex: 0 0 (1/5) * 100% !default; | ||||
| $--group-option-offset-bottom: 12px !default; | ||||
| $--group-option-fill-hover: rgba($--color-black, 0.06) !default; | ||||
| $--group-title-color: $--color-black !default; | ||||
| $--group-title-font-size: $--font-size-base !default; | ||||
| $--group-title-width: 66px !default; | ||||
| 
 | ||||
| /* Tab | ||||
| -------------------------- */ | ||||
| $--tab-font-size: $--font-size-base !default; | ||||
| $--tab-border-line: 1px solid #e4e4e4 !default; | ||||
| $--tab-header-color-active: $--color-text-secondary !default; | ||||
| $--tab-header-color-hover: $--color-text-regular !default; | ||||
| $--tab-header-color: $--color-text-regular !default; | ||||
| $--tab-header-fill-active: rgba($--color-black, 0.06) !default; | ||||
| $--tab-header-fill-hover: rgba($--color-black, 0.06) !default; | ||||
| $--tab-vertical-header-width: 90px !default; | ||||
| $--tab-vertical-header-count-color: $--color-white !default; | ||||
| $--tab-vertical-header-count-fill: $--color-text-secondary !default; | ||||
| 
 | ||||
| /* Button | ||||
| -------------------------- */ | ||||
| /// fontSize||Font|1 | ||||
| $--button-font-size: $--font-size-base !default; | ||||
| /// fontWeight||Font|1 | ||||
| $--button-font-weight: $--font-weight-primary !default; | ||||
| /// borderRadius||Border|2 | ||||
| $--button-border-radius: $--border-radius-base !default; | ||||
| /// padding||Spacing|3 | ||||
| $--button-padding-vertical: 12px !default; | ||||
| /// padding||Spacing|3 | ||||
| $--button-padding-horizontal: 20px !default; | ||||
| 
 | ||||
| /// fontSize||Font|1 | ||||
| $--button-medium-font-size: $--font-size-base !default; | ||||
| /// borderRadius||Border|2 | ||||
| $--button-medium-border-radius: $--border-radius-base !default; | ||||
| /// padding||Spacing|3 | ||||
| $--button-medium-padding-vertical: 10px !default; | ||||
| /// padding||Spacing|3 | ||||
| $--button-medium-padding-horizontal: 20px !default; | ||||
| 
 | ||||
| /// fontSize||Font|1 | ||||
| $--button-small-font-size: 12px !default; | ||||
| $--button-small-border-radius: #{$--border-radius-base - 1} !default; | ||||
| /// padding||Spacing|3 | ||||
| $--button-small-padding-vertical: 9px !default; | ||||
| /// padding||Spacing|3 | ||||
| $--button-small-padding-horizontal: 15px !default; | ||||
| /// fontSize||Font|1 | ||||
| $--button-mini-font-size: 12px !default; | ||||
| $--button-mini-border-radius: #{$--border-radius-base - 1} !default; | ||||
| /// padding||Spacing|3 | ||||
| $--button-mini-padding-vertical: 7px !default; | ||||
| /// padding||Spacing|3 | ||||
| $--button-mini-padding-horizontal: 15px !default; | ||||
| 
 | ||||
| /// color||Color|0 | ||||
| $--button-default-font-color: $--color-text-regular !default; | ||||
| /// color||Color|0 | ||||
| $--button-default-background-color: $--color-white !default; | ||||
| /// color||Color|0 | ||||
| $--button-default-border-color: $--border-color-base !default; | ||||
| 
 | ||||
| /// color||Color|0 | ||||
| $--button-disabled-font-color: $--color-text-placeholder !default; | ||||
| /// color||Color|0 | ||||
| $--button-disabled-background-color: $--color-white !default; | ||||
| /// color||Color|0 | ||||
| $--button-disabled-border-color: $--border-color-lighter !default; | ||||
| 
 | ||||
| /// color||Color|0 | ||||
| $--button-primary-border-color: $--color-primary !default; | ||||
| /// color||Color|0 | ||||
| $--button-primary-font-color: $--color-white !default; | ||||
| /// color||Color|0 | ||||
| $--button-primary-background-color: $--color-primary !default; | ||||
| /// color||Color|0 | ||||
| $--button-success-border-color: $--color-success !default; | ||||
| /// color||Color|0 | ||||
| $--button-success-font-color: $--color-white !default; | ||||
| /// color||Color|0 | ||||
| $--button-success-background-color: $--color-success !default; | ||||
| /// color||Color|0 | ||||
| $--button-warning-border-color: $--color-warning !default; | ||||
| /// color||Color|0 | ||||
| $--button-warning-font-color: $--color-white !default; | ||||
| /// color||Color|0 | ||||
| $--button-warning-background-color: $--color-warning !default; | ||||
| /// color||Color|0 | ||||
| $--button-danger-border-color: $--color-danger !default; | ||||
| /// color||Color|0 | ||||
| $--button-danger-font-color: $--color-white !default; | ||||
| /// color||Color|0 | ||||
| $--button-danger-background-color: $--color-danger !default; | ||||
| /// color||Color|0 | ||||
| $--button-info-border-color: $--color-info !default; | ||||
| /// color||Color|0 | ||||
| $--button-info-font-color: $--color-white !default; | ||||
| /// color||Color|0 | ||||
| $--button-info-background-color: $--color-info !default; | ||||
| 
 | ||||
| $--button-hover-tint-percent: 20% !default; | ||||
| $--button-active-shade-percent: 10% !default; | ||||
| 
 | ||||
| 
 | ||||
| /* cascader | ||||
| -------------------------- */ | ||||
| $--cascader-height: 200px !default; | ||||
| 
 | ||||
| /* Switch | ||||
| -------------------------- */ | ||||
| /// color||Color|0 | ||||
| $--switch-on-color: $--color-primary !default; | ||||
| /// color||Color|0 | ||||
| $--switch-off-color: $--border-color-base !default; | ||||
| /// fontSize||Font|1 | ||||
| $--switch-font-size: $--font-size-base !default; | ||||
| $--switch-core-border-radius: 10px !default; | ||||
| // height||Other|4 TODO: width 代码写死的40px 所以下面这三个属性都没意义 | ||||
| $--switch-width: 40px !default; | ||||
| // height||Other|4 | ||||
| $--switch-height: 20px !default; | ||||
| // height||Other|4 | ||||
| $--switch-button-size: 16px !default; | ||||
| 
 | ||||
| /* Dialog | ||||
| -------------------------- */ | ||||
| $--dialog-background-color: $--color-white !default; | ||||
| $--dialog-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3) !default; | ||||
| /// fontSize||Font|1 | ||||
| $--dialog-title-font-size: $--font-size-large !default; | ||||
| /// fontSize||Font|1 | ||||
| $--dialog-content-font-size: 14px !default; | ||||
| /// fontLineHeight||LineHeight|2 | ||||
| $--dialog-font-line-height: $--font-line-height-primary !default; | ||||
| /// padding||Spacing|3 | ||||
| $--dialog-padding-primary: 20px !default; | ||||
| 
 | ||||
| /* Table | ||||
| -------------------------- */ | ||||
| /// color||Color|0 | ||||
| $--table-border-color: $--border-color-lighter !default; | ||||
| $--table-border: 1px solid $--table-border-color !default; | ||||
| /// color||Color|0 | ||||
| $--table-font-color: $--color-text-regular !default; | ||||
| /// color||Color|0 | ||||
| $--table-header-font-color: $--color-text-secondary !default; | ||||
| /// color||Color|0 | ||||
| $--table-row-hover-background-color: $--background-color-base !default; | ||||
| $--table-current-row-background-color: $--color-primary-light-9 !default; | ||||
| /// color||Color|0 | ||||
| $--table-header-background-color: $--color-white !default; | ||||
| $--table-fixed-box-shadow: 0 0 10px rgba(0, 0, 0, .12) !default; | ||||
| 
 | ||||
| /* Pagination | ||||
| -------------------------- */ | ||||
| /// fontSize||Font|1 | ||||
| $--pagination-font-size: 13px !default; | ||||
| /// color||Color|0 | ||||
| $--pagination-background-color: $--color-white !default; | ||||
| /// color||Color|0 | ||||
| $--pagination-font-color: $--color-text-primary !default; | ||||
| $--pagination-border-radius: 3px !default; | ||||
| /// color||Color|0 | ||||
| $--pagination-button-color: $--color-text-primary !default; | ||||
| /// height||Other|4 | ||||
| $--pagination-button-width: 35.5px !default; | ||||
| /// height||Other|4 | ||||
| $--pagination-button-height: 28px !default; | ||||
| /// color||Color|0 | ||||
| $--pagination-button-disabled-color: $--color-text-placeholder !default; | ||||
| /// color||Color|0 | ||||
| $--pagination-button-disabled-background-color: $--color-white !default; | ||||
| /// color||Color|0 | ||||
| $--pagination-hover-color: $--color-primary !default; | ||||
| 
 | ||||
| /* Popup | ||||
| -------------------------- */ | ||||
| /// color||Color|0 | ||||
| $--popup-modal-background-color: $--color-black !default; | ||||
| /// opacity||Other|1 | ||||
| $--popup-modal-opacity: 0.5 !default; | ||||
| 
 | ||||
| /* Popover | ||||
| -------------------------- */ | ||||
| /// color||Color|0 | ||||
| $--popover-background-color: $--color-white !default; | ||||
| /// fontSize||Font|1 | ||||
| $--popover-font-size: $--font-size-base !default; | ||||
| /// color||Color|0 | ||||
| $--popover-border-color: $--border-color-lighter !default; | ||||
| $--popover-arrow-size: 6px !default; | ||||
| /// padding||Spacing|3 | ||||
| $--popover-padding: 12px !default; | ||||
| $--popover-padding-large: 18px 20px !default; | ||||
| /// fontSize||Font|1 | ||||
| $--popover-title-font-size: 16px !default; | ||||
| /// color||Color|0 | ||||
| $--popover-title-font-color: $--color-text-primary !default; | ||||
| 
 | ||||
| /* Tooltip | ||||
| -------------------------- */ | ||||
| /// color|1|Color|0 | ||||
| $--tooltip-fill: $--color-text-primary !default; | ||||
| /// color|1|Color|0 | ||||
| $--tooltip-color: $--color-white !default; | ||||
| /// fontSize||Font|1 | ||||
| $--tooltip-font-size: 12px !default; | ||||
| /// color||Color|0 | ||||
| $--tooltip-border-color: $--color-text-primary !default; | ||||
| $--tooltip-arrow-size: 6px !default; | ||||
| /// padding||Spacing|3 | ||||
| $--tooltip-padding: 10px !default; | ||||
| 
 | ||||
| /* Tag | ||||
| -------------------------- */ | ||||
| /// color||Color|0 | ||||
| $--tag-info-color: $--color-info !default; | ||||
| /// color||Color|0 | ||||
| $--tag-primary-color: $--color-primary !default; | ||||
| /// color||Color|0 | ||||
| $--tag-success-color: $--color-success !default; | ||||
| /// color||Color|0 | ||||
| $--tag-warning-color: $--color-warning !default; | ||||
| /// color||Color|0 | ||||
| $--tag-danger-color: $--color-danger !default; | ||||
| /// fontSize||Font|1 | ||||
| $--tag-font-size: 12px !default; | ||||
| $--tag-border-radius: 4px !default; | ||||
| $--tag-padding: 0 10px !default; | ||||
| 
 | ||||
| /* Tree | ||||
| -------------------------- */ | ||||
| /// color||Color|0 | ||||
| $--tree-node-hover-background-color: $--background-color-base !default; | ||||
| /// color||Color|0 | ||||
| $--tree-font-color: $--color-text-regular !default; | ||||
| /// color||Color|0 | ||||
| $--tree-expand-icon-color: $--color-text-placeholder !default; | ||||
| 
 | ||||
| /* Dropdown | ||||
| -------------------------- */ | ||||
| $--dropdown-menu-box-shadow: $--box-shadow-light !default; | ||||
| $--dropdown-menuItem-hover-fill: $--color-primary-light-9 !default; | ||||
| $--dropdown-menuItem-hover-color: $--link-color !default; | ||||
| 
 | ||||
| /* Badge | ||||
| -------------------------- */ | ||||
| /// color||Color|0 | ||||
| $--badge-background-color: $--color-danger !default; | ||||
| $--badge-radius: 10px !default; | ||||
| /// fontSize||Font|1 | ||||
| $--badge-font-size: 12px !default; | ||||
| /// padding||Spacing|3 | ||||
| $--badge-padding: 6px !default; | ||||
| /// height||Other|4 | ||||
| $--badge-size: 18px !default; | ||||
| 
 | ||||
| /* Card | ||||
| --------------------------*/ | ||||
| /// color||Color|0 | ||||
| $--card-border-color: $--border-color-lighter !default; | ||||
| $--card-border-radius: 4px !default; | ||||
| /// padding||Spacing|3 | ||||
| $--card-padding: 20px !default; | ||||
| 
 | ||||
| /* Slider | ||||
| --------------------------*/ | ||||
| /// color||Color|0 | ||||
| $--slider-main-background-color: $--color-primary !default; | ||||
| /// color||Color|0 | ||||
| $--slider-runway-background-color: $--border-color-light !default; | ||||
| $--slider-button-hover-color: mix($--color-primary, black, 97%) !default; | ||||
| $--slider-stop-background-color: $--color-white !default; | ||||
| $--slider-disable-color: $--color-text-placeholder !default; | ||||
| $--slider-margin: 16px 0 !default; | ||||
| $--slider-border-radius: 3px !default; | ||||
| /// height|1|Other|4 | ||||
| $--slider-height: 6px !default; | ||||
| /// height||Other|4 | ||||
| $--slider-button-size: 16px !default; | ||||
| $--slider-button-wrapper-size: 36px !default; | ||||
| $--slider-button-wrapper-offset: -15px !default; | ||||
| 
 | ||||
| /* Steps | ||||
| --------------------------*/ | ||||
| $--steps-border-color: $--disabled-border-base !default; | ||||
| $--steps-border-radius: 4px !default; | ||||
| $--steps-padding: 20px !default; | ||||
| 
 | ||||
| /* Menu | ||||
| --------------------------*/ | ||||
| /// fontSize||Font|1 | ||||
| $--menu-item-font-size: $--font-size-base !default; | ||||
| /// color||Color|0 | ||||
| $--menu-item-font-color: $--color-text-primary !default; | ||||
| /// color||Color|0 | ||||
| $--menu-background-color: $--color-white !default; | ||||
| $--menu-item-hover-fill: $--color-primary-light-9 !default; | ||||
| 
 | ||||
| /* Rate | ||||
| --------------------------*/ | ||||
| $--rate-height: 20px !default; | ||||
| /// fontSize||Font|1 | ||||
| $--rate-font-size: $--font-size-base !default; | ||||
| /// height||Other|3 | ||||
| $--rate-icon-size: 18px !default; | ||||
| /// margin||Spacing|2 | ||||
| $--rate-icon-margin: 6px !default; | ||||
| $--rate-icon-color: $--color-text-placeholder !default; | ||||
| 
 | ||||
| /* DatePicker | ||||
| --------------------------*/ | ||||
| $--datepicker-font-color: $--color-text-regular !default; | ||||
| /// color|1|Color|0 | ||||
| $--datepicker-off-font-color: $--color-text-placeholder !default; | ||||
| /// color||Color|0 | ||||
| $--datepicker-header-font-color: $--color-text-regular !default; | ||||
| $--datepicker-icon-color: $--color-text-primary !default; | ||||
| $--datepicker-border-color: $--disabled-border-base !default; | ||||
| $--datepicker-inner-border-color: #e4e4e4 !default; | ||||
| /// color||Color|0 | ||||
| $--datepicker-inrange-background-color: $--border-color-extra-light !default; | ||||
| /// color||Color|0 | ||||
| $--datepicker-inrange-hover-background-color: $--border-color-extra-light !default; | ||||
| /// color||Color|0 | ||||
| $--datepicker-active-color: $--color-primary !default; | ||||
| /// color||Color|0 | ||||
| $--datepicker-hover-font-color: $--color-primary !default; | ||||
| $--datepicker-cell-hover-color: #fff !default; | ||||
| 
 | ||||
| /* Loading | ||||
| --------------------------*/ | ||||
| /// height||Other|4 | ||||
| $--loading-spinner-size: 42px !default; | ||||
| /// height||Other|4 | ||||
| $--loading-fullscreen-spinner-size: 50px !default; | ||||
| 
 | ||||
| /* Scrollbar | ||||
| --------------------------*/ | ||||
| $--scrollbar-background-color: rgba($--color-text-secondary, .3) !default; | ||||
| $--scrollbar-hover-background-color: rgba($--color-text-secondary, .5) !default; | ||||
| 
 | ||||
| /* Carousel | ||||
| --------------------------*/ | ||||
| /// fontSize||Font|1 | ||||
| $--carousel-arrow-font-size: 12px !default; | ||||
| $--carousel-arrow-size: 36px !default; | ||||
| $--carousel-arrow-background: rgba(31, 45, 61, 0.11) !default; | ||||
| $--carousel-arrow-hover-background: rgba(31, 45, 61, 0.23) !default; | ||||
| /// width||Other|4 | ||||
| $--carousel-indicator-width: 30px !default; | ||||
| /// height||Other|4 | ||||
| $--carousel-indicator-height: 2px !default; | ||||
| $--carousel-indicator-padding-horizontal: 4px !default; | ||||
| $--carousel-indicator-padding-vertical: 12px !default; | ||||
| $--carousel-indicator-out-color: $--border-color-hover !default; | ||||
| 
 | ||||
| /* Collapse | ||||
| --------------------------*/ | ||||
| /// color||Color|0 | ||||
| $--collapse-border-color: $--border-color-lighter !default; | ||||
| /// height||Other|4 | ||||
| $--collapse-header-height: 48px !default; | ||||
| /// color||Color|0 | ||||
| $--collapse-header-background-color: $--color-white !default; | ||||
| /// color||Color|0 | ||||
| $--collapse-header-font-color: $--color-text-primary !default; | ||||
| /// fontSize||Font|1 | ||||
| $--collapse-header-font-size: 13px !default; | ||||
| /// color||Color|0 | ||||
| $--collapse-content-background-color: $--color-white !default; | ||||
| /// fontSize||Font|1 | ||||
| $--collapse-content-font-size: 13px !default; | ||||
| /// color||Color|0 | ||||
| $--collapse-content-font-color: $--color-text-primary !default; | ||||
| 
 | ||||
| /* Transfer | ||||
| --------------------------*/ | ||||
| $--transfer-border-color: $--border-color-lighter !default; | ||||
| $--transfer-border-radius: $--border-radius-base !default; | ||||
| /// height||Other|4 | ||||
| $--transfer-panel-width: 200px !default; | ||||
| /// height||Other|4 | ||||
| $--transfer-panel-header-height: 40px !default; | ||||
| /// color||Color|0 | ||||
| $--transfer-panel-header-background-color: $--background-color-base !default; | ||||
| /// height||Other|4 | ||||
| $--transfer-panel-footer-height: 40px !default; | ||||
| /// height||Other|4 | ||||
| $--transfer-panel-body-height: 246px !default; | ||||
| /// height||Other|4 | ||||
| $--transfer-item-height: 30px !default; | ||||
| /// height||Other|4 | ||||
| $--transfer-filter-height: 32px !default; | ||||
| 
 | ||||
| /* Header | ||||
|   --------------------------*/ | ||||
| $--header-padding: 0 20px !default; | ||||
| 
 | ||||
| /* Footer | ||||
| --------------------------*/ | ||||
| $--footer-padding: 0 20px !default; | ||||
| 
 | ||||
| /* Main | ||||
| --------------------------*/ | ||||
| $--main-padding: 20px !default; | ||||
| 
 | ||||
| /* Timeline | ||||
| --------------------------*/ | ||||
| $--timeline-node-size-normal: 12px !default; | ||||
| $--timeline-node-size-large: 14px !default; | ||||
| $--timeline-node-color: $--border-color-light !default; | ||||
| 
 | ||||
| /* Backtop | ||||
| --------------------------*/ | ||||
| /// color||Color|0 | ||||
| $--backtop-background-color: $--color-white !default; | ||||
| /// color||Color|0 | ||||
| $--backtop-font-color: $--color-primary !default; | ||||
| /// color||Color|0 | ||||
| $--backtop-hover-background-color: $--border-color-extra-light !default; | ||||
| 
 | ||||
| /* Link | ||||
| --------------------------*/ | ||||
| /// fontSize||Font|1 | ||||
| $--link-font-size: $--font-size-base !default; | ||||
| /// fontWeight||Font|1 | ||||
| $--link-font-weight: $--font-weight-primary !default; | ||||
| /// color||Color|0 | ||||
| $--link-default-font-color: $--color-text-regular !default; | ||||
| /// color||Color|0 | ||||
| $--link-default-active-color: $--color-primary !default; | ||||
| /// color||Color|0 | ||||
| $--link-disabled-font-color: $--color-text-placeholder !default; | ||||
| /// color||Color|0 | ||||
| $--link-primary-font-color: $--color-primary !default; | ||||
| /// color||Color|0 | ||||
| $--link-success-font-color: $--color-success !default; | ||||
| /// color||Color|0 | ||||
| $--link-warning-font-color: $--color-warning !default; | ||||
| /// color||Color|0 | ||||
| $--link-danger-font-color: $--color-danger !default; | ||||
| /// color||Color|0 | ||||
| $--link-info-font-color: $--color-info !default; | ||||
| /* Calendar | ||||
| --------------------------*/ | ||||
| /// border||Other|4 | ||||
| $--calendar-border: $--table-border !default; | ||||
| /// color||Other|4 | ||||
| $--calendar-selected-background-color: #F2F8FE !default; | ||||
| $--calendar-cell-width: 85px !default; | ||||
| 
 | ||||
| /* Form | ||||
| -------------------------- */ | ||||
| /// fontSize||Font|1 | ||||
| $--form-label-font-size: $--font-size-base !default; | ||||
| 
 | ||||
| /* Avatar | ||||
| --------------------------*/ | ||||
| /// color||Color|0 | ||||
| $--avatar-font-color: #fff !default; | ||||
| /// color||Color|0 | ||||
| $--avatar-background-color: #C0C4CC !default; | ||||
| /// fontSize||Font Size|1 | ||||
| $--avatar-text-font-size: 14px !default; | ||||
| /// fontSize||Font Size|1 | ||||
| $--avatar-icon-font-size: 18px !default; | ||||
| /// borderRadius||Border|2 | ||||
| $--avatar-border-radius: $--border-radius-base !default; | ||||
| /// size|1|Avatar Size|3 | ||||
| $--avatar-large-size: 40px !default; | ||||
| /// size|1|Avatar Size|3 | ||||
| $--avatar-medium-size: 36px !default; | ||||
| /// size|1|Avatar Size|3 | ||||
| $--avatar-small-size: 28px !default; | ||||
| 
 | ||||
| /* Break-point | ||||
| --------------------------*/ | ||||
| $--sm: 768px !default; | ||||
| $--md: 992px !default; | ||||
| $--lg: 1200px !default; | ||||
| $--xl: 1920px !default; | ||||
| 
 | ||||
| $--breakpoints: ( | ||||
|   'xs' : (max-width: $--sm - 1), | ||||
|   'sm' : (min-width: $--sm), | ||||
|   'md' : (min-width: $--md), | ||||
|   'lg' : (min-width: $--lg), | ||||
|   'xl' : (min-width: $--xl) | ||||
| ); | ||||
| 
 | ||||
| $--breakpoints-spec: ( | ||||
|   'xs-only' : (max-width: $--sm - 1), | ||||
|   'sm-and-up' : (min-width: $--sm), | ||||
|   'sm-only': "(min-width: #{$--sm}) and (max-width: #{$--md - 1})", | ||||
|   'sm-and-down': (max-width: $--md - 1), | ||||
|   'md-and-up' : (min-width: $--md), | ||||
|   'md-only': "(min-width: #{$--md}) and (max-width: #{$--lg - 1})", | ||||
|   'md-and-down': (max-width: $--lg - 1), | ||||
|   'lg-and-up' : (min-width: $--lg), | ||||
|   'lg-only': "(min-width: #{$--lg}) and (max-width: #{$--xl - 1})", | ||||
|   'lg-and-down': (max-width: $--xl - 1), | ||||
|   'xl-only' : (min-width: $--xl), | ||||
| ); | ||||
| 
 | ||||
| @import '~element-ui/packages/theme-chalk/src/index'; | ||||
| @ -1,23 +0,0 @@ | ||||
| // Element components | ||||
| @import './element/variables'; | ||||
| @import './custom/mixins'; | ||||
| @import './custom/global'; | ||||
| 
 | ||||
| // Custom components | ||||
| @import './custom/app-footer'; | ||||
| @import './custom/app-header'; | ||||
| @import './custom/app-home'; | ||||
| @import './custom/app-layout'; | ||||
| @import './custom/article'; | ||||
| @import './custom/card-list'; | ||||
| @import './custom/carousel'; | ||||
| @import './custom/chunk'; | ||||
| @import './custom/error'; | ||||
| @import './custom/image-list'; | ||||
| @import './custom/news'; | ||||
| @import './custom/overview'; | ||||
| @import './custom/research'; | ||||
| @import './custom/search'; | ||||
| @import './custom/teacher-list'; | ||||
| @import './custom/teacher'; | ||||
| @import './custom/team'; | ||||
| Before Width: | Height: | Size: 434 KiB | 
| @ -1,102 +0,0 @@ | ||||
| <template> | ||||
|   <div class="card-list"> | ||||
|     <div v-if="!data.length" class="tip"> | ||||
|       暂无内容 | ||||
|     </div> | ||||
|     <el-row | ||||
|       :gutter="gutter" | ||||
|       v-for="line in Math.ceil(data.length / column)" | ||||
|       :key="line" | ||||
|       :style="{ margin: gutter + 'px' }" | ||||
|     > | ||||
|       <el-col | ||||
|         :span="24 / column" | ||||
|         v-for="(item, index) in data.slice((line - 1) * column, line * column)" | ||||
|         :key="index" | ||||
|       > | ||||
|         <el-card | ||||
|           :body-style="{ padding: '0px', height: height }" | ||||
|           :style="showBorder ? '' : 'border: none'" | ||||
|           class="card-list-item" | ||||
|           shadow="hover" | ||||
|           @click.native=" | ||||
|             item.path ? $router.push(item.path) : openNewTab(item.href) | ||||
|           " | ||||
|         > | ||||
|           <!-- 封面图片 --> | ||||
|           <img | ||||
|             :src="item.fileUrl" | ||||
|             :alt="item.title" | ||||
|             :width="width" | ||||
|             :height="height" | ||||
|             object-fit="scale-down" | ||||
|           /> | ||||
|           <!-- 横幅 --> | ||||
|           <div v-show="showBanner" class="banner"> | ||||
|             <!-- 标题 --> | ||||
|             <div>{{ item.title }}</div> | ||||
|             <!-- 内容 --> | ||||
|             <div v-if="item.content" class="content"> | ||||
|               {{ item.content }} | ||||
|             </div> | ||||
|           </div> | ||||
|         </el-card> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|   </div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import { openNewTab } from '@/utils/common' | ||||
| 
 | ||||
| export default { | ||||
|   props: { | ||||
|     gutter: { | ||||
|       default: 15, | ||||
|       type: Number, | ||||
|       description: '卡片间距' | ||||
|     }, | ||||
|     data: { | ||||
|       default: () => [], | ||||
|       type: Array, | ||||
|       description: '填充数据' | ||||
|     }, | ||||
|     column: { | ||||
|       default: 6, | ||||
|       type: Number, | ||||
|       description: '列数(只可取24的约数,1 | 2 | 3 | 4 | 6 | 8 | 12 | 24)' | ||||
|     }, | ||||
|     'card-width': { | ||||
|       default: 0, | ||||
|       type: Number, | ||||
|       description: '卡片宽度' | ||||
|     }, | ||||
|     'card-height': { | ||||
|       default: 0, | ||||
|       type: Number, | ||||
|       description: '卡片高度' | ||||
|     }, | ||||
|     'show-border': { | ||||
|       default: false, | ||||
|       type: Boolean, | ||||
|       description: '显示边界' | ||||
|     }, | ||||
|     'show-banner': { | ||||
|       default: true, | ||||
|       type: Boolean, | ||||
|       description: '显示横幅' | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|     openNewTab | ||||
|   }, | ||||
|   computed: { | ||||
|     width() { | ||||
|       return this.cardWidth ? this.cardWidth + 'px' : '100%' | ||||
|     }, | ||||
|     height() { | ||||
|       return this.cardHeight ? this.cardHeight + 'px' : '100%' | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
| @ -1,59 +0,0 @@ | ||||
| <template> | ||||
|   <footer class="app-footer"> | ||||
|     <div class="footer-inner"> | ||||
|       <!-- <div class="focus-us"> | ||||
|         <span>关注我们</span> | ||||
|         <ul> | ||||
|           <li v-for="(item, index) in config.mediaList" :key="index"> | ||||
|             <el-link :underline="false" :href="item.href" target="_blank"> | ||||
|               <i :class="item.icon"></i> | ||||
|             </el-link> | ||||
|           </li> | ||||
|         </ul> | ||||
|       </div> | ||||
|       <el-divider></el-divider> --> | ||||
|       <div class="footer-row"> | ||||
|         <div class="footer-info"> | ||||
|           <ul class="link-list"> | ||||
|             <li v-for="(item, index) in config.linkList" :key="index"> | ||||
|               <el-link :underline="false" :href="item.href" target="_blank"> | ||||
|                 {{ item.name }} | ||||
|               </el-link> | ||||
|             </li> | ||||
|           </ul> | ||||
|           <ul class="contact-us"> | ||||
|             <li v-for="(item, index) in config.contacts" :key="index"> | ||||
|               {{ item }} | ||||
|             </li> | ||||
|           </ul> | ||||
|         </div> | ||||
|         <div class="footer-brand"> | ||||
|           <router-link to="/"> | ||||
|             <el-image src="/img/brand_blue.png"></el-image> | ||||
|           </router-link> | ||||
|         </div> | ||||
|       </div> | ||||
|       <div class="footer-area"> | ||||
|         <div>{{ config.ICP }}</div> | ||||
|         <div> | ||||
|           Copyright © {{ year }} UP. All Rights Reserved. | ||||
|           公共安全技术研究中心 版权所有 | ||||
|         </div> | ||||
|       </div> | ||||
|     </div> | ||||
|   </footer> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import loadConfig from '@/mixins/load-config' | ||||
| 
 | ||||
| export default { | ||||
|   name: 'AppFooter', | ||||
|   mixins: [loadConfig], | ||||
|   computed: { | ||||
|     year() { | ||||
|       return new Date().getFullYear() | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
| @ -1,94 +0,0 @@ | ||||
| <template> | ||||
|   <header class="app-header" :class="[`header-${effect}`]"> | ||||
|     <div class="header-inner"> | ||||
|       <div class="header-before"> | ||||
|         <!-- Logo --> | ||||
|         <router-link to="/"> | ||||
|           <!-- <el-image | ||||
|             :src="`/img/brand_${effect === 'light' ? 'blue' : 'white'}.png`" | ||||
|             fit="scale-down" | ||||
|           ></el-image> --> | ||||
|           <el-image | ||||
|             :src="`/img/logo.png`" | ||||
|             fit="scale-down" | ||||
|             style="width: 300px" | ||||
|           ></el-image> | ||||
|         </router-link> | ||||
|         <!-- 导航菜单 --> | ||||
|         <el-menu | ||||
|           :default-active="$route.path" | ||||
|           mode="horizontal" | ||||
|           router | ||||
|           unique-opened | ||||
|         > | ||||
|           <template v-for="item in allModules"> | ||||
|             <template v-if="!item.hidden && item.status"> | ||||
|               <!-- 没有子菜单 --> | ||||
|               <el-menu-item | ||||
|                 v-if="!item.children" | ||||
|                 :key="item.id" | ||||
|                 :index="item.path" | ||||
|               > | ||||
|                 {{ item.name }} | ||||
|               </el-menu-item> | ||||
|               <!-- 有子菜单 --> | ||||
|               <el-submenu v-else :key="item.id" :index="item.id + ''"> | ||||
|                 <template slot="title">{{ item.name }}</template> | ||||
|                 <template v-for="subitem in item.children"> | ||||
|                   <template v-if="!subitem.hidden && subitem.status"> | ||||
|                     <el-menu-item | ||||
|                       v-if="!subitem.isExternal" | ||||
|                       :key="subitem.id" | ||||
|                       :index="subitem.path" | ||||
|                     > | ||||
|                       {{ subitem.name }} | ||||
|                     </el-menu-item> | ||||
|                     <el-menu-item | ||||
|                       v-else | ||||
|                       :key="subitem.id" | ||||
|                       @click="openNewTab(subitem.path)" | ||||
|                     > | ||||
|                       {{ subitem.name }} | ||||
|                     </el-menu-item> | ||||
|                   </template> | ||||
|                 </template> | ||||
|               </el-submenu> | ||||
|             </template> | ||||
|           </template> | ||||
|         </el-menu> | ||||
|       </div> | ||||
|       <router-link to="/search"> | ||||
|         <el-link :underline="false"> | ||||
|           <i class="el-icon-search"></i> | ||||
|         </el-link> | ||||
|       </router-link> | ||||
|       <el-link :underline="false" href="http://192.168.1.133:8080"> | ||||
|         <div>后台入口</div> | ||||
|       </el-link> | ||||
|     </div> | ||||
|   </header> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import loadConfig from '@/mixins/load-config' | ||||
| import { mapState } from 'vuex' | ||||
| import { openNewTab } from '@/utils/common.js' | ||||
| 
 | ||||
| export default { | ||||
|   name: 'AppHeader', | ||||
|   mixins: [loadConfig], | ||||
|   props: { | ||||
|     effect: { | ||||
|       type: String, | ||||
|       default: 'transparent', | ||||
|       description: '导航栏主题,(transparent | dark | light)' | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|     openNewTab | ||||
|   }, | ||||
|   computed: { | ||||
|     ...mapState(['allModules']) | ||||
|   } | ||||
| } | ||||
| </script> | ||||
| @ -1,2 +0,0 @@ | ||||
| export { default as AppFooter } from './AppFooter' | ||||
| export { default as AppHeader } from './AppHeader' | ||||
| @ -1,53 +0,0 @@ | ||||
| <template> | ||||
|   <section> | ||||
|     <app-header effect="light"></app-header> | ||||
|     <div class="layout-header"> | ||||
|       <div class="header-inner"> | ||||
|         <h1>{{ currentModule.name }}</h1> | ||||
|       </div> | ||||
|     </div> | ||||
|     <div class="layout-body"> | ||||
|       <div class="body-inner"> | ||||
|         <transition name="el-fade-in-linear"> | ||||
|           <router-view></router-view> | ||||
|         </transition> | ||||
|       </div> | ||||
|     </div> | ||||
|     <app-footer></app-footer> | ||||
|   </section> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import loadConfig from '@/mixins/load-config' | ||||
| import { AppHeader, AppFooter } from './components' | ||||
| import { mapState, mapMutations } from 'vuex' | ||||
| import { queryModuleByRoute } from '@/api/module' | ||||
| 
 | ||||
| export default { | ||||
|   name: 'AppLayout', | ||||
|   mixins: [loadConfig], | ||||
|   components: { AppHeader, AppFooter }, | ||||
|   methods: { | ||||
|     ...mapMutations(['SET_CURRENT_MODULE']), | ||||
|     getModule() { | ||||
|       queryModuleByRoute(this.route).then(res => { | ||||
|         this.SET_CURRENT_MODULE(res.data) | ||||
|       }) | ||||
|     } | ||||
|   }, | ||||
|   computed: { | ||||
|     ...mapState(['currentModule']), | ||||
|     route() { | ||||
|       return this.$route.name | ||||
|     } | ||||
|   }, | ||||
|   watch: { | ||||
|     route() { | ||||
|       this.getModule() | ||||
|     } | ||||
|   }, | ||||
|   created() { | ||||
|     this.getModule() | ||||
|   } | ||||
| } | ||||
| </script> | ||||
| @ -1,15 +0,0 @@ | ||||
| import Vue from 'vue' | ||||
| import App from './App.vue' | ||||
| import router from './router' | ||||
| import store from './store' | ||||
| import Up from './plugins/up-kit' | ||||
| 
 | ||||
| Vue.config.productionTip = false | ||||
| 
 | ||||
| Vue.use(Up) | ||||
| 
 | ||||
| new Vue({ | ||||
|   router, | ||||
|   store, | ||||
|   render: h => h(App) | ||||
| }).$mount('#app') | ||||
| @ -1,15 +0,0 @@ | ||||
| import { mapState } from 'vuex' | ||||
| 
 | ||||
| export default { | ||||
|   data() { | ||||
|     return { | ||||
|       config: null | ||||
|     } | ||||
|   }, | ||||
|   computed: { | ||||
|     ...mapState(['appSetting']) | ||||
|   }, | ||||
|   created() { | ||||
|     this.config = this.appSetting[this.$options.name] | ||||
|   } | ||||
| } | ||||
| @ -1,45 +0,0 @@ | ||||
| import { mapState } from 'vuex' | ||||
| import { queryByQuery } from '../api/article.js' | ||||
| 
 | ||||
| export default { | ||||
|   data() { | ||||
|     return { | ||||
|       articles: [], | ||||
|       currentPage: 1, | ||||
|       pageSize: 10, | ||||
|       total: 0 | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|     getArticles() { | ||||
|       queryByQuery({ | ||||
|         title: '', | ||||
|         author: '', | ||||
|         module: this.currentModule.name, | ||||
|         status: "'已发布'", | ||||
|         startDate: null, | ||||
|         endDate: null, | ||||
|         isDeleted: 0, | ||||
|         currentPage: this.currentPage, | ||||
|         pageSize: this.pageSize | ||||
|       }).then(res => { | ||||
|         this.articles = res.data.list | ||||
|         this.total = res.data.total | ||||
|       }) | ||||
|     }, | ||||
|     showMore() { | ||||
|       this.pageSize += 10 | ||||
|       this.getArticles() | ||||
|     } | ||||
|   }, | ||||
|   computed: { | ||||
|     ...mapState(['currentModule']) | ||||
|   }, | ||||
|   watch: { | ||||
|     currentModule() { | ||||
|       if (this.currentModule) { | ||||
|         this.getArticles() | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
| @ -1,15 +0,0 @@ | ||||
| import '../assets/vendor/font-awesome/css/font-awesome.css' | ||||
| import '../assets/scss/up.scss' | ||||
| import 'quill/dist/quill.core.css' | ||||
| import 'quill/dist/quill.snow.css' | ||||
| import 'quill/dist/quill.bubble.css' | ||||
| 
 | ||||
| import Element from 'element-ui' | ||||
| import VueLazyload from 'vue-lazyload' | ||||
| 
 | ||||
| export default { | ||||
|   install(Vue) { | ||||
|     Vue.use(Element) | ||||
|     Vue.use(VueLazyload) | ||||
|   } | ||||
| } | ||||
| @ -1,105 +0,0 @@ | ||||
| import Vue from 'vue' | ||||
| import VueRouter from 'vue-router' | ||||
| import store from '../store' | ||||
| import { getAppSetting } from '../utils/index' | ||||
| import { queryAllModules } from '../api/module' | ||||
| 
 | ||||
| Vue.use(VueRouter) | ||||
| 
 | ||||
| const routes = [ | ||||
|   { | ||||
|     path: '/', | ||||
|     redirect: { name: 'home' } | ||||
|   }, | ||||
|   { | ||||
|     path: '/home', | ||||
|     name: 'home', | ||||
|     component: () => import('../views/home') | ||||
|   }, | ||||
|   { | ||||
|     path: '/article/:id/:uuid', | ||||
|     name: 'article', | ||||
|     component: () => import('../views/article'), | ||||
|     props: true | ||||
|   }, | ||||
|   { | ||||
|     path: '/teacher/:uuid', | ||||
|     name: 'teacher', | ||||
|     component: () => import('../views/teacher'), | ||||
|     props: true | ||||
|   }, | ||||
|   { | ||||
|     path: '/student/:uuid', | ||||
|     name: 'studnet', | ||||
|     component: () => import('../views/student'), | ||||
|     props: true | ||||
|   }, | ||||
|   { | ||||
|     path: '/error', | ||||
|     name: 'error', | ||||
|     component: () => import('../views/error') | ||||
|   } | ||||
| ] | ||||
| 
 | ||||
| const router = new VueRouter({ | ||||
|   mode: 'history', | ||||
|   base: process.env.BASE_URL, | ||||
|   scrollBehavior: () => ({ x: 0, y: 0 }), | ||||
|   routes | ||||
| }) | ||||
| 
 | ||||
| // 配置路由导航守卫
 | ||||
| router.beforeEach((to, from, next) => { | ||||
|   // 如果路由不为空,则放行
 | ||||
|   if (store.state.allModules.length > 0) { | ||||
|     return next() | ||||
|   } | ||||
|   // 获取全局配置
 | ||||
|   getAppSetting() | ||||
|   // 获取菜单列表
 | ||||
|   queryAllModules() | ||||
|     .then(res => { | ||||
|       // 将菜单全局保存
 | ||||
|       store.commit('SET_ALL_MODULES', res.data) | ||||
|       var dynamicRoutes = [] | ||||
|       // 递归生成路由
 | ||||
|       generateRoutes(dynamicRoutes, res.data) | ||||
|       // 添加布局组件路由
 | ||||
|       router.addRoute({ | ||||
|         path: '/layout', | ||||
|         name: 'AppLayout', | ||||
|         component: () => import('../layout'), | ||||
|         children: dynamicRoutes | ||||
|       }) | ||||
|       // 除已定义的路由,其他路由全部跳转至404页面
 | ||||
|       router.addRoute({ path: '/*', redirect: { name: 'error' } }) | ||||
|       // 确保动态路由已经完全加载上去
 | ||||
|       next({ ...to, replace: true }) | ||||
|     }) | ||||
|     .catch(() => { | ||||
|       next({ name: 'error' }) | ||||
|     }) | ||||
| }) | ||||
| 
 | ||||
| // 递归生成路由
 | ||||
| function generateRoutes(dynamicRoutes, modules) { | ||||
|   modules.forEach(item => { | ||||
|     // 只有子菜单拥有路由和路由名称
 | ||||
|     if (item.path || item.routeName) { | ||||
|       dynamicRoutes.push({ | ||||
|         path: item.path, | ||||
|         name: item.routeName, | ||||
|         component: () => | ||||
|           Promise.resolve( | ||||
|             require(`@/views${item.component}`).default // 路径中不能包含.或..等
 | ||||
|           ) | ||||
|       }) | ||||
|     } | ||||
|     // 如果有子菜单,生成子菜单的路由
 | ||||
|     if (item.children) { | ||||
|       return generateRoutes(dynamicRoutes, item.children) | ||||
|     } | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| export default router | ||||
| @ -1,25 +0,0 @@ | ||||
| import Vue from 'vue' | ||||
| import Vuex from 'vuex' | ||||
| 
 | ||||
| Vue.use(Vuex) | ||||
| 
 | ||||
| export default new Vuex.Store({ | ||||
|   state: { | ||||
|     appSetting: {}, | ||||
|     currentModule: {}, | ||||
|     allModules: [] | ||||
|   }, | ||||
|   mutations: { | ||||
|     SET_APP_SETTING(state, appSetting) { | ||||
|       state.appSetting = appSetting | ||||
|     }, | ||||
|     SET_CURRENT_MODULE(state, currentModule) { | ||||
|       state.currentModule = currentModule | ||||
|     }, | ||||
|     SET_ALL_MODULES(state, allModules) { | ||||
|       state.allModules = allModules | ||||
|     } | ||||
|   }, | ||||
|   actions: {}, | ||||
|   modules: {} | ||||
| }) | ||||
| @ -1,80 +0,0 @@ | ||||
| /** | ||||
|  * 打开新标签页 | ||||
|  * @param {String} href 网页链接 | ||||
|  */ | ||||
| export function openNewTab(href) { | ||||
|   if (!href) return | ||||
|   window.open(href, '_blank') | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * 日期格式化 | ||||
|  * @param {String} date 待格式化日期 | ||||
|  * @returns 格式化日期 | ||||
|  */ | ||||
| export function dateFormat1(date) { | ||||
|   // 待格式化日期
 | ||||
|   var dateObject = new Date(date) | ||||
|   // 现在
 | ||||
|   var nowDate = new Date() | ||||
|   const year = | ||||
|     dateObject.getFullYear() === nowDate.getFullYear() | ||||
|       ? '' | ||||
|       : dateObject.getFullYear() + '-' | ||||
|   const month = prefixInteger(dateObject.getMonth() + 1, 2) | ||||
|   const day = prefixInteger(dateObject.getDate(), 2) | ||||
|   return `${year}${month}-${day}` | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * 日期格式化 | ||||
|  * @param {String} date 待格式化日期 | ||||
|  * @returns 格式化日期 | ||||
|  */ | ||||
| export function dateFormat2(date) { | ||||
|   // 待格式化日期
 | ||||
|   var dateObject = new Date(date) | ||||
|   var dateTime = dateObject.getTime() | ||||
|   // 现在
 | ||||
|   var nowDate = new Date() | ||||
|   // 今天23:59:59
 | ||||
|   var tonightTime = new Date( | ||||
|     `${nowDate.getFullYear()}-${nowDate.getMonth() + | ||||
|       1}-${nowDate.getDate()} 23:59:59` | ||||
|   ).getTime() | ||||
|   // 一天的毫秒数
 | ||||
|   const oneDayTime = 24 * 60 * 60 * 1000 | ||||
|   if (tonightTime - dateTime < oneDayTime) { | ||||
|     return '今天' | ||||
|   } else if (tonightTime - dateTime < 2 * oneDayTime) { | ||||
|     return '昨天' | ||||
|   } else if (tonightTime - dateTime < 3 * oneDayTime) { | ||||
|     return '前天' | ||||
|   } else if (tonightTime - dateTime < 4 * oneDayTime) { | ||||
|     return '三天前' | ||||
|   } else if (tonightTime - dateTime < 5 * oneDayTime) { | ||||
|     return '四天前' | ||||
|   } else if (tonightTime - dateTime < 6 * oneDayTime) { | ||||
|     return '五天前' | ||||
|   } else if (tonightTime - dateTime < 7 * oneDayTime) { | ||||
|     return '六天前' | ||||
|   } else if (tonightTime - dateTime < 14 * oneDayTime) { | ||||
|     return '一周前' | ||||
|   } else { | ||||
|     return `${ | ||||
|       dateObject.getFullYear() === nowDate.getFullYear() | ||||
|         ? '' | ||||
|         : dateObject.getFullYear() + '年' | ||||
|     }${dateObject.getMonth() + 1}月${dateObject.getDate()}日` | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * 在数字前补0 | ||||
|  * @param {Number} num 数字 | ||||
|  * @param {Number} n 需要的字符长度 | ||||
|  * @returns 补0后的数字 | ||||
|  */ | ||||
| function prefixInteger(num, n) { | ||||
|   return (Array(n).join(0) + num).slice(-n) | ||||
| } | ||||
| @ -1,12 +0,0 @@ | ||||
| import { load } from '../api/config' | ||||
| import store from '../store' | ||||
| 
 | ||||
| /** | ||||
|  * 获取全局配置 | ||||
|  */ | ||||
| export function getAppSetting() { | ||||
|   load().then(res => { | ||||
|     const appSetting = JSON.parse(res.data) | ||||
|     store.commit('SET_APP_SETTING', appSetting) | ||||
|   }) | ||||
| } | ||||
| @ -1,25 +0,0 @@ | ||||
| import axios from 'axios' | ||||
| 
 | ||||
| const service = axios.create({ | ||||
|   baseURL: '/portal', // 配置请求的根路径
 | ||||
|   timeout: 5000 | ||||
| }) | ||||
| 
 | ||||
| // 配置响应拦截器
 | ||||
| service.interceptors.response.use( | ||||
|   res => { | ||||
|     console.log(res) | ||||
|     const status = res.data.code | ||||
|     const message = res.data.msg | ||||
|     if (status !== 0) { | ||||
|       return Promise.reject(new Error(message)) | ||||
|     } | ||||
|     return res.data | ||||
|   }, | ||||
|   error => { | ||||
|     console.log(error) | ||||
|     return Promise.reject(error) | ||||
|   } | ||||
| ) | ||||
| 
 | ||||
| export default service | ||||
| @ -1,87 +0,0 @@ | ||||
| <template> | ||||
|   <div> | ||||
|     <app-header effect="light"></app-header> | ||||
|     <div class="layout-body"> | ||||
|       <div class="body-inner"> | ||||
|         <!-- 文章标题 --> | ||||
|         <span class="article-title">{{ article.title }}</span> | ||||
|         <!-- 其他信息 --> | ||||
|         <div class="article-info"> | ||||
|           <span v-if="article.author">{{ article.author.realName }}</span> | ||||
|           <span>{{ article.updateTime | dateFormat2 }}</span> | ||||
|         </div> | ||||
|         <!-- 分割线 --> | ||||
|         <el-divider></el-divider> | ||||
|         <!-- 文章内容 --> | ||||
|         <div v-html="article.content" class="article-content ql-editor"></div> | ||||
|         <!-- 文章附件 --> | ||||
|         <div v-if="article.files && article.files.length" class="article-file"> | ||||
|           <div v-for="(item, index) in article.files" :key="index"> | ||||
|             <el-link icon="el-icon-download" @click="openNewTab(item.url)"> | ||||
|               附件{{ index + 1 }}:{{ item.name }} | ||||
|             </el-link> | ||||
|           </div> | ||||
|         </div> | ||||
|       </div> | ||||
|     </div> | ||||
|     <app-footer></app-footer> | ||||
|   </div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import loadConfig from '@/mixins/load-config' | ||||
| import { AppHeader, AppFooter } from '@/layout/components' | ||||
| import { openNewTab, dateFormat2 } from '@/utils/common' | ||||
| import { queryById } from '@/api/article' | ||||
| 
 | ||||
| export default { | ||||
|   name: 'AnArticle', | ||||
|   props: { | ||||
|     id: { | ||||
|       type: String, | ||||
|       default: '', | ||||
|       description: '文章id' | ||||
|     }, | ||||
|     uuid: { | ||||
|       type: String, | ||||
|       default: '', | ||||
|       description: '文章uuid' | ||||
|     } | ||||
|   }, | ||||
|   mixins: [loadConfig], | ||||
|   components: { AppHeader, AppFooter }, | ||||
|   filters: { | ||||
|     dateFormat2 | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       article: {} | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|     openNewTab, | ||||
|     getArticle() { | ||||
|       queryById(this.id, this.uuid).then(res => { | ||||
|         if (res.data) { | ||||
|           this.article = res.data | ||||
|         } else { | ||||
|           this.$router.push('/error') | ||||
|         } | ||||
|       }) | ||||
|     } | ||||
|   }, | ||||
|   computed: { | ||||
|     path() { | ||||
|       return this.$route.path | ||||
|     } | ||||
|   }, | ||||
|   watch: { | ||||
|     path() { | ||||
|       this.getArticle() | ||||
|     } | ||||
|   }, | ||||
|   created() { | ||||
|     this.getArticle() | ||||
|   } | ||||
| } | ||||
| </script> | ||||
| @ -1,21 +0,0 @@ | ||||
| <template> | ||||
|   <card-list | ||||
|     class="card-view" | ||||
|     slot="body" | ||||
|     :data="articles" | ||||
|     :column="3" | ||||
|     :image-height="280" | ||||
|   ></card-list> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import CardList from '@/components/CardList' | ||||
| import loadConfig from '@/mixins/load-config' | ||||
| import queryArticle from '@/mixins/query-article' | ||||
| 
 | ||||
| export default { | ||||
|   name: 'card-view', | ||||
|   mixins: [loadConfig, queryArticle], | ||||
|   components: { CardList } | ||||
| } | ||||
| </script> | ||||
| @ -1,33 +0,0 @@ | ||||
| <template> | ||||
|   <div> | ||||
|     <app-header effect="light"></app-header> | ||||
|     <section class="section-error"> | ||||
|       <div> | ||||
|         <el-image src="/img/404.png"></el-image> | ||||
|         <h1>抱歉!页面无法访问</h1> | ||||
|         <div> | ||||
|           您要查看的页面不存在,建议您访问我们的 | ||||
|           <el-link :underline="false" href="/">首页</el-link> | ||||
|           。 | ||||
|         </div> | ||||
|       </div> | ||||
|     </section> | ||||
|     <app-footer></app-footer> | ||||
|   </div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import loadConfig from '@/mixins/load-config' | ||||
| import { AppHeader, AppFooter } from '@/layout/components' | ||||
| 
 | ||||
| export default { | ||||
|   name: 'error', | ||||
|   mixins: [loadConfig], | ||||
|   components: { | ||||
|     AppHeader, | ||||
|     AppFooter | ||||
|   } | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style></style> | ||||
| @ -1,95 +0,0 @@ | ||||
| <template> | ||||
|   <div class="college"> | ||||
|     <h1>{{ value }}</h1> | ||||
|     <el-divider></el-divider> | ||||
|     <el-row | ||||
|       v-for="line in Math.ceil(students.length / 3)" | ||||
|       :key="line" | ||||
|       :gutter="20" | ||||
|     > | ||||
|       <el-col | ||||
|         v-for="(item, index) in students.slice((line - 1) * 3, line * 3)" | ||||
|         :key="index" | ||||
|         :span="12" | ||||
|       > | ||||
|         <el-row | ||||
|           :gutter="10" | ||||
|           class="card" | ||||
|           @click.native="$router.push(item.path)" | ||||
|         > | ||||
|           <el-col :span="6"> | ||||
|             <!-- 学生照片 --> | ||||
|             <!--            <el-image--> | ||||
|             <!--              :src="item.file.url"--> | ||||
|             <!--              :alt="item.name"--> | ||||
|             <!--              fit="scale-down"--> | ||||
|             <!--            ></el-image>--> | ||||
|             <img | ||||
|               :src="item.file.url" | ||||
|               :alt="item.name" | ||||
|               object-fit="scale-down" | ||||
|               width="110px" | ||||
|               height="155px" | ||||
|             /> | ||||
|           </el-col> | ||||
|           <el-col :span="18"> | ||||
|             <!-- 学生姓名与学号 --> | ||||
|             <div> | ||||
|               <span class="teacher-name">{{ item.name }}</span> | ||||
|               <span class="el-icon--right">{{ item.stuId }}</span> | ||||
|             </div> | ||||
|           </el-col> | ||||
|         </el-row> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|   </div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import { queryBySession } from '@/api/student' | ||||
| 
 | ||||
| export default { | ||||
|   name: 'Session', | ||||
|   props: { | ||||
|     value: { | ||||
|       default: '', | ||||
|       type: String, | ||||
|       description: '哪一届' | ||||
|     } | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       students: [] | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|     getStudents() { | ||||
|       queryBySession(this.value).then((res) => { | ||||
|         this.students = this.selectPost(res.data) | ||||
|         console.log(this.students) | ||||
|       }) | ||||
|     }, | ||||
|     selectPost(data) { | ||||
|       var res = [] | ||||
|       for (var i = 0; i < data.length; i++) { | ||||
|         if (data[i].state === 0) res.push(data[i]) // 1表示硕士,2表示博士 | ||||
|       } | ||||
|       return res | ||||
|     } | ||||
|   }, | ||||
|   watch: { | ||||
|     value: { | ||||
|       handler(val) { | ||||
|         if (val) { | ||||
|           this.getStudents() | ||||
|         } | ||||
|       }, | ||||
|       deep: true, | ||||
|       immediate: true | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style> | ||||
| </style> | ||||
| @ -1,32 +0,0 @@ | ||||
| <template> | ||||
|   <div> | ||||
|     <template v-for="(item, index) in sessions"> | ||||
|       <session :key="index" :value="item.toString()"></session> | ||||
|     </template> | ||||
|   </div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import loadConfig from '@/mixins/load-config' | ||||
| import Session from './Session' | ||||
| import { querySession } from '@/api/student' | ||||
| 
 | ||||
| export default { | ||||
|   name: 'StudentList', | ||||
|   mixins: [loadConfig], | ||||
|   components: { Session }, | ||||
|   data() { | ||||
|     return { | ||||
|       sessions: [] | ||||
|     } | ||||
|   }, | ||||
|   created() { | ||||
|     querySession().then((res) => { | ||||
|       this.sessions = res.data | ||||
|     }) | ||||
|   } | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style> | ||||
| </style> | ||||
| @ -1,18 +0,0 @@ | ||||
| <template> | ||||
|   <section class="carousel"> | ||||
|     <el-carousel height="40vw" :interval="5000"> | ||||
|       <el-carousel-item v-for="item in config" :key="item.id"> | ||||
|         <el-image :src="item.url"></el-image> | ||||
|       </el-carousel-item> | ||||
|     </el-carousel> | ||||
|   </section> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import loadConfig from '@/mixins/load-config' | ||||
| 
 | ||||
| export default { | ||||
|   name: 'Carousel', | ||||
|   mixins: [loadConfig] | ||||
| } | ||||
| </script> | ||||
| @ -1,39 +0,0 @@ | ||||
| <template> | ||||
|   <section | ||||
|     class="chunk" | ||||
|     :class="[`chunk-${theme}`]" | ||||
|     :style="[ | ||||
|       bgImage ? '' : `bg-image: url(${bgImage})`, | ||||
|       bgColor ? '' : `bg-color: ${bgColor}`, | ||||
|       'bg-size: contain' | ||||
|     ]" | ||||
|   > | ||||
|     <div class="title"> | ||||
|       <h1><slot></slot></h1> | ||||
|     </div> | ||||
|     <slot name="body"></slot> | ||||
|   </section> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|   name: 'Chunk', | ||||
|   props: { | ||||
|     theme: { | ||||
|       default: 'light', | ||||
|       type: String, | ||||
|       description: '主题(light | dark)' | ||||
|     }, | ||||
|     'bg-image': { | ||||
|       default: '', | ||||
|       type: String, | ||||
|       description: '背景图片' | ||||
|     }, | ||||
|     'bg-color': { | ||||
|       default: '', | ||||
|       type: String, | ||||
|       description: '背景颜色' | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
| @ -1,29 +0,0 @@ | ||||
| <template> | ||||
|   <chunk> | ||||
|     <card-list | ||||
|       slot="body" | ||||
|       :data="Array.from(config)" | ||||
|       :column="4" | ||||
|       :card-width="250" | ||||
|       :card-height="100" | ||||
|       :show-border="true" | ||||
|       :show-banner="false" | ||||
|     ></card-list> | ||||
|     企业合作 | ||||
|   </chunk> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import loadConfig from '@/mixins/load-config' | ||||
| import Chunk from '../Chunk' | ||||
| import CardList from '@/components/CardList' | ||||
| 
 | ||||
| export default { | ||||
|   name: 'Cooperation', | ||||
|   mixins: [loadConfig], | ||||
|   components: { | ||||
|     Chunk, | ||||
|     CardList | ||||
|   } | ||||
| } | ||||
| </script> | ||||
| @ -1,71 +0,0 @@ | ||||
| <template> | ||||
|   <el-card class="news-item" shadow="never"> | ||||
|     <div class="news-item-title"> | ||||
|       <span>{{ module.name }}</span> | ||||
|       <el-link @click.native="$router.push(module.path)" :underline="false"> | ||||
|         更多 | ||||
|         <i class="el-icon-arrow-right"></i> | ||||
|       </el-link> | ||||
|     </div> | ||||
|     <ul> | ||||
|       <li v-for="(article, index) in list" :key="index"> | ||||
|         <div> | ||||
|           <a @click="$router.push(article.path)">{{ article.title }}</a> | ||||
|         </div> | ||||
|         <span>{{ article.updateTime | dateFormat1 }}</span> | ||||
|       </li> | ||||
|     </ul> | ||||
|   </el-card> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import { openNewTab, dateFormat1 } from '@/utils/common' | ||||
| import { queryByQuery } from '@/api/article' | ||||
| 
 | ||||
| export default { | ||||
|   name: 'Item', | ||||
|   props: { | ||||
|     module: { | ||||
|       type: Object, | ||||
|       description: '模块信息' | ||||
|     } | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       list: [] | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|     openNewTab, | ||||
|     getArticles() { | ||||
|       queryByQuery({ | ||||
|         title: '', | ||||
|         author: '', | ||||
|         module: this.module.name, | ||||
|         status: "'已发布'", | ||||
|         startDate: null, | ||||
|         endDate: null, | ||||
|         isDeleted: 0, | ||||
|         currentPage: 1, | ||||
|         pageSize: 10 | ||||
|       }).then(res => { | ||||
|         this.list = res.data.list | ||||
|       }) | ||||
|     } | ||||
|   }, | ||||
|   filters: { | ||||
|     dateFormat1 | ||||
|   }, | ||||
|   watch: { | ||||
|     module: { | ||||
|       handler(val) { | ||||
|         if (val) { | ||||
|           this.getArticles() | ||||
|         } | ||||
|       }, | ||||
|       deep: true, | ||||
|       immediate: true | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
| @ -1,26 +0,0 @@ | ||||
| <template> | ||||
|   <chunk class="news"> | ||||
|     <el-row :gutter="15" slot="body"> | ||||
|       <el-col | ||||
|         :span="24 / config.length" | ||||
|         v-for="(item, index) in config" | ||||
|         :key="index" | ||||
|       > | ||||
|         <item :module="item"></item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     新闻中心 | ||||
|   </chunk> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import loadConfig from '@/mixins/load-config' | ||||
| import Chunk from '../Chunk' | ||||
| import Item from './Item' | ||||
| 
 | ||||
| export default { | ||||
|   name: 'News', | ||||
|   mixins: [loadConfig], | ||||
|   components: { Chunk, Item } | ||||
| } | ||||
| </script> | ||||
| @ -1,29 +0,0 @@ | ||||
| <template> | ||||
|   <chunk class="research"> | ||||
|     <el-row :gutter="15" slot="body"> | ||||
|       <el-col | ||||
|         :span="6" | ||||
|         v-for="(item, index) in Array.from(config)" | ||||
|         :key="index" | ||||
|         @click.native="$router.push(item.path)" | ||||
|       > | ||||
|         <div class="item"> | ||||
|           <el-image :src="item.fileUrl"></el-image> | ||||
|           <span>{{ item.title }}</span> | ||||
|         </div> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     科研动态 | ||||
|   </chunk> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import loadConfig from '@/mixins/load-config' | ||||
| import Chunk from '../Chunk' | ||||
| 
 | ||||
| export default { | ||||
|   name: 'Research', | ||||
|   mixins: [loadConfig], | ||||
|   components: { Chunk } | ||||
| } | ||||
| </script> | ||||
| @ -1,23 +0,0 @@ | ||||
| <template> | ||||
|   <chunk class="team" theme="dark"> | ||||
|     <card-list | ||||
|       slot="body" | ||||
|       :data="Array.from(config)" | ||||
|       :column="3" | ||||
|       :image-height="280" | ||||
|     ></card-list> | ||||
|     科研团队 | ||||
|   </chunk> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import loadConfig from '@/mixins/load-config' | ||||
| import Chunk from '../Chunk' | ||||
| import CardList from '@/components/CardList' | ||||
| 
 | ||||
| export default { | ||||
|   name: 'Team', | ||||
|   components: { Chunk, CardList }, | ||||
|   mixins: [loadConfig] | ||||
| } | ||||
| </script> | ||||
| @ -1,5 +0,0 @@ | ||||
| export { default as Carousel } from './Carousel' | ||||
| export { default as Cooperation } from './Cooperation' | ||||
| export { default as News } from './News' | ||||
| export { default as Research } from './Research' | ||||
| export { default as Team } from './Team' | ||||
| @ -1,51 +0,0 @@ | ||||
| <template> | ||||
|   <div> | ||||
|     <app-header effect="transparent"></app-header> | ||||
|     <component | ||||
|       v-for="(item, index) in components" | ||||
|       :key="index" | ||||
|       :is="item" | ||||
|     ></component> | ||||
|     <app-footer></app-footer> | ||||
|   </div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import loadConfig from '@/mixins/load-config' | ||||
| import { AppHeader, AppFooter } from '@/layout/components' | ||||
| import { Carousel, Cooperation, News, Research, Team } from './components' | ||||
| import { queryComponents } from '@/api/component.js' | ||||
| 
 | ||||
| export default { | ||||
|   name: 'AppHome', | ||||
|   mixins: [loadConfig], | ||||
|   components: { | ||||
|     AppHeader, | ||||
|     AppFooter, | ||||
|     Carousel, | ||||
|     Cooperation, | ||||
|     News, | ||||
|     Research, | ||||
|     Team | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       components: [] | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|     getComponents() { | ||||
|       queryComponents().then(res => { | ||||
|         res.data.forEach(item => { | ||||
|           if (item.status) { | ||||
|             this.components.push(item.name) | ||||
|           } | ||||
|         }) | ||||
|       }) | ||||
|     } | ||||
|   }, | ||||
|   created() { | ||||
|     this.getComponents() | ||||
|   } | ||||
| } | ||||
| </script> | ||||