¶Ô±ÈÐÂÎļþ |
| | |
| | | > 1% |
| | | last 2 versions |
| | | not ie <= 10 |
¶Ô±ÈÐÂÎļþ |
| | |
| | | [*] |
| | | charset=utf-8 |
| | | end_of_line=lf |
| | | insert_final_newline=false |
| | | indent_style=space |
| | | indent_size=2 |
| | | |
| | | [{*.ng,*.sht,*.html,*.shtm,*.shtml,*.htm}] |
| | | indent_style=space |
| | | indent_size=2 |
| | | |
| | | [{*.jhm,*.xslt,*.xul,*.rng,*.xsl,*.xsd,*.ant,*.tld,*.fxml,*.jrxml,*.xml,*.jnlp,*.wsdl}] |
| | | indent_style=space |
| | | indent_size=2 |
| | | |
| | | [{.babelrc,.stylelintrc,jest.config,.eslintrc,.prettierrc,*.json,*.jsb3,*.jsb2,*.bowerrc}] |
| | | indent_style=space |
| | | indent_size=2 |
| | | |
| | | [*.svg] |
| | | indent_style=space |
| | | indent_size=2 |
| | | |
| | | [*.js.map] |
| | | indent_style=space |
| | | indent_size=2 |
| | | |
| | | [*.less] |
| | | indent_style=space |
| | | indent_size=2 |
| | | |
| | | [*.vue] |
| | | indent_style=space |
| | | indent_size=2 |
| | | |
| | | [{.analysis_options,*.yml,*.yaml}] |
| | | indent_style=space |
| | | indent_size=2 |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | NODE_ENV=production |
| | | VUE_APP_PREVIEW=true |
| | | VUE_APP_API_BASE_URL=http://localhost:7788 |
¶Ô±ÈÐÂÎļþ |
| | |
| | | NODE_ENV=development |
| | | VUE_APP_PREVIEW=true |
| | | VUE_APP_API_BASE_URL=http://localhost:7788 |
| | | VUE_APP_SOCKET_BASE_URL=http://localhost:7788 |
¶Ô±ÈÐÂÎļþ |
| | |
| | | NODE_ENV=production |
| | | VUE_APP_PREVIEW=false |
| | | VUE_APP_API_BASE_URL=http://localhost:7788 |
| | | VUE_APP_SOCKET_BASE_URL=http://localhost:7788 |
¶Ô±ÈÐÂÎļþ |
| | |
| | | module.exports = { |
| | | root: true, |
| | | env: { |
| | | node: true |
| | | }, |
| | | 'extends': [ |
| | | 'plugin:vue/strongly-recommended', |
| | | '@vue/standard' |
| | | ], |
| | | rules: { |
| | | 'no-console': 'off', |
| | | 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', |
| | | 'generator-star-spacing': 'off', |
| | | 'no-mixed-operators': 0, |
| | | 'vue/max-attributes-per-line': [ |
| | | 2, |
| | | { |
| | | 'singleline': 5, |
| | | 'multiline': { |
| | | 'max': 1, |
| | | 'allowFirstLine': false |
| | | } |
| | | } |
| | | ], |
| | | 'vue/attribute-hyphenation': 0, |
| | | 'vue/html-self-closing': 0, |
| | | 'vue/component-name-in-template-casing': 0, |
| | | 'vue/html-closing-bracket-spacing': 0, |
| | | 'vue/singleline-html-element-content-newline': 0, |
| | | 'vue/no-unused-components': 0, |
| | | 'vue/multiline-html-element-content-newline': 0, |
| | | 'vue/no-use-v-if-with-v-for': 0, |
| | | 'vue/html-closing-bracket-newline': 0, |
| | | 'vue/no-parsing-error': 0, |
| | | 'no-tabs': 0, |
| | | 'quotes': [ |
| | | 2, |
| | | 'single', |
| | | { |
| | | 'avoidEscape': true, |
| | | 'allowTemplateLiterals': true |
| | | } |
| | | ], |
| | | 'semi': [ |
| | | 2, |
| | | 'never', |
| | | { |
| | | 'beforeStatementContinuationChars': 'never' |
| | | } |
| | | ], |
| | | 'no-delete-var': 2, |
| | | 'prefer-const': [ |
| | | 2, |
| | | { |
| | | 'ignoreReadBeforeAssign': false |
| | | } |
| | | ], |
| | | 'template-curly-spacing': 'off', |
| | | 'indent': 'off', |
| | | "space-before-function-paren": 0, |
| | | 'no-multi-spaces': 2, //ä¸è½ç¨å¤ä½çç©ºæ ¼ |
| | | }, |
| | | parserOptions: { |
| | | parser: 'babel-eslint' |
| | | }, |
| | | overrides: [ |
| | | { |
| | | files: [ |
| | | '**/__tests__/*.{j,t}s?(x)', |
| | | '**/tests/unit/**/*.spec.{j,t}s?(x)' |
| | | ], |
| | | env: { |
| | | jest: true |
| | | } |
| | | } |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | node_modules/ |
| | | dist/ |
| | | .idea/ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "printWidth": 120, |
| | | "semi": false, |
| | | "singleQuote": true |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | language: node_js |
| | | node_js: |
| | | - 10.15.0 |
| | | cache: yarn |
| | | script: |
| | | - yarn |
| | | - yarn run lint --no-fix && yarn run build |
¶Ô±ÈÐÂÎļþ |
| | |
| | | FROM nginx |
| | | |
| | | COPY . /usr/share/nginx/html |
¶Ô±ÈÐÂÎļþ |
| | |
| | | MIT License |
| | | |
| | | Copyright (c) 2018 Anan Yang |
| | | |
| | | Permission is hereby granted, free of charge, to any person obtaining a copy |
| | | of this software and associated documentation files (the "Software"), to deal |
| | | in the Software without restriction, including without limitation the rights |
| | | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
| | | copies of the Software, and to permit persons to whom the Software is |
| | | furnished to do so, subject to the following conditions: |
| | | |
| | | The above copyright notice and this permission notice shall be included in all |
| | | copies or substantial portions of the Software. |
| | | |
| | | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
| | | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
| | | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
| | | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
| | | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
| | | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
| | | SOFTWARE. |
¶Ô±ÈÐÂÎļþ |
| | |
| | | const IS_PROD = ['production', 'prod'].includes(process.env.NODE_ENV) |
| | | |
| | | const plugins = [] |
| | | if (IS_PROD) { |
| | | plugins.push('transform-remove-console') |
| | | } |
| | | |
| | | // lazy load ant-design-vue |
| | | // if your use import on Demand, Use this code |
| | | plugins.push(['import', { |
| | | 'libraryName': 'ant-design-vue', |
| | | 'libraryDirectory': 'es', |
| | | 'style': true // `style: true` ä¼å è½½ less æä»¶ |
| | | }]) |
| | | |
| | | module.exports = { |
| | | presets: [ |
| | | [ |
| | | '@babel/preset-env', |
| | | { |
| | | 'useBuiltIns': 'entry', |
| | | 'corejs': 3 |
| | | } |
| | | ], |
| | | '@vue/cli-plugin-babel/preset' |
| | | ], |
| | | plugins |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | const ThemeColorReplacer = require('webpack-theme-color-replacer') |
| | | const generate = require('@ant-design/colors/lib/generate').default |
| | | |
| | | const getAntdSerials = (color) => { |
| | | // æ·¡åï¼å³lessçtintï¼ |
| | | const lightens = new Array(9).fill().map((t, i) => { |
| | | return ThemeColorReplacer.varyColor.lighten(color, i / 10) |
| | | }) |
| | | const colorPalettes = generate(color) |
| | | const rgb = ThemeColorReplacer.varyColor.toNum3(color.replace('#', '')).join(',') |
| | | return lightens.concat(colorPalettes).concat(rgb) |
| | | } |
| | | |
| | | const themePluginOption = { |
| | | fileName: 'css/theme-colors-[contenthash:8].css', |
| | | matchColors: getAntdSerials('#FA541C'), // 主è²ç³»å |
| | | // æ¹åæ ·å¼éæ©å¨ï¼è§£å³æ ·å¼è¦çé®é¢ |
| | | changeSelector (selector) { |
| | | switch (selector) { |
| | | case '.ant-calendar-today .ant-calendar-date': |
| | | return ':not(.ant-calendar-selected-date):not(.ant-calendar-selected-day)' + selector |
| | | case '.ant-btn:focus,.ant-btn:hover': |
| | | return '.ant-btn:focus:not(.ant-btn-primary):not(.ant-btn-danger),.ant-btn:hover:not(.ant-btn-primary):not(.ant-btn-danger)' |
| | | case '.ant-btn.active,.ant-btn:active': |
| | | return '.ant-btn.active:not(.ant-btn-primary):not(.ant-btn-danger),.ant-btn:active:not(.ant-btn-primary):not(.ant-btn-danger)' |
| | | case '.ant-steps-item-process .ant-steps-item-icon > .ant-steps-icon': |
| | | case '.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon': |
| | | return ':not(.ant-steps-item-process)' + selector |
| | | case '.ant-menu-horizontal>.ant-menu-item-active,.ant-menu-horizontal>.ant-menu-item-open,.ant-menu-horizontal>.ant-menu-item-selected,.ant-menu-horizontal>.ant-menu-item:hover,.ant-menu-horizontal>.ant-menu-submenu-active,.ant-menu-horizontal>.ant-menu-submenu-open,.ant-menu-horizontal>.ant-menu-submenu-selected,.ant-menu-horizontal>.ant-menu-submenu:hover': |
| | | case '.ant-menu-horizontal > .ant-menu-item-active,.ant-menu-horizontal > .ant-menu-item-open,.ant-menu-horizontal > .ant-menu-item-selected,.ant-menu-horizontal > .ant-menu-item:hover,.ant-menu-horizontal > .ant-menu-submenu-active,.ant-menu-horizontal > .ant-menu-submenu-open,.ant-menu-horizontal > .ant-menu-submenu-selected,.ant-menu-horizontal > .ant-menu-submenu:hover': |
| | | return '.ant-menu-horizontal > .ant-menu-item-active,.ant-menu-horizontal > .ant-menu-item-open,.ant-menu-horizontal > .ant-menu-item-selected,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item:hover,.ant-menu-horizontal > .ant-menu-submenu-active,.ant-menu-horizontal > .ant-menu-submenu-open,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-selected,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu:hover' |
| | | case '.ant-menu-horizontal > .ant-menu-item-selected > a': |
| | | case '.ant-menu-horizontal>.ant-menu-item-selected>a': |
| | | return '.ant-menu-horizontal:not(ant-menu-light):not(.ant-menu-dark) > .ant-menu-item-selected > a' |
| | | case '.ant-menu-horizontal > .ant-menu-item > a:hover': |
| | | case '.ant-menu-horizontal>.ant-menu-item>a:hover': |
| | | return '.ant-menu-horizontal:not(ant-menu-light):not(.ant-menu-dark) > .ant-menu-item > a:hover' |
| | | default : |
| | | return selector |
| | | } |
| | | } |
| | | } |
| | | |
| | | const createThemeColorReplacerPlugin = () => new ThemeColorReplacer(themePluginOption) |
| | | |
| | | module.exports = createThemeColorReplacerPlugin |
¶Ô±ÈÐÂÎļþ |
| | |
| | | version: '3.4' |
| | | |
| | | services: |
| | | nginx: |
| | | build: |
| | | context: ../ |
| | | dockerfile: ./docker/nginx/Dockerfile |
| | | image: admin_net_web:1.2 |
| | | ports: |
| | | - 81:80 |
| | | restart: "always" |
| | | volumes: |
| | | - node_modules:/build/node_modules:rw |
| | | # network_mode: host #宿主ç½ç»ï¼ä¸å®¿ä¸»æºå
±äº«ç½ç»ï¼å®å
¨æ§ä¸ä½³ï¼æ¬å°å¼å使ç¨ï¼æ·¦ï¼ä¸æ¯æwindowsï¼ä»
æ¯æLinux |
| | | volumes: |
| | | node_modules: |
¶Ô±ÈÐÂÎļþ |
| | |
| | | # build |
| | | FROM node:latest AS builder |
| | | |
| | | # 忢ç¼è¯ç®å½ |
| | | WORKDIR /build |
| | | COPY ./ ./ |
| | | # ç¼è¯é¡¹ç® æµè¯ |
| | | RUN yarn config set registry https://registry.npm.taobao.org/ \ |
| | | && yarn install \ |
| | | && yarn run build:development |
| | | |
| | | # ç¼è¯é¡¹ç® æ£å¼ |
| | | #RUN yarn config set registry https://registry.npm.taobao.org/ \ |
| | | # && yarn install \ |
| | | # && yarn run build |
| | | |
| | | # web |
| | | FROM nginx:alpine |
| | | |
| | | # æ¶åº |
| | | ENV TZ=Asia/Shanghai |
| | | RUN echo "http://mirrors.aliyun.com/alpine/v3.4/main/" > /etc/apk/repositories \ |
| | | && apk --no-cache add tzdata zeromq \ |
| | | && ln -snf /usr/share/zoneinfo/$TZ /etc/localtime \ |
| | | && echo '$TZ' > /etc/timezone |
| | | |
| | | COPY ./docker/nginx/logs /var/log/nginx |
| | | COPY ./docker/nginx/vhost /etc/nginx/conf.d/ |
| | | COPY ./docker/nginx/nginx.conf /etc/nginx/nginx.conf |
| | | |
| | | # æ·è´é¡¹ç® |
| | | COPY --from=builder /build/dist/ /var/www/html |
¶Ô±ÈÐÂÎļþ |
| | |
| | | user nginx; |
| | | worker_processes 1; |
| | | pid /var/run/nginx.pid; |
| | | error_log /var/log/nginx/nginx.error.log warn; |
| | | events { |
| | | worker_connections 1024; |
| | | } |
| | | http { |
| | | include /etc/nginx/mime.types; |
| | | default_type application/octet-stream; |
| | | log_format main '$remote_addr - $remote_user [$time_local] "$request" ' |
| | | '$status $body_bytes_sent "$http_referer" ' |
| | | '"$http_user_agent" "$http_x_forwarded_for"'; |
| | | access_log /dev/null; |
| | | #access_log /var/log/nginx/nginx.access.log main; |
| | | sendfile on; |
| | | #tcp_nopush on; |
| | | keepalive_timeout 65; |
| | | #gzip on; |
| | | include /etc/nginx/conf.d/*.conf; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | server { |
| | | listen 80; |
| | | server_name localhost; |
| | | root /var/www/html; |
| | | index index.php index.html index.htm; |
| | | access_log /dev/null; |
| | | error_log /var/log/nginx/default.error.log warn; |
| | | |
| | | # redirect server error pages to the static page /50x.html |
| | | # |
| | | #error_page 500 502 503 504 /50x.html; |
| | | |
| | | location / { |
| | | root /var/www/html; |
| | | add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0'; |
| | | try_files $uri $uri/ /index.html; |
| | | } |
| | | |
| | | |
| | | location /api { |
| | | #妿æå¡å¨è¦è·å客æ·ç«¯çå®IPï¼å¯ä»¥ç¨ä¸ä¸å¥è®¾ç½®ä¸»æºå¤´å客æ·ç«¯çå®å°å |
| | | proxy_set_header Host $http_host; |
| | | proxy_set_header X-Real-IP $remote_addr; |
| | | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
| | | proxy_set_header X-Forwarded-Proto $scheme; |
| | | rewrite ^/api/(.*)$ /$1 break; #éå |
| | | proxy_pass http://host.docker.internal:5566; # dockerå
访é®å®¿ä¸»æºï¼winæmacï¼----注æï¼å®¿ä¸»æºéå¨hostsæä»¶ä¸å¢å 䏿¡ host.docker.internal 127.0.0.1 |
| | | # proxy_pass http://host.docker.internal:5566; # ç产ç¯å¢æ¹æçå®å端å°å |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | module.exports = { |
| | | moduleFileExtensions: [ |
| | | 'js', |
| | | 'jsx', |
| | | 'json', |
| | | 'vue' |
| | | ], |
| | | transform: { |
| | | '^.+\\.vue$': 'vue-jest', |
| | | '.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$': 'jest-transform-stub', |
| | | '^.+\\.jsx?$': 'babel-jest' |
| | | }, |
| | | moduleNameMapper: { |
| | | '^@/(.*)$': '<rootDir>/src/$1' |
| | | }, |
| | | snapshotSerializers: [ |
| | | 'jest-serializer-vue' |
| | | ], |
| | | testMatch: [ |
| | | '**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)' |
| | | ], |
| | | testURL: 'http://localhost/' |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "compilerOptions": { |
| | | "target": "es6", |
| | | "baseUrl": ".", |
| | | "paths": { |
| | | "@/*": ["src/*"] |
| | | } |
| | | }, |
| | | "exclude": ["node_modules", "dist"], |
| | | "include": ["src/**/*"] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "name": "vue-antd-pro", |
| | | "version": "3.0.0", |
| | | "private": true, |
| | | "scripts": { |
| | | "serve": "vue-cli-service serve", |
| | | "build": "vue-cli-service build", |
| | | "servenew": "set NODE_OPTIONS=--openssl-legacy-provider & vue-cli-service serve", |
| | | "buildnew": "set NODE_OPTIONS=--openssl-legacy-provider & vue-cli-service build", |
| | | "test:unit": "vue-cli-service test:unit", |
| | | "build:preview": "vue-cli-service build --mode preview", |
| | | "postinstall": "opencollective-postinstall" |
| | | }, |
| | | "dependencies": { |
| | | "@antv/data-set": "^0.10.2", |
| | | "@jiaminghi/data-view": "^2.10.0", |
| | | "@microsoft/signalr": "^5.0.5", |
| | | "ant-design-vue": "1.7.8", |
| | | "axios": "^0.19.0", |
| | | "babel-polyfill": "^6.26.0", |
| | | "clipboard": "^2.0.6", |
| | | "compression-webpack-plugin": "5.0.1", |
| | | "core-js": "^3.1.2", |
| | | "crypto-js": "^4.0.0", |
| | | "default-passive-events": "^1.0.10", |
| | | "echarts": "^5.4.0", |
| | | "enquire.js": "^2.1.6", |
| | | "font-awesome": "^4.7.0", |
| | | "jquery": "^3.5.1", |
| | | "jsbarcode": "^3.11.3", |
| | | "jsplumb": "^2.15.6", |
| | | "k-form-design": "^3.8.11", |
| | | "leaflet": "^1.7.1", |
| | | "leaflet.pm": "^2.2.0", |
| | | "linq": "^3.2.3", |
| | | "lodash.clonedeep": "^4.5.0", |
| | | "lodash.get": "^4.4.2", |
| | | "lodash.pick": "^4.4.0", |
| | | "md5": "^2.2.1", |
| | | "mockjs2": "1.0.8", |
| | | "moment": "^2.24.0", |
| | | "nprogress": "^0.2.0", |
| | | "print-js": "^1.0.63", |
| | | "raphael": "^2.3.0", |
| | | "screenfull": "^5.1.0", |
| | | "viser-vue": "^2.4.6", |
| | | "vue": "^2.6.10", |
| | | "vue-clipboard2": "^0.2.1", |
| | | "vue-codemirror-lite": "^1.0.4", |
| | | "vue-cropper": "0.4.9", |
| | | "vue-ls": "^3.2.1", |
| | | "vue-quill-editor": "^3.0.6", |
| | | "vue-router": "^3.1.2", |
| | | "vue-svg-component-runtime": "^1.0.1", |
| | | "vue2-leaflet": "^2.7.0", |
| | | "vuedraggable": "^2.23.2", |
| | | "vuex": "^3.1.1", |
| | | "wangeditor": "^3.1.1" |
| | | }, |
| | | "devDependencies": { |
| | | "@ant-design/colors": "^3.2.1", |
| | | "@vue/cli-plugin-babel": "^4.0.4", |
| | | "@vue/cli-plugin-eslint": "^4.0.4", |
| | | "@vue/cli-plugin-router": "^4.0.4", |
| | | "@vue/cli-plugin-unit-jest": "^4.0.4", |
| | | "@vue/cli-plugin-vuex": "^4.0.4", |
| | | "@vue/cli-service": "^4.0.4", |
| | | "@vue/eslint-config-prettier": "^5.0.0", |
| | | "@vue/eslint-config-standard": "^4.0.0", |
| | | "@vue/test-utils": "^1.0.0-beta.29", |
| | | "babel-eslint": "^10.0.1", |
| | | "babel-plugin-import": "^1.13.0", |
| | | "babel-plugin-transform-remove-console": "^6.9.4", |
| | | "eslint": "^6.8.0", |
| | | "eslint-plugin-html": "^5.0.0", |
| | | "eslint-plugin-prettier": "^3.1.0", |
| | | "eslint-plugin-vue": "^5.2.3", |
| | | "less": "^3.0.4", |
| | | "less-loader": "^5.0.0", |
| | | "opencollective": "^1.0.3", |
| | | "opencollective-postinstall": "^2.0.2", |
| | | "prettier": "^1.18.2", |
| | | "vue-svg-icon-loader": "^2.1.1", |
| | | "vue-template-compiler": "^2.6.10", |
| | | "webpack": "^4.46.0", |
| | | "webpack-theme-color-replacer": "1.3.18" |
| | | }, |
| | | "collective": { |
| | | "type": "opencollective", |
| | | "url": "https://opencollective.com/ant-design-pro-vue" |
| | | }, |
| | | "main": ".eslintrc.js", |
| | | "directories": { |
| | | "test": "tests" |
| | | }, |
| | | "keywords": [], |
| | | "author": "", |
| | | "license": "ISC", |
| | | "description": "" |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | module.exports = { |
| | | plugins: { |
| | | autoprefixer: {} |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <!DOCTYPE html> |
| | | <html lang="zh-cmn-Hans"> |
| | | <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>éæ±½WMS</title> |
| | | <style>.first-loading-wrp{display:flex;justify-content:center;align-items:center;flex-direction:column;min-height:420px;height:100%}.first-loading-wrp>h1{font-size:128px}.first-loading-wrp .loading-wrp{padding:98px;display:flex;justify-content:center;align-items:center}.dot{animation:antRotate 1.2s infinite linear;transform:rotate(45deg);position:relative;display:inline-block;font-size:32px;width:32px;height:32px;box-sizing:border-box}.dot i{width:14px;height:14px;position:absolute;display:block;background-color:#1890ff;border-radius:100%;transform:scale(.75);transform-origin:50% 50%;opacity:.3;animation:antSpinMove 1s infinite linear alternate}.dot i:nth-child(1){top:0;left:0}.dot i:nth-child(2){top:0;right:0;-webkit-animation-delay:.4s;animation-delay:.4s}.dot i:nth-child(3){right:0;bottom:0;-webkit-animation-delay:.8s;animation-delay:.8s}.dot i:nth-child(4){bottom:0;left:0;-webkit-animation-delay:1.2s;animation-delay:1.2s}@keyframes antRotate{to{-webkit-transform:rotate(405deg);transform:rotate(405deg)}}@-webkit-keyframes antRotate{to{-webkit-transform:rotate(405deg);transform:rotate(405deg)}}@keyframes antSpinMove{to{opacity:1}}@-webkit-keyframes antSpinMove{to{opacity:1}}</style> |
| | | <!-- require cdn assets css --> |
| | | <% for (var i in htmlWebpackPlugin.options.cdn && htmlWebpackPlugin.options.cdn.css) { %> |
| | | <link rel="stylesheet" href="<%= htmlWebpackPlugin.options.cdn.css[i] %>" /> |
| | | <% } %> |
| | | </head> |
| | | <body> |
| | | <noscript> |
| | | <strong>We're sorry but vue-antd-pro doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> |
| | | </noscript> |
| | | <div id="app"> |
| | | <div class="first-loading-wrp"> |
| | | <!-- <h1>Admin.NET</h1> --> |
| | | <div class="loading-wrp"> |
| | | <span class="dot dot-spin"><i></i><i></i><i></i><i></i></span> |
| | | </div> |
| | | <div style="display: flex; justify-content: center; align-items: center;">éæ±½WMS</div> |
| | | </div> |
| | | </div> |
| | | <!-- require cdn assets js --> |
| | | <% for (var i in htmlWebpackPlugin.options.cdn && htmlWebpackPlugin.options.cdn.js) { %> |
| | | <script src="<%= htmlWebpackPlugin.options.cdn.js[i] %>"></script> |
| | | <% } %> |
| | | <!-- built files will be auto injected --> |
| | | </body> |
| | | </html> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | #preloadingAnimation{position:fixed;left:0;top:0;height:100%;width:100%;background:#ffffff;user-select:none;z-index: 9999;overflow: hidden}.lds-roller{display:inline-block;position:relative;left:50%;top:50%;transform:translate(-50%,-50%);width:64px;height:64px;}.lds-roller div{animation:lds-roller 1.2s cubic-bezier(0.5,0,0.5,1) infinite;transform-origin:32px 32px;}.lds-roller div:after{content:" ";display:block;position:absolute;width:6px;height:6px;border-radius:50%;background:#13c2c2;margin:-3px 0 0 -3px;}.lds-roller div:nth-child(1){animation-delay:-0.036s;}.lds-roller div:nth-child(1):after{top:50px;left:50px;}.lds-roller div:nth-child(2){animation-delay:-0.072s;}.lds-roller div:nth-child(2):after{top:54px;left:45px;}.lds-roller div:nth-child(3){animation-delay:-0.108s;}.lds-roller div:nth-child(3):after{top:57px;left:39px;}.lds-roller div:nth-child(4){animation-delay:-0.144s;}.lds-roller div:nth-child(4):after{top:58px;left:32px;}.lds-roller div:nth-child(5){animation-delay:-0.18s;}.lds-roller div:nth-child(5):after{top:57px;left:25px;}.lds-roller div:nth-child(6){animation-delay:-0.216s;}.lds-roller div:nth-child(6):after{top:54px;left:19px;}.lds-roller div:nth-child(7){animation-delay:-0.252s;}.lds-roller div:nth-child(7):after{top:50px;left:14px;}.lds-roller div:nth-child(8){animation-delay:-0.288s;}.lds-roller div:nth-child(8):after{top:45px;left:10px;}#preloadingAnimation .load-tips{color: #13c2c2;font-size:2rem;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin-top:80px;text-align:center;width:400px;height:64px;} @keyframes lds-roller{0%{transform:rotate(0deg);} 100%{transform:rotate(360deg);}} |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <div id="preloadingAnimation"><div class=lds-roller><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div></div><div class=load-tips>Loading</div></div> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <div class="preloading-animate"> |
| | | <div class="preloading-wrapper"> |
| | | <svg class="preloading-balls" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid"><circle cx="67.802" cy="59.907" r="6" fill="#51CACC"><animate attributeName="cx" values="75;57.72542485937369" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="cy" values="50;73.77641290737884" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="fill" values="#51CACC;#9DF871" keyTimes="0;1" dur="1s" repeatCount="indefinite"/></circle><circle cx="46.079" cy="69.992" r="6" fill="#9DF871"><animate attributeName="cx" values="57.72542485937369;29.774575140626318" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="cy" values="73.77641290737884;64.69463130731182" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="fill" values="#9DF871;#E0FF77" keyTimes="0;1" dur="1s" repeatCount="indefinite"/></circle><circle cx="29.775" cy="52.449" r="6" fill="#E0FF77"><animate attributeName="cx" values="29.774575140626318;29.774575140626315" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="cy" values="64.69463130731182;35.30536869268818" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="fill" values="#E0FF77;#DE9DD6" keyTimes="0;1" dur="1s" repeatCount="indefinite"/></circle><circle cx="41.421" cy="31.521" r="6" fill="#DE9DD6"><animate attributeName="cx" values="29.774575140626315;57.72542485937368" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="cy" values="35.30536869268818;26.22358709262116" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="fill" values="#DE9DD6;#FF708E" keyTimes="0;1" dur="1s" repeatCount="indefinite"/></circle><circle cx="64.923" cy="36.13" r="6" fill="#FF708E"><animate attributeName="cx" values="57.72542485937368;75" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="cy" values="26.22358709262116;49.99999999999999" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="fill" values="#FF708E;#51CACC" keyTimes="0;1" dur="1s" repeatCount="indefinite"/></circle></svg> |
| | | </div> |
| | | </div> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | .preloading-animate{background:#ffffff;width:100%;height:100%;position:fixed;left:0;top:0;z-index:299;}.preloading-animate .preloading-wrapper{position:absolute;width:5rem;height:5rem;left:50%;top:50%;transform:translate(-50%,-50%);}.preloading-animate .preloading-wrapper .preloading-balls{font-size:5rem;} |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <svg class="preloading-balls" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid"><circle cx="67.802" cy="59.907" r="6" fill="#51CACC"><animate attributeName="cx" values="75;57.72542485937369" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="cy" values="50;73.77641290737884" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="fill" values="#51CACC;#9DF871" keyTimes="0;1" dur="1s" repeatCount="indefinite"/></circle><circle cx="46.079" cy="69.992" r="6" fill="#9DF871"><animate attributeName="cx" values="57.72542485937369;29.774575140626318" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="cy" values="73.77641290737884;64.69463130731182" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="fill" values="#9DF871;#E0FF77" keyTimes="0;1" dur="1s" repeatCount="indefinite"/></circle><circle cx="29.775" cy="52.449" r="6" fill="#E0FF77"><animate attributeName="cx" values="29.774575140626318;29.774575140626315" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="cy" values="64.69463130731182;35.30536869268818" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="fill" values="#E0FF77;#DE9DD6" keyTimes="0;1" dur="1s" repeatCount="indefinite"/></circle><circle cx="41.421" cy="31.521" r="6" fill="#DE9DD6"><animate attributeName="cx" values="29.774575140626315;57.72542485937368" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="cy" values="35.30536869268818;26.22358709262116" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="fill" values="#DE9DD6;#FF708E" keyTimes="0;1" dur="1s" repeatCount="indefinite"/></circle><circle cx="64.923" cy="36.13" r="6" fill="#FF708E"><animate attributeName="cx" values="57.72542485937368;75" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="cy" values="26.22358709262116;49.99999999999999" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="fill" values="#FF708E;#51CACC" keyTimes="0;1" dur="1s" repeatCount="indefinite"/></circle></svg> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-config-provider :locale="locale"> |
| | | <div id="app" class="app app1"> |
| | | <router-view class="scrollbar"/> |
| | | </div> |
| | | </a-config-provider> |
| | | </template> |
| | | |
| | | <script> |
| | | import zhCN from 'ant-design-vue/lib/locale-provider/zh_CN' |
| | | import { AppDeviceEnquire } from '@/utils/mixin' |
| | | |
| | | export default { |
| | | mixins: [AppDeviceEnquire], |
| | | data () { |
| | | return { |
| | | locale: zhCN |
| | | } |
| | | }, |
| | | mounted () { |
| | | |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="less"> |
| | | .app { |
| | | overflow: auto; |
| | | border : none; |
| | | } |
| | | .scrollbar { |
| | | margin: 0 auto; |
| | | } |
| | | .app1::-webkit-scrollbar { |
| | | /*æ»å¨æ¡æ´ä½æ ·å¼*/ |
| | | width : 8px; /*é«å®½åå«å¯¹åºæ¨ªç«æ»å¨æ¡ç尺寸*/ |
| | | } |
| | | .app1::-webkit-scrollbar-thumb { |
| | | /*æ»å¨æ¡éé¢å°æ¹å*/ |
| | | border-radius: 6px; |
| | | background : #aaa; |
| | | } |
| | | .app1::-webkit-scrollbar-track { |
| | | /*æ»å¨æ¡éé¢è½¨é*/ |
| | | border-radius: 8px; |
| | | background : #FFFFFF; |
| | | } |
| | | .weiben-private-drawer { |
| | | .ant-drawer-wrapper-body{ |
| | | display:flex; |
| | | flex-direction: column; |
| | | .ant-drawer-header{ |
| | | flex-shrink: 0; |
| | | } |
| | | .ant-drawer-body{ |
| | | padding:0; |
| | | flex-grow: 1; |
| | | } |
| | | } |
| | | .ant-spin-nested-loading,.ant-spin-container{ |
| | | height:100%; |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /** |
| | | * 代ç çæ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/12/23 15:00 |
| | | */ |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢å表 |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/12/23 15:00 |
| | | */ |
| | | export function codeGeneratePage (parameter) { |
| | | return axios({ |
| | | url: '/codeGenerate/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å¢å |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/12/23 15:00 |
| | | */ |
| | | export function codeGenerateAdd (parameter) { |
| | | return axios({ |
| | | url: '/codeGenerate/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/12/23 15:00 |
| | | */ |
| | | export function codeGenerateEdit (parameter) { |
| | | return axios({ |
| | | url: '/codeGenerate/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/12/23 15:00 |
| | | */ |
| | | export function codeGenerateDelete (parameter) { |
| | | return axios({ |
| | | url: '/codeGenerate/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ¥è¯¢å½åæ°æ®åºç¨æ·ä¸çææåº |
| | | * |
| | | * @author fuqiang |
| | | * @date 2021/10/13 15:00 |
| | | */ |
| | | export function codeGenerateDatabaseList (parameter) { |
| | | return axios({ |
| | | url: '/codeGenerate/DatabaseList', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ¥è¯¢å½åæ°æ®åºç¨æ·ä¸çææè¡¨ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/12/23 15:00 |
| | | */ |
| | | export function codeGenerateInformationList (parameter) { |
| | | return axios({ |
| | | url: '/codeGenerate/InformationList', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ ¹æ®åºå表åè·åå |
| | | * |
| | | * @author fuqiang 20211014 |
| | | * @param {*} databaseName åºå |
| | | * @param {*} tableName 表å |
| | | * @return {*} |
| | | */ |
| | | export function codeGenerateColumnList (databaseName,tableName) { |
| | | return axios({ |
| | | url: `/codeGenerate/ColumnList/${databaseName}/${tableName}`, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ¬å°çæ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/12/23 15:00 |
| | | */ |
| | | export function codeGenerateRunLocal (parameter) { |
| | | return axios({ |
| | | url: '/codeGenerate/runLocal', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å缩å
æ¹å¼ä¸è½½ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/12/23 15:00 |
| | | */ |
| | | export function codeGenerateRunDown (parameter) { |
| | | return axios({ |
| | | url: '/codeGenerate/runDown', |
| | | method: 'get', |
| | | params: parameter, |
| | | responseType: 'blob' |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å·æ°é
置表 |
| | | * |
| | | * @author lanhuxing |
| | | * @date 2022/05/08 15:00 |
| | | */ |
| | | export function codeGenerateRefresh (id) { |
| | | return axios({ |
| | | url: '/codeGenerate/refresh/' + id, |
| | | method: 'get' |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /** |
| | | * ä½ä»£ç 管ç |
| | | * |
| | | * @author lanhuxing |
| | | * @date 2022/05/02 17:30 |
| | | */ |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢å表 |
| | | * |
| | | * @author lanhuxing |
| | | * @date 2022/05/02 17:30 |
| | | */ |
| | | export function lowCodePage (parameter) { |
| | | return axios({ |
| | | url: '/lowcode/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å¢å |
| | | * |
| | | * @author lanhuxing |
| | | * @date 2022/05/02 17:30 |
| | | */ |
| | | export function lowCodeAdd (parameter) { |
| | | return axios({ |
| | | url: '/lowcode/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾ |
| | | * |
| | | * @author lanhuxing |
| | | * @date 2022/05/02 17:30 |
| | | */ |
| | | export function lowCodeEdit (parameter) { |
| | | return axios({ |
| | | url: '/lowcode/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤ |
| | | * |
| | | * @author lanhuxing |
| | | * @date 2022/05/02 17:30 |
| | | */ |
| | | export function lowCodeDelete (parameter) { |
| | | return axios({ |
| | | url: '/lowcode/del', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç»ä»¶è½¬æ¢æ°æ®åºå段 |
| | | * |
| | | * @author lanhuxing |
| | | * @date 2022/05/02 17:30 |
| | | */ |
| | | export function lowCodeContrast (parameter) { |
| | | return axios({ |
| | | url: '/lowcode/contrast', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·åç»ä»¶è¯¦æ
|
| | | * |
| | | * @author lanhuxing |
| | | * @date 2022/05/02 17:30 |
| | | */ |
| | | export function lowCodeInfo (id) { |
| | | return axios({ |
| | | url: '/lowcode/info/' + id, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * çæORM模å |
| | | * |
| | | * @author lanhuxing |
| | | * @date 2022/05/02 17:30 |
| | | */ |
| | | export function lowCodeRunLocal (id) { |
| | | return axios({ |
| | | url: '/lowcode/runLocal/' + id, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * 代ç çæè¯¦ç»é
ç½®å表 |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2021-02-06 20:19:49 |
| | | */ |
| | | export function sysCodeGenerateConfigList (parameter) { |
| | | return axios({ |
| | | url: '/sysCodeGenerateConfig/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾ä»£ç çæè¯¦ç»é
ç½® |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2021-02-06 20:19:49 |
| | | */ |
| | | export function sysCodeGenerateConfigEdit (parameter) { |
| | | return axios({ |
| | | url: '/sysCodeGenerateConfig/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢ç»çå
¥åº |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function BindEntrancePage (parameter) { |
| | | return axios({ |
| | | url: '/BindEntrance/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç»çå
¥åºå表 |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function BindEntranceList (parameter) { |
| | | return axios({ |
| | | url: '/BindEntrance/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æå¨å
¥åº |
| | | * |
| | | * @author yhh |
| | | */ |
| | | export function BindEntranceManualWare (parameter) { |
| | | return axios({ |
| | | url: '/BindEntrance/ManualWare', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * èªå¨å
¥åº |
| | | * |
| | | * @author yhh |
| | | */ |
| | | export function BindEntranceAutoWare (parameter) { |
| | | return axios({ |
| | | url: '/BindEntrance/AutoWare', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·åæçä¿¡æ¯ |
| | | * |
| | | * @author yhh |
| | | */ |
| | | export function BindEntranceGetContainer (parameter) { |
| | | return axios({ |
| | | url: '/BindEntrance/GetContainer', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·åç©æä¿¡æ¯ |
| | | * |
| | | * @author yhh |
| | | */ |
| | | export function BindEntranceGetMaterial (parameter) { |
| | | return axios({ |
| | | url: '/BindEntrance/GetMaterial', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç»çæ¥å£ |
| | | * |
| | | * @author yhh |
| | | */ |
| | | export function BindAction (parameter) { |
| | | return axios({ |
| | | url: '/BindEntrance/BindEntrance', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç§»åº |
| | | * |
| | | * @author yhh |
| | | */ |
| | | export function BindEntranceTransfer (parameter) { |
| | | return axios({ |
| | | url: '/BindEntrance/StockTransfer', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·ååºåºãå
¥åºå£ä¸æå表 |
| | | * |
| | | * @author yhh |
| | | */ |
| | | export function BindEntranceGetSelects () { |
| | | return axios({ |
| | | url: '/BindEntrance/GetEntrance', |
| | | method: 'get' |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢åºå表 |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function WmsMaterialStockPage (parameter) { |
| | | return axios({ |
| | | url: '/iexwarehouse/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æå¨åºåº |
| | | * |
| | | * @author yhh |
| | | */ |
| | | export function IexwarehouseManual (parameter) { |
| | | return axios({ |
| | | url: '/iexwarehouse/ManualWare', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * èªå¨åºåº |
| | | * |
| | | * @author yhh |
| | | */ |
| | | export function IexwarehouseAuto (parameter) { |
| | | return axios({ |
| | | url: '/iexwarehouse/AutoWare', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ¥è¯¢æå¨ç§»åºç©ºåºä½ |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function GetMoveLocation (parameter) { |
| | | return axios({ |
| | | url: '/iexwarehouse/GetRemoveLocation', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç§»åº |
| | | * |
| | | * @author yhh |
| | | */ |
| | | export function MovewarehouseManual (parameter) { |
| | | return axios({ |
| | | url: '/iexwarehouse/MoveWare', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å
¥åº |
| | | * |
| | | * @author yhh |
| | | */ |
| | | export function InwarehouseManual (parameter) { |
| | | return axios({ |
| | | url: '/iexwarehouse/AutoInWare', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * è·ååºåºå表 |
| | | * |
| | | * @author yhh |
| | | */ |
| | | export function GetArea () { |
| | | return axios({ |
| | | url: '/LocationView/GetArea', |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ ¹æ®åºåºè·åæå表 |
| | | * |
| | | * @author yhh |
| | | */ |
| | | export function GetPalceRowno (parameter) { |
| | | return axios({ |
| | | url: '/LocationView/GetPalceRowno', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·åä¸ä¸ªæä¸çåºä½å表 |
| | | * |
| | | * @author yhh |
| | | */ |
| | | export function GetPalceList (parameter) { |
| | | return axios({ |
| | | url: '/LocationView/GetPalceList', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·ååºåºè¯¦æ
|
| | | * |
| | | * @author yhh |
| | | */ |
| | | export function GetLocationDetail (parameter) { |
| | | return axios({ |
| | | url: '/LocationView/GetMaterialDetail', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ´æ°åºä½éå®ç¶æ |
| | | * |
| | | * @author yhh |
| | | */ |
| | | export function UpdateLock (parameter) { |
| | | return axios({ |
| | | url: '/LocationView/UpdatePalceIslock', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /** æ¨çä¸å¡æ¥å£æä»¶å
¨å卿¤æä»¶å¤¹ä¸é¢ï¼å级åºåº§ç´æ¥è¿ç§»ä»£ç å³å¯ **/ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢ç§æ·è¡¨ |
| | | * |
| | | * @author èçæ |
| | | */ |
| | | export function SysTenantPage (parameter) { |
| | | return axios({ |
| | | url: '/SysTenant/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç§æ·è¡¨å表 |
| | | * |
| | | * @author èçæ |
| | | */ |
| | | export function SysTenantList (parameter) { |
| | | return axios({ |
| | | url: '/SysTenant/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å ç§æ·è¡¨ |
| | | * |
| | | * @author èçæ |
| | | */ |
| | | export function SysTenantAdd (parameter) { |
| | | return axios({ |
| | | url: '/SysTenant/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾ç§æ·è¡¨ |
| | | * |
| | | * @author èçæ |
| | | */ |
| | | export function SysTenantEdit (parameter) { |
| | | return axios({ |
| | | url: '/SysTenant/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤ç§æ·è¡¨ |
| | | * |
| | | * @author èçæ |
| | | */ |
| | | export function SysTenantDelete (parameter) { |
| | | return axios({ |
| | | url: '/SysTenant/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢åºå
¥åºè®°å½ |
| | | * |
| | | * @author lidunanping |
| | | */ |
| | | export function View_AccessDetailsPage (parameter) { |
| | | return axios({ |
| | | url: '/View_AccessDetails/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * åºå
¥åºè®°å½å表 |
| | | * |
| | | * @author lidunanping |
| | | */ |
| | | export function View_AccessDetailsList (parameter) { |
| | | return axios({ |
| | | url: '/View_AccessDetails/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å åºå
¥åºè®°å½ |
| | | * |
| | | * @author lidunanping |
| | | */ |
| | | export function View_AccessDetailsAdd (parameter) { |
| | | return axios({ |
| | | url: '/View_AccessDetails/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾åºå
¥åºè®°å½ |
| | | * |
| | | * @author lidunanping |
| | | */ |
| | | export function View_AccessDetailsEdit (parameter) { |
| | | return axios({ |
| | | url: '/View_AccessDetails/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤åºå
¥åºè®°å½ |
| | | * |
| | | * @author lidunanping |
| | | */ |
| | | export function View_AccessDetailsDelete (parameter) { |
| | | return axios({ |
| | | url: '/View_AccessDetails/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢ç»ç管ç |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WareContainerVsMaterialPage (parameter) { |
| | | return axios({ |
| | | url: '/WareContainerVsMaterial/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç»ç管çå表 |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WareContainerVsMaterialList (parameter) { |
| | | return axios({ |
| | | url: '/WareContainerVsMaterial/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å ç»ç管ç |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WareContainerVsMaterialAdd (parameter) { |
| | | return axios({ |
| | | url: '/WareContainerVsMaterial/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾ç»ç管ç |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WareContainerVsMaterialEdit (parameter) { |
| | | return axios({ |
| | | url: '/WareContainerVsMaterial/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤ç»ç管ç |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WareContainerVsMaterialDelete (parameter) { |
| | | return axios({ |
| | | url: '/WareContainerVsMaterial/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢è®¾å¤æ¥è¦è®°å½ |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WareDeviceWarningPage (parameter) { |
| | | return axios({ |
| | | url: '/WareDeviceWarning/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è®¾å¤æ¥è¦è®°å½å表 |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WareDeviceWarningList (parameter) { |
| | | return axios({ |
| | | url: '/WareDeviceWarning/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å è®¾å¤æ¥è¦è®°å½ |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WareDeviceWarningAdd (parameter) { |
| | | return axios({ |
| | | url: '/WareDeviceWarning/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾è®¾å¤æ¥è¦è®°å½ |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WareDeviceWarningEdit (parameter) { |
| | | return axios({ |
| | | url: '/WareDeviceWarning/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤è®¾å¤æ¥è¦è®°å½ |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WareDeviceWarningDelete (parameter) { |
| | | return axios({ |
| | | url: '/WareDeviceWarning/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢è®°å½æµæ°´ç®¡ç |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WareFlowRecordPage (parameter) { |
| | | return axios({ |
| | | url: '/WareFlowRecord/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è®°å½æµæ°´ç®¡çå表 |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WareFlowRecordList (parameter) { |
| | | return axios({ |
| | | url: '/WareFlowRecord/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å è®°å½æµæ°´ç®¡ç |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WareFlowRecordAdd (parameter) { |
| | | return axios({ |
| | | url: '/WareFlowRecord/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾è®°å½æµæ°´ç®¡ç |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WareFlowRecordEdit (parameter) { |
| | | return axios({ |
| | | url: '/WareFlowRecord/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤è®°å½æµæ°´ç®¡ç |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WareFlowRecordDelete (parameter) { |
| | | return axios({ |
| | | url: '/WareFlowRecord/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢ç«ç¹ä¿¡æ¯ |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WareSitePage (parameter) { |
| | | return axios({ |
| | | url: '/WareSite/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç«ç¹ä¿¡æ¯å表 |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WareSiteList (parameter) { |
| | | return axios({ |
| | | url: '/WareSite/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å ç«ç¹ä¿¡æ¯ |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WareSiteAdd (parameter) { |
| | | return axios({ |
| | | url: '/WareSite/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾ç«ç¹ä¿¡æ¯ |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WareSiteEdit (parameter) { |
| | | return axios({ |
| | | url: '/WareSite/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤ç«ç¹ä¿¡æ¯ |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WareSiteDelete (parameter) { |
| | | return axios({ |
| | | url: '/WareSite/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢åå²ä»»å¡è®°å½ |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WareTaskBakPage (parameter) { |
| | | return axios({ |
| | | url: '/WareTaskBakService/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * åå²ä»»å¡è®°å½å表 |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WareTaskBakList (parameter) { |
| | | return axios({ |
| | | url: '/WareTaskBakService/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å åå²ä»»å¡è®°å½ |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WareTaskBakAdd (parameter) { |
| | | return axios({ |
| | | url: '/WareTaskBakService/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾åå²ä»»å¡è®°å½ |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WareTaskBakEdit (parameter) { |
| | | return axios({ |
| | | url: '/WareTaskBakService/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤åå²ä»»å¡è®°å½ |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WareTaskBakDelete (parameter) { |
| | | return axios({ |
| | | url: '/WareTaskBakService/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * åå²ä»»å¡ç©æè¯¦æ
|
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WareTaskBakDetail (parameter) { |
| | | return axios({ |
| | | url: '/WareTaskBakService/details', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢åºåºä¿¡æ¯ |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function WmsAreaPage (parameter) { |
| | | return axios({ |
| | | url: '/WmsArea/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * åºåºä¿¡æ¯å表 |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function WmsAreaList (parameter) { |
| | | return axios({ |
| | | url: '/WmsArea/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å åºåºä¿¡æ¯ |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function WmsAreaAdd (parameter) { |
| | | return axios({ |
| | | url: '/WmsArea/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾åºåºä¿¡æ¯ |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function WmsAreaEdit (parameter) { |
| | | return axios({ |
| | | url: '/WmsArea/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤åºåºä¿¡æ¯ |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function WmsAreaDelete (parameter) { |
| | | return axios({ |
| | | url: '/WmsArea/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢æçä¿¡æ¯ |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function WmsContainerPage (parameter) { |
| | | return axios({ |
| | | url: '/WmsContainerService/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æçä¿¡æ¯å表 |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function WmsContainerList (parameter) { |
| | | return axios({ |
| | | url: '/WmsContainerService/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å æçä¿¡æ¯ |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function WmsContainerAdd (parameter) { |
| | | return axios({ |
| | | url: '/WmsContainerService/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾æçä¿¡æ¯ |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function WmsContainerEdit (parameter) { |
| | | return axios({ |
| | | url: '/WmsContainerService/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å 餿çä¿¡æ¯ |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function WmsContainerDelete (parameter) { |
| | | return axios({ |
| | | url: '/WmsContainerService/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æçä¿¡æ¯å表 |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function WmsfkContainerList (parameter) { |
| | | return axios({ |
| | | url: '/WmsContainerService/fkWmsContainer', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å 餿çä¿¡æ¯ |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function JBWmsContainerDelete (parameter) { |
| | | return axios({ |
| | | url: '/WmsContainerService/jblocation', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢ç«¯æ¾å¨å°è½¦ç±»åä¿¡æ¯ |
| | | * |
| | | * @author qy |
| | | */ |
| | | export function WmsContainerTypePage (parameter) { |
| | | return axios({ |
| | | url: '/WmsContainerType/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 端æ¾å¨å°è½¦ç±»åä¿¡æ¯å表 |
| | | * |
| | | * @author qy |
| | | */ |
| | | export function WmsContainerTypeList (parameter) { |
| | | return axios({ |
| | | url: '/WmsContainerType/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å 端æ¾å¨å°è½¦ç±»åä¿¡æ¯ |
| | | * |
| | | * @author qy |
| | | */ |
| | | export function WmsContainerTypeAdd (parameter) { |
| | | return axios({ |
| | | url: '/WmsContainerType/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾ç«¯æ¾å¨å°è½¦ç±»åä¿¡æ¯ |
| | | * |
| | | * @author qy |
| | | */ |
| | | export function WmsContainerTypeEdit (parameter) { |
| | | return axios({ |
| | | url: '/WmsContainerType/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤ç«¯æ¾å¨å°è½¦ç±»åä¿¡æ¯ |
| | | * |
| | | * @author qy |
| | | */ |
| | | export function WmsContainerTypeDelete (parameter) { |
| | | return axios({ |
| | | url: '/WmsContainerType/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ¥è¯¢ç«¯æ¾å¨å°è½¦ç±»åå表 |
| | | * |
| | | * @author qy |
| | | */ |
| | | export function ContainerTypeList (parameter) { |
| | | return axios({ |
| | | url: '/WmsContainerType/fkWmsContainerType', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢åºä½ç±»å |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WmsLocationTypePage (parameter) { |
| | | return axios({ |
| | | url: '/WmsLocationType/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * åºä½ç±»åå表 |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WmsLocationTypeList (parameter) { |
| | | return axios({ |
| | | url: '/WmsLocationType/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å åºä½ç±»å |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WmsLocationTypeAdd (parameter) { |
| | | return axios({ |
| | | url: '/WmsLocationType/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾åºä½ç±»å |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WmsLocationTypeEdit (parameter) { |
| | | return axios({ |
| | | url: '/WmsLocationType/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤åºä½ç±»å |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WmsLocationTypeDelete (parameter) { |
| | | return axios({ |
| | | url: '/WmsLocationType/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢ç©æä¿¡æ¯ |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function WmsMaterialPage (parameter) { |
| | | return axios({ |
| | | url: '/WmsMaterial/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç©æä¿¡æ¯å表 |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function WmsMaterialList (parameter) { |
| | | return axios({ |
| | | url: '/WmsMaterial/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å ç©æä¿¡æ¯ |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function WmsMaterialAdd (parameter) { |
| | | return axios({ |
| | | url: '/WmsMaterial/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾ç©æä¿¡æ¯ |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function WmsMaterialEdit (parameter) { |
| | | return axios({ |
| | | url: '/WmsMaterial/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤ç©æä¿¡æ¯ |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function WmsMaterialDelete (parameter) { |
| | | return axios({ |
| | | url: '/WmsMaterial/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢é¶ä»¶ä¿¡æ¯ |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WmsPartPage (parameter) { |
| | | return axios({ |
| | | url: '/WmsPartService/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * é¶ä»¶ä¿¡æ¯å表 |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WmsPartList (parameter) { |
| | | return axios({ |
| | | url: '/WmsPartService/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å é¶ä»¶ä¿¡æ¯ |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WmsPartAdd (parameter) { |
| | | return axios({ |
| | | url: '/WmsPartService/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾é¶ä»¶ä¿¡æ¯ |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WmsPartEdit (parameter) { |
| | | return axios({ |
| | | url: '/WmsPartService/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤é¶ä»¶ä¿¡æ¯ |
| | | * |
| | | * @author kejj |
| | | */ |
| | | export function WmsPartDelete (parameter) { |
| | | return axios({ |
| | | url: '/WmsPartService/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢åºä½ä¿¡æ¯ |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function WmsPlacePage (parameter) { |
| | | return axios({ |
| | | url: '/WmsPlaceService/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * åºä½ä¿¡æ¯å表 |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function WmsPlaceList (parameter) { |
| | | return axios({ |
| | | url: '/WmsPlaceService/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å åºä½ä¿¡æ¯ |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function WmsPlaceAdd (parameter) { |
| | | return axios({ |
| | | url: '/WmsPlaceService/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾åºä½ä¿¡æ¯ |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function WmsPlaceEdit (parameter) { |
| | | return axios({ |
| | | url: '/WmsPlaceService/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤åºä½ä¿¡æ¯ |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function WmsPlaceDelete (parameter) { |
| | | return axios({ |
| | | url: '/WmsPlaceService/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·åWmsAreaå表 |
| | | * @author liduanping |
| | | */ |
| | | export function WmsPlaceFkWmsAreaList() { |
| | | return axios({ |
| | | url: '/WmsPlaceService/fkWmsArea', |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 空åºä½ä¿¡æ¯å表 |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function WmsEmptyPlaceList (parameter) { |
| | | return axios({ |
| | | url: '/WmsPlaceService/emptylist', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢ä»»å¡ç®¡ç |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function WmsTaskPage (parameter) { |
| | | return axios({ |
| | | url: '/WmsTask/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ä»»å¡ç©æè¯¦æ
|
| | | * |
| | | * @author yhh |
| | | */ |
| | | export function WmsTaskDetail (parameter) { |
| | | return axios({ |
| | | url: '/WmsTask/detail', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤ä»»å¡ |
| | | * |
| | | * @author yhh |
| | | */ |
| | | export function WmsTaskDelete (parameter) { |
| | | return axios({ |
| | | url: '/WmsTask/DeleteTask', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤åºå |
| | | * |
| | | * @author yhh |
| | | */ |
| | | export function WmsDeleteBalance (parameter) { |
| | | return axios({ |
| | | url: '/WmsTask/deletebalance', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤åºå |
| | | * |
| | | * @author yhh |
| | | */ |
| | | export function WmsAddBalance (parameter) { |
| | | return axios({ |
| | | url: '/WmsTask/addbalance', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 强å¶å®æ |
| | | * |
| | | * @author yhh |
| | | */ |
| | | export function WmsTaskFinish (parameter) { |
| | | return axios({ |
| | | url: '/WmsTask/FinishWare', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ´æ¹ä¼å
级 |
| | | * |
| | | * @author yhh |
| | | */ |
| | | export function WmsTaskUpdateLevel (parameter) { |
| | | return axios({ |
| | | url: '/WmsTask/UpdateTasklevel', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ´æ¹ä¼å
级 |
| | | * |
| | | * @author yhh |
| | | */ |
| | | export function fronttaskcreate (parameter) { |
| | | return axios({ |
| | | url: '/WmsTask/fronttaskcreate', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢ç©æä¿¡æ¯ |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function cePage (parameter) { |
| | | return axios({ |
| | | url: '/ce/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç©æä¿¡æ¯å表 |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function ceList (parameter) { |
| | | return axios({ |
| | | url: '/ce/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å ç©æä¿¡æ¯ |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function ceAdd (parameter) { |
| | | return axios({ |
| | | url: '/ce/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾ç©æä¿¡æ¯ |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function ceEdit (parameter) { |
| | | return axios({ |
| | | url: '/ce/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤ç©æä¿¡æ¯ |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function ceDelete (parameter) { |
| | | return axios({ |
| | | url: '/ce/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢ces |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function cesPage (parameter) { |
| | | return axios({ |
| | | url: '/ces/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ceså表 |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function cesList (parameter) { |
| | | return axios({ |
| | | url: '/ces/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å ces |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function cesAdd (parameter) { |
| | | return axios({ |
| | | url: '/ces/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾ces |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function cesEdit (parameter) { |
| | | return axios({ |
| | | url: '/ces/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤ces |
| | | * |
| | | * @author liduanping |
| | | */ |
| | | export function cesDelete (parameter) { |
| | | return axios({ |
| | | url: '/ces/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /** æ¤æä»¶å¤¹ä¸ä»£ç å°½éä¸è¦å¨ï¼åºåº§åçº§ç´æ¥è¦çæ¿æ¢ **/ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /** |
| | | * ç³»ç»åºç¨ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020å¹´4æ23æ¥12:10:57 |
| | | */ |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * ç³»ç»åºç¨å表 |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020å¹´7æ9æ¥15:05:01 |
| | | */ |
| | | export function getAppPage (parameter) { |
| | | return axios({ |
| | | url: '/sysApp/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç³»ç»åºç¨å表 |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020å¹´7æ9æ¥15:05:01 |
| | | */ |
| | | export function getAppList (parameter) { |
| | | return axios({ |
| | | url: '/sysApp/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ°å¢ç³»ç»åºç¨ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020å¹´7æ9æ¥15:05:01 |
| | | */ |
| | | export function sysAppAdd (parameter) { |
| | | return axios({ |
| | | url: '/sysApp/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾ç³»ç»åºç¨ |
| | | * |
| | | * @author yubaoshan |
| | | * @param parameter |
| | | * @returns {*} |
| | | */ |
| | | export function sysAppEdit (parameter) { |
| | | return axios({ |
| | | url: '/sysApp/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤ç³»ç»åºç¨ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020å¹´7æ9æ¥15:05:01 |
| | | */ |
| | | export function sysAppDelete (parameter) { |
| | | return axios({ |
| | | url: '/sysApp/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 设为é»è®¤åºç¨ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020å¹´7æ9æ¥15:05:01 |
| | | */ |
| | | export function sysAppSetAsDefault (parameter) { |
| | | return axios({ |
| | | url: '/sysApp/setAsDefault', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ä¿®æ¹åºç¨ç¶æ |
| | | * |
| | | * @author zuohuaijun |
| | | * @date 2021å¹´1æ1æ¥ |
| | | */ |
| | | export function sysAppChangeStatus (parameter) { |
| | | return axios({ |
| | | url: '/sysApp/changeStatus', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { |
| | | axios |
| | | } from '@/utils/request' |
| | | |
| | | // å®¡æ ¸æµç¨ç¸å
³ |
| | | |
| | | /** |
| | | * è·åæåèµ·çæµç¨ |
| | | * |
| | | * @author é£è¾æç« |
| | | * @date 2022/5/09 |
| | | */ |
| | | export function getMystartWorkflow(parameter) { |
| | | return axios({ |
| | | url: '/workflowmanager/page', |
| | | method: 'post', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æªå®¡æ ¸æµç¨ |
| | | * |
| | | * @author é£è¾æç« |
| | | * @date 2022/5/09 |
| | | */ |
| | | export function getMyUnAuditorWorkflow(parameter) { |
| | | return axios({ |
| | | url: '/auditorworkflow/myworkflowlist', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æµç¨å®¡æ ¸èç¹æ°æ® |
| | | * |
| | | * @author é£è¾æç« |
| | | * @date 2022/5/09 |
| | | */ |
| | | export function getStepAuditor(parameter) { |
| | | return axios({ |
| | | url: '/auditorworkflow/stepauditor', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å®¡æ ¸æµç¨ |
| | | * |
| | | * @author é£è¾æç« |
| | | * @date 2022/5/09 |
| | | */ |
| | | export function auditorWorkflow(parameter) { |
| | | return axios({ |
| | | url: '/auditorworkflow/auditor', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * å页æ¥è¯¢é
ç½®å表 |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/25 01:57 |
| | | */ |
| | | export function sysConfigPage (parameter) { |
| | | return axios({ |
| | | url: '/sysConfig/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å ç³»ç»åæ°é
ç½® |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/25 01:57 |
| | | */ |
| | | export function sysConfigAdd (parameter) { |
| | | return axios({ |
| | | url: '/sysConfig/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾ç³»ç»åæ°é
ç½® |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/25 01:57 |
| | | */ |
| | | export function sysConfigEdit (parameter) { |
| | | return axios({ |
| | | url: '/sysConfig/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤ç³»ç»åæ°é
ç½® |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/25 01:57 |
| | | */ |
| | | export function sysConfigDelete (parameter) { |
| | | return axios({ |
| | | url: '/sysConfig/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·ååå
¸ç±»å䏿æåå
¸ï¼ä¸¾ä¾ï¼è¿åæ ¼å¼ä¸ºï¼[{code:"M",value:"ç·"},{code:"F",value:"女"}] |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/25 02:06 |
| | | */ |
| | | export function sysDictTypeDropDown (parameter) { |
| | | return axios({ |
| | | url: '/sysDictType/dropDown', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·åç³»ç»çææä»»å¡å表 |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/7/8 20:46 |
| | | */ |
| | | export function sysTimersGetActionClasses (parameter) { |
| | | return axios({ |
| | | url: '/sysTimers/getActionClasses', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { |
| | | axios |
| | | } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢ç³»ç»åå
¸å¼ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/17 02:24 |
| | | */ |
| | | export function sysDictDataPage(parameter) { |
| | | return axios({ |
| | | url: '/sysDictData/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å ç³»ç»åå
¸å¼ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/17 02:24 |
| | | */ |
| | | export function sysDictDataAdd(parameter) { |
| | | return axios({ |
| | | url: '/sysDictData/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾ç³»ç»åå
¸å¼ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/17 02:25 |
| | | */ |
| | | export function sysDictDataEdit(parameter) { |
| | | return axios({ |
| | | url: '/sysDictData/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤ç³»ç»åå
¸å¼ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/17 02:25 |
| | | */ |
| | | export function sysDictDataDelete(parameter) { |
| | | return axios({ |
| | | url: '/sysDictData/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ä¿®æ¹ç³»ç»åå
¸ç¶æ |
| | | * |
| | | * @author xusn |
| | | * @date 2021-04-30 11:00:16 |
| | | */ |
| | | export function sysDictDataChangeStatus(parameter) { |
| | | return axios({ |
| | | url: '/sysDictData/changeStatus', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ ¹æ®Codeè·ååå
¸æ°æ® |
| | | * |
| | | * @author lanhuxing |
| | | * @date 2021-04-30 11:00:16 |
| | | */ |
| | | export function sysDictDataListbycode(parameter) { |
| | | return axios({ |
| | | url: '/sysDictData/listbycode?code=' + parameter.code, |
| | | method: 'get', |
| | | data: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { |
| | | axios |
| | | } from '@/utils/request' |
| | | |
| | | /** |
| | | * å页æ¥è¯¢ç³»ç»åå
¸ç±»å |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/17 01:46 |
| | | */ |
| | | export function sysDictTypePage(parameter) { |
| | | return axios({ |
| | | url: '/sysDictType/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å ç³»ç»åå
¸ç±»å |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/17 01:46 |
| | | */ |
| | | export function sysDictTypeAdd(parameter) { |
| | | return axios({ |
| | | url: '/sysDictType/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾ç³»ç»åå
¸ç±»å |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/17 01:50 |
| | | */ |
| | | export function sysDictTypeEdit(parameter) { |
| | | return axios({ |
| | | url: '/sysDictType/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤ç³»ç»åå
¸ç±»å |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/17 01:50 |
| | | */ |
| | | export function sysDictTypeDelete(parameter) { |
| | | return axios({ |
| | | url: '/sysDictType/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·ååå
¸ç±»å䏿æåå
¸ï¼ä¸¾ä¾ï¼è¿åæ ¼å¼ä¸ºï¼[{code:"M",value:"ç·"},{code:"F",value:"女"}] |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/10 00:10 |
| | | */ |
| | | export function sysDictTypeDropDown(parameter) { |
| | | return axios({ |
| | | url: '/sysDictType/dropDown', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·åææåå
¸ï¼å¯å¨æ¶å å
¥ç¼åä½¿ç¨ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/10 00:10 |
| | | */ |
| | | export function sysDictTypeTree(parameter) { |
| | | return axios({ |
| | | url: '/sysDictType/tree', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ä¿®æ¹ç³»ç»åå
¸ç¶æ |
| | | * |
| | | * @author xusn |
| | | * @date 2021-04-30 11:00:16 |
| | | */ |
| | | export function sysDictTypeChangeStatus(parameter) { |
| | | return axios({ |
| | | url: '/sysDictType/changeStatus', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * åéé®ä»¶ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/7/3 23:22 |
| | | */ |
| | | export function emailSendEmail (parameter) { |
| | | return axios({ |
| | | url: '/email/sendEmail', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * åéhtmlé®ä»¶ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/7/3 23:23 |
| | | */ |
| | | export function emailSendEmailHtml (parameter) { |
| | | return axios({ |
| | | url: '/email/sendEmailHtml', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ ¹æ®æä¸¾åç§°è·åæä¸¾æ°æ®ï¼è¿åæ ¼å¼ä¸ºï¼[{code:"M",value:"ç·"},{code:"F",value:"女"}] |
| | | * |
| | | * @author taoran |
| | | * @date 2021-04-16 21:13/sysEnumData/list/{enumName} |
| | | */ |
| | | export function sysEnumDataList (parameter) { |
| | | return axios({ |
| | | url: '/sysEnumData/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ ¹æ®å®ä½åååæ®µåè·åæä¸¾æ°æ® |
| | | * |
| | | * @author taoran |
| | | * @date 2021-04-16 21:13 |
| | | */ |
| | | export function sysEnumDataListByField (parameter) { |
| | | return axios({ |
| | | url: '/sysEnumData/listByFiled', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * å页æ¥è¯¢æä»¶ä¿¡æ¯è¡¨ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/30 00:20 |
| | | */ |
| | | export function sysFileInfoPage (parameter) { |
| | | return axios({ |
| | | url: '/sysFileInfo/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·åå
¨é¨æä»¶ä¿¡æ¯è¡¨ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/30 00:20 |
| | | */ |
| | | export function sysFileInfoList (parameter) { |
| | | return axios({ |
| | | url: '/sysFileInfo/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ä¸ä¼ æä»¶ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/30 00:20 |
| | | */ |
| | | export function sysFileInfoUpload (parameter) { |
| | | return axios({ |
| | | url: '/sysFileInfo/upload', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ä¸è½½æä»¶ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/30 00:20 |
| | | */ |
| | | export function sysFileInfoDownload (parameter) { |
| | | return axios({ |
| | | url: '/sysFileInfo/download', |
| | | method: 'get', |
| | | params: parameter, |
| | | responseType: 'blob' |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ¥çå¾ç |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/30 00:20 |
| | | */ |
| | | export function sysFileInfoPreview (parameter) { |
| | | return axios({ |
| | | url: '/sysFileInfo/preview', |
| | | method: 'get', |
| | | params: parameter, |
| | | responseType: 'arraybuffer' |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ¥ç详æ
æä»¶ä¿¡æ¯è¡¨ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/30 00:20 |
| | | */ |
| | | export function sysFileInfoDetail (parameter) { |
| | | return axios({ |
| | | url: '/sysFileInfo/detail', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤æä»¶ä¿¡æ¯è¡¨ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/30 00:20 |
| | | */ |
| | | export function sysFileInfoDelete (parameter) { |
| | | return axios({ |
| | | url: '/sysFileInfo/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ä¸ä¼ 头å |
| | | * |
| | | * @author zuohuaijun |
| | | * @date 2021/4/23 00:20 |
| | | */ |
| | | export function sysFileInfoUploadAvatar (parameter) { |
| | | return axios({ |
| | | url: '/sysFileInfo/uploadAvatar', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * ä¿å表å |
| | | */ |
| | | export function formAdd(parameter) { |
| | | return axios({ |
| | | url: '/formmanager/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·å表å |
| | | */ |
| | | export function formEntity(parameter) { |
| | | return axios({ |
| | | url: '/formmanager/entity', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·åè¡¨åæ¥ç ä¸è½ç¼è¾ |
| | | */ |
| | | export function formEntityView(parameter) { |
| | | return axios({ |
| | | url: '/formmanager/entityview', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ´æ°è¡¨å |
| | | */ |
| | | export function formEdit(parameter) { |
| | | return axios({ |
| | | url: '/formmanager/update', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | // å é¤è¡¨å |
| | | export function formDelete(parameter) { |
| | | return axios({ |
| | | url: '/formmanager/delete', |
| | | method: 'delete', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | // åå¸è¡¨å |
| | | export function formPublish(parameter) { |
| | | return axios({ |
| | | url: '/formmanager/publish', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | // è·å表åå表 |
| | | export function formList(parameter) { |
| | | return axios({ |
| | | url: '/formmanager/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | // è·å表åå表 |
| | | export function getformList(parameter) { |
| | | return axios({ |
| | | url: '/formmanager/publislist', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /** |
| | | * ç³»ç»åºç¨ |
| | | * |
| | | * @author yhh |
| | | */ |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * è·ååºä½æ°æ® |
| | | * |
| | | * @author yhh |
| | | */ |
| | | export function GetPalceNumbers () { |
| | | return axios({ |
| | | url: '/locationview/GetPalceDetail', |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·ååºå
¥åºç»è®¡æ°æ® |
| | | * |
| | | * @author yhh |
| | | */ |
| | | export function GeInOutTaskNumber (params) { |
| | | return axios({ |
| | | url: '/locationview/task-detail', |
| | | method: 'get', |
| | | params:params |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·ååºå
¥åºæ»æ° |
| | | * |
| | | * @author yhh |
| | | */ |
| | | export function GeInOutTotalNumber () { |
| | | return axios({ |
| | | url: '/locationview/GetTaskCount', |
| | | method: 'get' |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /* |
| | | * @Author: your name |
| | | * @Date: 2021-04-17 17:45:37 |
| | | * @LastEditTime: 2021-04-17 18:03:59 |
| | | * @LastEditors: your name |
| | | * @Description: In User Settings Edit |
| | | * @FilePath: \frontend\src\api\modular\system\logManage.js |
| | | */ |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢è®¿é®æ¥å¿ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/19 11:57 |
| | | */ |
| | | export function sysVisLogPage (parameter) { |
| | | return axios({ |
| | | url: '/sysVisLog/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ¥è¯¢æä½æ¥å¿ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/19 11:57 |
| | | */ |
| | | export function sysOpLogPage (parameter) { |
| | | return axios({ |
| | | url: '/sysOpLog/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ¥è¯¢å¼å¸¸æ¥å¿ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/19 11:57 |
| | | */ |
| | | export function sysExLogPage (parameter) { |
| | | return axios({ |
| | | url: '/sysExLog/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ¸
ç©ºè®¿é®æ¥å¿ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/23 23:09 |
| | | */ |
| | | export function sysVisLogDelete (parameter) { |
| | | return axios({ |
| | | url: '/sysVisLog/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ¸
空ç»å½æ¥å¿ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/23 23:09 |
| | | */ |
| | | export function sysOpLogDelete (parameter) { |
| | | return axios({ |
| | | url: '/sysOpLog/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ¸
空å¼å¸¸æ¥å¿ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/23 23:09 |
| | | */ |
| | | export function sysExLogDelete (parameter) { |
| | | return axios({ |
| | | url: '/sysExLog/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /** |
| | | * ç³»ç»åºç¨ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/26 19:06 |
| | | */ |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * ç»å½ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/26 19:06 |
| | | */ |
| | | export function login (parameter) { |
| | | return axios({ |
| | | url: '/login', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç»åº |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/26 19:07 |
| | | */ |
| | | export function logout (parameter) { |
| | | return axios({ |
| | | url: '/logout', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·åç»å½ç¨æ·ä¿¡æ¯ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/26 19:08 |
| | | */ |
| | | export function getLoginUser (parameter) { |
| | | return axios({ |
| | | url: '/getLoginUser', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·åç§æ·å¼å
³ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/9/5 1:24 |
| | | */ |
| | | export function getTenantOpen (parameter) { |
| | | return axios({ |
| | | url: '/getTenantOpen', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·åçä¿¡éªè¯ç |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/26 19:29 |
| | | */ |
| | | export function getSmsCaptcha (parameter) { |
| | | return axios({ |
| | | url: '/getSmsCaptcha', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·åéªè¯ç å¼å
³ |
| | | * |
| | | * @author Jax |
| | | * @date 2021/1/22 00:00 |
| | | */ |
| | | export function getCaptchaOpen (parameter) { |
| | | return axios({ |
| | | url: '/getCaptchaOpen', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·åéªè¯å¾ç 以åtoken |
| | | * |
| | | * @author Jax |
| | | * @date 2021/1/22 00:00 |
| | | */ |
| | | export function reqGet(data) { |
| | | return axios({ |
| | | url: '/captcha/get', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ»å¨æè
ç¹ééªè¯ |
| | | * |
| | | * @author Jax |
| | | * @date 2021/1/22 00:00 |
| | | */ |
| | | export function reqCheck(data) { |
| | | return axios({ |
| | | url: '/captcha/check', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { |
| | | axios |
| | | } from '@/utils/request' |
| | | |
| | | /** |
| | | * |
| | | * ç³»ç»å±æ§çæ§ |
| | | * |
| | | */ |
| | | export function sysMachineUse(parameter) { |
| | | return axios({ |
| | | url: '/sysMachine/use', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | export function sysMachineBase(parameter) { |
| | | return axios({ |
| | | url: '/sysMachine/base', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | export function sysMachineNetwork(parameter) { |
| | | return axios({ |
| | | url: '/sysMachine/network', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * è·åèåå表 |
| | | * |
| | | * @author yubaoshan |
| | | * @param parameter |
| | | * @returns {*} |
| | | */ |
| | | export function getMenuList (parameter) { |
| | | return axios({ |
| | | url: '/sysMenu/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·åç³»ç»èåæ ï¼ç¨äºæ°å¢ï¼ç¼è¾æ¶éæ©ä¸çº§èç¹ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/4/23 12:22 |
| | | */ |
| | | export function getMenuTree (parameter) { |
| | | return axios({ |
| | | url: '/sysMenu/tree', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å¢å èå |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/4/24 23:23 |
| | | */ |
| | | export function sysMenuAdd (parameter) { |
| | | return axios({ |
| | | url: '/sysMenu/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å¢å èå |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/4/24 23:23 |
| | | */ |
| | | export function sysMenuDelete (parameter) { |
| | | return axios({ |
| | | url: '/sysMenu/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ¥çèå详æ
|
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/4/25 01:11 |
| | | */ |
| | | export function sysMenuDetail (parameter) { |
| | | return axios({ |
| | | url: '/sysMenu/detail', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾ç³»ç»èå |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/4/25 01:11 |
| | | */ |
| | | export function sysMenuEdit (parameter) { |
| | | return axios({ |
| | | url: '/sysMenu/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·åç³»ç»èåæ ï¼ç¨äºç»è§è²æææ¶éæ© |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/2 17:30 |
| | | */ |
| | | export function SysMenuTreeForGrant (parameter) { |
| | | return axios({ |
| | | url: '/sysMenu/treeForGrant', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ ¹æ®ç³»ç»åæ¢èå |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/28 15:25 |
| | | */ |
| | | export function sysMenuChange (parameter) { |
| | | return axios({ |
| | | url: '/sysMenu/change', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢ç³»ç»éç¥å
Œ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/30 01:56 |
| | | */ |
| | | export function sysNoticePage (parameter) { |
| | | return axios({ |
| | | url: '/sysNotice/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å ç³»ç»éç¥å
Œ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/30 01:56 |
| | | */ |
| | | export function sysNoticeAdd (parameter) { |
| | | return axios({ |
| | | url: '/sysNotice/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾ç³»ç»éç¥å
Œ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/30 01:56 |
| | | */ |
| | | export function sysNoticeEdit (parameter) { |
| | | return axios({ |
| | | url: '/sysNotice/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤ç³»ç»éç¥å
Œ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/30 01:56 |
| | | */ |
| | | export function sysNoticeDelete (parameter) { |
| | | return axios({ |
| | | url: '/sysNotice/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * éç¥å
¬å详æ
|
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/30 01:56 |
| | | */ |
| | | export function sysNoticeDetail (parameter) { |
| | | return axios({ |
| | | url: '/sysNotice/detail', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ä¿®æ¹ç¶æ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/7/30 02:23 |
| | | */ |
| | | export function sysNoticeChangeStatus (parameter) { |
| | | return axios({ |
| | | url: '/sysNotice/changeStatus', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢ææ¶å°çç³»ç»éç¥å
Œ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/7/3 03:02 |
| | | */ |
| | | export function sysNoticeReceived (parameter) { |
| | | return axios({ |
| | | url: '/sysNotice/received', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | export function unReadNotice (parameter) { |
| | | return axios({ |
| | | url: '/sysNotice/unread', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { |
| | | axios |
| | | } from '@/utils/request' |
| | | |
| | | /** |
| | | * å页å¨çº¿ç¨æ·å表 |
| | | * |
| | | * @author åæ |
| | | * @date 2021/7/21 23:34 |
| | | */ |
| | | export function sysOnlineUserPage(parameter) { |
| | | return axios({ |
| | | url: '/sysOnlineUser/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å¨çº¿ç¨æ·å表 |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/8 11:11 |
| | | */ |
| | | export function sysOnlineUserList(parameter) { |
| | | return axios({ |
| | | url: '/sysOnlineUser/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 强å¶ä¸çº¿ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/8 11:11 |
| | | */ |
| | | export function sysOnlineUserForceExist(parameter) { |
| | | return axios({ |
| | | url: '/sysOnlineUser/forceExist', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * è·åæºææ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/4/26 12:08 |
| | | */ |
| | | export function getOrgTree (parameter) { |
| | | return axios({ |
| | | url: '/sysOrg/tree', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·åæºæå表 |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/11 12:59 |
| | | */ |
| | | export function getOrgList (parameter) { |
| | | return axios({ |
| | | url: '/sysOrg/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·åæºæå表 |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/11 16:17 |
| | | */ |
| | | export function getOrgPage (parameter) { |
| | | return axios({ |
| | | url: '/sysOrg/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ°å¢æºæ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/11 13:56 |
| | | */ |
| | | export function sysOrgAdd (parameter) { |
| | | return axios({ |
| | | url: '/sysOrg/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾æºæ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/11 13:56 |
| | | */ |
| | | export function sysOrgEdit (parameter) { |
| | | return axios({ |
| | | url: '/sysOrg/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å 餿ºæ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/11 12:59 |
| | | */ |
| | | export function sysOrgDelete (parameter) { |
| | | return axios({ |
| | | url: '/sysOrg/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢ç³»ç»èä½ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/25 01:31 |
| | | */ |
| | | export function sysPosPage (parameter) { |
| | | return axios({ |
| | | url: '/sysPos/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç³»ç»èä½å表 |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/21 23:50 |
| | | */ |
| | | export function sysPosList (parameter) { |
| | | return axios({ |
| | | url: '/sysPos/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å ç³»ç»èä½ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/25 01:31 |
| | | */ |
| | | export function sysPosAdd (parameter) { |
| | | return axios({ |
| | | url: '/sysPos/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾ç³»ç»èä½ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/25 01:31 |
| | | */ |
| | | export function sysPosEdit (parameter) { |
| | | return axios({ |
| | | url: '/sysPos/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤ç³»ç»èä½ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/25 01:31 |
| | | */ |
| | | export function sysPosDelete (parameter) { |
| | | return axios({ |
| | | url: '/sysPos/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * è·åè§è²å表 |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/6 11:44 |
| | | */ |
| | | export function getRolePage (parameter) { |
| | | return axios({ |
| | | url: '/sysRole/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å¢å è§è² |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/6 11:44 |
| | | */ |
| | | export function sysRoleAdd (parameter) { |
| | | return axios({ |
| | | url: '/sysRole/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾è§è² |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/6 11:44 |
| | | */ |
| | | export function sysRoleEdit (parameter) { |
| | | return axios({ |
| | | url: '/sysRole/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤è§è² |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/6 17:51 |
| | | */ |
| | | export function sysRoleDelete (parameter) { |
| | | return axios({ |
| | | url: '/sysRole/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤è§è² |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/7 11:28 |
| | | */ |
| | | export function sysRoleDeteil (parameter) { |
| | | return axios({ |
| | | url: '/sysRole/detail', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·åææè§è²å表 |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/26 23:59 |
| | | */ |
| | | export function sysRoleDropDown (parameter) { |
| | | return axios({ |
| | | url: '/sysRole/dropDown', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ¥æèå |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/02 19:02 |
| | | */ |
| | | export function sysRoleOwnMenu (parameter) { |
| | | return axios({ |
| | | url: '/sysRole/ownMenu', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ææèå |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/2 21:10 |
| | | */ |
| | | export function sysRoleGrantMenu (parameter) { |
| | | return axios({ |
| | | url: '/sysRole/grantMenu', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ¥ææ°æ® |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/02 21:40 |
| | | */ |
| | | export function sysRoleOwnData (parameter) { |
| | | return axios({ |
| | | url: '/sysRole/ownData', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æææ°æ® |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/2 21:50 |
| | | */ |
| | | export function sysRoleGrantData (parameter) { |
| | | return axios({ |
| | | url: '/sysRole/grantData', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * åéè®°å½æ¥è¯¢ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/7/3 22:11 |
| | | */ |
| | | export function smsPage (parameter) { |
| | | return axios({ |
| | | url: '/sms/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * éªè¯çä¿¡éªè¯ç |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/7/3 22:12 |
| | | */ |
| | | export function sysSendLoginMessage (parameter) { |
| | | return axios({ |
| | | url: '/sms/sendLoginMessage', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * éªè¯çä¿¡éªè¯ç |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/7/3 22:12 |
| | | */ |
| | | export function sysValidateMessage (parameter) { |
| | | return axios({ |
| | | url: '/sms/validateMessage', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /** |
| | | * ç§æ· |
| | | */ |
| | | import { |
| | | axios |
| | | } from '@/utils/request' |
| | | |
| | | /** |
| | | * ç§æ·å表 |
| | | * |
| | | */ |
| | | export function sysTenantPage(parameter) { |
| | | return axios({ |
| | | url: '/sysTenant/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ°å¢ç§æ· |
| | | * |
| | | */ |
| | | export function sysTenantAdd(parameter) { |
| | | return axios({ |
| | | url: '/sysTenant/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤ç§æ· |
| | | * |
| | | */ |
| | | export function sysTenantDelete(parameter) { |
| | | return axios({ |
| | | url: '/sysTenant/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾ç§æ· |
| | | * |
| | | */ |
| | | export function sysTenantEdit(parameter) { |
| | | return axios({ |
| | | url: '/sysTenant/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ¥æèå |
| | | * |
| | | * @author zuohuaijun |
| | | * @date 2021/04/22 10:30 |
| | | */ |
| | | export function sysTenantOwnMenu (parameter) { |
| | | return axios({ |
| | | url: '/sysTenant/ownMenu', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ææèå |
| | | * |
| | | * @author zuohuaijun |
| | | * @date 2021/04/22 10:30 |
| | | */ |
| | | export function sysTenantGrantMenu (parameter) { |
| | | return axios({ |
| | | url: '/sysTenant/grantMenu', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * éç½®å¯ç |
| | | * |
| | | * @author zuohuaijun |
| | | * @date 2021/04/22 11:00 |
| | | */ |
| | | export function sysTenantResetPwd (parameter) { |
| | | return axios({ |
| | | url: '/sysTenant/resetPwd', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { |
| | | axios |
| | | } from '@/utils/request' |
| | | |
| | | /** |
| | | * å页æ¥è¯¢å®æ¶ä»»å¡ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/7/3 03:13 |
| | | */ |
| | | export function sysTimersPage(parameter) { |
| | | return axios({ |
| | | url: '/sysTimers/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·åå
¨é¨å®æ¶ä»»å¡ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/7/3 03:23 |
| | | */ |
| | | export function sysTimersList(parameter) { |
| | | return axios({ |
| | | url: '/sysTimers/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ¥ç详æ
宿¶ä»»å¡ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/7/3 03:23 |
| | | */ |
| | | export function sysTimersDetail(parameter) { |
| | | return axios({ |
| | | url: '/sysTimers/detail', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å 宿¶ä»»å¡ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/7/3 03:23 |
| | | */ |
| | | export function sysTimersAdd(parameter) { |
| | | return axios({ |
| | | url: '/sysTimers/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤å®æ¶ä»»å¡ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/7/3 03:23 |
| | | */ |
| | | export function sysTimersDelete(parameter) { |
| | | return axios({ |
| | | url: '/sysTimers/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾å®æ¶ä»»å¡ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/7/3 03:23 |
| | | */ |
| | | export function sysTimersEdit(parameter) { |
| | | return axios({ |
| | | url: '/sysTimers/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·åç³»ç»çææä»»å¡å表 |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/7/3 03:23 |
| | | */ |
| | | export function sysTimersGetActionClasses(parameter) { |
| | | return axios({ |
| | | url: '/sysTimers/getActionClasses', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å¯å¨å®æ¶ä»»å¡ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/7/3 03:23 |
| | | */ |
| | | export function sysTimersStart(parameter) { |
| | | return axios({ |
| | | url: '/sysTimers/start', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 忢宿¶ä»»å¡ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/7/3 03:23 |
| | | */ |
| | | export function sysTimersStop(parameter) { |
| | | return axios({ |
| | | url: '/sysTimers/stop', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·åæææ¬å°ä»»å¡ |
| | | * |
| | | * @author zuohuaijun |
| | | * @date 2021/04/24 23:10 |
| | | */ |
| | | export function sysTimersLocalJobList(parameter) { |
| | | return axios({ |
| | | url: '/sysTimers/localJobList', |
| | | method: 'get', |
| | | data: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { |
| | | axios |
| | | } from '@/utils/request' |
| | | |
| | | /** |
| | | * è·åç¨æ·å表 |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/4/26 12:08 |
| | | */ |
| | | export function getUserPage(parameter) { |
| | | return axios({ |
| | | url: '/sysUser/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å¢å ç¨æ· |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/5 02:08 |
| | | */ |
| | | export function sysUserAdd(parameter) { |
| | | return axios({ |
| | | url: '/sysUser/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾ç¨æ· |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/5 02:08 |
| | | */ |
| | | export function sysUserEdit(parameter) { |
| | | return axios({ |
| | | url: '/sysUser/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·åç¨æ·è¯¦æ
|
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/5 19:55 |
| | | */ |
| | | export function sysUserDetail(parameter) { |
| | | return axios({ |
| | | url: '/sysUser/detail', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤ç¨æ· |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/7 19:31 |
| | | */ |
| | | export function sysUserDelete(parameter) { |
| | | return axios({ |
| | | url: '/sysUser/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ¥æè§è² |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/3 11:58 |
| | | */ |
| | | export function sysUserOwnRole(parameter) { |
| | | return axios({ |
| | | url: '/sysUser/ownRole', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ææè§è² |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/5/26 23:59 |
| | | */ |
| | | export function sysUserGrantRole(parameter) { |
| | | return axios({ |
| | | url: '/sysUser/grantRole', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ¥ææ°æ® |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/2 23:14 |
| | | */ |
| | | export function sysUserOwnData(parameter) { |
| | | return axios({ |
| | | url: '/sysUser/ownData', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æææ°æ® |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/2 23:15 |
| | | */ |
| | | export function sysUserGrantData(parameter) { |
| | | return axios({ |
| | | url: '/sysUser/grantData', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ä¿®æ¹ç¶æ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/23 21:36 |
| | | */ |
| | | export function sysUserChangeStatus(parameter) { |
| | | return axios({ |
| | | url: '/sysUser/changeStatus', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * éç½®å¯ç |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/23 22:04 |
| | | */ |
| | | export function sysUserResetPwd(parameter) { |
| | | return axios({ |
| | | url: '/sysUser/resetPwd', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ä¿®æ¹å¯ç |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/25 00:25 |
| | | */ |
| | | export function sysUserUpdatePwd(parameter) { |
| | | return axios({ |
| | | url: '/sysUser/updatePwd', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¨æ·éæ©å¨ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/6/25 00:25 |
| | | */ |
| | | export function sysUserSelector(parameter) { |
| | | return axios({ |
| | | url: '/sysUser/selector', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·åç¨æ·å表 |
| | | * |
| | | * @author é£è¾æç« |
| | | * @date 2022/05/07 |
| | | */ |
| | | export function getUserList(parameter) { |
| | | return axios({ |
| | | url: '/sysUser/userList', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ä¿®æ¹å¤´å |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/9/20 2:21 |
| | | */ |
| | | export function sysUserUpdateAvatar(parameter) { |
| | | return axios({ |
| | | url: '/sysUser/updateAvatar', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ´æ°åºæ¬ä¿¡æ¯ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/9/20 03:12 |
| | | */ |
| | | export function sysUserUpdateInfo(parameter) { |
| | | return axios({ |
| | | url: '/sysUser/updateInfo', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 导åºç¨æ·ä¿¡æ¯ |
| | | * |
| | | * @author zuohuaijun |
| | | * @date 2021/4/20 01:00 |
| | | */ |
| | | export function sysUserExport(parameter) { |
| | | return axios({ |
| | | url: '/sysUser/export', |
| | | method: 'get', |
| | | data: parameter, |
| | | responseType: 'blob' |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 导å
¥ç¨æ·ä¿¡æ¯ |
| | | * |
| | | * @author zuohuaijun |
| | | * @date 2021/4/20 01:00 |
| | | */ |
| | | export function sysUserImport(parameter) { |
| | | return axios({ |
| | | url: '/sysUser/import', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { |
| | | axios |
| | | } from '@/utils/request' |
| | | |
| | | // 工使µç¸å
³API |
| | | |
| | | /** |
| | | * è·åæ¥éª¤å表 |
| | | * |
| | | * @author é£è¾æç« |
| | | * @date 2022/5/07 |
| | | */ |
| | | export function getAllStepBodyList(parameter) { |
| | | return axios({ |
| | | url: '/stepBodyManage/allstepBody', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·åæµç¨å®ä¹å表 |
| | | * |
| | | * @author é£è¾æç« |
| | | * @date 2022/5/06 |
| | | */ |
| | | export function getWorkflowDefinitionList(parameter) { |
| | | return axios({ |
| | | url: '/workflowdefinition/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å 工使µ |
| | | * |
| | | * @author é£è¾æç« |
| | | * @date 2022/5/06 |
| | | */ |
| | | export function addWorkflowDefinition(parameter) { |
| | | return axios({ |
| | | url: '/workflowdefinition/create', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤å·¥ä½æµ |
| | | * |
| | | * @author é£è¾æç« |
| | | * @date 2022/5/07 |
| | | */ |
| | | export function deleteWorkflowDefinition(parameter) { |
| | | return axios({ |
| | | url: '/workflowdefinition/delete', |
| | | method: 'delete', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ´æ°å·¥ä½æµ |
| | | * |
| | | * @author é£è¾æç« |
| | | * @date 2022/5/07 |
| | | */ |
| | | export function workflowUpdata(parameter) { |
| | | return axios({ |
| | | url: '/workflowdefinition/update', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ ¹æ®idåçæ¬è·å工使µä¿¡æ¯ |
| | | * |
| | | * @author é£è¾æç« |
| | | * @date 2022/5/07 |
| | | */ |
| | | export function getWorkflowByID(parameter) { |
| | | return axios({ |
| | | url: '/workflowdefinition/workflow/', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * åèµ·å·¥ä½æµ |
| | | * |
| | | * @author é£è¾æç« |
| | | * @date 2022/5/10 |
| | | */ |
| | | export function startWorkflow(parameter) { |
| | | return axios({ |
| | | url: '/workflowmanager/Start', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * è·å工使µè¾å
¥åæ° |
| | | * |
| | | * @author é£è¾æç« |
| | | * @date 2022/5/10 |
| | | */ |
| | | export function inputsWorkflow(parameter) { |
| | | return axios({ |
| | | url: '/workflowmanager/inputsparameter', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?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="1551058675966" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7872" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M85.333333 512h85.333334a340.736 340.736 0 0 1 99.712-241.621333 337.493333 337.493333 0 0 1 108.458666-72.96 346.453333 346.453333 0 0 1 261.546667-1.749334A106.154667 106.154667 0 0 0 746.666667 298.666667C805.802667 298.666667 853.333333 251.136 853.333333 192S805.802667 85.333333 746.666667 85.333333c-29.397333 0-55.978667 11.776-75.221334 30.933334-103.722667-41.514667-222.848-40.874667-325.76 2.517333a423.594667 423.594667 0 0 0-135.68 91.264 423.253333 423.253333 0 0 0-91.306666 135.637333A426.88 426.88 0 0 0 85.333333 512z m741.248 133.205333c-17.109333 40.618667-41.685333 77.141333-72.96 108.416s-67.797333 55.850667-108.458666 72.96a346.453333 346.453333 0 0 1-261.546667 1.749334A106.154667 106.154667 0 0 0 277.333333 725.333333C218.197333 725.333333 170.666667 772.864 170.666667 832S218.197333 938.666667 277.333333 938.666667c29.397333 0 55.978667-11.776 75.221334-30.933334A425.173333 425.173333 0 0 0 512 938.666667a425.941333 425.941333 0 0 0 393.258667-260.352A426.325333 426.325333 0 0 0 938.666667 512h-85.333334a341.034667 341.034667 0 0 1-26.752 133.205333z" p-id="7873"></path><path d="M512 318.378667c-106.752 0-193.621333 86.869333-193.621333 193.621333S405.248 705.621333 512 705.621333s193.621333-86.869333 193.621333-193.621333S618.752 318.378667 512 318.378667z m0 301.909333c-59.690667 0-108.288-48.597333-108.288-108.288S452.309333 403.712 512 403.712s108.288 48.597333 108.288 108.288-48.597333 108.288-108.288 108.288z" p-id="7874"></path></svg> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
| | | <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> |
| | | <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="200px" height="200px" viewBox="0 0 200 200" enable-background="new 0 0 200 200" xml:space="preserve"> <image id="image0" width="200" height="200" x="0" y="0" |
| | | href="data:image/png;base64,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 |
| | | EDoLEIIg0PAFMQVaaWzUiSIW0CE+HD/tw+9887KaRbMmnt3ca9BAzAfwEXy5ppHwvV9quZMQzk7D |
| | | IF+atFIJ+AStvgCOhzcPHwAgWdy24/CzLv5W7cknHN75oD336XDggfsUh2HQBkB3/9sEaEAEPpNw |
| | | Q7ACIAOErcZf9Zu/rLj3lhvPau55bwGWA5gEL0qNADAXwHI2Y+prc2GnZJAvLYBSrQH0AtAbXgTb |
| | | G0B/AL333/+g90484aS4Z6+e7Tt268OvHXdC1LdrSXcAe669ggDiUJ+KrjUIDWsAzTSCZJvq518f |
| | | +uqVV3xnr+ryVYdBBStBaQ8wsWVP2uRYCK90T4cXoRYCWESyurkfrDmx0zPIulBKFQPolx+Hw4ex |
| | | 9ATQM0wUfH7I8Wel99qjd9vWhbpfn179Zh559Okr9tunZ5tWBboN/AlUABgQgEOIkNl8k53Cxd+4 |
| | | /Mo5zz/54CFQQaaFMEgNfD/JxfBm2tHw6c5zSLa4lt7NhV0MshEopfaAP032hWeW3eF1mHbJwpKV |
| | | XfvsVbHbbr1LStsX17Rr37HigMNPqjrkyKOCPt1aF3VJoRBejNsPAO544MlXf3n1Vf0kqt23GaYi |
| | | 8LpDRf7PefBMMRXADJKzm3utWyp2MchmIq+37AUvXvWDZ5z+8AxTDMC1ate5tnO3HkFJq+JEYSqB |
| | | QAerC4uKqvr0339NeW084+0XHv5mpmrN3k38qDn4vJkMvK+iHF50mgF/QswCMHNn1Ccagl0M0ggo |
| | | pdrBM00/+NNlN3hdpg+8aTkEEECHURCEgbi4NUUCePPXJsxgX4KsM9x6o64RegSfb7EQ3vI0D54h |
| | | ZpKsaO612l6xi0G2MvLh+F3grV7d8j93gfeDlAJoBx8n1gZAUX4UwDs110WML58GVfCduirgi1ms |
| | | ArASwAoAy+AtT8u4vYWTt3D8P2RNhTy+FLnBAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIxLTAzLTIz |
| | | VDAwOjE2OjE3KzA4OjAwRT8Z1gAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMS0wMy0yM1QwMDoxNjox |
| | | NyswODowMDRioWoAAAAgdEVYdHNvZnR3YXJlAGh0dHBzOi8vaW1hZ2VtYWdpY2sub3JnvM8dnQAA |
| | | ABh0RVh0VGh1bWI6OkRvY3VtZW50OjpQYWdlcwAxp/+7LwAAABh0RVh0VGh1bWI6OkltYWdlOjpI |
| | | ZWlnaHQAMjAwfdcVaQAAABd0RVh0VGh1bWI6OkltYWdlOjpXaWR0aAAyMDDuJkU0AAAAGXRFWHRU |
| | | aHVtYjo6TWltZXR5cGUAaW1hZ2UvcG5nP7JWTgAAABd0RVh0VGh1bWI6Ok1UaW1lADE2MTY0Mjk3 |
| | | NzflRgHaAAAAE3RFWHRUaHVtYjo6U2l6ZQAyNjIzMUJCmx8L0gAAAEZ0RVh0VGh1bWI6OlVSSQBm |
| | | aWxlOi8vL2FwcC90bXAvaW1hZ2VsYy9pbWd2aWV3Ml85XzE2MDk5MDM1MTIwMjM1NTYwXzIwX1sw |
| | | Xcveen0AAAAASUVORK5CYII=" ></image> |
| | | </svg> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="antd-pro-components-article-list-content-index-listContent"> |
| | | <div class="description"> |
| | | <slot> |
| | | {{ description }} |
| | | </slot> |
| | | </div> |
| | | <div class="extra"> |
| | | <a-avatar :src="avatar" size="small" /> |
| | | <a :href="href">{{ owner }}</a> åå¸å¨ <a :href="href">{{ href }}</a> |
| | | <em>{{ updateAt | moment }}</em> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: 'ArticleListContent', |
| | | props: { |
| | | prefixCls: { |
| | | type: String, |
| | | default: 'antd-pro-components-article-list-content-index-listContent' |
| | | }, |
| | | description: { |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | owner: { |
| | | type: String, |
| | | required: true |
| | | }, |
| | | avatar: { |
| | | type: String, |
| | | required: true |
| | | }, |
| | | href: { |
| | | type: String, |
| | | required: true |
| | | }, |
| | | updateAt: { |
| | | type: String, |
| | | required: true |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | @import '../index.less'; |
| | | |
| | | .antd-pro-components-article-list-content-index-listContent { |
| | | .description { |
| | | max-width: 720px; |
| | | line-height: 22px; |
| | | } |
| | | .extra { |
| | | margin-top: 16px; |
| | | color: @text-color-secondary; |
| | | line-height: 22px; |
| | | |
| | | & /deep/ .ant-avatar { |
| | | position: relative; |
| | | top: 1px; |
| | | width: 20px; |
| | | height: 20px; |
| | | margin-right: 8px; |
| | | vertical-align: top; |
| | | } |
| | | |
| | | & > em { |
| | | margin-left: 16px; |
| | | color: @disabled-color; |
| | | font-style: normal; |
| | | } |
| | | } |
| | | } |
| | | |
| | | @media screen and (max-width: @screen-xs) { |
| | | .antd-pro-components-article-list-content-index-listContent { |
| | | .extra { |
| | | & > em { |
| | | display: block; |
| | | margin-top: 8px; |
| | | margin-left: 0; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import ArticleListContent from './ArticleListContent' |
| | | |
| | | export default ArticleListContent |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <tooltip v-if="tips !== ''"> |
| | | <template slot="title">{{ tips }}</template> |
| | | <avatar :size="avatarSize" :src="src" /> |
| | | </tooltip> |
| | | <avatar v-else :size="avatarSize" :src="src" /> |
| | | </template> |
| | | |
| | | <script> |
| | | import Avatar from 'ant-design-vue/es/avatar' |
| | | import Tooltip from 'ant-design-vue/es/tooltip' |
| | | |
| | | export default { |
| | | name: 'AvatarItem', |
| | | components: { |
| | | Avatar, |
| | | Tooltip |
| | | }, |
| | | props: { |
| | | tips: { |
| | | type: String, |
| | | default: '', |
| | | required: false |
| | | }, |
| | | src: { |
| | | type: String, |
| | | default: '' |
| | | } |
| | | }, |
| | | data () { |
| | | return { |
| | | size: this.$parent.size |
| | | } |
| | | }, |
| | | computed: { |
| | | avatarSize () { |
| | | return this.size !== 'mini' && this.size || 20 |
| | | } |
| | | }, |
| | | watch: { |
| | | '$parent.size' (val) { |
| | | this.size = val |
| | | } |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <!-- |
| | | <template> |
| | | <div :class="[prefixCls]"> |
| | | <ul> |
| | | <slot></slot> |
| | | <template v-for="item in filterEmpty($slots.default).slice(0, 3)"></template> |
| | | |
| | | <template v-if="maxLength > 0 && filterEmpty($slots.default).length > maxLength"> |
| | | <avatar-item :size="size"> |
| | | <avatar :size="size !== 'mini' && size || 20" :style="excessItemsStyle">{{ `+${maxLength}` }}</avatar> |
| | | </avatar-item> |
| | | </template> |
| | | </ul> |
| | | </div> |
| | | </template> |
| | | --> |
| | | |
| | | <script> |
| | | import Avatar from 'ant-design-vue/es/avatar' |
| | | import AvatarItem from './Item' |
| | | import { filterEmpty } from '@/components/_util/util' |
| | | |
| | | export default { |
| | | AvatarItem, |
| | | name: 'AvatarList', |
| | | components: { |
| | | Avatar, |
| | | AvatarItem |
| | | }, |
| | | props: { |
| | | prefixCls: { |
| | | type: String, |
| | | default: 'ant-pro-avatar-list' |
| | | }, |
| | | /** |
| | | * 头åå¤§å° ç±»å: largeãsmall ãmini, default |
| | | * é»è®¤å¼: default |
| | | */ |
| | | size: { |
| | | type: [String, Number], |
| | | default: 'default' |
| | | }, |
| | | /** |
| | | * è¦æ¾ç¤ºçæå¤§é¡¹ç® |
| | | */ |
| | | maxLength: { |
| | | type: Number, |
| | | default: 0 |
| | | }, |
| | | /** |
| | | * å¤ä½ç项ç®é£æ ¼ |
| | | */ |
| | | excessItemsStyle: { |
| | | type: Object, |
| | | default: () => { |
| | | return { |
| | | color: '#f56a00', |
| | | backgroundColor: '#fde3cf' |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | data () { |
| | | return {} |
| | | }, |
| | | methods: { |
| | | getItems (items) { |
| | | const classString = { |
| | | [`${this.prefixCls}-item`]: true, |
| | | [`${this.size}`]: true |
| | | } |
| | | |
| | | if (this.maxLength > 0) { |
| | | items = items.slice(0, this.maxLength) |
| | | items.push((<Avatar size={ this.size } style={ this.excessItemsStyle }>{`+${this.maxLength}`}</Avatar>)) |
| | | } |
| | | const itemList = items.map((item) => ( |
| | | <li class={ classString }>{ item }</li> |
| | | )) |
| | | return itemList |
| | | } |
| | | }, |
| | | render () { |
| | | const { prefixCls, size } = this.$props |
| | | const classString = { |
| | | [`${prefixCls}`]: true, |
| | | [`${size}`]: true |
| | | } |
| | | const items = filterEmpty(this.$slots.default) |
| | | const itemsDom = items && items.length ? <ul class={`${prefixCls}-items`}>{ this.getItems(items) }</ul> : null |
| | | |
| | | return ( |
| | | <div class={ classString }> |
| | | { itemsDom } |
| | | </div> |
| | | ) |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import AvatarList from './List' |
| | | import './index.less' |
| | | |
| | | export default AvatarList |
¶Ô±ÈÐÂÎļþ |
| | |
| | | @import "../index"; |
| | | |
| | | @avatar-list-prefix-cls: ~"@{ant-pro-prefix}-avatar-list"; |
| | | @avatar-list-item-prefix-cls: ~"@{ant-pro-prefix}-avatar-list-item"; |
| | | |
| | | .@{avatar-list-prefix-cls} { |
| | | display: inline-block; |
| | | |
| | | ul { |
| | | list-style: none; |
| | | display: inline-block; |
| | | padding: 0; |
| | | margin: 0 0 0 8px; |
| | | font-size: 0; |
| | | } |
| | | } |
| | | |
| | | .@{avatar-list-item-prefix-cls} { |
| | | display: inline-block; |
| | | font-size: @font-size-base; |
| | | margin-left: -8px; |
| | | width: @avatar-size-base; |
| | | height: @avatar-size-base; |
| | | |
| | | :global { |
| | | .ant-avatar { |
| | | border: 1px solid #fff; |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | |
| | | &.large { |
| | | width: @avatar-size-lg; |
| | | height: @avatar-size-lg; |
| | | } |
| | | |
| | | &.small { |
| | | width: @avatar-size-sm; |
| | | height: @avatar-size-sm; |
| | | } |
| | | |
| | | &.mini { |
| | | width: 20px; |
| | | height: 20px; |
| | | |
| | | :global { |
| | | .ant-avatar { |
| | | width: 20px; |
| | | height: 20px; |
| | | line-height: 20px; |
| | | |
| | | .ant-avatar-string { |
| | | font-size: 12px; |
| | | line-height: 18px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | # AvatarList ç¨æ·å¤´åå表 |
| | | |
| | | |
| | | ä¸ç»ç¨æ·å¤´åï¼å¸¸ç¨å¨é¡¹ç®/å¢éæåå表ãå¯éè¿è®¾ç½® `size` 屿§æ¥æå®å¤´å大å°ã |
| | | |
| | | |
| | | |
| | | å¼ç¨æ¹å¼ï¼ |
| | | |
| | | ```javascript |
| | | import AvatarList from '@/components/AvatarList' |
| | | const AvatarListItem = AvatarList.AvatarItem |
| | | |
| | | export default { |
| | | components: { |
| | | AvatarList, |
| | | AvatarListItem |
| | | } |
| | | } |
| | | ``` |
| | | |
| | | |
| | | |
| | | ## ä»£ç æ¼ç¤º [demo](https://pro.loacg.com/test/home) |
| | | |
| | | ```html |
| | | <avatar-list size="mini"> |
| | | <avatar-list-item tips="Jake" src="https://gw.alipayobjects.com/zos/rmsportal/zOsKZmFRdUtvpqCImOVY.png" /> |
| | | <avatar-list-item tips="Andy" src="https://gw.alipayobjects.com/zos/rmsportal/sfjbOqnsXXJgNCjCzDBL.png" /> |
| | | <avatar-list-item tips="Niko" src="https://gw.alipayobjects.com/zos/rmsportal/kZzEzemZyKLKFsojXItE.png" /> |
| | | </avatar-list> |
| | | ``` |
| | | æ |
| | | ```html |
| | | <avatar-list :max-length="3"> |
| | | <avatar-list-item tips="Jake" src="https://gw.alipayobjects.com/zos/rmsportal/zOsKZmFRdUtvpqCImOVY.png" /> |
| | | <avatar-list-item tips="Andy" src="https://gw.alipayobjects.com/zos/rmsportal/sfjbOqnsXXJgNCjCzDBL.png" /> |
| | | <avatar-list-item tips="Niko" src="https://gw.alipayobjects.com/zos/rmsportal/kZzEzemZyKLKFsojXItE.png" /> |
| | | <avatar-list-item tips="Niko" src="https://gw.alipayobjects.com/zos/rmsportal/kZzEzemZyKLKFsojXItE.png" /> |
| | | <avatar-list-item tips="Niko" src="https://gw.alipayobjects.com/zos/rmsportal/kZzEzemZyKLKFsojXItE.png" /> |
| | | <avatar-list-item tips="Niko" src="https://gw.alipayobjects.com/zos/rmsportal/kZzEzemZyKLKFsojXItE.png" /> |
| | | <avatar-list-item tips="Niko" src="https://gw.alipayobjects.com/zos/rmsportal/kZzEzemZyKLKFsojXItE.png" /> |
| | | </avatar-list> |
| | | ``` |
| | | |
| | | |
| | | |
| | | ## API |
| | | |
| | | ### AvatarList |
| | | |
| | | | åæ° | 说æ | ç±»å | é»è®¤å¼ | |
| | | | ---------------- | -------- | ---------------------------------- | --------- | |
| | | | size | 头åå¤§å° | `large`ã`small` ã`mini`, `default` | `default` | |
| | | | maxLength | è¦æ¾ç¤ºçæå¤§é¡¹ç® | number | - | |
| | | | excessItemsStyle | å¤ä½ç项ç®é£æ ¼ | CSSProperties | - | |
| | | |
| | | ### AvatarList.Item |
| | | |
| | | | åæ° | 说æ | ç±»å | é»è®¤å¼ | |
| | | | ---- | ------ | --------- | --- | |
| | | | tips | 头åå±ç¤ºææ¡ | string | - | |
| | | | src | 头åå¾çè¿æ¥ | string | - | |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div :style="{ padding: '0 0 32px 32px' }"> |
| | | <h4 :style="{ marginBottom: '20px' }">{{ title }}</h4> |
| | | <v-chart |
| | | height="254" |
| | | :data="data" |
| | | :forceFit="true" |
| | | :padding="['auto', 'auto', '40', '50']"> |
| | | <v-tooltip /> |
| | | <v-axis /> |
| | | <v-bar position="x*y"/> |
| | | </v-chart> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: 'Bar', |
| | | props: { |
| | | title: { |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | data: { |
| | | type: Array, |
| | | default: () => { |
| | | return [] |
| | | } |
| | | }, |
| | | scale: { |
| | | type: Array, |
| | | default: () => { |
| | | return [{ |
| | | dataKey: 'x', |
| | | min: 2 |
| | | }, { |
| | | dataKey: 'y', |
| | | title: 'æ¶é´', |
| | | min: 1, |
| | | max: 22 |
| | | }] |
| | | } |
| | | }, |
| | | tooltip: { |
| | | type: Array, |
| | | default: () => { |
| | | return [ |
| | | 'x*y', |
| | | (x, y) => ({ |
| | | name: x, |
| | | value: y |
| | | }) |
| | | ] |
| | | } |
| | | } |
| | | }, |
| | | data () { |
| | | return { |
| | | } |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-card :loading="loading" :body-style="{ padding: '20px 24px 8px' }" :bordered="false"> |
| | | <div class="chart-card-header"> |
| | | <div class="meta"> |
| | | <span class="chart-card-title"> |
| | | <slot name="title"> |
| | | {{ title }} |
| | | </slot> |
| | | </span> |
| | | <span class="chart-card-action"> |
| | | <slot name="action"></slot> |
| | | </span> |
| | | </div> |
| | | <div class="total"> |
| | | <slot name="total"> |
| | | <span>{{ typeof total === 'function' && total() || total }}</span> |
| | | </slot> |
| | | </div> |
| | | </div> |
| | | <div class="chart-card-content"> |
| | | <div class="content-fix"> |
| | | <slot></slot> |
| | | </div> |
| | | </div> |
| | | <div class="chart-card-footer"> |
| | | <div class="field"> |
| | | <slot name="footer"></slot> |
| | | </div> |
| | | </div> |
| | | </a-card> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: 'ChartCard', |
| | | props: { |
| | | title: { |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | total: { |
| | | type: [Function, Number, String], |
| | | required: false, |
| | | default: null |
| | | }, |
| | | loading: { |
| | | type: Boolean, |
| | | default: false |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | .chart-card-header { |
| | | position: relative; |
| | | overflow: hidden; |
| | | width: 100%; |
| | | |
| | | .meta { |
| | | position: relative; |
| | | overflow: hidden; |
| | | width: 100%; |
| | | color: rgba(0, 0, 0, .45); |
| | | font-size: 14px; |
| | | line-height: 22px; |
| | | } |
| | | } |
| | | |
| | | .chart-card-action { |
| | | cursor: pointer; |
| | | position: absolute; |
| | | top: 0; |
| | | right: 0; |
| | | } |
| | | |
| | | .chart-card-footer { |
| | | border-top: 1px solid #e8e8e8; |
| | | padding-top: 9px; |
| | | margin-top: 8px; |
| | | |
| | | > * { |
| | | position: relative; |
| | | } |
| | | |
| | | .field { |
| | | white-space: nowrap; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | margin: 0; |
| | | } |
| | | } |
| | | |
| | | .chart-card-content { |
| | | margin-bottom: 12px; |
| | | position: relative; |
| | | height: 46px; |
| | | width: 100%; |
| | | |
| | | .content-fix { |
| | | position: absolute; |
| | | left: 0; |
| | | bottom: 0; |
| | | width: 100%; |
| | | } |
| | | } |
| | | |
| | | .total { |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | word-break: break-all; |
| | | white-space: nowrap; |
| | | color: #000; |
| | | margin-top: 4px; |
| | | margin-bottom: 0; |
| | | font-size: 30px; |
| | | line-height: 38px; |
| | | height: 38px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <v-chart |
| | | :forceFit="true" |
| | | :height="height" |
| | | :width="width" |
| | | :data="data" |
| | | :scale="scale" |
| | | :padding="0"> |
| | | <v-tooltip /> |
| | | <v-interval |
| | | :shape="['liquid-fill-gauge']" |
| | | position="transfer*value" |
| | | color="" |
| | | :v-style="{ |
| | | lineWidth: 10, |
| | | opacity: 0.75 |
| | | }" |
| | | :tooltip="[ |
| | | 'transfer*value', |
| | | (transfer, value) => { |
| | | return { |
| | | name: transfer, |
| | | value, |
| | | }; |
| | | }, |
| | | ]" |
| | | ></v-interval> |
| | | <v-guide |
| | | v-for="(row, index) in data" |
| | | :key="index" |
| | | type="text" |
| | | :top="true" |
| | | :position="{ |
| | | gender: row.transfer, |
| | | value: 45 |
| | | }" |
| | | :content="row.value + '%'" |
| | | :v-style="{ |
| | | fontSize: 100, |
| | | textAlign: 'center', |
| | | opacity: 0.75, |
| | | }" |
| | | /> |
| | | </v-chart> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: 'Liquid', |
| | | props: { |
| | | height: { |
| | | type: Number, |
| | | default: 0 |
| | | }, |
| | | width: { |
| | | type: Number, |
| | | default: 0 |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="antv-chart-mini"> |
| | | <div class="chart-wrapper" :style="{ height: 46 }"> |
| | | <v-chart :force-fit="true" :height="height" :data="data" :padding="[36, 0, 18, 0]"> |
| | | <v-tooltip /> |
| | | <v-smooth-area position="x*y" /> |
| | | </v-chart> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import moment from 'moment' |
| | | const data = [] |
| | | const beginDay = new Date().getTime() |
| | | |
| | | for (let i = 0; i < 10; i++) { |
| | | data.push({ |
| | | x: moment(new Date(beginDay + 1000 * 60 * 60 * 24 * i)).format('YYYY-MM-DD'), |
| | | y: Math.round(Math.random() * 10) |
| | | }) |
| | | } |
| | | |
| | | const tooltip = [ |
| | | 'x*y', |
| | | (x, y) => ({ |
| | | name: x, |
| | | value: y |
| | | }) |
| | | ] |
| | | const scale = [{ |
| | | dataKey: 'x', |
| | | min: 2 |
| | | }, { |
| | | dataKey: 'y', |
| | | title: 'æ¶é´', |
| | | min: 1, |
| | | max: 22 |
| | | }] |
| | | |
| | | export default { |
| | | name: 'MiniArea', |
| | | data () { |
| | | return { |
| | | data, |
| | | tooltip, |
| | | scale, |
| | | height: 100 |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | @import "chart"; |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="antv-chart-mini"> |
| | | <div class="chart-wrapper" :style="{ height: 46 }"> |
| | | <v-chart :force-fit="true" :height="height" :data="data" :padding="[36, 5, 18, 5]"> |
| | | <v-tooltip /> |
| | | <v-bar position="x*y" /> |
| | | </v-chart> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import moment from 'moment' |
| | | const data = [] |
| | | const beginDay = new Date().getTime() |
| | | |
| | | for (let i = 0; i < 10; i++) { |
| | | data.push({ |
| | | x: moment(new Date(beginDay + 1000 * 60 * 60 * 24 * i)).format('YYYY-MM-DD'), |
| | | y: Math.round(Math.random() * 10) |
| | | }) |
| | | } |
| | | |
| | | const tooltip = [ |
| | | 'x*y', |
| | | (x, y) => ({ |
| | | name: x, |
| | | value: y |
| | | }) |
| | | ] |
| | | |
| | | const scale = [{ |
| | | dataKey: 'x', |
| | | min: 2 |
| | | }, { |
| | | dataKey: 'y', |
| | | title: 'æ¶é´', |
| | | min: 1, |
| | | max: 30 |
| | | }] |
| | | |
| | | export default { |
| | | name: 'MiniBar', |
| | | data () { |
| | | return { |
| | | data, |
| | | tooltip, |
| | | scale, |
| | | height: 100 |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | @import "chart"; |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="chart-mini-progress"> |
| | | <div class="target" :style="{ left: target + '%'}"> |
| | | <span :style="{ backgroundColor: color }" /> |
| | | <span :style="{ backgroundColor: color }"/> |
| | | </div> |
| | | <div class="progress-wrapper"> |
| | | <div class="progress" :style="{ backgroundColor: color, width: percentage + '%', height: height }"></div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: 'MiniProgress', |
| | | props: { |
| | | target: { |
| | | type: Number, |
| | | default: 0 |
| | | }, |
| | | height: { |
| | | type: String, |
| | | default: '10px' |
| | | }, |
| | | color: { |
| | | type: String, |
| | | default: '#13C2C2' |
| | | }, |
| | | percentage: { |
| | | type: Number, |
| | | default: 0 |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | .chart-mini-progress { |
| | | padding: 5px 0; |
| | | position: relative; |
| | | width: 100%; |
| | | |
| | | .target { |
| | | position: absolute; |
| | | top: 0; |
| | | bottom: 0; |
| | | |
| | | span { |
| | | border-radius: 100px; |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | height: 4px; |
| | | width: 2px; |
| | | |
| | | &:last-child { |
| | | top: auto; |
| | | bottom: 0; |
| | | } |
| | | } |
| | | } |
| | | .progress-wrapper { |
| | | background-color: #f5f5f5; |
| | | position: relative; |
| | | |
| | | .progress { |
| | | transition: all .4s cubic-bezier(.08,.82,.17,1) 0s; |
| | | border-radius: 1px 0 0 1px; |
| | | background-color: #1890ff; |
| | | width: 0; |
| | | height: 100%; |
| | | } |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div :class="prefixCls"> |
| | | <div class="chart-wrapper" :style="{ height: 46 }"> |
| | | <v-chart :force-fit="true" :height="100" :data="dataSource" :scale="scale" :padding="[36, 0, 18, 0]"> |
| | | <v-tooltip /> |
| | | <v-smooth-line position="x*y" :size="2" /> |
| | | <v-smooth-area position="x*y" /> |
| | | </v-chart> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: 'MiniSmoothArea', |
| | | props: { |
| | | prefixCls: { |
| | | type: String, |
| | | default: 'ant-pro-smooth-area' |
| | | }, |
| | | scale: { |
| | | type: [Object, Array], |
| | | required: true |
| | | }, |
| | | dataSource: { |
| | | type: Array, |
| | | required: true |
| | | } |
| | | }, |
| | | data () { |
| | | return { |
| | | height: 100 |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | @import "smooth.area.less"; |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <v-chart :forceFit="true" height="400" :data="data" :padding="[20, 20, 95, 20]" :scale="scale"> |
| | | <v-tooltip></v-tooltip> |
| | | <v-axis :dataKey="axis1Opts.dataKey" :line="axis1Opts.line" :tickLine="axis1Opts.tickLine" :grid="axis1Opts.grid" /> |
| | | <v-axis :dataKey="axis2Opts.dataKey" :line="axis2Opts.line" :tickLine="axis2Opts.tickLine" :grid="axis2Opts.grid" /> |
| | | <v-legend dataKey="user" marker="circle" :offset="30" /> |
| | | <v-coord type="polar" radius="0.8" /> |
| | | <v-line position="item*score" color="user" :size="2" /> |
| | | <v-point position="item*score" color="user" :size="4" shape="circle" /> |
| | | </v-chart> |
| | | </template> |
| | | |
| | | <script> |
| | | const axis1Opts = { |
| | | dataKey: 'item', |
| | | line: null, |
| | | tickLine: null, |
| | | grid: { |
| | | lineStyle: { |
| | | lineDash: null |
| | | }, |
| | | hideFirstLine: false |
| | | } |
| | | } |
| | | const axis2Opts = { |
| | | dataKey: 'score', |
| | | line: null, |
| | | tickLine: null, |
| | | grid: { |
| | | type: 'polygon', |
| | | lineStyle: { |
| | | lineDash: null |
| | | } |
| | | } |
| | | } |
| | | |
| | | const scale = [ |
| | | { |
| | | dataKey: 'score', |
| | | min: 0, |
| | | max: 80 |
| | | }, { |
| | | dataKey: 'user', |
| | | alias: 'ç±»å' |
| | | } |
| | | ] |
| | | |
| | | export default { |
| | | name: 'Radar', |
| | | props: { |
| | | data: { |
| | | type: Array, |
| | | default: null |
| | | } |
| | | }, |
| | | data () { |
| | | return { |
| | | axis1Opts, |
| | | axis2Opts, |
| | | scale |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="rank"> |
| | | <h4 class="title">{{ title }}</h4> |
| | | <ul class="list"> |
| | | <li :key="index" v-for="(item, index) in list"> |
| | | <span :class="index < 3 ? 'active' : null">{{ index + 1 }}</span> |
| | | <span>{{ item.name }}</span> |
| | | <span>{{ item.total }}</span> |
| | | </li> |
| | | </ul> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: 'RankList', |
| | | // ['title', 'list'] |
| | | props: { |
| | | title: { |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | list: { |
| | | type: Array, |
| | | default: null |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | |
| | | .rank { |
| | | padding: 0 32px 32px 72px; |
| | | |
| | | .list { |
| | | margin: 25px 0 0; |
| | | padding: 0; |
| | | list-style: none; |
| | | |
| | | li { |
| | | margin-top: 16px; |
| | | |
| | | span { |
| | | color: rgba(0, 0, 0, .65); |
| | | font-size: 14px; |
| | | line-height: 22px; |
| | | |
| | | &:first-child { |
| | | background-color: #f5f5f5; |
| | | border-radius: 20px; |
| | | display: inline-block; |
| | | font-size: 12px; |
| | | font-weight: 600; |
| | | margin-right: 24px; |
| | | height: 20px; |
| | | line-height: 20px; |
| | | width: 20px; |
| | | text-align: center; |
| | | } |
| | | &.active { |
| | | background-color: #314659; |
| | | color: #fff; |
| | | } |
| | | &:last-child { |
| | | float: right; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .mobile .rank { |
| | | padding: 0 32px 32px 32px; |
| | | } |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <v-chart :width="width" :height="height" :padding="[0]" :data="data" :scale="scale"> |
| | | <v-tooltip :show-title="false" /> |
| | | <v-coord type="rect" direction="TL" /> |
| | | <v-point position="x*y" color="category" shape="cloud" tooltip="value*category" /> |
| | | </v-chart> |
| | | </template> |
| | | |
| | | <script> |
| | | import { registerShape } from 'viser-vue' |
| | | const DataSet = require('@antv/data-set') |
| | | |
| | | const imgUrl = 'https://gw.alipayobjects.com/zos/rmsportal/gWyeGLCdFFRavBGIDzWk.png' |
| | | |
| | | const scale = [ |
| | | { dataKey: 'x', nice: false }, |
| | | { dataKey: 'y', nice: false } |
| | | ] |
| | | |
| | | registerShape('point', 'cloud', { |
| | | draw (cfg, container) { |
| | | return container.addShape('text', { |
| | | attrs: { |
| | | fillOpacity: cfg.opacity, |
| | | fontSize: cfg.origin._origin.size, |
| | | rotate: cfg.origin._origin.rotate, |
| | | text: cfg.origin._origin.text, |
| | | textAlign: 'center', |
| | | fontFamily: cfg.origin._origin.font, |
| | | fill: cfg.color, |
| | | textBaseline: 'Alphabetic', |
| | | ...cfg.style, |
| | | x: cfg.x, |
| | | y: cfg.y |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | |
| | | export default { |
| | | name: 'TagCloud', |
| | | props: { |
| | | tagList: { |
| | | type: Array, |
| | | required: true |
| | | }, |
| | | height: { |
| | | type: Number, |
| | | default: 400 |
| | | }, |
| | | width: { |
| | | type: Number, |
| | | default: 640 |
| | | } |
| | | }, |
| | | data () { |
| | | return { |
| | | data: [], |
| | | scale |
| | | } |
| | | }, |
| | | watch: { |
| | | tagList: function (val) { |
| | | if (val.length > 0) { |
| | | this.initTagCloud(val) |
| | | } |
| | | } |
| | | }, |
| | | mounted () { |
| | | if (this.tagList.length > 0) { |
| | | this.initTagCloud(this.tagList) |
| | | } |
| | | }, |
| | | methods: { |
| | | initTagCloud (dataSource) { |
| | | const { height, width } = this |
| | | |
| | | const dv = new DataSet.View().source(dataSource) |
| | | const range = dv.range('value') |
| | | const min = range[0] |
| | | const max = range[1] |
| | | const imageMask = new Image() |
| | | imageMask.crossOrigin = '' |
| | | imageMask.src = imgUrl |
| | | imageMask.onload = () => { |
| | | dv.transform({ |
| | | type: 'tag-cloud', |
| | | fields: ['name', 'value'], |
| | | size: [width, height], |
| | | imageMask, |
| | | font: 'Verdana', |
| | | padding: 0, |
| | | timeInterval: 5000, // max execute time |
| | | rotate () { |
| | | let random = ~~(Math.random() * 4) % 4 |
| | | if (random === 2) { |
| | | random = 0 |
| | | } |
| | | return random * 90 // 0, 90, 270 |
| | | }, |
| | | fontSize (d) { |
| | | if (d.value) { |
| | | return ((d.value - min) / (max - min)) * (32 - 8) + 8 |
| | | } |
| | | return 0 |
| | | } |
| | | }) |
| | | this.data = dv.rows |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div :style="{ padding: '0 0 32px 32px' }"> |
| | | <h4 :style="{ marginBottom: '20px' }">{{ title }}</h4> |
| | | <v-chart |
| | | height="254" |
| | | :data="data" |
| | | :scale="scale" |
| | | :forceFit="true" |
| | | :padding="['auto', 'auto', '40', '50']"> |
| | | <v-tooltip /> |
| | | <v-axis /> |
| | | <v-bar position="x*y"/> |
| | | </v-chart> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | const tooltip = [ |
| | | 'x*y', |
| | | (x, y) => ({ |
| | | name: x, |
| | | value: y |
| | | }) |
| | | ] |
| | | const scale = [{ |
| | | dataKey: 'x', |
| | | title: 'æ¥æ(天)', |
| | | alias: 'æ¥æ(天)', |
| | | min: 2 |
| | | }, { |
| | | dataKey: 'y', |
| | | title: 'æµé(Gb)', |
| | | alias: 'æµé(Gb)', |
| | | min: 1 |
| | | }] |
| | | |
| | | export default { |
| | | name: 'Bar', |
| | | props: { |
| | | title: { |
| | | type: String, |
| | | default: '' |
| | | } |
| | | }, |
| | | data () { |
| | | return { |
| | | data: [], |
| | | scale, |
| | | tooltip |
| | | } |
| | | }, |
| | | created () { |
| | | this.getMonthBar() |
| | | }, |
| | | methods: { |
| | | getMonthBar () { |
| | | this.$http.get('/analysis/month-bar') |
| | | .then(res => { |
| | | this.data = res.result |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="chart-trend"> |
| | | {{ term }} |
| | | <span>{{ rate }}%</span> |
| | | <span :class="['trend-icon', trend]"><a-icon :type="'caret-' + trend"/></span> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: 'Trend', |
| | | props: { |
| | | term: { |
| | | type: String, |
| | | default: '', |
| | | required: true |
| | | }, |
| | | percentage: { |
| | | type: Number, |
| | | default: null |
| | | }, |
| | | type: { |
| | | type: Boolean, |
| | | default: null |
| | | }, |
| | | target: { |
| | | type: Number, |
| | | default: 0 |
| | | }, |
| | | value: { |
| | | type: Number, |
| | | default: 0 |
| | | }, |
| | | fixed: { |
| | | type: Number, |
| | | default: 2 |
| | | } |
| | | }, |
| | | data () { |
| | | return { |
| | | trend: this.type && 'up' || 'down', |
| | | rate: this.percentage |
| | | } |
| | | }, |
| | | created () { |
| | | const type = this.type === null ? this.value >= this.target : this.type |
| | | this.trend = type ? 'up' : 'down' |
| | | this.rate = (this.percentage === null ? Math.abs(this.value - this.target) * 100 / this.target : this.percentage).toFixed(this.fixed) |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | .chart-trend { |
| | | display: inline-block; |
| | | font-size: 14px; |
| | | line-height: 22px; |
| | | |
| | | .trend-icon { |
| | | font-size: 12px; |
| | | |
| | | &.up, &.down { |
| | | margin-left: 4px; |
| | | position: relative; |
| | | top: 1px; |
| | | |
| | | i { |
| | | font-size: 12px; |
| | | transform: scale(.83); |
| | | } |
| | | } |
| | | |
| | | &.up { |
| | | color: #f5222d; |
| | | } |
| | | &.down { |
| | | color: #52c41a; |
| | | top: -1px; |
| | | } |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | .antv-chart-mini { |
| | | position: relative; |
| | | width: 100%; |
| | | |
| | | .chart-wrapper { |
| | | position: absolute; |
| | | bottom: -28px; |
| | | width: 100%; |
| | | |
| | | /* margin: 0 -5px; |
| | | overflow: hidden;*/ |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | @import "../index"; |
| | | |
| | | @smoothArea-prefix-cls: ~"@{ant-pro-prefix}-smooth-area"; |
| | | |
| | | .@{smoothArea-prefix-cls} { |
| | | position: relative; |
| | | width: 100%; |
| | | |
| | | .chart-wrapper { |
| | | position: absolute; |
| | | bottom: -28px; |
| | | width: 100%; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-modal :title="title" v-model="innerVisible" @ok="onConfirm"> |
| | | <a-form :form="form" :label-col="{ span: 4 }" :wrapper-col="{ span: 20 }"> |
| | | <a-form-item :label="labelText"> |
| | | <a-select v-decorator="rule" placeholder="è¯·éæ©..." > |
| | | <a-select-option v-for="(item,index) in sites" :key="'site-sel-'+index" :value="item">{{ item }}</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | </a-form> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import { BindEntranceGetSelects } from '@/api/modular/main/BindEntranceManage' |
| | | export default { |
| | | name:'wmsSiteChooseModal', |
| | | emits:['update:visible','confirm'], |
| | | props:{ |
| | | type:{ |
| | | type:String, |
| | | default:'in' |
| | | }, |
| | | visible:{ |
| | | type:Boolean, |
| | | default:false |
| | | } |
| | | }, |
| | | data(){ |
| | | return { |
| | | title:'', |
| | | labelText:'', |
| | | innerVisible:false, |
| | | form: this.$form.createForm(this, { name: 'choose-site-form' }), |
| | | sites:[], |
| | | rule:['site',{rules:[ |
| | | { required: true, message: '' } |
| | | ]}] |
| | | } |
| | | }, |
| | | watch:{ |
| | | visible(newVal,oldVal){ |
| | | this.changeInnerVisible() |
| | | }, |
| | | innerVisible(newVal,oldVal){ |
| | | this.changeVisible() |
| | | } |
| | | }, |
| | | methods:{ |
| | | changeInnerVisible(){ |
| | | if (this.visible!==this.innerVisible){ |
| | | this.innerVisible = this.visible |
| | | if (this.innerVisible) { |
| | | this.$nextTick(()=>{ |
| | | this.opened() |
| | | }) |
| | | } |
| | | } |
| | | }, |
| | | changeVisible(){ |
| | | if (this.innerVisible!==this.visible){ |
| | | this.$emit('update:visible',this.innerVisible) |
| | | } |
| | | }, |
| | | opened(){ |
| | | this.initText() |
| | | this.getSites() |
| | | }, |
| | | initText(){ |
| | | if (this.type==='in') { |
| | | this.title="å
¥åºå£éæ©" |
| | | this.labelText = "å
¥åºå£" |
| | | this.rule[1].rules[0].message = "è¯·éæ©å
¥åºå£" |
| | | } else { |
| | | this.title="åºåºå£éæ©" |
| | | this.labelText = "åºåºå£" |
| | | this.rule[1].rules[0].message = "è¯·éæ©åºåºå£" |
| | | } |
| | | }, |
| | | getSites(){ |
| | | if (this.sites.length===0) { |
| | | BindEntranceGetSelects().then(d=>{ |
| | | this.sites = d.data || [] |
| | | }).catch(()=>{ |
| | | |
| | | }) |
| | | } |
| | | }, |
| | | onConfirm(){ |
| | | this.form.validateFields((err, values) => { |
| | | if (!err) { |
| | | this.innerVisible = false; |
| | | this.$emit('confirm',values.site) |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | created(){ |
| | | this.changeInnerVisible() |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <span> |
| | | {{ lastTime | format }} |
| | | </span> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | function fixedZero (val) { |
| | | return val * 1 < 10 ? `0${val}` : val |
| | | } |
| | | |
| | | export default { |
| | | name: 'CountDown', |
| | | props: { |
| | | format: { |
| | | type: Function, |
| | | default: undefined |
| | | }, |
| | | target: { |
| | | type: [Date, Number], |
| | | required: true |
| | | }, |
| | | onEnd: { |
| | | type: Function, |
| | | default: () => ({}) |
| | | } |
| | | }, |
| | | data () { |
| | | return { |
| | | dateTime: '0', |
| | | originTargetTime: 0, |
| | | lastTime: 0, |
| | | timer: 0, |
| | | interval: 1000 |
| | | } |
| | | }, |
| | | filters: { |
| | | format (time) { |
| | | const hours = 60 * 60 * 1000 |
| | | const minutes = 60 * 1000 |
| | | |
| | | const h = Math.floor(time / hours) |
| | | const m = Math.floor((time - h * hours) / minutes) |
| | | const s = Math.floor((time - h * hours - m * minutes) / 1000) |
| | | return `${fixedZero(h)}:${fixedZero(m)}:${fixedZero(s)}` |
| | | } |
| | | }, |
| | | created () { |
| | | this.initTime() |
| | | this.tick() |
| | | }, |
| | | methods: { |
| | | initTime () { |
| | | let lastTime = 0 |
| | | let targetTime = 0 |
| | | this.originTargetTime = this.target |
| | | try { |
| | | if (Object.prototype.toString.call(this.target) === '[object Date]') { |
| | | targetTime = this.target |
| | | } else { |
| | | targetTime = new Date(this.target).getTime() |
| | | } |
| | | } catch (e) { |
| | | throw new Error('invalid target prop') |
| | | } |
| | | |
| | | lastTime = targetTime - new Date().getTime() |
| | | |
| | | this.lastTime = lastTime < 0 ? 0 : lastTime |
| | | }, |
| | | tick () { |
| | | const { onEnd } = this |
| | | |
| | | this.timer = setTimeout(() => { |
| | | if (this.lastTime < this.interval) { |
| | | clearTimeout(this.timer) |
| | | this.lastTime = 0 |
| | | if (typeof onEnd === 'function') { |
| | | onEnd() |
| | | } |
| | | } else { |
| | | this.lastTime -= this.interval |
| | | this.tick() |
| | | } |
| | | }, this.interval) |
| | | } |
| | | }, |
| | | beforeUpdate () { |
| | | if (this.originTargetTime !== this.target) { |
| | | this.initTime() |
| | | } |
| | | }, |
| | | beforeDestroy () { |
| | | clearTimeout(this.timer) |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import CountDown from './CountDown' |
| | | |
| | | export default CountDown |
¶Ô±ÈÐÂÎļþ |
| | |
| | | # CountDown åè®¡æ¶ |
| | | |
| | | å计æ¶ç»ä»¶ã |
| | | |
| | | |
| | | |
| | | å¼ç¨æ¹å¼ï¼ |
| | | |
| | | ```javascript |
| | | import CountDown from '@/components/CountDown/CountDown' |
| | | |
| | | export default { |
| | | components: { |
| | | CountDown |
| | | } |
| | | } |
| | | ``` |
| | | |
| | | |
| | | |
| | | ## ä»£ç æ¼ç¤º [demo](https://pro.loacg.com/test/home) |
| | | |
| | | ```html |
| | | <count-down :target="new Date().getTime() + 3000000" :on-end="onEndHandle" /> |
| | | ``` |
| | | |
| | | |
| | | |
| | | ## API |
| | | |
| | | | åæ° | 说æ | ç±»å | é»è®¤å¼ | |
| | | |----------|------------------------------------------|-------------|-------| |
| | | | target | ç®æ æ¶é´ | Date | - | |
| | | | onEnd | å计æ¶ç»æåè° | funtion | -| |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-tree-select |
| | | :dropdownStyle="{ maxHeight: '300px', overflow: 'auto' }" |
| | | allowClear |
| | | :treeData="orgTree" |
| | | :placeholder="placeholder" |
| | | treeDefaultExpandAll |
| | | @change="onchange" |
| | | > |
| | | <span slot="title" slot-scope="{ id }">{{ id }}</span> |
| | | </a-tree-select> |
| | | </template> |
| | | <script> |
| | | import { getOrgTree } from '@/api/modular/system/orgManage' |
| | | |
| | | export default { |
| | | name: 'DepartSelect', |
| | | props: { |
| | | placeholder: { |
| | | type: String |
| | | }, |
| | | value: { |
| | | type: String |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | orgTree: [] |
| | | } |
| | | }, |
| | | created() { |
| | | this.getOrgData() |
| | | }, |
| | | methods: { |
| | | getOrgData() { |
| | | getOrgTree().then((res) => { |
| | | this.orgTree = res |
| | | }) |
| | | }, |
| | | /** |
| | | * éæ©æ æºæï¼åå§åæºæåç§°äºè¡¨åä¸ |
| | | */ |
| | | onchange (value) { |
| | | this.$emit('change', value) |
| | | } |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import DepartmentSelect from './DepartmentSelect' |
| | | |
| | | export default DepartmentSelect |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div :class="['description-list', size, layout === 'vertical' ? 'vertical': 'horizontal']"> |
| | | <div v-if="title" class="title">{{ title }}</div> |
| | | <a-row> |
| | | <slot></slot> |
| | | </a-row> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { Col } from 'ant-design-vue/es/grid/' |
| | | |
| | | const Item = { |
| | | name: 'DetailListItem', |
| | | props: { |
| | | term: { |
| | | type: String, |
| | | default: '', |
| | | required: false |
| | | } |
| | | }, |
| | | inject: { |
| | | col: { |
| | | type: Number |
| | | } |
| | | }, |
| | | render () { |
| | | return ( |
| | | <Col {...{ props: responsive[this.col] }}> |
| | | <div class="term">{this.$props.term}</div> |
| | | <div class="content">{this.$slots.default}</div> |
| | | </Col> |
| | | ) |
| | | } |
| | | } |
| | | |
| | | const responsive = { |
| | | 1: { xs: 24 }, |
| | | 2: { xs: 24, sm: 12 }, |
| | | 3: { xs: 24, sm: 12, md: 8 }, |
| | | 4: { xs: 24, sm: 12, md: 6 } |
| | | } |
| | | |
| | | export default { |
| | | name: 'DetailList', |
| | | Item: Item, |
| | | components: { |
| | | Col |
| | | }, |
| | | props: { |
| | | title: { |
| | | type: String, |
| | | default: '', |
| | | required: false |
| | | }, |
| | | col: { |
| | | type: Number, |
| | | required: false, |
| | | default: 3 |
| | | }, |
| | | size: { |
| | | type: String, |
| | | required: false, |
| | | default: 'large' |
| | | }, |
| | | layout: { |
| | | type: String, |
| | | required: false, |
| | | default: 'horizontal' |
| | | } |
| | | }, |
| | | provide () { |
| | | return { |
| | | col: this.col > 4 ? 4 : this.col |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | |
| | | .description-list { |
| | | |
| | | .title { |
| | | color: rgba(0,0,0,.85); |
| | | font-size: 14px; |
| | | font-weight: 500; |
| | | margin-bottom: 16px; |
| | | } |
| | | |
| | | /deep/ .term { |
| | | color: rgba(0,0,0,.85); |
| | | display: table-cell; |
| | | line-height: 20px; |
| | | margin-right: 8px; |
| | | padding-bottom: 16px; |
| | | white-space: nowrap; |
| | | |
| | | &:not(:empty):after { |
| | | content: ":"; |
| | | margin: 0 8px 0 2px; |
| | | position: relative; |
| | | top: -.5px; |
| | | } |
| | | } |
| | | |
| | | /deep/ .content { |
| | | color: rgba(0,0,0,.65); |
| | | display: table-cell; |
| | | min-height: 22px; |
| | | line-height: 22px; |
| | | padding-bottom: 16px; |
| | | width: 100%; |
| | | &:empty { |
| | | content: ' '; |
| | | height: 38px; |
| | | padding-bottom: 16px; |
| | | } |
| | | } |
| | | |
| | | &.small { |
| | | |
| | | .title { |
| | | font-size: 14px; |
| | | color: rgba(0, 0, 0, .65); |
| | | font-weight: normal; |
| | | margin-bottom: 12px; |
| | | } |
| | | /deep/ .term, .content { |
| | | padding-bottom: 8px; |
| | | } |
| | | } |
| | | |
| | | &.large { |
| | | /deep/ .term, .content { |
| | | padding-bottom: 16px; |
| | | } |
| | | |
| | | .title { |
| | | font-size: 16px; |
| | | } |
| | | } |
| | | |
| | | &.vertical { |
| | | .term { |
| | | padding-bottom: 8px; |
| | | } |
| | | /deep/ .term, .content { |
| | | display: block; |
| | | } |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import DescriptionList from './DescriptionList' |
| | | export default DescriptionList |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import Modal from 'ant-design-vue/es/modal' |
| | | export default (Vue) => { |
| | | function dialog (component, componentProps, modalProps) { |
| | | const _vm = this |
| | | modalProps = modalProps || {} |
| | | if (!_vm || !_vm._isVue) { |
| | | return |
| | | } |
| | | let dialogDiv = document.querySelector('body>div[type=dialog]') |
| | | if (!dialogDiv) { |
| | | dialogDiv = document.createElement('div') |
| | | dialogDiv.setAttribute('type', 'dialog') |
| | | document.body.appendChild(dialogDiv) |
| | | } |
| | | |
| | | const handle = function (checkFunction, afterHandel) { |
| | | if (checkFunction instanceof Function) { |
| | | const res = checkFunction() |
| | | if (res instanceof Promise) { |
| | | res.then(c => { |
| | | c && afterHandel() |
| | | }) |
| | | } else { |
| | | res && afterHandel() |
| | | } |
| | | } else { |
| | | // checkFunction && afterHandel() |
| | | checkFunction || afterHandel() |
| | | } |
| | | } |
| | | |
| | | const dialogInstance = new Vue({ |
| | | data () { |
| | | return { |
| | | visible: true |
| | | } |
| | | }, |
| | | router: _vm.$router, |
| | | store: _vm.$store, |
| | | mounted () { |
| | | this.$on('close', (v) => { |
| | | this.handleClose() |
| | | }) |
| | | }, |
| | | methods: { |
| | | handleClose () { |
| | | handle(this.$refs._component.onCancel, () => { |
| | | this.visible = false |
| | | this.$refs._component.$emit('close') |
| | | this.$refs._component.$emit('cancel') |
| | | dialogInstance.$destroy() |
| | | }) |
| | | }, |
| | | handleOk () { |
| | | handle(this.$refs._component.onOK || this.$refs._component.onOk, () => { |
| | | this.visible = false |
| | | this.$refs._component.$emit('close') |
| | | this.$refs._component.$emit('ok') |
| | | dialogInstance.$destroy() |
| | | }) |
| | | } |
| | | }, |
| | | render: function (h) { |
| | | const that = this |
| | | const modalModel = modalProps && modalProps.model |
| | | if (modalModel) { |
| | | delete modalProps.model |
| | | } |
| | | const ModalProps = Object.assign({}, modalModel && { model: modalModel } || {}, { |
| | | attrs: Object.assign({}, { |
| | | ...(modalProps.attrs || modalProps) |
| | | }, { |
| | | visible: this.visible |
| | | }), |
| | | on: Object.assign({}, { |
| | | ...(modalProps.on || modalProps) |
| | | }, { |
| | | ok: () => { |
| | | that.handleOk() |
| | | }, |
| | | cancel: () => { |
| | | that.handleClose() |
| | | } |
| | | }) |
| | | }) |
| | | |
| | | const componentModel = componentProps && componentProps.model |
| | | if (componentModel) { |
| | | delete componentProps.model |
| | | } |
| | | const ComponentProps = Object.assign({}, componentModel && { model: componentModel } || {}, { |
| | | ref: '_component', |
| | | attrs: Object.assign({}, { |
| | | ...((componentProps && componentProps.attrs) || componentProps) |
| | | }), |
| | | on: Object.assign({}, { |
| | | ...((componentProps && componentProps.on) || componentProps) |
| | | }) |
| | | }) |
| | | |
| | | return h(Modal, ModalProps, [h(component, ComponentProps)]) |
| | | } |
| | | }).$mount(dialogDiv) |
| | | } |
| | | |
| | | Object.defineProperty(Vue.prototype, '$dialog', { |
| | | get: () => { |
| | | return function () { |
| | | dialog.apply(this, arguments) |
| | | } |
| | | } |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div :class="prefixCls"> |
| | | <quill-editor |
| | | v-model="content" |
| | | ref="myQuillEditor" |
| | | :options="editorOption" |
| | | @blur="onEditorBlur($event)" |
| | | @focus="onEditorFocus($event)" |
| | | @ready="onEditorReady($event)" |
| | | @change="onEditorChange($event)"> |
| | | </quill-editor> |
| | | |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import 'quill/dist/quill.core.css' |
| | | import 'quill/dist/quill.snow.css' |
| | | import 'quill/dist/quill.bubble.css' |
| | | |
| | | import { quillEditor } from 'vue-quill-editor' |
| | | |
| | | export default { |
| | | name: 'QuillEditor', |
| | | components: { |
| | | quillEditor |
| | | }, |
| | | props: { |
| | | prefixCls: { |
| | | type: String, |
| | | default: 'ant-editor-quill' |
| | | }, |
| | | // è¡¨åæ ¡éªç¨å段 |
| | | // eslint-disable-next-line |
| | | value: { |
| | | type: String |
| | | } |
| | | }, |
| | | data () { |
| | | return { |
| | | content: null, |
| | | editorOption: { |
| | | // some quill options |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | onEditorBlur (quill) { |
| | | }, |
| | | onEditorFocus (quill) { |
| | | }, |
| | | onEditorReady (quill) { |
| | | }, |
| | | onEditorChange ({ quill, html, text }) { |
| | | this.$emit('change', html) |
| | | } |
| | | }, |
| | | watch: { |
| | | value (val) { |
| | | this.content = val |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | @import url('../index.less'); |
| | | |
| | | /* è¦ç quill é»è®¤è¾¹æ¡åè§ä¸º ant é»è®¤åè§ï¼ç¨äºç»ä¸ ant ç»ä»¶é£æ ¼ */ |
| | | .ant-editor-quill { |
| | | /deep/ .ql-toolbar.ql-snow { |
| | | border-radius: @border-radius-base @border-radius-base 0 0; |
| | | } |
| | | /deep/ .ql-container.ql-snow { |
| | | border-radius: 0 0 @border-radius-base @border-radius-base; |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <div id="editor" ref="myEditor"></div> |
| | | <slot></slot> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import WangEditor from 'wangeditor' |
| | | export default { |
| | | name: 'ComponentWangeditor', |
| | | data () { |
| | | return { |
| | | edit: '' |
| | | } |
| | | }, |
| | | props: { |
| | | value: { |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | config: { |
| | | type: Object, |
| | | default: () => { |
| | | return {} |
| | | } |
| | | }, |
| | | uploadConfig: { |
| | | type: Object, |
| | | default: () => { |
| | | return { |
| | | method: 'http', // æ¯æcustom(objurl)åhttp(æå¡å¨)åbase64 |
| | | url: '/' |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | computed: { |
| | | customConfig () { |
| | | return { |
| | | pasteFilterStyle: false, // å
³éæç²è´´æ ·å¼çè¿æ»¤ |
| | | pasteIgnoreImg: false, // ç²è´´æ¶ä¸å¿½ç¥å¾ç |
| | | ...this.config |
| | | } |
| | | } |
| | | }, |
| | | watch: { |
| | | |
| | | }, |
| | | components: { |
| | | |
| | | }, |
| | | methods: { |
| | | readBlobAsDataURL (blob, callback) { |
| | | var a = new FileReader() |
| | | a.onload = function (e) { callback(e.target.result) } |
| | | a.readAsDataURL(blob) |
| | | }, |
| | | initEditor () { |
| | | var self = this |
| | | this.editor = new WangEditor(this.$refs.myEditor) |
| | | // é
ç½® onchange äºä»¶ |
| | | this.editor.customConfig = this.customConfig |
| | | this.editor.customConfig.uploadImgMaxLength = 5 |
| | | this.editor.change = function () { // ç¼è¾åºåå
容ååæ¶ |
| | | self.$emit('input', this.txt.html()) |
| | | self.$emit('onchange', this.txt.html(), this.txt) |
| | | // editor.txt.html('.....') //设置ç¼è¾å¨å
容 |
| | | // editor.txt.clear() //æ¸
空ç¼è¾å¨å
容 |
| | | // editor.txt.append('<p>追å çå
容</p>')//ç»§ç»è¿½å å
容ã |
| | | // editor.txt.text() // 读å text |
| | | // editor.txt.getJSON() // è·å JSON æ ¼å¼çå
容 |
| | | } |
| | | this.editor.customConfig.customUploadImg = function (files, insert) { |
| | | if (self.uploadConfig.method === 'custom') { |
| | | files.forEach(file => { |
| | | var fileUrl = URL.createObjectURL(file) |
| | | insert(fileUrl) |
| | | }) |
| | | } |
| | | if (self.uploadConfig.method === 'base64') { |
| | | files.forEach(file => { |
| | | self.readBlobAsDataURL(file, function (dataurl) { |
| | | insert(dataurl) |
| | | }) |
| | | }) |
| | | } |
| | | if (self.uploadConfig.method === 'http') { |
| | | if (self.uploadConfig.callback) { |
| | | self.uploadConfig.callback(files, insert) |
| | | } else { |
| | | var formData = new FormData() |
| | | files.forEach(file => { |
| | | formData.append('file', file) |
| | | }) |
| | | self.$axios.post(self.uploadConfig.url, formData).then(({ data }) => { |
| | | if (data.status === 'success') { |
| | | insert(data.url) |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | |
| | | this.editor.create() // çæç¼è¾å¨ |
| | | this.editor.txt.text(this.value) // çæç¼è¾å¨ |
| | | this.$emit('oninit', this.editor) |
| | | } |
| | | }, |
| | | beforeCreate () { |
| | | }, |
| | | created () { |
| | | }, |
| | | beforeMount () { |
| | | }, |
| | | mounted () { |
| | | this.initEditor() |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style > |
| | | .w-e-toolbar{ |
| | | flex-wrap:wrap; |
| | | } |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <script> |
| | | import Tooltip from 'ant-design-vue/es/tooltip' |
| | | import { cutStrByFullLength, getStrFullLength } from '@/components/_util/util' |
| | | /* |
| | | const isSupportLineClamp = document.body.style.webkitLineClamp !== undefined; |
| | | |
| | | const TooltipOverlayStyle = { |
| | | overflowWrap: 'break-word', |
| | | wordWrap: 'break-word', |
| | | }; |
| | | */ |
| | | |
| | | export default { |
| | | name: 'Ellipsis', |
| | | components: { |
| | | Tooltip |
| | | }, |
| | | props: { |
| | | prefixCls: { |
| | | type: String, |
| | | default: 'ant-pro-ellipsis' |
| | | }, |
| | | tooltip: { |
| | | type: Boolean |
| | | }, |
| | | length: { |
| | | type: Number, |
| | | required: true |
| | | }, |
| | | lines: { |
| | | type: Number, |
| | | default: 1 |
| | | }, |
| | | fullWidthRecognition: { |
| | | type: Boolean, |
| | | default: false |
| | | } |
| | | }, |
| | | methods: { |
| | | getStrDom (str, fullLength) { |
| | | return ( |
| | | <span>{ cutStrByFullLength(str, this.length) + (fullLength > this.length ? '...' : '') }</span> |
| | | ) |
| | | }, |
| | | getTooltip (fullStr, fullLength) { |
| | | return ( |
| | | <Tooltip> |
| | | <template slot="title">{ fullStr }</template> |
| | | { this.getStrDom(fullStr, fullLength) } |
| | | </Tooltip> |
| | | ) |
| | | } |
| | | }, |
| | | render () { |
| | | const { tooltip, length } = this.$props |
| | | const str = this.$slots.default.map(vNode => vNode.text).join('') |
| | | const fullLength = getStrFullLength(str) |
| | | const strDom = tooltip && fullLength > length ? this.getTooltip(str, fullLength) : this.getStrDom(str, fullLength) |
| | | return ( |
| | | strDom |
| | | ) |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import Ellipsis from './Ellipsis' |
| | | |
| | | export default Ellipsis |
¶Ô±ÈÐÂÎļþ |
| | |
| | | # Ellipsis ææ¬èªå¨çç¥å· |
| | | |
| | | ææ¬è¿é¿èªå¨å¤ççç¥å·ï¼æ¯ææç
§ææ¬é¿åº¦åæå¤§è¡æ°ä¸¤ç§æ¹å¼æªåã |
| | | |
| | | |
| | | |
| | | å¼ç¨æ¹å¼ï¼ |
| | | |
| | | ```javascript |
| | | import Ellipsis from '@/components/Ellipsis' |
| | | |
| | | export default { |
| | | components: { |
| | | Ellipsis |
| | | } |
| | | } |
| | | ``` |
| | | |
| | | |
| | | |
| | | ## ä»£ç æ¼ç¤º [demo](https://pro.loacg.com/test/home) |
| | | |
| | | ```html |
| | | <ellipsis :length="100" tooltip> |
| | | There were injuries alleged in three cases in 2015, and a |
| | | fourth incident in September, according to the safety recall report. After meeting with US regulators in October, the firm decided to issue a voluntary recall. |
| | | </ellipsis> |
| | | ``` |
| | | |
| | | |
| | | |
| | | ## API |
| | | |
| | | |
| | | åæ° | 说æ | ç±»å | é»è®¤å¼ |
| | | ----|------|-----|------ |
| | | tooltip | ç§»å¨å°ææ¬å±ç¤ºå®æ´å
容çæç¤º | boolean | - |
| | | length | 卿ç
§é¿åº¦æªåä¸çææ¬æå¤§å符æ°ï¼è¶
è¿åæªåçç¥ | number | - |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="exception"> |
| | | <div class="imgBlock"> |
| | | <div class="imgEle" :style="{backgroundImage: `url(${config[type].img})`}"> |
| | | </div> |
| | | </div> |
| | | <div class="content"> |
| | | <h1>{{ config[type].title }}</h1> |
| | | <div class="desc">{{ config[type].desc }}</div> |
| | | <div class="actions"> |
| | | <a-button type="primary" @click="handleToHome">è¿åé¦é¡µ</a-button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import types from './type' |
| | | |
| | | export default { |
| | | name: 'Exception', |
| | | props: { |
| | | type: { |
| | | type: String, |
| | | default: '404' |
| | | } |
| | | }, |
| | | data () { |
| | | return { |
| | | config: types |
| | | } |
| | | }, |
| | | methods: { |
| | | handleToHome () { |
| | | this.$router.push({ name: 'Console' }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="less"> |
| | | @import "~ant-design-vue/lib/style/index"; |
| | | |
| | | .exception { |
| | | display: flex; |
| | | align-items: center; |
| | | height: 80%; |
| | | min-height: 500px; |
| | | |
| | | .imgBlock { |
| | | flex: 0 0 62.5%; |
| | | width: 62.5%; |
| | | padding-right: 152px; |
| | | zoom: 1; |
| | | &::before, |
| | | &::after { |
| | | content: ' '; |
| | | display: table; |
| | | } |
| | | &::after { |
| | | clear: both; |
| | | height: 0; |
| | | font-size: 0; |
| | | visibility: hidden; |
| | | } |
| | | } |
| | | |
| | | .imgEle { |
| | | float: right; |
| | | width: 100%; |
| | | max-width: 430px; |
| | | height: 360px; |
| | | background-repeat: no-repeat; |
| | | background-position: 50% 50%; |
| | | background-size: contain; |
| | | } |
| | | |
| | | .content { |
| | | flex: auto; |
| | | |
| | | h1 { |
| | | margin-bottom: 24px; |
| | | color: #434e59; |
| | | font-weight: 600; |
| | | font-size: 72px; |
| | | line-height: 72px; |
| | | } |
| | | |
| | | .desc { |
| | | margin-bottom: 16px; |
| | | color: @text-color-secondary; |
| | | font-size: 20px; |
| | | line-height: 28px; |
| | | } |
| | | |
| | | .actions { |
| | | button:not(:last-child) { |
| | | margin-right: 8px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | @media screen and (max-width: @screen-xl) { |
| | | .exception { |
| | | .imgBlock { |
| | | padding-right: 88px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | @media screen and (max-width: @screen-sm) { |
| | | .exception { |
| | | display: block; |
| | | text-align: center; |
| | | .imgBlock { |
| | | margin: 0 auto 24px; |
| | | padding-right: 0; |
| | | } |
| | | } |
| | | } |
| | | |
| | | @media screen and (max-width: @screen-xs) { |
| | | .exception { |
| | | .imgBlock { |
| | | margin-bottom: -24px; |
| | | overflow: hidden; |
| | | } |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import ExceptionPage from './ExceptionPage.vue' |
| | | export default ExceptionPage |
¶Ô±ÈÐÂÎļþ |
| | |
| | | const types = { |
| | | 403: { |
| | | img: 'https://gw.alipayobjects.com/zos/rmsportal/wZcnGqRDyhPOEYFcZDnb.svg', |
| | | title: '403', |
| | | desc: 'æ±æï¼ä½ æ æè®¿é®è¯¥é¡µé¢' |
| | | }, |
| | | 404: { |
| | | img: 'https://gw.alipayobjects.com/zos/rmsportal/KpnpchXsobRgLElEozzI.svg', |
| | | title: '404', |
| | | desc: 'æ±æï¼ä½ 访é®ç页é¢ä¸å卿ä»å¨å¼åä¸' |
| | | }, |
| | | 500: { |
| | | img: 'https://gw.alipayobjects.com/zos/rmsportal/RVRUAYdCGeYNBWoKiIwB.svg', |
| | | title: '500', |
| | | desc: 'æ±æï¼æå¡å¨åºéäº' |
| | | } |
| | | } |
| | | |
| | | export default types |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div :class="prefixCls"> |
| | | <div style="float: left"> |
| | | <slot name="extra">{{ extra }}</slot> |
| | | </div> |
| | | <div style="float: right"> |
| | | <slot></slot> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: 'FooterToolBar', |
| | | props: { |
| | | prefixCls: { |
| | | type: String, |
| | | default: 'ant-pro-footer-toolbar' |
| | | }, |
| | | extra: { |
| | | type: [String, Object], |
| | | default: '' |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import FooterToolBar from './FooterToolBar' |
| | | import './index.less' |
| | | |
| | | export default FooterToolBar |
¶Ô±ÈÐÂÎļþ |
| | |
| | | @import "../index"; |
| | | |
| | | @footer-toolbar-prefix-cls: ~"@{ant-pro-prefix}-footer-toolbar"; |
| | | |
| | | .@{footer-toolbar-prefix-cls} { |
| | | position: fixed; |
| | | width: 100%; |
| | | bottom: 0; |
| | | right: 0; |
| | | height: 56px; |
| | | line-height: 56px; |
| | | box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.03); |
| | | background: #fff; |
| | | border-top: 1px solid #e8e8e8; |
| | | padding: 0 24px; |
| | | z-index: 9; |
| | | |
| | | &:after { |
| | | content: ""; |
| | | display: block; |
| | | clear: both; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | # FooterToolbar åºé¨å·¥å
·æ |
| | | |
| | | åºå®å¨åºé¨çå·¥å
·æ ã |
| | | |
| | | |
| | | |
| | | ## 使¶ä½¿ç¨ |
| | | |
| | | åºå®å¨å
容åºåçåºé¨ï¼ä¸éæ»å¨æ¡ç§»å¨ï¼å¸¸ç¨äºé¿é¡µé¢çæ°æ®æéåæäº¤å·¥ä½ã |
| | | |
| | | |
| | | |
| | | å¼ç¨æ¹å¼ï¼ |
| | | |
| | | ```javascript |
| | | import FooterToolBar from '@/components/FooterToolbar' |
| | | |
| | | export default { |
| | | components: { |
| | | FooterToolBar |
| | | } |
| | | } |
| | | ``` |
| | | |
| | | |
| | | |
| | | ## ä»£ç æ¼ç¤º |
| | | |
| | | ```html |
| | | <footer-tool-bar> |
| | | <a-button type="primary" @click="validate" :loading="loading">æäº¤</a-button> |
| | | </footer-tool-bar> |
| | | ``` |
| | | æ |
| | | ```html |
| | | <footer-tool-bar extra="æ©å±ä¿¡æ¯æç¤º"> |
| | | <a-button type="primary" @click="validate" :loading="loading">æäº¤</a-button> |
| | | </footer-tool-bar> |
| | | ``` |
| | | |
| | | |
| | | ## API |
| | | |
| | | åæ° | 说æ | ç±»å | é»è®¤å¼ |
| | | ----|------|-----|------ |
| | | children (slot) | å·¥å
·æ å
容ï¼åå³å¯¹é½ | - | - |
| | | extra | é¢å¤ä¿¡æ¯ï¼åå·¦å¯¹é½ | String, Object | - |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="footer"> |
| | | <div class="links"> |
| | | </div> |
| | | <div class="copyright"> |
| | | çæææ Copyright©ç½ä¼¯æ³°å
|
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: 'GlobalFooter', |
| | | data () { |
| | | return {} |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | .footer { |
| | | padding: 0 16px; |
| | | margin: 0 0 10px; |
| | | text-align: center; |
| | | |
| | | .links { |
| | | margin-bottom: 8px; |
| | | |
| | | a { |
| | | color: rgba(0, 0, 0, 0.45); |
| | | |
| | | &:hover { |
| | | color: rgba(0, 0, 0, 0.65); |
| | | } |
| | | |
| | | &:not(:last-child) { |
| | | margin-right: 40px; |
| | | } |
| | | } |
| | | } |
| | | .copyright { |
| | | color: rgba(0, 0, 0, 0.45); |
| | | font-size: 14px; |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import GlobalFooter from './GlobalFooter' |
| | | export default GlobalFooter |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <transition name="showHeader"> |
| | | <div v-if="visible" class="header-animat"> |
| | | <a-layout-header |
| | | v-if="visible" |
| | | :class="[fixedHeader && 'ant-header-fixedHeader', sidebarOpened ? 'ant-header-side-opened' : 'ant-header-side-closed', ]" |
| | | :style="{ padding: '0', height: '55px' }"> |
| | | <div v-if="mode === 'sidemenu'" class="header"> |
| | | |
| | | <a-menu style="height: 55px; border-bottom: 0px;" mode="horizontal" :default-selected-keys="this.defApp"> |
| | | <a-icon |
| | | v-if="device==='mobile'" |
| | | class="trigger" |
| | | :type="collapsed ? 'menu-fold' : 'menu-unfold'" |
| | | @click="toggle" /> |
| | | <a-icon |
| | | v-else |
| | | class="trigger" |
| | | :type="collapsed ? 'menu-unfold' : 'menu-fold'" |
| | | @click="toggle" |
| | | style="padding-left: 20px; padding-right: 20px;" /> |
| | | |
| | | <a-menu-item |
| | | v-for="(item) in userInfo.apps" |
| | | :key="item.code" |
| | | style="top:0px; line-height: 55px; padding-left: 10px; padding-right: 10px" |
| | | @click="switchApp(item.code)"> |
| | | {{ item.name }} |
| | | </a-menu-item> |
| | | <user-menu></user-menu> |
| | | </a-menu> |
| | | |
| | | </div> |
| | | <div v-else :class="['top-nav-header-index', theme]"> |
| | | |
| | | <div class="header-index-wide"> |
| | | <div class="header-index-left"> |
| | | <logo class="top-nav-header" :show-title="device !== 'mobile'" /> |
| | | <s-menu v-if="device !== 'mobile'" mode="horizontal" :menu="menus" :theme="theme" /> |
| | | <a-icon v-else class="trigger" :type="collapsed ? 'menu-fold' : 'menu-unfold'" @click="toggle" /> |
| | | </div> |
| | | <user-menu class="header-index-right"></user-menu> |
| | | </div> |
| | | </div> |
| | | </a-layout-header> |
| | | </div> |
| | | </transition> |
| | | </template> |
| | | |
| | | <script> |
| | | import UserMenu from '../tools/UserMenu' |
| | | import SMenu from '../Menu/' |
| | | import Logo from '../tools/Logo' |
| | | import { |
| | | mixin |
| | | } from '@/utils/mixin' |
| | | import { |
| | | mapActions, |
| | | mapGetters |
| | | } from 'vuex' |
| | | import { |
| | | ALL_APPS_MENU |
| | | } from '@/store/mutation-types' |
| | | import Vue from 'vue' |
| | | import { |
| | | message |
| | | } from 'ant-design-vue/es' |
| | | import Enumerable from 'linq' |
| | | |
| | | export default { |
| | | name: 'GlobalHeader', |
| | | components: { |
| | | UserMenu, |
| | | SMenu, |
| | | Logo |
| | | }, |
| | | computed: { |
| | | ...mapGetters(['userInfo']) |
| | | }, |
| | | created() { |
| | | // this.defApp.push(Vue.ls.get(ALL_APPS_MENU)[0].code) |
| | | var defautMenu = Enumerable.from(Vue.ls.get(ALL_APPS_MENU)).firstOrDefault(x => x.active === 'Y') |
| | | if (defautMenu !== undefined) { |
| | | this.defApp.push(defautMenu.code) |
| | | } |
| | | }, |
| | | mixins: [mixin], |
| | | props: { |
| | | mode: { |
| | | type: String, |
| | | // sidemenu, topmenu |
| | | default: 'sidemenu' |
| | | }, |
| | | menus: { |
| | | type: Array, |
| | | required: true |
| | | }, |
| | | theme: { |
| | | type: String, |
| | | required: false, |
| | | default: 'dark' |
| | | }, |
| | | collapsed: { |
| | | type: Boolean, |
| | | required: false, |
| | | default: false |
| | | }, |
| | | device: { |
| | | type: String, |
| | | required: false, |
| | | default: 'desktop' |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | visible: true, |
| | | oldScrollTop: 0, |
| | | defApp: [] |
| | | } |
| | | }, |
| | | mounted() { |
| | | document.addEventListener('scroll', this.handleScroll, { |
| | | passive: true |
| | | }) |
| | | }, |
| | | methods: { |
| | | ...mapActions(['MenuChange']), |
| | | |
| | | /** |
| | | * åºç¨åæ¢ |
| | | */ |
| | | switchApp(appCode) { |
| | | this.defApp = [] |
| | | const applicationData = this.userInfo.apps.filter(item => item.code === appCode) |
| | | const hideMessage = message.loading('æ£å¨åæ¢åºç¨ï¼', 0) |
| | | this.MenuChange(applicationData[0]).then((res) => { |
| | | hideMessage() |
| | | // eslint-disable-next-line handle-callback-err |
| | | }).catch((err) => { |
| | | message.error('åºç¨åæ¢å¼å¸¸') |
| | | }) |
| | | }, |
| | | handleScroll() { |
| | | if (!this.autoHideHeader) { |
| | | return |
| | | } |
| | | |
| | | const scrollTop = document.body.scrollTop + document.documentElement.scrollTop |
| | | if (!this.ticking) { |
| | | this.ticking = true |
| | | requestAnimationFrame(() => { |
| | | if (this.oldScrollTop > scrollTop) { |
| | | this.visible = true |
| | | } else if (scrollTop > 300 && this.visible) { |
| | | this.visible = false |
| | | } else if (scrollTop < 300 && !this.visible) { |
| | | this.visible = true |
| | | } |
| | | this.oldScrollTop = scrollTop |
| | | this.ticking = false |
| | | }) |
| | | } |
| | | }, |
| | | toggle() { |
| | | this.$emit('toggle') |
| | | } |
| | | }, |
| | | beforeDestroy() { |
| | | document.body.removeEventListener('scroll', this.handleScroll, true) |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less"> |
| | | @import '../index.less'; |
| | | |
| | | .header-animat { |
| | | position: relative; |
| | | z-index: @ant-global-header-zindex; |
| | | } |
| | | |
| | | .showHeader-enter-active { |
| | | transition: all 0.25s ease; |
| | | } |
| | | |
| | | .showHeader-leave-active { |
| | | transition: all 0.5s ease; |
| | | } |
| | | |
| | | .showHeader-enter, |
| | | .showHeader-leave-to { |
| | | opacity: 0; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import GlobalHeader from './GlobalHeader' |
| | | export default GlobalHeader |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div :class="prefixCls"> |
| | | <a-tabs v-model="currentTab" @change="handleTabChange"> |
| | | <a-tab-pane v-for="v in icons" :tab="v.title" :key="v.key"> |
| | | <ul> |
| | | <li v-for="(icon, key) in v.icons" :key="`${v.key}-${key}`" :class="{ 'active': selectedIcon==icon }" @click="handleSelectedIcon(icon)" > |
| | | <a-icon :type="icon" :style="{ fontSize: '36px' }" /> |
| | | </li> |
| | | </ul> |
| | | </a-tab-pane> |
| | | </a-tabs> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import icons from './icons' |
| | | |
| | | export default { |
| | | name: 'IconSelect', |
| | | props: { |
| | | prefixCls: { |
| | | type: String, |
| | | default: 'ant-pro-icon-selector' |
| | | }, |
| | | // eslint-disable-next-line |
| | | value: { |
| | | type: String |
| | | } |
| | | }, |
| | | data () { |
| | | return { |
| | | selectedIcon: this.value || '', |
| | | currentTab: 'directional', |
| | | icons |
| | | } |
| | | }, |
| | | watch: { |
| | | value (val) { |
| | | this.selectedIcon = val |
| | | this.autoSwitchTab() |
| | | } |
| | | }, |
| | | created () { |
| | | if (this.value) { |
| | | this.autoSwitchTab() |
| | | } |
| | | }, |
| | | methods: { |
| | | handleSelectedIcon (icon) { |
| | | this.selectedIcon = icon |
| | | this.$emit('change', icon) |
| | | }, |
| | | handleTabChange (activeKey) { |
| | | this.currentTab = activeKey |
| | | }, |
| | | autoSwitchTab () { |
| | | icons.some(item => item.icons.some(icon => icon === this.value) && (this.currentTab = item.key)) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | @import "../index.less"; |
| | | |
| | | ul{ |
| | | list-style: none; |
| | | padding: 0; |
| | | overflow-y: scroll; |
| | | height: 250px; |
| | | |
| | | li{ |
| | | display: inline-block; |
| | | padding: @padding-sm; |
| | | margin: 3px 0; |
| | | border-radius: @border-radius-base; |
| | | |
| | | &:hover, &.active{ |
| | | // box-shadow: 0px 0px 5px 2px @primary-color; |
| | | cursor: pointer; |
| | | color: @white; |
| | | background-color: @primary-color; |
| | | } |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | IconSelector |
| | | ==== |
| | | |
| | | > 徿 éæ©ç»ä»¶ï¼å¸¸ç¨äºä¸ºæä¸ä¸ªæ°æ®è®¾å®ä¸ä¸ªå¾æ æ¶ä½¿ç¨ |
| | | > eg: 设å®èåå表æ¶ï¼ä¸ºæ¯ä¸ªèå设å®ä¸ä¸ªå¾æ |
| | | |
| | | 该ç»ä»¶ç± [@Saraka](https://github.com/saraka-tsukai) å°è£
|
| | | |
| | | |
| | | |
| | | ### ä½¿ç¨æ¹å¼ |
| | | |
| | | ```vue |
| | | <template> |
| | | <div> |
| | | <icon-selector @change="handleIconChange"/> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import IconSelector from '@/components/IconSelector' |
| | | |
| | | export default { |
| | | name: 'YourView', |
| | | components: { |
| | | IconSelector |
| | | }, |
| | | data () { |
| | | return { |
| | | } |
| | | }, |
| | | methods: { |
| | | handleIconChange (icon) { |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | ``` |
| | | |
| | | |
| | | |
| | | ### äºä»¶ |
| | | |
| | | |
| | | | åç§° | 说æ | ç±»å | é»è®¤å¼ | |
| | | | ------ | -------------------------- | ------ | ------ | |
| | | | change | 彿¹åäº `icon` éä¸é¡¹è§¦å | String | - | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /** |
| | | * å¢å æ°ç徿 æ¶ï¼è¯·éµå¾ªä»¥ä¸æ°æ®ç»æ |
| | | * Adding new icon please follow the data structure below |
| | | */ |
| | | export default [ |
| | | { |
| | | key: 'directional', |
| | | title: 'æ¹åæ§å¾æ ', |
| | | icons: ['step-backward', 'step-forward', 'fast-backward', 'fast-forward', 'shrink', 'arrows-alt', 'down', 'up', 'left', 'right', 'caret-up', 'caret-down', 'caret-left', 'caret-right', 'up-circle', 'down-circle', 'left-circle', 'right-circle', 'double-right', 'double-left', 'vertical-left', 'vertical-right', 'forward', 'backward', 'rollback', 'enter', 'retweet', 'swap', 'swap-left', 'swap-right', 'arrow-up', 'arrow-down', 'arrow-left', 'arrow-right', 'play-circle', 'up-square', 'down-square', 'left-square', 'right-square', 'login', 'logout', 'menu-fold', 'menu-unfold', 'border-bottom', 'border-horizontal', 'border-inner', 'border-left', 'border-right', 'border-top', 'border-verticle', 'pic-center', 'pic-left', 'pic-right', 'radius-bottomleft', 'radius-bottomright', 'radius-upleft', 'fullscreen', 'fullscreen-exit'] |
| | | }, |
| | | { |
| | | key: 'suggested', |
| | | title: 'æç¤ºå»ºè®®æ§å¾æ ', |
| | | icons: ['question', 'question-circle', 'plus', 'plus-circle', 'pause', 'pause-circle', 'minus', 'minus-circle', 'plus-square', 'minus-square', 'info', 'info-circle', 'exclamation', 'exclamation-circle', 'close', 'close-circle', 'close-square', 'check', 'check-circle', 'check-square', 'clock-circle', 'warning', 'issues-close', 'stop'] |
| | | }, |
| | | { |
| | | key: 'editor', |
| | | title: 'ç¼è¾ç±»å¾æ ', |
| | | icons: ['edit', 'form.vue', 'copy', 'scissor', 'delete', 'snippets', 'diff', 'highlight', 'align-center', 'align-left', 'align-right', 'bg-colors', 'bold', 'italic', 'underline', 'strikethrough', 'redo', 'undo', 'zoom-in', 'zoom-out', 'font-colors', 'font-size', 'line-height', 'column-height', 'dash', 'small-dash', 'sort-ascending', 'sort-descending', 'drag', 'ordered-list', 'radius-setting'] |
| | | }, |
| | | { |
| | | key: 'data', |
| | | title: 'æ°æ®ç±»å¾æ ', |
| | | icons: ['area-chart', 'pie-chart', 'bar-chart', 'dot-chart', 'line-chart', 'radar-chart', 'heat-map', 'fall', 'rise', 'stock', 'box-plot', 'fund', 'sliders'] |
| | | }, |
| | | { |
| | | key: 'brand_logo', |
| | | title: 'ç½ç«éç¨å¾æ ', |
| | | icons: ['lock', 'unlock', 'bars', 'book', 'calendar', 'cloud', 'cloud-download', 'code', 'copy', 'credit-card', 'delete', 'desktop', 'download', 'ellipsis', 'file', 'file-text', 'file-unknown', 'file-pdf', 'file-word', 'file-excel', 'file-jpg', 'file-ppt', 'file-markdown', 'file-add', 'folder', 'folder-open', 'folder-add', 'hdd', 'frown', 'meh', 'smile', 'inbox', 'laptop', 'appstore', 'link', 'mail', 'mobile', 'notification', 'paper-clip', 'picture', 'poweroff', 'reload', 'search', 'setting', 'share-alt', 'shopping-cart', 'tablet', 'tag', 'tags', 'to-top', 'upload', 'user', 'video-camera', 'home', 'loading', 'loading-3-quarters', 'cloud-upload', 'star', 'heart', 'environment', 'eye', 'camera', 'save', 'team', 'solution', 'phone', 'filter', 'exception', 'export', 'customer-service', 'qrcode', 'scan', 'like', 'dislike', 'message', 'pay-circle', 'calculator', 'pushpin', 'bulb', 'select', 'switcher', 'rocket', 'bell', 'disconnect', 'database', 'compass', 'barcode', 'hourglass', 'key', 'flag', 'layout', 'printer', 'sound', 'usb', 'skin', 'tool', 'sync', 'wifi', 'car', 'schedule', 'user-add', 'user-delete', 'usergroup-add', 'usergroup-delete', 'man', 'woman', 'shop', 'gift', 'idcard', 'medicine-box', 'red-envelope', 'coffee', 'copyright', 'trademark', 'safety', 'wallet', 'bank', 'trophy', 'contacts', 'global', 'shake', 'api', 'fork', 'dashboard', 'table', 'profile', 'alert', 'audit', 'branches', 'build', 'border', 'crown', 'experiment', 'fire', 'money-collect', 'property-safety', 'read', 'reconciliation', 'rest', 'security-scan', 'insurance', 'interaction', 'safety-certificate', 'project', 'thunderbolt', 'block', 'cluster', 'deployment-unit', 'dollar', 'euro', 'pound', 'file-done', 'file-exclamation', 'file-protect', 'file-search', 'file-sync', 'gateway', 'gold', 'robot', 'shopping'] |
| | | }, |
| | | { |
| | | key: 'application', |
| | | title: 'åçåæ è¯', |
| | | icons: ['android', 'apple', 'windows', 'ie', 'chrome', 'github', 'aliwangwang', 'dingding', 'weibo-square', 'weibo-circle', 'taobao-circle', 'html5', 'weibo', 'twitter', 'wechat', 'youtube', 'alipay-circle', 'taobao', 'skype', 'qq', 'medium-workmark', 'gitlab', 'medium', 'linkedin', 'google-plus', 'dropbox', 'facebook', 'codepen', 'code-sandbox', 'amazon', 'google', 'codepen-circle', 'alipay', 'ant-design', 'aliyun', 'zhihu', 'slack', 'slack-square', 'behance', 'behance-square', 'dribbble', 'dribbble-square', 'instagram', 'yuque', 'alibaba', 'yahoo'] |
| | | } |
| | | ] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import IconSelector from './IconSelector' |
| | | export default IconSelector |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import Vue from "vue"; |
| | | import { Spin } from "ant-design-vue"; |
| | | |
| | | const createFullLoading = function(){ |
| | | const instance = new Vue({ |
| | | data: { |
| | | visible: false, |
| | | }, |
| | | methods: { |
| | | show() { |
| | | this.visible = true; |
| | | }, |
| | | hide() { |
| | | this.visible = false; |
| | | }, |
| | | }, |
| | | render(h, data) { |
| | | const fullscreenStyle = { |
| | | position: "fixed", |
| | | left: 0, |
| | | top: 0, |
| | | width: "100%", |
| | | height: "100%", |
| | | display: this.visible?'block':'none', |
| | | zIndex:99999999999 |
| | | } |
| | | const maskStyle = { |
| | | position: "absolute", |
| | | left: 0, |
| | | top: 0, |
| | | width: "100%", |
| | | height: "100%", |
| | | zIndex:1, |
| | | backgroundColor:'rgba(0,0,0,.2)' |
| | | } |
| | | const innerStyle = { |
| | | position: "absolute", |
| | | left: 0, |
| | | top: 0, |
| | | width: "100%", |
| | | height: "100%", |
| | | zIndex:2, |
| | | backgroundColor:'transparent', |
| | | display: "flex", |
| | | justifyContent: "center", |
| | | alignItems: "center" |
| | | } |
| | | return ( |
| | | <div style={fullscreenStyle}> |
| | | <div style={maskStyle}></div> |
| | | <div style={innerStyle}><Spin /></div> |
| | | </div> |
| | | ) |
| | | }, |
| | | }); |
| | | const component = instance.$mount(); |
| | | document.body.appendChild(component.$el); |
| | | return instance |
| | | } |
| | | |
| | | export default createFullLoading |
| | | |
| | | |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-layout-sider |
| | | :class="['sider', isDesktop() ? null : 'shadow', theme, fixSiderbar ? 'ant-fixed-sidemenu' : null ]" |
| | | width="230px" |
| | | :collapsible="collapsible" |
| | | v-model="collapsed" |
| | | :trigger="null"> |
| | | <logo /> |
| | | <s-menu |
| | | :collapsed="collapsed" |
| | | :menu="menus" |
| | | :theme="theme" |
| | | :mode="mode" |
| | | @select="onSelect" |
| | | ></s-menu> |
| | | </a-layout-sider> |
| | | |
| | | </template> |
| | | |
| | | <script> |
| | | import Logo from '@/components/tools/Logo' |
| | | import SMenu from './index' |
| | | import { mixin, mixinDevice } from '@/utils/mixin' |
| | | |
| | | export default { |
| | | name: 'SideMenu', |
| | | components: { Logo, SMenu }, |
| | | mixins: [mixin, mixinDevice], |
| | | props: { |
| | | mode: { |
| | | type: String, |
| | | required: false, |
| | | default: 'inline' |
| | | }, |
| | | theme: { |
| | | type: String, |
| | | required: false, |
| | | default: 'dark' |
| | | }, |
| | | collapsible: { |
| | | type: Boolean, |
| | | required: false, |
| | | default: false |
| | | }, |
| | | collapsed: { |
| | | type: Boolean, |
| | | required: false, |
| | | default: false |
| | | }, |
| | | menus: { |
| | | type: Array, |
| | | required: true |
| | | } |
| | | }, |
| | | methods: { |
| | | onSelect (obj) { |
| | | this.$emit('menuSelect', obj) |
| | | } |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import SMenu from './menu' |
| | | export default SMenu |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import Menu from 'ant-design-vue/es/menu' |
| | | import Icon from 'ant-design-vue/es/icon' |
| | | |
| | | export default { |
| | | name: 'SMenu', |
| | | props: { |
| | | menu: { |
| | | type: Array, |
| | | required: true |
| | | }, |
| | | theme: { |
| | | type: String, |
| | | required: false, |
| | | default: 'dark' |
| | | }, |
| | | mode: { |
| | | type: String, |
| | | required: false, |
| | | default: 'inline' |
| | | }, |
| | | collapsed: { |
| | | type: Boolean, |
| | | required: false, |
| | | default: false |
| | | } |
| | | }, |
| | | data () { |
| | | return { |
| | | openKeys: [], |
| | | selectedKeys: [], |
| | | cachedOpenKeys: [] |
| | | } |
| | | }, |
| | | computed: { |
| | | rootSubmenuKeys: vm => { |
| | | const keys = [] |
| | | vm.menu.forEach(item => keys.push(item.path)) |
| | | return keys |
| | | } |
| | | }, |
| | | mounted () { |
| | | this.updateMenu() |
| | | }, |
| | | watch: { |
| | | collapsed (val) { |
| | | if (val) { |
| | | this.cachedOpenKeys = this.openKeys.concat() |
| | | this.openKeys = [] |
| | | } else { |
| | | this.openKeys = this.cachedOpenKeys |
| | | } |
| | | }, |
| | | $route: function () { |
| | | this.updateMenu() |
| | | } |
| | | }, |
| | | methods: { |
| | | // select menu item |
| | | onOpenChange (openKeys) { |
| | | // 卿°´å¹³æ¨¡å¼ä¸æ¶æ§è¡ï¼å¹¶ä¸ä¸åæ§è¡åç» |
| | | if (this.mode === 'horizontal') { |
| | | this.openKeys = openKeys |
| | | return |
| | | } |
| | | // éæ°´å¹³æ¨¡å¼æ¶ |
| | | const latestOpenKey = openKeys.find(key => !this.openKeys.includes(key)) |
| | | if (!this.rootSubmenuKeys.includes(latestOpenKey)) { |
| | | this.openKeys = openKeys |
| | | } else { |
| | | this.openKeys = latestOpenKey ? [latestOpenKey] : [] |
| | | } |
| | | }, |
| | | onSelect ({ item, key, selectedKeys }) { |
| | | this.selectedKeys = selectedKeys |
| | | this.$emit('select', { item, key, selectedKeys }) |
| | | }, |
| | | updateMenu () { |
| | | const routes = this.$route.matched.concat() |
| | | const { hidden } = this.$route.meta |
| | | if (routes.length >= 3 && hidden) { |
| | | routes.pop() |
| | | this.selectedKeys = [routes[routes.length - 1].path] |
| | | } else { |
| | | this.selectedKeys = [routes.pop().path] |
| | | } |
| | | const openKeys = [] |
| | | if (this.mode === 'inline') { |
| | | routes.forEach(item => { |
| | | openKeys.push(item.path) |
| | | }) |
| | | } |
| | | |
| | | this.collapsed ? (this.cachedOpenKeys = openKeys) : (this.openKeys = openKeys) |
| | | }, |
| | | |
| | | // render |
| | | renderItem (menu) { |
| | | if (!menu.hidden) { |
| | | return menu.children && !menu.hideChildrenInMenu ? this.renderSubMenu(menu) : this.renderMenuItem(menu) |
| | | } |
| | | return null |
| | | }, |
| | | renderMenuItem (menu) { |
| | | const target = menu.meta.target || null |
| | | const CustomTag = target && 'a' || 'router-link' |
| | | const props = { to: { name: menu.name } } |
| | | const attrs = { href: menu.path, target: menu.meta.target } |
| | | |
| | | if (menu.children && menu.hideChildrenInMenu) { |
| | | // ææåèåç å¹¶ä¸ ç¶è忝è¦éèåèåç |
| | | // é½ç»åèåå¢å ä¸ä¸ª hidden 屿§ |
| | | // ç¨æ¥ç»å·æ°é¡µé¢æ¶ï¼ selectedKeys åæ§å¶ç¨ |
| | | menu.children.forEach(item => { |
| | | item.meta = Object.assign(item.meta, { hidden: true }) |
| | | }) |
| | | } |
| | | |
| | | return ( |
| | | <Menu.Item {...{ key: menu.path }}> |
| | | <CustomTag {...{ props, attrs }}> |
| | | {this.renderIcon(menu.meta.icon)} |
| | | <span>{menu.meta.title}</span> |
| | | </CustomTag> |
| | | </Menu.Item> |
| | | ) |
| | | }, |
| | | renderSubMenu (menu) { |
| | | const itemArr = [] |
| | | if (!menu.hideChildrenInMenu) { |
| | | menu.children.forEach(item => itemArr.push(this.renderItem(item))) |
| | | } |
| | | return ( |
| | | <Menu.SubMenu {...{ key: menu.path }}> |
| | | <span slot="title"> |
| | | {this.renderIcon(menu.meta.icon)} |
| | | <span>{menu.meta.title}</span> |
| | | </span> |
| | | {itemArr} |
| | | </Menu.SubMenu> |
| | | ) |
| | | }, |
| | | renderIcon (icon) { |
| | | if (icon === 'none' || icon === undefined) { |
| | | return null |
| | | } |
| | | const props = {} |
| | | typeof (icon) === 'object' ? props.component = icon : props.type = icon |
| | | return ( |
| | | <Icon {... { props } }/> |
| | | ) |
| | | } |
| | | }, |
| | | |
| | | render () { |
| | | const dynamicProps = { |
| | | props: { |
| | | mode: this.mode, |
| | | theme: this.theme, |
| | | openKeys: this.openKeys, |
| | | selectedKeys: this.selectedKeys |
| | | }, |
| | | on: { |
| | | openChange: this.onOpenChange, |
| | | select: this.onSelect |
| | | } |
| | | } |
| | | |
| | | const menuTree = this.menu.map(item => { |
| | | if (item.hidden) { |
| | | return null |
| | | } |
| | | return this.renderItem(item) |
| | | }) |
| | | |
| | | return (<Menu {...dynamicProps}>{menuTree}</Menu>) |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import Menu from 'ant-design-vue/es/menu' |
| | | import Icon from 'ant-design-vue/es/icon' |
| | | |
| | | const { Item, SubMenu } = Menu |
| | | |
| | | export default { |
| | | name: 'SMenu', |
| | | props: { |
| | | menu: { |
| | | type: Array, |
| | | required: true |
| | | }, |
| | | theme: { |
| | | type: String, |
| | | required: false, |
| | | default: 'dark' |
| | | }, |
| | | mode: { |
| | | type: String, |
| | | required: false, |
| | | default: 'inline' |
| | | }, |
| | | collapsed: { |
| | | type: Boolean, |
| | | required: false, |
| | | default: false |
| | | } |
| | | }, |
| | | data () { |
| | | return { |
| | | openKeys: [], |
| | | selectedKeys: [], |
| | | cachedOpenKeys: [] |
| | | } |
| | | }, |
| | | computed: { |
| | | rootSubmenuKeys: vm => { |
| | | const keys = [] |
| | | vm.menu.forEach(item => keys.push(item.path)) |
| | | return keys |
| | | } |
| | | }, |
| | | created () { |
| | | this.updateMenu() |
| | | }, |
| | | watch: { |
| | | collapsed (val) { |
| | | if (val) { |
| | | this.cachedOpenKeys = this.openKeys.concat() |
| | | this.openKeys = [] |
| | | } else { |
| | | this.openKeys = this.cachedOpenKeys |
| | | } |
| | | }, |
| | | $route: function () { |
| | | this.updateMenu() |
| | | } |
| | | }, |
| | | methods: { |
| | | renderIcon: function (h, icon) { |
| | | if (icon === 'none' || icon === undefined) { |
| | | return null |
| | | } |
| | | const props = {} |
| | | typeof (icon) === 'object' ? props.component = icon : props.type = icon |
| | | return h(Icon, { props: { ...props } }) |
| | | }, |
| | | renderMenuItem: function (h, menu, pIndex, index) { |
| | | const target = menu.meta.target || null |
| | | return h(Item, { key: menu.path ? menu.path : 'item_' + pIndex + '_' + index }, [ |
| | | h('router-link', { attrs: { to: { name: menu.name }, target: target } }, [ |
| | | this.renderIcon(h, menu.meta.icon), |
| | | h('span', [menu.meta.title]) |
| | | ]) |
| | | ]) |
| | | }, |
| | | renderSubMenu: function (h, menu, pIndex, index) { |
| | | const this2_ = this |
| | | const subItem = [h('span', { slot: 'title' }, [this.renderIcon(h, menu.meta.icon), h('span', [menu.meta.title])])] |
| | | const itemArr = [] |
| | | const pIndex_ = pIndex + '_' + index |
| | | if (!menu.hideChildrenInMenu) { |
| | | menu.children.forEach(function (item, i) { |
| | | itemArr.push(this2_.renderItem(h, item, pIndex_, i)) |
| | | }) |
| | | } |
| | | return h(SubMenu, { key: menu.path ? menu.path : 'submenu_' + pIndex + '_' + index }, subItem.concat(itemArr)) |
| | | }, |
| | | renderItem: function (h, menu, pIndex, index) { |
| | | if (!menu.hidden) { |
| | | return menu.children && !menu.hideChildrenInMenu |
| | | ? this.renderSubMenu(h, menu, pIndex, index) |
| | | : this.renderMenuItem(h, menu, pIndex, index) |
| | | } |
| | | }, |
| | | renderMenu: function (h, menuTree) { |
| | | const this2_ = this |
| | | const menuArr = [] |
| | | menuTree.forEach(function (menu, i) { |
| | | if (!menu.hidden) { |
| | | menuArr.push(this2_.renderItem(h, menu, '0', i)) |
| | | } |
| | | }) |
| | | return menuArr |
| | | }, |
| | | onOpenChange (openKeys) { |
| | | const latestOpenKey = openKeys.find(key => !this.openKeys.includes(key)) |
| | | if (!this.rootSubmenuKeys.includes(latestOpenKey)) { |
| | | this.openKeys = openKeys |
| | | } else { |
| | | this.openKeys = latestOpenKey ? [latestOpenKey] : [] |
| | | } |
| | | }, |
| | | updateMenu () { |
| | | const routes = this.$route.matched.concat() |
| | | |
| | | if (routes.length >= 4 && this.$route.meta.hidden) { |
| | | routes.pop() |
| | | this.selectedKeys = [routes[2].path] |
| | | } else { |
| | | this.selectedKeys = [routes.pop().path] |
| | | } |
| | | |
| | | const openKeys = [] |
| | | if (this.mode === 'inline') { |
| | | routes.forEach(item => { |
| | | openKeys.push(item.path) |
| | | }) |
| | | } |
| | | |
| | | this.collapsed ? (this.cachedOpenKeys = openKeys) : (this.openKeys = openKeys) |
| | | } |
| | | }, |
| | | render (h) { |
| | | return h( |
| | | Menu, |
| | | { |
| | | props: { |
| | | theme: this.$props.theme, |
| | | mode: this.$props.mode, |
| | | openKeys: this.openKeys, |
| | | selectedKeys: this.selectedKeys |
| | | }, |
| | | on: { |
| | | openChange: this.onOpenChange, |
| | | select: obj => { |
| | | this.selectedKeys = obj.selectedKeys |
| | | this.$emit('select', obj) |
| | | } |
| | | } |
| | | }, |
| | | this.renderMenu(h, this.menu) |
| | | ) |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <script> |
| | | import events from './events' |
| | | |
| | | export default { |
| | | name: 'MultiTab', |
| | | data () { |
| | | return { |
| | | fullPathList: [], |
| | | pages: [], |
| | | activeKey: '', |
| | | newTabIndex: 0 |
| | | } |
| | | }, |
| | | created () { |
| | | // bind event |
| | | events.$on('open', val => { |
| | | if (!val) { |
| | | throw new Error(`multi-tab: open tab ${val} err`) |
| | | } |
| | | this.activeKey = val |
| | | }).$on('close', val => { |
| | | if (!val) { |
| | | this.closeThat(this.activeKey) |
| | | return |
| | | } |
| | | this.closeThat(val) |
| | | }).$on('rename', ({ key, name }) => { |
| | | try { |
| | | const item = this.pages.find(item => item.path === key) |
| | | item.meta.customTitle = name |
| | | this.$forceUpdate() |
| | | } catch (e) { |
| | | } |
| | | }) |
| | | |
| | | this.pages.push(this.$route) |
| | | this.fullPathList.push(this.$route.fullPath) |
| | | this.selectedLastPath() |
| | | }, |
| | | methods: { |
| | | onEdit (targetKey, action) { |
| | | this[action](targetKey) |
| | | }, |
| | | remove (targetKey) { |
| | | this.pages = this.pages.filter(page => page.fullPath !== targetKey) |
| | | this.fullPathList = this.fullPathList.filter(path => path !== targetKey) |
| | | // 夿å½åæ ç¾æ¯å¦å
³éï¼è¥å
³éåè·³è½¬å°æåä¸ä¸ªè¿åå¨çæ ç¾é¡µ |
| | | if (!this.fullPathList.includes(this.activeKey)) { |
| | | this.selectedLastPath() |
| | | } |
| | | }, |
| | | selectedLastPath () { |
| | | this.activeKey = this.fullPathList[this.fullPathList.length - 1] |
| | | }, |
| | | |
| | | // content menu |
| | | closeThat (e) { |
| | | // 夿æ¯å¦ä¸ºæåä¸ä¸ªæ ç¾é¡µï¼å¦ææ¯æåä¸ä¸ªï¼åæ æ³è¢«å
³é |
| | | if (this.fullPathList.length > 1) { |
| | | this.remove(e) |
| | | } else { |
| | | this.$message.info('è¿æ¯æåä¸ä¸ªæ ç¾äº, æ æ³è¢«å
³é') |
| | | } |
| | | }, |
| | | closeLeft (e) { |
| | | const currentIndex = this.fullPathList.indexOf(e) |
| | | if (currentIndex > 0) { |
| | | this.fullPathList.forEach((item, index) => { |
| | | if (index < currentIndex) { |
| | | this.remove(item) |
| | | } |
| | | }) |
| | | } else { |
| | | this.$message.info('å·¦ä¾§æ²¡ææ ç¾') |
| | | } |
| | | }, |
| | | closeRight (e) { |
| | | const currentIndex = this.fullPathList.indexOf(e) |
| | | if (currentIndex < (this.fullPathList.length - 1)) { |
| | | this.fullPathList.forEach((item, index) => { |
| | | if (index > currentIndex) { |
| | | this.remove(item) |
| | | } |
| | | }) |
| | | } else { |
| | | this.$message.info('å³ä¾§æ²¡ææ ç¾') |
| | | } |
| | | }, |
| | | closeAll (e) { |
| | | const currentIndex = this.fullPathList.indexOf(e) |
| | | this.fullPathList.forEach((item, index) => { |
| | | if (index !== currentIndex) { |
| | | this.remove(item) |
| | | } |
| | | }) |
| | | }, |
| | | closeMenuClick (key, route) { |
| | | this[key](route) |
| | | }, |
| | | renderTabPaneMenu (e) { |
| | | return ( |
| | | <a-menu {...{ on: { click: ({ key, item, domEvent }) => { this.closeMenuClick(key, e) } } }}> |
| | | <a-menu-item key="closeThat">å
³éå½åæ ç¾</a-menu-item> |
| | | <a-menu-item key="closeRight">å
³éå³ä¾§</a-menu-item> |
| | | <a-menu-item key="closeLeft">å
³é左侧</a-menu-item> |
| | | <a-menu-item key="closeAll">å
³éå
¨é¨</a-menu-item> |
| | | </a-menu> |
| | | ) |
| | | }, |
| | | // render |
| | | renderTabPane (title, keyPath) { |
| | | const menu = this.renderTabPaneMenu(keyPath) |
| | | |
| | | return ( |
| | | <a-dropdown overlay={menu} trigger={['contextmenu']}> |
| | | <span style={{ userSelect: 'none' }}>{ title }</span> |
| | | </a-dropdown> |
| | | ) |
| | | } |
| | | }, |
| | | watch: { |
| | | '$route': function (newVal) { |
| | | this.activeKey = newVal.fullPath |
| | | if (this.fullPathList.indexOf(newVal.fullPath) < 0) { |
| | | this.fullPathList.push(newVal.fullPath) |
| | | this.pages.push(newVal) |
| | | } |
| | | }, |
| | | activeKey: function (newPathKey) { |
| | | this.$router.push({ path: newPathKey }) |
| | | } |
| | | }, |
| | | render () { |
| | | const { onEdit, $data: { pages } } = this |
| | | const panes = pages.map(page => { |
| | | return ( |
| | | <a-tab-pane |
| | | style={{ height: 0, background: '#8999ee', color: '#899ee' }} |
| | | tab={this.renderTabPane(page.meta.customTitle || page.meta.title, page.fullPath)} |
| | | key={page.fullPath} closable={pages.length > 1} |
| | | > |
| | | </a-tab-pane>) |
| | | }) |
| | | |
| | | return ( |
| | | <div class="ant-pro-multi-tab"> |
| | | <div class="ant-pro-multi-tab-wrapper"> |
| | | <a-tabs |
| | | hideAdd |
| | | tabBarGutter={-1} |
| | | type={'editable-card'} |
| | | v-model={this.activeKey} |
| | | tabBarStyle={{ background: '#FFF', margin: 0, paddingLeft: '0px', paddingTop: '0px' }} |
| | | {...{ on: { edit: onEdit } }}> |
| | | {panes} |
| | | </a-tabs> |
| | | </div> |
| | | </div> |
| | | ) |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import Vue from 'vue' |
| | | export default new Vue() |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import events from './events' |
| | | import MultiTab from './MultiTab' |
| | | import './index.less' |
| | | |
| | | const api = { |
| | | /** |
| | | * open new tab on route fullPath |
| | | * @param config |
| | | */ |
| | | open: function (config) { |
| | | events.$emit('open', config) |
| | | }, |
| | | rename: function (key, name) { |
| | | events.$emit('rename', { key: key, name: name }) |
| | | }, |
| | | /** |
| | | * close current page |
| | | */ |
| | | closeCurrentPage: function () { |
| | | this.close() |
| | | }, |
| | | /** |
| | | * close route fullPath tab |
| | | * @param config |
| | | */ |
| | | close: function (config) { |
| | | events.$emit('close', config) |
| | | } |
| | | } |
| | | |
| | | MultiTab.install = function (Vue) { |
| | | if (Vue.prototype.$multiTab) { |
| | | return |
| | | } |
| | | api.instance = events |
| | | Vue.prototype.$multiTab = api |
| | | Vue.component('multi-tab', MultiTab) |
| | | } |
| | | |
| | | export default MultiTab |
¶Ô±ÈÐÂÎļþ |
| | |
| | | @import '../index'; |
| | | |
| | | @multi-tab-prefix-cls: ~"@{ant-pro-prefix}-multi-tab"; |
| | | @multi-tab-wrapper-prefix-cls: ~"@{ant-pro-prefix}-multi-tab-wrapper"; |
| | | |
| | | /* |
| | | .topmenu .@{multi-tab-prefix-cls} { |
| | | max-width: 1200px; |
| | | margin: -23px auto 24px auto; |
| | | } |
| | | */ |
| | | .@{multi-tab-prefix-cls} { |
| | | margin: -23px -24px 24px -24px; |
| | | background: #fff; |
| | | } |
| | | |
| | | .topmenu .@{multi-tab-wrapper-prefix-cls} { |
| | | max-width: 1200px; |
| | | margin: 0 auto; |
| | | } |
| | | |
| | | .topmenu.content-width-Fluid .@{multi-tab-wrapper-prefix-cls} { |
| | | max-width: 100%; |
| | | margin: 0 auto; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | @import url('../index.less'); |
| | | |
| | | /* Make clicks pass-through */ |
| | | #nprogress { |
| | | pointer-events: none; |
| | | } |
| | | |
| | | #nprogress .bar { |
| | | background: @primary-color; |
| | | |
| | | position: fixed; |
| | | z-index: 1031; |
| | | top: 0; |
| | | left: 0; |
| | | |
| | | width: 100%; |
| | | height: 2px; |
| | | } |
| | | |
| | | /* Fancy blur effect */ |
| | | #nprogress .peg { |
| | | display: block; |
| | | position: absolute; |
| | | right: 0px; |
| | | width: 100px; |
| | | height: 100%; |
| | | box-shadow: 0 0 10px @primary-color, 0 0 5px @primary-color; |
| | | opacity: 1.0; |
| | | |
| | | -webkit-transform: rotate(3deg) translate(0px, -4px); |
| | | -ms-transform: rotate(3deg) translate(0px, -4px); |
| | | transform: rotate(3deg) translate(0px, -4px); |
| | | } |
| | | |
| | | /* Remove these to get rid of the spinner */ |
| | | #nprogress .spinner { |
| | | display: block; |
| | | position: fixed; |
| | | z-index: 1031; |
| | | top: 15px; |
| | | right: 15px; |
| | | } |
| | | |
| | | #nprogress .spinner-icon { |
| | | width: 18px; |
| | | height: 18px; |
| | | box-sizing: border-box; |
| | | |
| | | border: solid 2px transparent; |
| | | border-top-color: @primary-color; |
| | | border-left-color: @primary-color; |
| | | border-radius: 50%; |
| | | |
| | | -webkit-animation: nprogress-spinner 400ms linear infinite; |
| | | animation: nprogress-spinner 400ms linear infinite; |
| | | } |
| | | |
| | | .nprogress-custom-parent { |
| | | overflow: hidden; |
| | | position: relative; |
| | | } |
| | | |
| | | .nprogress-custom-parent #nprogress .spinner, |
| | | .nprogress-custom-parent #nprogress .bar { |
| | | position: absolute; |
| | | } |
| | | |
| | | @-webkit-keyframes nprogress-spinner { |
| | | 0% { -webkit-transform: rotate(0deg); } |
| | | 100% { -webkit-transform: rotate(360deg); } |
| | | } |
| | | @keyframes nprogress-spinner { |
| | | 0% { transform: rotate(0deg); } |
| | | 100% { transform: rotate(360deg); } |
| | | } |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-popover |
| | | v-model="visible" |
| | | trigger="click" |
| | | placement="bottomRight" |
| | | overlayClassName="header-notice-wrapper" |
| | | :getPopupContainer="() => $refs.noticeRef.parentElement" |
| | | :autoAdjustOverflow="true" |
| | | :arrowPointAtCenter="true" |
| | | :overlayStyle="{ width: '300px', top: '50px' }" |
| | | > |
| | | <template slot="content"> |
| | | <a-spin :spinning="loading"> |
| | | <a-tabs> |
| | | <a-tab-pane :tab="item.key" :key="item.key" v-for="item in userNotices.rows"> |
| | | <a-list |
| | | ><a-list-item |
| | | v-for="(notice, index) in item.noticeData.filter(m => { |
| | | return m.type == item.value |
| | | })" |
| | | :key="index" |
| | | > |
| | | <a-list-item-meta :title="notice.title" :description="notice.publicTime"> |
| | | <a-avatar style="background-color: white" slot="avatar" :src="noticeImg" /> |
| | | </a-list-item-meta> |
| | | </a-list-item> |
| | | <a-list-item |
| | | v-if=" |
| | | item.noticeData.filter(m => { |
| | | return m.type == item.value |
| | | }).length > 0 |
| | | " |
| | | style="display: block;text-align: center;" |
| | | > |
| | | <a-button type="link" @click="goMore()">å»å¤ç</a-button> |
| | | </a-list-item> |
| | | </a-list> |
| | | </a-tab-pane> |
| | | </a-tabs> |
| | | </a-spin> |
| | | </template> |
| | | <span @click="fetchNotice" class="header-notice" ref="noticeRef" style="padding: 0 18px"> |
| | | <a-badge :count="userNotices.totalRows"> |
| | | <a-icon style="font-size: 16px; padding: 4px" type="bell" /> |
| | | </a-badge> |
| | | </span> |
| | | </a-popover> |
| | | </template> |
| | | |
| | | <script> |
| | | import noticeImg from '../../assets/notice.png' |
| | | import { mapGetters } from 'vuex' |
| | | export default { |
| | | name: 'HeaderNotice', |
| | | data() { |
| | | return { |
| | | loading: false, |
| | | visible: false, |
| | | noticeImg: noticeImg |
| | | } |
| | | }, |
| | | mounted() {}, |
| | | computed: { |
| | | ...mapGetters(['userNotices']) |
| | | }, |
| | | methods: { |
| | | fetchNotice() { |
| | | // if (!this.visible) { |
| | | // this.loading = true |
| | | // setTimeout(() => { |
| | | // this.loading = false |
| | | // }, 100) |
| | | // } else { |
| | | // this.loading = false |
| | | // } |
| | | this.visible = !this.visible |
| | | }, |
| | | goMore() { |
| | | this.visible = !this.visible |
| | | this.$router.push('/noticeReceived') |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="css"> |
| | | .header-notice-wrapper { |
| | | top: 50px !important; |
| | | } |
| | | </style> |
| | | <style lang="less" scoped> |
| | | .header-notice { |
| | | display: inline-block; |
| | | transition: all 0.3s; |
| | | |
| | | span { |
| | | vertical-align: initial; |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import NoticeIcon from './NoticeIcon' |
| | | export default NoticeIcon |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div :class="[prefixCls]"> |
| | | <slot name="subtitle"> |
| | | <div :class="[`${prefixCls}-subtitle`]">{{ typeof subTitle === 'string' ? subTitle : subTitle() }}</div> |
| | | </slot> |
| | | <div class="number-info-value"> |
| | | <span>{{ total }}</span> |
| | | <span class="sub-total"> |
| | | {{ subTotal }} |
| | | <icon :type="`caret-${status}`" /> |
| | | </span> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import Icon from 'ant-design-vue/es/icon' |
| | | |
| | | export default { |
| | | name: 'NumberInfo', |
| | | props: { |
| | | prefixCls: { |
| | | type: String, |
| | | default: 'ant-pro-number-info' |
| | | }, |
| | | total: { |
| | | type: Number, |
| | | required: true |
| | | }, |
| | | subTotal: { |
| | | type: Number, |
| | | required: true |
| | | }, |
| | | subTitle: { |
| | | type: [String, Function], |
| | | default: '' |
| | | }, |
| | | status: { |
| | | type: String, |
| | | default: 'up' |
| | | } |
| | | }, |
| | | components: { |
| | | Icon |
| | | }, |
| | | data () { |
| | | return {} |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | //@import "index"; |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import NumberInfo from './NumberInfo' |
| | | |
| | | export default NumberInfo |
¶Ô±ÈÐÂÎļþ |
| | |
| | | @import "../index"; |
| | | |
| | | @numberInfo-prefix-cls: ~"@{ant-pro-prefix}-number-info"; |
| | | |
| | | .@{numberInfo-prefix-cls} { |
| | | |
| | | .ant-pro-number-info-subtitle { |
| | | color: @text-color-secondary; |
| | | font-size: @font-size-base; |
| | | height: 22px; |
| | | line-height: 22px; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | word-break: break-all; |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | .number-info-value { |
| | | margin-top: 4px; |
| | | font-size: 0; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | word-break: break-all; |
| | | white-space: nowrap; |
| | | |
| | | & > span { |
| | | color: @heading-color; |
| | | display: inline-block; |
| | | line-height: 32px; |
| | | height: 32px; |
| | | font-size: 24px; |
| | | margin-right: 32px; |
| | | } |
| | | |
| | | .sub-total { |
| | | color: @text-color-secondary; |
| | | font-size: @font-size-lg; |
| | | vertical-align: top; |
| | | margin-right: 0; |
| | | i { |
| | | font-size: 12px; |
| | | transform: scale(0.82); |
| | | margin-left: 4px; |
| | | } |
| | | :global { |
| | | .anticon-caret-up { |
| | | color: @red-6; |
| | | } |
| | | .anticon-caret-down { |
| | | color: @green-6; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | # NumberInfo æ°æ®ææ¬ |
| | | |
| | | 常ç¨å¨æ°æ®å¡çä¸ï¼ç¨äºçªåºå±ç¤ºæä¸ªä¸å¡æ°æ®ã |
| | | |
| | | |
| | | |
| | | å¼ç¨æ¹å¼ï¼ |
| | | |
| | | ```javascript |
| | | import NumberInfo from '@/components/NumberInfo' |
| | | |
| | | export default { |
| | | components: { |
| | | NumberInfo |
| | | } |
| | | } |
| | | ``` |
| | | |
| | | |
| | | |
| | | ## ä»£ç æ¼ç¤º [demo](https://pro.loacg.com/test/home) |
| | | |
| | | ```html |
| | | <number-info |
| | | :sub-title="() => { return 'Visits this week' }" |
| | | :total="12321" |
| | | status="up" |
| | | :sub-total="17.1"></number-info> |
| | | ``` |
| | | |
| | | |
| | | |
| | | ## API |
| | | |
| | | åæ° | 说æ | ç±»å | é»è®¤å¼ |
| | | ----|------|-----|------ |
| | | title | æ é¢ | ReactNode\|string | - |
| | | subTitle | åæ é¢ | ReactNode\|string | - |
| | | total | æ»é | ReactNode\|string | - |
| | | subTotal | åæ»é | ReactNode\|string | - |
| | | status | å¢å ç¶æ | 'up \| down' | - |
| | | theme | ç¶ææ ·å¼ | string | 'light' |
| | | gap | 设置æ°ååæè¿°ä¹é´çé´è·ï¼åç´ ï¼| number | 8 |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="page-header"> |
| | | <div class="page-header-index-wide"> |
| | | <s-breadcrumb v-if="crumbsState" /> |
| | | <div class="detail"> |
| | | <div class="main" v-if="!$route.meta.hiddenHeaderContent"> |
| | | <div class="row"> |
| | | <img v-if="logo" :src="logo" class="logo"/> |
| | | <h1 v-if="title" class="title">{{ title }}</h1> |
| | | <div class="action"> |
| | | <slot name="action"></slot> |
| | | </div> |
| | | </div> |
| | | <div class="row"> |
| | | <div v-if="avatar" class="avatar"> |
| | | <a-avatar :src="avatar" /> |
| | | </div> |
| | | <div v-if="this.$slots.content" class="headerContent"> |
| | | <slot name="content"></slot> |
| | | </div> |
| | | <div v-if="this.$slots.extra" class="extra"> |
| | | <slot name="extra"></slot> |
| | | </div> |
| | | </div> |
| | | <div> |
| | | <slot name="pageMenu"></slot> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import Breadcrumb from '@/components/tools/Breadcrumb' |
| | | |
| | | export default { |
| | | name: 'PageHeader', |
| | | components: { |
| | | 's-breadcrumb': Breadcrumb |
| | | }, |
| | | props: { |
| | | title: { |
| | | type: [String, Boolean], |
| | | default: true, |
| | | required: false |
| | | }, |
| | | logo: { |
| | | type: String, |
| | | default: '', |
| | | required: false |
| | | }, |
| | | avatar: { |
| | | type: String, |
| | | default: '', |
| | | required: false |
| | | } |
| | | }, |
| | | data () { |
| | | return { |
| | | crumbsState: this.$store.state.app.crumbsState |
| | | } |
| | | }, |
| | | computed: { |
| | | getCrumbsState() { |
| | | return this.$store.state.app.crumbsState |
| | | } |
| | | }, |
| | | watch: { |
| | | getCrumbsState (newVal, oldVal) { |
| | | this.crumbsState = newVal |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | .page-header { |
| | | background: #fff; |
| | | padding: 10px 32px 0; |
| | | border-bottom: 0px solid #e8e8e8; |
| | | |
| | | .breadcrumb { |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | .detail { |
| | | display: flex; |
| | | /*margin-bottom: 16px;*/ |
| | | |
| | | .avatar { |
| | | flex: 0 1 72px; |
| | | margin: 0 24px 8px 0; |
| | | |
| | | & > span { |
| | | border-radius: 72px; |
| | | display: block; |
| | | width: 72px; |
| | | height: 72px; |
| | | } |
| | | } |
| | | |
| | | .main { |
| | | width: 100%; |
| | | flex: 0 1 auto; |
| | | |
| | | .row { |
| | | display: flex; |
| | | width: 100%; |
| | | |
| | | .avatar { |
| | | margin-bottom: 10px; |
| | | } |
| | | } |
| | | |
| | | .title { |
| | | font-size: 20px; |
| | | font-weight: 500; |
| | | |
| | | font-size: 20px; |
| | | line-height: 28px; |
| | | font-weight: 500; |
| | | color: rgba(0, 0, 0, 0.85); |
| | | margin-bottom: 16px; |
| | | flex: auto; |
| | | } |
| | | .logo { |
| | | width: 28px; |
| | | height: 28px; |
| | | border-radius: 4px; |
| | | margin-right: 16px; |
| | | } |
| | | .content, |
| | | .headerContent { |
| | | flex: auto; |
| | | color: rgba(0, 0, 0, 0.45); |
| | | line-height: 22px; |
| | | |
| | | .link { |
| | | margin-top: 16px; |
| | | line-height: 24px; |
| | | |
| | | a { |
| | | font-size: 14px; |
| | | margin-right: 32px; |
| | | } |
| | | } |
| | | } |
| | | .extra { |
| | | flex: 0 1 auto; |
| | | margin-left: 88px; |
| | | min-width: 242px; |
| | | text-align: right; |
| | | } |
| | | .action { |
| | | margin-left: 56px; |
| | | min-width: 266px; |
| | | flex: 0 1 auto; |
| | | text-align: right; |
| | | &:empty { |
| | | display: none; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .mobile .page-header { |
| | | .main { |
| | | .row { |
| | | flex-wrap: wrap; |
| | | |
| | | .avatar { |
| | | flex: 0 1 25%; |
| | | margin: 0 2% 8px 0; |
| | | } |
| | | |
| | | .content, |
| | | .headerContent { |
| | | flex: 0 1 70%; |
| | | |
| | | .link { |
| | | margin-top: 16px; |
| | | line-height: 24px; |
| | | |
| | | a { |
| | | font-size: 14px; |
| | | margin-right: 10px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .extra { |
| | | flex: 1 1 auto; |
| | | margin-left: 0; |
| | | min-width: 0; |
| | | text-align: right; |
| | | } |
| | | |
| | | .action { |
| | | margin-left: unset; |
| | | min-width: 266px; |
| | | flex: 0 1 auto; |
| | | text-align: left; |
| | | margin-bottom: 12px; |
| | | |
| | | &:empty { |
| | | display: none; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import PageHeader from './PageHeader' |
| | | export default PageHeader |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { Spin } from 'ant-design-vue' |
| | | |
| | | export const PageLoading = { |
| | | name: 'PageLoading', |
| | | props: { |
| | | tip: { |
| | | type: String, |
| | | default: 'Loading..' |
| | | }, |
| | | size: { |
| | | type: String, |
| | | default: 'large' |
| | | } |
| | | }, |
| | | render () { |
| | | const style = { |
| | | textAlign: 'center', |
| | | background: 'rgba(0,0,0,0.6)', |
| | | position: 'fixed', |
| | | top: 0, |
| | | bottom: 0, |
| | | left: 0, |
| | | right: 0, |
| | | zIndex: 1100 |
| | | } |
| | | const spinStyle = { |
| | | position: 'absolute', |
| | | left: '50%', |
| | | top: '40%', |
| | | transform: 'translate(-50%, -50%)' |
| | | } |
| | | return (<div style={style}> |
| | | <Spin size={this.size} style={spinStyle} tip={this.tip} /> |
| | | </div>) |
| | | } |
| | | } |
| | | |
| | | const version = '0.0.1' |
| | | const loading = {} |
| | | |
| | | loading.newInstance = (Vue, options) => { |
| | | let loadingElement = document.querySelector('body>div[type=loading]') |
| | | if (!loadingElement) { |
| | | loadingElement = document.createElement('div') |
| | | loadingElement.setAttribute('type', 'loading') |
| | | loadingElement.setAttribute('class', 'ant-loading-wrapper') |
| | | document.body.appendChild(loadingElement) |
| | | } |
| | | |
| | | const cdProps = Object.assign({ visible: false, size: 'large', tip: 'Loading...' }, options) |
| | | |
| | | const instance = new Vue({ |
| | | data () { |
| | | return { |
| | | ...cdProps |
| | | } |
| | | }, |
| | | render () { |
| | | const { tip } = this |
| | | const props = {} |
| | | this.tip && (props.tip = tip) |
| | | if (this.visible) { |
| | | return <PageLoading { ...{ props } } /> |
| | | } |
| | | return null |
| | | } |
| | | }).$mount(loadingElement) |
| | | |
| | | function update (config) { |
| | | const { visible, size, tip } = { ...cdProps, ...config } |
| | | instance.$set(instance, 'visible', visible) |
| | | if (tip) { |
| | | instance.$set(instance, 'tip', tip) |
| | | } |
| | | if (size) { |
| | | instance.$set(instance, 'size', size) |
| | | } |
| | | } |
| | | |
| | | return { |
| | | instance, |
| | | update |
| | | } |
| | | } |
| | | |
| | | const api = { |
| | | show: function (options) { |
| | | this.instance.update({ ...options, visible: true }) |
| | | }, |
| | | hide: function () { |
| | | this.instance.update({ visible: false }) |
| | | } |
| | | } |
| | | |
| | | const install = function (Vue, options) { |
| | | if (Vue.prototype.$loading) { |
| | | return |
| | | } |
| | | api.instance = loading.newInstance(Vue, options) |
| | | Vue.prototype.$loading = api |
| | | } |
| | | |
| | | export default { |
| | | version, |
| | | install |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="result"> |
| | | <div> |
| | | <a-icon :class="{ 'icon': true, [`${type}`]: true }" :type="localIsSuccess ? 'check-circle' : 'close-circle'"/> |
| | | </div> |
| | | <div class="title"> |
| | | <slot name="title"> |
| | | {{ title }} |
| | | </slot> |
| | | </div> |
| | | <div class="description"> |
| | | <slot name="description"> |
| | | {{ description }} |
| | | </slot> |
| | | </div> |
| | | <div class="extra" v-if="$slots.default"> |
| | | <slot></slot> |
| | | </div> |
| | | <div class="action" v-if="$slots.action"> |
| | | <slot name="action"></slot> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | const resultEnum = ['success', 'error'] |
| | | |
| | | export default { |
| | | name: 'Result', |
| | | props: { |
| | | /** @Deprecated */ |
| | | isSuccess: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | type: { |
| | | type: String, |
| | | default: resultEnum[0], |
| | | validator (val) { |
| | | return (val) => resultEnum.includes(val) |
| | | } |
| | | }, |
| | | title: { |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | description: { |
| | | type: String, |
| | | default: '' |
| | | } |
| | | }, |
| | | computed: { |
| | | localIsSuccess: function () { |
| | | return this.type === resultEnum[0] |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | .result { |
| | | text-align: center; |
| | | width: 72%; |
| | | margin: 0 auto; |
| | | padding: 24px 0 8px; |
| | | |
| | | .icon { |
| | | font-size: 72px; |
| | | line-height: 72px; |
| | | margin-bottom: 24px; |
| | | } |
| | | .success { |
| | | color: #52c41a; |
| | | } |
| | | .error { |
| | | color: red; |
| | | } |
| | | .title { |
| | | font-size: 24px; |
| | | color: rgba(0, 0, 0, .85); |
| | | font-weight: 500; |
| | | line-height: 32px; |
| | | margin-bottom: 16px; |
| | | } |
| | | .description { |
| | | font-size: 14px; |
| | | line-height: 22px; |
| | | color: rgba(0, 0, 0, 0.45); |
| | | margin-bottom: 24px; |
| | | } |
| | | .extra { |
| | | background: #fafafa; |
| | | padding: 24px 40px; |
| | | border-radius: 2px; |
| | | text-align: left; |
| | | } |
| | | .action { |
| | | margin-top: 32px; |
| | | } |
| | | } |
| | | |
| | | .mobile { |
| | | .result { |
| | | width: 100%; |
| | | margin: 0 auto; |
| | | padding: unset; |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import Result from './Result.vue' |
| | | export default Result |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { Select } from 'ant-design-vue' |
| | | import './index.less' |
| | | |
| | | const GlobalSearch = { |
| | | name: 'GlobalSearch', |
| | | data () { |
| | | return { |
| | | visible: false |
| | | } |
| | | }, |
| | | mounted () { |
| | | const keyboardHandle = (e) => { |
| | | e.preventDefault() |
| | | e.stopPropagation() |
| | | const { ctrlKey, shiftKey, altKey, keyCode } = e |
| | | // key is `K` and hold ctrl |
| | | if (keyCode === 75 && ctrlKey && !shiftKey && !altKey) { |
| | | this.visible = !this.visible |
| | | } |
| | | } |
| | | document.addEventListener('keydown', keyboardHandle) |
| | | }, |
| | | render () { |
| | | const { visible } = this |
| | | const handleSearch = (e) => { |
| | | this.$emit('search', e) |
| | | } |
| | | |
| | | const handleChange = (e) => { |
| | | this.$emit('change', e) |
| | | } |
| | | if (!visible) { |
| | | return null |
| | | } |
| | | return ( |
| | | <div class={'global-search global-search-wrapper'}> |
| | | <div class={'global-search-box'}> |
| | | <Select |
| | | size={'large'} |
| | | showSearch |
| | | placeholder="Input search text.." |
| | | style={{ width: '100%' }} |
| | | defaultActiveFirstOption={false} |
| | | showArrow={false} |
| | | filterOption={false} |
| | | onSearch={handleSearch} |
| | | onChange={handleChange} |
| | | notFoundContent={null} |
| | | > |
| | | </Select> |
| | | <div class={'global-search-tips'}>Open with Ctrl/â + K</div> |
| | | </div> |
| | | </div> |
| | | ) |
| | | } |
| | | } |
| | | |
| | | GlobalSearch.install = function (Vue) { |
| | | Vue.component(GlobalSearch.name, GlobalSearch) |
| | | } |
| | | |
| | | export default GlobalSearch |
¶Ô±ÈÐÂÎļþ |
| | |
| | | @import "~ant-design-vue/es/style/themes/default"; |
| | | |
| | | .global-search-wrapper { |
| | | position: fixed; |
| | | top: 0; |
| | | left: 0; |
| | | right: 0; |
| | | bottom: 0; |
| | | z-index: @zindex-modal-mask; |
| | | background: @modal-mask-bg; |
| | | |
| | | .global-search-box { |
| | | position: absolute; |
| | | top: 20%; |
| | | left: 50%; |
| | | width: 450px; |
| | | transform: translate(-50%, -50%); |
| | | |
| | | .global-search-tips { |
| | | color: @white; |
| | | font-size: @font-size-lg; |
| | | text-align: right; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="setting-drawer"> |
| | | <a-drawer |
| | | width="300" |
| | | placement="right" |
| | | @close="onClose" |
| | | :closable="false" |
| | | :visible="visible" |
| | | :drawer-style="{ position: 'absolute' }" |
| | | style="z-index: 999" |
| | | > |
| | | <div class="setting-drawer-index-content"> |
| | | |
| | | <div :style="{ marginBottom: '24px' }"> |
| | | <h3 class="setting-drawer-index-title">æ´ä½é£æ ¼è®¾ç½®</h3> |
| | | |
| | | <div class="setting-drawer-index-blockChecbox"> |
| | | <a-tooltip> |
| | | <template slot="title"> |
| | | æè²èå飿 ¼ |
| | | </template> |
| | | <div class="setting-drawer-index-item" @click="handleMenuTheme('dark')"> |
| | | <img src="https://gw.alipayobjects.com/zos/rmsportal/LCkqqYNmvBEbokSDscrm.svg" alt="dark"> |
| | | <div class="setting-drawer-index-selectIcon" v-if="navTheme === 'dark'"> |
| | | <a-icon type="check"/> |
| | | </div> |
| | | </div> |
| | | </a-tooltip> |
| | | |
| | | <a-tooltip> |
| | | <template slot="title"> |
| | | 亮è²èå飿 ¼ |
| | | </template> |
| | | <div class="setting-drawer-index-item" @click="handleMenuTheme('light')"> |
| | | <img src="https://gw.alipayobjects.com/zos/rmsportal/jpRkZQMyYRryryPNtyIC.svg" alt="light"> |
| | | <div class="setting-drawer-index-selectIcon" v-if="navTheme !== 'dark'"> |
| | | <a-icon type="check"/> |
| | | </div> |
| | | </div> |
| | | </a-tooltip> |
| | | </div> |
| | | </div> |
| | | |
| | | <div :style="{ marginBottom: '24px' }"> |
| | | <h3 class="setting-drawer-index-title">主é¢è²</h3> |
| | | |
| | | <div style="height: 20px"> |
| | | <a-tooltip class="setting-drawer-theme-color-colorBlock" v-for="(item, index) in colorList" :key="index"> |
| | | <template slot="title"> |
| | | {{ item.key }} |
| | | </template> |
| | | <a-tag :color="item.color" @click="changeColor(item.color)"> |
| | | <a-icon type="check" v-if="item.color === primaryColor"></a-icon> |
| | | </a-tag> |
| | | </a-tooltip> |
| | | |
| | | </div> |
| | | </div> |
| | | <a-divider /> |
| | | |
| | | <div :style="{ marginBottom: '24px' }"> |
| | | <h3 class="setting-drawer-index-title">å¯¼èªæ¨¡å¼</h3> |
| | | |
| | | <div class="setting-drawer-index-blockChecbox"> |
| | | <a-tooltip> |
| | | <template slot="title"> |
| | | ä¾§è¾¹æ å¯¼èª |
| | | </template> |
| | | <div class="setting-drawer-index-item" @click="handleLayout('sidemenu')"> |
| | | <img src="https://gw.alipayobjects.com/zos/rmsportal/JopDzEhOqwOjeNTXkoje.svg" alt="sidemenu"> |
| | | <div class="setting-drawer-index-selectIcon" v-if="layoutMode === 'sidemenu'"> |
| | | <a-icon type="check"/> |
| | | </div> |
| | | </div> |
| | | </a-tooltip> |
| | | |
| | | <a-tooltip> |
| | | <template slot="title"> |
| | | 顶鍿 å¯¼èª |
| | | </template> |
| | | <div class="setting-drawer-index-item" @click="handleLayout('topmenu')"> |
| | | <img src="https://gw.alipayobjects.com/zos/rmsportal/KDNDBbriJhLwuqMoxcAr.svg" alt="topmenu"> |
| | | <div class="setting-drawer-index-selectIcon" v-if="layoutMode !== 'sidemenu'"> |
| | | <a-icon type="check"/> |
| | | </div> |
| | | </div> |
| | | </a-tooltip> |
| | | </div> |
| | | <div :style="{ marginTop: '24px' }"> |
| | | <a-list :split="false"> |
| | | <a-list-item> |
| | | <a-tooltip slot="actions"> |
| | | <template slot="title"> |
| | | 该设å®ä»
[顶鍿 导èª] æ¶ææ |
| | | </template> |
| | | <a-select size="small" style="width: 80px;" :defaultValue="contentWidth" @change="handleContentWidthChange"> |
| | | <a-select-option value="Fixed">åºå®</a-select-option> |
| | | <a-select-option value="Fluid" v-if="layoutMode !== 'sidemenu'">æµå¼</a-select-option> |
| | | </a-select> |
| | | </a-tooltip> |
| | | <a-list-item-meta> |
| | | <div slot="title">å
容åºå宽度</div> |
| | | </a-list-item-meta> |
| | | </a-list-item> |
| | | <a-list-item> |
| | | <a-switch slot="actions" size="small" :defaultChecked="fixedHeader" @change="handleFixedHeader" /> |
| | | <a-list-item-meta> |
| | | <div slot="title">åºå® Header</div> |
| | | </a-list-item-meta> |
| | | </a-list-item> |
| | | <a-list-item> |
| | | <a-switch slot="actions" size="small" :disabled="!fixedHeader" :defaultChecked="autoHideHeader" @change="handleFixedHeaderHidden" /> |
| | | <a-list-item-meta> |
| | | <a-tooltip slot="title" placement="left"> |
| | | <template slot="title">åºå® Header æ¶å¯é
ç½®</template> |
| | | <div :style="{ opacity: !fixedHeader ? '0.5' : '1' }">䏿»æ¶éè Header</div> |
| | | </a-tooltip> |
| | | </a-list-item-meta> |
| | | </a-list-item> |
| | | <a-list-item > |
| | | <a-switch slot="actions" size="small" :disabled="(layoutMode === 'topmenu')" :defaultChecked="fixSiderbar" @change="handleFixSiderbar" /> |
| | | <a-list-item-meta> |
| | | <div slot="title" :style="{ textDecoration: layoutMode === 'topmenu' ? 'line-through' : 'unset' }">åºå®ä¾§è¾¹èå</div> |
| | | </a-list-item-meta> |
| | | </a-list-item> |
| | | </a-list> |
| | | </div> |
| | | </div> |
| | | <a-divider /> |
| | | |
| | | <div :style="{ marginBottom: '24px' }"> |
| | | <h3 class="setting-drawer-index-title">å
¶ä»è®¾ç½®</h3> |
| | | <div> |
| | | <a-list :split="false"> |
| | | <a-list-item> |
| | | <a-switch slot="actions" size="small" :defaultChecked="colorWeak" @change="onColorWeak" /> |
| | | <a-list-item-meta> |
| | | <div slot="title">è²å¼±æ¨¡å¼</div> |
| | | </a-list-item-meta> |
| | | </a-list-item> |
| | | <a-list-item> |
| | | <a-switch slot="actions" size="small" :defaultChecked="multiTab" @change="onMultiTab" /> |
| | | <a-list-item-meta> |
| | | <div slot="title">å¤é¡µç¾æ¨¡å¼</div> |
| | | </a-list-item-meta> |
| | | </a-list-item> |
| | | <a-list-item> |
| | | <a-switch slot="actions" size="small" :defaultChecked="crumbsState" @change="onCrumbs" /> |
| | | <a-list-item-meta> |
| | | <div slot="title">æ¾ç¤ºé¢å
å±</div> |
| | | </a-list-item-meta> |
| | | </a-list-item> |
| | | </a-list> |
| | | </div> |
| | | </div> |
| | | <a-divider /> |
| | | <div :style="{ marginBottom: '24px' }"> |
| | | <a-button |
| | | @click="doCopy" |
| | | icon="copy" |
| | | block |
| | | >æ·è´è®¾ç½®</a-button> |
| | | <a-alert type="warning" :style="{ marginTop: '24px' }"> |
| | | <span slot="message"> |
| | | é
ç½®æ åªå¨å¼åç¯å¢ç¨äºé¢è§ï¼ç产ç¯å¢ä¸ä¼å±ç°ï¼è¯·æå¨ä¿®æ¹é
ç½®æä»¶ãä¿®æ¹é
ç½®æä»¶åï¼éè¦æ¸
空æ¬å°ç¼ååLocalStorage |
| | | <a href="https://github.com/sendya/ant-design-pro-vue/blob/master/src/config/defaultSettings.js" target="_blank">src/config/defaultSettings.js</a> |
| | | </span> |
| | | </a-alert> |
| | | </div> |
| | | </div> |
| | | <div class="setting-drawer-index-handle" @click="toggle" slot="handle"> |
| | | <a-icon type="setting" v-if="!visible"/> |
| | | <a-icon type="close" v-else/> |
| | | </div> |
| | | </a-drawer> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | /* import { DetailList } from '@/components' |
| | | import SettingItem from './SettingItem' */ |
| | | import config from '@/config/defaultSettings' |
| | | import { updateTheme, updateColorWeak, colorList } from './settingConfig' |
| | | import { mixin, mixinDevice } from '@/utils/mixin' |
| | | |
| | | export default { |
| | | components: { |
| | | // DetailList, |
| | | // SettingItem |
| | | }, |
| | | mixins: [mixin, mixinDevice], |
| | | data () { |
| | | return { |
| | | visible: false, |
| | | colorList |
| | | } |
| | | }, |
| | | watch: { |
| | | |
| | | }, |
| | | mounted () { |
| | | updateTheme(this.primaryColor) |
| | | if (this.colorWeak !== config.colorWeak) { |
| | | updateColorWeak(this.colorWeak) |
| | | } |
| | | }, |
| | | methods: { |
| | | showDrawer () { |
| | | this.visible = true |
| | | }, |
| | | onClose () { |
| | | this.visible = false |
| | | }, |
| | | toggle () { |
| | | this.visible = !this.visible |
| | | }, |
| | | onColorWeak (checked) { |
| | | this.$store.dispatch('ToggleWeak', checked) |
| | | updateColorWeak(checked) |
| | | }, |
| | | onMultiTab (checked) { |
| | | this.$store.dispatch('ToggleMultiTab', checked) |
| | | }, |
| | | onCrumbs(checked) { |
| | | this.$store.dispatch('ToggleCrumbsState', checked) |
| | | }, |
| | | handleMenuTheme (theme) { |
| | | this.$store.dispatch('ToggleTheme', theme) |
| | | }, |
| | | doCopy () { |
| | | // get current settings from mixin or this.$store.state.app, pay attention to the property name |
| | | const text = `export default { |
| | | primaryColor: '${this.primaryColor}', // primary color of ant design |
| | | navTheme: '${this.navTheme}', // theme for nav menu |
| | | layout: '${this.layoutMode}', // nav menu position: sidemenu or topmenu |
| | | contentWidth: '${this.contentWidth}', // layout of content: Fluid or Fixed, only works when layout is topmenu |
| | | fixedHeader: ${this.fixedHeader}, // sticky header |
| | | fixSiderbar: ${this.fixSiderbar}, // sticky siderbar |
| | | autoHideHeader: ${this.autoHideHeader}, // auto hide header |
| | | colorWeak: ${this.colorWeak}, |
| | | multiTab: ${this.multiTab}, |
| | | crumbsState: ${this.crumbsState}, |
| | | production: process.env.NODE_ENV === 'production' && process.env.VUE_APP_PREVIEW !== 'true', |
| | | // vue-ls options |
| | | storageOptions: { |
| | | namespace: 'pro__', |
| | | name: 'ls', |
| | | storage: 'local', |
| | | } |
| | | }` |
| | | this.$copyText(text).then(message => { |
| | | this.$message.success('å¤å¶å®æ¯') |
| | | }).catch(err => { |
| | | this.$message.error('å¤å¶å¤±è´¥') |
| | | }) |
| | | }, |
| | | handleLayout (mode) { |
| | | this.$store.dispatch('ToggleLayoutMode', mode) |
| | | // å 为顶é¨èåä¸è½åºå®å·¦ä¾§èåæ ï¼æä»¥å¼ºå¶å
³é |
| | | this.handleFixSiderbar(false) |
| | | }, |
| | | handleContentWidthChange (type) { |
| | | this.$store.dispatch('ToggleContentWidth', type) |
| | | }, |
| | | changeColor (color) { |
| | | if (this.primaryColor !== color) { |
| | | this.$store.dispatch('ToggleColor', color) |
| | | updateTheme(color) |
| | | } |
| | | }, |
| | | handleFixedHeader (fixed) { |
| | | this.$store.dispatch('ToggleFixedHeader', fixed) |
| | | }, |
| | | handleFixedHeaderHidden (autoHidden) { |
| | | this.$store.dispatch('ToggleFixedHeaderHidden', autoHidden) |
| | | }, |
| | | handleFixSiderbar (fixed) { |
| | | if (this.layoutMode === 'topmenu') { |
| | | this.$store.dispatch('ToggleFixSiderbar', false) |
| | | return |
| | | } |
| | | this.$store.dispatch('ToggleFixSiderbar', fixed) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | |
| | | .setting-drawer-index-content { |
| | | |
| | | .setting-drawer-index-blockChecbox { |
| | | display: flex; |
| | | |
| | | .setting-drawer-index-item { |
| | | margin-right: 16px; |
| | | position: relative; |
| | | border-radius: 4px; |
| | | cursor: pointer; |
| | | |
| | | img { |
| | | width: 48px; |
| | | } |
| | | |
| | | .setting-drawer-index-selectIcon { |
| | | position: absolute; |
| | | top: 0; |
| | | right: 0; |
| | | width: 100%; |
| | | padding-top: 15px; |
| | | padding-left: 24px; |
| | | height: 100%; |
| | | color: #1890ff; |
| | | font-size: 14px; |
| | | font-weight: 700; |
| | | } |
| | | } |
| | | } |
| | | .setting-drawer-theme-color-colorBlock { |
| | | width: 20px; |
| | | height: 20px; |
| | | border-radius: 2px; |
| | | float: left; |
| | | cursor: pointer; |
| | | margin-right: 8px; |
| | | padding-left: 0px; |
| | | padding-right: 0px; |
| | | text-align: center; |
| | | color: #fff; |
| | | font-weight: 700; |
| | | |
| | | i { |
| | | font-size: 14px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .setting-drawer-index-handle { |
| | | position: absolute; |
| | | top: 240px; |
| | | background: #1890ff; |
| | | width: 48px; |
| | | height: 48px; |
| | | right: 300px; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | cursor: pointer; |
| | | pointer-events: auto; |
| | | z-index: 1001; |
| | | text-align: center; |
| | | font-size: 16px; |
| | | border-radius: 4px 0 0 4px; |
| | | |
| | | i { |
| | | color: rgb(255, 255, 255); |
| | | font-size: 20px; |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="setting-drawer-index-item"> |
| | | <h3 class="setting-drawer-index-title">{{ title }}</h3> |
| | | <slot></slot> |
| | | <a-divider v-if="divider"/> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: 'SettingItem', |
| | | props: { |
| | | title: { |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | divider: { |
| | | type: Boolean, |
| | | default: false |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | |
| | | .setting-drawer-index-item { |
| | | margin-bottom: 24px; |
| | | |
| | | .setting-drawer-index-title { |
| | | font-size: 14px; |
| | | color: rgba(0, 0, 0, .85); |
| | | line-height: 22px; |
| | | margin-bottom: 12px; |
| | | } |
| | | |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import SettingDrawer from './SettingDrawer' |
| | | export default SettingDrawer |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { message } from 'ant-design-vue/es' |
| | | import themeColor from './themeColor.js' |
| | | |
| | | const colorList = [ |
| | | { |
| | | key: 'èæ®', color: '#F5222D' |
| | | }, |
| | | { |
| | | key: 'ç«å±±', color: '#FA541C' |
| | | }, |
| | | { |
| | | key: 'æ¥æ®', color: '#FAAD14' |
| | | }, |
| | | { |
| | | key: 'æé', color: '#13C2C2' |
| | | }, |
| | | { |
| | | key: 'æå
绿', color: '#52C41A' |
| | | }, |
| | | { |
| | | key: 'ææèï¼é»è®¤ï¼', color: '#1890FF' |
| | | }, |
| | | { |
| | | key: 'æå®¢è', color: '#2F54EB' |
| | | }, |
| | | { |
| | | key: 'é
±ç´«', color: '#722ED1' |
| | | } |
| | | ] |
| | | |
| | | const updateTheme = newPrimaryColor => { |
| | | const hideMessage = message.loading('æ£å¨åæ¢ä¸»é¢ï¼', 0) |
| | | themeColor.changeColor(newPrimaryColor).finally(t => { |
| | | setTimeout(() => { |
| | | hideMessage() |
| | | }, 10) |
| | | }) |
| | | } |
| | | |
| | | const updateColorWeak = colorWeak => { |
| | | // document.body.className = colorWeak ? 'colorWeak' : ''; |
| | | const app = document.body.querySelector('#app') |
| | | colorWeak ? app.classList.add('colorWeak') : app.classList.remove('colorWeak') |
| | | } |
| | | |
| | | export { updateTheme, colorList, updateColorWeak } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import client from 'webpack-theme-color-replacer/client' |
| | | import generate from '@ant-design/colors/lib/generate' |
| | | |
| | | export default { |
| | | getAntdSerials (color) { |
| | | // æ·¡åï¼å³lessçtintï¼ |
| | | const lightens = new Array(9).fill().map((t, i) => { |
| | | return client.varyColor.lighten(color, i / 10) |
| | | }) |
| | | // colorPalette忢å¾å°é¢è²å¼ |
| | | const colorPalettes = generate(color) |
| | | const rgb = client.varyColor.toNum3(color.replace('#', '')).join(',') |
| | | return lightens.concat(colorPalettes).concat(rgb) |
| | | }, |
| | | changeColor (newColor) { |
| | | var options = { |
| | | newColors: this.getAntdSerials(newColor), // new colors array, one-to-one corresponde with `matchColors` |
| | | changeUrl (cssUrl) { |
| | | return `/${cssUrl}` // while router is not `hash` mode, it needs absolute path |
| | | } |
| | | } |
| | | return client.changer.changeColor(options, Promise) |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div :class="[prefixCls, lastCls, blockCls, gridCls]"> |
| | | <div v-if="title" class="antd-pro-components-standard-form-row-index-label"> |
| | | <span>{{ title }}</span> |
| | | </div> |
| | | <div class="antd-pro-components-standard-form-row-index-content"> |
| | | <slot></slot> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | const classes = [ |
| | | 'antd-pro-components-standard-form-row-index-standardFormRowBlock', |
| | | 'antd-pro-components-standard-form-row-index-standardFormRowGrid', |
| | | 'antd-pro-components-standard-form-row-index-standardFormRowLast' |
| | | ] |
| | | export default { |
| | | name: 'StandardFormRow', |
| | | props: { |
| | | prefixCls: { |
| | | type: String, |
| | | default: 'antd-pro-components-standard-form-row-index-standardFormRow' |
| | | }, |
| | | title: { |
| | | type: String, |
| | | default: undefined |
| | | }, |
| | | last: { |
| | | type: Boolean |
| | | }, |
| | | block: { |
| | | type: Boolean |
| | | }, |
| | | grid: { |
| | | type: Boolean |
| | | } |
| | | }, |
| | | computed: { |
| | | lastCls () { |
| | | return this.last ? classes[2] : null |
| | | }, |
| | | blockCls () { |
| | | return this.block ? classes[0] : null |
| | | }, |
| | | gridCls () { |
| | | return this.grid ? classes[1] : null |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | @import '../index.less'; |
| | | |
| | | .antd-pro-components-standard-form-row-index-standardFormRow { |
| | | display: flex; |
| | | margin-bottom: 16px; |
| | | padding-bottom: 16px; |
| | | border-bottom: 1px dashed @border-color-split; |
| | | |
| | | /deep/ .ant-form-item { |
| | | margin-right: 24px; |
| | | } |
| | | /deep/ .ant-form-item-label label { |
| | | margin-right: 0; |
| | | color: @text-color; |
| | | } |
| | | /deep/ .ant-form-item-label, |
| | | .ant-form-item-control { |
| | | padding: 0; |
| | | line-height: 32px; |
| | | } |
| | | |
| | | .antd-pro-components-standard-form-row-index-label { |
| | | flex: 0 0 auto; |
| | | margin-right: 24px; |
| | | color: @heading-color; |
| | | font-size: @font-size-base; |
| | | text-align: right; |
| | | & > span { |
| | | display: inline-block; |
| | | height: 32px; |
| | | line-height: 32px; |
| | | &::after { |
| | | content: 'ï¼'; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .antd-pro-components-standard-form-row-index-content { |
| | | flex: 1 1 0; |
| | | /deep/ .ant-form-item:last-child { |
| | | margin-right: 0; |
| | | } |
| | | } |
| | | |
| | | &.antd-pro-components-standard-form-row-index-standardFormRowLast { |
| | | margin-bottom: 0; |
| | | padding-bottom: 0; |
| | | border: none; |
| | | } |
| | | |
| | | &.antd-pro-components-standard-form-row-index-standardFormRowBlock { |
| | | /deep/ .ant-form-item, |
| | | div.ant-form-item-control-wrapper { |
| | | display: block; |
| | | } |
| | | } |
| | | |
| | | &.antd-pro-components-standard-form-row-index-standardFormRowGrid { |
| | | /deep/ .ant-form-item, |
| | | div.ant-form-item-control-wrapper { |
| | | display: block; |
| | | } |
| | | /deep/ .ant-form-item-label { |
| | | float: left; |
| | | } |
| | | } |
| | | } |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import StandardFormRow from './StandardFormRow' |
| | | |
| | | export default StandardFormRow |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Table éå°è£
ç»ä»¶è¯´æ |
| | | ==== |
| | | |
| | | |
| | | å°è£
说æ |
| | | ---- |
| | | |
| | | > åºç¡çä½¿ç¨æ¹å¼ä¸ API ä¸ [宿¹ç(Table)](https://vuecomponent.github.io/ant-design-vue/components/table-cn/) æ¬ä¸è´ï¼å¨å
¶åºç¡ä¸ï¼å°è£
äºå è½½æ°æ®çæ¹æ³ã |
| | | > |
| | | > ä½ æ éå¨ä½ æ¯ç¨è¡¨æ ¼ç页é¢è¿è¡å页é»è¾å¤çï¼ä»
éå Table ç»ä»¶ä¼ éç»å® `:data="Promise"` 对象å³å¯ |
| | | |
| | | 该 `table` ç± [@Saraka](https://github.com/saraka-tsukai) 宿å°è£
|
| | | |
| | | |
| | | ä¾å1 |
| | | ---- |
| | | ï¼åºç¡ä½¿ç¨ï¼ |
| | | |
| | | ```vue |
| | | |
| | | <template> |
| | | <s-table |
| | | ref="table" |
| | | :rowKey="(record) => record.data.id" |
| | | :columns="columns" |
| | | :data="loadData" |
| | | :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" |
| | | > |
| | | </s-table> |
| | | </template> |
| | | |
| | | <script> |
| | | import STable from '@/components' |
| | | |
| | | export default { |
| | | components: { |
| | | STable |
| | | }, |
| | | data() { |
| | | return { |
| | | columns: [ |
| | | { |
| | | title: 'è§åç¼å·', |
| | | dataIndex: 'no' |
| | | }, |
| | | { |
| | | title: 'æè¿°', |
| | | dataIndex: 'description' |
| | | }, |
| | | { |
| | | title: 'æå¡è°ç¨æ¬¡æ°', |
| | | dataIndex: 'callNo', |
| | | sorter: true, |
| | | needTotal: true, |
| | | customRender: (text) => text + ' 次' |
| | | }, |
| | | { |
| | | title: 'ç¶æ', |
| | | dataIndex: 'status', |
| | | needTotal: true |
| | | }, |
| | | { |
| | | title: 'æ´æ°æ¶é´', |
| | | dataIndex: 'updatedAt', |
| | | sorter: true |
| | | } |
| | | ], |
| | | // æ¥è¯¢æ¡ä»¶åæ° |
| | | queryParam: {}, |
| | | // å è½½æ°æ®æ¹æ³ å¿
须为 Promise 对象 |
| | | loadData: parameter => { |
| | | return this.$http.get('/service', { |
| | | params: Object.assign(parameter, this.queryParam) |
| | | }).then(res => { |
| | | return res.result |
| | | }) |
| | | }, |
| | | selectedRowKeys: [], |
| | | selectedRows: [] |
| | | } |
| | | }, |
| | | methods: { |
| | | onSelectChange (selectedRowKeys, selectedRows) { |
| | | this.selectedRowKeys = selectedRowKeys |
| | | this.selectedRows = selectedRows |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | ``` |
| | | |
| | | |
| | | |
| | | ä¾å2 |
| | | ---- |
| | | |
| | | ï¼ç®åçè¡¨æ ¼ï¼æåä¸åæ¯åç§æä½ï¼ |
| | | |
| | | ```vue |
| | | <template> |
| | | <s-table |
| | | ref="table" |
| | | :columns="columns" |
| | | :data="loadData" |
| | | > |
| | | <span slot="action" slot-scope="text, record"> |
| | | <a>ç¼è¾</a> |
| | | <a-divider type="vertical"/> |
| | | <a-dropdown> |
| | | <a class="ant-dropdown-link"> |
| | | æ´å¤ <a-icon type="down"/> |
| | | </a> |
| | | <a-menu slot="overlay"> |
| | | <a-menu-item> |
| | | <a href="javascript:;">1st menu item</a> |
| | | </a-menu-item> |
| | | <a-menu-item> |
| | | <a href="javascript:;">2nd menu item</a> |
| | | </a-menu-item> |
| | | <a-menu-item> |
| | | <a href="javascript:;">3rd menu item</a> |
| | | </a-menu-item> |
| | | </a-menu> |
| | | </a-dropdown> |
| | | </span> |
| | | </s-table> |
| | | </template> |
| | | |
| | | <script> |
| | | import STable from '@/components/table/' |
| | | |
| | | export default { |
| | | components: { |
| | | STable |
| | | }, |
| | | data() { |
| | | return { |
| | | columns: [ |
| | | { |
| | | title: 'è§åç¼å·', |
| | | dataIndex: 'no' |
| | | }, |
| | | { |
| | | title: 'æè¿°', |
| | | dataIndex: 'description' |
| | | }, |
| | | { |
| | | title: 'æå¡è°ç¨æ¬¡æ°', |
| | | dataIndex: 'callNo', |
| | | }, |
| | | { |
| | | title: 'ç¶æ', |
| | | dataIndex: 'status', |
| | | }, |
| | | { |
| | | title: 'æ´æ°æ¶é´', |
| | | dataIndex: 'updatedAt', |
| | | }, |
| | | { |
| | | table: 'æä½', |
| | | dataIndex: 'action', |
| | | scopedSlots: {customRender: 'action'}, |
| | | } |
| | | ], |
| | | // æ¥è¯¢æ¡ä»¶åæ° |
| | | queryParam: {}, |
| | | // å è½½æ°æ®æ¹æ³ å¿
须为 Promise 对象 |
| | | loadData: parameter => { |
| | | return this.$http.get('/service', { |
| | | params: Object.assign(parameter, this.queryParam) |
| | | }).then(res => { |
| | | return res.result |
| | | }) |
| | | }, |
| | | } |
| | | }, |
| | | methods: { |
| | | edit(row) { |
| | | // axios åéæ°æ®å°å端 ä¿®æ¹æ°æ®æåå |
| | | // è°ç¨ refresh() éæ°å è½½åè¡¨æ°æ® |
| | | // è¿é setTimeout 模æå起请æ±çç½ç»å»¶è¿.. |
| | | setTimeout(() => { |
| | | this.$refs.table.refresh() // refresh() ä¸ä¼ åé»è®¤å¼ false ä¸å·æ°å°å页第ä¸é¡µ |
| | | }, 1500) |
| | | |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | ``` |
| | | |
| | | |
| | | |
| | | å
ç½®æ¹æ³ |
| | | ---- |
| | | |
| | | éè¿ `this.$refs.table` è°ç¨ |
| | | |
| | | `this.$refs.table.refresh(true)` å·æ°å表 (ç¨æ·æ°å¢/ä¿®æ¹æ°æ®åï¼éè½½åè¡¨æ°æ®) |
| | | |
| | | > 注æï¼è¦è°ç¨ `refresh(bool)` éè¦ç»è¡¨æ ¼ç»ä»¶è®¾å® `ref` å¼ |
| | | > |
| | | > `refresh()` æ¹æ³å¯ä»¥ä¼ ä¸ä¸ª `bool` å¼ï¼å½æä¼ å¼ æå¼ä¸º `true` æ¶ï¼åå·æ°æ¶ä¼å¼ºå¶å·æ°å°ç¬¬ä¸é¡µï¼å¸¸ç¨æ·é¡µé¢ æç´¢ æé®è¿è¡æç´¢æ¶ï¼ç»æä»ç¬¬ä¸é¡µå¼å§åé¡µï¼ |
| | | |
| | | |
| | | å
ç½®å±æ§ |
| | | ---- |
| | | > é¤å» `a-table` èªå¸¦å±æ§å¤ï¼è¿è夿ä¾äºä¸äºé¢å¤å±æ§å±æ§ |
| | | |
| | | |
| | | | 屿§ | 说æ | ç±»å | é»è®¤å¼ | |
| | | | -------------- | ----------------------------------------------- | ----------------- | ------ | |
| | | | alert | 设置æ¯å¦æ¾ç¤ºè¡¨æ ¼ä¿¡æ¯æ | [object, boolean] | null | |
| | | | showPagination | æ¾ç¤ºå页鿩å¨ï¼å¯ä¼ 'auto' \| boolean | [string, boolean] | 'auto' | |
| | | | data | å è½½æ°æ®æ¹æ³ å¿
须为 `Promise` 对象 **å¿
é¡»ç»å®** | Promise | - | |
| | | |
| | | |
| | | `alert` 屿§å¯¹è±¡ï¼ |
| | | |
| | | ```javascript |
| | | alert: { |
| | | show: Boolean, |
| | | clear: [Function, Boolean] |
| | | } |
| | | ``` |
| | | |
| | | 注æäºé¡¹ |
| | | ---- |
| | | |
| | | > ä½ å¯è½éè¦ä¸ºäºä¸å端æä¾çæ¥å£è¿åç»æä¸è´èå»ä¿®æ¹ä»¥ä¸ä»£ç ï¼ |
| | | > (éè¦æ³¨æçæ¯ï¼è¿éçä¿®æ¹æ¯å
¨å±æ§çï¼æå³çæ´ä¸ªé¡¹ç®ææä½¿ç¨è¯¥ table ç»ä»¶é½éè¦éµå®è¿ä¸ªè¿åç»æå®ä¹çåæ®µã) |
| | | > |
| | | > ææ¡£ä¸çç»ææå¯è½ç±äºç»ä»¶ bug è¿è¡ä¿®æ£èæ¹å¨ãå®é
ä¿®æ¹è¯·ä»¥å½æ¶ææ°çæ¬ä¸ºå |
| | | |
| | | ä¿®æ¹ `@/components/table/index.js` 第 156 è¡èµ· |
| | | |
| | | |
| | | |
| | | ```javascript |
| | | result.then(r => { |
| | | this.localPagination = this.showPagination && Object.assign({}, this.localPagination, { |
| | | current: r.pageNo, // è¿åç»æä¸çå½ååé¡µæ° |
| | | total: r.totalCount, // è¿åç»æä¸çæ»è®°å½æ° |
| | | showSizeChanger: this.showSizeChanger, |
| | | pageSize: (pagination && pagination.pageSize) || |
| | | this.localPagination.pageSize |
| | | }) || false |
| | | // ä¸ºé²æ¢å 餿°æ®å导è´é¡µé¢å½å页颿°æ®é¿åº¦ä¸º 0 ,èªå¨ç¿»é¡µå°ä¸ä¸é¡µ |
| | | if (r.data.length === 0 && this.showPagination && this.localPagination.current > 1) { |
| | | this.localPagination.current-- |
| | | this.loadData() |
| | | return |
| | | } |
| | | |
| | | // è¿éç¨äºå¤ææ¥å£æ¯å¦æè¿å r.totalCount ä¸ this.showPagination = true ä¸ pageNo å pageSize åå¨ ä¸ totalCount å°äºçäº pageNo * pageSize çå¤§å° |
| | | // 彿
嵿»¡è¶³æ¶ï¼è¡¨ç¤ºæ°æ®ä¸æ»¡è¶³å页大å°ï¼å
³é table å页åè½ |
| | | try { |
| | | if ((['auto', true].includes(this.showPagination) && r.totalCount <= (r.pageNo * this.localPagination.pageSize))) { |
| | | this.localPagination.hideOnSinglePage = true |
| | | } |
| | | } catch (e) { |
| | | this.localPagination = false |
| | | } |
| | | this.localDataSource = r.data // è¿åç»æä¸çæ°ç»æ°æ® |
| | | this.localLoading = false |
| | | }) |
| | | ``` |
| | | è¿å JSON ä¾åï¼ |
| | | ```json |
| | | { |
| | | "message": "", |
| | | "result": { |
| | | "data": [{ |
| | | id: 1, |
| | | cover: 'https://gw.alipayobjects.com/zos/rmsportal/WdGqmHpayyMjiEhcKoVE.png', |
| | | title: 'Alipay', |
| | | description: '飿¯ä¸ç§å
å¨çä¸è¥¿ï¼ ä»ä»¬å°è¾¾ä¸äºï¼ä¹æ æ³è§¦åç', |
| | | status: 1, |
| | | updatedAt: '2018-07-26 00:00:00' |
| | | }, |
| | | { |
| | | id: 2, |
| | | cover: 'https://gw.alipayobjects.com/zos/rmsportal/zOsKZmFRdUtvpqCImOVY.png', |
| | | title: 'Angular', |
| | | description: '叿æ¯ä¸ä¸ªå¥½ä¸è¥¿ï¼ä¹è®¸æ¯æå¥½çï¼å¥½ä¸è¥¿æ¯ä¸ä¼æ¶äº¡ç', |
| | | status: 1, |
| | | updatedAt: '2018-07-26 00:00:00' |
| | | }, |
| | | { |
| | | id: 3, |
| | | cover: 'https://gw.alipayobjects.com/zos/rmsportal/dURIMkkrRFpPgTuzkwnB.png', |
| | | title: 'Ant Design', |
| | | description: 'åé䏿é£ä¹å¤çé
é¦ï¼å¥¹å´ååèµ°è¿äºæçé
é¦', |
| | | status: 1, |
| | | updatedAt: '2018-07-26 00:00:00' |
| | | }, |
| | | { |
| | | id: 4, |
| | | cover: 'https://gw.alipayobjects.com/zos/rmsportal/sfjbOqnsXXJgNCjCzDBL.png', |
| | | title: 'Admin.NET', |
| | | description: '飿¶åæåªä¼æ³èªå·±æ³è¦ä»ä¹ï¼ä»ä¸æ³èªå·±æ¥æä»ä¹', |
| | | status: 1, |
| | | updatedAt: '2018-07-26 00:00:00' |
| | | }, |
| | | { |
| | | id: 5, |
| | | cover: 'https://gw.alipayobjects.com/zos/rmsportal/siCrBXXhmvTQGWPNLBow.png', |
| | | title: 'Bootstrap', |
| | | description: 'åå¬å°è³', |
| | | status: 1, |
| | | updatedAt: '2018-07-26 00:00:00' |
| | | }, |
| | | { |
| | | id: 6, |
| | | cover: 'https://gw.alipayobjects.com/zos/rmsportal/ComBAopevLwENQdKWiIn.png', |
| | | title: 'Vue', |
| | | description: 'çå½å°±åä¸çå·§å
åï¼ç»æå¾å¾åºäººææ', |
| | | status: 1, |
| | | updatedAt: '2018-07-26 00:00:00' |
| | | } |
| | | ], |
| | | "pageSize": 10, |
| | | "pageNo": 0, |
| | | "totalPage": 6, |
| | | "totalCount": 57 |
| | | }, |
| | | "status": 200, |
| | | "timestamp": 1534955098193 |
| | | } |
| | | ``` |
| | | |
| | | |
| | | |
| | | æ´æ°æ¶é´ |
| | | ---- |
| | | |
| | | è¯¥ææ¡£æåæ´æ°äºï¼ 2019-06-23 PM 17:19 |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div slot="overlay" class="ant-dropdown-menu s-tool-column ant-dropdown-content"> |
| | | <div class="s-tool-column-header s-tool-column-item"> |
| | | <a-checkbox :indeterminate="indeterminate" :checked="checkAll" @change="onCheckAllChange"> |
| | | åå±ç¤º |
| | | </a-checkbox> |
| | | <a @click="reset">éç½®</a> |
| | | </div> |
| | | <a-divider /> |
| | | <div class="ant-checkbox-group"> |
| | | <div> |
| | | <draggable v-model="columnsSetting" animation="300" @end="emitColumnChange"> |
| | | <div class="s-tool-column-item" v-for="item in columnsSetting" :key="item.title"> |
| | | <div class="s-tool-column-handle" > |
| | | <a-icon type="more"/> |
| | | <a-icon type="more"/> |
| | | </div> |
| | | <a-checkbox v-model="item.checked" @change="onChange">{{ item.title }}</a-checkbox> |
| | | </div> |
| | | </draggable> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import draggable from 'vuedraggable' |
| | | |
| | | export default { |
| | | props: { |
| | | columns: { |
| | | type: Array, |
| | | default: () => ([]) |
| | | } |
| | | }, |
| | | components: { |
| | | draggable |
| | | }, |
| | | data() { |
| | | return { |
| | | indeterminate: false, |
| | | checkAll: true, |
| | | columnsSetting: [], |
| | | originColumns: [] |
| | | } |
| | | }, |
| | | methods: { |
| | | reset() { |
| | | this.columnsSetting = JSON.parse(JSON.stringify(this.originColumns)) |
| | | this.indeterminate = false |
| | | this.checkAll = true |
| | | this.emitColumnChange() |
| | | }, |
| | | onChange() { |
| | | const checkedList = this.columnsSetting.filter(value => value.checked) |
| | | this.indeterminate = !!checkedList.length && checkedList.length < this.columnsSetting.length |
| | | this.checkAll = checkedList.length === this.columnsSetting.length |
| | | this.emitColumnChange() |
| | | }, |
| | | onCheckAllChange(e) { |
| | | const val = e.target.checked |
| | | Object.assign(this, { |
| | | indeterminate: false, |
| | | checkAll: val, |
| | | columnsSetting: this.columns.map(value => ({ ...value, checked: val })) |
| | | }) |
| | | this.emitColumnChange() |
| | | }, |
| | | emitColumnChange() { |
| | | this.$emit('columnChange', this.columnsSetting) |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.columnsSetting = this.columns.map(value => ({ ...value, checked: true })) |
| | | this.originColumns = JSON.parse(JSON.stringify(this.columnsSetting)) |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import T from 'ant-design-vue/es/table/Table' |
| | | import get from 'lodash.get' |
| | | import draggable from 'vuedraggable' |
| | | import columnSetting from './columnSetting' |
| | | import './index.less' |
| | | |
| | | export default { |
| | | components: { |
| | | draggable, columnSetting |
| | | }, |
| | | data () { |
| | | return { |
| | | needTotalList: [], |
| | | |
| | | selectedRows: [], |
| | | selectedRowKeys: [], |
| | | |
| | | localLoading: false, |
| | | localDataSource: [], |
| | | localPagination: Object.assign({}, this.pagination), |
| | | isFullscreen: false, |
| | | customSize: this.size, |
| | | columnsSetting: [] |
| | | } |
| | | }, |
| | | props: Object.assign({}, T.props, { |
| | | rowKey: { |
| | | type: [String, Function], |
| | | default: 'key' |
| | | }, |
| | | data: { |
| | | type: Function, |
| | | required: true |
| | | }, |
| | | pageNum: { |
| | | type: Number, |
| | | default: 1 |
| | | }, |
| | | pageSize: { |
| | | type: Number, |
| | | default: 10 |
| | | }, |
| | | showSizeChanger: { |
| | | type: Boolean, |
| | | default: true |
| | | }, |
| | | size: { |
| | | type: String, |
| | | default: 'middle' |
| | | }, |
| | | /** |
| | | * alert: { |
| | | * show: true, |
| | | * clear: Function |
| | | * } |
| | | */ |
| | | alert: { |
| | | type: [Object, Boolean], |
| | | default: null |
| | | }, |
| | | rowSelection: { |
| | | type: Object, |
| | | default: null |
| | | }, |
| | | /** @Deprecated */ |
| | | showAlertInfo: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | showPagination: { |
| | | type: String | Boolean, |
| | | default: 'auto' |
| | | }, |
| | | /** |
| | | * enable page URI mode |
| | | * |
| | | * e.g: |
| | | * /users/1 |
| | | * /users/2 |
| | | * /users/3?queryParam=test |
| | | * ... |
| | | */ |
| | | pageURI: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | extraTool: { |
| | | type: Array, |
| | | default: () => ([]) |
| | | } |
| | | }), |
| | | watch: { |
| | | 'localPagination.current' (val) { |
| | | this.pageURI && this.$router.push({ |
| | | ...this.$route, |
| | | name: this.$route.name, |
| | | params: Object.assign({}, this.$route.params, { |
| | | pageNo: val |
| | | }) |
| | | }) |
| | | }, |
| | | pageNum (val) { |
| | | Object.assign(this.localPagination, { |
| | | current: val |
| | | }) |
| | | }, |
| | | pageSize (val) { |
| | | Object.assign(this.localPagination, { |
| | | pageSize: val |
| | | }) |
| | | }, |
| | | showSizeChanger (val) { |
| | | Object.assign(this.localPagination, { |
| | | showSizeChanger: val |
| | | }) |
| | | } |
| | | }, |
| | | created () { |
| | | const { pageNo } = this.$route.params |
| | | const localPageNum = this.pageURI && (pageNo && parseInt(pageNo)) || this.pageNum |
| | | this.localPagination = ['auto', true].includes(this.showPagination) && Object.assign({}, this.localPagination, { |
| | | current: localPageNum, |
| | | pageSize: this.pageSize, |
| | | showSizeChanger: this.showSizeChanger, |
| | | showTotal: (total, range) => { |
| | | return range[0] + '-' + range[1] + 'å
±' + total + 'æ¡' |
| | | } |
| | | }) || false |
| | | this.needTotalList = this.initTotalList(this.columns) |
| | | this.loadData() |
| | | this.columnsSetting = this.columns |
| | | }, |
| | | methods: { |
| | | /** |
| | | * è¡¨æ ¼éæ°å è½½æ¹æ³ |
| | | * å¦æåæ°ä¸º true, å强å¶å·æ°å°ç¬¬ä¸é¡µ |
| | | * @param Boolean bool |
| | | */ |
| | | refresh (bool = false) { |
| | | bool && (this.localPagination = Object.assign({}, { |
| | | current: 1, pageSize: this.pageSize |
| | | })) |
| | | this.loadData() |
| | | }, |
| | | /** |
| | | * å è½½æ°æ®æ¹æ³ |
| | | * @param {Object} pagination å页éé¡¹å¨ |
| | | * @param {Object} filters è¿æ»¤æ¡ä»¶ |
| | | * @param {Object} sorter æåºæ¡ä»¶ |
| | | */ |
| | | loadData (pagination, filters, sorter) { |
| | | this.localLoading = true |
| | | const parameter = Object.assign({ |
| | | pageNo: (pagination && pagination.current) || |
| | | this.showPagination && this.localPagination.current || this.pageNum, |
| | | pageSize: (pagination && pagination.pageSize) || |
| | | this.showPagination && this.localPagination.pageSize || this.pageSize |
| | | }, |
| | | (sorter && sorter.field && { |
| | | sortField: sorter.field |
| | | }) || {}, |
| | | (sorter && sorter.order && { |
| | | sortOrder: sorter.order |
| | | }) || {}, { |
| | | ...filters |
| | | } |
| | | ) |
| | | const result = this.data(parameter) |
| | | // 对æ¥èªå·±çéç¨æ°æ®æ¥å£éè¦ä¿®æ¹ä¸æ¹ä»£ç ä¸ç r.pageNo, r.totalCount, r.data |
| | | // eslint-disable-next-line |
| | | if ((typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function') { |
| | | result.then(r => { |
| | | if (r == null) { |
| | | this.localLoading = false |
| | | return |
| | | } |
| | | this.localPagination = this.showPagination && Object.assign({}, this.localPagination, { |
| | | current: r.pageNo, // pageNo, // è¿åç»æä¸çå½ååé¡µæ° |
| | | total: r.totalRows, // totalCount, // è¿åç»æä¸çæ»è®°å½æ° |
| | | showSizeChanger: this.showSizeChanger, |
| | | pageSize: (pagination && pagination.pageSize) || |
| | | this.localPagination.pageSize |
| | | }) || false |
| | | // åç«¯æ°æ®rows为nullä¿åä¿®å¤ |
| | | if (r.rows == null) { |
| | | r.rows = [] |
| | | } |
| | | // ä¸ºé²æ¢å 餿°æ®å导è´é¡µé¢å½å页颿°æ®é¿åº¦ä¸º 0 ,èªå¨ç¿»é¡µå°ä¸ä¸é¡µ |
| | | if (r.rows.length === 0 && this.showPagination && this.localPagination.current > 1) { |
| | | this.localPagination.current-- |
| | | this.loadData() |
| | | return |
| | | } |
| | | |
| | | // è¿éç¨äºå¤ææ¥å£æ¯å¦æè¿å r.totalCount ä¸ this.showPagination = true ä¸ pageNo å pageSize åå¨ ä¸ totalCount å°äºçäº pageNo * pageSize çå¤§å° |
| | | // 彿
嵿»¡è¶³æ¶ï¼è¡¨ç¤ºæ°æ®ä¸æ»¡è¶³å页大å°ï¼å
³é table å页åè½ |
| | | try { |
| | | if ((['auto', true].includes(this.showPagination) && r.totalCount <= (r.totalPage * this.localPagination.pageSize))) { |
| | | this.localPagination.hideOnSinglePage = true |
| | | } |
| | | } catch (e) { |
| | | this.localPagination = false |
| | | } |
| | | this.localDataSource = r.rows // è¿åç»æä¸çæ°ç»æ°æ® |
| | | this.localLoading = false |
| | | }) |
| | | } |
| | | }, |
| | | initTotalList (columns) { |
| | | const totalList = [] |
| | | columns && columns instanceof Array && columns.forEach(column => { |
| | | if (column.needTotal) { |
| | | totalList.push({ |
| | | ...column, |
| | | total: 0 |
| | | }) |
| | | } |
| | | }) |
| | | return totalList |
| | | }, |
| | | /** |
| | | * ç¨äºæ´æ°å·²éä¸çåè¡¨æ°æ® total ç»è®¡ |
| | | * @param selectedRowKeys |
| | | * @param selectedRows |
| | | */ |
| | | updateSelect (selectedRowKeys, selectedRows) { |
| | | this.selectedRows = selectedRows |
| | | this.selectedRowKeys = selectedRowKeys |
| | | const list = this.needTotalList |
| | | this.needTotalList = list.map(item => { |
| | | return { |
| | | ...item, |
| | | total: selectedRows.reduce((sum, val) => { |
| | | const total = sum + parseInt(get(val, item.dataIndex)) |
| | | return isNaN(total) ? 0 : total |
| | | }, 0) |
| | | } |
| | | }) |
| | | }, |
| | | /** |
| | | * æ¸
空 table å·²éä¸é¡¹ |
| | | */ |
| | | clearSelected () { |
| | | if (this.rowSelection) { |
| | | this.rowSelection.onChange([], []) |
| | | this.updateSelect([], []) |
| | | } |
| | | }, |
| | | /** |
| | | * å¤çäº¤ç» table 使ç¨è
å»å¤ç clear äºä»¶æ¶ï¼å
é¨éä¸ç»è®¡åæ¶è°ç¨ |
| | | * @param callback |
| | | * @returns {*} |
| | | */ |
| | | renderClear (callback) { |
| | | if (this.selectedRowKeys.length <= 0) return null |
| | | return ( |
| | | <a style="margin-left: 24px" onClick={() => { |
| | | callback() |
| | | this.clearSelected() |
| | | }}>æ¸
空</a> |
| | | ) |
| | | }, |
| | | renderAlert () { |
| | | // ç»å¶ç»è®¡åæ°æ® |
| | | // eslint-disable-next-line no-unused-vars |
| | | const needTotalItems = this.needTotalList.map((item) => { |
| | | return (<span style="margin-right: 12px"> |
| | | {item.title}æ»è®¡ <a style="font-weight: 600">{!item.customRender ? item.total : item.customRender(item.total)}</a> |
| | | </span>) |
| | | }) |
| | | |
| | | // ç»å¶ æ¸
空 æé® |
| | | // eslint-disable-next-line no-unused-vars |
| | | const clearItem = (typeof this.alert.clear === 'boolean' && this.alert.clear) ? ( |
| | | this.renderClear(this.clearSelected) |
| | | ) : (this.alert !== null && typeof this.alert.clear === 'function') ? ( |
| | | this.renderClear(this.alert.clear) |
| | | ) : null |
| | | |
| | | // ç»å¶ alert ç»ä»¶ |
| | | // ç»ä¸å
å»é¤alertç»ä»¶ |
| | | return '' |
| | | /* return ( |
| | | <a-alert showIcon={true} style="margin-bottom: 16px"> |
| | | <template slot="message"> |
| | | <span style="margin-right: 12px">已鿩: <a style="font-weight: 600">{this.selectedRows.length}</a></span> |
| | | {needTotalItems} |
| | | {clearItem} |
| | | </template> |
| | | </a-alert> |
| | | ) */ |
| | | }, |
| | | columnChange(val) { |
| | | this.columnsSetting = val |
| | | }, |
| | | renderHeader () { |
| | | let tools = [ |
| | | { |
| | | icon: 'reload', |
| | | title: 'å·æ°', |
| | | onClick: () => { |
| | | this.refresh() |
| | | } |
| | | }, |
| | | { |
| | | icon: 'column-height', |
| | | title: 'å¯åº¦', |
| | | isDropdown: true, |
| | | menu: () => { |
| | | const onClick = ({ key }) => { |
| | | this.customSize = key |
| | | } |
| | | return ( |
| | | <a-menu slot="overlay" onClick={onClick} selectable defaultSelectedKeys={[this.customSize]}> |
| | | <a-menu-item key="default">é»è®¤</a-menu-item> |
| | | <a-menu-item key="middle">ä¸ç</a-menu-item> |
| | | <a-menu-item key="small">ç´§å</a-menu-item> |
| | | </a-menu> |
| | | ) |
| | | }, |
| | | onClick: () => { |
| | | } |
| | | }, |
| | | { |
| | | icon: 'setting', |
| | | title: 'å设置', |
| | | isDropdown: true, |
| | | menu: () => { |
| | | return <columnSetting slot="overlay" columns={this.columns} onColumnChange={this.columnChange} /> |
| | | }, |
| | | onClick: () => { |
| | | } |
| | | } |
| | | ] |
| | | if (this.extraTool.length) { |
| | | tools = tools.concat(this.extraTool) |
| | | } |
| | | |
| | | return ( |
| | | <div class="s-table-tool"> |
| | | <div class="s-table-tool-left"> |
| | | {this.$scopedSlots.operator && this.$scopedSlots.operator()} |
| | | </div> |
| | | <div class="s-table-tool-right"> |
| | | { |
| | | tools.map(tool => { |
| | | if (tool.isDropdown) { |
| | | return ( |
| | | <a-dropdown trigger={['click']}> |
| | | <a-tooltip title={tool.title} class="s-tool-item" onClick={tool.onClick}> |
| | | <a-icon type={tool.icon}/> |
| | | </a-tooltip> |
| | | { tool.menu() } |
| | | </a-dropdown> |
| | | ) |
| | | } |
| | | return ( |
| | | <a-tooltip title={tool.title} class="s-tool-item" onClick={tool.onClick}> |
| | | <a-icon type={tool.icon} /> |
| | | </a-tooltip> |
| | | ) |
| | | }) |
| | | } |
| | | </div> |
| | | </div> |
| | | ) |
| | | /* return ( |
| | | <a-alert showIcon={true} style="margin-bottom: 16px"> |
| | | <template slot="message"> |
| | | <span style="margin-right: 12px">已鿩: <a style="font-weight: 600">{this.selectedRows.length}</a></span> |
| | | {needTotalItems} |
| | | {clearItem} |
| | | </template> |
| | | </a-alert> |
| | | ) */ |
| | | } |
| | | }, |
| | | |
| | | render () { |
| | | let props = {} |
| | | const localKeys = Object.keys(this.$data) |
| | | const showAlert = (typeof this.alert === 'object' && this.alert !== null && this.alert.show) && typeof this.rowSelection.selectedRowKeys !== 'undefined' || this.alert |
| | | |
| | | Object.keys(T.props).forEach(k => { |
| | | const localKey = `local${k.substring(0, 1).toUpperCase()}${k.substring(1)}` |
| | | if (localKeys.includes(localKey)) { |
| | | props[k] = this[localKey] |
| | | return props[k] |
| | | } |
| | | if (k === 'rowSelection') { |
| | | if (showAlert && this.rowSelection) { |
| | | // 妿éè¦ä½¿ç¨alertï¼åéæ°ç»å® rowSelection äºä»¶ |
| | | props[k] = { |
| | | ...this.rowSelection, |
| | | selectedRows: this.selectedRows, |
| | | selectedRowKeys: this.selectedRowKeys, |
| | | onChange: (selectedRowKeys, selectedRows) => { |
| | | this.updateSelect(selectedRowKeys, selectedRows) |
| | | typeof this[k].onChange !== 'undefined' && this[k].onChange(selectedRowKeys, selectedRows) |
| | | } |
| | | } |
| | | return props[k] |
| | | } else if (!this.rowSelection) { |
| | | // å¦ææ²¡æç®å¼å¯ rowSelection 忏
空é»è®¤ç鿩项 |
| | | props[k] = null |
| | | return props[k] |
| | | } |
| | | } |
| | | this[k] && (props[k] = this[k]) |
| | | // æ¤å¤é
ç½®è¡¨æ ¼å¤§å°ä¸è¦æ¾ç¤ºçå |
| | | props = { |
| | | ...props, |
| | | size: this.customSize, |
| | | columns: this.columnsSetting.filter(value => value.checked === undefined || value.checked) |
| | | } |
| | | return props[k] |
| | | }) |
| | | const table = ( |
| | | <a-table {...{ props, scopedSlots: { ...this.$scopedSlots } }} onChange={this.loadData} onExpand={ (expanded, record) => { this.$emit('expand', expanded, record) } }> |
| | | { Object.keys(this.$slots).map(name => (<template slot={name}>{this.$slots[name]}</template>)) } |
| | | </a-table> |
| | | ) |
| | | |
| | | return ( |
| | | <div class="table-wrapper"> |
| | | { this.renderHeader() } |
| | | { showAlert ? this.renderAlert() : null } |
| | | { table } |
| | | </div> |
| | | ) |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | .table-wrapper{ |
| | | background: #fff; |
| | | } |
| | | .s-table-tool{ |
| | | display: flex; |
| | | margin-bottom: 16px; |
| | | .s-table-tool-left{ |
| | | flex: 1; |
| | | } |
| | | .s-table-tool-right{ |
| | | display: inline-flex; |
| | | align-items: center; |
| | | .s-tool-item{ |
| | | font-size: 16px; |
| | | margin-left: 16px; |
| | | cursor: pointer; |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | .s-tool-column-item{ |
| | | display: flex; |
| | | align-items: center; |
| | | padding: 4px 16px 4px 4px; |
| | | .ant-checkbox-wrapper{ |
| | | flex: 1; |
| | | } |
| | | .s-tool-column-handle{ |
| | | opacity: .8; |
| | | cursor: move; |
| | | .anticon-more{ |
| | | font-size: 12px; |
| | | margin-top: 2px; |
| | | & + .anticon-more{ |
| | | margin: 2px 4px 0 -8px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .s-tool-column-header{ |
| | | padding: 5px 16px 10px 24px; |
| | | min-width: 180px; |
| | | } |
| | | .s-tool-column{ |
| | | .ant-divider{ |
| | | margin: 0; |
| | | } |
| | | .ant-checkbox-group{ |
| | | padding: 4px 0; |
| | | display: block; |
| | | } |
| | | } |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { Tag } from 'ant-design-vue' |
| | | const { CheckableTag } = Tag |
| | | |
| | | export default { |
| | | name: 'TagSelectOption', |
| | | props: { |
| | | prefixCls: { |
| | | type: String, |
| | | default: 'ant-pro-tag-select-option' |
| | | }, |
| | | value: { |
| | | type: [String, Number, Object], |
| | | default: '' |
| | | }, |
| | | checked: { |
| | | type: Boolean, |
| | | default: false |
| | | } |
| | | }, |
| | | data () { |
| | | return { |
| | | localChecked: this.checked || false |
| | | } |
| | | }, |
| | | watch: { |
| | | 'checked' (val) { |
| | | this.localChecked = val |
| | | }, |
| | | '$parent.items': { |
| | | handler: function (val) { |
| | | this.value && val.hasOwnProperty(this.value) && (this.localChecked = val[this.value]) |
| | | }, |
| | | deep: true |
| | | } |
| | | }, |
| | | render () { |
| | | const { $slots, value } = this |
| | | const onChange = (checked) => { |
| | | this.$emit('change', { value, checked }) |
| | | } |
| | | return (<CheckableTag key={value} vModel={this.localChecked} onChange={onChange}> |
| | | {$slots.default} |
| | | </CheckableTag>) |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import PropTypes from 'ant-design-vue/es/_util/vue-types' |
| | | import Option from './TagSelectOption.jsx' |
| | | import { filterEmpty } from '@/components/_util/util' |
| | | |
| | | export default { |
| | | Option, |
| | | name: 'TagSelect', |
| | | model: { |
| | | prop: 'checked', |
| | | event: 'change' |
| | | }, |
| | | props: { |
| | | prefixCls: { |
| | | type: String, |
| | | default: 'ant-pro-tag-select' |
| | | }, |
| | | defaultValue: { |
| | | type: PropTypes.array, |
| | | default: null |
| | | }, |
| | | value: { |
| | | type: PropTypes.array, |
| | | default: null |
| | | }, |
| | | expandable: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | hideCheckAll: { |
| | | type: Boolean, |
| | | default: false |
| | | } |
| | | }, |
| | | data () { |
| | | return { |
| | | expand: false, |
| | | localCheckAll: false, |
| | | items: this.getItemsKey(filterEmpty(this.$slots.default)), |
| | | val: this.value || this.defaultValue || [] |
| | | } |
| | | }, |
| | | methods: { |
| | | onChange (checked) { |
| | | const key = Object.keys(this.items).filter(key => key === checked.value) |
| | | this.items[key] = checked.checked |
| | | const bool = Object.values(this.items).lastIndexOf(false) |
| | | if (bool === -1) { |
| | | this.localCheckAll = true |
| | | } else { |
| | | this.localCheckAll = false |
| | | } |
| | | }, |
| | | onCheckAll (checked) { |
| | | Object.keys(this.items).forEach(v => { |
| | | this.items[v] = checked.checked |
| | | }) |
| | | this.localCheckAll = checked.checked |
| | | }, |
| | | getItemsKey (items) { |
| | | const totalItem = {} |
| | | items.forEach(item => { |
| | | totalItem[item.componentOptions.propsData && item.componentOptions.propsData.value] = false |
| | | }) |
| | | return totalItem |
| | | }, |
| | | // CheckAll Button |
| | | renderCheckAll () { |
| | | const props = { |
| | | on: { |
| | | change: (checked) => { |
| | | this.onCheckAll(checked) |
| | | checked.value = 'total' |
| | | this.$emit('change', checked) |
| | | } |
| | | } |
| | | } |
| | | const checkAllElement = <Option key={'total'} checked={this.localCheckAll} {...props}>All</Option> |
| | | return !this.hideCheckAll && checkAllElement || null |
| | | }, |
| | | // expandable |
| | | renderExpandable () { |
| | | |
| | | }, |
| | | // render option |
| | | renderTags (items) { |
| | | const listeners = { |
| | | change: (checked) => { |
| | | this.onChange(checked) |
| | | this.$emit('change', checked) |
| | | } |
| | | } |
| | | |
| | | return items.map(vnode => { |
| | | const options = vnode.componentOptions |
| | | options.listeners = listeners |
| | | return vnode |
| | | }) |
| | | } |
| | | }, |
| | | render () { |
| | | const { $props: { prefixCls } } = this |
| | | const classString = { |
| | | [`${prefixCls}`]: true |
| | | } |
| | | const tagItems = filterEmpty(this.$slots.default) |
| | | return ( |
| | | <div class={classString}> |
| | | {this.renderCheckAll()} |
| | | {this.renderTags(tagItems)} |
| | | </div> |
| | | ) |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import './style.less' |
| | | import { getStrFullLength, cutStrByFullLength } from '../_util/util' |
| | | import Input from 'ant-design-vue/es/input' |
| | | const TextArea = Input.TextArea |
| | | |
| | | export default { |
| | | name: 'LimitTextArea', |
| | | model: { |
| | | prop: 'value', |
| | | event: 'change' |
| | | }, |
| | | props: Object.assign({}, TextArea.props, { |
| | | prefixCls: { |
| | | type: String, |
| | | default: 'ant-textarea-limit' |
| | | }, |
| | | // eslint-disable-next-line |
| | | value: { |
| | | type: String |
| | | }, |
| | | limit: { |
| | | type: Number, |
| | | default: 200 |
| | | } |
| | | }), |
| | | data () { |
| | | return { |
| | | currentLimit: 0 |
| | | } |
| | | }, |
| | | watch: { |
| | | value (val) { |
| | | this.calcLimitNum(val) |
| | | } |
| | | }, |
| | | created () { |
| | | this.calcLimitNum(this.value) |
| | | }, |
| | | methods: { |
| | | handleChange (e) { |
| | | const value = e.target.value |
| | | const len = getStrFullLength(value) |
| | | if (len <= this.limit) { |
| | | this.currentLimit = len |
| | | this.$emit('change', value) |
| | | return |
| | | } else { |
| | | const str = cutStrByFullLength(value, this.limit) |
| | | this.currentLimit = getStrFullLength(str) |
| | | this.$emit('change', str) |
| | | } |
| | | console.error('limit out! currentLimit:', this.currentLimit) |
| | | }, |
| | | calcLimitNum (val) { |
| | | const len = getStrFullLength(val) |
| | | this.currentLimit = len |
| | | } |
| | | }, |
| | | render () { |
| | | const { prefixCls, ...props } = this.$props |
| | | return ( |
| | | <div class={this.prefixCls}> |
| | | <TextArea {...{ props }} value={this.value} onChange={this.handleChange}> |
| | | </TextArea> |
| | | <span class="limit">{this.currentLimit}/{this.limit}</span> |
| | | </div> |
| | | ) |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | .ant-textarea-limit { |
| | | position: relative; |
| | | |
| | | .limit { |
| | | position: absolute; |
| | | color: #909399; |
| | | background: #fff; |
| | | font-size: 12px; |
| | | bottom: 5px; |
| | | right: 10px; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { Menu, Icon, Input } from 'ant-design-vue' |
| | | |
| | | const { Item, ItemGroup, SubMenu } = Menu |
| | | const { Search } = Input |
| | | |
| | | export default { |
| | | name: 'Tree', |
| | | props: { |
| | | dataSource: { |
| | | type: Array, |
| | | required: true |
| | | }, |
| | | openKeys: { |
| | | type: Array, |
| | | default: () => [] |
| | | }, |
| | | search: { |
| | | type: Boolean, |
| | | default: false |
| | | } |
| | | }, |
| | | created () { |
| | | this.localOpenKeys = this.openKeys.slice(0) |
| | | }, |
| | | data () { |
| | | return { |
| | | localOpenKeys: [] |
| | | } |
| | | }, |
| | | methods: { |
| | | handlePlus (item) { |
| | | this.$emit('add', item) |
| | | }, |
| | | handleTitleClick (...args) { |
| | | this.$emit('titleClick', { args }) |
| | | }, |
| | | |
| | | renderSearch () { |
| | | return ( |
| | | <Search |
| | | placeholder="input search text" |
| | | style="width: 100%; margin-bottom: 1rem" |
| | | /> |
| | | ) |
| | | }, |
| | | renderIcon (icon) { |
| | | return icon && (<Icon type={icon} />) || null |
| | | }, |
| | | renderMenuItem (item) { |
| | | return ( |
| | | <Item key={item.key}> |
| | | { this.renderIcon(item.icon) } |
| | | { item.title } |
| | | <a class="btn" style="width: 20px;z-index:1300" {...{ on: { click: () => this.handlePlus(item) } }}><a-icon type="plus"/></a> |
| | | </Item> |
| | | ) |
| | | }, |
| | | renderItem (item) { |
| | | return item.children ? this.renderSubItem(item, item.key) : this.renderMenuItem(item, item.key) |
| | | }, |
| | | renderItemGroup (item) { |
| | | const childrenItems = item.children.map(o => { |
| | | return this.renderItem(o, o.key) |
| | | }) |
| | | |
| | | return ( |
| | | <ItemGroup key={item.key}> |
| | | <template slot="title"> |
| | | <span>{ item.title }</span> |
| | | <a-dropdown> |
| | | <a class="btn"><a-icon type="ellipsis" /></a> |
| | | <a-menu slot="overlay"> |
| | | <a-menu-item key="1">æ°å¢</a-menu-item> |
| | | <a-menu-item key="2">åå¹¶</a-menu-item> |
| | | <a-menu-item key="3">ç§»é¤</a-menu-item> |
| | | </a-menu> |
| | | </a-dropdown> |
| | | </template> |
| | | { childrenItems } |
| | | </ItemGroup> |
| | | ) |
| | | }, |
| | | renderSubItem (item, key) { |
| | | const childrenItems = item.children && item.children.map(o => { |
| | | return this.renderItem(o, o.key) |
| | | }) |
| | | |
| | | const title = ( |
| | | <span slot="title"> |
| | | { this.renderIcon(item.icon) } |
| | | <span>{ item.title }</span> |
| | | </span> |
| | | ) |
| | | |
| | | if (item.group) { |
| | | return this.renderItemGroup(item) |
| | | } |
| | | // titleClick={this.handleTitleClick(item)} |
| | | return ( |
| | | <SubMenu key={key}> |
| | | { title } |
| | | { childrenItems } |
| | | </SubMenu> |
| | | ) |
| | | } |
| | | }, |
| | | render () { |
| | | const { dataSource, search } = this.$props |
| | | |
| | | // this.localOpenKeys = openKeys.slice(0) |
| | | const list = dataSource.map(item => { |
| | | return this.renderItem(item) |
| | | }) |
| | | |
| | | return ( |
| | | <div class="tree-wrapper"> |
| | | { search ? this.renderSearch() : null } |
| | | <Menu mode="inline" class="custom-tree" {...{ on: { click: item => this.$emit('click', item), 'update:openKeys': val => { this.localOpenKeys = val } } }} openKeys={this.localOpenKeys}> |
| | | { list } |
| | | </Menu> |
| | | </div> |
| | | ) |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div :class="[prefixCls, reverseColor && 'reverse-color' ]"> |
| | | <span> |
| | | <slot name="term"></slot> |
| | | <span class="item-text"> |
| | | <slot></slot> |
| | | </span> |
| | | </span> |
| | | <span :class="[flag]"><a-icon :type="`caret-${flag}`"/></span> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: 'Trend', |
| | | props: { |
| | | prefixCls: { |
| | | type: String, |
| | | default: 'ant-pro-trend' |
| | | }, |
| | | /** |
| | | * ä¸åä¸éæ è¯ï¼up|down |
| | | */ |
| | | flag: { |
| | | type: String, |
| | | required: true |
| | | }, |
| | | /** |
| | | * é¢è²å转 |
| | | */ |
| | | reverseColor: { |
| | | type: Boolean, |
| | | default: false |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | @import "index"; |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import Trend from './Trend.vue' |
| | | |
| | | export default Trend |
¶Ô±ÈÐÂÎļþ |
| | |
| | | @import "../index"; |
| | | |
| | | @trend-prefix-cls: ~"@{ant-pro-prefix}-trend"; |
| | | |
| | | .@{trend-prefix-cls} { |
| | | display: inline-block; |
| | | font-size: @font-size-base; |
| | | line-height: 22px; |
| | | |
| | | .up, |
| | | .down { |
| | | margin-left: 4px; |
| | | position: relative; |
| | | top: 1px; |
| | | |
| | | i { |
| | | font-size: 12px; |
| | | transform: scale(0.83); |
| | | } |
| | | } |
| | | |
| | | .item-text { |
| | | display: inline-block; |
| | | margin-left: 8px; |
| | | color: rgba(0,0,0,.85); |
| | | } |
| | | |
| | | .up { |
| | | color: @red-6; |
| | | } |
| | | .down { |
| | | color: @green-6; |
| | | top: -1px; |
| | | } |
| | | |
| | | &.reverse-color .up { |
| | | color: @green-6; |
| | | } |
| | | &.reverse-color .down { |
| | | color: @red-6; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | # Trend è¶å¿æ è®° |
| | | |
| | | è¶å¿ç¬¦å·ï¼æ è®°ä¸ååä¸éè¶å¿ãé常ç¨ç»¿è²ä»£è¡¨â好âï¼çº¢è²ä»£è¡¨âä¸å¥½âï¼è¡ç¥¨æ¶¨è·åºæ¯é¤å¤ã |
| | | |
| | | |
| | | |
| | | å¼ç¨æ¹å¼ï¼ |
| | | |
| | | ```javascript |
| | | import Trend from '@/components/Trend' |
| | | |
| | | export default { |
| | | components: { |
| | | Trend |
| | | } |
| | | } |
| | | ``` |
| | | |
| | | |
| | | |
| | | ## ä»£ç æ¼ç¤º [demo](https://pro.loacg.com/test/home) |
| | | |
| | | ```html |
| | | <trend flag="up">5%</trend> |
| | | ``` |
| | | æ |
| | | ```html |
| | | <trend flag="up"> |
| | | <span slot="term">å·¥èµ</span> |
| | | 5% |
| | | </trend> |
| | | ``` |
| | | æ |
| | | ```html |
| | | <trend flag="up" term="å·¥èµ">5%</trend> |
| | | ``` |
| | | |
| | | |
| | | ## API |
| | | |
| | | | åæ° | 说æ | ç±»å | é»è®¤å¼ | |
| | | |----------|------------------------------------------|-------------|-------| |
| | | | flag | ä¸åä¸éæ è¯ï¼`up|down` | string | - | |
| | | | reverseColor | é¢è²å转 | Boolean | false | |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-select |
| | | :mode="model" |
| | | showSearch |
| | | :value="selectValue" |
| | | :filter-option="false" |
| | | :placeholder="placeholder" |
| | | :not-found-content="fetching ? undefined : null" |
| | | @search="fetchUser" |
| | | @change="handleChange" |
| | | > |
| | | <a-spin v-if="fetching" slot="notFoundContent" size="small" /> |
| | | <a-select-option v-for="d in data" :key="d.value"> |
| | | {{ d.text }} |
| | | </a-select-option> |
| | | </a-select> |
| | | </template> |
| | | <script> |
| | | import debounce from 'lodash/debounce' |
| | | import { getUserPage } from '@/api/modular/system/userManage' |
| | | |
| | | export default { |
| | | name: 'UserSelect', |
| | | props: { |
| | | placeholder: { |
| | | type: String |
| | | }, |
| | | value: { |
| | | type: String |
| | | }, |
| | | multiple: { |
| | | type: Boolean, |
| | | default: false |
| | | } |
| | | }, |
| | | data() { |
| | | const multiple = this.multiple |
| | | this.fetchUser = debounce(this.fetchUser, 800) |
| | | return { |
| | | data: [], |
| | | fetching: false, |
| | | selectValue: multiple ? [] : undefined, |
| | | model: multiple ? 'multiple' : 'default' |
| | | } |
| | | }, |
| | | methods: { |
| | | fetchUser(key) { |
| | | this.data = [] |
| | | this.fetching = true |
| | | |
| | | const params = { |
| | | pageNo: 1, |
| | | pageSize: 10, |
| | | searchValue: key |
| | | } |
| | | this.userFetching = true |
| | | |
| | | getUserPage(params).then((res) => { |
| | | this.data = res.data.rows.map(user => ({ |
| | | text: `${user.name} ${user.account}`, |
| | | value: user.id |
| | | })) |
| | | }).finally(() => { |
| | | this.fetching = false |
| | | }) |
| | | }, |
| | | handleChange(value) { |
| | | Object.assign(this, { |
| | | selectValue: value, |
| | | fetching: false |
| | | }) |
| | | this.$emit('change', value) |
| | | } |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import UserSelect from './UserSelect' |
| | | |
| | | export default UserSelect |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /** |
| | | * components util |
| | | */ |
| | | |
| | | /** |
| | | * æ¸
ç空å¼ï¼å¯¹è±¡ |
| | | * @param children |
| | | * @returns {*[]} |
| | | */ |
| | | export function filterEmpty (children = []) { |
| | | return children.filter(c => c.tag || (c.text && c.text.trim() !== '')) |
| | | } |
| | | |
| | | /** |
| | | * è·åå符串é¿åº¦ï¼è±æå符 é¿åº¦1ï¼ä¸æå符é¿åº¦2 |
| | | * @param {*} str |
| | | */ |
| | | export const getStrFullLength = (str = '') => |
| | | str.split('').reduce((pre, cur) => { |
| | | const charCode = cur.charCodeAt(0) |
| | | if (charCode >= 0 && charCode <= 128) { |
| | | return pre + 1 |
| | | } |
| | | return pre + 2 |
| | | }, 0) |
| | | |
| | | /** |
| | | * æªååç¬¦ä¸²ï¼æ ¹æ® maxLength æªååè¿å |
| | | * @param {*} str |
| | | * @param {*} maxLength |
| | | */ |
| | | export const cutStrByFullLength = (str = '', maxLength) => { |
| | | let showLength = 0 |
| | | return str.split('').reduce((pre, cur) => { |
| | | const charCode = cur.charCodeAt(0) |
| | | if (charCode >= 0 && charCode <= 128) { |
| | | showLength += 1 |
| | | } else { |
| | | showLength += 2 |
| | | } |
| | | if (showLength <= maxLength) { |
| | | return pre + cur |
| | | } |
| | | return pre |
| | | }, '') |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | @import './index.less'; |
| | | |
| | | body { |
| | | |
| | | |
| | | } |
| | | |
| | | #app { |
| | | height: 100%; |
| | | |
| | | &.colorWeak { |
| | | filter: invert(80%); |
| | | } |
| | | &.userLayout { |
| | | overflow: auto; |
| | | } |
| | | } |
| | | |
| | | .layout.ant-layout { |
| | | height: auto; |
| | | overflow-x: hidden; |
| | | |
| | | &.mobile, |
| | | &.tablet { |
| | | .ant-layout-content { |
| | | .content { |
| | | margin: 24px 0 0; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * ant-table-wrapper |
| | | * è¦ççè¡¨æ ¼ææºæ¨¡å¼æ ·å¼ï¼å¦ææ³ä¿®æ¹å¨ææºä¸è¡¨æ ¼æä½å®½åº¦ï¼å¯ä»¥å¨è¿éæ¹å¨ |
| | | */ |
| | | .ant-table-wrapper { |
| | | .ant-table-content { |
| | | overflow-y: auto; |
| | | } |
| | | .ant-table-body { |
| | | min-width: 800px; |
| | | } |
| | | } |
| | | .topmenu { |
| | | /* å¿
须为 topmenu æè½å¯ç¨æµå¼å¸å± */ |
| | | &.content-width-Fluid { |
| | | .header-index-wide { |
| | | margin-left: 0; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | &.mobile { |
| | | .sidemenu { |
| | | .ant-header-fixedHeader { |
| | | &.ant-header-side-opened, |
| | | &.ant-header-side-closed { |
| | | width: 100%; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | &.ant-layout-has-sider { |
| | | flex-direction: row; |
| | | } |
| | | |
| | | .trigger { |
| | | font-size: 20px; |
| | | line-height: 55px; |
| | | padding: 0 24px; |
| | | cursor: pointer; |
| | | transition: color 0.3s; |
| | | &:hover { |
| | | background: rgba(0, 0, 0, 0.025); |
| | | } |
| | | } |
| | | |
| | | .topmenu { |
| | | .ant-header-fixedHeader { |
| | | position: fixed; |
| | | top: 0; |
| | | right: 0; |
| | | z-index: 9; |
| | | width: 100%; |
| | | transition: width 0.2s; |
| | | |
| | | &.ant-header-side-opened { |
| | | width: 100%; |
| | | } |
| | | |
| | | &.ant-header-side-closed { |
| | | width: 100%; |
| | | } |
| | | } |
| | | /* å¿
须为 topmenu æè½å¯ç¨æµå¼å¸å± */ |
| | | &.content-width-Fluid { |
| | | .header-index-wide { |
| | | max-width: unset; |
| | | .header-index-left { |
| | | flex: 1 1 1000px; |
| | | .logo{ |
| | | margin-left: 25px; |
| | | } |
| | | .ant-menu.ant-menu-horizontal{ |
| | | max-width: calc(100vw - 190px - 238px - 25px); |
| | | flex: 1 1 calc(100vw - 190px - 238px - 25px); |
| | | } |
| | | } |
| | | .header-index-right{ |
| | | margin-right:25px; |
| | | } |
| | | } |
| | | |
| | | .page-header-index-wide { |
| | | max-width: unset; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .sidemenu { |
| | | .ant-header-fixedHeader { |
| | | position: fixed; |
| | | top: 0; |
| | | right: 0; |
| | | z-index: 9; |
| | | width: 100%; |
| | | transition: width 0.2s; |
| | | |
| | | &.ant-header-side-opened { |
| | | width: calc(100% - 230px); |
| | | } |
| | | |
| | | &.ant-header-side-closed { |
| | | width: calc(100% - 80px); |
| | | } |
| | | } |
| | | } |
| | | |
| | | .header { |
| | | height: 55px; |
| | | // padding: 0 12px 0 0; |
| | | background: #fff; |
| | | box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08); |
| | | position: relative; |
| | | } |
| | | |
| | | .header, |
| | | .top-nav-header-index { |
| | | .user-wrapper { |
| | | float: right; |
| | | height: 100%; |
| | | |
| | | .action { |
| | | line-height: 55px; |
| | | cursor: pointer; |
| | | padding: 0 12px; |
| | | display: inline-block; |
| | | transition: all 0.3s; |
| | | height: 100%; |
| | | color: rgba(0, 0, 0, 0.65); |
| | | |
| | | &:hover { |
| | | background: rgba(0, 0, 0, 0.025); |
| | | } |
| | | |
| | | .avatar { |
| | | margin: 15px 8px 15px 0; |
| | | color: #1890ff; |
| | | background: hsla(0, 0%, 100%, 0.85); |
| | | vertical-align: middle; |
| | | } |
| | | |
| | | .icon { |
| | | font-size: 16px; |
| | | padding: 4px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | &.dark { |
| | | .user-wrapper { |
| | | .action { |
| | | color: rgba(255, 255, 255, 0.85); |
| | | a { |
| | | color: rgba(255, 255, 255, 0.85); |
| | | } |
| | | |
| | | &:hover { |
| | | background: rgba(255, 255, 255, 0.16); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | &.mobile, |
| | | &.tablet { |
| | | .top-nav-header-index { |
| | | .header-index-wide { |
| | | .header-index-left { |
| | | .trigger { |
| | | color: rgba(255, 255, 255, 0.85); |
| | | padding: 0 12px; |
| | | } |
| | | |
| | | .logo.top-nav-header { |
| | | flex: 0 0 56px; |
| | | text-align: center; |
| | | line-height: 58px; |
| | | h1 { |
| | | display: none; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | &.light { |
| | | .header-index-wide { |
| | | .header-index-left { |
| | | .trigger { |
| | | color: rgba(0, 0, 0, 0.65); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | &.tablet { |
| | | // overflow: hidden; text-overflow:ellipsis; white-space: nowrap; |
| | | .top-nav-header-index { |
| | | .header-index-wide { |
| | | .header-index-left { |
| | | .logo > a { |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | } |
| | | } |
| | | .ant-menu.ant-menu-horizontal { |
| | | flex: 1 1 auto; |
| | | white-space: normal; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .top-nav-header-index { |
| | | box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08); |
| | | position: relative; |
| | | transition: background 0.3s, width 0.2s; |
| | | |
| | | .header-index-wide { |
| | | max-width: 1200px; |
| | | margin: auto; |
| | | padding-left: 0; |
| | | display: flex; |
| | | height: 55px; |
| | | |
| | | .ant-menu.ant-menu-horizontal { |
| | | max-width: 835px; |
| | | flex: 0 1 835px; |
| | | border: none; |
| | | height: 55px; |
| | | line-height: 55px; |
| | | } |
| | | |
| | | .header-index-left { |
| | | flex: 0 1 1000px; |
| | | display: flex; |
| | | |
| | | .logo.top-nav-header { |
| | | flex: 0 0 165px; |
| | | width: 165px; |
| | | height: 55px; |
| | | position: relative; |
| | | line-height: 55px; |
| | | transition: all 0.3s; |
| | | overflow: hidden; |
| | | |
| | | img, |
| | | svg { |
| | | display: inline-block; |
| | | vertical-align: middle; |
| | | height: 32px; |
| | | width: 32px; |
| | | } |
| | | |
| | | h1 { |
| | | color: #fff; |
| | | display: inline-block; |
| | | vertical-align: top; |
| | | font-size: 16px; |
| | | margin: 0 0 0 12px; |
| | | font-weight: 400; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .header-index-right { |
| | | flex: 0 0 238px; |
| | | align-self: flex-end; |
| | | height: 55px; |
| | | overflow: hidden; |
| | | |
| | | .content-box { |
| | | float: right; |
| | | .action { |
| | | max-width: 140px; |
| | | overflow: hidden; |
| | | text-overflow:ellipsis; |
| | | white-space:nowrap; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | &.light { |
| | | background-color: #fff; |
| | | |
| | | .header-index-wide { |
| | | .header-index-left { |
| | | .logo { |
| | | h1 { |
| | | color: #002140; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // å
å®¹åº |
| | | .layout-content { |
| | | margin: 24px 24px 0px; |
| | | //height: 100%; |
| | | //height: 64px; |
| | | padding: 0 12px 0 0; |
| | | } |
| | | |
| | | // footer |
| | | .ant-layout-footer { |
| | | padding: 0; |
| | | } |
| | | } |
| | | |
| | | .topmenu { |
| | | .page-header-index-wide { |
| | | max-width: 1200px; |
| | | margin: 0 auto; |
| | | } |
| | | } |
| | | |
| | | // drawer-sider èªå®ä¹ |
| | | .ant-drawer.drawer-sider { |
| | | .sider { |
| | | box-shadow: none; |
| | | } |
| | | |
| | | &.dark { |
| | | .ant-drawer-content { |
| | | background-color: rgb(0, 21, 41); |
| | | } |
| | | } |
| | | &.light { |
| | | box-shadow: none; |
| | | .ant-drawer-content { |
| | | background-color: #fff; |
| | | } |
| | | } |
| | | |
| | | .ant-drawer-body { |
| | | padding: 0; |
| | | } |
| | | } |
| | | |
| | | // èåæ ·å¼ |
| | | .sider { |
| | | box-shadow: 2px 0 6px rgba(0, 21, 41, 0.35); |
| | | position: relative; |
| | | z-index: @ant-global-sider-zindex; |
| | | min-height: 100vh; |
| | | |
| | | .ant-layout-sider-children { |
| | | overflow-y: hidden; |
| | | |
| | | &:hover { |
| | | overflow-y: auto; |
| | | } |
| | | } |
| | | |
| | | &.ant-fixed-sidemenu { |
| | | position: fixed; |
| | | height: 100%; |
| | | } |
| | | |
| | | // logoåºåæ ·å¼ |
| | | .logo { |
| | | position: relative; |
| | | height: 55px; |
| | | padding-left: 24px; |
| | | overflow: hidden; |
| | | line-height: 55px; |
| | | background: #002140; |
| | | transition: all .3s; |
| | | |
| | | img, |
| | | svg, |
| | | h1 { |
| | | display: inline-block; |
| | | vertical-align: middle; |
| | | } |
| | | |
| | | img, |
| | | svg { |
| | | height: 32px; |
| | | width: 32px; |
| | | } |
| | | |
| | | h1 { |
| | | color: #fff; |
| | | font-size: 12px; |
| | | margin: 0 0 0 12px; |
| | | font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif; |
| | | font-weight: 600; |
| | | vertical-align: middle; |
| | | } |
| | | } |
| | | |
| | | &.light { |
| | | background-color: #fff; |
| | | box-shadow: 2px 0px 8px 0px rgba(29, 35, 41, 0.05); |
| | | |
| | | .logo { |
| | | background: #fff; |
| | | box-shadow: 1px 1px 0px 0px #e8e8e8; |
| | | |
| | | h1 { |
| | | color: unset; |
| | | } |
| | | } |
| | | |
| | | .ant-menu-light { |
| | | border-right-color: transparent; |
| | | } |
| | | } |
| | | } |
| | | |
| | | // å¤ç½®çæ ·å¼æ§å¶ |
| | | .user-dropdown-menu { |
| | | span { |
| | | user-select: none; |
| | | } |
| | | } |
| | | .user-dropdown-menu-wrapper.ant-dropdown-menu { |
| | | padding: 4px 0; |
| | | |
| | | .ant-dropdown-menu-item { |
| | | width: 160px; |
| | | } |
| | | |
| | | .ant-dropdown-menu-item > .anticon:first-child, |
| | | .ant-dropdown-menu-item > a > .anticon:first-child, |
| | | .ant-dropdown-menu-submenu-title > .anticon:first-child .ant-dropdown-menu-submenu-title > a > .anticon:first-child { |
| | | min-width: 12px; |
| | | margin-right: 8px; |
| | | } |
| | | } |
| | | |
| | | // æ°æ®å表 æ ·å¼ |
| | | .table-alert { |
| | | margin-bottom: 16px; |
| | | } |
| | | |
| | | .table-page-search-wrapper { |
| | | .ant-form-inline { |
| | | .ant-form-item { |
| | | display: flex; |
| | | margin-bottom: 24px; |
| | | margin-right: 0; |
| | | |
| | | .ant-form-item-control-wrapper { |
| | | flex: 1 1; |
| | | display: inline-block; |
| | | vertical-align: middle; |
| | | } |
| | | |
| | | > .ant-form-item-label { |
| | | line-height: 32px; |
| | | padding-right: 8px; |
| | | width: auto; |
| | | } |
| | | .ant-form-item-control { |
| | | height: 32px; |
| | | line-height: 32px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .table-page-search-submitButtons { |
| | | display: block; |
| | | margin-bottom: 24px; |
| | | white-space: nowrap; |
| | | } |
| | | } |
| | | |
| | | .content { |
| | | .table-operator { |
| | | margin-bottom: 18px; |
| | | |
| | | button { |
| | | margin-right: 8px; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | // chart |
| | | import Bar from '@/components/Charts/Bar' |
| | | import ChartCard from '@/components/Charts/ChartCard' |
| | | import Liquid from '@/components/Charts/Liquid' |
| | | import MiniArea from '@/components/Charts/MiniArea' |
| | | import MiniSmoothArea from '@/components/Charts/MiniSmoothArea' |
| | | import MiniBar from '@/components/Charts/MiniBar' |
| | | import MiniProgress from '@/components/Charts/MiniProgress' |
| | | import Radar from '@/components/Charts/Radar' |
| | | import RankList from '@/components/Charts/RankList' |
| | | import TransferBar from '@/components/Charts/TransferBar' |
| | | import TagCloud from '@/components/Charts/TagCloud' |
| | | |
| | | // pro components |
| | | import AvatarList from '@/components/AvatarList' |
| | | import CountDown from '@/components/CountDown' |
| | | import Ellipsis from '@/components/Ellipsis' |
| | | import FooterToolbar from '@/components/FooterToolbar' |
| | | import NumberInfo from '@/components/NumberInfo' |
| | | import DescriptionList from '@/components/DescriptionList' |
| | | import Tree from '@/components/Tree/Tree' |
| | | import Trend from '@/components/Trend' |
| | | import STable from '@/components/Table' |
| | | import MultiTab from '@/components/MultiTab' |
| | | import Result from '@/components/Result' |
| | | import IconSelector from '@/components/IconSelector' |
| | | import TagSelect from '@/components/TagSelect' |
| | | import ExceptionPage from '@/components/Exception' |
| | | import StandardFormRow from '@/components/StandardFormRow' |
| | | import ArticleListContent from '@/components/ArticleListContent' |
| | | import AntdEditor from '@/components/Editor/WangEditor' |
| | | import Dialog from '@/components/Dialog' |
| | | |
| | | // xn components |
| | | import XCard from '@/components/xnComponents/XCard' |
| | | |
| | | export { |
| | | AvatarList, |
| | | Bar, |
| | | ChartCard, |
| | | Liquid, |
| | | MiniArea, |
| | | MiniSmoothArea, |
| | | MiniBar, |
| | | MiniProgress, |
| | | Radar, |
| | | TagCloud, |
| | | RankList, |
| | | TransferBar, |
| | | Trend, |
| | | CountDown, |
| | | Ellipsis, |
| | | FooterToolbar, |
| | | NumberInfo, |
| | | DescriptionList, |
| | | // å
¼å®¹åæ³ï¼è¯·å¿ç»§ç»ä½¿ç¨ |
| | | DescriptionList as DetailList, |
| | | Tree, |
| | | STable, |
| | | MultiTab, |
| | | Result, |
| | | ExceptionPage, |
| | | IconSelector, |
| | | TagSelect, |
| | | StandardFormRow, |
| | | ArticleListContent, |
| | | AntdEditor, |
| | | Dialog, |
| | | XCard |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | @import "~ant-design-vue/lib/style/index"; |
| | | |
| | | // The prefix to use on all css classes from ant-pro. |
| | | @ant-pro-prefix : ant-pro; |
| | | @ant-global-sider-zindex : 106; |
| | | @ant-global-header-zindex : 105; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-breadcrumb class="breadcrumb"> |
| | | <a-breadcrumb-item v-for="(item, index) in breadList" :key="item.name"> |
| | | <router-link |
| | | v-if="item.name != name && index != 1" |
| | | :to="{ path: item.path === '' ? '/' : item.path }" |
| | | >{{ item.meta.title }}</router-link> |
| | | <span v-else>{{ item.meta.title }}</span> |
| | | </a-breadcrumb-item> |
| | | </a-breadcrumb> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data () { |
| | | return { |
| | | name: '', |
| | | breadList: [] |
| | | } |
| | | }, |
| | | created () { |
| | | this.getBreadcrumb() |
| | | }, |
| | | methods: { |
| | | getBreadcrumb () { |
| | | this.breadList = [] |
| | | // this.breadList.push({name: 'index', path: '/dashboard/', meta: {title: 'é¦é¡µ'}}) |
| | | |
| | | this.name = this.$route.name |
| | | this.$route.matched.forEach(item => { |
| | | // item.name !== 'index' && this.breadList.push(item) |
| | | this.breadList.push(item) |
| | | }) |
| | | } |
| | | }, |
| | | watch: { |
| | | $route () { |
| | | this.getBreadcrumb() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <script> |
| | | /* WARNING: å
¼å®¹èå¼å
¥ï¼è¯·å¿ç»§ç»ä½¿ç¨ */ |
| | | import DescriptionList from '@/components/DescriptionList' |
| | | export default DescriptionList |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="head-info" :class="center && 'center'"> |
| | | <span>{{ title }}</span> |
| | | <p>{{ content }}</p> |
| | | <em v-if="bordered"/> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: 'HeadInfo', |
| | | props: { |
| | | title: { |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | content: { |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | bordered: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | center: { |
| | | type: Boolean, |
| | | default: true |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | .head-info { |
| | | position: relative; |
| | | text-align: left; |
| | | padding: 0 32px 0 0; |
| | | min-width: 125px; |
| | | |
| | | &.center { |
| | | text-align: center; |
| | | padding: 0 32px; |
| | | } |
| | | |
| | | span { |
| | | color: rgba(0, 0, 0, .45); |
| | | display: inline-block; |
| | | font-size: 14px; |
| | | line-height: 22px; |
| | | margin-bottom: 4px; |
| | | } |
| | | p { |
| | | color: rgba(0, 0, 0, .85); |
| | | font-size: 24px; |
| | | line-height: 32px; |
| | | margin: 0; |
| | | } |
| | | em { |
| | | background-color: #e8e8e8; |
| | | position: absolute; |
| | | height: 56px; |
| | | width: 1px; |
| | | top: 0; |
| | | right: 0; |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-dropdown> |
| | | <span class="action global-lang"> |
| | | <a-icon type="global" style="font-size: 16px"/> |
| | | </span> |
| | | <a-menu slot="overlay" style="width: 150px;" @click="SwitchLang"> |
| | | <a-menu-item key="zh-CN"> |
| | | <a rel="noopener noreferrer"> |
| | | <span role="img" aria-label="ç®ä½ä¸æ">ð¨ð³</span> ç®ä½ä¸æ |
| | | </a> |
| | | </a-menu-item> |
| | | <a-menu-item key="zh-TW"> |
| | | <a rel="noopener noreferrer"> |
| | | <span role="img" aria-label="ç¹ä½ä¸æ">ðð°</span> ç¹ä½ä¸æ |
| | | </a> |
| | | </a-menu-item> |
| | | <a-menu-item key="en-US"> |
| | | <a rel="noopener noreferrer"> |
| | | <span role="img" aria-label="English">ð¬ð§</span> English |
| | | </a> |
| | | </a-menu-item> |
| | | <a-menu-item key="pt-BR"> |
| | | <a rel="noopener noreferrer"> |
| | | <span role="img" aria-label="Português">ð§ð·</span> Português |
| | | </a> |
| | | </a-menu-item> |
| | | </a-menu> |
| | | </a-dropdown> |
| | | </template> |
| | | |
| | | <script> |
| | | // import { mixin as langMixin } from '@/store/i18n-mixin' |
| | | |
| | | export default { |
| | | name: 'LangSelect', |
| | | // mixins: [langMixin], |
| | | data () { |
| | | return {} |
| | | }, |
| | | methods: { |
| | | // SwitchLang (row) { |
| | | // this.setLang(row.key) |
| | | // } |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="logo"> |
| | | <router-link :to="{name:'Console'}"> |
| | | |
| | | |
| | | <img src="@/assets/logo4.png" alt="Logo" class="logo-img"> |
| | | |
| | | <h1 v-if="showTitle">{{ this.titles }}</h1> |
| | | </router-link> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | //import LogoSvg from '@/assets/logo2.jpg' |
| | | import { mixin, mixinDevice } from '@/utils/mixin' |
| | | |
| | | export default { |
| | | name: 'Logo', |
| | | mixins: [mixin, mixinDevice], |
| | | data () { |
| | | return { |
| | | titles: '' |
| | | } |
| | | }, |
| | | props: { |
| | | title: { |
| | | type: String, |
| | | default: '䏿±½è§£æ¾é岿±½è½¦æéå
¬å¸', |
| | | required: false |
| | | }, |
| | | showTitle: { |
| | | type: Boolean, |
| | | default: true, |
| | | required: false |
| | | } |
| | | }, |
| | | created () { |
| | | if (this.layoutMode === 'topmenu') { |
| | | if (this.title.length > 100) { |
| | | this.titles = this.title.substring(0, 8) + '...' |
| | | } else { |
| | | this.titles = this.title |
| | | } |
| | | } else { |
| | | if (this.title.length > 100) { |
| | | this.titles = this.title.substring(0, 8) + '...' |
| | | } else { |
| | | this.titles = this.title |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="less" scoped> |
| | | .logo-img{ |
| | | height: auto !important; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <!-- 两æ¥éªè¯ --> |
| | | <a-modal |
| | | centered |
| | | v-model="visible" |
| | | @cancel="handleCancel" |
| | | :maskClosable="false" |
| | | > |
| | | <div slot="title" :style="{ textAlign: 'center' }">两æ¥éªè¯</div> |
| | | <template slot="footer"> |
| | | <div :style="{ textAlign: 'center' }"> |
| | | <a-button key="back" @click="handleCancel">è¿å</a-button> |
| | | <a-button key="submit" type="primary" :loading="stepLoading" @click="handleStepOk"> |
| | | ç»§ç» |
| | | </a-button> |
| | | </div> |
| | | </template> |
| | | |
| | | <a-spin :spinning="stepLoading"> |
| | | <a-form layout="vertical" :auto-form-create="(form)=>{this.form = form}"> |
| | | <div class="step-form-wrapper"> |
| | | <p style="text-align: center" v-if="!stepLoading">è¯·å¨ææºä¸æå¼ Google Authenticator æä¸¤æ¥éªè¯ APP<br />è¾å
¥ 6 ä½å¨æç </p> |
| | | <p style="text-align: center" v-else>æ£å¨éªè¯..<br/>请ç¨å</p> |
| | | <a-form-item |
| | | :style="{ textAlign: 'center' }" |
| | | hasFeedback |
| | | fieldDecoratorId="stepCode" |
| | | :fieldDecoratorOptions="{rules: [{ required: true, message: '请è¾å
¥ 6 ä½å¨æç !', pattern: /^\d{6}$/, len: 6 }]}" |
| | | > |
| | | <a-input :style="{ textAlign: 'center' }" @keyup.enter.native="handleStepOk" placeholder="000000" /> |
| | | </a-form-item> |
| | | <p style="text-align: center"> |
| | | <a @click="onForgeStepCode">éå¤±ææº?</a> |
| | | </p> |
| | | </div> |
| | | </a-form> |
| | | </a-spin> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | props: { |
| | | visible: { |
| | | type: Boolean, |
| | | default: false |
| | | } |
| | | }, |
| | | data () { |
| | | return { |
| | | stepLoading: false, |
| | | |
| | | form: null |
| | | } |
| | | }, |
| | | methods: { |
| | | handleStepOk () { |
| | | const vm = this |
| | | this.stepLoading = true |
| | | this.form.validateFields((err, values) => { |
| | | if (!err) { |
| | | setTimeout(() => { |
| | | vm.stepLoading = false |
| | | vm.$emit('success', { values }) |
| | | }, 2000) |
| | | return |
| | | } |
| | | this.stepLoading = false |
| | | this.$emit('error', { err }) |
| | | }) |
| | | }, |
| | | handleCancel () { |
| | | this.visible = false |
| | | this.$emit('cancel') |
| | | }, |
| | | onForgeStepCode () { |
| | | |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="less" scoped> |
| | | .step-form-wrapper { |
| | | margin: 0 auto; |
| | | width: 80%; |
| | | max-width: 400px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="user-wrapper"> |
| | | <div class="content-box"> |
| | | <!--<a href="" target="_blank"> |
| | | <span class="action"> |
| | | <a-icon type="question-circle-o"></a-icon> |
| | | </span> |
| | | </a>--> |
| | | |
| | | <span class="action" @click="toggleFullscreen"> |
| | | <a-icon type="fullscreen-exit" v-if="isFullscreen" /> |
| | | <a-icon type="fullscreen" v-else /> |
| | | </span> |
| | | <notice-icon class="action" v-if="hasPerm('sysNotice:received')" /> |
| | | |
| | | <a-dropdown> |
| | | <span class="action ant-dropdown-link user-dropdown-menu"> |
| | | <a-avatar class="avatar" size="small" :src="avatar" /> |
| | | <span>{{ nickname }}</span> |
| | | </span> |
| | | <a-menu slot="overlay" class="user-dropdown-menu-wrapper"> |
| | | <a-menu-item key="4" v-if="mode === 'sidemenu'"> |
| | | <a @click="appToggled()"> |
| | | <a-icon type="swap" /> |
| | | <span>忢åºç¨</span> |
| | | </a> |
| | | </a-menu-item> |
| | | <!--<a-menu-item key="0"> |
| | | <router-link :to="{ name: 'center' }"> |
| | | <a-icon type="user"/> |
| | | <span>个人ä¸å¿</span> |
| | | </router-link> |
| | | </a-menu-item> --> |
| | | <a-menu-item key="1"> |
| | | <router-link :to="{ name: 'settings' }"> |
| | | <a-icon type="setting" /> |
| | | <span>è´¦æ·è®¾ç½®</span> |
| | | </router-link> |
| | | </a-menu-item> |
| | | <a-menu-item key="2"> |
| | | <a @click="sendMessage()"> |
| | | <a-icon type="message" /> |
| | | <span>æ¶æ¯åéæµè¯</span> |
| | | </a> |
| | | </a-menu-item> |
| | | <a-menu-divider /> |
| | | <a-menu-item key="3"> |
| | | <a href="javascript:;" @click="handleLogout"> |
| | | <a-icon type="logout" /> |
| | | <span>éåºç»å½</span> |
| | | </a> |
| | | </a-menu-item> |
| | | </a-menu> |
| | | </a-dropdown> |
| | | </div> |
| | | <a-modal title="忢åºç¨" :visible="visible" :footer="null" :confirm-loading="confirmLoading" @cancel="handleCancel"> |
| | | <a-form :form="form1"> |
| | | <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="éæ©åºç¨"> |
| | | <a-menu mode="inline" :default-selected-keys="this.defApp" style="border-bottom:0px;lineHeight:55px;"> |
| | | <a-menu-item v-for="item in userInfo.apps" :key="item.code" style="top:0px;" @click="switchApp(item.code)"> |
| | | {{ item.name }} |
| | | </a-menu-item> |
| | | </a-menu> |
| | | </a-form-item> |
| | | </a-form> |
| | | </a-modal> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import screenfull from 'screenfull' |
| | | import NoticeIcon from '@/components/NoticeIcon' |
| | | import { |
| | | mapActions, |
| | | mapGetters |
| | | } from 'vuex' |
| | | import { |
| | | ALL_APPS_MENU |
| | | } from '@/store/mutation-types' |
| | | import Vue from 'vue' |
| | | import { |
| | | message |
| | | } from 'ant-design-vue/es' |
| | | import { messagesendtoAll } from '@/utils/messagesend' |
| | | export default { |
| | | name: 'UserMenu', |
| | | components: { |
| | | NoticeIcon, |
| | | screenfull |
| | | }, |
| | | props: { |
| | | mode: { |
| | | type: String, |
| | | // sidemenu, topmenu |
| | | default: 'sidemenu' |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | labelCol: { |
| | | xs: { |
| | | span: 24 |
| | | }, |
| | | sm: { |
| | | span: 5 |
| | | } |
| | | }, |
| | | wrapperCol: { |
| | | xs: { |
| | | span: 24 |
| | | }, |
| | | sm: { |
| | | span: 16 |
| | | } |
| | | }, |
| | | visible: false, |
| | | confirmLoading: false, |
| | | form1: this.$form.createForm(this), |
| | | defApp: [], |
| | | isFullscreen: false |
| | | } |
| | | }, |
| | | |
| | | computed: { |
| | | ...mapGetters(['token', 'nickname', 'avatar', 'userInfo']) |
| | | }, |
| | | // 设置signalr令ç |
| | | async mounted() { |
| | | await this.$socket.authenticate(this.token) |
| | | }, |
| | | methods: { |
| | | ...mapActions(['Logout', 'MenuChange']), |
| | | |
| | | handleLogout() { |
| | | this.$confirm({ |
| | | title: 'æç¤º', |
| | | content: 'ççè¦æ³¨éç»å½å ?', |
| | | okText: 'ç¡®å®', |
| | | cancelText: 'åæ¶', |
| | | onOk: () => { |
| | | return this.Logout({}) |
| | | .then(() => { |
| | | setTimeout(() => { |
| | | window.location.reload() |
| | | }, 16) |
| | | }) |
| | | .catch(err => { |
| | | this.$message.error({ |
| | | title: 'é误', |
| | | description: err.message |
| | | }) |
| | | }) |
| | | }, |
| | | onCancel() {} |
| | | }) |
| | | }, |
| | | |
| | | /** |
| | | * æå¼åæ¢åºç¨æ¡ |
| | | */ |
| | | appToggled() { |
| | | this.visible = true |
| | | this.defApp.push(Vue.ls.get(ALL_APPS_MENU)[0].code) |
| | | }, |
| | | |
| | | switchApp(appCode) { |
| | | this.visible = false |
| | | this.defApp = [] |
| | | const applicationData = this.userInfo.apps.filter(item => item.code === appCode) |
| | | const hideMessage = message.loading('æ£å¨åæ¢åºç¨ï¼', 0) |
| | | this.MenuChange(applicationData[0]) |
| | | .then(res => { |
| | | hideMessage() |
| | | // eslint-disable-next-line handle-callback-err |
| | | }) |
| | | .catch(err => { |
| | | message.error('åºç¨åæ¢å¼å¸¸' + err) |
| | | }) |
| | | }, |
| | | handleCancel() { |
| | | this.form1.resetFields() |
| | | this.visible = false |
| | | }, |
| | | /* å
¨å±åæ¢ */ |
| | | toggleFullscreen() { |
| | | if (!screenfull.isEnabled) { |
| | | message.error('æ¨çæµè§å¨ä¸æ¯æå
¨å±æ¨¡å¼') |
| | | return |
| | | } |
| | | screenfull.toggle() |
| | | if (screenfull.isFullscreen) { |
| | | this.isFullscreen = false |
| | | } else { |
| | | this.isFullscreen = true |
| | | } |
| | | }, |
| | | // åéæ¶æ¯æµè¯ |
| | | sendMessage() { |
| | | messagesendtoAll(Object.assign({ title: 'æµè¯æ é¢', message: 'è¿æ¯æ¶æ¯å
容', messagetype: 1 })) |
| | | }, |
| | | }, |
| | | // signalræ¥æ¶çä¿¡æ¯ |
| | | sockets: { |
| | | ReceiveMessage(data) { |
| | | switch (data.messagetype) { |
| | | case 0: |
| | | this.$notification.info({ |
| | | message: data.title, |
| | | description: data.message, |
| | | placement: 'bottomRight', |
| | | duration: null |
| | | }) |
| | | break |
| | | case 1: |
| | | this.$notification.success({ |
| | | message: data.title, |
| | | description: data.message, |
| | | placement: 'bottomRight', |
| | | duration: null |
| | | }) |
| | | break |
| | | case 2: |
| | | this.$notification.warning({ |
| | | message: data.title, |
| | | description: data.message, |
| | | placement: 'bottomRight', |
| | | duration: null |
| | | }) |
| | | break |
| | | case 3: |
| | | this.$notification.error({ |
| | | message: data.title, |
| | | description: data.message, |
| | | placement: 'bottomRight', |
| | | duration: null |
| | | }) |
| | | break |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | .appRedio { |
| | | border: 1px solid #91d5ff; |
| | | padding: 10px 20px; |
| | | background: #e6f7ff; |
| | | border-radius: 2px; |
| | | margin-bottom: 10px; |
| | | color: #91d5ff; |
| | | /*display: inline; |
| | | margin-bottom:10px;*/ |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div :class="mode=='pop'?'mask':''" v-show="showBox"> |
| | | <div :class="mode=='pop'?'verifybox':''" :style="{'max-width':parseInt(imgSize.width)+30+'px'}"> |
| | | <div class="verifybox-top" v-if="mode=='pop'"> |
| | | è¯·å®æå®å
¨éªè¯ |
| | | <span @click="closeBox" class="verifybox-close"> |
| | | <i class="iconfont icon-close"></i> |
| | | </span> |
| | | </div> |
| | | <div :style="{padding:mode=='pop'?'15px':'0'}" class="verifybox-bottom"> |
| | | <!-- éªè¯ç å®¹å¨ --> |
| | | <components |
| | | :arith="arith" |
| | | :barSize="barSize" |
| | | :blockSize="blockSize" |
| | | :captchaType="captchaType" |
| | | :explain="explain" |
| | | :figure="figure" |
| | | :imgSize="imgSize" |
| | | :is="componentType" |
| | | :mode="mode" |
| | | :type="verifyType" |
| | | :vSpace="vSpace" |
| | | ref="instance" |
| | | v-if="componentType"></components> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <script type="text/babel"> |
| | | /** |
| | | * Verify éªè¯ç ç»ä»¶ |
| | | * @description ååéªè¯ç ä½¿ç¨ |
| | | * */ |
| | | import VerifySlide from './Verify/VerifySlide' |
| | | import VerifyPoints from './Verify/VerifyPoints' |
| | | |
| | | export default { |
| | | name: 'Vue2Verify', |
| | | props: { |
| | | // åè¯å |
| | | locale: { |
| | | require: false, |
| | | type: String, |
| | | default() { |
| | | // é»è®¤è¯è¨ä¸è¾å
¥ä¸ºæµè§å¨è¯è¨ |
| | | if (navigator.language) { |
| | | var language = navigator.language |
| | | } else { |
| | | // eslint-disable-next-line no-redeclare |
| | | var language = navigator.browserLanguage |
| | | } |
| | | return language |
| | | } |
| | | }, |
| | | captchaType: { |
| | | type: String, |
| | | required: true |
| | | }, |
| | | // eslint-disable-next-line vue/require-default-prop |
| | | figure: { |
| | | type: Number |
| | | }, |
| | | // eslint-disable-next-line vue/require-default-prop |
| | | arith: { |
| | | type: Number |
| | | }, |
| | | mode: { |
| | | type: String, |
| | | default: 'pop' |
| | | }, |
| | | // eslint-disable-next-line vue/require-default-prop |
| | | vSpace: { |
| | | type: Number |
| | | }, |
| | | // eslint-disable-next-line vue/require-default-prop |
| | | explain: { |
| | | type: String |
| | | }, |
| | | imgSize: { |
| | | type: Object, |
| | | default() { |
| | | return { |
| | | width: '310px', |
| | | height: '155px' |
| | | } |
| | | } |
| | | }, |
| | | // eslint-disable-next-line vue/require-default-prop |
| | | blockSize: { |
| | | type: Object |
| | | }, |
| | | // eslint-disable-next-line vue/require-default-prop |
| | | barSize: { |
| | | type: Object |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | // showBox:true, |
| | | clickShow: false, |
| | | // å
é¨ç±»å |
| | | verifyType: undefined, |
| | | // æç¨ç»ä»¶ç±»å |
| | | componentType: undefined |
| | | } |
| | | }, |
| | | methods: { |
| | | /** |
| | | * i18n |
| | | * @description å
¼å®¹vue-i18n è°ç¨$tæ¥è½¬æ¢ok |
| | | * @param {String} text-被转æ¢çç®æ |
| | | * @return {String} i18nçç»æ |
| | | * */ |
| | | i18n(text) { |
| | | if (this.$t) { |
| | | return this.$t(text) |
| | | } else { |
| | | // å
¼å®¹ä¸åå¨çè¯è¨ |
| | | const i18n = this.$options.i18n.messages[this.locale] || this.$options.i18n.messages['en-US'] |
| | | return i18n[text] |
| | | } |
| | | }, |
| | | /** |
| | | * refresh |
| | | * @description å·æ° |
| | | * */ |
| | | refresh() { |
| | | if (this.instance.refresh) { |
| | | this.instance.refresh() |
| | | } |
| | | }, |
| | | closeBox() { |
| | | this.clickShow = false |
| | | this.refresh() |
| | | }, |
| | | show() { |
| | | // eslint-disable-next-line eqeqeq |
| | | if (this.mode == 'pop') { |
| | | this.clickShow = true |
| | | } |
| | | } |
| | | }, |
| | | computed: { |
| | | instance() { |
| | | return this.$refs.instance || {} |
| | | }, |
| | | showBox() { |
| | | // eslint-disable-next-line eqeqeq |
| | | if (this.mode == 'pop') { |
| | | return this.clickShow |
| | | } else { |
| | | return true |
| | | } |
| | | } |
| | | }, |
| | | watch: { |
| | | captchaType: { |
| | | immediate: true, |
| | | handler(captchaType) { |
| | | switch (captchaType.toString()) { |
| | | case 'blockPuzzle': |
| | | this.verifyType = '2' |
| | | this.componentType = 'VerifySlide' |
| | | break |
| | | case 'clickWord': |
| | | this.verifyType = '' |
| | | this.componentType = 'VerifyPoints' |
| | | break |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | components: { |
| | | VerifySlide, |
| | | VerifyPoints |
| | | } |
| | | } |
| | | </script> |
| | | <style> |
| | | .verifybox{ |
| | | position: relative; |
| | | box-sizing: border-box; |
| | | border-radius: 2px; |
| | | border: 1px solid #e4e7eb; |
| | | background-color: #fff; |
| | | box-shadow: 0 0 10px rgba(0,0,0,.3); |
| | | left: 50%; |
| | | top:50%; |
| | | transform: translate(-50%,-50%); |
| | | } |
| | | .verifybox-top{ |
| | | padding: 0 15px; |
| | | height: 50px; |
| | | line-height: 50px; |
| | | text-align: left; |
| | | font-size: 16px; |
| | | color: #45494c; |
| | | border-bottom: 1px solid #e4e7eb; |
| | | box-sizing: border-box; |
| | | } |
| | | .verifybox-bottom{ |
| | | padding: 15px; |
| | | box-sizing: border-box; |
| | | } |
| | | .verifybox-close{ |
| | | position: absolute; |
| | | top: 13px; |
| | | right: 9px; |
| | | width: 24px; |
| | | height: 24px; |
| | | text-align: center; |
| | | cursor: pointer; |
| | | } |
| | | .mask{ |
| | | position: fixed; |
| | | top: 0; |
| | | left:0; |
| | | z-index: 1001; |
| | | width: 100%; |
| | | height: 100vh; |
| | | background: rgba(0,0,0,.3); |
| | | /* display: none; */ |
| | | transition: all .5s; |
| | | } |
| | | .verify-tips{ |
| | | position: absolute; |
| | | left: 0px; |
| | | bottom:0px; |
| | | width: 100%; |
| | | height: 30px; |
| | | line-height:30px; |
| | | color: #fff; |
| | | } |
| | | .suc-bg{ |
| | | background-color:rgba(92, 184, 92,.5); |
| | | filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#7f5CB85C, endcolorstr=#7f5CB85C); |
| | | } |
| | | .err-bg{ |
| | | background-color:rgba(217, 83, 79,.5); |
| | | filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#7fD9534F, endcolorstr=#7fD9534F); |
| | | } |
| | | .tips-enter,.tips-leave-to{ |
| | | bottom: -30px; |
| | | } |
| | | .tips-enter-active,.tips-leave-active{ |
| | | transition: bottom .5s; |
| | | } |
| | | /* ---------------------------- */ |
| | | /*常è§éªè¯ç */ |
| | | .verify-code { |
| | | font-size: 20px; |
| | | text-align: center; |
| | | cursor: pointer; |
| | | margin-bottom: 5px; |
| | | border: 1px solid #ddd; |
| | | } |
| | | |
| | | .cerify-code-panel { |
| | | height: 100%; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .verify-code-area { |
| | | float: left; |
| | | } |
| | | |
| | | .verify-input-area { |
| | | float: left; |
| | | width: 60%; |
| | | padding-right: 10px; |
| | | |
| | | } |
| | | |
| | | .verify-change-area { |
| | | line-height: 30px; |
| | | float: left; |
| | | } |
| | | |
| | | .varify-input-code { |
| | | display: inline-block; |
| | | width: 100%; |
| | | height: 25px; |
| | | } |
| | | |
| | | .verify-change-code { |
| | | color: #337AB7; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .verify-btn { |
| | | width: 200px; |
| | | height: 30px; |
| | | background-color: #337AB7; |
| | | color: #FFFFFF; |
| | | border: none; |
| | | margin-top: 10px; |
| | | } |
| | | |
| | | /*æ»å¨éªè¯ç */ |
| | | .verify-bar-area { |
| | | position: relative; |
| | | background: #FFFFFF; |
| | | text-align: center; |
| | | -webkit-box-sizing: content-box; |
| | | -moz-box-sizing: content-box; |
| | | box-sizing: content-box; |
| | | border: 1px solid #ddd; |
| | | -webkit-border-radius: 4px; |
| | | } |
| | | |
| | | .verify-bar-area .verify-move-block { |
| | | position: absolute; |
| | | top: 0px; |
| | | left: 0; |
| | | background: #fff; |
| | | cursor: pointer; |
| | | -webkit-box-sizing: content-box; |
| | | -moz-box-sizing: content-box; |
| | | box-sizing: content-box; |
| | | box-shadow: 0 0 2px #888888; |
| | | -webkit-border-radius: 1px; |
| | | } |
| | | |
| | | .verify-bar-area .verify-move-block:hover { |
| | | background-color: #337ab7; |
| | | color: #FFFFFF; |
| | | } |
| | | |
| | | .verify-bar-area .verify-left-bar { |
| | | position: absolute; |
| | | top: -1px; |
| | | left: -1px; |
| | | background: #f0fff0; |
| | | cursor: pointer; |
| | | -webkit-box-sizing: content-box; |
| | | -moz-box-sizing: content-box; |
| | | box-sizing: content-box; |
| | | border: 1px solid #ddd; |
| | | } |
| | | |
| | | .verify-img-panel { |
| | | margin: 0; |
| | | -webkit-box-sizing: content-box; |
| | | -moz-box-sizing: content-box; |
| | | box-sizing: content-box; |
| | | border-top: 1px solid #ddd; |
| | | border-bottom: 1px solid #ddd; |
| | | border-radius: 3px; |
| | | position: relative; |
| | | } |
| | | |
| | | .verify-img-panel .verify-refresh { |
| | | width: 25px; |
| | | height: 25px; |
| | | text-align: center; |
| | | padding: 5px; |
| | | cursor: pointer; |
| | | position: absolute; |
| | | top: 0; |
| | | right: 0; |
| | | z-index: 2; |
| | | } |
| | | |
| | | .verify-img-panel .icon-refresh { |
| | | font-size: 20px; |
| | | color: #fff; |
| | | } |
| | | |
| | | .verify-img-panel .verify-gap { |
| | | background-color: #fff; |
| | | position: relative; |
| | | z-index: 2; |
| | | border: 1px solid #fff; |
| | | } |
| | | |
| | | .verify-bar-area .verify-move-block .verify-sub-block { |
| | | position: absolute; |
| | | text-align: center; |
| | | z-index: 3; |
| | | /* border: 1px solid #fff; */ |
| | | } |
| | | |
| | | .verify-bar-area .verify-move-block .verify-icon { |
| | | font-size: 18px; |
| | | } |
| | | |
| | | .verify-bar-area .verify-msg { |
| | | z-index: 3; |
| | | } |
| | | |
| | | /*åä½å¾æ çcss*/ |
| | | /*@font-face {font-family: "iconfont";*/ |
| | | /*src: url('../fonts/iconfont.eot?t=1508229193188'); !* IE9*!*/ |
| | | /*src: url('../fonts/iconfont.eot?t=1508229193188#iefix') format('embedded-opentype'), !* IE6-IE8 *!*/ |
| | | /*url('data:application/x-font-woff;charset=utf-8;base64,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') format('woff'),*/ |
| | | /*url('../fonts/iconfont.ttf?t=1508229193188') format('truetype'), !* chrome, firefox, opera, Safari, Android, iOS 4.2+*!*/ |
| | | /*url('../fonts/iconfont.svg?t=1508229193188#iconfont') format('svg'); !* iOS 4.1- *!*/ |
| | | /*}*/ |
| | | |
| | | .iconfont { |
| | | font-family: "iconfont" !important; |
| | | font-size: 16px; |
| | | font-style: normal; |
| | | -webkit-font-smoothing: antialiased; |
| | | -moz-osx-font-smoothing: grayscale; |
| | | } |
| | | |
| | | .icon-check:before { |
| | | content: " "; |
| | | display: block; |
| | | width: 16px; |
| | | height: 16px; |
| | | position: absolute; |
| | | margin: auto; |
| | | left: 0; |
| | | right: 0; |
| | | top: 0; |
| | | bottom: 0; |
| | | z-index: 9999; |
| | | background-image: url("data:image/png;base64,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"); |
| | | background-size: contain; |
| | | } |
| | | |
| | | .icon-close:before { |
| | | content: " "; |
| | | display: block; |
| | | width: 16px; |
| | | height: 16px; |
| | | position: absolute; |
| | | margin: auto; |
| | | left: 0; |
| | | right: 0; |
| | | top: 0; |
| | | bottom: 0; |
| | | z-index: 9999; |
| | | background-image: url("data:image/png;base64,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"); |
| | | background-size: contain; |
| | | } |
| | | |
| | | .icon-right:before { |
| | | content: " "; |
| | | display: block; |
| | | width: 16px; |
| | | height: 16px; |
| | | position: absolute; |
| | | margin: auto; |
| | | left: 0; |
| | | right: 0; |
| | | top: 0; |
| | | bottom: 0; |
| | | background-size: cover; |
| | | z-index: 9999; |
| | | background-image: url("data:image/png;base64,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"); |
| | | background-size: contain; |
| | | } |
| | | |
| | | .icon-refresh:before { |
| | | content: " "; |
| | | display: block; |
| | | width: 16px; |
| | | height: 16px; |
| | | position: absolute; |
| | | margin: auto; |
| | | left: 0; |
| | | right: 0; |
| | | top: 0; |
| | | bottom: 0; |
| | | z-index: 9999; |
| | | background-image: url("data:image/png;base64,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"); |
| | | background-size: contain; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /* eslint-disable no-unused-vars */ |
| | | <template> |
| | | <div |
| | | style="position: relative" |
| | | > |
| | | <div class="verify-img-out"> |
| | | <div |
| | | :style="{'width': setSize.imgWidth, |
| | | 'height': setSize.imgHeight, |
| | | 'background-size' : setSize.imgWidth + ' '+ setSize.imgHeight, |
| | | 'margin-bottom': vSpace + 'px'}" |
| | | class="verify-img-panel" |
| | | > |
| | | <div @click="refresh" class="verify-refresh" style="z-index:3" v-show="showRefresh"> |
| | | <i class="iconfont icon-refresh"></i> |
| | | </div> |
| | | <img |
| | | :src="'data:image/png;base64,'+pointBackImgBase" |
| | | @click="bindingClick?canvasClick($event):undefined" |
| | | alt="" |
| | | ref="canvas" |
| | | style="width:100%;height:100%;display:block"> |
| | | |
| | | <div |
| | | :key="index" |
| | | :style="{ |
| | | 'background-color':'#1abd6c', |
| | | color:'#fff', |
| | | 'z-index':9999, |
| | | width:'20px', |
| | | height:'20px', |
| | | 'text-align':'center', |
| | | 'line-height':'20px', |
| | | 'border-radius': '50%', |
| | | position:'absolute', |
| | | top:parseInt(tempPoint.y-10) + 'px', |
| | | left:parseInt(tempPoint.x-10) + 'px' |
| | | }" |
| | | class="point-area" |
| | | v-for="(tempPoint, index) in tempPoints"> |
| | | {{ index + 1 }} |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- 'height': this.barSize.height, --> |
| | | <div |
| | | :style="{'width': setSize.imgWidth, |
| | | 'color': this.barAreaColor, |
| | | 'border-color': this.barAreaBorderColor, |
| | | 'line-height':this.barSize.height}" |
| | | class="verify-bar-area"> |
| | | <span class="verify-msg">{{ text }}</span> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <script type="text/babel"> |
| | | /** |
| | | * VerifyPoints |
| | | * @description ç¹é |
| | | * */ |
| | | import { resetSize } from './../utils/util' |
| | | import { aesEncrypt } from './../utils/ase' |
| | | import { reqGet, reqCheck } from '@/api/modular/system/loginManage' |
| | | |
| | | export default { |
| | | name: 'VerifyPoints', |
| | | props: { |
| | | // å¼¹åºå¼popï¼åºå®fixed |
| | | mode: { |
| | | type: String, |
| | | default: 'fixed' |
| | | }, |
| | | // eslint-disable-next-line vue/require-default-prop |
| | | captchaType: { |
| | | type: String |
| | | }, |
| | | // é´é |
| | | vSpace: { |
| | | type: Number, |
| | | default: 5 |
| | | }, |
| | | imgSize: { |
| | | type: Object, |
| | | default() { |
| | | return { |
| | | width: '310px', |
| | | height: '155px' |
| | | } |
| | | } |
| | | }, |
| | | barSize: { |
| | | type: Object, |
| | | default() { |
| | | return { |
| | | width: '310px', |
| | | height: '40px' |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | secretKey: '', // å端è¿åçaseå å¯ç§é¥ |
| | | checkNum: 3, // é»è®¤éè¦ç¹å»çåæ° |
| | | fontPos: [], // éä¸çåæ ä¿¡æ¯ |
| | | checkPosArr: [], // ç¨æ·ç¹å»çåæ |
| | | num: 1, // ç¹å»çè®°æ° |
| | | pointBackImgBase: '', // å端è·åå°çèæ¯å¾ç |
| | | poinTextList: [], // å端è¿åçç¹å»åä½é¡ºåº |
| | | backToken: '', // å端è¿åçtokenå¼ |
| | | setSize: { |
| | | imgHeight: 0, |
| | | imgWidth: 0, |
| | | barHeight: 0, |
| | | barWidth: 0 |
| | | }, |
| | | tempPoints: [], |
| | | text: '', |
| | | barAreaColor: undefined, |
| | | barAreaBorderColor: undefined, |
| | | showRefresh: true, |
| | | bindingClick: true |
| | | } |
| | | }, |
| | | computed: { |
| | | resetSize() { |
| | | return resetSize |
| | | } |
| | | }, |
| | | methods: { |
| | | init() { |
| | | // å è½½é¡µé¢ |
| | | this.fontPos.splice(0, this.fontPos.length) |
| | | this.checkPosArr.splice(0, this.checkPosArr.length) |
| | | this.num = 1 |
| | | this.getPictrue() |
| | | this.$nextTick(() => { |
| | | this.setSize = this.resetSize(this) // éæ°è®¾ç½®å®½åº¦é«åº¦ |
| | | this.$parent.$emit('ready', this) |
| | | }) |
| | | }, |
| | | canvasClick(e) { |
| | | this.checkPosArr.push(this.getMousePos(this.$refs.canvas, e)) |
| | | // eslint-disable-next-line eqeqeq |
| | | if (this.num == this.checkNum) { |
| | | this.num = this.createPoint(this.getMousePos(this.$refs.canvas, e)) |
| | | // ææ¯ä¾è½¬æ¢åæ å¼ |
| | | this.checkPosArr = this.pointTransfrom(this.checkPosArr, this.setSize) |
| | | // çåå»ºåæ æ§è¡å® |
| | | setTimeout(() => { |
| | | // var flag = this.comparePos(this.fontPos, this.checkPosArr); |
| | | // åéåç«¯è¯·æ± |
| | | var captchaVerification = this.secretKey ? aesEncrypt(this.backToken + '---' + JSON.stringify(this.checkPosArr), this.secretKey) : this.backToken + '---' + JSON.stringify(this.checkPosArr) |
| | | const data = { |
| | | captchaType: this.captchaType, |
| | | 'pointJson': this.secretKey ? aesEncrypt(JSON.stringify(this.checkPosArr), this.secretKey) : JSON.stringify(this.checkPosArr), |
| | | 'token': this.backToken |
| | | } |
| | | reqCheck(data).then(res => { |
| | | // eslint-disable-next-line eqeqeq |
| | | if (res.repCode == '0000') { |
| | | this.barAreaColor = '#4cae4c' |
| | | this.barAreaBorderColor = '#5cb85c' |
| | | this.text = 'éªè¯æå' |
| | | this.bindingClick = false |
| | | // eslint-disable-next-line eqeqeq |
| | | if (this.mode == 'pop') { |
| | | setTimeout(() => { |
| | | this.$parent.clickShow = false |
| | | this.refresh() |
| | | }, 1500) |
| | | } |
| | | this.$parent.$emit('success', { captchaVerification }) |
| | | } else { |
| | | this.$parent.$emit('error', this) |
| | | this.barAreaColor = '#d9534f' |
| | | this.barAreaBorderColor = '#d9534f' |
| | | this.text = 'éªè¯å¤±è´¥' |
| | | setTimeout(() => { |
| | | this.refresh() |
| | | }, 700) |
| | | } |
| | | }) |
| | | }, 400) |
| | | } |
| | | if (this.num < this.checkNum) { |
| | | this.num = this.createPoint(this.getMousePos(this.$refs.canvas, e)) |
| | | } |
| | | }, |
| | | |
| | | // è·ååæ |
| | | getMousePos: function (obj, e) { |
| | | var x = e.offsetX |
| | | var y = e.offsetY |
| | | return { x, y } |
| | | }, |
| | | // åå»ºåæ ç¹ |
| | | createPoint: function (pos) { |
| | | this.tempPoints.push(Object.assign({}, pos)) |
| | | return ++this.num |
| | | }, |
| | | refresh: function () { |
| | | this.tempPoints.splice(0, this.tempPoints.length) |
| | | this.barAreaColor = '#000' |
| | | this.barAreaBorderColor = '#ddd' |
| | | this.bindingClick = true |
| | | this.fontPos.splice(0, this.fontPos.length) |
| | | this.checkPosArr.splice(0, this.checkPosArr.length) |
| | | this.num = 1 |
| | | this.getPictrue() |
| | | this.text = 'éªè¯å¤±è´¥' |
| | | this.showRefresh = true |
| | | }, |
| | | |
| | | // 请æ±èæ¯å¾çåéªè¯å¾ç |
| | | getPictrue() { |
| | | const data = { |
| | | captchaType: this.captchaType |
| | | } |
| | | reqGet(data).then(res => { |
| | | // eslint-disable-next-line eqeqeq |
| | | if (res.repCode == '0000') { |
| | | this.pointBackImgBase = res.repData.originalImageBase64 |
| | | this.backToken = res.repData.token |
| | | this.secretKey = res.repData.secretKey |
| | | this.poinTextList = res.repData.wordList |
| | | this.text = 'è¯·ä¾æ¬¡ç¹å»ã' + this.poinTextList.join(',') + 'ã' |
| | | } else { |
| | | this.text = res.repMsg |
| | | } |
| | | }) |
| | | }, |
| | | // åæ è½¬æ¢å½æ° |
| | | pointTransfrom(pointArr, imgSize) { |
| | | var newPointArr = pointArr.map(p => { |
| | | const x = Math.round(310 * p.x / parseInt(imgSize.imgWidth)) |
| | | const y = Math.round(155 * p.y / parseInt(imgSize.imgHeight)) |
| | | return { x, y } |
| | | }) |
| | | return newPointArr |
| | | } |
| | | }, |
| | | watch: { |
| | | // typeåååå
¨é¢å·æ° |
| | | type: { |
| | | immediate: true, |
| | | handler() { |
| | | this.init() |
| | | } |
| | | } |
| | | }, |
| | | mounted() { |
| | | // ç¦æ¢ææ½ |
| | | this.$el.onselectstart = function () { |
| | | return false |
| | | } |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div style="position: relative;"> |
| | | <div |
| | | :style="{height: (parseInt(setSize.imgHeight) + vSpace) + 'px'}" |
| | | class="verify-img-out" |
| | | v-if="type === '2'" |
| | | > |
| | | <div |
| | | :style="{width: setSize.imgWidth, |
| | | height: setSize.imgHeight,}" |
| | | class="verify-img-panel"> |
| | | <img :src="'data:image/png;base64,'+backImgBase" alt="" style="width:100%;height:100%;display:block"> |
| | | <div @click="refresh" class="verify-refresh" v-show="showRefresh"><i class="iconfont icon-refresh"></i> |
| | | </div> |
| | | <transition name="tips"> |
| | | <span :class="passFlag ?'suc-bg':'err-bg'" class="verify-tips" v-if="tipWords">{{ tipWords }}</span> |
| | | </transition> |
| | | </div> |
| | | </div> |
| | | <!-- å
Œ
±é¨å --> |
| | | <div |
| | | :style="{width: setSize.imgWidth, |
| | | height: barSize.height, |
| | | 'line-height':barSize.height}" |
| | | class="verify-bar-area"> |
| | | <span class="verify-msg" v-text="text"></span> |
| | | <div |
| | | :style="{width: (leftBarWidth!==undefined)?leftBarWidth: barSize.height, height: barSize.height, 'border-color': leftBarBorderColor, transaction: transitionWidth}" |
| | | class="verify-left-bar"> |
| | | <span class="verify-msg" v-text="finishText"></span> |
| | | <div |
| | | :style="{width: barSize.height, height: barSize.height, 'background-color': moveBlockBackgroundColor, left: moveBlockLeft, transition: transitionLeft}" |
| | | @mousedown="start" |
| | | @touchstart="start" |
| | | class="verify-move-block"> |
| | | <i |
| | | :class="['verify-icon iconfont', iconClass]" |
| | | :style="{color: iconColor}"></i> |
| | | <div |
| | | :style="{'width':Math.floor(parseInt(setSize.imgWidth)*47/310)+ 'px', |
| | | 'height': setSize.imgHeight, |
| | | 'top':'-' + (parseInt(setSize.imgHeight) + vSpace) + 'px', |
| | | 'background-size': setSize.imgWidth + ' ' + setSize.imgHeight, |
| | | }" |
| | | class="verify-sub-block" |
| | | v-if="type === '2'"> |
| | | <img :src="'data:image/png;base64,'+blockBackImgBase" alt="" style="width:100%;height:100%;display:block"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <script type="text/babel"> |
| | | /** |
| | | * VerifySlide |
| | | * @description æ»å |
| | | * */ |
| | | import { aesEncrypt } from './../utils/ase' |
| | | import { resetSize } from './../utils/util' |
| | | import { reqGet, reqCheck } from '@/api/modular/system/loginManage' |
| | | |
| | | // "captchaType":"blockPuzzle", |
| | | export default { |
| | | name: 'VerifySlide', |
| | | props: { |
| | | // eslint-disable-next-line vue/require-default-prop |
| | | captchaType: { |
| | | type: String |
| | | }, |
| | | type: { |
| | | type: String, |
| | | default: '1' |
| | | }, |
| | | // å¼¹åºå¼popï¼åºå®fixed |
| | | mode: { |
| | | type: String, |
| | | default: 'fixed' |
| | | }, |
| | | vSpace: { |
| | | type: Number, |
| | | default: 5 |
| | | }, |
| | | explain: { |
| | | type: String, |
| | | default: 'å峿»å¨å®æéªè¯' |
| | | }, |
| | | imgSize: { |
| | | type: Object, |
| | | default() { |
| | | return { |
| | | width: '310px', |
| | | height: '155px' |
| | | } |
| | | } |
| | | }, |
| | | blockSize: { |
| | | type: Object, |
| | | default() { |
| | | return { |
| | | width: '50px', |
| | | height: '50px' |
| | | } |
| | | } |
| | | }, |
| | | barSize: { |
| | | type: Object, |
| | | default() { |
| | | return { |
| | | width: '310px', |
| | | height: '40px' |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | secretKey: '', // å端è¿åçå å¯ç§é¥ åæ®µ |
| | | passFlag: '', // æ¯å¦éè¿çæ è¯ |
| | | backImgBase: '', // éªè¯ç èæ¯å¾ç |
| | | blockBackImgBase: '', // éªè¯æ»åçèæ¯å¾ç |
| | | backToken: '', // å端è¿åçå¯ä¸tokenå¼ |
| | | startMoveTime: '', // ç§»å¨å¼å§çæ¶é´ |
| | | endMovetime: '', // ç§»å¨ç»æçæ¶é´ |
| | | tipsBackColor: '', // æç¤ºè¯çèæ¯é¢è² |
| | | tipWords: '', |
| | | text: '', |
| | | finishText: '', |
| | | setSize: { |
| | | imgHeight: 0, |
| | | imgWidth: 0, |
| | | barHeight: 0, |
| | | barWidth: 0 |
| | | }, |
| | | top: 0, |
| | | left: 0, |
| | | moveBlockLeft: undefined, |
| | | leftBarWidth: undefined, |
| | | // ç§»å¨ä¸æ ·å¼ |
| | | moveBlockBackgroundColor: undefined, |
| | | leftBarBorderColor: '#ddd', |
| | | iconColor: undefined, |
| | | iconClass: 'icon-right', |
| | | status: false, // é¼ æ ç¶æ |
| | | isEnd: false, // æ¯å¤éªè¯å®æ |
| | | showRefresh: true, |
| | | transitionLeft: '', |
| | | transitionWidth: '' |
| | | } |
| | | }, |
| | | computed: { |
| | | barArea() { |
| | | return this.$el.querySelector('.verify-bar-area') |
| | | }, |
| | | resetSize() { |
| | | return resetSize |
| | | } |
| | | }, |
| | | methods: { |
| | | init() { |
| | | this.text = this.explain |
| | | this.getPictrue() |
| | | this.$nextTick(() => { |
| | | const setSize = this.resetSize(this) // éæ°è®¾ç½®å®½åº¦é«åº¦ |
| | | for (const key in setSize) { |
| | | this.$set(this.setSize, key, setSize[key]) |
| | | } |
| | | this.$parent.$emit('ready', this) |
| | | }) |
| | | |
| | | var _this = this |
| | | |
| | | window.removeEventListener('touchmove', function (e) { |
| | | _this.move(e) |
| | | }) |
| | | window.removeEventListener('mousemove', function (e) { |
| | | _this.move(e) |
| | | }) |
| | | |
| | | // é¼ æ æ¾å¼ |
| | | window.removeEventListener('touchend', function () { |
| | | _this.end() |
| | | }) |
| | | window.removeEventListener('mouseup', function () { |
| | | _this.end() |
| | | }) |
| | | |
| | | window.addEventListener('touchmove', function (e) { |
| | | _this.move(e) |
| | | }) |
| | | window.addEventListener('mousemove', function (e) { |
| | | _this.move(e) |
| | | }) |
| | | |
| | | // é¼ æ æ¾å¼ |
| | | window.addEventListener('touchend', function () { |
| | | _this.end() |
| | | }) |
| | | window.addEventListener('mouseup', function () { |
| | | _this.end() |
| | | }) |
| | | }, |
| | | |
| | | // é¼ æ æä¸ |
| | | start: function (e) { |
| | | e = e || window.event |
| | | if (!e.touches) { // å
¼å®¹PC端 |
| | | var x = e.clientX |
| | | } else { // å
¼å®¹ç§»å¨ç«¯ |
| | | // eslint-disable-next-line no-redeclare |
| | | var x = e.touches[0].pageX |
| | | } |
| | | this.startLeft = Math.floor(x - this.barArea.getBoundingClientRect().left) |
| | | this.startMoveTime = +new Date() // å¼å§æ»å¨çæ¶é´ |
| | | // eslint-disable-next-line eqeqeq |
| | | if (this.isEnd == false) { |
| | | this.text = '' |
| | | this.moveBlockBackgroundColor = '#337ab7' |
| | | this.leftBarBorderColor = '#337AB7' |
| | | this.iconColor = '#fff' |
| | | e.stopPropagation() |
| | | this.status = true |
| | | } |
| | | }, |
| | | // é¼ æ ç§»å¨ |
| | | move: function (e) { |
| | | e = e || window.event |
| | | // eslint-disable-next-line eqeqeq |
| | | if (this.status && this.isEnd == false) { |
| | | if (!e.touches) { // å
¼å®¹PC端 |
| | | var x = e.clientX |
| | | } else { // å
¼å®¹ç§»å¨ç«¯ |
| | | // eslint-disable-next-line no-redeclare |
| | | var x = e.touches[0].pageX |
| | | } |
| | | // eslint-disable-next-line camelcase |
| | | var bar_area_left = this.barArea.getBoundingClientRect().left |
| | | // eslint-disable-next-line camelcase |
| | | var move_block_left = x - bar_area_left // å°æ¹åç¸å¯¹äºç¶å
ç´ çleftå¼ |
| | | // eslint-disable-next-line camelcase |
| | | if (move_block_left >= this.barArea.offsetWidth - parseInt(parseInt(this.blockSize.width) / 2) - 2) { |
| | | // eslint-disable-next-line camelcase |
| | | move_block_left = this.barArea.offsetWidth - parseInt(parseInt(this.blockSize.width) / 2) - 2 |
| | | } |
| | | // eslint-disable-next-line camelcase |
| | | if (move_block_left <= 0) { |
| | | // eslint-disable-next-line camelcase |
| | | move_block_left = parseInt(parseInt(this.blockSize.width) / 2) |
| | | } |
| | | // æå¨åå°æ¹åçleftå¼ |
| | | // eslint-disable-next-line camelcase |
| | | this.moveBlockLeft = (move_block_left - this.startLeft) + 'px' |
| | | // eslint-disable-next-line camelcase |
| | | this.leftBarWidth = (move_block_left - this.startLeft) + 'px' |
| | | } |
| | | }, |
| | | |
| | | // é¼ æ æ¾å¼ |
| | | end: function () { |
| | | this.endMovetime = +new Date() |
| | | var _this = this |
| | | // 夿æ¯å¦éå |
| | | // eslint-disable-next-line eqeqeq |
| | | if (this.status && this.isEnd == false) { |
| | | var moveLeftDistance = parseInt((this.moveBlockLeft || '').replace('px', '')) |
| | | moveLeftDistance = moveLeftDistance * 310 / parseInt(this.setSize.imgWidth) |
| | | const data = { |
| | | captchaType: this.captchaType, |
| | | 'pointJson': this.secretKey ? aesEncrypt(JSON.stringify({ x: moveLeftDistance, y: 5.0 }), this.secretKey) : JSON.stringify({ x: moveLeftDistance, y: 5.0 }), |
| | | 'token': this.backToken |
| | | } |
| | | reqCheck(data).then(res => { |
| | | // eslint-disable-next-line eqeqeq |
| | | if (res.repCode == '0000') { |
| | | this.moveBlockBackgroundColor = '#5cb85c' |
| | | this.leftBarBorderColor = '#5cb85c' |
| | | this.iconColor = '#fff' |
| | | this.iconClass = 'icon-check' |
| | | this.showRefresh = false |
| | | this.isEnd = true |
| | | // eslint-disable-next-line eqeqeq |
| | | if (this.mode == 'pop') { |
| | | setTimeout(() => { |
| | | this.$parent.clickShow = false |
| | | this.refresh() |
| | | }, 1500) |
| | | } |
| | | this.passFlag = true |
| | | this.tipWords = `${((this.endMovetime - this.startMoveTime) / 1000).toFixed(2)}séªè¯æå` |
| | | var captchaVerification = this.secretKey ? aesEncrypt(this.backToken + '---' + JSON.stringify({ x: moveLeftDistance, y: 5.0 }), this.secretKey) : this.backToken + '---' + JSON.stringify({ x: moveLeftDistance, y: 5.0 }) |
| | | setTimeout(() => { |
| | | this.tipWords = '' |
| | | this.$parent.closeBox() |
| | | this.$parent.$emit('success', { captchaVerification }) |
| | | }, 1000) |
| | | } else { |
| | | this.moveBlockBackgroundColor = '#d9534f' |
| | | this.leftBarBorderColor = '#d9534f' |
| | | this.iconColor = '#fff' |
| | | this.iconClass = 'icon-close' |
| | | this.passFlag = false |
| | | setTimeout(function () { |
| | | _this.refresh() |
| | | }, 1000) |
| | | this.$parent.$emit('error', this) |
| | | this.tipWords = 'éªè¯å¤±è´¥' |
| | | setTimeout(() => { |
| | | this.tipWords = '' |
| | | }, 1000) |
| | | } |
| | | }) |
| | | this.status = false |
| | | } |
| | | }, |
| | | |
| | | refresh: function () { |
| | | this.showRefresh = true |
| | | this.finishText = '' |
| | | |
| | | this.transitionLeft = 'left .3s' |
| | | this.moveBlockLeft = 0 |
| | | |
| | | this.leftBarWidth = undefined |
| | | this.transitionWidth = 'width .3s' |
| | | |
| | | this.leftBarBorderColor = '#ddd' |
| | | this.moveBlockBackgroundColor = '#fff' |
| | | this.iconColor = '#000' |
| | | this.iconClass = 'icon-right' |
| | | this.isEnd = false |
| | | |
| | | this.getPictrue() |
| | | setTimeout(() => { |
| | | this.transitionWidth = '' |
| | | this.transitionLeft = '' |
| | | this.text = this.explain |
| | | }, 300) |
| | | }, |
| | | |
| | | // 请æ±èæ¯å¾çåéªè¯å¾ç |
| | | getPictrue() { |
| | | const data = { |
| | | captchaType: this.captchaType |
| | | } |
| | | reqGet(data).then(res => { |
| | | // eslint-disable-next-line eqeqeq |
| | | if (res.repCode == '0000') { |
| | | this.backImgBase = res.repData.originalImageBase64 |
| | | this.blockBackImgBase = res.repData.jigsawImageBase64 |
| | | this.backToken = res.repData.token |
| | | this.secretKey = res.repData.secretKey |
| | | } else { |
| | | this.tipWords = res.repMsg |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | watch: { |
| | | // typeåååå
¨é¢å·æ° |
| | | type: { |
| | | immediate: true, |
| | | handler() { |
| | | this.init() |
| | | } |
| | | } |
| | | }, |
| | | mounted() { |
| | | // ç¦æ¢ææ½ |
| | | this.$el.onselectstart = function () { |
| | | return false |
| | | } |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import CryptoJS from 'crypto-js' |
| | | /** |
| | | * @word è¦å å¯çå
容 |
| | | * @keyWord String æå¡å¨éæºè¿åçå
³é®å |
| | | */ |
| | | export function aesEncrypt(word, keyWord = 'XwKsGlMcdPMEhR1B') { |
| | | var key = CryptoJS.enc.Utf8.parse(keyWord) |
| | | var srcs = CryptoJS.enc.Utf8.parse(word) |
| | | var encrypted = CryptoJS.AES.encrypt(srcs, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }) |
| | | return encrypted.toString() |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import axios from 'axios' |
| | | |
| | | axios.defaults.baseURL = process.env.BASE_API |
| | | |
| | | const service = axios.create({ |
| | | timeout: 40000, |
| | | headers: { |
| | | 'X-Requested-With': 'XMLHttpRequest', |
| | | 'Content-Type': 'application/json; charset=UTF-8' |
| | | } |
| | | }) |
| | | service.interceptors.request.use( |
| | | config => { |
| | | return config |
| | | }, |
| | | error => { |
| | | Promise.reject(error) |
| | | } |
| | | ) |
| | | |
| | | // response interceptor |
| | | service.interceptors.response.use( |
| | | response => { |
| | | const res = response.data |
| | | return res |
| | | }, |
| | | () => { |
| | | } |
| | | ) |
| | | export default service |
¶Ô±ÈÐÂÎļþ |
| | |
| | | export function resetSize(vm) { |
| | | // eslint-disable-next-line camelcase |
| | | var img_width, img_height, bar_width, bar_height // å¾çç宽度ãé«åº¦ï¼ç§»å¨æ¡ç宽度ãé«åº¦ |
| | | |
| | | var parentWidth = vm.$el.parentNode.offsetWidth || window.offsetWidth |
| | | var parentHeight = vm.$el.parentNode.offsetHeight || window.offsetHeight |
| | | |
| | | // eslint-disable-next-line eqeqeq |
| | | if (vm.imgSize.width.indexOf('%') != -1) { |
| | | // eslint-disable-next-line camelcase |
| | | img_width = parseInt(this.imgSize.width) / 100 * parentWidth + 'px' |
| | | } else { |
| | | // eslint-disable-next-line camelcase |
| | | img_width = this.imgSize.width |
| | | } |
| | | |
| | | // eslint-disable-next-line eqeqeq |
| | | if (vm.imgSize.height.indexOf('%') != -1) { |
| | | // eslint-disable-next-line camelcase |
| | | img_height = parseInt(this.imgSize.height) / 100 * parentHeight + 'px' |
| | | } else { |
| | | // eslint-disable-next-line camelcase |
| | | img_height = this.imgSize.height |
| | | } |
| | | |
| | | // eslint-disable-next-line eqeqeq |
| | | if (vm.barSize.width.indexOf('%') != -1) { |
| | | // eslint-disable-next-line camelcase |
| | | bar_width = parseInt(this.barSize.width) / 100 * parentWidth + 'px' |
| | | } else { |
| | | // eslint-disable-next-line camelcase |
| | | bar_width = this.barSize.width |
| | | } |
| | | |
| | | // eslint-disable-next-line eqeqeq |
| | | if (vm.barSize.height.indexOf('%') != -1) { |
| | | // eslint-disable-next-line camelcase |
| | | bar_height = parseInt(this.barSize.height) / 100 * parentHeight + 'px' |
| | | } else { |
| | | // eslint-disable-next-line camelcase |
| | | bar_height = this.barSize.height |
| | | } |
| | | |
| | | return { imgWidth: img_width, imgHeight: img_height, barWidth: bar_width, barHeight: bar_height } |
| | | } |
| | | |
| | | // eslint-disable-next-line camelcase |
| | | export const _code_chars = [1, 2, 3, 4, 5, 6, 7, 8, 9, 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'] |
| | | // eslint-disable-next-line camelcase |
| | | export const _code_color1 = ['#fffff0', '#f0ffff', '#f0fff0', '#fff0f0'] |
| | | // eslint-disable-next-line camelcase |
| | | export const _code_color2 = ['#FF0033', '#006699', '#993366', '#FF9900', '#66CC66', '#FF33CC'] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-card :bordered="false" :bodyStyle="tstyle"> |
| | | <slot name="content"></slot> |
| | | </a-card> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: 'XCard', |
| | | data() { |
| | | return { |
| | | tstyle: { 'padding-bottom': '0px', 'margin-bottom': '10px' } |
| | | } |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /** |
| | | * 项ç®é»è®¤é
置项 |
| | | * primaryColor - é»è®¤ä¸»é¢è², å¦æä¿®æ¹é¢è²ä¸çæï¼è¯·æ¸
ç localStorage |
| | | * navTheme - sidebar theme ['dark', 'light'] 两ç§ä¸»é¢ |
| | | * colorWeak - è²ç²æ¨¡å¼ |
| | | * layout - æ´ä½å¸å±æ¹å¼ ['sidemenu', 'topmenu'] 两ç§å¸å± |
| | | * fixedHeader - åºå® Header : boolean |
| | | * fixSiderbar - åºå®å·¦ä¾§èåæ ï¼ boolean |
| | | * autoHideHeader - å䏿»å¨æ¶ï¼éè Header : boolean |
| | | * contentWidth - å
容åºå¸å±ï¼ æµå¼ | åºå® |
| | | * |
| | | * storageOptions: {} - Vue-ls æä»¶é
置项 (localStorage/sessionStorage) |
| | | * production: åéæå
设å®ä¸º falseï¼ç®çæ¯åç§ç¯å¢é½æ£å¸¸æ¾ç¤ºè®¾ç½®æ½å±ï¼çå®ç¯å¢è¯·æ¾å¼æ³¨é |
| | | * |
| | | * |
| | | */ |
| | | |
| | | export default { |
| | | primaryColor: '#FA541C', // primary color of ant design |
| | | navTheme: 'light', // theme for nav menu |
| | | layout: 'sidemenu', // nav menu position: sidemenu or topmenu |
| | | contentWidth: 'Fixed', // layout of content: Fluid or Fixed, only works when layout is topmenu |
| | | fixedHeader: true, // sticky header |
| | | fixSiderbar: true, // sticky siderbar |
| | | autoHideHeader: false, // auto hide header |
| | | colorWeak: false, |
| | | multiTab: false, |
| | | crumbsSate: false, |
| | | production: process.env.NODE_ENV === 'production' && process.env.VUE_APP_PREVIEW !== 'true', |
| | | // vue-ls options |
| | | storageOptions: { |
| | | namespace: 'pro__', // key prefix |
| | | name: 'ls', // name variable Vue.[ls] or this.[$ls], |
| | | storage: 'local' // storage name session, local, memory |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | // eslint-disable-next-line |
| | | import { UserLayout, BasicLayout, RouteView, BlankLayout, PageView } from '@/layouts' |
| | | import { bxAnaalyse } from '@/core/icons' |
| | | |
| | | export const asyncRouterMap = [ |
| | | |
| | | { |
| | | path: '/', |
| | | name: 'MenuIndex.vue', |
| | | component: BasicLayout, |
| | | meta: { title: 'é¦é¡µ' }, |
| | | redirect: '/dashboard/workplace', |
| | | children: [ |
| | | // dashboard |
| | | { |
| | | path: 'dashboard', |
| | | name: 'dashboard', |
| | | redirect: '/dashboard/workplace', |
| | | component: RouteView, |
| | | // eslint-disable-next-line standard/object-curly-even-spacing |
| | | meta: { title: '仪表ç', keepAlive: true, icon: bxAnaalyse /* permission: [ 'dashboard' ] */ }, |
| | | children: [ |
| | | { |
| | | path: 'analysis/:pageNo([1-9]\\d*)?', |
| | | name: 'Analysis', |
| | | component: () => import('@/views/system/dashboard/Analysis'), |
| | | // eslint-disable-next-line standard/object-curly-even-spacing |
| | | meta: { title: 'åæé¡µ', keepAlive: true /* permission: [ 'dashboard' ] */ } |
| | | }, |
| | | { |
| | | path: 'workplace', |
| | | name: 'Workplace', |
| | | component: () => import('@/views/system/dashboard/Workplace'), |
| | | // eslint-disable-next-line standard/object-curly-even-spacing |
| | | meta: { title: 'å·¥ä½å°', keepAlive: false/*, permission: [ 'dashboard' ] */ } |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: '*', redirect: '/404', hidden: true |
| | | } |
| | | ] |
| | | |
| | | /** |
| | | * åºç¡è·¯ç± |
| | | * @type { *[] } |
| | | */ |
| | | export const constantRouterMap = [ |
| | | { |
| | | path: '/user', |
| | | component: UserLayout, |
| | | redirect: '/user/login', |
| | | hidden: true, |
| | | children: [ |
| | | { |
| | | path: 'login', |
| | | name: 'login', |
| | | component: () => import(/* webpackChunkName: "user" */ '@/views/userLoginReg/Login') |
| | | }, |
| | | { |
| | | path: 'register', |
| | | name: 'register', |
| | | component: () => import(/* webpackChunkName: "user" */ '@/views/userLoginReg/Register') |
| | | }, |
| | | { |
| | | path: 'register-result', |
| | | name: 'registerResult', |
| | | component: () => import(/* webpackChunkName: "user" */ '@/views/userLoginReg/RegisterResult') |
| | | }, |
| | | { |
| | | path: 'recover', |
| | | name: 'recover', |
| | | component: undefined |
| | | } |
| | | ] |
| | | }, |
| | | |
| | | { |
| | | path: '/test', |
| | | component: BlankLayout, |
| | | redirect: '/test/home', |
| | | children: [ |
| | | { |
| | | path: 'home', |
| | | name: 'TestHome', |
| | | component: () => import('@/views/Home') |
| | | } |
| | | ] |
| | | }, |
| | | |
| | | { |
| | | path: '/404', |
| | | component: () => import(/* webpackChunkName: "fail" */ '@/views/system/exception/404') |
| | | } |
| | | |
| | | ] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /* |
| | | * @Author: your name |
| | | * @Date: 2021-05-18 23:01:53 |
| | | * @LastEditTime: 2021-05-19 00:57:22 |
| | | * @LastEditors: your name |
| | | * @Description: In User Settings Edit |
| | | * @FilePath: \frontend\src\core\bootstrap.js |
| | | */ |
| | | import Vue from 'vue' |
| | | import store from '@/store/' |
| | | import { |
| | | ACCESS_TOKEN, |
| | | DEFAULT_COLOR, |
| | | DEFAULT_THEME, |
| | | DEFAULT_LAYOUT_MODE, |
| | | DEFAULT_COLOR_WEAK, |
| | | SIDEBAR_TYPE, |
| | | DEFAULT_FIXED_HEADER, |
| | | DEFAULT_FIXED_HEADER_HIDDEN, |
| | | DEFAULT_FIXED_SIDEMENU, |
| | | DEFAULT_CONTENT_WIDTH_TYPE, |
| | | DEFAULT_MULTI_TAB, |
| | | DEFAULT_CRUMBS_STATE |
| | | } from '@/store/mutation-types' |
| | | |
| | | import config from '@/config/defaultSettings' |
| | | |
| | | export default function Initializer () { |
| | | store.commit('SET_SIDEBAR_TYPE', Vue.ls.get(SIDEBAR_TYPE, true)) |
| | | store.commit('TOGGLE_THEME', Vue.ls.get(DEFAULT_THEME, config.navTheme)) |
| | | store.commit('TOGGLE_LAYOUT_MODE', Vue.ls.get(DEFAULT_LAYOUT_MODE, config.layout)) |
| | | store.commit('TOGGLE_FIXED_HEADER', Vue.ls.get(DEFAULT_FIXED_HEADER, config.fixedHeader)) |
| | | store.commit('TOGGLE_FIXED_SIDERBAR', Vue.ls.get(DEFAULT_FIXED_SIDEMENU, config.fixSiderbar)) |
| | | store.commit('TOGGLE_CONTENT_WIDTH', Vue.ls.get(DEFAULT_CONTENT_WIDTH_TYPE, config.contentWidth)) |
| | | store.commit('TOGGLE_FIXED_HEADER_HIDDEN', Vue.ls.get(DEFAULT_FIXED_HEADER_HIDDEN, config.autoHideHeader)) |
| | | store.commit('TOGGLE_WEAK', Vue.ls.get(DEFAULT_COLOR_WEAK, config.colorWeak)) |
| | | store.commit('TOGGLE_COLOR', Vue.ls.get(DEFAULT_COLOR, config.primaryColor)) |
| | | store.commit('TOGGLE_MULTI_TAB', Vue.ls.get(DEFAULT_MULTI_TAB, config.multiTab)) |
| | | store.commit('TOGGLE_CRUMBS_STATE', Vue.ls.get(DEFAULT_CRUMBS_STATE, config.crumbsSate)) |
| | | store.commit('SET_TOKEN', Vue.ls.get(ACCESS_TOKEN)) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import Vue from 'vue' |
| | | import store from '@/store' |
| | | |
| | | /** |
| | | * Action æéæä»¤ |
| | | * æä»¤ç¨æ³ï¼ |
| | | * - å¨éè¦æ§å¶ action çº§å«æéçç»ä»¶ä¸ä½¿ç¨ v-action:[method] , å¦ä¸ï¼ |
| | | * <i-button v-action:add >æ·»å ç¨æ·</a-button> |
| | | * <a-button v-action:delete>å é¤ç¨æ·</a-button> |
| | | * <a v-action:edit @click="edit(record)">ä¿®æ¹</a> |
| | | * |
| | | * - å½åç¨æ·æ²¡ææéæ¶ï¼ç»ä»¶ä¸ä½¿ç¨äºè¯¥æä»¤åä¼è¢«éè |
| | | * - å½åå°æéè· pro æä¾ç模å¼ä¸åæ¶ï¼åªéè¦é对è¿éçæéè¿æ»¤è¿è¡ä¿®æ¹å³å¯ |
| | | * |
| | | * @see https://github.com/sendya/ant-design-pro-vue/pull/53 |
| | | */ |
| | | const action = Vue.directive('action', { |
| | | inserted: function (el, binding, vnode) { |
| | | const actionName = binding.arg |
| | | const roles = store.getters.roles |
| | | const elVal = vnode.context.$route.meta.permission |
| | | const permissionId = elVal instanceof String && [elVal] || elVal |
| | | roles.permissions.forEach(p => { |
| | | if (!permissionId.includes(p.permissionId)) { |
| | | return |
| | | } |
| | | if (p.actionList && !p.actionList.includes(actionName)) { |
| | | el.parentNode && el.parentNode.removeChild(el) || (el.style.display = 'none') |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | |
| | | export default action |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /** |
| | | * Custom icon list |
| | | * All icons are loaded here for easy management |
| | | * @see https://vue.ant.design/components/icon/#Custom-Font-Icon |
| | | * |
| | | * èªå®ä¹å¾æ å 载表 |
| | | * ææå¾æ åä»è¿éå è½½ï¼æ¹ä¾¿ç®¡ç |
| | | */ |
| | | import bxAnaalyse from '@/assets/icons/bx-analyse.svg?inline' // path to your '*.svg?inline' file. |
| | | |
| | | export { bxAnaalyse } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /** |
| | | * 该æä»¶æ¯ä¸ºäºæéå è½½ï¼å餿äºä¸äºä¸éè¦çæ¡æ¶ç»ä»¶ã |
| | | * åå°äºç¼è¯æ¯æåºå
å¤§å° |
| | | * @author yubaoshan |
| | | * å½éè¦æ´å¤ç»ä»¶ä¾èµæ¶ï¼å¨è¯¥æä»¶å å
¥å³å¯ |
| | | */ |
| | | import Vue from 'vue' |
| | | import { |
| | | ConfigProvider, |
| | | Layout, |
| | | Input, |
| | | InputNumber, |
| | | Button, |
| | | Switch, |
| | | Radio, |
| | | Checkbox, |
| | | Select, |
| | | Card, |
| | | Form, |
| | | Row, |
| | | Col, |
| | | Modal, |
| | | Table, |
| | | Tabs, |
| | | Icon, |
| | | Badge, |
| | | Popover, |
| | | Dropdown, |
| | | List, |
| | | Avatar, |
| | | Breadcrumb, |
| | | Steps, |
| | | Spin, |
| | | Menu, |
| | | Drawer, |
| | | Tooltip, |
| | | Alert, |
| | | Tag, |
| | | Divider, |
| | | DatePicker, |
| | | TimePicker, |
| | | Upload, |
| | | Progress, |
| | | Skeleton, |
| | | Popconfirm, |
| | | message, |
| | | notification, |
| | | TreeSelect, |
| | | Tree, |
| | | Transfer, |
| | | Empty, |
| | | PageHeader, |
| | | Descriptions, |
| | | Result, |
| | | Cascader |
| | | } from 'ant-design-vue' |
| | | // import VueCropper from 'vue-cropper' |
| | | |
| | | Vue.use(ConfigProvider) |
| | | Vue.use(Layout) |
| | | Vue.use(Input) |
| | | Vue.use(InputNumber) |
| | | Vue.use(Button) |
| | | Vue.use(Switch) |
| | | Vue.use(Radio) |
| | | Vue.use(Checkbox) |
| | | Vue.use(Select) |
| | | Vue.use(Card) |
| | | Vue.use(Form) |
| | | Vue.use(Row) |
| | | Vue.use(Col) |
| | | Vue.use(Modal) |
| | | Vue.use(Table) |
| | | Vue.use(Tabs) |
| | | Vue.use(Icon) |
| | | Vue.use(Badge) |
| | | Vue.use(Popover) |
| | | Vue.use(Dropdown) |
| | | Vue.use(List) |
| | | Vue.use(Avatar) |
| | | Vue.use(Breadcrumb) |
| | | Vue.use(Steps) |
| | | Vue.use(Spin) |
| | | Vue.use(Menu) |
| | | Vue.use(Drawer) |
| | | Vue.use(Tooltip) |
| | | Vue.use(Alert) |
| | | Vue.use(Tag) |
| | | Vue.use(Divider) |
| | | Vue.use(DatePicker) |
| | | Vue.use(TimePicker) |
| | | Vue.use(Upload) |
| | | Vue.use(Progress) |
| | | Vue.use(Skeleton) |
| | | Vue.use(Popconfirm) |
| | | // Vue.use(VueCropper) |
| | | Vue.use(notification) |
| | | Vue.use(TreeSelect) |
| | | Vue.use(Tree) |
| | | Vue.use(Transfer) |
| | | Vue.use(Empty) |
| | | Vue.use(PageHeader) |
| | | Vue.use(Descriptions) |
| | | Vue.use(Result) |
| | | Vue.use(Cascader) |
| | | |
| | | Vue.prototype.$confirm = Modal.confirm |
| | | Vue.prototype.$message = message |
| | | Vue.prototype.$notification = notification |
| | | Vue.prototype.$info = Modal.info |
| | | Vue.prototype.$success = Modal.success |
| | | Vue.prototype.$error = Modal.error |
| | | Vue.prototype.$warning = Modal.warning |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import Vue from 'vue' |
| | | import VueStorage from 'vue-ls' |
| | | import config from '@/config/defaultSettings' |
| | | |
| | | // base library |
| | | import '@/core/lazy_lib/components_use' |
| | | import Viser from 'viser-vue' |
| | | |
| | | // ext library |
| | | import VueClipboard from 'vue-clipboard2' |
| | | import VueCropper from 'vue-cropper' |
| | | import MultiTab from '@/components/MultiTab' |
| | | import PageLoading from '@/components/PageLoading' |
| | | import PermissionHelper from '@/utils/helper/permission' |
| | | import './directives/action' |
| | | |
| | | VueClipboard.config.autoSetContainer = true |
| | | |
| | | Vue.use(Viser) |
| | | Vue.use(MultiTab) |
| | | Vue.use(PageLoading) |
| | | Vue.use(VueStorage, config.storageOptions) |
| | | Vue.use(VueClipboard) |
| | | Vue.use(PermissionHelper) |
| | | Vue.use(VueCropper) |
| | | |
| | | process.env.NODE_ENV !== 'production' && console.warn('[antd-pro] NOTICE: Antd use lazy-load.') |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import Vue from 'vue' |
| | | import VueStorage from 'vue-ls' |
| | | import config from '@/config/defaultSettings' |
| | | |
| | | // base library |
| | | import Antd from 'ant-design-vue' |
| | | import Viser from 'viser-vue' |
| | | import VueCropper from 'vue-cropper' |
| | | import 'ant-design-vue/dist/antd.less' |
| | | |
| | | // ext library |
| | | import VueClipboard from 'vue-clipboard2' |
| | | import MultiTab from '@/components/MultiTab' |
| | | import PageLoading from '@/components/PageLoading' |
| | | import PermissionHelper from '@/utils/helper/permission' |
| | | // import '@/components/use' |
| | | import './directives/action' |
| | | |
| | | VueClipboard.config.autoSetContainer = true |
| | | |
| | | Vue.use(Antd) |
| | | Vue.use(Viser) |
| | | Vue.use(MultiTab) |
| | | Vue.use(PageLoading) |
| | | Vue.use(VueStorage, config.storageOptions) |
| | | Vue.use(VueClipboard) |
| | | Vue.use(PermissionHelper) |
| | | Vue.use(VueCropper) |
| | | |
| | | process.env.NODE_ENV !== 'production' && console.warn('[antd-pro] WARNING: Antd now use fulled imported.') |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-layout :class="['layout', device]"> |
| | | <!-- SideMenu --> |
| | | <a-drawer |
| | | v-if="isMobile()" |
| | | placement="left" |
| | | :wrapClassName="`drawer-sider ${navTheme}`" |
| | | :closable="false" |
| | | :visible="collapsed" |
| | | @close="drawerClose" |
| | | > |
| | | <side-menu |
| | | mode="inline" |
| | | :menus="menus" |
| | | :theme="navTheme" |
| | | :collapsed="false" |
| | | :collapsible="true" |
| | | @menuSelect="menuSelect" |
| | | ></side-menu> |
| | | </a-drawer> |
| | | |
| | | <side-menu |
| | | v-else-if="isSideMenu()" |
| | | mode="inline" |
| | | :menus="menus" |
| | | :theme="navTheme" |
| | | :collapsed="collapsed" |
| | | :collapsible="true" |
| | | ></side-menu> |
| | | |
| | | <a-layout :class="[layoutMode, `content-width-${contentWidth}`]" :style="{ paddingLeft: contentPaddingLeft, minHeight: '100vh' }"> |
| | | <!-- layout header --> |
| | | <global-header |
| | | :mode="layoutMode" |
| | | :menus="menus" |
| | | :theme="navTheme" |
| | | :collapsed="collapsed" |
| | | :device="device" |
| | | @toggle="toggle" |
| | | /> |
| | | |
| | | <!-- layout content --> |
| | | <a-layout-content :style="{ height: '100%', margin: '24px 24px 0', paddingTop: fixedHeader ? '55px' : '0' }"> |
| | | <multi-tab v-if="multiTab"></multi-tab> |
| | | <transition name="page-transition"> |
| | | <route-view /> |
| | | </transition> |
| | | </a-layout-content> |
| | | |
| | | <!-- layout footer --> |
| | | <a-layout-footer> |
| | | <global-footer /> |
| | | </a-layout-footer> |
| | | |
| | | <!-- Setting Drawer (show in development mode) --> |
| | | <setting-drawer v-if="!production"></setting-drawer> |
| | | </a-layout> |
| | | </a-layout> |
| | | |
| | | </template> |
| | | |
| | | <script> |
| | | import { triggerWindowResizeEvent } from '@/utils/util' |
| | | import { mapState, mapActions } from 'vuex' |
| | | import { mixin, mixinDevice } from '@/utils/mixin' |
| | | import config from '@/config/defaultSettings' |
| | | |
| | | import RouteView from './RouteView' |
| | | import SideMenu from '@/components/Menu/SideMenu' |
| | | import GlobalHeader from '@/components/GlobalHeader' |
| | | import GlobalFooter from '@/components/GlobalFooter' |
| | | import SettingDrawer from '@/components/SettingDrawer' |
| | | import { convertRoutes } from '@/utils/routeConvert' |
| | | |
| | | export default { |
| | | name: 'BasicLayout', |
| | | mixins: [mixin, mixinDevice], |
| | | components: { |
| | | RouteView, |
| | | SideMenu, |
| | | GlobalHeader, |
| | | GlobalFooter, |
| | | SettingDrawer |
| | | }, |
| | | data () { |
| | | return { |
| | | production: config.production, |
| | | collapsed: false, |
| | | menus: [] |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapState({ |
| | | // å¨æä¸»è·¯ç± |
| | | mainMenu: state => state.permission.addRouters |
| | | }), |
| | | contentPaddingLeft () { |
| | | if (!this.fixSidebar || this.isMobile()) { |
| | | return '0' |
| | | } |
| | | if (this.sidebarOpened) { |
| | | return '230px' |
| | | } |
| | | return '80px' |
| | | } |
| | | }, |
| | | watch: { |
| | | sidebarOpened (val) { |
| | | this.collapsed = !val |
| | | }, |
| | | // èååå |
| | | mainMenu (val) { |
| | | this.setMenus() |
| | | } |
| | | }, |
| | | created () { |
| | | this.setMenus() |
| | | /* const routes = convertRoutes(this.mainMenu.find(item => item.path === '/')) |
| | | this.menus = (routes && routes.children) || [] */ |
| | | this.collapsed = !this.sidebarOpened |
| | | }, |
| | | mounted () { |
| | | const userAgent = navigator.userAgent |
| | | if (userAgent.indexOf('Edge') > -1) { |
| | | this.$nextTick(() => { |
| | | this.collapsed = !this.collapsed |
| | | setTimeout(() => { |
| | | this.collapsed = !this.collapsed |
| | | }, 16) |
| | | }) |
| | | } |
| | | }, |
| | | methods: { |
| | | ...mapActions(['setSidebar']), |
| | | // éæ°çæ |
| | | setMenus () { |
| | | const routes = convertRoutes(this.mainMenu.find(item => item.path === '/')) |
| | | this.menus = (routes && routes.children) || [] |
| | | }, |
| | | toggle () { |
| | | this.collapsed = !this.collapsed |
| | | this.setSidebar(!this.collapsed) |
| | | triggerWindowResizeEvent() |
| | | }, |
| | | paddingCalc () { |
| | | let left = '' |
| | | if (this.sidebarOpened) { |
| | | left = this.isDesktop() ? '230px' : '80px' |
| | | } else { |
| | | left = (this.isMobile() && '0') || ((this.fixSidebar && '80px') || '0') |
| | | } |
| | | return left |
| | | }, |
| | | menuSelect () { |
| | | }, |
| | | drawerClose () { |
| | | this.collapsed = false |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less"> |
| | | /* |
| | | * The following styles are auto-applied to elements with |
| | | * transition="page-transition" when their visibility is toggled |
| | | * by Vue.js. |
| | | * |
| | | * You can easily play with the page transition by editing |
| | | * these styles. |
| | | */ |
| | | |
| | | .page-transition-enter { |
| | | opacity: 0; |
| | | } |
| | | |
| | | .page-transition-leave-active { |
| | | opacity: 0; |
| | | } |
| | | |
| | | .page-transition-enter .page-transition-container, |
| | | .page-transition-leave-active .page-transition-container { |
| | | -webkit-transform: scale(1.1); |
| | | transform: scale(1.1); |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <router-view /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | export default { |
| | | name: 'BlankLayout' |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | <script> |
| | | import Vue from 'vue' |
| | | import { ACCESS_TOKEN } from '@/store/mutation-types' |
| | | |
| | | export default { |
| | | name: 'Iframe', |
| | | data () { |
| | | return { |
| | | } |
| | | }, |
| | | render () { |
| | | const { $route: { meta: { link } } } = this |
| | | if ({ link }.link === '') { |
| | | return '404' |
| | | } |
| | | let url = '' |
| | | if ({ link }.link.indexOf('token=') > -1) { |
| | | url = { link }.link + Vue.ls.get(ACCESS_TOKEN) |
| | | } else { |
| | | url = { link }.link |
| | | } |
| | | let height = '' |
| | | const deviceHeight = document.documentElement.clientHeight |
| | | height = (Number(deviceHeight) - 260) + 'px' |
| | | return <iframe id="iframe" height={height} src={url} style="width:100%;overflow:hidden;" frameBorder="0"></iframe> |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div :style="!$route.meta.hiddenHeaderContent ? 'margin: -24px -24px 0px;' : null"> |
| | | <!-- pageHeader , route meta :true on hide --> |
| | | <page-header v-if="!$route.meta.hiddenHeaderContent" :title="pageTitle" :logo="logo" :avatar="avatar"> |
| | | <slot slot="action" name="action"></slot> |
| | | <slot slot="content" name="headerContent"></slot> |
| | | <div slot="content" v-if="!this.$slots.headerContent && description"> |
| | | <p style="font-size: 14px;color: rgba(0,0,0,.65)">{{ description }}</p> |
| | | <div class="link"> |
| | | </div> |
| | | </div> |
| | | <slot slot="extra" name="extra"> |
| | | <div class="extra-img"> |
| | | <img v-if="typeof extraImage !== 'undefined'" :src="extraImage"/> |
| | | </div> |
| | | </slot> |
| | | <div slot="pageMenu"> |
| | | <div class="page-menu-search" v-if="search"> |
| | | <a-input-search |
| | | style="width: 80%; max-width: 522px;" |
| | | placeholder="请è¾å
¥..." |
| | | size="large" |
| | | enterButton="æç´¢" |
| | | /> |
| | | </div> |
| | | <div class="page-menu-tabs" v-if="tabs && tabs.items"> |
| | | <!-- @change="callback" :activeKey="activeKey" --> |
| | | <a-tabs :tabBarStyle="{margin: 0}" :activeKey="tabs.active()" @change="tabs.callback"> |
| | | <a-tab-pane v-for="item in tabs.items" :tab="item.title" :key="item.key"></a-tab-pane> |
| | | </a-tabs> |
| | | </div> |
| | | </div> |
| | | </page-header> |
| | | <div class="content"> |
| | | <div class="page-header-index-wide"> |
| | | <slot> |
| | | <!-- keep-alive --> |
| | | <keep-alive v-if="multiTab"> |
| | | <router-view ref="content" /> |
| | | </keep-alive> |
| | | <router-view v-else ref="content" style="margin: -12px -14px 0;"/> |
| | | </slot> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { mapState } from 'vuex' |
| | | import PageHeader from '@/components/PageHeader' |
| | | |
| | | export default { |
| | | name: 'PageView', |
| | | components: { |
| | | PageHeader |
| | | }, |
| | | props: { |
| | | avatar: { |
| | | type: String, |
| | | default: null |
| | | }, |
| | | title: { |
| | | type: [String, Boolean], |
| | | default: true |
| | | }, |
| | | logo: { |
| | | type: String, |
| | | default: null |
| | | }, |
| | | directTabs: { |
| | | type: Object, |
| | | default: null |
| | | } |
| | | }, |
| | | data () { |
| | | return { |
| | | pageTitle: null, |
| | | description: null, |
| | | linkList: [], |
| | | extraImage: '', |
| | | search: false, |
| | | tabs: {} |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapState({ |
| | | multiTab: state => state.app.multiTab |
| | | }) |
| | | }, |
| | | mounted () { |
| | | this.tabs = this.directTabs |
| | | this.getPageMeta() |
| | | }, |
| | | updated () { |
| | | this.getPageMeta() |
| | | }, |
| | | methods: { |
| | | getPageMeta () { |
| | | // eslint-disable-next-line |
| | | //æåæ ·å¼//(typeof(this.title) === 'string' || !this.title) ? this.title : this.$route.meta.title |
| | | // 为äºç®æ´æ¹ä¸ºæ |
| | | this.pageTitle = '' |
| | | |
| | | const content = this.$refs.content |
| | | if (content) { |
| | | if (content.pageMeta) { |
| | | Object.assign(this, content.pageMeta) |
| | | } else { |
| | | this.description = content.description |
| | | this.linkList = content.linkList |
| | | this.extraImage = content.extraImage |
| | | this.search = content.search === true |
| | | this.tabs = content.tabs |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | .content { |
| | | margin: 24px 24px 0; |
| | | .link { |
| | | margin-top: 16px; |
| | | &:not(:empty) { |
| | | margin-bottom: 16px; |
| | | } |
| | | a { |
| | | margin-right: 32px; |
| | | height: 24px; |
| | | line-height: 24px; |
| | | display: inline-block; |
| | | i { |
| | | font-size: 24px; |
| | | margin-right: 8px; |
| | | vertical-align: middle; |
| | | } |
| | | span { |
| | | height: 24px; |
| | | line-height: 24px; |
| | | display: inline-block; |
| | | vertical-align: middle; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .page-menu-search { |
| | | text-align: center; |
| | | margin-bottom: 16px; |
| | | } |
| | | .page-menu-tabs { |
| | | margin-top: 48px; |
| | | } |
| | | |
| | | .extra-img { |
| | | margin-top: -60px; |
| | | text-align: center; |
| | | width: 195px; |
| | | |
| | | img { |
| | | width: 100%; |
| | | } |
| | | } |
| | | |
| | | .mobile { |
| | | .extra-img{ |
| | | margin-top: 0; |
| | | text-align: center; |
| | | width: 96px; |
| | | |
| | | img{ |
| | | width: 100%; |
| | | } |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <script> |
| | | export default { |
| | | name: 'RouteView', |
| | | props: { |
| | | keepAlive: { |
| | | type: Boolean, |
| | | default: true |
| | | } |
| | | }, |
| | | data () { |
| | | return {} |
| | | }, |
| | | render () { |
| | | const { $route: { meta }, $store: { getters } } = this |
| | | const inKeep = ( |
| | | <keep-alive> |
| | | <router-view /> |
| | | </keep-alive> |
| | | ) |
| | | const notKeep = ( |
| | | <router-view /> |
| | | ) |
| | | // è¿éå¢å äº multiTab ç夿ï¼å½å¼å¯äº multiTab æ¶ |
| | | // åºå½å
¨é¨ç»ä»¶çç¼åï¼å¦åä¼å¯¼è´åæ¢é¡µé¢å页é¢è¿åæåå§ç¶æ |
| | | // è¥ç¡®å®ä¸éè¦ï¼å¯æ¹ä¸º return meta.keepAlive ? inKeep : notKeep |
| | | if (!getters.multiTab && !meta.keepAlive) { |
| | | return notKeep |
| | | } |
| | | return this.keepAlive || getters.multiTab || meta.keepAlive ? inKeep : notKeep |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div id="userLayout" :class="['user-layout-wrapper', device]"> |
| | | <div class="container"> |
| | | <div class="login-form-x"> |
| | | <div class="login-form-y"> |
| | | <div class="top"> |
| | | <div class="header"> |
| | | <div class="logo"> |
| | | <img src="~@/assets/logo3.jpg" alt="logo"> |
| | | </div> |
| | | <span class="title">端æ¾å¨ç«åºWMS</span> |
| | | </div> |
| | | </div> |
| | | |
| | | <route-view></route-view> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | <div class="footer"> |
| | | <!-- <div class="links"> |
| | | <a href="_self">帮å©</a> |
| | | <a href="_self">éç§</a> |
| | | <a href="_self">æ¡æ¬¾</a> |
| | | </div> --> |
| | | <div class="copyright"> |
| | | <p>çæææ Copyright©ç½ä¼¯æ³°å
</p> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import RouteView from './RouteView' |
| | | import { mixinDevice } from '@/utils/mixin' |
| | | |
| | | export default { |
| | | name: 'UserLayout', |
| | | components: { RouteView }, |
| | | mixins: [mixinDevice], |
| | | data () { |
| | | return {} |
| | | }, |
| | | mounted () { |
| | | document.body.classList.add('userLayout') |
| | | }, |
| | | beforeDestroy () { |
| | | document.body.classList.remove('userLayout') |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | #userLayout.user-layout-wrapper { |
| | | height: 100%; |
| | | |
| | | &.mobile { |
| | | .container { |
| | | .main { |
| | | max-width: 368px; |
| | | width: 98%; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .container { |
| | | width: 100%; |
| | | min-height: 100%; |
| | | background-color: #ffffff; |
| | | background-image: url("../assets/login_bk.png"); |
| | | background-attachment: fixed; |
| | | background-repeat: no-repeat; |
| | | background-position: top left; |
| | | background-size: 100% 100%; |
| | | padding: 110px 0 144px; |
| | | position: relative; |
| | | display: flex; |
| | | align-items: center; |
| | | .login-form-x{ |
| | | width:100%; |
| | | box-sizing: border-box; |
| | | display: flex; |
| | | padding-right: 12%; |
| | | justify-content: flex-end; |
| | | .login-form-y{ |
| | | display: flex; |
| | | flex-direction: column; |
| | | min-width: 260px; |
| | | width: 396px; |
| | | padding:20px 20px 10px 20px; |
| | | background-color: #fff; |
| | | border-radius: 20px; |
| | | opacity: 0.8; |
| | | } |
| | | } |
| | | |
| | | a { |
| | | text-decoration: none; |
| | | } |
| | | |
| | | .top { |
| | | width: 100%; |
| | | margin-bottom: 20px; |
| | | .header { |
| | | display:flex; |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | |
| | | .logo { |
| | | display:flex; |
| | | justify-content: center; |
| | | height:40px; |
| | | img{ |
| | | height:100%; |
| | | width:auto; |
| | | } |
| | | } |
| | | |
| | | .title { |
| | | font-size: 33px; |
| | | color: rgba(0, 0, 0, .85); |
| | | font-family: Avenir, 'Helvetica Neue', Arial, Helvetica, sans-serif; |
| | | font-weight: 600; |
| | | display:flex; |
| | | justify-content: center; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .main { |
| | | width: 100%; |
| | | } |
| | | |
| | | .footer { |
| | | position: absolute; |
| | | width: 100%; |
| | | bottom: 0; |
| | | padding: 0 16px; |
| | | margin: 48px 0 12px; |
| | | text-align: center; |
| | | color: #F0F8FF; |
| | | |
| | | .links { |
| | | margin-bottom: 8px; |
| | | font-size: 14px; |
| | | a { |
| | | transition: all 0.3s; |
| | | &:not(:last-child) { |
| | | margin-right: 40px; |
| | | } |
| | | } |
| | | } |
| | | .copyright { |
| | | font-size: 14px; |
| | | p{ |
| | | margin-bottom: 0; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import UserLayout from './UserLayout' |
| | | import BlankLayout from './BlankLayout' |
| | | import BasicLayout from './BasicLayout' |
| | | import RouteView from './RouteView' |
| | | import PageView from './PageView' |
| | | import Iframe from './Iframe' |
| | | |
| | | export { UserLayout, BasicLayout, BlankLayout, RouteView, PageView, Iframe } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | // with polyfills |
| | | import 'core-js/stable' |
| | | import 'regenerator-runtime/runtime' |
| | | import Vue from 'vue' |
| | | import App from './App.vue' |
| | | import router from './router' |
| | | import store from './store/' |
| | | import { VueAxios } from './utils/request' |
| | | // WARNING: `mockjs` NOT SUPPORT `IE` PLEASE DO NOT USE IN `production` ENV. |
| | | import './mock' |
| | | |
| | | import bootstrap from './core/bootstrap' |
| | | import './core/lazy_use' |
| | | import './permission' |
| | | import './utils/filter' |
| | | import './components/global.less' |
| | | import socket from './utils/socket' |
| | | import { Dialog } from '@/components' |
| | | import { hasBtnPermission } from './utils/permissions' |
| | | import { sysApplication } from './utils/applocation' |
| | | import 'k-form-design/packages/core/useComponents' |
| | | import KFormDesign from 'k-form-design/packages/use.js' |
| | | import 'k-form-design/lib/k-form-design.css' |
| | | import 'ant-design-vue/dist/antd.less' |
| | | import dataV from '@jiaminghi/data-view' |
| | | import createLoading from './components/Loading' |
| | | |
| | | Vue.use(KFormDesign) |
| | | Vue.use(dataV) |
| | | Vue.use(socket, '/hubs/chatHub') |
| | | |
| | | Vue.use(VueAxios) |
| | | Vue.use(Dialog) |
| | | Vue.prototype.hasPerm = hasBtnPermission |
| | | Vue.prototype.applocation = sysApplication |
| | | Vue.prototype.$loading = createLoading() |
| | | Vue.config.productionTip = false |
| | | |
| | | new Vue({ |
| | | router, |
| | | store, |
| | | created: bootstrap, |
| | | render: h => h(App) |
| | | }).$mount('#app') |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { isIE } from '@/utils/util' |
| | | |
| | | // 夿ç¯å¢ä¸æ¯ prod æè
preview æ¯ true æ¶ï¼å è½½ mock æå¡ |
| | | if (process.env.NODE_ENV !== 'production' || process.env.VUE_APP_PREVIEW === 'true') { |
| | | if (isIE()) { |
| | | console.error('[antd-pro] ERROR: `mockjs` NOT SUPPORT `IE` PLEASE DO NOT USE IN `production` ENV.') |
| | | } |
| | | // 使ç¨åæ¥å è½½ä¾èµ |
| | | // 鲿¢ vuex ä¸ç GetInfo æ©äº mock è¿è¡ï¼å¯¼è´æ æ³ mock 请æ±è¿åç»æ |
| | | const Mock = require('mockjs2') |
| | | require('./services/auth') |
| | | require('./services/user') |
| | | require('./services/manage') |
| | | require('./services/other') |
| | | require('./services/tagCloud') |
| | | require('./services/article') |
| | | |
| | | Mock.setup({ |
| | | timeout: 800 // setter delay time |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import Mock from 'mockjs2' |
| | | import { builder, getQueryParameters } from '../util' |
| | | |
| | | const titles = [ |
| | | 'Alipay', |
| | | 'Angular', |
| | | 'Ant Design', |
| | | 'éæ±½WMS', |
| | | 'Bootstrap', |
| | | 'React', |
| | | 'Vue', |
| | | 'Webpack' |
| | | ] |
| | | |
| | | const avatar = ['https://gw.alipayobjects.com/zos/rmsportal/WdGqmHpayyMjiEhcKoVE.png', |
| | | 'https://gw.alipayobjects.com/zos/rmsportal/zOsKZmFRdUtvpqCImOVY.png', |
| | | 'https://gw.alipayobjects.com/zos/rmsportal/dURIMkkrRFpPgTuzkwnB.png', |
| | | 'https://gw.alipayobjects.com/zos/rmsportal/sfjbOqnsXXJgNCjCzDBL.png', |
| | | 'https://gw.alipayobjects.com/zos/rmsportal/siCrBXXhmvTQGWPNLBow.png' |
| | | ] |
| | | |
| | | const covers = [ |
| | | 'https://gw.alipayobjects.com/zos/rmsportal/uMfMFlvUuceEyPpotzlq.png', |
| | | 'https://gw.alipayobjects.com/zos/rmsportal/iZBVOIhGJiAnhplqjvZW.png', |
| | | 'https://gw.alipayobjects.com/zos/rmsportal/iXjVmWVHbCJAyqvDxdtx.png', |
| | | 'https://gw.alipayobjects.com/zos/rmsportal/gLaIAoVWTtLbBWZNYEMg.png' |
| | | ] |
| | | |
| | | const owner = [ |
| | | 'ä»å°å°', |
| | | 'å´å 好', |
| | | '卿æ', |
| | | 'æä¸ä¸', |
| | | 'æ²ä¸½ä¸½' |
| | | ] |
| | | |
| | | const content = '段è½ç¤ºæï¼èèéæè®¾è®¡å¹³å° ant.designï¼ç¨æå°çå·¥ä½éï¼æ ç¼æ¥å
¥èèéæçæï¼æä¾è·¨è¶è®¾è®¡ä¸å¼åçä½éªè§£å³æ¹æ¡ãèèéæè®¾è®¡å¹³å° ant.designï¼ç¨æå°çå·¥ä½éï¼æ ç¼æ¥å
¥èèéæçæï¼æä¾è·¨è¶è®¾è®¡ä¸å¼åçä½éªè§£å³æ¹æ¡ã' |
| | | const description = 'å¨ä¸å°äº§åçç åè¿ç¨ä¸ï¼ä¼åºç°ä¸åç设计è§èåå®ç°æ¹å¼ï¼ä½å
¶ä¸å¾å¾åå¨å¾å¤ç±»ä¼¼ç页é¢åç»ä»¶ï¼è¿äºç±»ä¼¼çç»ä»¶ä¼è¢«æ½ç¦»æä¸å¥æ åè§èã' |
| | | const href = 'https://ant.design' |
| | | |
| | | const article = (options) => { |
| | | const queryParameters = getQueryParameters(options) |
| | | if (queryParameters && !queryParameters.count) { |
| | | queryParameters.count = 5 |
| | | } |
| | | const data = [] |
| | | for (let i = 0; i < queryParameters.count; i++) { |
| | | const tmpKey = i + 1 |
| | | const num = parseInt(Math.random() * (4 + 1), 10) |
| | | data.push({ |
| | | id: tmpKey, |
| | | avatar: avatar[num], |
| | | owner: owner[num], |
| | | content: content, |
| | | star: Mock.mock('@integer(1, 999)'), |
| | | percent: Mock.mock('@integer(1, 999)'), |
| | | like: Mock.mock('@integer(1, 999)'), |
| | | message: Mock.mock('@integer(1, 999)'), |
| | | description: description, |
| | | href: href, |
| | | title: titles[ i % 8 ], |
| | | updatedAt: Mock.mock('@datetime'), |
| | | members: [ |
| | | { |
| | | avatar: 'https://gw.alipayobjects.com/zos/rmsportal/ZiESqWwCXBRQoaPONSJe.png', |
| | | name: 'æ²ä¸½ä¸½', |
| | | id: 'member1' |
| | | }, |
| | | { |
| | | avatar: 'https://gw.alipayobjects.com/zos/rmsportal/tBOxZPlITHqwlGjsJWaF.png', |
| | | name: 'çæå', |
| | | id: 'member2' |
| | | }, |
| | | { |
| | | avatar: 'https://gw.alipayobjects.com/zos/rmsportal/sBxjgqiuHMGRkIjqlQCd.png', |
| | | name: 'è£å¨å¨', |
| | | id: 'member3' |
| | | } |
| | | ], |
| | | activeUser: Math.ceil(Math.random() * 100000) + 100000, |
| | | newUser: Math.ceil(Math.random() * 1000) + 1000, |
| | | cover: parseInt(i / 4, 10) % 2 === 0 ? covers[i % 4] : covers[3 - (i % 4)] |
| | | }) |
| | | } |
| | | return builder(data) |
| | | } |
| | | |
| | | Mock.mock(/\/list\/article/, 'get', article) |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import Mock from 'mockjs2' |
| | | import { builder, getBody } from '../util' |
| | | |
| | | const username = ['admin', 'super'] |
| | | // å¼ºç¡¬è¦æ± ant.design ç¸åå¯ç |
| | | // '21232f297a57a5a743894a0e4a801fc3', |
| | | const password = ['8914de686ab28dc22f30d3d8e107ff6c'] // admin, ant.design |
| | | |
| | | const login = (options) => { |
| | | const body = getBody(options) |
| | | if (!username.includes(body.username) || !password.includes(body.password)) { |
| | | return builder({ isLogin: true }, 'è´¦æ·æå¯ç é误', 401) |
| | | } |
| | | |
| | | return builder({ |
| | | 'id': Mock.mock('@guid'), |
| | | 'name': Mock.mock('@name'), |
| | | 'username': 'admin', |
| | | 'password': '', |
| | | 'avatar': 'https://gw.alipayobjects.com/zos/rmsportal/jZUIxmJycoymBprLOUbT.png', |
| | | 'status': 1, |
| | | 'telephone': '', |
| | | 'lastLoginIp': '27.154.74.117', |
| | | 'lastLoginTime': 1534837621348, |
| | | 'creatorId': 'admin', |
| | | 'createTime': 1497160610259, |
| | | 'deleted': 0, |
| | | 'roleId': 'admin', |
| | | 'lang': 'zh-CN', |
| | | 'token': '4291d7da9005377ec9aec4a71ea837f' |
| | | }, '', 200, { 'Custom-Header': Mock.mock('@guid') }) |
| | | } |
| | | |
| | | const logout = () => { |
| | | return builder({}, '[æµè¯æ¥å£] 注éæå') |
| | | } |
| | | |
| | | const smsCaptcha = () => { |
| | | return builder({ captcha: Mock.mock('@integer(10000, 99999)') }) |
| | | } |
| | | |
| | | const twofactor = () => { |
| | | return builder({ stepCode: Mock.mock('@integer(0, 1)') }) |
| | | } |
| | | |
| | | Mock.mock(/\/auth\/login/, 'post', login) |
| | | Mock.mock(/\/auth\/logout/, 'post', logout) |
| | | Mock.mock(/\/account\/sms/, 'post', smsCaptcha) |
| | | Mock.mock(/\/auth\/2step-code/, 'post', twofactor) |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import Mock from 'mockjs2' |
| | | import { builder, getQueryParameters } from '../util' |
| | | |
| | | const totalCount = 5701 |
| | | |
| | | const serverList = (options) => { |
| | | const parameters = getQueryParameters(options) |
| | | |
| | | const result = [] |
| | | const pageNo = parseInt(parameters.pageNo) |
| | | const pageSize = parseInt(parameters.pageSize) |
| | | const totalPage = Math.ceil(totalCount / pageSize) |
| | | const key = (pageNo - 1) * pageSize |
| | | const next = (pageNo >= totalPage ? (totalCount % pageSize) : pageSize) + 1 |
| | | |
| | | for (let i = 1; i < next; i++) { |
| | | const tmpKey = key + i |
| | | result.push({ |
| | | key: tmpKey, |
| | | id: tmpKey, |
| | | no: 'No ' + tmpKey, |
| | | description: 'è¿æ¯ä¸æ®µæè¿°', |
| | | callNo: Mock.mock('@integer(1, 999)'), |
| | | status: Mock.mock('@integer(0, 3)'), |
| | | updatedAt: Mock.mock('@datetime'), |
| | | editable: false |
| | | }) |
| | | } |
| | | |
| | | return builder({ |
| | | pageSize: pageSize, |
| | | pageNo: pageNo, |
| | | totalCount: totalCount, |
| | | totalPage: totalPage, |
| | | data: result |
| | | }) |
| | | } |
| | | |
| | | const projects = () => { |
| | | return builder({ |
| | | 'data': [{ |
| | | id: 1, |
| | | cover: 'https://gw.alipayobjects.com/zos/rmsportal/WdGqmHpayyMjiEhcKoVE.png', |
| | | title: 'Alipay', |
| | | description: '飿¯ä¸ç§å
å¨çä¸è¥¿ï¼ ä»ä»¬å°è¾¾ä¸äºï¼ä¹æ æ³è§¦åç', |
| | | status: 1, |
| | | updatedAt: '2018-07-26 00:00:00' |
| | | }, |
| | | { |
| | | id: 2, |
| | | cover: 'https://gw.alipayobjects.com/zos/rmsportal/zOsKZmFRdUtvpqCImOVY.png', |
| | | title: 'Angular', |
| | | description: '叿æ¯ä¸ä¸ªå¥½ä¸è¥¿ï¼ä¹è®¸æ¯æå¥½çï¼å¥½ä¸è¥¿æ¯ä¸ä¼æ¶äº¡ç', |
| | | status: 1, |
| | | updatedAt: '2018-07-26 00:00:00' |
| | | }, |
| | | { |
| | | id: 3, |
| | | cover: 'https://gw.alipayobjects.com/zos/rmsportal/dURIMkkrRFpPgTuzkwnB.png', |
| | | title: 'Ant Design', |
| | | description: 'åé䏿é£ä¹å¤çé
é¦ï¼å¥¹å´ååèµ°è¿äºæçé
é¦', |
| | | status: 1, |
| | | updatedAt: '2018-07-26 00:00:00' |
| | | }, |
| | | { |
| | | id: 4, |
| | | cover: 'https://gw.alipayobjects.com/zos/rmsportal/sfjbOqnsXXJgNCjCzDBL.png', |
| | | title: 'éæ±½WMS', |
| | | description: '飿¶åæåªä¼æ³èªå·±æ³è¦ä»ä¹ï¼ä»ä¸æ³èªå·±æ¥æä»ä¹', |
| | | status: 1, |
| | | updatedAt: '2018-07-26 00:00:00' |
| | | }, |
| | | { |
| | | id: 5, |
| | | cover: 'https://gw.alipayobjects.com/zos/rmsportal/siCrBXXhmvTQGWPNLBow.png', |
| | | title: 'Bootstrap', |
| | | description: 'åå¬å°è³', |
| | | status: 1, |
| | | updatedAt: '2018-07-26 00:00:00' |
| | | }, |
| | | { |
| | | id: 6, |
| | | cover: 'https://gw.alipayobjects.com/zos/rmsportal/ComBAopevLwENQdKWiIn.png', |
| | | title: 'Vue', |
| | | description: 'çå½å°±åä¸çå·§å
åï¼ç»æå¾å¾åºäººææ', |
| | | status: 1, |
| | | updatedAt: '2018-07-26 00:00:00' |
| | | } |
| | | ], |
| | | 'pageSize': 10, |
| | | 'pageNo': 0, |
| | | 'totalPage': 6, |
| | | 'totalCount': 57 |
| | | }) |
| | | } |
| | | |
| | | const activity = () => { |
| | | return builder([{ |
| | | id: 1, |
| | | user: { |
| | | nickname: '@name', |
| | | avatar: 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png' |
| | | }, |
| | | project: { |
| | | name: 'ç½é¹é
±æ²¹å¼åç»', |
| | | action: 'æ´æ°', |
| | | event: 'çªç»è®¡å' |
| | | }, |
| | | time: '2018-08-23 14:47:00' |
| | | }, |
| | | { |
| | | id: 1, |
| | | user: { |
| | | nickname: 'èèé
±', |
| | | avatar: 'https://gw.alipayobjects.com/zos/rmsportal/jZUIxmJycoymBprLOUbT.png' |
| | | }, |
| | | project: { |
| | | name: 'ç½é¹é
±æ²¹å¼åç»', |
| | | action: 'æ´æ°', |
| | | event: 'çªç»è®¡å' |
| | | }, |
| | | time: '2018-08-23 09:35:37' |
| | | }, |
| | | { |
| | | id: 1, |
| | | user: { |
| | | nickname: '@name', |
| | | avatar: '@image(64x64)' |
| | | }, |
| | | project: { |
| | | name: 'ç½é¹é
±æ²¹å¼åç»', |
| | | action: 'å建', |
| | | event: 'çªç»è®¡å' |
| | | }, |
| | | time: '2017-05-27 00:00:00' |
| | | }, |
| | | { |
| | | id: 1, |
| | | user: { |
| | | nickname: 'æ²ä¸½ä¸½', |
| | | avatar: '@image(64x64)' |
| | | }, |
| | | project: { |
| | | name: 'é«é¼æ ¼è®¾è®¡å¤©å¢', |
| | | action: 'æ´æ°', |
| | | event: 'å
æè¿ä»£' |
| | | }, |
| | | time: '2018-08-23 14:47:00' |
| | | }, |
| | | { |
| | | id: 1, |
| | | user: { |
| | | nickname: '@name', |
| | | avatar: '@image(64x64)' |
| | | }, |
| | | project: { |
| | | name: 'é«é¼æ ¼è®¾è®¡å¤©å¢', |
| | | action: 'created', |
| | | event: 'å
æè¿ä»£' |
| | | }, |
| | | time: '2018-08-23 14:47:00' |
| | | }, |
| | | { |
| | | id: 1, |
| | | user: { |
| | | nickname: 'æ²ä¸½ä¸½', |
| | | avatar: 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png' |
| | | }, |
| | | project: { |
| | | name: 'é«é¼æ ¼è®¾è®¡å¤©å¢', |
| | | action: 'created', |
| | | event: 'å
æè¿ä»£' |
| | | }, |
| | | time: '2018-08-23 14:47:00' |
| | | } |
| | | ]) |
| | | } |
| | | |
| | | const teams = () => { |
| | | return builder([{ |
| | | id: 1, |
| | | name: 'ç§å¦æ¬ç ç»', |
| | | avatar: 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png' |
| | | }, |
| | | { |
| | | id: 2, |
| | | name: 'ç¨åºåæ¥å¸¸', |
| | | avatar: 'https://gw.alipayobjects.com/zos/rmsportal/cnrhVkzwxjPwAaCfPbdc.png' |
| | | }, |
| | | { |
| | | id: 1, |
| | | name: '设计天å¢', |
| | | avatar: 'https://gw.alipayobjects.com/zos/rmsportal/gaOngJwsRYRaVAuXXcmB.png' |
| | | }, |
| | | { |
| | | id: 1, |
| | | name: 'ä¸äºå°å¥³å¢', |
| | | avatar: 'https://gw.alipayobjects.com/zos/rmsportal/ubnKSIfAJTxIgXOKlciN.png' |
| | | }, |
| | | { |
| | | id: 1, |
| | | name: 'éªä½ å¦è®¡ç®æº', |
| | | avatar: 'https://gw.alipayobjects.com/zos/rmsportal/WhxKECPNujWoWEFNdnJE.png' |
| | | } |
| | | ]) |
| | | } |
| | | |
| | | const radar = () => { |
| | | return builder([{ |
| | | item: 'å¼ç¨', |
| | | '个人': 70, |
| | | 'å¢é': 30, |
| | | 'é¨é¨': 40 |
| | | }, |
| | | { |
| | | item: 'å£ç¢', |
| | | '个人': 60, |
| | | 'å¢é': 70, |
| | | 'é¨é¨': 40 |
| | | }, |
| | | { |
| | | item: '产é', |
| | | '个人': 50, |
| | | 'å¢é': 60, |
| | | 'é¨é¨': 40 |
| | | }, |
| | | { |
| | | item: 'è´¡ç®', |
| | | '个人': 40, |
| | | 'å¢é': 50, |
| | | 'é¨é¨': 40 |
| | | }, |
| | | { |
| | | item: 'ç度', |
| | | '个人': 60, |
| | | 'å¢é': 70, |
| | | 'é¨é¨': 40 |
| | | }, |
| | | { |
| | | item: 'å¼ç¨', |
| | | '个人': 70, |
| | | 'å¢é': 50, |
| | | 'é¨é¨': 40 |
| | | } |
| | | ]) |
| | | } |
| | | |
| | | Mock.mock(/\/service/, 'get', serverList) |
| | | Mock.mock(/\/list\/search\/projects/, 'get', projects) |
| | | Mock.mock(/\/workplace\/activity/, 'get', activity) |
| | | Mock.mock(/\/workplace\/teams/, 'get', teams) |
| | | Mock.mock(/\/workplace\/radar/, 'get', radar) |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import Mock from 'mockjs2' |
| | | import { builder } from '../util' |
| | | |
| | | const orgTree = () => { |
| | | return builder([{ |
| | | 'key': 'key-01', |
| | | 'title': 'ç åä¸å¿', |
| | | 'icon': 'mail', |
| | | 'children': [{ |
| | | 'key': 'key-01-01', |
| | | 'title': 'å端ç»', |
| | | 'icon': null, |
| | | 'group': true, |
| | | children: [{ |
| | | 'key': 'key-01-01-01', |
| | | 'title': 'JAVA', |
| | | 'icon': null |
| | | }, |
| | | { |
| | | 'key': 'key-01-01-02', |
| | | 'title': 'PHP', |
| | | 'icon': null |
| | | }, |
| | | { |
| | | 'key': 'key-01-01-03', |
| | | 'title': 'Golang', |
| | | 'icon': null |
| | | } |
| | | ] |
| | | }, { |
| | | 'key': 'key-01-02', |
| | | 'title': 'å端ç»', |
| | | 'icon': null, |
| | | 'group': true, |
| | | children: [{ |
| | | 'key': 'key-01-02-01', |
| | | 'title': 'React', |
| | | 'icon': null |
| | | }, |
| | | { |
| | | 'key': 'key-01-02-02', |
| | | 'title': 'Vue', |
| | | 'icon': null |
| | | }, |
| | | { |
| | | 'key': 'key-01-02-03', |
| | | 'title': 'Angular', |
| | | 'icon': null |
| | | } |
| | | ] |
| | | }] |
| | | }, { |
| | | 'key': 'key-02', |
| | | 'title': 'è´¢å¡é¨', |
| | | 'icon': 'dollar', |
| | | 'children': [{ |
| | | 'key': 'key-02-01', |
| | | 'title': 'ä¼è®¡æ ¸ç®', |
| | | 'icon': null |
| | | }, { |
| | | 'key': 'key-02-02', |
| | | 'title': 'ææ¬æ§å¶', |
| | | 'icon': null |
| | | }, { |
| | | 'key': 'key-02-03', |
| | | 'title': 'å
鍿§å¶', |
| | | 'icon': null, |
| | | 'children': [{ |
| | | 'key': 'key-02-03-01', |
| | | 'title': 'è´¢å¡å¶åº¦å»ºè®¾', |
| | | 'icon': null |
| | | }, |
| | | { |
| | | 'key': 'key-02-03-02', |
| | | 'title': 'ä¼è®¡æ ¸ç®', |
| | | 'icon': null |
| | | } |
| | | ] |
| | | }] |
| | | }]) |
| | | } |
| | | |
| | | const role = () => { |
| | | return builder({ |
| | | 'data': [{ |
| | | 'id': 'admin', |
| | | 'name': '管çå', |
| | | 'describe': 'æ¥ææææé', |
| | | 'status': 1, |
| | | 'creatorId': 'system', |
| | | 'createTime': 1497160610259, |
| | | 'deleted': 0, |
| | | 'permissions': [{ |
| | | 'roleId': 'admin', |
| | | 'permissionId': 'comment', |
| | | 'permissionName': 'è¯è®ºç®¡ç', |
| | | 'actions': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"query","defaultCheck":false,"describe":"æ¥è¯¢"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"edit","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"}]', |
| | | 'actionEntitySet': [{ |
| | | 'action': 'add', |
| | | 'describe': 'æ°å¢', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'query', |
| | | 'describe': 'æ¥è¯¢', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'get', |
| | | 'describe': '详æ
', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'edit', |
| | | 'describe': 'ä¿®æ¹', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'delete', |
| | | 'describe': 'å é¤', |
| | | 'defaultCheck': false |
| | | }], |
| | | 'actionList': ['delete', 'edit'], |
| | | 'dataAccess': null |
| | | }, |
| | | { |
| | | 'roleId': 'admin', |
| | | 'permissionId': 'member', |
| | | 'permissionName': 'ä¼å管ç', |
| | | 'actions': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"query","defaultCheck":false,"describe":"æ¥è¯¢"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"edit","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"}]', |
| | | 'actionEntitySet': [{ |
| | | 'action': 'add', |
| | | 'describe': 'æ°å¢', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'query', |
| | | 'describe': 'æ¥è¯¢', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'get', |
| | | 'describe': '详æ
', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'edit', |
| | | 'describe': 'ä¿®æ¹', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'delete', |
| | | 'describe': 'å é¤', |
| | | 'defaultCheck': false |
| | | } |
| | | ], |
| | | 'actionList': ['query', 'get', 'edit', 'delete'], |
| | | 'dataAccess': null |
| | | }, |
| | | { |
| | | 'roleId': 'admin', |
| | | 'permissionId': 'menu', |
| | | 'permissionName': 'èå管ç', |
| | | 'actions': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"import","defaultCheck":false,"describe":"导å
¥"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"edit","defaultCheck":false,"describe":"ä¿®æ¹"}]', |
| | | 'actionEntitySet': [{ |
| | | 'action': 'add', |
| | | 'describe': 'æ°å¢', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'import', |
| | | 'describe': '导å
¥', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'get', |
| | | 'describe': '详æ
', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'edit', |
| | | 'describe': 'ä¿®æ¹', |
| | | 'defaultCheck': false |
| | | } |
| | | ], |
| | | 'actionList': ['add', 'import'], |
| | | 'dataAccess': null |
| | | }, |
| | | { |
| | | 'roleId': 'admin', |
| | | 'permissionId': 'order', |
| | | 'permissionName': '订å管ç', |
| | | 'actions': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"query","defaultCheck":false,"describe":"æ¥è¯¢"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"edit","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"}]', |
| | | 'actionEntitySet': [{ |
| | | 'action': 'add', |
| | | 'describe': 'æ°å¢', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'query', |
| | | 'describe': 'æ¥è¯¢', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'get', |
| | | 'describe': '详æ
', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'edit', |
| | | 'describe': 'ä¿®æ¹', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'delete', |
| | | 'describe': 'å é¤', |
| | | 'defaultCheck': false |
| | | } |
| | | ], |
| | | 'actionList': ['query', 'add', 'get'], |
| | | 'dataAccess': null |
| | | }, |
| | | { |
| | | 'roleId': 'admin', |
| | | 'permissionId': 'permission', |
| | | 'permissionName': 'æé管ç', |
| | | 'actions': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"edit","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"}]', |
| | | 'actionEntitySet': [{ |
| | | 'action': 'add', |
| | | 'describe': 'æ°å¢', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'get', |
| | | 'describe': '详æ
', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'edit', |
| | | 'describe': 'ä¿®æ¹', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'delete', |
| | | 'describe': 'å é¤', |
| | | 'defaultCheck': false |
| | | } |
| | | ], |
| | | 'actionList': ['add', 'get', 'edit', 'delete'], |
| | | 'dataAccess': null |
| | | }, |
| | | { |
| | | 'roleId': 'admin', |
| | | 'permissionId': 'role', |
| | | 'permissionName': 'è§è²ç®¡ç', |
| | | 'actions': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"edit","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"}]', |
| | | 'actionEntitySet': [{ |
| | | 'action': 'add', |
| | | 'describe': 'æ°å¢', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'get', |
| | | 'describe': '详æ
', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'edit', |
| | | 'describe': 'ä¿®æ¹', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'delete', |
| | | 'describe': 'å é¤', |
| | | 'defaultCheck': false |
| | | } |
| | | ], |
| | | 'actionList': null, |
| | | 'dataAccess': null |
| | | }, |
| | | { |
| | | 'roleId': 'admin', |
| | | 'permissionId': 'test', |
| | | 'permissionName': 'æµè¯æé', |
| | | 'actions': '[]', |
| | | 'actionEntitySet': [], |
| | | 'actionList': null, |
| | | 'dataAccess': null |
| | | }, |
| | | { |
| | | 'roleId': 'admin', |
| | | 'permissionId': 'user', |
| | | 'permissionName': 'ç¨æ·ç®¡ç', |
| | | 'actions': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"import","defaultCheck":false,"describe":"导å
¥"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"edit","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"},{"action":"export","defaultCheck":false,"describe":"导åº"}]', |
| | | 'actionEntitySet': [{ |
| | | 'action': 'add', |
| | | 'describe': 'æ°å¢', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'import', |
| | | 'describe': '导å
¥', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'get', |
| | | 'describe': '详æ
', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'edit', |
| | | 'describe': 'ä¿®æ¹', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'delete', |
| | | 'describe': 'å é¤', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'export', |
| | | 'describe': '导åº', |
| | | 'defaultCheck': false |
| | | } |
| | | ], |
| | | 'actionList': ['add', 'get'], |
| | | 'dataAccess': null |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | 'id': 'svip', |
| | | 'name': 'SVIP', |
| | | 'describe': 'è¶
级ä¼å', |
| | | 'status': 1, |
| | | 'creatorId': 'system', |
| | | 'createTime': 1532417744846, |
| | | 'deleted': 0, |
| | | 'permissions': [{ |
| | | 'roleId': 'admin', |
| | | 'permissionId': 'comment', |
| | | 'permissionName': 'è¯è®ºç®¡ç', |
| | | 'actions': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"query","defaultCheck":false,"describe":"æ¥è¯¢"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"edit","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"}]', |
| | | 'actionEntitySet': [{ |
| | | 'action': 'add', |
| | | 'describe': 'æ°å¢', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'query', |
| | | 'describe': 'æ¥è¯¢', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'get', |
| | | 'describe': '详æ
', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'edit', |
| | | 'describe': 'ä¿®æ¹', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'delete', |
| | | 'describe': 'å é¤', |
| | | 'defaultCheck': false |
| | | } |
| | | ], |
| | | 'actionList': ['add', 'get', 'delete'], |
| | | 'dataAccess': null |
| | | }, |
| | | { |
| | | 'roleId': 'admin', |
| | | 'permissionId': 'member', |
| | | 'permissionName': 'ä¼å管ç', |
| | | 'actions': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"query","defaultCheck":false,"describe":"æ¥è¯¢"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"edit","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"}]', |
| | | 'actionEntitySet': [{ |
| | | 'action': 'add', |
| | | 'describe': 'æ°å¢', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'query', |
| | | 'describe': 'æ¥è¯¢', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'get', |
| | | 'describe': '详æ
', |
| | | 'defaultCheck': false |
| | | } |
| | | ], |
| | | 'actionList': ['add', 'query', 'get'], |
| | | 'dataAccess': null |
| | | }, |
| | | { |
| | | 'roleId': 'admin', |
| | | 'permissionId': 'menu', |
| | | 'permissionName': 'èå管ç', |
| | | 'actions': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"import","defaultCheck":false,"describe":"导å
¥"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"edit","defaultCheck":false,"describe":"ä¿®æ¹"}]', |
| | | 'actionEntitySet': [{ |
| | | 'action': 'add', |
| | | 'describe': 'æ°å¢', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'import', |
| | | 'describe': '导å
¥', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'get', |
| | | 'describe': '详æ
', |
| | | 'defaultCheck': false |
| | | } |
| | | ], |
| | | 'actionList': ['add', 'get'], |
| | | 'dataAccess': null |
| | | }, |
| | | { |
| | | 'roleId': 'admin', |
| | | 'permissionId': 'order', |
| | | 'permissionName': '订å管ç', |
| | | 'actions': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"query","defaultCheck":false,"describe":"æ¥è¯¢"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"edit","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"}]', |
| | | 'actionEntitySet': [{ |
| | | 'action': 'add', |
| | | 'describe': 'æ°å¢', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'query', |
| | | 'describe': 'æ¥è¯¢', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'get', |
| | | 'describe': '详æ
', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'edit', |
| | | 'describe': 'ä¿®æ¹', |
| | | 'defaultCheck': false |
| | | } |
| | | ], |
| | | 'actionList': ['add', 'query'], |
| | | 'dataAccess': null |
| | | }, |
| | | { |
| | | 'roleId': 'admin', |
| | | 'permissionId': 'permission', |
| | | 'permissionName': 'æé管ç', |
| | | 'actions': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"edit","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"}]', |
| | | 'actionEntitySet': [{ |
| | | 'action': 'add', |
| | | 'describe': 'æ°å¢', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'get', |
| | | 'describe': '详æ
', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'edit', |
| | | 'describe': 'ä¿®æ¹', |
| | | 'defaultCheck': false |
| | | } |
| | | ], |
| | | 'actionList': ['add', 'get', 'edit'], |
| | | 'dataAccess': null |
| | | }, |
| | | { |
| | | 'roleId': 'admin', |
| | | 'permissionId': 'role', |
| | | 'permissionName': 'è§è²ç®¡ç', |
| | | 'actions': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"edit","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"}]', |
| | | 'actionEntitySet': [{ |
| | | 'action': 'add', |
| | | 'describe': 'æ°å¢', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'edit', |
| | | 'describe': 'ä¿®æ¹', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'delete', |
| | | 'describe': 'å é¤', |
| | | 'defaultCheck': false |
| | | } |
| | | ], |
| | | 'actionList': null, |
| | | 'dataAccess': null |
| | | }, |
| | | { |
| | | 'roleId': 'admin', |
| | | 'permissionId': 'test', |
| | | 'permissionName': 'æµè¯æé', |
| | | 'actions': '[]', |
| | | 'actionEntitySet': [], |
| | | 'actionList': ['add', 'edit'], |
| | | 'dataAccess': null |
| | | }, |
| | | { |
| | | 'roleId': 'admin', |
| | | 'permissionId': 'user', |
| | | 'permissionName': 'ç¨æ·ç®¡ç', |
| | | 'actions': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"import","defaultCheck":false,"describe":"导å
¥"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"edit","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"},{"action":"export","defaultCheck":false,"describe":"导åº"}]', |
| | | 'actionEntitySet': [{ |
| | | 'action': 'add', |
| | | 'describe': 'æ°å¢', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'import', |
| | | 'describe': '导å
¥', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'get', |
| | | 'describe': '详æ
', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'edit', |
| | | 'describe': 'ä¿®æ¹', |
| | | 'defaultCheck': false |
| | | } |
| | | ], |
| | | 'actionList': ['add'], |
| | | 'dataAccess': null |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | 'id': 'user', |
| | | 'name': 'æ®éä¼å', |
| | | 'describe': 'æ®éç¨æ·ï¼åªè½æ¥è¯¢', |
| | | 'status': 1, |
| | | 'creatorId': 'system', |
| | | 'createTime': 1497160610259, |
| | | 'deleted': 0, |
| | | 'permissions': [{ |
| | | 'roleId': 'user', |
| | | 'permissionId': 'comment', |
| | | 'permissionName': 'è¯è®ºç®¡ç', |
| | | 'actions': '[{"action":"query","defaultCheck":false,"describe":"æ¥è¯¢"},{"action":"get","defaultCheck":false,"describe":"详æ
"}]', |
| | | 'actionEntitySet': [{ |
| | | 'action': 'query', |
| | | 'describe': 'æ¥è¯¢', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'get', |
| | | 'describe': '详æ
', |
| | | 'defaultCheck': false |
| | | } |
| | | ], |
| | | 'actionList': ['query'], |
| | | 'dataAccess': null |
| | | }, |
| | | |
| | | { |
| | | 'roleId': 'user', |
| | | 'permissionId': 'marketing', |
| | | 'permissionName': 'è¥é管ç', |
| | | 'actions': '[]', |
| | | 'actionEntitySet': [], |
| | | 'actionList': null, |
| | | 'dataAccess': null |
| | | }, |
| | | { |
| | | 'roleId': 'user', |
| | | 'permissionId': 'member', |
| | | 'permissionName': 'ä¼å管ç', |
| | | 'actions': '[{"action":"query","defaultCheck":false,"describe":"æ¥è¯¢"},{"action":"get","defaultCheck":false,"describe":"详æ
"}]', |
| | | 'actionEntitySet': [{ |
| | | 'action': 'query', |
| | | 'describe': 'æ¥è¯¢', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'get', |
| | | 'describe': '详æ
', |
| | | 'defaultCheck': false |
| | | } |
| | | ], |
| | | 'actionList': null, |
| | | 'dataAccess': null |
| | | }, |
| | | { |
| | | 'roleId': 'user', |
| | | 'permissionId': 'menu', |
| | | 'permissionName': 'èå管ç', |
| | | 'actions': '[]', |
| | | 'actionEntitySet': [], |
| | | 'actionList': null, |
| | | 'dataAccess': null |
| | | }, |
| | | |
| | | { |
| | | 'roleId': 'user', |
| | | 'permissionId': 'order', |
| | | 'permissionName': '订å管ç', |
| | | 'actions': '[{"action":"query","defaultCheck":false,"describe":"æ¥è¯¢"},{"action":"get","defaultCheck":false,"describe":"详æ
"}]', |
| | | 'actionEntitySet': [{ |
| | | 'action': 'query', |
| | | 'describe': 'æ¥è¯¢', |
| | | 'defaultCheck': false |
| | | }, |
| | | { |
| | | 'action': 'get', |
| | | 'describe': '详æ
', |
| | | 'defaultCheck': false |
| | | } |
| | | ], |
| | | 'actionList': null, |
| | | 'dataAccess': null |
| | | }, |
| | | { |
| | | 'roleId': 'user', |
| | | 'permissionId': 'permission', |
| | | 'permissionName': 'æé管ç', |
| | | 'actions': '[]', |
| | | 'actionEntitySet': [], |
| | | 'actionList': null, |
| | | 'dataAccess': null |
| | | }, |
| | | { |
| | | 'roleId': 'user', |
| | | 'permissionId': 'role', |
| | | 'permissionName': 'è§è²ç®¡ç', |
| | | 'actions': '[]', |
| | | 'actionEntitySet': [], |
| | | 'actionList': null, |
| | | 'dataAccess': null |
| | | }, |
| | | |
| | | { |
| | | 'roleId': 'user', |
| | | 'permissionId': 'test', |
| | | 'permissionName': 'æµè¯æé', |
| | | 'actions': '[]', |
| | | 'actionEntitySet': [], |
| | | 'actionList': null, |
| | | 'dataAccess': null |
| | | }, |
| | | { |
| | | 'roleId': 'user', |
| | | 'permissionId': 'user', |
| | | 'permissionName': 'ç¨æ·ç®¡ç', |
| | | 'actions': '[]', |
| | | 'actionEntitySet': [], |
| | | 'actionList': null, |
| | | 'dataAccess': null |
| | | } |
| | | ] |
| | | } |
| | | ], |
| | | 'pageSize': 10, |
| | | 'pageNo': 0, |
| | | 'totalPage': 1, |
| | | 'totalCount': 5 |
| | | }) |
| | | } |
| | | |
| | | const permissionNoPager = () => { |
| | | return builder([{ |
| | | 'id': 'marketing', |
| | | 'name': 'è¥é管ç', |
| | | 'describe': null, |
| | | 'status': 1, |
| | | 'actionData': '[{"action":"query","defaultCheck":false,"describe":"æ¥è¯¢"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"edit","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"}]', |
| | | 'sptDaTypes': null, |
| | | 'optionalFields': null, |
| | | 'parents': null, |
| | | 'type': null, |
| | | 'deleted': 0, |
| | | 'actions': [ |
| | | 'add', |
| | | 'query', |
| | | 'get', |
| | | 'edit', |
| | | 'delete' |
| | | ] |
| | | }, |
| | | { |
| | | 'id': 'member', |
| | | 'name': 'ä¼å管ç', |
| | | 'describe': null, |
| | | 'status': 1, |
| | | 'actionData': '[{"action":"query","defaultCheck":false,"describe":"æ¥è¯¢"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"edit","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"}]', |
| | | 'sptDaTypes': null, |
| | | 'optionalFields': '[]', |
| | | 'parents': null, |
| | | 'type': 'default', |
| | | 'deleted': 0, |
| | | 'actions': [ |
| | | 'add', |
| | | 'query', |
| | | 'get', |
| | | 'edit', |
| | | 'delete' |
| | | ] |
| | | }, |
| | | { |
| | | 'id': 'menu', |
| | | 'name': 'èå管ç', |
| | | 'describe': null, |
| | | 'status': 1, |
| | | 'actionData': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"import","defaultCheck":false,"describe":"导å
¥"},{"action":"get","defaultCheck":false,"describe":"æ¥è¯¢"},{"action":"edit","defaultCheck":false,"describe":"ä¿®æ¹"}]', |
| | | 'sptDaTypes': null, |
| | | 'optionalFields': '[]', |
| | | 'parents': null, |
| | | 'type': 'default', |
| | | 'deleted': 0, |
| | | 'actions': [ |
| | | 'add', |
| | | 'import', |
| | | 'get', |
| | | 'edit' |
| | | ] |
| | | }, |
| | | { |
| | | 'id': 'order', |
| | | 'name': '订å管ç', |
| | | 'describe': null, |
| | | 'status': 1, |
| | | 'actionData': '[{"action":"query","defaultCheck":false,"describe":"æ¥è¯¢"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"edit","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"}]', |
| | | 'sptDaTypes': null, |
| | | 'optionalFields': '[]', |
| | | 'parents': null, |
| | | 'type': 'default', |
| | | 'deleted': 0, |
| | | 'actions': [ |
| | | 'add', |
| | | 'query', |
| | | 'get', |
| | | 'edit', |
| | | 'delete' |
| | | ] |
| | | }, |
| | | { |
| | | 'id': 'permission', |
| | | 'name': 'æé管ç', |
| | | 'describe': null, |
| | | 'status': 1, |
| | | 'actionData': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"get","defaultCheck":false,"describe":"æ¥è¯¢"},{"action":"edit","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"}]', |
| | | 'sptDaTypes': null, |
| | | 'optionalFields': '[]', |
| | | 'parents': null, |
| | | 'type': 'default', |
| | | 'deleted': 0, |
| | | 'actions': [ |
| | | 'add', |
| | | 'get', |
| | | 'edit', |
| | | 'delete' |
| | | ] |
| | | }, |
| | | { |
| | | 'id': 'role', |
| | | 'name': 'è§è²ç®¡ç', |
| | | 'describe': null, |
| | | 'status': 1, |
| | | 'actionData': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"get","defaultCheck":false,"describe":"æ¥è¯¢"},{"action":"edit","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"}]', |
| | | 'sptDaTypes': null, |
| | | 'optionalFields': '[]', |
| | | 'parents': null, |
| | | 'type': 'default', |
| | | 'deleted': 0, |
| | | 'actions': [ |
| | | 'add', |
| | | 'get', |
| | | 'edit', |
| | | 'delete' |
| | | ] |
| | | }, |
| | | { |
| | | 'id': 'test', |
| | | 'name': 'æµè¯æé', |
| | | 'describe': null, |
| | | 'status': 1, |
| | | 'actionData': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"get","defaultCheck":false,"describe":"详æ
"}]', |
| | | 'sptDaTypes': null, |
| | | 'optionalFields': '[]', |
| | | 'parents': null, |
| | | 'type': 'default', |
| | | 'deleted': 0, |
| | | 'actions': [ |
| | | 'add', |
| | | 'get' |
| | | ] |
| | | }, |
| | | { |
| | | 'id': 'user', |
| | | 'name': 'ç¨æ·ç®¡ç', |
| | | 'describe': null, |
| | | 'status': 1, |
| | | 'actionData': '[{"action":"query","defaultCheck":false,"describe":"æ¥è¯¢"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"edit","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"},{"action":"import","defaultCheck":false,"describe":"导å
¥"},{"action":"export","defaultCheck":false,"describe":"导åº"}]', |
| | | 'sptDaTypes': null, |
| | | 'optionalFields': '[]', |
| | | 'parents': null, |
| | | 'type': 'default', |
| | | 'deleted': 0, |
| | | 'actions': [ |
| | | 'add', |
| | | 'get' |
| | | ] |
| | | } |
| | | ]) |
| | | } |
| | | |
| | | const permissions = () => { |
| | | return builder({ |
| | | 'data': [{ |
| | | 'id': 'marketing', |
| | | 'name': 'è¥é管ç', |
| | | 'describe': null, |
| | | 'status': 1, |
| | | 'actionData': '[{"action":"query","defaultCheck":false,"describe":"æ¥è¯¢"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"edit","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"}]', |
| | | 'sptDaTypes': null, |
| | | 'optionalFields': null, |
| | | 'parents': null, |
| | | 'type': null, |
| | | 'deleted': 0, |
| | | 'actions': [ |
| | | 'add', |
| | | 'query', |
| | | 'get', |
| | | 'edit', |
| | | 'delete' |
| | | ] |
| | | }, |
| | | { |
| | | 'id': 'member', |
| | | 'name': 'ä¼å管ç', |
| | | 'describe': null, |
| | | 'status': 1, |
| | | 'actionData': '[{"action":"query","defaultCheck":false,"describe":"æ¥è¯¢"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"edit","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"}]', |
| | | 'sptDaTypes': null, |
| | | 'optionalFields': '[]', |
| | | 'parents': null, |
| | | 'type': 'default', |
| | | 'deleted': 0, |
| | | 'actions': [ |
| | | 'add', |
| | | 'query', |
| | | 'get', |
| | | 'edit', |
| | | 'delete' |
| | | ] |
| | | }, |
| | | { |
| | | 'id': 'menu', |
| | | 'name': 'èå管ç', |
| | | 'describe': null, |
| | | 'status': 1, |
| | | 'actionData': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"import","defaultCheck":false,"describe":"导å
¥"},{"action":"get","defaultCheck":false,"describe":"æ¥è¯¢"},{"action":"edit","defaultCheck":false,"describe":"ä¿®æ¹"}]', |
| | | 'sptDaTypes': null, |
| | | 'optionalFields': '[]', |
| | | 'parents': null, |
| | | 'type': 'default', |
| | | 'deleted': 0, |
| | | 'actions': [ |
| | | 'add', |
| | | 'import', |
| | | 'get', |
| | | 'edit' |
| | | ] |
| | | }, |
| | | { |
| | | 'id': 'order', |
| | | 'name': '订å管ç', |
| | | 'describe': null, |
| | | 'status': 1, |
| | | 'actionData': '[{"action":"query","defaultCheck":false,"describe":"æ¥è¯¢"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"edit","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"}]', |
| | | 'sptDaTypes': null, |
| | | 'optionalFields': '[]', |
| | | 'parents': null, |
| | | 'type': 'default', |
| | | 'deleted': 0, |
| | | 'actions': [ |
| | | 'add', |
| | | 'query', |
| | | 'get', |
| | | 'edit', |
| | | 'delete' |
| | | ] |
| | | }, |
| | | { |
| | | 'id': 'permission', |
| | | 'name': 'æé管ç', |
| | | 'describe': null, |
| | | 'status': 1, |
| | | 'actionData': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"get","defaultCheck":false,"describe":"æ¥è¯¢"},{"action":"edit","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"}]', |
| | | 'sptDaTypes': null, |
| | | 'optionalFields': '[]', |
| | | 'parents': null, |
| | | 'type': 'default', |
| | | 'deleted': 0, |
| | | 'actions': [ |
| | | 'add', |
| | | 'get', |
| | | 'edit', |
| | | 'delete' |
| | | ] |
| | | }, |
| | | { |
| | | 'id': 'role', |
| | | 'name': 'è§è²ç®¡ç', |
| | | 'describe': null, |
| | | 'status': 1, |
| | | 'actionData': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"get","defaultCheck":false,"describe":"æ¥è¯¢"},{"action":"edit","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"}]', |
| | | 'sptDaTypes': null, |
| | | 'optionalFields': '[]', |
| | | 'parents': null, |
| | | 'type': 'default', |
| | | 'deleted': 0, |
| | | 'actions': [ |
| | | 'add', |
| | | 'get', |
| | | 'edit', |
| | | 'delete' |
| | | ] |
| | | }, |
| | | { |
| | | 'id': 'test', |
| | | 'name': 'æµè¯æé', |
| | | 'describe': null, |
| | | 'status': 1, |
| | | 'actionData': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"get","defaultCheck":false,"describe":"详æ
"}]', |
| | | 'sptDaTypes': null, |
| | | 'optionalFields': '[]', |
| | | 'parents': null, |
| | | 'type': 'default', |
| | | 'deleted': 0, |
| | | 'actions': [ |
| | | 'add', |
| | | 'get' |
| | | ] |
| | | }, |
| | | { |
| | | 'id': 'user', |
| | | 'name': 'ç¨æ·ç®¡ç', |
| | | 'describe': null, |
| | | 'status': 1, |
| | | 'actionData': '[{"action":"add","describe":"æ°å¢","defaultCheck":false},{"action":"get","describe":"æ¥è¯¢","defaultCheck":false}]', |
| | | 'sptDaTypes': null, |
| | | 'optionalFields': '[]', |
| | | 'parents': null, |
| | | 'type': 'default', |
| | | 'deleted': 0, |
| | | 'actions': [ |
| | | 'add', |
| | | 'get' |
| | | ] |
| | | } |
| | | ], |
| | | 'pageSize': 10, |
| | | 'pageNo': 0, |
| | | 'totalPage': 1, |
| | | 'totalCount': 5 |
| | | }) |
| | | } |
| | | |
| | | Mock.mock(/\/org\/tree/, 'get', orgTree) |
| | | Mock.mock(/\/role/, 'get', role) |
| | | Mock.mock(/\/permission\/no-pager/, 'get', permissionNoPager) |
| | | Mock.mock(/\/permission/, 'get', permissions) |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import Mock from 'mockjs2' |
| | | import { builder } from '../util' |
| | | |
| | | // |
| | | const tagCloudData = () => { |
| | | return builder([{ 'value': 9, 'name': 'AntV' }, { 'value': 8, 'name': 'F2' }, { 'value': 8, 'name': 'G2' }, { 'value': 8, 'name': 'G6' }, { 'value': 8, 'name': 'DataSet' }, { 'value': 8, 'name': '墨è
å¦é¢' }, { 'value': 6, 'name': 'Analysis' }, { 'value': 6, 'name': 'Data Mining' }, { 'value': 6, 'name': 'Data Vis' }, { 'value': 6, 'name': 'Design' }, { 'value': 6, 'name': 'Grammar' }, { 'value': 6, 'name': 'Graphics' }, { 'value': 6, 'name': 'Graph' }, { 'value': 6, 'name': 'Hierarchy' }, { 'value': 6, 'name': 'Labeling' }, { 'value': 6, 'name': 'Layout' }, { 'value': 6, 'name': 'Quantitative' }, { 'value': 6, 'name': 'Relation' }, { 'value': 6, 'name': 'Statistics' }, { 'value': 6, 'name': 'å¯è§å' }, { 'value': 6, 'name': 'æ°æ®' }, { 'value': 6, 'name': 'æ°æ®å¯è§å' }, { 'value': 4, 'name': 'Arc Diagram' }, { 'value': 4, 'name': 'Bar Chart' }, { 'value': 4, 'name': 'Canvas' }, { 'value': 4, 'name': 'Chart' }, { 'value': 4, 'name': 'DAG' }, { 'value': 4, 'name': 'DG' }, { 'value': 4, 'name': 'Facet' }, { 'value': 4, 'name': 'Geo' }, { 'value': 4, 'name': 'Line' }, { 'value': 4, 'name': 'MindMap' }, { 'value': 4, 'name': 'Pie' }, { 'value': 4, 'name': 'Pizza Chart' }, { 'value': 4, 'name': 'Punch Card' }, { 'value': 4, 'name': 'SVG' }, { 'value': 4, 'name': 'Sunburst' }, { 'value': 4, 'name': 'Tree' }, { 'value': 4, 'name': 'UML' }, { 'value': 3, 'name': 'Chart' }, { 'value': 3, 'name': 'View' }, { 'value': 3, 'name': 'Geom' }, { 'value': 3, 'name': 'Shape' }, { 'value': 3, 'name': 'Scale' }, { 'value': 3, 'name': 'Animate' }, { 'value': 3, 'name': 'Global' }, { 'value': 3, 'name': 'Slider' }, { 'value': 3, 'name': 'Connector' }, { 'value': 3, 'name': 'Transform' }, { 'value': 3, 'name': 'Util' }, { 'value': 3, 'name': 'DomUtil' }, { 'value': 3, 'name': 'MatrixUtil' }, { 'value': 3, 'name': 'PathUtil' }, { 'value': 3, 'name': 'G' }, { 'value': 3, 'name': '2D' }, { 'value': 3, 'name': '3D' }, { 'value': 3, 'name': 'Line' }, { 'value': 3, 'name': 'Area' }, { 'value': 3, 'name': 'Interval' }, { 'value': 3, 'name': 'Schema' }, { 'value': 3, 'name': 'Edge' }, { 'value': 3, 'name': 'Polygon' }, { 'value': 3, 'name': 'Heatmap' }, { 'value': 3, 'name': 'Render' }, { 'value': 3, 'name': 'Tooltip' }, { 'value': 3, 'name': 'Axis' }, { 'value': 3, 'name': 'Guide' }, { 'value': 3, 'name': 'Coord' }, { 'value': 3, 'name': 'Legend' }, { 'value': 3, 'name': 'Path' }, { 'value': 3, 'name': 'Helix' }, { 'value': 3, 'name': 'Theta' }, { 'value': 3, 'name': 'Rect' }, { 'value': 3, 'name': 'Polar' }, { 'value': 3, 'name': 'Dsv' }, { 'value': 3, 'name': 'Csv' }, { 'value': 3, 'name': 'Tsv' }, { 'value': 3, 'name': 'GeoJSON' }, { 'value': 3, 'name': 'TopoJSON' }, { 'value': 3, 'name': 'Filter' }, { 'value': 3, 'name': 'Map' }, { 'value': 3, 'name': 'Pick' }, { 'value': 3, 'name': 'Rename' }, { 'value': 3, 'name': 'Filter' }, { 'value': 3, 'name': 'Map' }, { 'value': 3, 'name': 'Pick' }, { 'value': 3, 'name': 'Rename' }, { 'value': 3, 'name': 'Reverse' }, { 'value': 3, 'name': 'sort' }, { 'value': 3, 'name': 'Subset' }, { 'value': 3, 'name': 'Partition' }, { 'value': 3, 'name': 'Imputation' }, { 'value': 3, 'name': 'Fold' }, { 'value': 3, 'name': 'Aggregate' }, { 'value': 3, 'name': 'Proportion' }, { 'value': 3, 'name': 'Histogram' }, { 'value': 3, 'name': 'Quantile' }, { 'value': 3, 'name': 'Treemap' }, { 'value': 3, 'name': 'Hexagon' }, { 'value': 3, 'name': 'Binning' }, { 'value': 3, 'name': 'kernel' }, { 'value': 3, 'name': 'Regression' }, { 'value': 3, 'name': 'Density' }, { 'value': 3, 'name': 'Sankey' }, { 'value': 3, 'name': 'Voronoi' }, { 'value': 3, 'name': 'Projection' }, { 'value': 3, 'name': 'Centroid' }, { 'value': 3, 'name': 'H5' }, { 'value': 3, 'name': 'Mobile' }, { 'value': 3, 'name': 'K线å¾' }, { 'value': 3, 'name': 'å
³ç³»å¾' }, { 'value': 3, 'name': 'çå½¢å¾' }, { 'value': 3, 'name': 'è¡ç¥¨å¾' }, { 'value': 3, 'name': 'ç´æ¹å¾' }, { 'value': 3, 'name': 'éåå¡å¾' }, { 'value': 3, 'name': 'åé¢' }, { 'value': 3, 'name': 'å䏿 ¼å°ç«ç°å¾' }, { 'value': 3, 'name': '饼å¾' }, { 'value': 3, 'name': '线å¾' }, { 'value': 3, 'name': 'ç¹å¾' }, { 'value': 3, 'name': 'æ£ç¹å¾' }, { 'value': 3, 'name': 'åå¼¹å¾' }, { 'value': 3, 'name': 'æ±ç¶å¾' }, { 'value': 3, 'name': '仪表ç' }, { 'value': 3, 'name': 'æ°æ³¡å¾' }, { 'value': 3, 'name': 'æ¼æå¾' }, { 'value': 3, 'name': 'çåå¾' }, { 'value': 3, 'name': 'çç¦å¾' }, { 'value': 3, 'name': 'ç´æ¹å¾' }, { 'value': 3, 'name': 'ç©å½¢æ å¾' }, { 'value': 3, 'name': '箱形å¾' }, { 'value': 3, 'name': 'è²åå¾' }, { 'value': 3, 'name': 'èºæå¾' }, { 'value': 3, 'name': 'è¯äº' }, { 'value': 3, 'name': 'è¯äºå¾' }, { 'value': 3, 'name': 'é·è¾¾å¾' }, { 'value': 3, 'name': 'é¢ç§¯å¾' }, { 'value': 3, 'name': '马èµå
å¾' }, { 'value': 3, 'name': 'çé¡»å¾' }, { 'value': 3, 'name': 'åæ è½´' }, { 'value': 3, 'name': '' }, { 'value': 3, 'name': 'Jacques Bertin' }, { 'value': 3, 'name': 'Leland Wilkinson' }, { 'value': 3, 'name': 'William Playfair' }, { 'value': 3, 'name': 'å
³è' }, { 'value': 3, 'name': 'åå¸' }, { 'value': 3, 'name': 'åºé´' }, { 'value': 3, 'name': 'å æ¯' }, { 'value': 3, 'name': 'å°å¾' }, { 'value': 3, 'name': 'æ¶é´' }, { 'value': 3, 'name': 'æ¯è¾' }, { 'value': 3, 'name': 'æµç¨' }, { 'value': 3, 'name': 'è¶å¿' }, { 'value': 2, 'name': '亦å¶' }, { 'value': 2, 'name': 'åé£' }, { 'value': 2, 'name': 'å®ç½' }, { 'value': 2, 'name': 'å·´æ' }, { 'value': 2, 'name': 'å¼ åå°' }, { 'value': 2, 'name': '御æ¯' }, { 'value': 2, 'name': 'æç°' }, { 'value': 2, 'name': 'æ²é±¼' }, { 'value': 2, 'name': 'ç伯' }, { 'value': 2, 'name': 'ç»åº·' }, { 'value': 2, 'name': '祯é¸' }, { 'value': 2, 'name': 'ç»äº' }, { 'value': 2, 'name': 'ç½å®ª' }, { 'value': 2, 'name': 'è§åº' }, { 'value': 2, 'name': 'è£çç' }, { 'value': 2, 'name': 'éæ²' }, { 'value': 2, 'name': '顾å¾' }, { 'value': 2, 'name': 'Domo' }, { 'value': 2, 'name': 'GPL' }, { 'value': 2, 'name': 'PAI' }, { 'value': 2, 'name': 'SPSS' }, { 'value': 2, 'name': 'SYSTAT' }, { 'value': 2, 'name': 'Tableau' }, { 'value': 2, 'name': 'D3' }, { 'value': 2, 'name': 'Vega' }, { 'value': 2, 'name': 'ç»è®¡å¾è¡¨' }]) |
| | | } |
| | | |
| | | Mock.mock(/\/data\/antv\/tag-cloud/, 'get', tagCloudData) |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import Mock from 'mockjs2' |
| | | import { builder } from '../util' |
| | | |
| | | const info = (options) => { |
| | | const userInfo = { |
| | | 'id': '4291d7da9005377ec9aec4a71ea837f', |
| | | 'name': '天éè¿å', |
| | | 'username': 'admin', |
| | | 'password': '', |
| | | 'avatar': '/avatar2.jpg', |
| | | 'status': 1, |
| | | 'telephone': '', |
| | | 'lastLoginIp': '27.154.74.117', |
| | | 'lastLoginTime': 1534837621348, |
| | | 'creatorId': 'admin', |
| | | 'createTime': 1497160610259, |
| | | 'merchantCode': 'TLif2btpzg079h15bk', |
| | | 'deleted': 0, |
| | | 'roleId': 'admin', |
| | | 'role': {} |
| | | } |
| | | // role |
| | | const roleObj = { |
| | | 'id': 'admin', |
| | | 'name': '管çå', |
| | | 'describe': 'æ¥ææææé', |
| | | 'status': 1, |
| | | 'creatorId': 'system', |
| | | 'createTime': 1497160610259, |
| | | 'deleted': 0, |
| | | 'permissions': [{ |
| | | 'roleId': 'admin', |
| | | 'permissionId': 'dashboard', |
| | | 'permissionName': '仪表ç', |
| | | 'actions': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"query","defaultCheck":false,"describe":"æ¥è¯¢"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"update","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"}]', |
| | | 'actionEntitySet': [{ |
| | | 'action': 'add', |
| | | 'describe': 'æ°å¢', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'query', |
| | | 'describe': 'æ¥è¯¢', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'get', |
| | | 'describe': '详æ
', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'update', |
| | | 'describe': 'ä¿®æ¹', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'delete', |
| | | 'describe': 'å é¤', |
| | | 'defaultCheck': false |
| | | }], |
| | | 'actionList': null, |
| | | 'dataAccess': null |
| | | }, { |
| | | 'roleId': 'admin', |
| | | 'permissionId': 'exception', |
| | | 'permissionName': 'å¼å¸¸é¡µé¢æé', |
| | | 'actions': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"query","defaultCheck":false,"describe":"æ¥è¯¢"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"update","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"}]', |
| | | 'actionEntitySet': [{ |
| | | 'action': 'add', |
| | | 'describe': 'æ°å¢', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'query', |
| | | 'describe': 'æ¥è¯¢', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'get', |
| | | 'describe': '详æ
', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'update', |
| | | 'describe': 'ä¿®æ¹', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'delete', |
| | | 'describe': 'å é¤', |
| | | 'defaultCheck': false |
| | | }], |
| | | 'actionList': null, |
| | | 'dataAccess': null |
| | | }, { |
| | | 'roleId': 'admin', |
| | | 'permissionId': 'result', |
| | | 'permissionName': 'ç»ææé', |
| | | 'actions': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"query","defaultCheck":false,"describe":"æ¥è¯¢"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"update","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"}]', |
| | | 'actionEntitySet': [{ |
| | | 'action': 'add', |
| | | 'describe': 'æ°å¢', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'query', |
| | | 'describe': 'æ¥è¯¢', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'get', |
| | | 'describe': '详æ
', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'update', |
| | | 'describe': 'ä¿®æ¹', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'delete', |
| | | 'describe': 'å é¤', |
| | | 'defaultCheck': false |
| | | }], |
| | | 'actionList': null, |
| | | 'dataAccess': null |
| | | }, { |
| | | 'roleId': 'admin', |
| | | 'permissionId': 'profile', |
| | | 'permissionName': '详ç»é¡µæé', |
| | | 'actions': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"query","defaultCheck":false,"describe":"æ¥è¯¢"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"update","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"}]', |
| | | 'actionEntitySet': [{ |
| | | 'action': 'add', |
| | | 'describe': 'æ°å¢', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'query', |
| | | 'describe': 'æ¥è¯¢', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'get', |
| | | 'describe': '详æ
', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'update', |
| | | 'describe': 'ä¿®æ¹', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'delete', |
| | | 'describe': 'å é¤', |
| | | 'defaultCheck': false |
| | | }], |
| | | 'actionList': null, |
| | | 'dataAccess': null |
| | | }, { |
| | | 'roleId': 'admin', |
| | | 'permissionId': 'table', |
| | | 'permissionName': 'è¡¨æ ¼æé', |
| | | 'actions': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"import","defaultCheck":false,"describe":"导å
¥"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"update","defaultCheck":false,"describe":"ä¿®æ¹"}]', |
| | | 'actionEntitySet': [{ |
| | | 'action': 'add', |
| | | 'describe': 'æ°å¢', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'import', |
| | | 'describe': '导å
¥', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'get', |
| | | 'describe': '详æ
', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'update', |
| | | 'describe': 'ä¿®æ¹', |
| | | 'defaultCheck': false |
| | | }], |
| | | 'actionList': null, |
| | | 'dataAccess': null |
| | | }, { |
| | | 'roleId': 'admin', |
| | | 'permissionId': 'form.vue', |
| | | 'permissionName': '表åæé', |
| | | 'actions': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"query","defaultCheck":false,"describe":"æ¥è¯¢"},{"action":"update","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"}]', |
| | | 'actionEntitySet': [{ |
| | | 'action': 'add', |
| | | 'describe': 'æ°å¢', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'get', |
| | | 'describe': '详æ
', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'query', |
| | | 'describe': 'æ¥è¯¢', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'update', |
| | | 'describe': 'ä¿®æ¹', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'delete', |
| | | 'describe': 'å é¤', |
| | | 'defaultCheck': false |
| | | }], |
| | | 'actionList': null, |
| | | 'dataAccess': null |
| | | }, { |
| | | 'roleId': 'admin', |
| | | 'permissionId': 'order', |
| | | 'permissionName': '订å管ç', |
| | | 'actions': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"query","defaultCheck":false,"describe":"æ¥è¯¢"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"update","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"}]', |
| | | 'actionEntitySet': [{ |
| | | 'action': 'add', |
| | | 'describe': 'æ°å¢', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'query', |
| | | 'describe': 'æ¥è¯¢', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'get', |
| | | 'describe': '详æ
', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'update', |
| | | 'describe': 'ä¿®æ¹', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'delete', |
| | | 'describe': 'å é¤', |
| | | 'defaultCheck': false |
| | | }], |
| | | 'actionList': null, |
| | | 'dataAccess': null |
| | | }, { |
| | | 'roleId': 'admin', |
| | | 'permissionId': 'permission', |
| | | 'permissionName': 'æé管ç', |
| | | 'actions': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"update","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"}]', |
| | | 'actionEntitySet': [{ |
| | | 'action': 'add', |
| | | 'describe': 'æ°å¢', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'get', |
| | | 'describe': '详æ
', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'update', |
| | | 'describe': 'ä¿®æ¹', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'delete', |
| | | 'describe': 'å é¤', |
| | | 'defaultCheck': false |
| | | }], |
| | | 'actionList': null, |
| | | 'dataAccess': null |
| | | }, { |
| | | 'roleId': 'admin', |
| | | 'permissionId': 'role', |
| | | 'permissionName': 'è§è²ç®¡ç', |
| | | 'actions': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"update","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"}]', |
| | | 'actionEntitySet': [{ |
| | | 'action': 'add', |
| | | 'describe': 'æ°å¢', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'get', |
| | | 'describe': '详æ
', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'update', |
| | | 'describe': 'ä¿®æ¹', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'delete', |
| | | 'describe': 'å é¤', |
| | | 'defaultCheck': false |
| | | }], |
| | | 'actionList': null, |
| | | 'dataAccess': null |
| | | }, { |
| | | 'roleId': 'admin', |
| | | 'permissionId': 'table', |
| | | 'permissionName': 'æ¡å管ç', |
| | | 'actions': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"query","defaultCheck":false,"describe":"æ¥è¯¢"},{"action":"update","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"}]', |
| | | 'actionEntitySet': [{ |
| | | 'action': 'add', |
| | | 'describe': 'æ°å¢', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'get', |
| | | 'describe': '详æ
', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'query', |
| | | 'describe': 'æ¥è¯¢', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'update', |
| | | 'describe': 'ä¿®æ¹', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'delete', |
| | | 'describe': 'å é¤', |
| | | 'defaultCheck': false |
| | | }], |
| | | 'actionList': null, |
| | | 'dataAccess': null |
| | | }, { |
| | | 'roleId': 'admin', |
| | | 'permissionId': 'user', |
| | | 'permissionName': 'ç¨æ·ç®¡ç', |
| | | 'actions': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"import","defaultCheck":false,"describe":"导å
¥"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"update","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"},{"action":"export","defaultCheck":false,"describe":"导åº"}]', |
| | | 'actionEntitySet': [{ |
| | | 'action': 'add', |
| | | 'describe': 'æ°å¢', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'import', |
| | | 'describe': '导å
¥', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'get', |
| | | 'describe': '详æ
', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'update', |
| | | 'describe': 'ä¿®æ¹', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'delete', |
| | | 'describe': 'å é¤', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'export', |
| | | 'describe': '导åº', |
| | | 'defaultCheck': false |
| | | }], |
| | | 'actionList': null, |
| | | 'dataAccess': null |
| | | }] |
| | | } |
| | | |
| | | roleObj.permissions.push({ |
| | | 'roleId': 'admin', |
| | | 'permissionId': 'support', |
| | | 'permissionName': 'è¶
级模å', |
| | | 'actions': '[{"action":"add","defaultCheck":false,"describe":"æ°å¢"},{"action":"import","defaultCheck":false,"describe":"导å
¥"},{"action":"get","defaultCheck":false,"describe":"详æ
"},{"action":"update","defaultCheck":false,"describe":"ä¿®æ¹"},{"action":"delete","defaultCheck":false,"describe":"å é¤"},{"action":"export","defaultCheck":false,"describe":"导åº"}]', |
| | | 'actionEntitySet': [{ |
| | | 'action': 'add', |
| | | 'describe': 'æ°å¢', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'import', |
| | | 'describe': '导å
¥', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'get', |
| | | 'describe': '详æ
', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'update', |
| | | 'describe': 'ä¿®æ¹', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'delete', |
| | | 'describe': 'å é¤', |
| | | 'defaultCheck': false |
| | | }, { |
| | | 'action': 'export', |
| | | 'describe': '导åº', |
| | | 'defaultCheck': false |
| | | }], |
| | | 'actionList': null, |
| | | 'dataAccess': null |
| | | }) |
| | | |
| | | userInfo.role = roleObj |
| | | return builder(userInfo) |
| | | } |
| | | |
| | | const userNav = (options) => { |
| | | const nav = [ |
| | | // dashboard |
| | | { |
| | | 'name': 'dashboard', |
| | | 'parentId': 0, |
| | | 'id': 1, |
| | | 'meta': { |
| | | 'icon': 'dashboard', |
| | | 'title': '仪表ç77', |
| | | 'show': true |
| | | }, |
| | | 'component': 'RouteView', |
| | | 'redirect': '/dashboard/workplace' |
| | | }, |
| | | { |
| | | 'name': 'workplace', |
| | | 'parentId': 1, |
| | | 'id': 7, |
| | | 'meta': { |
| | | 'title': 'å·¥ä½å°', |
| | | 'show': true |
| | | }, |
| | | 'component': 'Workplace' |
| | | }, |
| | | { |
| | | 'name': 'monitor', |
| | | 'path': 'https://www.baidu.com/', |
| | | 'parentId': 1, |
| | | 'id': 3, |
| | | 'meta': { |
| | | 'title': 'çæ§é¡µï¼å¤é¨ï¼', |
| | | 'target': '_blank', |
| | | 'show': true |
| | | } |
| | | }, |
| | | { |
| | | 'name': 'Analysis', |
| | | 'parentId': 1, |
| | | 'id': 2, |
| | | 'meta': { |
| | | 'title': 'åæé¡µ', |
| | | 'show': true |
| | | }, |
| | | 'component': 'Analysis', |
| | | 'path': '/dashboard/analysis' |
| | | }, |
| | | { |
| | | 'name': 'tests', |
| | | 'parentId': 1, |
| | | 'id': 8, |
| | | 'meta': { |
| | | 'title': 'æµè¯åè½', |
| | | 'show': true |
| | | }, |
| | | 'component': 'TestWork' |
| | | }, |
| | | |
| | | // form |
| | | { |
| | | 'name': 'form.vue', |
| | | 'parentId': 0, |
| | | 'id': 10, |
| | | 'meta': { |
| | | 'icon': 'form.vue', |
| | | 'title': '表å页' |
| | | }, |
| | | 'redirect': '/form/base-form', |
| | | 'component': 'PageView' |
| | | }, |
| | | { |
| | | 'name': 'basic-form', |
| | | 'parentId': 10, |
| | | 'id': 6, |
| | | 'meta': { |
| | | 'title': 'åºç¡è¡¨å' |
| | | }, |
| | | 'component': 'BasicForm' |
| | | }, |
| | | { |
| | | 'name': 'step-form', |
| | | 'parentId': 10, |
| | | 'id': 5, |
| | | 'meta': { |
| | | 'title': 'åæ¥è¡¨å' |
| | | }, |
| | | 'component': 'StepForm' |
| | | }, |
| | | { |
| | | 'name': 'advanced-form', |
| | | 'parentId': 10, |
| | | 'id': 4, |
| | | 'meta': { |
| | | 'title': 'é«çº§è¡¨å' |
| | | }, |
| | | 'component': 'AdvanceForm' |
| | | }, |
| | | |
| | | // list |
| | | { |
| | | 'name': 'list', |
| | | 'parentId': 0, |
| | | 'id': 10010, |
| | | 'meta': { |
| | | 'icon': 'table', |
| | | 'title': 'å表页', |
| | | 'show': true |
| | | }, |
| | | 'redirect': '/list/table-list', |
| | | 'component': 'PageView' |
| | | }, |
| | | { |
| | | 'name': 'table-list', |
| | | 'parentId': 10010, |
| | | 'id': 10011, |
| | | 'path': '/list/table-list/:pageNo([1-9]\\d*)?', |
| | | 'meta': { |
| | | 'title': 'æ¥è¯¢è¡¨æ ¼', |
| | | 'show': true |
| | | }, |
| | | 'component': 'TableList' |
| | | }, |
| | | { |
| | | 'name': 'basic-list', |
| | | 'parentId': 10010, |
| | | 'id': 10012, |
| | | 'meta': { |
| | | 'title': 'æ åå表', |
| | | 'show': true |
| | | }, |
| | | 'component': 'StandardList' |
| | | }, |
| | | { |
| | | 'name': 'card', |
| | | 'parentId': 10010, |
| | | 'id': 10013, |
| | | 'meta': { |
| | | 'title': 'å¡çå表', |
| | | 'show': true |
| | | }, |
| | | 'component': 'CardList' |
| | | }, |
| | | { |
| | | 'name': 'search', |
| | | 'parentId': 10010, |
| | | 'id': 10014, |
| | | 'meta': { |
| | | 'title': 'æç´¢å表', |
| | | 'show': true |
| | | }, |
| | | 'redirect': '/list/search/article', |
| | | 'component': 'SearchLayout' |
| | | }, |
| | | { |
| | | 'name': 'article', |
| | | 'parentId': 10014, |
| | | 'id': 10015, |
| | | 'meta': { |
| | | 'title': 'æç´¢åè¡¨ï¼æç« ï¼', |
| | | 'show': true |
| | | }, |
| | | 'component': 'SearchArticles' |
| | | }, |
| | | { |
| | | 'name': 'project', |
| | | 'parentId': 10014, |
| | | 'id': 10016, |
| | | 'meta': { |
| | | 'title': 'æç´¢å表ï¼é¡¹ç®ï¼', |
| | | 'show': true |
| | | }, |
| | | 'component': 'SearchProjects' |
| | | }, |
| | | { |
| | | 'name': 'application', |
| | | 'parentId': 10014, |
| | | 'id': 10017, |
| | | 'meta': { |
| | | 'title': 'æç´¢å表ï¼åºç¨ï¼', |
| | | 'show': true |
| | | }, |
| | | 'component': 'SearchApplications' |
| | | }, |
| | | |
| | | // profile |
| | | { |
| | | 'name': 'profile', |
| | | 'parentId': 0, |
| | | 'id': 10018, |
| | | 'meta': { |
| | | 'title': '详æ
页', |
| | | 'icon': 'profile', |
| | | 'show': true |
| | | }, |
| | | 'redirect': '/profile/basic', |
| | | 'component': 'RouteView' |
| | | }, |
| | | { |
| | | 'name': 'basic', |
| | | 'parentId': 10018, |
| | | 'id': 10019, |
| | | 'meta': { |
| | | 'title': 'åºç¡è¯¦æ
页', |
| | | 'show': true |
| | | }, |
| | | 'component': 'ProfileBasic' |
| | | }, |
| | | { |
| | | 'name': 'advanced', |
| | | 'parentId': 10018, |
| | | 'id': 10020, |
| | | 'meta': { |
| | | 'title': 'é«çº§è¯¦æ
页', |
| | | 'show': true |
| | | }, |
| | | 'component': 'ProfileAdvanced' |
| | | }, |
| | | |
| | | // result |
| | | { |
| | | 'name': 'result', |
| | | 'parentId': 0, |
| | | 'id': 10021, |
| | | 'meta': { |
| | | 'title': 'ç»æé¡µ', |
| | | 'icon': 'check-circle-o', |
| | | 'show': true |
| | | }, |
| | | 'redirect': '/result/success', |
| | | 'component': 'PageView' |
| | | }, |
| | | { |
| | | 'name': 'success', |
| | | 'parentId': 10021, |
| | | 'id': 10022, |
| | | 'meta': { |
| | | 'title': 'æå', |
| | | 'hiddenHeaderContent': true, |
| | | 'show': true |
| | | }, |
| | | 'component': 'ResultSuccess' |
| | | }, |
| | | { |
| | | 'name': 'fail', |
| | | 'parentId': 10021, |
| | | 'id': 10023, |
| | | 'meta': { |
| | | 'title': '失败', |
| | | 'hiddenHeaderContent': true, |
| | | 'show': true |
| | | }, |
| | | 'component': 'ResultFail' |
| | | }, |
| | | |
| | | // Exception |
| | | { |
| | | 'name': 'exception', |
| | | 'parentId': 0, |
| | | 'id': 10024, |
| | | 'meta': { |
| | | 'title': 'å¼å¸¸é¡µ', |
| | | 'icon': 'warning', |
| | | 'show': true |
| | | }, |
| | | 'redirect': '/exception/403', |
| | | 'component': 'RouteView' |
| | | }, |
| | | { |
| | | 'name': '403', |
| | | 'parentId': 10024, |
| | | 'id': 10025, |
| | | 'meta': { |
| | | 'title': '403', |
| | | 'show': true |
| | | }, |
| | | 'component': 'Exception403' |
| | | }, |
| | | { |
| | | 'name': '404', |
| | | 'parentId': 10024, |
| | | 'id': 10026, |
| | | 'meta': { |
| | | 'title': '404', |
| | | 'show': true |
| | | }, |
| | | 'component': 'Exception404' |
| | | }, |
| | | { |
| | | 'name': '500', |
| | | 'parentId': 10024, |
| | | 'id': 10027, |
| | | 'meta': { |
| | | 'title': '500', |
| | | 'show': true |
| | | }, |
| | | 'component': 'Exception500' |
| | | }, |
| | | |
| | | // account |
| | | { |
| | | 'name': 'account', |
| | | 'parentId': 0, |
| | | 'id': 10028, |
| | | 'meta': { |
| | | 'title': '个人页', |
| | | 'icon': 'user', |
| | | 'show': true |
| | | }, |
| | | 'redirect': '/account/center', |
| | | 'component': 'RouteView' |
| | | }, |
| | | { |
| | | 'name': 'center', |
| | | 'parentId': 10028, |
| | | 'id': 10029, |
| | | 'meta': { |
| | | 'title': '个人ä¸å¿', |
| | | 'show': true |
| | | }, |
| | | 'component': 'AccountCenter' |
| | | }, |
| | | // ç¹æ®ä¸çº§èå |
| | | { |
| | | 'name': 'settings', |
| | | 'parentId': 10028, |
| | | 'id': 10030, |
| | | 'meta': { |
| | | 'title': '个人设置', |
| | | 'hideHeader': true, |
| | | 'hideChildren': true, |
| | | 'show': true |
| | | }, |
| | | 'redirect': '/account/settings/base', |
| | | 'component': 'AccountSettings' |
| | | }, |
| | | { |
| | | 'name': 'BaseSettings', |
| | | 'path': '/account/settings/base', |
| | | 'parentId': 10030, |
| | | 'id': 10031, |
| | | 'meta': { |
| | | 'title': 'åºæ¬è®¾ç½®', |
| | | 'show': false |
| | | }, |
| | | 'component': 'BaseSettings' |
| | | }, |
| | | { |
| | | 'name': 'SecuritySettings', |
| | | 'path': '/account/settings/security', |
| | | 'parentId': 10030, |
| | | 'id': 10032, |
| | | 'meta': { |
| | | 'title': 'å®å
¨è®¾ç½®', |
| | | 'show': false |
| | | }, |
| | | 'component': 'SecuritySettings' |
| | | }, |
| | | { |
| | | 'name': 'CustomSettings', |
| | | 'path': '/account/settings/custom', |
| | | 'parentId': 10030, |
| | | 'id': 10033, |
| | | 'meta': { |
| | | 'title': '个æ§å设置', |
| | | 'show': false |
| | | }, |
| | | 'component': 'CustomSettings' |
| | | }, |
| | | { |
| | | 'name': 'BindingSettings', |
| | | 'path': '/account/settings/binding', |
| | | 'parentId': 10030, |
| | | 'id': 10034, |
| | | 'meta': { |
| | | 'title': 'è´¦æ·ç»å®', |
| | | 'show': false |
| | | }, |
| | | 'component': 'BindingSettings' |
| | | }, |
| | | { |
| | | 'name': 'NotificationSettings', |
| | | 'path': '/account/settings/notification', |
| | | 'parentId': 10030, |
| | | 'id': 10034, |
| | | 'meta': { |
| | | 'title': 'æ°æ¶æ¯éç¥', |
| | | 'show': false |
| | | }, |
| | | 'component': 'NotificationSettings' |
| | | } |
| | | ] |
| | | const json = builder(nav) |
| | | return json |
| | | } |
| | | |
| | | Mock.mock(/\/api\/user\/info/, 'get', info) |
| | | Mock.mock(/\/api\/user\/nav/, 'get', userNav) |
¶Ô±ÈÐÂÎļþ |
| | |
| | | const responseBody = { |
| | | message: '', |
| | | timestamp: 0, |
| | | result: null, |
| | | code: 0 |
| | | } |
| | | |
| | | export const builder = (data, message, code = 0, headers = {}) => { |
| | | responseBody.result = data |
| | | if (message !== undefined && message !== null) { |
| | | responseBody.message = message |
| | | } |
| | | if (code !== undefined && code !== 0) { |
| | | responseBody.code = code |
| | | responseBody._status = code |
| | | } |
| | | if (headers !== null && typeof headers === 'object' && Object.keys(headers).length > 0) { |
| | | responseBody._headers = headers |
| | | } |
| | | responseBody.timestamp = new Date().getTime() |
| | | return responseBody |
| | | } |
| | | |
| | | export const getQueryParameters = (options) => { |
| | | const url = options.url |
| | | const search = url.split('?')[1] |
| | | if (!search) { |
| | | return {} |
| | | } |
| | | return JSON.parse('{"' + decodeURIComponent(search) |
| | | .replace(/"/g, '\\"') |
| | | .replace(/&/g, '","') |
| | | .replace(/=/g, '":"') + '"}') |
| | | } |
| | | |
| | | export const getBody = (options) => { |
| | | return options.body && JSON.parse(options.body) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import Vue from 'vue' |
| | | import router from './router' |
| | | import store from './store' |
| | | |
| | | import NProgress from 'nprogress' // progress bar |
| | | import '@/components/NProgress/nprogress.less' // progress bar custom style |
| | | import { setDocumentTitle, domTitle } from '@/utils/domUtil' |
| | | import { ACCESS_TOKEN, ALL_APPS_MENU } from '@/store/mutation-types' |
| | | |
| | | import { Modal, notification } from 'ant-design-vue' // NProgress Configuration |
| | | import { timeFix } from '@/utils/util'/// es/notification |
| | | import Enumerable from 'linq' |
| | | |
| | | NProgress.configure({ showSpinner: false }) |
| | | const whiteList = ['login', 'register', 'registerResult', 'wechat'] // no redirect whitelist |
| | | // æ é»è®¤é¦é¡µçæ
åµ |
| | | const defaultRoutePath = '/welcome' |
| | | |
| | | router.beforeEach((to, from, next) => { |
| | | NProgress.start() // start progress bar |
| | | to.meta && (typeof to.meta.title !== 'undefined' && setDocumentTitle(`${to.meta.title} - ${domTitle}`)) |
| | | if (Vue.ls.get(ACCESS_TOKEN)) { |
| | | /* has token */ |
| | | if (to.path === '/user/login') { |
| | | //next({ path: defaultRoutePath }) |
| | | NProgress.done() |
| | | } else { |
| | | if (store.getters.roles.length === 0) { |
| | | store |
| | | .dispatch('GetInfo') |
| | | .then(res => { |
| | | if (res.menus.length < 1) { |
| | | Modal.error({ |
| | | title: 'æç¤ºï¼', |
| | | content: 'æ èåæéï¼è¯·è系管çå', |
| | | okText: 'ç¡®å®', |
| | | onOk: () => { |
| | | store.dispatch('Logout').then(() => { |
| | | window.location.reload() |
| | | }) |
| | | } |
| | | }) |
| | | return |
| | | } |
| | | // eslint-disable-next-line camelcase |
| | | const all_app_menu = Vue.ls.get(ALL_APPS_MENU) |
| | | let antDesignmenus |
| | | // eslint-disable-next-line camelcase |
| | | if (all_app_menu == null) { |
| | | const applocation = [] |
| | | res.apps.forEach(item => { |
| | | const apps = { 'code': '', 'name': '', 'active': '', 'menu': '' } |
| | | if (item.active) { |
| | | apps.code = item.code |
| | | apps.name = item.name |
| | | apps.active = item.active |
| | | apps.menu = res.menus |
| | | antDesignmenus = res.menus |
| | | } else { |
| | | apps.code = item.code |
| | | apps.name = item.name |
| | | apps.active = item.active |
| | | apps.menu = '' |
| | | } |
| | | applocation.push(apps) |
| | | }) |
| | | if (antDesignmenus === undefined) { |
| | | // 没æè®¾ç½®é»è®¤å¼çæ
åµä¸ï¼ä½¿ç¬¬ä¸ä¸ªåºç¨èå为é»è®¤èå |
| | | var firstApps = Enumerable.from(applocation).first() |
| | | firstApps.active = 'Y' |
| | | firstApps.menu = res.menus |
| | | antDesignmenus = res.menus |
| | | } |
| | | Vue.ls.set(ALL_APPS_MENU, applocation, 7 * 24 * 60 * 60 * 1000)//ç¼å7天 |
| | | // å»¶è¿ 1 ç§æ¾ç¤ºæ¬¢è¿ä¿¡æ¯ |
| | | setTimeout(() => { |
| | | notification.success({ |
| | | message: '欢è¿', |
| | | description: `${timeFix()}ï¼æ¬¢è¿åæ¥` |
| | | }) |
| | | }, 1000) |
| | | } else { |
| | | antDesignmenus = Vue.ls.get(ALL_APPS_MENU)[0].menu |
| | | } |
| | | store.dispatch('GenerateRoutes', { antDesignmenus }).then(() => { |
| | | // å¨ææ·»å å¯è®¿é®è·¯ç±è¡¨ |
| | | router.addRoutes(store.getters.addRouters) |
| | | // 请æ±å¸¦æ redirect éå®åæ¶ï¼ç»å½èªå¨éå®åå°è¯¥å°å |
| | | const redirect = decodeURIComponent(from.query.redirect || to.path) |
| | | if (to.path === redirect) { |
| | | next({ path: redirect }) |
| | | // hackæ¹æ³ ç¡®ä¿addRoutes已宿 ,set the replace: true so the navigation will not leave a history record |
| | | next({ ...to, replace: true }) |
| | | } else { |
| | | // 跳转å°ç®çè·¯ç± |
| | | next({ path: redirect }) |
| | | } |
| | | }) |
| | | }) |
| | | .catch(() => { |
| | | store.dispatch('Logout').then(() => { |
| | | next({ path: '/user/login', query: { redirect: to.fullPath } }) |
| | | }) |
| | | }) |
| | | store.dispatch('getNoticReceiveList').then((res) => { }) |
| | | } else { |
| | | next() |
| | | } |
| | | } |
| | | } else { |
| | | if (whiteList.includes(to.name)) { |
| | | // å¨å
ç»å½ç½ååï¼ç´æ¥è¿å
¥ |
| | | next() |
| | | } else { |
| | | next({ path: '/user/login', query: { redirect: to.fullPath } }) |
| | | NProgress.done() // if current page is login will not trigger afterEach hook, so manually handle it |
| | | } |
| | | } |
| | | }) |
| | | |
| | | router.afterEach(() => { |
| | | NProgress.done() // finish progress bar |
| | | }) |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | import { BasicLayout, BlankLayout, PageView, RouteView, Iframe } from '@/layouts' |
| | | |
| | | // å端路ç±è¡¨ |
| | | const constantRouterComponents = { |
| | | // åºç¡é¡µé¢ layout å¿
é¡»å¼å
¥ |
| | | BasicLayout: BasicLayout, |
| | | BlankLayout: BlankLayout, |
| | | RouteView: RouteView, |
| | | PageView: PageView, |
| | | Iframe: Iframe, |
| | | '403': () => import('@/views/system/exception/403'), |
| | | '404': () => import('@/views/system/exception/404'), |
| | | '500': () => import('@/views/system/exception/500'), |
| | | |
| | | 'Workplace': () => import('@/views/system/dashboard/Workplace'), |
| | | // account |
| | | 'AccountCenter': () => import('@/views/system/account/center/Index'), |
| | | 'AccountSettings': () => import('@/views/system/account/settings/Index'), |
| | | 'BaseSettings': () => import('@/views/system/account/settings/BaseSetting'), |
| | | 'SecuritySettings': () => import('@/views/system/account/settings/Security'), |
| | | 'CustomSettings': () => import('@/views/system/account/settings/Custom'), |
| | | 'BindingSettings': () => import('@/views/system/account/settings/Binding'), |
| | | 'NotificationSettings': () => import('@/views/system/account/settings/Notification'), |
| | | |
| | | // é»è®¤é¦é¡µ |
| | | 'Console': () => import('@/views/system/index/welcome') |
| | | } |
| | | |
| | | // åç«¯æªæ¾å°é¡µé¢è·¯ç±ï¼åºå®ä¸ç¨æ¹ï¼ãåæ¥ä¸º /404 |
| | | const notFoundRouter = { |
| | | path: '*', redirect: '/welcome', hidden: true |
| | | } |
| | | // 个人ä¸å¿é¡µé¢ |
| | | const userAccount = [ |
| | | // account |
| | | { |
| | | 'name': 'account', |
| | | 'pid': 0, |
| | | 'id': 10028, |
| | | 'meta': { |
| | | 'title': '个人页', |
| | | 'icon': 'user', |
| | | 'show': false |
| | | }, |
| | | 'redirect': '/account/center', |
| | | 'component': 'RouteView' |
| | | }, |
| | | { |
| | | 'name': 'center', |
| | | 'pid': 10028, |
| | | 'id': 10029, |
| | | 'meta': { |
| | | 'title': '个人ä¸å¿', |
| | | 'show': false |
| | | }, |
| | | 'component': 'AccountCenter' |
| | | }, |
| | | // ç¹æ®ä¸çº§èå |
| | | { |
| | | 'name': 'settings', |
| | | 'pid': '10028', |
| | | 'id': '10030', |
| | | 'meta': { |
| | | 'title': '个人设置', |
| | | 'hideHeader': true, |
| | | 'hideChildren': true, |
| | | 'show': false |
| | | }, |
| | | 'redirect': '/account/settings/base', |
| | | 'component': 'AccountSettings' |
| | | }, |
| | | { |
| | | 'name': 'BaseSettings', |
| | | 'path': '/account/settings/base', |
| | | 'pid': 10030, |
| | | 'id': 10031, |
| | | 'meta': { |
| | | 'title': 'åºæ¬è®¾ç½®', |
| | | 'show': false |
| | | }, |
| | | 'component': 'BaseSettings' |
| | | }, |
| | | { |
| | | 'name': 'SecuritySettings', |
| | | 'path': '/account/settings/security', |
| | | 'pid': 10030, |
| | | 'id': 10032, |
| | | 'meta': { |
| | | 'title': 'å®å
¨è®¾ç½®', |
| | | 'show': false |
| | | }, |
| | | 'component': 'SecuritySettings' |
| | | }, |
| | | { |
| | | 'name': 'CustomSettings', |
| | | 'path': '/account/settings/custom', |
| | | 'pid': 10030, |
| | | 'id': 10033, |
| | | 'meta': { |
| | | 'title': '个æ§å设置', |
| | | 'show': false |
| | | }, |
| | | 'component': 'CustomSettings' |
| | | }, |
| | | { |
| | | 'name': 'BindingSettings', |
| | | 'path': '/account/settings/binding', |
| | | 'pid': 10030, |
| | | 'id': 10034, |
| | | 'meta': { |
| | | 'title': 'è´¦æ·ç»å®', |
| | | 'show': false |
| | | }, |
| | | 'component': 'BindingSettings' |
| | | }, |
| | | { |
| | | 'name': 'NotificationSettings', |
| | | 'path': '/account/settings/notification', |
| | | 'pid': 10030, |
| | | 'id': 10034, |
| | | 'meta': { |
| | | 'title': 'æ°æ¶æ¯éç¥', |
| | | 'show': false |
| | | }, |
| | | 'component': 'NotificationSettings' |
| | | }, |
| | | { |
| | | 'name': 'Console', |
| | | 'path': '/welcome', |
| | | 'pid': 0, |
| | | 'id': 183183, |
| | | 'meta': { |
| | | 'title': 'é¦é¡µ', |
| | | 'show': false |
| | | }, |
| | | 'component': 'Console' |
| | | } |
| | | |
| | | ] |
| | | |
| | | // æ ¹çº§èå |
| | | const rootRouter = { |
| | | key: '', |
| | | name: 'MenuIndex.vue', |
| | | path: '', |
| | | component: 'BasicLayout', |
| | | redirect: '/welcome', |
| | | meta: { |
| | | title: 'é¦é¡µ' |
| | | }, |
| | | children: [] |
| | | } |
| | | |
| | | /** |
| | | * 卿çæèå |
| | | * @param data |
| | | * @returns {Promise<Router>} |
| | | */ |
| | | export const generatorDynamicRouter = (data) => { |
| | | return new Promise((resolve, reject) => { |
| | | const resNav = data.antDesignmenus |
| | | const menuNav = [] |
| | | const childrenNav = [] |
| | | // åç«¯æ°æ®, æ ¹çº§æ æ°ç», æ ¹çº§ PID |
| | | listToTree(resNav, childrenNav, 0) |
| | | |
| | | /** |
| | | * å¢å éæç½é¡µ |
| | | */ |
| | | listToTree(userAccount, childrenNav, 0) |
| | | rootRouter.children = childrenNav |
| | | menuNav.push(rootRouter) |
| | | const routers = generator(menuNav) |
| | | routers.push(notFoundRouter) |
| | | resolve(routers) |
| | | }).catch(err => { |
| | | // reject('å è½½èå失败') |
| | | return Promise.reject(err) |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ ¼å¼åæ å½¢ç»ææ°æ® çæ vue-router å±çº§è·¯ç±è¡¨ |
| | | * |
| | | * @param routerMap |
| | | * @param parent |
| | | * @returns {*} |
| | | */ |
| | | export const generator = (routerMap, parent) => { |
| | | return routerMap.map(item => { |
| | | // eslint-disable-next-line no-unused-vars |
| | | const { title, show, hideChildren, hiddenHeaderContent, target, icon, link } = item.meta || {} |
| | | const currentRouter = { |
| | | // å¦æè·¯ç±è®¾ç½®äº pathï¼åä½ä¸ºé»è®¤ pathï¼å¦å è·¯ç±å°å å¨ææ¼æ¥çæå¦ /dashboard/workplace |
| | | path: item.path || `${parent && parent.path || ''}/${item.key}`, |
| | | // è·¯ç±åç§°ï¼å»ºè®®å¯ä¸ |
| | | name: item.name || item.key || '', |
| | | // 该路ç±å¯¹åºé¡µé¢ç ç»ä»¶ :æ¹æ¡1 |
| | | // component: constantRouterComponents[item.component || item.key], |
| | | // 该路ç±å¯¹åºé¡µé¢ç ç»ä»¶ :æ¹æ¡2 (卿å è½½) |
| | | component: (constantRouterComponents[item.component || item.key]) || (() => import(`@/views/${item.component}`)), |
| | | // meta: 页颿 é¢, èå徿 , 页颿é(便令æéç¨ï¼å¯å»æ) |
| | | meta: { |
| | | title: title, |
| | | icon: icon || undefined, |
| | | // hiddenHeaderContent: hiddenHeaderContent, |
| | | target: target, |
| | | link: link |
| | | } |
| | | } |
| | | // æ¯å¦è®¾ç½®äºéèèå |
| | | if (show === false) { |
| | | currentRouter.hidden = true |
| | | } |
| | | // æ¯å¦è®¾ç½®äºéèåèå |
| | | if (hideChildren) { |
| | | currentRouter.hideChildrenInMenu = true |
| | | } |
| | | // 为äºé²æ¢åºç°å端è¿åç»æä¸è§èï¼å¤çæå¯è½åºç°æ¼æ¥åºä¸¤ä¸ª åææ |
| | | if (!currentRouter.path.startsWith('http')) { |
| | | currentRouter.path = currentRouter.path.replace('//', '/') |
| | | } |
| | | // éå®å |
| | | item.redirect && (currentRouter.redirect = item.redirect) |
| | | // æ¯å¦æåèåï¼å¹¶éå½å¤ç |
| | | if (item.children && item.children.length > 0) { |
| | | // Recursion |
| | | currentRouter.children = generator(item.children, currentRouter) |
| | | } |
| | | return currentRouter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ°ç»è½¬æ å½¢ç»æ |
| | | * @param list æºæ°ç» |
| | | * @param tree æ |
| | | * @param parentId ç¶ID |
| | | */ |
| | | const listToTree = (list, tree, parentId) => { |
| | | if (list) { |
| | | list.forEach(item => { |
| | | // 夿æ¯å¦ä¸ºç¶çº§èå |
| | | // eslint-disable-next-line eqeqeq |
| | | if (item.pid == parentId) { |
| | | const child = { |
| | | ...item, |
| | | key: item.key || item.name, |
| | | children: [] |
| | | } |
| | | // è¿ä»£ listï¼ æ¾å°å½åèåç¸ç¬¦åçææåèå |
| | | listToTree(list, child.children, item.id) |
| | | // å æä¸åå¨ children å¼ç屿§ |
| | | if (child.children.length <= 0) { |
| | | delete child.children |
| | | } |
| | | // å å
¥å°æ ä¸ |
| | | tree.push(child) |
| | | } |
| | | }) |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import Vue from 'vue' |
| | | import Router from 'vue-router' |
| | | import { constantRouterMap } from '@/config/router.config' |
| | | |
| | | // hack router push callback |
| | | const originalPush = Router.prototype.push |
| | | Router.prototype.push = function push (location, onResolve, onReject) { |
| | | if (onResolve || onReject) return originalPush.call(this, location, onResolve, onReject) |
| | | return originalPush.call(this, location).catch(err => err) |
| | | } |
| | | |
| | | Vue.use(Router) |
| | | |
| | | export default new Router({ |
| | | mode: 'history', |
| | | base: process.env.BASE_URL, |
| | | scrollBehavior: () => ({ y: 0 }), |
| | | routes: constantRouterMap |
| | | }) |
¶Ô±ÈÐÂÎļþ |
| | |
| | | const getters = { |
| | | device: state => state.app.device, |
| | | theme: state => state.app.theme, |
| | | color: state => state.app.color, |
| | | token: state => state.user.token, |
| | | avatar: state => state.user.avatar, |
| | | nickname: state => state.user.name, |
| | | welcome: state => state.user.welcome, |
| | | roles: state => state.user.roles, |
| | | buttons: state => state.user.buttons, |
| | | allButtons: state => state.user.allButtons, |
| | | admintype: state => state.user.admintype, |
| | | userInfo: state => state.user.info, |
| | | userNotices: state => state.user.notices, |
| | | addRouters: state => state.permission.addRouters, |
| | | multiTab: state => state.app.multiTab, |
| | | lang: state => state.i18n.lang |
| | | } |
| | | |
| | | export default getters |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import Vue from 'vue' |
| | | import Vuex from 'vuex' |
| | | |
| | | import app from './modules/app' |
| | | import user from './modules/user' |
| | | |
| | | // default router permission control |
| | | // import permission from './modules/permission' |
| | | |
| | | // dynamic router permission control (Experimental) |
| | | import permission from './modules/async-router' |
| | | import getters from './getters' |
| | | |
| | | Vue.use(Vuex) |
| | | |
| | | export default new Vuex.Store({ |
| | | modules: { |
| | | app, |
| | | user, |
| | | permission |
| | | }, |
| | | state: { |
| | | |
| | | }, |
| | | mutations: { |
| | | |
| | | }, |
| | | actions: { |
| | | |
| | | }, |
| | | getters |
| | | }) |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import Vue from 'vue' |
| | | import { |
| | | SIDEBAR_TYPE, |
| | | DEFAULT_THEME, |
| | | DEFAULT_LAYOUT_MODE, |
| | | DEFAULT_COLOR, |
| | | DEFAULT_COLOR_WEAK, |
| | | DEFAULT_FIXED_HEADER, |
| | | DEFAULT_FIXED_SIDEMENU, |
| | | DEFAULT_FIXED_HEADER_HIDDEN, |
| | | DEFAULT_CONTENT_WIDTH_TYPE, |
| | | DEFAULT_MULTI_TAB, |
| | | DEFAULT_CRUMBS_STATE |
| | | } from '@/store/mutation-types' |
| | | |
| | | const app = { |
| | | state: { |
| | | sidebar: true, |
| | | device: 'desktop', |
| | | theme: '', |
| | | layout: '', |
| | | contentWidth: '', |
| | | fixedHeader: false, |
| | | fixSiderbar: false, |
| | | autoHideHeader: false, |
| | | color: null, |
| | | weak: false, |
| | | multiTab: true, |
| | | crumbsState: true, |
| | | hasError: false |
| | | }, |
| | | mutations: { |
| | | SET_SIDEBAR_TYPE: (state, type) => { |
| | | state.sidebar = type |
| | | Vue.ls.set(SIDEBAR_TYPE, type) |
| | | }, |
| | | CLOSE_SIDEBAR: (state) => { |
| | | Vue.ls.set(SIDEBAR_TYPE, true) |
| | | state.sidebar = false |
| | | }, |
| | | TOGGLE_DEVICE: (state, device) => { |
| | | state.device = device |
| | | }, |
| | | TOGGLE_THEME: (state, theme) => { |
| | | // setStore('_DEFAULT_THEME', theme) |
| | | Vue.ls.set(DEFAULT_THEME, theme) |
| | | state.theme = theme |
| | | }, |
| | | TOGGLE_LAYOUT_MODE: (state, layout) => { |
| | | Vue.ls.set(DEFAULT_LAYOUT_MODE, layout) |
| | | state.layout = layout |
| | | }, |
| | | TOGGLE_FIXED_HEADER: (state, fixed) => { |
| | | Vue.ls.set(DEFAULT_FIXED_HEADER, fixed) |
| | | state.fixedHeader = fixed |
| | | }, |
| | | TOGGLE_FIXED_SIDERBAR: (state, fixed) => { |
| | | Vue.ls.set(DEFAULT_FIXED_SIDEMENU, fixed) |
| | | state.fixSiderbar = fixed |
| | | }, |
| | | TOGGLE_FIXED_HEADER_HIDDEN: (state, show) => { |
| | | Vue.ls.set(DEFAULT_FIXED_HEADER_HIDDEN, show) |
| | | state.autoHideHeader = show |
| | | }, |
| | | TOGGLE_CONTENT_WIDTH: (state, type) => { |
| | | Vue.ls.set(DEFAULT_CONTENT_WIDTH_TYPE, type) |
| | | state.contentWidth = type |
| | | }, |
| | | TOGGLE_COLOR: (state, color) => { |
| | | Vue.ls.set(DEFAULT_COLOR, color) |
| | | state.color = color |
| | | }, |
| | | TOGGLE_WEAK: (state, flag) => { |
| | | Vue.ls.set(DEFAULT_COLOR_WEAK, flag) |
| | | state.weak = flag |
| | | }, |
| | | TOGGLE_MULTI_TAB: (state, bool) => { |
| | | Vue.ls.set(DEFAULT_MULTI_TAB, bool) |
| | | state.multiTab = bool |
| | | }, |
| | | TOGGLE_CRUMBS_STATE: (state, bool) => { |
| | | Vue.ls.set(DEFAULT_CRUMBS_STATE, bool) |
| | | state.crumbsState = bool |
| | | }, |
| | | SET_HAS_ERROR: (state, bool) => { |
| | | state.hasError = bool |
| | | } |
| | | }, |
| | | actions: { |
| | | setSidebar ({ commit }, type) { |
| | | commit('SET_SIDEBAR_TYPE', type) |
| | | }, |
| | | CloseSidebar ({ commit }) { |
| | | commit('CLOSE_SIDEBAR') |
| | | }, |
| | | ToggleDevice ({ commit }, device) { |
| | | commit('TOGGLE_DEVICE', device) |
| | | }, |
| | | ToggleTheme ({ commit }, theme) { |
| | | commit('TOGGLE_THEME', theme) |
| | | }, |
| | | ToggleLayoutMode ({ commit }, mode) { |
| | | commit('TOGGLE_LAYOUT_MODE', mode) |
| | | }, |
| | | ToggleFixedHeader ({ commit }, fixedHeader) { |
| | | if (!fixedHeader) { |
| | | commit('TOGGLE_FIXED_HEADER_HIDDEN', false) |
| | | } |
| | | commit('TOGGLE_FIXED_HEADER', fixedHeader) |
| | | }, |
| | | ToggleFixSiderbar ({ commit }, fixSiderbar) { |
| | | commit('TOGGLE_FIXED_SIDERBAR', fixSiderbar) |
| | | }, |
| | | ToggleFixedHeaderHidden ({ commit }, show) { |
| | | commit('TOGGLE_FIXED_HEADER_HIDDEN', show) |
| | | }, |
| | | ToggleContentWidth ({ commit }, type) { |
| | | commit('TOGGLE_CONTENT_WIDTH', type) |
| | | }, |
| | | ToggleColor ({ commit }, color) { |
| | | commit('TOGGLE_COLOR', color) |
| | | }, |
| | | ToggleWeak ({ commit }, weakFlag) { |
| | | commit('TOGGLE_WEAK', weakFlag) |
| | | }, |
| | | ToggleMultiTab ({ commit }, bool) { |
| | | commit('TOGGLE_MULTI_TAB', bool) |
| | | }, |
| | | ToggleCrumbsState ({ commit }, bool) { |
| | | commit('TOGGLE_CRUMBS_STATE', bool) |
| | | }, |
| | | SetHasError ({ commit }, bool) { |
| | | commit('SET_HAS_ERROR', bool) |
| | | } |
| | | } |
| | | } |
| | | |
| | | export default app |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /** |
| | | * åå端请æ±ç¨æ·çèåï¼å¨æçæè·¯ç± |
| | | */ |
| | | import { constantRouterMap } from '@/config/router.config' |
| | | import { generatorDynamicRouter } from '@/router/generator-routers' |
| | | |
| | | const permission = { |
| | | state: { |
| | | routers: constantRouterMap, |
| | | addRouters: [] |
| | | }, |
| | | mutations: { |
| | | SET_ROUTERS: (state, routers) => { |
| | | state.addRouters = routers |
| | | state.routers = constantRouterMap.concat(routers) |
| | | } |
| | | }, |
| | | actions: { |
| | | GenerateRoutes ({ commit }, data) { |
| | | return new Promise(resolve => { |
| | | generatorDynamicRouter(data).then(routers => { |
| | | commit('SET_ROUTERS', routers) |
| | | resolve() |
| | | }) |
| | | }).catch(err => { |
| | | // eslint-disable-next-line no-undef |
| | | reject(err) |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | |
| | | export default permission |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { asyncRouterMap, constantRouterMap } from '@/config/router.config' |
| | | |
| | | /** |
| | | * è¿æ»¤è´¦æ·æ¯å¦æ¥ææä¸ä¸ªæéï¼å¹¶å°èåä»å è½½åè¡¨ç§»é¤ |
| | | * |
| | | * @param permission |
| | | * @param route |
| | | * @returns {boolean} |
| | | */ |
| | | function hasPermission (permission, route) { |
| | | // if (route.meta && route.meta.permission) { |
| | | // let flag = false |
| | | // for (let i = 0, len = permission.length; i < len; i++) { |
| | | // flag = route.meta.permission.includes(permission[i]) |
| | | // if (flag) { |
| | | // return true |
| | | // } |
| | | // } |
| | | // return false |
| | | // } |
| | | return true |
| | | } |
| | | |
| | | /** |
| | | * åè´¦æ·å¤è§è²æ¶ï¼ä½¿ç¨è¯¥æ¹æ³å¯è¿æ»¤è§è²ä¸åå¨çèå |
| | | * |
| | | * @param roles |
| | | * @param route |
| | | * @returns {*} |
| | | */ |
| | | // eslint-disable-next-line |
| | | function hasRole(roles, route) { |
| | | if (route.meta && route.meta.roles) { |
| | | return route.meta.roles.includes(roles.id) |
| | | } else { |
| | | return true |
| | | } |
| | | } |
| | | |
| | | function filterAsyncRouter (routerMap, roles) { |
| | | const accessedRouters = routerMap.filter(route => { |
| | | if (hasPermission(roles.permissionList, route)) { |
| | | if (route.children && route.children.length) { |
| | | route.children = filterAsyncRouter(route.children, roles) |
| | | } |
| | | return true |
| | | } |
| | | return false |
| | | }) |
| | | return accessedRouters |
| | | } |
| | | |
| | | const permission = { |
| | | state: { |
| | | routers: constantRouterMap, |
| | | addRouters: [] |
| | | }, |
| | | mutations: { |
| | | SET_ROUTERS: (state, routers) => { |
| | | state.addRouters = routers |
| | | state.routers = constantRouterMap.concat(routers) |
| | | } |
| | | }, |
| | | actions: { |
| | | GenerateRoutes ({ commit }, data) { |
| | | return new Promise(resolve => { |
| | | const { roles } = data |
| | | const accessedRouters = filterAsyncRouter(asyncRouterMap, roles) |
| | | commit('SET_ROUTERS', accessedRouters) |
| | | resolve() |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | |
| | | export default permission |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import Vue from 'vue' |
| | | import { login, getLoginUser, logout } from '@/api/modular/system/loginManage' |
| | | import { sysDictTypeTree } from '@/api/modular/system/dictManage' |
| | | import { sysMenuChange } from '@/api/modular/system/menuManage' |
| | | // eslint-disable-next-line no-unused-vars |
| | | import { ACCESS_TOKEN, ALL_APPS_MENU, DICT_TYPE_TREE_DATA, NOTICE_RECEIVED } from '@/store/mutation-types' |
| | | import { sysFileInfoPreview } from '@/api/modular/system/fileManage' |
| | | import { |
| | | unReadNotice |
| | | } from '@/api/modular/system/noticeReceivedManage' |
| | | |
| | | import { welcome, dateFormat } from '@/utils/util' |
| | | import store from '../index' |
| | | import router from '../../router' |
| | | |
| | | const user = { |
| | | state: { |
| | | token: '', |
| | | name: '', |
| | | welcome: '', |
| | | avatar: '', |
| | | buttons: [], // æé®æé |
| | | allButtons: [], // æææé®æé |
| | | admintype: '', // æ¯å¦æ¯è¶
管 |
| | | roles: [], |
| | | info: {}, |
| | | notices: [] // æ¥æ¶çéç¥å
Œ |
| | | }, |
| | | |
| | | mutations: { |
| | | SET_TOKEN: (state, token) => { |
| | | state.token = token |
| | | }, |
| | | SET_NAME: (state, { name, welcome }) => { |
| | | state.name = name |
| | | state.welcome = welcome |
| | | }, |
| | | SET_AVATAR: (state, avatar) => { |
| | | state.avatar = avatar |
| | | }, |
| | | SET_ROLES: (state, roles) => { |
| | | state.roles = roles |
| | | }, |
| | | SET_INFO: (state, info) => { |
| | | state.info = info |
| | | }, |
| | | SET_BUTTONS: (state, buttons) => { |
| | | state.buttons = buttons |
| | | }, |
| | | SET_ALL_BUTTONS: (state, allButtons) => { |
| | | state.allButtons = allButtons |
| | | }, |
| | | SET_ADMINTYPE: (state, admintype) => { |
| | | state.admintype = admintype |
| | | }, |
| | | SET_NOTICES: (state, notices) => { |
| | | state.notices = notices |
| | | }, |
| | | APPEND_NOTICE: (state, notice) => { |
| | | notice.publicTime = dateFormat(notice.publicTime, 'YYYY-mm-dd HH:MM:SS') |
| | | const notices = state.notices |
| | | const temp = notices.rows.filter(m => { return m.value === notice.type })[0] |
| | | const other = notices.rows.filter(m => { return m.value !== notice.type }) |
| | | temp.noticeData.unshift(notice) |
| | | notices.totalRows++ |
| | | if (temp.noticeData.length > 6) { |
| | | temp.noticeData.pop() |
| | | } |
| | | notices.rows = [] |
| | | notices.rows.push(temp) |
| | | notices.rows.push.apply(notices.rows, other) |
| | | notices.rows.sort((obj1, obj2) => { |
| | | return obj1.index - obj2.index |
| | | }) |
| | | state.notices = notices |
| | | }, |
| | | SUBTRACT_NOTICE: (state, notice) => { |
| | | // æ¥çéç¥å卿¶æ¯æç¤ºä¸æ¶é¤å·²ç»æ¥çè¿çï¼æ¤å½æ° å¯è½ å卿ªç¥bug |
| | | // notice.publicTime = dateFormat(notice.publicTime, 'YYYY-mm-dd HH:MM:SS') |
| | | const notices = state.notices |
| | | // debugger |
| | | const temp = notices.rows.filter(m => { return m.value === notice.type })[0] |
| | | const other = notices.rows.filter(m => { return m.value !== notice.type }) |
| | | temp.noticeData.shift(notice) |
| | | notices.totalRows-- |
| | | if (temp.noticeData.length > 6) { |
| | | temp.noticeData.pop() |
| | | } |
| | | notices.rows = [] |
| | | notices.rows.pop(temp) |
| | | notices.rows.pop.apply(notices.rows, other) |
| | | notices.rows.sort((obj1, obj2) => { |
| | | return obj1.index - obj2.index |
| | | }) |
| | | state.notices = notices |
| | | } |
| | | }, |
| | | |
| | | actions: { |
| | | // ç»å½ |
| | | Login ({ commit }, userInfo) { |
| | | Vue.ls.remove(ALL_APPS_MENU)//æ¸
é¤èåç¼å |
| | | return new Promise((resolve, reject) => { |
| | | login(userInfo).then(response => { |
| | | if (!response.success) { |
| | | reject(response.message) |
| | | return |
| | | } |
| | | // ä»ååº Header ä¸è¯»åï¼å¤çé»è¾ç§»è³ request.js ä¸å¤ç |
| | | // const result = response.data |
| | | // Vue.ls.set(ACCESS_TOKEN, result, 7 * 24 * 60 * 60 * 1000) |
| | | // commit('SET_TOKEN', result) |
| | | resolve() |
| | | // eslint-disable-next-line handle-callback-err |
| | | }).catch(error => { |
| | | // eslint-disable-next-line prefer-promise-reject-errors |
| | | reject('å端æªå¯å¨æä»£çé误') |
| | | }) |
| | | }) |
| | | }, |
| | | |
| | | // è·åç¨æ·ä¿¡æ¯ |
| | | GetInfo ({ commit }) { |
| | | return new Promise((resolve, reject) => { |
| | | getLoginUser().then(response => { |
| | | if (response.success) { |
| | | const data = response.data |
| | | commit('SET_ADMINTYPE', data.adminType) |
| | | commit('SET_ROLES', 1) |
| | | commit('SET_BUTTONS', data.permissions) |
| | | commit('SET_ALL_BUTTONS', data.allPermissions) |
| | | commit('SET_INFO', data) |
| | | commit('SET_NAME', { name: data.name, welcome: welcome() }) |
| | | if (data.avatar != null) { |
| | | sysFileInfoPreview({ id: data.avatar }).then((res) => { |
| | | commit('SET_AVATAR', window.URL.createObjectURL(new Blob([res]))) |
| | | }).catch((err) => { |
| | | this.$message.error('é¢è§é误ï¼' + err.message) |
| | | }) |
| | | // commit('SET_AVATAR', process.env.VUE_APP_API_BASE_URL + '/sysFileInfo/preview?id=' + data.avatar) |
| | | } else { |
| | | commit('SET_AVATAR', '/avatar2.jpg') |
| | | } |
| | | resolve(data) |
| | | } else { |
| | | // eslint-disable-next-line no-undef |
| | | reject(new Error(response.message)) |
| | | } |
| | | }) |
| | | //ç»å½è¿æåå端ä¼åçé«é¢è®¿é®å端çé®é¢ |
| | | //.catch(error => { |
| | | // reject(error) |
| | | //}) |
| | | }) |
| | | }, |
| | | |
| | | // ç»åº |
| | | Logout ({ commit, state }) { |
| | | return new Promise((resolve) => { |
| | | logout(state.token).then(() => { |
| | | resolve() |
| | | }).catch(() => { |
| | | resolve() |
| | | }).finally(() => { |
| | | commit('SET_TOKEN', '') |
| | | commit('SET_ROLES', []) |
| | | commit('SET_BUTTONS', []) |
| | | commit('SET_ALL_BUTTONS', []) |
| | | commit('SET_ADMINTYPE', '') |
| | | Vue.ls.remove(ACCESS_TOKEN) |
| | | Vue.ls.remove(ALL_APPS_MENU) |
| | | Vue.ls.remove(DICT_TYPE_TREE_DATA) |
| | | Vue.ls.remove('X-Access-Token') |
| | | }) |
| | | }) |
| | | }, |
| | | |
| | | // å è½½ææåå
¸æ°æ® |
| | | dictTypeData () { |
| | | return new Promise((resolve, reject) => { |
| | | sysDictTypeTree().then((data) => { |
| | | if (data.success) { |
| | | const result = data.data |
| | | Vue.ls.set(DICT_TYPE_TREE_DATA, result) |
| | | resolve() |
| | | } else { |
| | | // eslint-disable-next-line no-undef |
| | | reject(new Error(data.message)) |
| | | } |
| | | }).catch(error => { |
| | | reject(error) |
| | | }) |
| | | }) |
| | | }, |
| | | |
| | | // 忢åºç¨èå |
| | | MenuChange ({ commit }, application) { |
| | | return new Promise((resolve) => { |
| | | sysMenuChange({ application: application.code }).then((res) => { |
| | | const apps = { 'code': '', 'name': '', 'active': '', 'menu': '' } |
| | | apps.active = true |
| | | apps.menu = res.data |
| | | // eslint-disable-next-line camelcase |
| | | const all_app_menu = Vue.ls.get(ALL_APPS_MENU) |
| | | // eslint-disable-next-line camelcase |
| | | const new_false_all_app_menu = [] |
| | | // å
å»é¤ææé»è®¤çï¼ä»¥ä¸ºæ¤æ¶åæ¢çå³å°æä¸ºå端ç¼åé»è®¤çåºç¨ |
| | | all_app_menu.forEach(item => { |
| | | if (item.active) { |
| | | item.active = false |
| | | } |
| | | new_false_all_app_menu.push(item) |
| | | }) |
| | | // æ¤æ¶ç¼åä¸å
¨é¨é½æ¯ä¸é»è®¤çåºç¨ |
| | | Vue.ls.set(ALL_APPS_MENU, new_false_all_app_menu) |
| | | apps.name = application.name |
| | | apps.code = application.code |
| | | const applocationR = [] |
| | | applocationR.push(apps) |
| | | Vue.ls.set(ALL_APPS_MENU, applocationR) |
| | | resolve(res) |
| | | const antDesignmenus = res.data |
| | | store.dispatch('GenerateRoutes', { antDesignmenus }).then(() => { |
| | | router.addRoutes(store.getters.addRouters) |
| | | }) |
| | | // 忢åºç¨å·æ°æ´ä½çé¢ï¼æä¸åæ¶ |
| | | // window.location.reload() |
| | | }).catch(() => { |
| | | resolve() |
| | | }) |
| | | }) |
| | | }, |
| | | // è·åæ¶å°çéç¥ |
| | | getNoticReceiveList({ |
| | | commit |
| | | }) { |
| | | return new Promise((resolve, reject) => { |
| | | unReadNotice({ |
| | | pageSize: 6 |
| | | }).then((data) => { |
| | | if (data.success) { |
| | | const result = data.data |
| | | commit('SET_NOTICES', result) |
| | | resolve() |
| | | } else { |
| | | // eslint-disable-next-line no-undef |
| | | reject(new Error(data.message)) |
| | | } |
| | | }).catch(error => { |
| | | reject(error) |
| | | }) |
| | | }) |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | export default user |
¶Ô±ÈÐÂÎļþ |
| | |
| | | export const ACCESS_TOKEN = 'Access-Token' |
| | | export const SIDEBAR_TYPE = 'SIDEBAR_TYPE' |
| | | export const ALL_APPS_MENU = 'ALL_APPS_MENU' |
| | | export const DEFAULT_THEME = 'DEFAULT_THEME' |
| | | export const DEFAULT_LAYOUT_MODE = 'DEFAULT_LAYOUT_MODE' |
| | | export const DEFAULT_COLOR = 'DEFAULT_COLOR' |
| | | export const DEFAULT_COLOR_WEAK = 'DEFAULT_COLOR_WEAK' |
| | | export const DEFAULT_FIXED_HEADER = 'DEFAULT_FIXED_HEADER' |
| | | export const DEFAULT_FIXED_SIDEMENU = 'DEFAULT_FIXED_SIDEMENU' |
| | | export const DEFAULT_FIXED_HEADER_HIDDEN = 'DEFAULT_FIXED_HEADER_HIDDEN' |
| | | export const DEFAULT_CONTENT_WIDTH_TYPE = 'DEFAULT_CONTENT_WIDTH_TYPE' |
| | | export const DEFAULT_MULTI_TAB = 'DEFAULT_MULTI_TAB' |
| | | export const DEFAULT_CRUMBS_STATE = 'DEFAULT_CRUMBS_STATE' |
| | | export const DICT_TYPE_TREE_DATA = 'DICT_TYPE_TREE_DATA' |
| | | export const NOTICE_RECEIVED = 'NOTICE_RECEIVED' |
| | | export const CONTENT_WIDTH_TYPE = { |
| | | Fluid: 'Fluid', |
| | | Fixed: 'Fixed' |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import store from '@/store' |
| | | |
| | | /** |
| | | * ç¼åä¸çå·²éä¸åºç¨ |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/06/27 02:34 |
| | | */ |
| | | export function sysApplication () { |
| | | return store.getters.applocation |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | const VueAxios = { |
| | | vm: {}, |
| | | // eslint-disable-next-line no-unused-vars |
| | | install (Vue, instance) { |
| | | if (this.installed) { |
| | | return |
| | | } |
| | | this.installed = true |
| | | |
| | | if (!instance) { |
| | | // eslint-disable-next-line no-console |
| | | console.error('You have to install axios') |
| | | return |
| | | } |
| | | |
| | | Vue.axios = instance |
| | | |
| | | Object.defineProperties(Vue.prototype, { |
| | | axios: { |
| | | get: function get () { |
| | | return instance |
| | | } |
| | | }, |
| | | $http: { |
| | | get: function get () { |
| | | return instance |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | |
| | | export { |
| | | VueAxios |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import enquireJs from 'enquire.js' |
| | | |
| | | export const DEVICE_TYPE = { |
| | | DESKTOP: 'desktop', |
| | | TABLET: 'tablet', |
| | | MOBILE: 'mobile' |
| | | } |
| | | |
| | | export const deviceEnquire = function (callback) { |
| | | const matchDesktop = { |
| | | match: () => { |
| | | callback && callback(DEVICE_TYPE.DESKTOP) |
| | | } |
| | | } |
| | | |
| | | const matchLablet = { |
| | | match: () => { |
| | | callback && callback(DEVICE_TYPE.TABLET) |
| | | } |
| | | } |
| | | |
| | | const matchMobile = { |
| | | match: () => { |
| | | callback && callback(DEVICE_TYPE.MOBILE) |
| | | } |
| | | } |
| | | |
| | | // screen and (max-width: 1087.99px) |
| | | enquireJs |
| | | .register('screen and (max-width: 576px)', matchMobile) |
| | | .register('screen and (min-width: 576px) and (max-width: 1199px)', matchLablet) |
| | | .register('screen and (min-width: 1200px)', matchDesktop) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | export const setDocumentTitle = function (title) { |
| | | document.title = title |
| | | const ua = navigator.userAgent |
| | | // eslint-disable-next-line |
| | | const regex = /\bMicroMessenger\/([\d\.]+)/ |
| | | if (regex.test(ua) && /ip(hone|od|ad)/i.test(ua)) { |
| | | const i = document.createElement('iframe') |
| | | i.src = '/favicon.ico' |
| | | i.style.display = 'none' |
| | | i.onload = function () { |
| | | setTimeout(function () { |
| | | i.remove() |
| | | }, 9) |
| | | } |
| | | document.body.appendChild(i) |
| | | } |
| | | } |
| | | |
| | | export const domTitle = 'éæ±½WMS' |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import Vue from 'vue' |
| | | import { DICT_TYPE_TREE_DATA } from '@/store/mutation-types' |
| | | import moment from 'moment' |
| | | import 'moment/locale/zh-cn' |
| | | moment.locale('zh-cn') |
| | | |
| | | Vue.filter('NumberFormat', function (value) { |
| | | if (!value) { |
| | | return '0' |
| | | } |
| | | const intPartFormat = value.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') // ååä½ç¬¦ 1,100,000.00 |
| | | return intPartFormat |
| | | }) |
| | | |
| | | Vue.filter('moment', function (dataStr, pattern = 'YYYY-MM-DD HH:mm:ss') { |
| | | return moment(dataStr).format(pattern) |
| | | }) |
| | | |
| | | /** |
| | | * é颿 ¼å¼å ï¼ä½¿ç¨æ¹æ³ï¼{{ val | Fmoney }} |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020-9-15 15:02:20 |
| | | */ |
| | | Vue.filter('Fmoney', function (val) { |
| | | // eslint-disable-next-line no-useless-escape |
| | | val = val.toString().replace(/\$|\,/g, '') |
| | | if (isNaN(val)) { |
| | | val = '0' |
| | | } |
| | | // eslint-disable-next-line eqeqeq |
| | | const sign = (val == (val = Math.abs(val))) |
| | | val = Math.floor(val * 100 + 0.50000000001) |
| | | let cents = val % 100 |
| | | val = Math.floor(val / 100).toString() |
| | | if (cents < 10) { |
| | | cents = '0' + cents |
| | | } |
| | | // eslint-disable-next-line no-undef |
| | | for (let i = 0; i < Math.floor((val.length - (1 + i)) / 3); i++) { |
| | | val = val.substring(0, val.length - (4 * i + 3)) + ',' + val.substring(val.length - (4 * i + 3)) |
| | | } |
| | | return (((sign) ? '' : '-') + val + '.' + cents) |
| | | }) |
| | | |
| | | /** |
| | | * ç¿»è¯ä½¿ç¨æ¹æ³ï¼ç´æ¥è¿åç¿»è¯åçname {{ code | dictType(value) }} |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020-9-15 15:02:20 |
| | | */ |
| | | Vue.filter('dictType', function (code, value) { |
| | | const dictTypeTree = Vue.ls.get(DICT_TYPE_TREE_DATA) |
| | | if (dictTypeTree === undefined) { |
| | | return 'ééæ°ç»å½' |
| | | } |
| | | // eslint-disable-next-line eqeqeq |
| | | const tree = dictTypeTree.filter(item => item.code == code)[0].children |
| | | if (tree === undefined || tree.length === 0) { |
| | | return 'æ æ¤åå
¸' |
| | | } |
| | | // eslint-disable-next-line eqeqeq |
| | | const values = tree.filter(item => item.code == value) |
| | | if (values.length === undefined || values.length === 0) { |
| | | return 'æ æ¤åå
¸' |
| | | } |
| | | return values[0].name |
| | | }) |
| | | |
| | | /** |
| | | * è·åæä¸ªcodeä¸åå
¸çå表ï¼å¤ç¨äºåå
¸ä¸ææ¡ï¼ä½¿ç¨æ¹æ³ï¼{{ code | dictData }} |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020-9-19 22:40:22 |
| | | */ |
| | | Vue.filter('dictData', function (code) { |
| | | const dictTypeTree = Vue.ls.get(DICT_TYPE_TREE_DATA) |
| | | if (dictTypeTree === undefined) { |
| | | return [] |
| | | } |
| | | // eslint-disable-next-line eqeqeq |
| | | const tree = dictTypeTree.filter(item => item.code == code)[0].children |
| | | if (tree === undefined) { |
| | | return [] |
| | | } |
| | | return tree |
| | | }) |
| | | |
| | | /** |
| | | * è·åææåå
¸æ°ç» |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2021-2-8 01:13 |
| | | */ |
| | | Vue.filter('dictDataAll', function () { |
| | | return Vue.ls.get(DICT_TYPE_TREE_DATA) |
| | | }) |
¶Ô±ÈÐÂÎļþ |
| | |
| | | export const PERMISSION_ENUM = { |
| | | 'add': { key: 'add', label: 'æ°å¢' }, |
| | | 'delete': { key: 'delete', label: 'å é¤' }, |
| | | 'edit': { key: 'edit', label: 'ä¿®æ¹' }, |
| | | 'query': { key: 'query', label: 'æ¥è¯¢' }, |
| | | 'get': { key: 'get', label: '详æ
' }, |
| | | 'enable': { key: 'enable', label: 'å¯ç¨' }, |
| | | 'disable': { key: 'disable', label: 'ç¦ç¨' }, |
| | | 'import': { key: 'import', label: '导å
¥' }, |
| | | 'export': { key: 'export', label: '导åº' } |
| | | } |
| | | |
| | | function plugin (Vue) { |
| | | if (plugin.installed) { |
| | | return |
| | | } |
| | | |
| | | !Vue.prototype.$auth && Object.defineProperties(Vue.prototype, { |
| | | $auth: { |
| | | get () { |
| | | const _this = this |
| | | return (permissions) => { |
| | | const [permission, action] = permissions.split('.') |
| | | const permissionList = _this.$store.getters.roles.permissions |
| | | return permissionList.find((val) => { |
| | | return val.permissionId === permission |
| | | }).actionList.findIndex((val) => { |
| | | return val === action |
| | | }) > -1 |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | |
| | | !Vue.prototype.$enum && Object.defineProperties(Vue.prototype, { |
| | | $enum: { |
| | | get () { |
| | | // const _this = this; |
| | | return (val) => { |
| | | let result = PERMISSION_ENUM |
| | | val && val.split('.').forEach(v => { |
| | | result = result && result[v] || null |
| | | }) |
| | | return result |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | |
| | | export default plugin |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import Vue from 'vue' |
| | | |
| | | // signalR 客æ·ç«¯è°ç¨ |
| | | // æå¡å¨ç«¯åéæ¶æ¯ |
| | | |
| | | // ç»æä¸ä¸ªä¸ªäºº |
| | | export function messagesendtosomeone (parameter) { |
| | | Vue.socket.invoke('ClientsSendMessage', { userId: parameter.userId, title: parameter.title, message: parameter.message, messagetype: parameter.messagetype }) |
| | | .then(response => { |
| | | }) |
| | | } |
| | | |
| | | // ç»ææäºº |
| | | export function messagesendtoAll (parameter) { |
| | | Vue.socket.invoke('ClientsSendMessagetoAll', { title: parameter.title, message: parameter.message, messagetype: parameter.messagetype }) |
| | | .then(response => { |
| | | }) |
| | | } |
| | | |
| | | // ç»æäºäºº |
| | | export function messagesendtouserList (parameter) { |
| | | Vue.socket.invoke('ClientsSendMessagetoUsers', { userId: parameter.userList, title: parameter.title, message: parameter.message, messagetype: parameter.messagetype }) |
| | | .then(response => { |
| | | }) |
| | | } |
| | | // é¤äºåé人 åéç»å©ä¸ç人 |
| | | export function messagesendtoexsomeone (parameter) { |
| | | Vue.socket.invoke('ClientsSendMessagetoOther', { userIds: parameter.userIds, title: parameter.title, message: parameter.message, messagetype: parameter.messagetype }) |
| | | .then(response => { |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /* |
| | | * @Author: your name |
| | | * @Date: 2021-05-18 23:01:55 |
| | | * @LastEditTime: 2021-05-19 00:49:11 |
| | | * @LastEditors: your name |
| | | * @Description: In User Settings Edit |
| | | * @FilePath: \frontend\src\utils\mixin.js |
| | | */ |
| | | // import Vue from 'vue' |
| | | import { deviceEnquire, DEVICE_TYPE } from '@/utils/device' |
| | | import { mapState } from 'vuex' |
| | | |
| | | // const mixinsComputed = Vue.config.optionMergeStrategies.computed |
| | | // const mixinsMethods = Vue.config.optionMergeStrategies.methods |
| | | |
| | | const mixin = { |
| | | computed: { |
| | | ...mapState({ |
| | | layoutMode: state => state.app.layout, |
| | | navTheme: state => state.app.theme, |
| | | primaryColor: state => state.app.color, |
| | | colorWeak: state => state.app.weak, |
| | | fixedHeader: state => state.app.fixedHeader, |
| | | fixSiderbar: state => state.app.fixSiderbar, |
| | | fixSidebar: state => state.app.fixSiderbar, |
| | | contentWidth: state => state.app.contentWidth, |
| | | autoHideHeader: state => state.app.autoHideHeader, |
| | | sidebarOpened: state => state.app.sidebar, |
| | | multiTab: state => state.app.multiTab, |
| | | crumbsState: state => state.app.crumbsState |
| | | }) |
| | | }, |
| | | methods: { |
| | | isTopMenu () { |
| | | return this.layoutMode === 'topmenu' |
| | | }, |
| | | isSideMenu () { |
| | | return !this.isTopMenu() |
| | | } |
| | | } |
| | | } |
| | | |
| | | const mixinDevice = { |
| | | computed: { |
| | | ...mapState({ |
| | | device: state => state.app.device |
| | | }) |
| | | }, |
| | | methods: { |
| | | isMobile () { |
| | | return this.device === DEVICE_TYPE.MOBILE |
| | | }, |
| | | isDesktop () { |
| | | return this.device === DEVICE_TYPE.DESKTOP |
| | | }, |
| | | isTablet () { |
| | | return this.device === DEVICE_TYPE.TABLET |
| | | } |
| | | } |
| | | } |
| | | |
| | | const AppDeviceEnquire = { |
| | | mounted () { |
| | | const { $store } = this |
| | | deviceEnquire(deviceType => { |
| | | switch (deviceType) { |
| | | case DEVICE_TYPE.DESKTOP: |
| | | $store.commit('TOGGLE_DEVICE', 'desktop') |
| | | $store.dispatch('setSidebar', true) |
| | | break |
| | | case DEVICE_TYPE.TABLET: |
| | | $store.commit('TOGGLE_DEVICE', 'tablet') |
| | | $store.dispatch('setSidebar', false) |
| | | break |
| | | case DEVICE_TYPE.MOBILE: |
| | | default: |
| | | $store.commit('TOGGLE_DEVICE', 'mobile') |
| | | $store.dispatch('setSidebar', true) |
| | | break |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | |
| | | export { mixin, AppDeviceEnquire, mixinDevice } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import store from '@/store' |
| | | |
| | | export function actionToObject (json) { |
| | | try { |
| | | return JSON.parse(json) |
| | | } catch (e) { |
| | | } |
| | | return [] |
| | | } |
| | | |
| | | /** |
| | | * æ§å¶æé®æ¯å¦æ¾ç¤º |
| | | * |
| | | * @author yubaoshan |
| | | * @date 2020/06/27 02:34 |
| | | */ |
| | | export function hasBtnPermission (permission) { |
| | | const myBtns = store.getters.buttons |
| | | const allBtns = store.getters.allButtons |
| | | const admintype = store.getters.admintype |
| | | // eslint-disable-next-line eqeqeq |
| | | if (admintype == '1') { |
| | | return true |
| | | } |
| | | // ææç³»ç»æé®ä¸ä¸åå¨ï¼åä¸éå¶ |
| | | return allBtns.indexOf(permission) === -1 || myBtns.indexOf(permission) > -1 |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import Vue from 'vue' |
| | | import axios from 'axios' |
| | | import store from '@/store' |
| | | // import router from './router' |
| | | import { message, Modal, notification } from 'ant-design-vue' /// es/notification |
| | | import { VueAxios } from './axios' |
| | | import { ACCESS_TOKEN } from '@/store/mutation-types' |
| | | |
| | | // å建 axios å®ä¾ |
| | | const service = axios.create({ |
| | | baseURL: 'http://10.103.9.5:7788/api', // api base_url |
| | | timeout: 6000 // 请æ±è¶
æ¶æ¶é´ |
| | | }) |
| | | |
| | | const err = error => { |
| | | if (error.response) { |
| | | const data = error.response.data |
| | | const token = Vue.ls.get(ACCESS_TOKEN) |
| | | |
| | | if (error.response.status === 403) { |
| | | notification.error({ |
| | | message: 'Forbidden', |
| | | description: data.message |
| | | }) |
| | | } |
| | | if (error.response.status === 500) { |
| | | if (data.message && data.message.length > 0) { |
| | | message.error(data.message) |
| | | } |
| | | } |
| | | if (error.response.status === 401 && !(data.result && data.result.isLogin)) { |
| | | notification.error({ |
| | | message: 'Unauthorized', |
| | | description: 'Authorization verification failed' |
| | | }) |
| | | if (token) { |
| | | store.dispatch('Logout').then(() => { |
| | | setTimeout(() => { |
| | | window.location.reload() |
| | | }, 1500) |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | return Promise.reject(error) |
| | | } |
| | | |
| | | // request interceptor |
| | | service.interceptors.request.use(config => { |
| | | const token = Vue.ls.get(ACCESS_TOKEN) |
| | | const refreshToken = Vue.ls.get('X-Access-Token') |
| | | if (token) { |
| | | config.headers['Authorization'] = 'Bearer ' + token |
| | | } |
| | | if (refreshToken) { |
| | | config.headers['X-Authorization'] = 'Bearer ' + refreshToken |
| | | } |
| | | return config |
| | | }, err) |
| | | |
| | | |
| | | const _requestErrAlert = function(msg,callback,oktext='确认') { |
| | | Modal.error({ |
| | | title: 'ç³»ç»æç¤ºï¼', |
| | | content: msg, |
| | | keyboard: false, |
| | | okText: oktext, |
| | | onOk: () => { |
| | | callback && callback() |
| | | } |
| | | }) |
| | | } |
| | | |
| | | const requerstErrMsg = function(msg){ |
| | | |
| | | } |
| | | |
| | | /** |
| | | * response interceptor |
| | | * ææè¯·æ±ç»ä¸è¿å |
| | | */ |
| | | service.interceptors.response.use(response => { |
| | | // LocalStorage åå¨ç token å refreshTokenï¼ä¸è®¾å®è¿ææ¶é´ï¼ç±æå¡ç«¯ç»ä¸å¤ç |
| | | if (response.headers['access-token'] && response.headers['access-token'] !== 'invalid_token') { |
| | | Vue.ls.set(ACCESS_TOKEN, response.headers['access-token'] /*, 7 * 24 * 60 * 60 * 1000 */) |
| | | store.commit('SET_TOKEN', response.headers['access-token']) |
| | | } |
| | | if (response.headers['x-access-token']) { |
| | | Vue.ls.set('X-Access-Token', response.headers['x-access-token'] /*, 7 * 24 * 60 * 60 * 1000 */) |
| | | } |
| | | if (response.request.responseType === 'blob') { |
| | | return response |
| | | } |
| | | |
| | | if (response.status===200) { |
| | | const resData = response.data |
| | | const code = response.data.code |
| | | if (resData.success && ((code && code === 200)||(response.data.repCode==='0000'))) { |
| | | return resData |
| | | } else if (!store.state.app.hasError && code === 401) { |
| | | _requestErrAlert(resData.message,()=>{ |
| | | store.dispatch('SetHasError', false) |
| | | window.location.reload() |
| | | },'éæ°ç»å½') |
| | | |
| | | // ææè¿æï¼æ¸
çæ¬å°ç¼åçè®°å½ï¼ä¸è®º Modal.error ç onOk æ¯å¦ç¡®è®¤ï¼å
æ¸
ç |
| | | // å¦åä¼å¨æ²¡æ OK æ¶ï¼å·æ°ç½é¡µæè
éæ°è®¿é®ï¼é½ä¼å¼¹åºâæªææçæç¤ºæ¡â |
| | | // è¿æ ·çè°æ´åï¼TOKEN ä¸ºç©ºç´æ¥éå®åï¼SetHasError ç设置å夿å
¶å®å·²ç»ç¨ä¸ä¸ |
| | | Vue.ls.remove(ACCESS_TOKEN) |
| | | Vue.ls.remove('X-Access-Token') |
| | | store.dispatch('SetHasError', true) |
| | | return resData |
| | | } else { |
| | | let msg = resData.message; |
| | | if (!msg) msg = 'ç½ç»é误ï¼è¯·ç¨ååå°è¯ï¼'; |
| | | message.error(msg) |
| | | console.log(response) |
| | | return Promise.reject(response) |
| | | } |
| | | } else { |
| | | message.error('ç½ç»é误ï¼è¯·ç¨ååå°è¯ï¼') |
| | | console.log(response) |
| | | return Promise.reject(response) |
| | | } |
| | | }, err) |
| | | |
| | | const installer = { |
| | | vm: {}, |
| | | install(Vue) { |
| | | Vue.use(VueAxios, service) |
| | | } |
| | | } |
| | | |
| | | export { installer as VueAxios, service as axios } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import cloneDeep from 'lodash.clonedeep' |
| | | |
| | | export function convertRoutes (nodes) { |
| | | if (!nodes) return null |
| | | |
| | | nodes = cloneDeep(nodes) |
| | | |
| | | let queue = Array.isArray(nodes) ? nodes.concat() : [nodes] |
| | | |
| | | while (queue.length) { |
| | | const levelSize = queue.length |
| | | |
| | | for (let i = 0; i < levelSize; i++) { |
| | | const node = queue.shift() |
| | | |
| | | if (!node.children || !node.children.length) continue |
| | | |
| | | node.children.forEach(child => { |
| | | // 转åç¸å¯¹è·¯å¾ |
| | | if (child.path[0] !== '/' && !child.path.startsWith('http')) { |
| | | child.path = node.path.replace(/(\w*)[/]*$/, `$1/${child.path}`) |
| | | } |
| | | }) |
| | | |
| | | queue = queue.concat(node.children) |
| | | } |
| | | } |
| | | |
| | | return nodes |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import store from '@/store' |
| | | import { Modal, message } from 'ant-design-vue' |
| | | import * as SignalR from '@microsoft/signalr' |
| | | |
| | | const EventEmitter = require('events') |
| | | |
| | | const defaultOptions = { |
| | | log: false |
| | | } |
| | | |
| | | class SocketConnection extends EventEmitter { |
| | | constructor(connection, options = {}) { |
| | | super() |
| | | this.connection = connection |
| | | this.options = Object.assign(defaultOptions, options) |
| | | this.listened = [] |
| | | this.toSend = [] |
| | | this.offline = false |
| | | this.socket = undefined |
| | | } |
| | | |
| | | /** |
| | | * åä¸ç§æ¶æ¯åªå®ä¹ä¸æ¬¡ |
| | | * |
| | | * @param {string| symbol} event |
| | | * @param {(...args: any[]) => void} listener |
| | | * @memberof SocketConnection |
| | | */ |
| | | one(event, listener) { |
| | | if (this.listeners(event).length === 0) { |
| | | this.on(event, listener) |
| | | } |
| | | } |
| | | |
| | | async _initialize() { |
| | | if(this.socket == undefined){ |
| | | return; |
| | | } |
| | | try { |
| | | await this.socket.start() |
| | | this.emit('onstart') |
| | | if (this.offline) { |
| | | this.emit('onrestart') |
| | | } |
| | | this.offline = false |
| | | } catch (error) { |
| | | setTimeout(async () => { |
| | | await this._initialize() |
| | | }, 5000) |
| | | } |
| | | } |
| | | |
| | | async start(token) { |
| | | // ç»ä»¶éæ°å è½½æ¶, 妿 socket åå¨, ä¸éè¦æ°å»º |
| | | if (!this.socket) { |
| | | this.socket = new SignalR.HubConnectionBuilder() |
| | | .configureLogging(SignalR.LogLevel.Information) |
| | | .withUrl(`/hubs/chathub`, { |
| | | accessTokenFactory: () => token, |
| | | skipNegotiation: true, |
| | | transport: SignalR.HttpTransportType.WebSockets |
| | | }) |
| | | .build() |
| | | |
| | | this.socket.onclose(async () => { |
| | | this.offline = true |
| | | this.emit('onclose') |
| | | await this._initialize() |
| | | }) |
| | | |
| | | this.socket.on('ForceExist', () => { |
| | | // å
³éè¿æ¥ |
| | | this.socket.stop() |
| | | // å¿
é¡» |
| | | this.socket = undefined |
| | | store |
| | | .dispatch('Logout') |
| | | .then(() => { |
| | | Modal.success({ |
| | | title: 'æ¶æ¯', |
| | | content: 'ä½ å·²è¢«å¼ºå¶ä¸çº¿', |
| | | keyboard: false, |
| | | onOk: () => { |
| | | window.location.reload() |
| | | } |
| | | }) |
| | | }) |
| | | .catch(err => { |
| | | message.error({ |
| | | title: 'é误', |
| | | description: err.message |
| | | }) |
| | | }) |
| | | }) |
| | | |
| | | this.socket.on('SingleLoginForceExist', () => { |
| | | // å
³éè¿æ¥ |
| | | this.socket.stop() |
| | | store |
| | | .dispatch('Logout') |
| | | .then(() => { |
| | | Modal.success({ |
| | | title: 'æ¶æ¯', |
| | | content: 'æ¨çè´¦å·å·²å¨å
¶ä»å°æ¹ç»å½ï¼è¢«å¼ºå¶ä¸çº¿', |
| | | keyboard: false, |
| | | onOk: () => { |
| | | window.location.reload() |
| | | } |
| | | }) |
| | | }) |
| | | .catch(err => { |
| | | message.error({ |
| | | title: 'é误', |
| | | description: err.message |
| | | }) |
| | | }) |
| | | }) |
| | | |
| | | await this._initialize() |
| | | } |
| | | } |
| | | |
| | | async authenticate(token) { |
| | | await this.start(token) |
| | | } |
| | | |
| | | listen(method) { |
| | | if (this.offline) return |
| | | |
| | | if (this.listened.some(v => v === method)) return |
| | | this.listened.push(method) |
| | | |
| | | this.one('onstart', () => { |
| | | this.listened.forEach(method => { |
| | | this.socket.on(method, data => { |
| | | if (this.options.log) { |
| | | } |
| | | |
| | | this.emit(method, data) |
| | | }) |
| | | }) |
| | | }) |
| | | } |
| | | |
| | | send(methodName, ...args) { |
| | | if (this.options.log) { |
| | | } |
| | | if (this.offline) return |
| | | |
| | | if (this.socket) { |
| | | this.socket.send(methodName, ...args) |
| | | return |
| | | } |
| | | |
| | | this.one('onstart', () => this.socket.send(methodName, ...args)) |
| | | } |
| | | |
| | | async invoke(methodName, ...args) { |
| | | if (this.options.log) { |
| | | } |
| | | if (this.offline) return false |
| | | |
| | | if (this.socket) { |
| | | return this.socket.invoke(methodName, ...args) |
| | | } |
| | | |
| | | // eslint-disable-next-line no-async-promise-executor |
| | | return new Promise(async resolve => this.one('onstart', () => resolve(this.socket.invoke(methodName, ...args)))) |
| | | } |
| | | } |
| | | |
| | | if (!SignalR) { |
| | | throw new Error('[Vue-SignalR] Cannot locate signalr-client') |
| | | } |
| | | |
| | | function install(Vue, connection) { |
| | | if (!connection) { |
| | | throw new Error('[Vue-SignalR] Cannot locate connection') |
| | | } |
| | | |
| | | const Socket = new SocketConnection(connection) |
| | | |
| | | Vue.socket = Socket |
| | | |
| | | Object.defineProperties(Vue.prototype, { |
| | | $socket: { |
| | | get() { |
| | | return Socket |
| | | } |
| | | } |
| | | }) |
| | | |
| | | Vue.mixin({ |
| | | created() { |
| | | if (this.$options.sockets) { |
| | | const methods = Object.getOwnPropertyNames(this.$options.sockets) |
| | | |
| | | methods.forEach(method => { |
| | | Socket.listen(method) |
| | | |
| | | Socket.one(method, data => this.$options.sockets[method].call(this, data)) |
| | | }) |
| | | } |
| | | |
| | | if (this.$options.subscribe) { |
| | | Socket.one('authenticated', () => { |
| | | this.$options.subscribe.forEach(channel => { |
| | | Socket.invoke('join', channel) |
| | | }) |
| | | }) |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | |
| | | export default install |
¶Ô±ÈÐÂÎļþ |
| | |
| | | export function dateFormat(dateString,fmt) { |
| | | let date = new Date(dateString); |
| | | let ret; |
| | | const opt = { |
| | | "Y+": date.getFullYear().toString(), // å¹´ |
| | | "m+": (date.getMonth() + 1).toString(), // æ |
| | | "d+": date.getDate().toString(), // æ¥ |
| | | "H+": date.getHours().toString(), // æ¶ |
| | | "M+": date.getMinutes().toString(), // å |
| | | "S+": date.getSeconds().toString() // ç§ |
| | | // æå
¶ä»æ ¼å¼ååç¬¦éæ±å¯ä»¥ç»§ç»æ·»å ï¼å¿
须转åæå符串 |
| | | }; |
| | | for (let k in opt) { |
| | | ret = new RegExp("(" + k + ")").exec(fmt); |
| | | if (ret) { |
| | | fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0"))) |
| | | }; |
| | | }; |
| | | return fmt; |
| | | } |
| | | |
| | | export function timeFix () { |
| | | const time = new Date() |
| | | const hour = time.getHours() |
| | | return hour < 9 ? 'æ©ä¸å¥½' : hour <= 11 ? 'ä¸å好' : hour <= 13 ? 'ä¸å好' : hour < 20 ? 'ä¸å好' : 'æä¸å¥½' |
| | | } |
| | | |
| | | export function welcome () { |
| | | const arr = ['伿¯ä¸ä¼å¿å§', 'åå¤åä»ä¹å¢?', 'è¦ä¸è¦æä¸æ LOL', 'æçä½ å¯è½ç´¯äº'] |
| | | const index = Math.floor(Math.random() * arr.length) |
| | | return arr[index] |
| | | } |
| | | |
| | | /** |
| | | * 触å window.resize |
| | | */ |
| | | export function triggerWindowResizeEvent () { |
| | | const event = document.createEvent('HTMLEvents') |
| | | event.initEvent('resize', true, true) |
| | | event.eventType = 'message' |
| | | window.dispatchEvent(event) |
| | | } |
| | | |
| | | export function handleScrollHeader (callback) { |
| | | let timer = 0 |
| | | |
| | | let beforeScrollTop = window.pageYOffset |
| | | callback = callback || function () {} |
| | | window.addEventListener( |
| | | 'scroll', |
| | | event => { |
| | | clearTimeout(timer) |
| | | timer = setTimeout(() => { |
| | | let direction = 'up' |
| | | const afterScrollTop = window.pageYOffset |
| | | const delta = afterScrollTop - beforeScrollTop |
| | | if (delta === 0) { |
| | | return false |
| | | } |
| | | direction = delta > 0 ? 'down' : 'up' |
| | | callback(direction) |
| | | beforeScrollTop = afterScrollTop |
| | | }, 50) |
| | | }, |
| | | false |
| | | ) |
| | | } |
| | | |
| | | export function isIE () { |
| | | const bw = window.navigator.userAgent |
| | | const compare = (s) => bw.indexOf(s) >= 0 |
| | | const ie11 = (() => 'ActiveXObject' in window)() |
| | | return compare('MSIE') || ie11 |
| | | } |
| | | |
| | | /** |
| | | * Remove loading animate |
| | | * @param id parent element id or class |
| | | * @param timeout |
| | | */ |
| | | export function removeLoadingAnimate (id = '', timeout = 1500) { |
| | | if (id === '') { |
| | | return |
| | | } |
| | | setTimeout(() => { |
| | | document.body.removeChild(document.getElementById(id)) |
| | | }, timeout) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | .textOverflow() { |
| | | overflow: hidden; |
| | | white-space: nowrap; |
| | | text-overflow: ellipsis; |
| | | word-break: break-all; |
| | | } |
| | | |
| | | .textOverflowMulti(@line: 3, @bg: #fff) { |
| | | position: relative; |
| | | max-height: @line * 1.5em; |
| | | margin-right: -1em; |
| | | padding-right: 1em; |
| | | overflow: hidden; |
| | | line-height: 1.5em; |
| | | text-align: justify; |
| | | &::before { |
| | | position: absolute; |
| | | right: 14px; |
| | | bottom: 0; |
| | | padding: 0 1px; |
| | | background: @bg; |
| | | content: '...'; |
| | | } |
| | | &::after { |
| | | position: absolute; |
| | | right: 14px; |
| | | width: 1em; |
| | | height: 1em; |
| | | margin-top: 0.2em; |
| | | background: white; |
| | | content: ''; |
| | | } |
| | | } |
| | | |
| | | // mixins for clearfix |
| | | // ------------------------ |
| | | .clearfix() { |
| | | zoom: 1; |
| | | &::before, |
| | | &::after { |
| | | display: table; |
| | | content: ' '; |
| | | } |
| | | &::after { |
| | | clear: both; |
| | | height: 0; |
| | | font-size: 0; |
| | | visibility: hidden; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | 404 page |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: '404' |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="home"> |
| | | <div class="banner"> |
| | | <img alt="Vue logo" style="width: 64px; height: 64px" src="../assets/logo.png"> |
| | | <h3 style="margin-top: 1rem">Welcome to Your Vue.js App</h3> |
| | | </div> |
| | | |
| | | <br/> |
| | | |
| | | <h2># Trend ç»ä»¶ </h2> |
| | | |
| | | <a-divider> æ£å¸¸ </a-divider> |
| | | |
| | | <a-card> |
| | | |
| | | <trend flag="up" style="margin-right: 16px;"> |
| | | <span slot="term">å·¥èµ</span> |
| | | 5% |
| | | </trend> |
| | | <trend flag="up" style="margin-right: 16px;"> |
| | | <span slot="term">å·¥ä½é</span> |
| | | 50% |
| | | </trend> |
| | | <trend flag="down"> |
| | | <span slot="term">身ä½ç¶æ</span> |
| | | 50% |
| | | </trend> |
| | | |
| | | </a-card> |
| | | |
| | | <a-divider> é¢è²å转 </a-divider> |
| | | |
| | | <a-card style="margin-bottom: 3rem"> |
| | | |
| | | <trend flag="up" :reverse-color="true" style="margin-right: 16px;"> |
| | | <span slot="term">å·¥èµ</span> |
| | | 5% |
| | | </trend> |
| | | <trend flag="down" :reverse-color="true" style="margin-right: 16px;"> |
| | | <span slot="term">å·¥ä½é</span> |
| | | 50% |
| | | </trend> |
| | | |
| | | </a-card> |
| | | |
| | | <h2># AvatarList ç»ä»¶ </h2> |
| | | |
| | | <a-divider> AvatarList </a-divider> |
| | | <a-card style="margin-bottom: 3rem"> |
| | | <avatar-list :max-length="3"> |
| | | <avatar-list-item tips="Jake" src="https://gw.alipayobjects.com/zos/rmsportal/zOsKZmFRdUtvpqCImOVY.png" /> |
| | | <avatar-list-item tips="Andy" src="https://gw.alipayobjects.com/zos/rmsportal/sfjbOqnsXXJgNCjCzDBL.png" /> |
| | | <avatar-list-item tips="Niko" src="https://gw.alipayobjects.com/zos/rmsportal/kZzEzemZyKLKFsojXItE.png" /> |
| | | <avatar-list-item tips="Niko" src="https://gw.alipayobjects.com/zos/rmsportal/kZzEzemZyKLKFsojXItE.png" /> |
| | | <avatar-list-item tips="Niko" src="https://gw.alipayobjects.com/zos/rmsportal/kZzEzemZyKLKFsojXItE.png" /> |
| | | <avatar-list-item tips="Niko" src="https://gw.alipayobjects.com/zos/rmsportal/kZzEzemZyKLKFsojXItE.png" /> |
| | | <avatar-list-item tips="Niko" src="https://gw.alipayobjects.com/zos/rmsportal/kZzEzemZyKLKFsojXItE.png" /> |
| | | |
| | | </avatar-list> |
| | | |
| | | <a-divider type="vertical" style="margin: 0 16px" /> |
| | | |
| | | <avatar-list size="mini"> |
| | | <avatar-list-item tips="Jake" src="https://gw.alipayobjects.com/zos/rmsportal/zOsKZmFRdUtvpqCImOVY.png" /> |
| | | <avatar-list-item tips="Andy" src="https://gw.alipayobjects.com/zos/rmsportal/sfjbOqnsXXJgNCjCzDBL.png" /> |
| | | <avatar-list-item tips="Niko" src="https://gw.alipayobjects.com/zos/rmsportal/kZzEzemZyKLKFsojXItE.png" /> |
| | | </avatar-list> |
| | | </a-card> |
| | | |
| | | <h2># CountDown ç»ä»¶ </h2> |
| | | |
| | | <a-divider> CountDown </a-divider> |
| | | <a-card style="margin-bottom: 3rem"> |
| | | <count-down |
| | | style="font-size: 2rem" |
| | | :target="new Date().getTime() + 3000000" |
| | | :on-end="onEndHandle"> |
| | | </count-down> |
| | | |
| | | <a-divider type="vertical" style="margin: 0 16px" /> |
| | | |
| | | <count-down |
| | | style="font-size: 2rem" |
| | | :target="new Date().getTime() + 10000" |
| | | :on-end="onEndHandle2"> |
| | | </count-down> |
| | | </a-card> |
| | | |
| | | <h2># Ellipsis ç»ä»¶ </h2> |
| | | |
| | | <a-divider> Ellipsis </a-divider> |
| | | <a-card style="margin-bottom: 3rem"> |
| | | <ellipsis :length="100" tooltip> |
| | | There were injuries alleged in three cases in 2015, and a |
| | | fourth incident in September, according to the safety recall report. After meeting with US regulators in October, the firm decided to issue a voluntary recall. |
| | | </ellipsis> |
| | | </a-card> |
| | | |
| | | <h2># NumberInfo ç»ä»¶ </h2> |
| | | |
| | | <a-divider> NumberInfo </a-divider> |
| | | <a-card style="margin-bottom: 3rem"> |
| | | <number-info |
| | | :sub-title="() => { return 'Visits this week' }" |
| | | :total="12321" |
| | | status="up" |
| | | :sub-total="17.1"></number-info> |
| | | </a-card> |
| | | |
| | | <h2># TagSelect ç»ä»¶ </h2> |
| | | |
| | | <a-divider> TagSelect </a-divider> |
| | | <a-card style="margin-bottom: 3rem"> |
| | | <tag-select> |
| | | <tag-select-option value="cat1">ç±»ç®1</tag-select-option> |
| | | <tag-select-option value="cat2">ç±»ç®2</tag-select-option> |
| | | <tag-select-option value="cat3">ç±»ç®3</tag-select-option> |
| | | <tag-select-option value="cat4">ç±»ç®4</tag-select-option> |
| | | <tag-select-option value="cat5">ç±»ç®5</tag-select-option> |
| | | <tag-select-option value="cat6">ç±»ç®6</tag-select-option> |
| | | <tag-select-option value="cat7">ç±»ç®7</tag-select-option> |
| | | </tag-select> |
| | | </a-card> |
| | | |
| | | <h2># DescriptionList ç»ä»¶ </h2> |
| | | |
| | | <a-divider> DescriptionList </a-divider> |
| | | <a-card style="margin-bottom: 3rem"> |
| | | <description-list title="ç»åç§°" size="small"> |
| | | <description-list-item term="è´è´£äºº">æä¸ä¸</description-list-item> |
| | | <description-list-item term="è§è²ç ">1234567</description-list-item> |
| | | <description-list-item term="æå±é¨é¨">XXå
¬å¸-YYé¨</description-list-item> |
| | | <description-list-item term="è¿ææ¶é´">2018-08-08</description-list-item> |
| | | <description-list-item term="æè¿°">è¿æ®µæè¿°å¾é¿å¾é¿å¾é¿å¾é¿å¾é¿å¾é¿å¾é¿å¾é¿å¾é¿å¾é¿å¾é¿å¾é¿å¾é¿å¾é¿...</description-list-item> |
| | | </description-list> |
| | | </a-card> |
| | | |
| | | <a-divider> TagCloud </a-divider> |
| | | <a-card style="margin-bottom: 3rem"> |
| | | <tag-cloud :tag-list="tagCloudData"></tag-cloud> |
| | | </a-card> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | // @ is an alias to /src |
| | | |
| | | import Trend from '@/components/Trend' |
| | | import AvatarList from '@/components/AvatarList' |
| | | import CountDown from '@/components/CountDown/CountDown' |
| | | import Ellipsis from '@/components/Ellipsis' |
| | | import NumberInfo from '@/components/NumberInfo' |
| | | import TagSelect from '@/components/TagSelect' |
| | | import { DescriptionList, TagCloud } from '@/components/' |
| | | |
| | | const AvatarListItem = AvatarList.AvatarItem |
| | | const TagSelectOption = TagSelect.Option |
| | | |
| | | const DescriptionListItem = DescriptionList.Item |
| | | |
| | | export default { |
| | | name: 'Home', |
| | | components: { |
| | | NumberInfo, |
| | | Ellipsis, |
| | | CountDown, |
| | | Trend, |
| | | AvatarList, |
| | | AvatarListItem, |
| | | TagSelect, |
| | | TagSelectOption, |
| | | TagCloud, |
| | | DescriptionList, |
| | | DescriptionListItem |
| | | }, |
| | | data () { |
| | | return { |
| | | targetTime: new Date().getTime() + 3900000, |
| | | tagCloudData: [] |
| | | } |
| | | }, |
| | | created () { |
| | | this.getTagCloudData() |
| | | }, |
| | | methods: { |
| | | onEndHandle () { |
| | | this.$message.success('CountDown callback!!!') |
| | | }, |
| | | onEndHandle2 () { |
| | | this.$notification.open({ |
| | | message: 'Notification Title', |
| | | description: 'This is the content of the notification. This is the content of the notification. This is the content of the notification.' |
| | | }) |
| | | }, |
| | | getTagCloudData () { |
| | | this.$http.get('/data/antv/tag-cloud').then(res => { |
| | | this.tagCloudData = res.result |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .home { |
| | | width: 900px; |
| | | margin: 0 auto; |
| | | padding: 25px 0; |
| | | } |
| | | .home > .banner { |
| | | text-align: center; |
| | | padding: 25px 0; |
| | | margin: 25px 0; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-modal |
| | | title="æ°å¢ä»£ç çæé
ç½®" |
| | | :width="900" |
| | | :visible="visible" |
| | | :confirmLoading="confirmLoading" |
| | | @ok="handleSubmit" |
| | | @cancel="handleCancel"> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <a-form :form="form"> |
| | | <a-row :gutter="24"> |
| | | <a-col :md="12" :sm="24"> |
| | | <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="çæåº" has-feedback> |
| | | <a-select |
| | | style="width: 100%" |
| | | placeholder="è¯·éæ©æ°æ®åº" |
| | | v-decorator="['databaseName', {rules: [{ required: true, message: 'è¯·éæ©æ°æ®åºï¼' }]}]"> |
| | | <a-select-option |
| | | v-for="(item,index) in databaseNameData" |
| | | :key="index" |
| | | :value="item.databaseName" |
| | | @click="databaseNameSele(item)">{{ item.databaseName }}</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | </a-col> |
| | | </a-row> |
| | | <a-row :gutter="24"> |
| | | <a-col :md="12" :sm="24"> |
| | | <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="çæè¡¨" has-feedback> |
| | | <a-select |
| | | style="width: 100%" |
| | | placeholder="è¯·éæ©æ°æ®åºè¡¨" |
| | | v-decorator="['tableName', {rules: [{ required: true, message: 'è¯·éæ©æ°æ®åºè¡¨ï¼' }]}]"> |
| | | <a-select-option |
| | | v-for="(item,index) in tableNameData" |
| | | :key="index" |
| | | :value="item.tableName" |
| | | @click="tableNameSele(item)">{{ item.tableName }}</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="12" :sm="24"> |
| | | <a-form-item label="ä¸å¡å" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input |
| | | placeholder="请è¾å
¥ä¸å¡å" |
| | | v-decorator="['busName', {rules: [{required: true, message: '请è¾å
¥ä¸å¡åï¼'}]}]" /> |
| | | </a-form-item> |
| | | </a-col> |
| | | <!--<a-col :md="12" :sm="24"> |
| | | <a-form-item |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | label="ç§»é¤åç¼" |
| | | > |
| | | <a-radio-group v-decorator="['tablePrefix',{rules: [{ required: true, message: 'è¯·éæ©æ¯å¦ç§»é¤åç¼ï¼' }]}]" > |
| | | <a-radio v-for="(item,index) in tablePrefixData" :key="index" :value="item.code" @click="tablePrefixRadio(item.code)">{{ item.name }}</a-radio> |
| | | </a-radio-group> |
| | | </a-form-item> |
| | | </a-col> --> |
| | | </a-row> |
| | | <a-row :gutter="24"> |
| | | <a-col :md="12" :sm="24"> |
| | | <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="èååç±»" has-feedback> |
| | | <a-select |
| | | style="width: 100%" |
| | | placeholder="è¯·éæ©åºç¨åç±»" |
| | | v-decorator="['menuApplication', {rules: [{ required: true, message: 'è¯·éæ©åºç¨åç±»ï¼' }]}]"> |
| | | <a-select-option |
| | | v-for="(item,index) in appData" |
| | | :key="index" |
| | | :value="item.code" |
| | | @click="changeApplication(item.code)">{{ item.name }}</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="12" :sm="24"> |
| | | <div> |
| | | <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="ç¶çº§èå" has-feedback> |
| | | <a-tree-select |
| | | v-decorator="['menuPid', {rules: [{ required: true, message: 'è¯·éæ©ç¶çº§èåï¼' }]}]" |
| | | style="width: 100%" |
| | | :dropdownStyle="{ maxHeight: '300px', overflow: 'auto' }" |
| | | :treeData="menuTreeData" |
| | | placeholder="è¯·éæ©ç¶çº§èå" |
| | | treeDefaultExpandAll> |
| | | <span slot="title" slot-scope="{ id }">{{ id }} |
| | | </span> |
| | | </a-tree-select> |
| | | </a-form-item> |
| | | </div> |
| | | </a-col> |
| | | </a-row> |
| | | <a-row :gutter="24"> |
| | | <a-col :md="12" :sm="24"> |
| | | <a-form-item label="å½å空é´" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input |
| | | placeholder="请è¾å
¥ä»£ç å
å" |
| | | v-decorator="['nameSpace', {rules: [{required: true, message: '请è¾å
¥å½å空é´ï¼'}]}]" /> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="12" :sm="24"> |
| | | <a-form-item label="ä½è
å§å" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input |
| | | placeholder="请è¾å
¥ä½è
å§å" |
| | | v-decorator="['authorName', {rules: [{required: true, message: '请è¾å
¥ä½è
å§åï¼'}]}]" /> |
| | | </a-form-item> |
| | | </a-col> |
| | | </a-row> |
| | | <!--<a-row :gutter="24"> |
| | | <a-col :md="12" :sm="24"> |
| | | <a-form-item |
| | | label="åè½å" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | has-feedback |
| | | > |
| | | <a-input placeholder="请è¾å
¥åè½å" v-decorator="['tableComment', {rules: [{required: true, message: '请è¾å
¥åè½åï¼'}]}]" /> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="12" :sm="24"> |
| | | <a-form-item |
| | | label="ç±»å" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | has-feedback |
| | | > |
| | | <a-input placeholder="请è¾å
¥ç±»å" v-decorator="['className', {rules: [{required: true, message: '请è¾å
¥ç±»åï¼'}]}]" /> |
| | | </a-form-item> |
| | | </a-col> |
| | | </a-row> --> |
| | | <a-row :gutter="24"> |
| | | <a-col :md="12" :sm="24"> |
| | | <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="çææ¹å¼"> |
| | | <a-radio-group v-decorator="['generateType',{rules: [{ required: true, message: 'è¯·éæ©çææ¹å¼ï¼' }]}]"> |
| | | <a-radio |
| | | v-for="(item,index) in generateTypeData" |
| | | :key="index" |
| | | :value="item.code" |
| | | @click="generateTypeRadio(item.code)">{{ item.name }}</a-radio> |
| | | </a-radio-group> |
| | | </a-form-item> |
| | | </a-col> |
| | | </a-row> |
| | | </a-form> |
| | | </a-spin> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | getAppList |
| | | } from '@/api/modular/system/appManage' |
| | | import { |
| | | getMenuTree |
| | | } from '@/api/modular/system/menuManage' |
| | | import { |
| | | codeGenerateDatabaseList, |
| | | codeGenerateInformationList, |
| | | codeGenerateAdd |
| | | } from '@/api/modular/gen/codeGenerateManage' |
| | | export default { |
| | | data() { |
| | | return { |
| | | labelCol: { |
| | | xs: { |
| | | span: 24 |
| | | }, |
| | | sm: { |
| | | span: 5 |
| | | } |
| | | }, |
| | | wrapperCol: { |
| | | xs: { |
| | | span: 24 |
| | | }, |
| | | sm: { |
| | | span: 15 |
| | | } |
| | | }, |
| | | visible: false, |
| | | appData: [], |
| | | menuTreeData: [], |
| | | databaseNameData:[], |
| | | tableNameData: [], |
| | | // tablePrefixData: [], |
| | | generateTypeData: [], |
| | | confirmLoading: false, |
| | | // tablePrefixValue: 'N', |
| | | databaseNameValue:'', |
| | | tableNameValue: '', |
| | | form: this.$form.createForm(this) |
| | | } |
| | | }, |
| | | methods: { |
| | | // åå§åæ¹æ³ |
| | | add() { |
| | | this.visible = true |
| | | this.codeGenerateDatabaseList() |
| | | // å¤åºé»è®¤éè¦éæ©åè°ç¨ |
| | | // this.codeGenerateInformationList() |
| | | this.dataTypeItem() |
| | | this.selectedByDefault() |
| | | |
| | | // è·åç³»ç»åºç¨å表 |
| | | this.getSysApplist() |
| | | }, |
| | | /** |
| | | * é»è®¤éä¸é¡¹ |
| | | */ |
| | | selectedByDefault() { |
| | | this.form.getFieldDecorator('nameSpace', { |
| | | initialValue: 'iWare.Wms.Application' |
| | | }) |
| | | // this.form.getFieldDecorator('tablePrefix', { valuePropName: 'checked', initialValue: 'N' }) |
| | | this.form.getFieldDecorator('generateType', { |
| | | valuePropName: 'checked', |
| | | initialValue: '2' |
| | | }) |
| | | |
| | | // åå§åèåé»è®¤éæ© |
| | | this.form.getFieldDecorator('menuApplication', { |
| | | initialValue: 'busiapp' |
| | | }) |
| | | this.changeApplication('busiapp') |
| | | }, |
| | | /** |
| | | * è·å¾æææ°æ®åº |
| | | */ |
| | | codeGenerateDatabaseList() { |
| | | codeGenerateDatabaseList().then((res) => { |
| | | this.databaseNameData = res.data |
| | | }) |
| | | }, |
| | | /** |
| | | * è·å¾æææ°æ®åºç表 |
| | | */ |
| | | codeGenerateInformationList(parameter) { |
| | | codeGenerateInformationList(parameter).then((res) => { |
| | | this.tableNameData = res.data |
| | | }) |
| | | }, |
| | | /** |
| | | * è·å¾èåæå±åºç¨ |
| | | */ |
| | | getSysApplist() { |
| | | return getAppList().then((res) => { |
| | | if (res.success) { |
| | | this.appData = res.data |
| | | } else { |
| | | this.$message.warning(res.message) |
| | | } |
| | | }) |
| | | }, |
| | | /** |
| | | * è·ååå
¸æ°æ® |
| | | */ |
| | | dataTypeItem() { |
| | | this.tablePrefixData = this.$options.filters['dictData']('yes_or_no') |
| | | this.generateTypeData = this.$options.filters['dictData']('code_gen_create_type') |
| | | this.generateTypeData.splice(0, 1) // é»è®¤å»æä»å缩å
ä¸è½½ |
| | | }, |
| | | /** |
| | | * æäº¤è¡¨å |
| | | */ |
| | | handleSubmit() { |
| | | const { |
| | | form: { |
| | | validateFields |
| | | } |
| | | } = this |
| | | validateFields((errors, values) => { |
| | | if (!errors) { |
| | | this.confirmLoading = true |
| | | codeGenerateAdd(values).then((res) => { |
| | | if (res.success) { |
| | | this.$message.success('æ°å¢æå') |
| | | this.$emit('ok', values) |
| | | this.handleCancel() |
| | | } else { |
| | | this.$message.error('æ°å¢å¤±è´¥ï¼' + res.message) |
| | | } |
| | | }).finally((res) => { |
| | | this.confirmLoading = false |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | handleCancel() { |
| | | this.form.resetFields() |
| | | this.visible = false |
| | | // æ¸
空ä»ä»¬ä¸ä¸ª |
| | | this.form.getFieldDecorator('className', { |
| | | initialValue: '' |
| | | }) |
| | | this.form.getFieldDecorator('busName', { |
| | | initialValue: '' |
| | | }) |
| | | // this.form.getFieldDecorator('tableComment', { initialValue: '' }) |
| | | }, |
| | | /** |
| | | * éæ©æ°æ®åº |
| | | */ |
| | | databaseNameSele(item) { |
| | | this.databaseNameValue = item.databaseName |
| | | // this.form.getFieldDecorator('tableComment', { initialValue: item.tableComment }) |
| | | //this.form.getFieldDecorator('busName', { |
| | | // initialValue: item.databaseComment |
| | | //}) |
| | | // this.settingDefaultValue() |
| | | // this.form.getFieldDecorator('tableName', { |
| | | // //X initialValue: '' |
| | | // //X defaultValue:'' |
| | | // //X value:'' |
| | | // }) è¿ä¸ªæ¹æ³ä¸èµ·ä½ç¨ |
| | | this.form.setFieldsValue({'tableName':''}); //è¿ä¸ªOK |
| | | this.codeGenerateInformationList({ dbContextLocatorName:this.databaseNameValue}); |
| | | }, |
| | | /** |
| | | * éæ©æ°æ®åºå表 |
| | | */ |
| | | tableNameSele(item) { |
| | | this.tableNameValue = item.tableName |
| | | // this.form.getFieldDecorator('tableComment', { initialValue: item.tableComment }) |
| | | this.form.getFieldDecorator('busName', { |
| | | initialValue: item.tableComment |
| | | }) |
| | | this.settingDefaultValue() |
| | | }, |
| | | /** |
| | | * èåæå±åºç¨changeäºä»¶ |
| | | */ |
| | | changeApplication(value) { |
| | | getMenuTree({ |
| | | 'application': value |
| | | }).then((res) => { |
| | | if (res.success) { |
| | | this.menuTreeData = [{ |
| | | 'id': '-1', |
| | | 'parentId': '0', |
| | | 'title': '顶级', |
| | | 'value': '0', |
| | | 'pid': '0', |
| | | 'children': res.data |
| | | }] |
| | | this.form.getFieldDecorator('menuPid', { |
| | | initialValue: '0' |
| | | }) |
| | | } else { |
| | | this.$message.warning(res.message) |
| | | } |
| | | }) |
| | | }, |
| | | // /** |
| | | // * éæ©æ¯å¦ç§»é¤åç¼è§¦å |
| | | // */ |
| | | // tablePrefixRadio (tablePrefixType) { |
| | | // this.tablePrefixValue = tablePrefixType |
| | | // this.settingDefaultValue() |
| | | // }, |
| | | /** |
| | | * 设置é»è®¤å¼ |
| | | */ |
| | | settingDefaultValue() { |
| | | // const tableName = this.classNameToHump() |
| | | // this.form.getFieldDecorator('className', { initialValue: tableName }) |
| | | // this.form.getFieldDecorator('busName', { initialValue: tableName + "ä¸å¡"}) |
| | | }, |
| | | /** |
| | | * éæ©çææ¹å¼ |
| | | */ |
| | | generateTypeRadio(generateType) { |
| | | // if (generateType === '1') { |
| | | // this.packageNameShow = true |
| | | // } else { |
| | | // this.packageNameShow = false |
| | | // this.form.setFieldsValue({ nameSpace: 'iWare.Wms.Application' }) |
| | | // } |
| | | } |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | </template> |
| | | <script> |
| | | import { STable, Ellipsis } from '@/components' |
| | | export default { |
| | | components: {}, |
| | | data(){ |
| | | return {} |
| | | }, |
| | | methods:{ |
| | | |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="less"> |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-modal |
| | | title="ç¼è¾ä»£ç çæé
ç½®" |
| | | :width="900" |
| | | :visible="visible" |
| | | :confirmLoading="confirmLoading" |
| | | @ok="handleSubmit" |
| | | @cancel="handleCancel"> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <a-form :form="form"> |
| | | <a-form-item v-show="false"> |
| | | <a-input v-decorator="['id']" /> |
| | | </a-form-item> |
| | | <a-row :gutter="24"> |
| | | <a-col :md="12" :sm="24"> |
| | | <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="çæåº" has-feedback> |
| | | <a-select |
| | | style="width: 100%" |
| | | placeholder="è¯·éæ©æ°æ®åº" |
| | | v-decorator="['databaseName', {rules: [{ required: true, message: 'è¯·éæ©æ°æ®åºï¼' }]}]"> |
| | | <a-select-option |
| | | v-for="(item,index) in databaseNameData" |
| | | :key="index" |
| | | :value="item.databaseName" |
| | | @click="databaseNameSele(item)">{{ item.databaseName }}</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | </a-col> |
| | | </a-row> |
| | | <a-row :gutter="24"> |
| | | <a-col :md="12" :sm="24"> |
| | | <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="çæè¡¨" has-feedback> |
| | | <a-select |
| | | style="width: 100%" |
| | | placeholder="è¯·éæ©æ°æ®åºè¡¨" |
| | | v-decorator="['tableName', {rules: [{ required: true, message: 'è¯·éæ©æ°æ®åºè¡¨ï¼' }]}]"> |
| | | <a-select-option |
| | | v-for="(item,index) in tableNameData" |
| | | :key="index" |
| | | :value="item.tableName" |
| | | @click="tableNameSele(item)">{{ item.tableName }}</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="12" :sm="24"> |
| | | <a-form-item label="ä¸å¡å" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input |
| | | placeholder="请è¾å
¥ä¸å¡å" |
| | | v-decorator="['busName', {rules: [{required: true, message: '请è¾å
¥ä¸å¡åï¼'}]}]" /> |
| | | </a-form-item> |
| | | </a-col> |
| | | <!-- <a-col :md="12" :sm="24"> |
| | | <a-form-item |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | label="ç§»é¤åç¼" |
| | | > |
| | | <a-radio-group v-decorator="['tablePrefix',{rules: [{ required: true, message: 'è¯·éæ©æ¯å¦ç§»é¤åç¼ï¼' }]}]" > |
| | | <a-radio v-for="(item,index) in tablePrefixData" :key="index" :value="item.code" @click="tablePrefixRadio(item.code)">{{ item.name }}</a-radio> |
| | | </a-radio-group> |
| | | </a-form-item> |
| | | </a-col> --> |
| | | </a-row> |
| | | <a-row :gutter="24"> |
| | | <a-col :md="12" :sm="24"> |
| | | <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="èååç±»" has-feedback> |
| | | <a-select |
| | | style="width: 100%" |
| | | placeholder="è¯·éæ©åºç¨åç±»" |
| | | v-decorator="['menuApplication', {rules: [{ required: true, message: 'è¯·éæ©åºç¨åç±»ï¼' }]}]"> |
| | | <a-select-option |
| | | v-for="(item,index) in appData" |
| | | :key="index" |
| | | :value="item.code" |
| | | @click="changeApplication(item.code)">{{ item.name }}</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="12" :sm="24"> |
| | | <div> |
| | | <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="ç¶çº§èå" has-feedback> |
| | | <a-tree-select |
| | | v-decorator="['menuPid', {rules: [{ required: true, message: 'è¯·éæ©ç¶çº§èåï¼' }]}]" |
| | | style="width: 100%" |
| | | :dropdownStyle="{ maxHeight: '300px', overflow: 'auto' }" |
| | | :treeData="menuTreeData" |
| | | placeholder="è¯·éæ©ç¶çº§èå" |
| | | treeDefaultExpandAll> |
| | | <span slot="title" slot-scope="{ id }">{{ id }} |
| | | </span> |
| | | </a-tree-select> |
| | | </a-form-item> |
| | | </div> |
| | | </a-col> |
| | | </a-row> |
| | | <!-- <a-row :gutter="24"> |
| | | <a-col :md="12" :sm="24"> |
| | | <a-form-item |
| | | label="åè½å" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | has-feedback |
| | | > |
| | | <a-input placeholder="请è¾å
¥åè½å" v-decorator="['tableComment', {rules: [{required: true, message: '请è¾å
¥åè½åï¼'}]}]" /> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="12" :sm="24"> |
| | | <a-form-item |
| | | label="ç±»å" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | has-feedback |
| | | > |
| | | <a-input placeholder="请è¾å
¥ç±»å" v-decorator="['className', {rules: [{required: true, message: '请è¾å
¥ç±»åï¼'}]}]" /> |
| | | </a-form-item> |
| | | </a-col> |
| | | </a-row> --> |
| | | <a-row :gutter="24"> |
| | | <a-col :md="12" :sm="24"> |
| | | <a-form-item label="å½å空é´" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input |
| | | placeholder="请è¾å
¥å½å空é´" |
| | | v-decorator="['nameSpace', {rules: [{required: true, message: '请è¾å
¥å½å空é´ï¼'}]}]" /> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="12" :sm="24"> |
| | | <a-form-item label="ä½è
å§å" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input |
| | | placeholder="请è¾å
¥ä½è
å§å" |
| | | v-decorator="['authorName', {rules: [{required: true, message: '请è¾å
¥ä½è
å§åï¼'}]}]" /> |
| | | </a-form-item> |
| | | </a-col> |
| | | </a-row> |
| | | <a-row :gutter="24"> |
| | | <a-col :md="12" :sm="24"> |
| | | <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="çææ¹å¼"> |
| | | <a-radio-group v-decorator="['generateType',{rules: [{ required: true, message: 'è¯·éæ©çææ¹å¼ï¼' }]}]"> |
| | | <a-radio |
| | | v-for="(item,index) in generateTypeData" |
| | | :key="index" |
| | | :value="item.code" |
| | | @click="generateTypeRadio(item.code)">{{ item.name }}</a-radio> |
| | | </a-radio-group> |
| | | </a-form-item> |
| | | </a-col> |
| | | </a-row> |
| | | </a-form> |
| | | </a-spin> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | getAppList |
| | | } from '@/api/modular/system/appManage' |
| | | import { |
| | | getMenuTree |
| | | } from '@/api/modular/system/menuManage' |
| | | import { |
| | | codeGenerateDatabaseList, |
| | | codeGenerateInformationList, |
| | | codeGenerateEdit |
| | | } from '@/api/modular/gen/codeGenerateManage' |
| | | export default { |
| | | data() { |
| | | return { |
| | | labelCol: { |
| | | xs: { |
| | | span: 24 |
| | | }, |
| | | sm: { |
| | | span: 5 |
| | | } |
| | | }, |
| | | wrapperCol: { |
| | | xs: { |
| | | span: 24 |
| | | }, |
| | | sm: { |
| | | span: 15 |
| | | } |
| | | }, |
| | | visible: false, |
| | | databaseNameData:[], |
| | | tableNameData: [], |
| | | appData: [], |
| | | menuTreeData: [], |
| | | // tablePrefixData: [], |
| | | generateTypeData: [], |
| | | confirmLoading: false, |
| | | // tablePrefixValue: 'N', |
| | | databaseNameValue:'', |
| | | tableNameValue: '', |
| | | // packageNameShow: true, |
| | | form: this.$form.createForm(this) |
| | | } |
| | | }, |
| | | methods: { |
| | | // åå§åæ¹æ³ |
| | | edit(record) { |
| | | this.visible = true |
| | | this.codeGenerateDatabaseList() |
| | | this.codeGenerateInformationList() |
| | | this.dataTypeItem() |
| | | setTimeout(() => { |
| | | this.form.setFieldsValue({ |
| | | id: record.id, |
| | | databaseName:record.databaseName, |
| | | tableName: record.tableName, |
| | | // tablePrefix: record.tablePrefix, |
| | | // tableComment: record.tableComment, |
| | | // className: record.className, |
| | | busName: record.busName, |
| | | generateType: record.generateType, |
| | | authorName: record.authorName, |
| | | nameSpace: record.nameSpace, |
| | | menuApplication: record.menuApplication, |
| | | menuPid: record.menuPid |
| | | }) |
| | | }, 100) |
| | | this.databaseNameValue = record.databaseName |
| | | this.tableNameValue = record.tableName |
| | | // this.tablePrefixValue = record.tablePrefix |
| | | |
| | | // è·åç³»ç»åºç¨å表 |
| | | this.getSysApplist() |
| | | this.changeApplication(record.menuApplication) |
| | | }, |
| | | /** |
| | | * è·å¾èåæå±åºç¨ |
| | | */ |
| | | getSysApplist() { |
| | | return getAppList().then((res) => { |
| | | if (res.success) { |
| | | this.appData = res.data |
| | | } else { |
| | | this.$message.warning(res.message) |
| | | } |
| | | }) |
| | | }, |
| | | /** |
| | | * è·å¾æææ°æ®åº |
| | | */ |
| | | codeGenerateDatabaseList() { |
| | | codeGenerateDatabaseList().then((res) => { |
| | | this.databaseNameData = res.data |
| | | }) |
| | | }, |
| | | /** |
| | | * è·å¾æææ°æ®åºç表 |
| | | */ |
| | | codeGenerateInformationList(parameter) { |
| | | codeGenerateInformationList(parameter).then((res) => { |
| | | this.tableNameData = res.data |
| | | }) |
| | | }, |
| | | /** |
| | | * è·ååå
¸æ°æ® |
| | | */ |
| | | dataTypeItem() { |
| | | this.tablePrefixData = this.$options.filters['dictData']('yes_or_no') |
| | | this.generateTypeData = this.$options.filters['dictData']('code_gen_create_type') |
| | | this.generateTypeData.splice(0, 1) // é»è®¤å»æä»å缩å
ä¸è½½ |
| | | }, |
| | | /** |
| | | * æäº¤è¡¨å |
| | | */ |
| | | handleSubmit() { |
| | | const { |
| | | form: { |
| | | validateFields |
| | | } |
| | | } = this |
| | | validateFields((errors, values) => { |
| | | if (!errors) { |
| | | this.confirmLoading = true |
| | | codeGenerateEdit(values).then((res) => { |
| | | if (res.success) { |
| | | this.$message.success('ç¼è¾æå') |
| | | this.$emit('ok', values) |
| | | this.handleCancel() |
| | | } else { |
| | | this.$message.error('ç¼è¾å¤±è´¥' + res.message) |
| | | } |
| | | }).finally((res) => { |
| | | this.confirmLoading = false |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | handleCancel() { |
| | | this.form.resetFields() |
| | | this.visible = false |
| | | }, |
| | | /** |
| | | * éæ©æ°æ®åº |
| | | */ |
| | | databaseNameSele(item) { |
| | | this.databaseNameValue = item.databaseName |
| | | // this.form.getFieldDecorator('tableComment', { initialValue: item.tableComment }) |
| | | //this.form.getFieldDecorator('busName', { |
| | | // initialValue: item.databaseComment |
| | | //}) |
| | | this.form.setFieldsValue({'tableName':''}); //è¿ä¸ªOK |
| | | this.codeGenerateInformationList({ dbContextLocatorName:this.databaseNameValue}); |
| | | //this.settingDefaultValue() |
| | | }, |
| | | /** |
| | | * éæ©æ°æ®åºå表 |
| | | */ |
| | | tableNameSele(item) { |
| | | this.tableNameValue = item.tableName |
| | | this.form.setFieldsValue({ |
| | | className: item.tableComment |
| | | }) |
| | | this.settingDefaultValue() |
| | | }, |
| | | /** |
| | | * èåæå±åºç¨changeäºä»¶ |
| | | */ |
| | | changeApplication(value) { |
| | | getMenuTree({ |
| | | 'application': value |
| | | }).then((res) => { |
| | | if (res.success) { |
| | | this.menuTreeData = [{ |
| | | 'id': '-1', |
| | | 'parentId': '0', |
| | | 'title': '顶级', |
| | | 'value': '0', |
| | | 'pid': '0', |
| | | 'children': res.data |
| | | }] |
| | | } else { |
| | | this.$message.warning(res.message) |
| | | } |
| | | }) |
| | | }, |
| | | // /** |
| | | // * éæ©æ¯å¦ç§»é¤åç¼è§¦å |
| | | // */ |
| | | // tablePrefixRadio (tablePrefixType) { |
| | | // this.tablePrefixValue = tablePrefixType |
| | | // this.settingDefaultValue() |
| | | // }, |
| | | // /** |
| | | // * 设置é»è®¤å¼ |
| | | // */ |
| | | settingDefaultValue () { |
| | | // const tableName = this.classNameToHump() |
| | | // this.form.setFieldsValue( |
| | | // { |
| | | // className: tableName, |
| | | // busName: tableName.toLowerCase() |
| | | // } |
| | | // ) |
| | | }, |
| | | // /** |
| | | // * 设置类åä¸ºæ°æ®åºè¡¨ç驼峰å½å |
| | | // */ |
| | | // classNameToHump () { |
| | | // const arr = this.tableNameValue.toLowerCase().split('_') |
| | | // if (this.tablePrefixValue === 'Y') { |
| | | // arr.splice(0, 1) |
| | | // } |
| | | // for (let i = 0; i < arr.length; i++) { |
| | | // // charAt()æ¹æ³å¾å°ç¬¬ä¸ä¸ªåæ¯ï¼slice()å¾å°ç¬¬äºä¸ªåæ¯ä»¥åçå符串 |
| | | // arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].slice(1) |
| | | // } |
| | | // return arr.join('') |
| | | // }, |
| | | /** |
| | | * éæ©çææ¹å¼ |
| | | */ |
| | | generateTypeRadio(generateType) { |
| | | // if (generateType === '1') { |
| | | // this.packageNameShow = true |
| | | // } else { |
| | | // this.packageNameShow = false |
| | | // this.form.setFieldsValue({ packageName: 'com.cn.xiaonuo' }) |
| | | // } |
| | | } |
| | | } |
| | | } |
| | | </script> |
LA22A07_Front/src/views/gen/codeGenerate/fkModal.vue
LA22A07_Front/src/views/gen/codeGenerate/index.vue
LA22A07_Front/src/views/gen/codeGenerate/indexConfig.vue
LA22A07_Front/src/views/gen/lowCode/addForm.vue
LA22A07_Front/src/views/gen/lowCode/editForm.vue
LA22A07_Front/src/views/gen/lowCode/index.vue
LA22A07_Front/src/views/main/BindEntrance/index.vue
LA22A07_Front/src/views/main/BindEntrance/inputLayout.vue
LA22A07_Front/src/views/main/BindEntrance/searchBox.vue
LA22A07_Front/src/views/main/ExWarehouse/handleForm.vue
LA22A07_Front/src/views/main/ExWarehouse/index.vue
LA22A07_Front/src/views/main/ExWarehouse/outForm.vue
LA22A07_Front/src/views/main/LocationView/DetailDrawer.vue
LA22A07_Front/src/views/main/LocationView/SearchForm.vue
LA22A07_Front/src/views/main/LocationView/index.vue
LA22A07_Front/src/views/main/README.md
LA22A07_Front/src/views/main/SysTenant/addForm.vue
LA22A07_Front/src/views/main/SysTenant/editForm.vue
LA22A07_Front/src/views/main/SysTenant/index.vue
LA22A07_Front/src/views/main/View_AccessDetails/addForm.vue
LA22A07_Front/src/views/main/View_AccessDetails/editForm.vue
LA22A07_Front/src/views/main/View_AccessDetails/index.vue
LA22A07_Front/src/views/main/WareContainerVsMaterial/addForm.vue
LA22A07_Front/src/views/main/WareContainerVsMaterial/editForm.vue
LA22A07_Front/src/views/main/WareContainerVsMaterial/index.vue
LA22A07_Front/src/views/main/WareDeviceWarning/addForm.vue
LA22A07_Front/src/views/main/WareDeviceWarning/editForm.vue
LA22A07_Front/src/views/main/WareDeviceWarning/index.vue
LA22A07_Front/src/views/main/WareFlowRecord/addForm.vue
LA22A07_Front/src/views/main/WareFlowRecord/editForm.vue
LA22A07_Front/src/views/main/WareFlowRecord/index.vue
LA22A07_Front/src/views/main/WareSite/addForm.vue
LA22A07_Front/src/views/main/WareSite/editForm.vue
LA22A07_Front/src/views/main/WareSite/index.vue
LA22A07_Front/src/views/main/WareTaskBak/InfoModal.vue
LA22A07_Front/src/views/main/WareTaskBak/addForm.vue
LA22A07_Front/src/views/main/WareTaskBak/editForm.vue
LA22A07_Front/src/views/main/WareTaskBak/index.vue
LA22A07_Front/src/views/main/WmsArea/addForm.vue
LA22A07_Front/src/views/main/WmsArea/editForm.vue
LA22A07_Front/src/views/main/WmsArea/index.vue
LA22A07_Front/src/views/main/WmsBindIn/index.vue
LA22A07_Front/src/views/main/WmsContainer/addForm.vue
LA22A07_Front/src/views/main/WmsContainer/editForm.vue
LA22A07_Front/src/views/main/WmsContainer/index.vue
LA22A07_Front/src/views/main/WmsContainerType/addForm.vue
LA22A07_Front/src/views/main/WmsContainerType/editForm.vue
LA22A07_Front/src/views/main/WmsContainerType/index.vue
LA22A07_Front/src/views/main/WmsLocationType/addForm.vue
LA22A07_Front/src/views/main/WmsLocationType/editForm.vue
LA22A07_Front/src/views/main/WmsLocationType/index.vue
LA22A07_Front/src/views/main/WmsMaterial/addForm.vue
LA22A07_Front/src/views/main/WmsMaterial/editForm.vue
LA22A07_Front/src/views/main/WmsMaterial/index.vue
LA22A07_Front/src/views/main/WmsPart/addForm.vue
LA22A07_Front/src/views/main/WmsPart/editForm.vue
LA22A07_Front/src/views/main/WmsPart/index.vue
LA22A07_Front/src/views/main/WmsPlace/addForm.vue
LA22A07_Front/src/views/main/WmsPlace/editForm.vue
LA22A07_Front/src/views/main/WmsPlace/index.vue
LA22A07_Front/src/views/main/WmsTask/InfoModal.vue
LA22A07_Front/src/views/main/WmsTask/PriorityModal.vue
LA22A07_Front/src/views/main/WmsTask/addForm.vue
LA22A07_Front/src/views/main/WmsTask/editForm.vue
LA22A07_Front/src/views/main/WmsTask/index.vue
LA22A07_Front/src/views/main/screenMonitor/LabelTag.vue
LA22A07_Front/src/views/main/screenMonitor/TopMiddleCmp.vue
LA22A07_Front/src/views/main/screenMonitor/cards.vue
LA22A07_Front/src/views/main/screenMonitor/digitalFlop.vue
LA22A07_Front/src/views/main/screenMonitor/img/bg.png
LA22A07_Front/src/views/main/screenMonitor/img/map.jpg
LA22A07_Front/src/views/main/screenMonitor/img/map.png
LA22A07_Front/src/views/main/screenMonitor/img/map2.png
LA22A07_Front/src/views/main/screenMonitor/img/mapCenterPoint.png
LA22A07_Front/src/views/main/screenMonitor/img/mapPoint.png
LA22A07_Front/src/views/main/screenMonitor/index.vue
LA22A07_Front/src/views/main/screenMonitor/left1.vue
LA22A07_Front/src/views/main/screenMonitor/left12.vue
LA22A07_Front/src/views/main/screenMonitor/left2.vue
LA22A07_Front/src/views/main/screenMonitor/left22.vue
LA22A07_Front/src/views/main/screenMonitor/left23.vue
LA22A07_Front/src/views/main/screenMonitor/middle1.vue
LA22A07_Front/src/views/main/screenMonitor/middle2.vue
LA22A07_Front/src/views/main/screenMonitor/middle3.vue
LA22A07_Front/src/views/main/screenMonitor/rankingBoard.vue
LA22A07_Front/src/views/main/screenMonitor/right1.vue
LA22A07_Front/src/views/main/screenMonitor/right2.vue
LA22A07_Front/src/views/main/screenMonitor/right3.vue
LA22A07_Front/src/views/main/screenMonitor/right4.vue
LA22A07_Front/src/views/main/screenMonitor/scrollBoard.vue
LA22A07_Front/src/views/main/screenMonitor/topHeader.vue
LA22A07_Front/src/views/system/README.md
LA22A07_Front/src/views/system/account/center/Index.vue
LA22A07_Front/src/views/system/account/center/page/App.vue
LA22A07_Front/src/views/system/account/center/page/Article.vue
LA22A07_Front/src/views/system/account/center/page/Project.vue
LA22A07_Front/src/views/system/account/center/page/index.js
LA22A07_Front/src/views/system/account/settings/AvatarModal.vue
LA22A07_Front/src/views/system/account/settings/BaseSetting.vue
LA22A07_Front/src/views/system/account/settings/Binding.vue
LA22A07_Front/src/views/system/account/settings/Custom.vue
LA22A07_Front/src/views/system/account/settings/Index.vue
LA22A07_Front/src/views/system/account/settings/Notification.vue
LA22A07_Front/src/views/system/account/settings/Security.vue
LA22A07_Front/src/views/system/account/settings/securityItem/updPwd.vue
LA22A07_Front/src/views/system/app/addForm.vue
LA22A07_Front/src/views/system/app/editForm.vue
LA22A07_Front/src/views/system/app/index.vue
LA22A07_Front/src/views/system/config/addForm.vue
LA22A07_Front/src/views/system/config/editForm.vue
LA22A07_Front/src/views/system/config/index.vue
LA22A07_Front/src/views/system/dashboard/Analysis.vue
LA22A07_Front/src/views/system/dashboard/Monitor.vue
LA22A07_Front/src/views/system/dashboard/TestWork.vue
LA22A07_Front/src/views/system/dashboard/Workplace.vue
LA22A07_Front/src/views/system/dict/addForm.vue
LA22A07_Front/src/views/system/dict/dictdata/addForm.vue
LA22A07_Front/src/views/system/dict/dictdata/editForm.vue
LA22A07_Front/src/views/system/dict/dictdata/index.vue
LA22A07_Front/src/views/system/dict/editForm.vue
LA22A07_Front/src/views/system/dict/index.vue
LA22A07_Front/src/views/system/email/index.vue
LA22A07_Front/src/views/system/exception/403.vue
LA22A07_Front/src/views/system/exception/404.vue
LA22A07_Front/src/views/system/exception/500.vue
LA22A07_Front/src/views/system/file/detailForm.vue
LA22A07_Front/src/views/system/file/index.vue
LA22A07_Front/src/views/system/file/previewForm.vue
LA22A07_Front/src/views/system/formDesign/edit.vue
LA22A07_Front/src/views/system/formDesign/index.vue
LA22A07_Front/src/views/system/formDesign/list.vue
LA22A07_Front/src/views/system/index/ModuleA.vue
LA22A07_Front/src/views/system/index/ModuleB.vue
LA22A07_Front/src/views/system/index/ModuleC.vue
LA22A07_Front/src/views/system/index/welcome.vue
LA22A07_Front/src/views/system/machine/index.vue
LA22A07_Front/src/views/system/menu/addForm.vue
LA22A07_Front/src/views/system/menu/editForm.vue
LA22A07_Front/src/views/system/menu/index.vue
LA22A07_Front/src/views/system/myworkflow/auditor.vue
LA22A07_Front/src/views/system/myworkflow/components/auditoropera.vue
LA22A07_Front/src/views/system/myworkflow/components/viewworkflow.vue
LA22A07_Front/src/views/system/myworkflow/create.vue
LA22A07_Front/src/views/system/myworkflow/index.vue
LA22A07_Front/src/views/system/myworkflow/unauditor.vue
LA22A07_Front/src/views/system/notice/addForm.vue
LA22A07_Front/src/views/system/notice/detailForm.vue
LA22A07_Front/src/views/system/notice/editForm.vue
LA22A07_Front/src/views/system/notice/index.vue
LA22A07_Front/src/views/system/noticeReceived/detailForm.vue
LA22A07_Front/src/views/system/noticeReceived/index.vue
LA22A07_Front/src/views/system/onlineUser/index.vue
LA22A07_Front/src/views/system/org/addForm.vue
LA22A07_Front/src/views/system/org/editForm.vue
LA22A07_Front/src/views/system/org/index.vue
LA22A07_Front/src/views/system/pos/addForm.vue
LA22A07_Front/src/views/system/pos/editForm.vue
LA22A07_Front/src/views/system/pos/index.vue
LA22A07_Front/src/views/system/role/addForm.vue
LA22A07_Front/src/views/system/role/editForm.vue
LA22A07_Front/src/views/system/role/index.vue
LA22A07_Front/src/views/system/role/roleMenuForm.vue
LA22A07_Front/src/views/system/role/roleOrgForm.vue
LA22A07_Front/src/views/system/sms/index.vue
LA22A07_Front/src/views/system/tenant/addForm.vue
LA22A07_Front/src/views/system/tenant/editForm.vue
LA22A07_Front/src/views/system/tenant/index.vue
LA22A07_Front/src/views/system/tenant/tenantMenuForm.vue
LA22A07_Front/src/views/system/timers/addForm.vue
LA22A07_Front/src/views/system/timers/editForm.vue
LA22A07_Front/src/views/system/timers/index.vue
LA22A07_Front/src/views/system/user/addForm.vue
LA22A07_Front/src/views/system/user/editForm.vue
LA22A07_Front/src/views/system/user/index.vue
LA22A07_Front/src/views/system/user/userOrgForm.vue
LA22A07_Front/src/views/system/user/userRoleForm.vue
LA22A07_Front/src/views/system/workflow/components/builderWorkFlow.vue
LA22A07_Front/src/views/system/workflow/components/nomalWorkFlow.vue
LA22A07_Front/src/views/system/workflow/components/store/conditionflownode.js
LA22A07_Front/src/views/system/workflow/components/store/flowNodeGroup.vue
LA22A07_Front/src/views/system/workflow/components/store/flowentity.js
LA22A07_Front/src/views/system/workflow/components/store/flownodes.js
LA22A07_Front/src/views/system/workflow/components/store/nodeProperty.vue
LA22A07_Front/src/views/system/workflow/components/store/readme.md
LA22A07_Front/src/views/system/workflow/components/store/sourcenodes.js
LA22A07_Front/src/views/system/workflow/create.vue
LA22A07_Front/src/views/system/workflow/edit.vue
LA22A07_Front/src/views/system/workflow/index.vue
LA22A07_Front/src/views/system/workflow/startworkflow.vue
LA22A07_Front/src/views/userLoginReg/Login.vue
LA22A07_Front/src/views/userLoginReg/Register.vue
LA22A07_Front/src/views/userLoginReg/RegisterResult.vue
LA22A07_Front/tests/unit/.eslintrc.js
LA22A07_Front/vue.config.js
LA22A07_Front/webstorm.config.js
LA22A07_PDA/.gitignore
LA22A07_PDA/.hbuilderx/launch.json
LA22A07_PDA/App.vue
LA22A07_PDA/README.md
LA22A07_PDA/__json_server_mock__/db.json
LA22A07_PDA/components/ActionUserRow.vue
LA22A07_PDA/components/DefaultHeaderPageLayout.vue
LA22A07_PDA/components/EasyPicker.vue
LA22A07_PDA/components/EasySelectFormItem.vue
LA22A07_PDA/components/FullPageLayout.vue
LA22A07_PDA/components/HeaderPageLayout.vue
LA22A07_PDA/components/PageHeader.vue
LA22A07_PDA/components/ScanInputFormItem.vue
LA22A07_PDA/components/UViewFormSelectPicker.vue
LA22A07_PDA/config/index.js
LA22A07_PDA/config/modules/ajax.js
LA22A07_PDA/config/modules/pagination.js
LA22A07_PDA/index.html
LA22A07_PDA/main.js
LA22A07_PDA/manifest.json
LA22A07_PDA/mdImgs/1664329468868.jpg
LA22A07_PDA/mdImgs/1664329790970.jpg
LA22A07_PDA/mdImgs/1664330296712.png
LA22A07_PDA/mdImgs/1665970038354.jpg
LA22A07_PDA/package.json
LA22A07_PDA/pages.json
LA22A07_PDA/pages/baseTask/callagv.vue
LA22A07_PDA/pages/baseTask/callagvs.vue
LA22A07_PDA/pages/baseTask/callout.vue
LA22A07_PDA/pages/baseTask/groupdisk.vue
LA22A07_PDA/pages/baseTask/in.vue
LA22A07_PDA/pages/baseTask/out.vue
LA22A07_PDA/pages/baseTask/senagvtask.vue
LA22A07_PDA/pages/home/index.vue
LA22A07_PDA/pages/login/index.vue
LA22A07_PDA/pages/print/bluePrint.js
LA22A07_PDA/pages/print/bluetoothConnection.vue
LA22A07_PDA/pages/setting/host.vue
LA22A07_PDA/pages/start/index.vue
LA22A07_PDA/service/request/index.js
LA22A07_PDA/service/request/modules/beforeSend.js
LA22A07_PDA/service/store/index.js
LA22A07_PDA/service/store/modules/print.js
LA22A07_PDA/service/store/modules/system.js
LA22A07_PDA/service/store/modules/user.js
LA22A07_PDA/static/fonts/iconfont.css
LA22A07_PDA/static/fonts/iconfont.ttf
LA22A07_PDA/static/fonts/iconfont.woff
LA22A07_PDA/static/fonts/iconfont.woff2
LA22A07_PDA/static/img/error.png
LA22A07_PDA/static/img/iconCk.png
LA22A07_PDA/static/img/logo.jpg
LA22A07_PDA/static/img/success.png
LA22A07_PDA/static/js/print/gbk.js
LA22A07_PDA/static/js/print/printerjobs.js
LA22A07_PDA/static/js/utils/index.js
LA22A07_PDA/static/js/utils/modules/color.js
LA22A07_PDA/static/js/utils/modules/regexValidate.js
LA22A07_PDA/static/logo.png
LA22A07_PDA/uni.scss
LA22A07_PDA/uni_modules/uni-card/changelog.md
LA22A07_PDA/uni_modules/uni-card/components/uni-card/uni-card.vue
LA22A07_PDA/uni_modules/uni-card/package.json
LA22A07_PDA/uni_modules/uni-card/readme.md
LA22A07_PDA/uni_modules/uni-data-select/changelog.md
LA22A07_PDA/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue
LA22A07_PDA/uni_modules/uni-data-select/package.json
LA22A07_PDA/uni_modules/uni-data-select/readme.md
LA22A07_PDA/uni_modules/uni-drawer/changelog.md
LA22A07_PDA/uni_modules/uni-drawer/components/uni-drawer/keypress.js
LA22A07_PDA/uni_modules/uni-drawer/components/uni-drawer/uni-drawer.vue
LA22A07_PDA/uni_modules/uni-drawer/package.json
LA22A07_PDA/uni_modules/uni-drawer/readme.md
LA22A07_PDA/uni_modules/uni-icons/changelog.md
LA22A07_PDA/uni_modules/uni-icons/components/uni-icons/icons.js
LA22A07_PDA/uni_modules/uni-icons/components/uni-icons/uni-icons.vue
LA22A07_PDA/uni_modules/uni-icons/components/uni-icons/uniicons.css
LA22A07_PDA/uni_modules/uni-icons/components/uni-icons/uniicons.ttf
LA22A07_PDA/uni_modules/uni-icons/package.json
LA22A07_PDA/uni_modules/uni-icons/readme.md
LA22A07_PDA/uni_modules/uni-load-more/changelog.md
LA22A07_PDA/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json
LA22A07_PDA/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js
LA22A07_PDA/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json
LA22A07_PDA/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json
LA22A07_PDA/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue
LA22A07_PDA/uni_modules/uni-load-more/package.json
LA22A07_PDA/uni_modules/uni-load-more/readme.md
LA22A07_PDA/uni_modules/uni-popup/changelog.md
LA22A07_PDA/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js
LA22A07_PDA/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue
LA22A07_PDA/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue
LA22A07_PDA/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue
LA22A07_PDA/uni_modules/uni-popup/components/uni-popup/i18n/en.json
LA22A07_PDA/uni_modules/uni-popup/components/uni-popup/i18n/index.js
LA22A07_PDA/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json
LA22A07_PDA/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json
LA22A07_PDA/uni_modules/uni-popup/components/uni-popup/keypress.js
LA22A07_PDA/uni_modules/uni-popup/components/uni-popup/popup.js
LA22A07_PDA/uni_modules/uni-popup/components/uni-popup/uni-popup.vue
LA22A07_PDA/uni_modules/uni-popup/package.json
LA22A07_PDA/uni_modules/uni-popup/readme.md
LA22A07_PDA/uni_modules/uni-scss/changelog.md
LA22A07_PDA/uni_modules/uni-scss/index.scss
LA22A07_PDA/uni_modules/uni-scss/package.json
LA22A07_PDA/uni_modules/uni-scss/readme.md
LA22A07_PDA/uni_modules/uni-scss/styles/index.scss
LA22A07_PDA/uni_modules/uni-scss/styles/setting/_border.scss
LA22A07_PDA/uni_modules/uni-scss/styles/setting/_color.scss
LA22A07_PDA/uni_modules/uni-scss/styles/setting/_radius.scss
LA22A07_PDA/uni_modules/uni-scss/styles/setting/_space.scss
LA22A07_PDA/uni_modules/uni-scss/styles/setting/_styles.scss
LA22A07_PDA/uni_modules/uni-scss/styles/setting/_text.scss
LA22A07_PDA/uni_modules/uni-scss/styles/setting/_variables.scss
LA22A07_PDA/uni_modules/uni-scss/styles/tools/functions.scss
LA22A07_PDA/uni_modules/uni-scss/theme.scss
LA22A07_PDA/uni_modules/uni-scss/variables.scss
LA22A07_PDA/uni_modules/uni-section/changelog.md
LA22A07_PDA/uni_modules/uni-section/components/uni-section/uni-section.vue
LA22A07_PDA/uni_modules/uni-section/package.json
LA22A07_PDA/uni_modules/uni-section/readme.md
LA22A07_PDA/uni_modules/uni-transition/changelog.md
LA22A07_PDA/uni_modules/uni-transition/components/uni-transition/createAnimation.js
LA22A07_PDA/uni_modules/uni-transition/components/uni-transition/uni-transition.vue
LA22A07_PDA/uni_modules/uni-transition/package.json
LA22A07_PDA/uni_modules/uni-transition/readme.md
LA22A07_PDA/uni_modules/uview-ui/LICENSE
LA22A07_PDA/uni_modules/uview-ui/README.md
LA22A07_PDA/uni_modules/uview-ui/changelog.md
LA22A07_PDA/uni_modules/uview-ui/components/u--form/u--form.vue
LA22A07_PDA/uni_modules/uview-ui/components/u--image/u--image.vue
LA22A07_PDA/uni_modules/uview-ui/components/u--input/u--input.vue
LA22A07_PDA/uni_modules/uview-ui/components/u--text/u--text.vue
LA22A07_PDA/uni_modules/uview-ui/components/u--textarea/u--textarea.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-action-sheet/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-action-sheet/u-action-sheet.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-album/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-album/u-album.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-alert/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-alert/u-alert.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-avatar-group/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-avatar-group/u-avatar-group.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-avatar/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-avatar/u-avatar.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-back-top/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-back-top/u-back-top.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-badge/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-badge/u-badge.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-button/nvue.scss
LA22A07_PDA/uni_modules/uview-ui/components/u-button/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-button/u-button.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-button/vue.scss
LA22A07_PDA/uni_modules/uview-ui/components/u-calendar/header.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-calendar/month.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-calendar/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-calendar/u-calendar.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-calendar/util.js
LA22A07_PDA/uni_modules/uview-ui/components/u-car-keyboard/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-car-keyboard/u-car-keyboard.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-cell-group/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-cell-group/u-cell-group.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-cell/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-cell/u-cell.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-checkbox-group/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-checkbox-group/u-checkbox-group.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-checkbox/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-checkbox/u-checkbox.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-circle-progress/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-circle-progress/u-circle-progress.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-code-input/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-code-input/u-code-input.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-code/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-code/u-code.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-col/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-col/u-col.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-collapse-item/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-collapse-item/u-collapse-item.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-collapse/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-collapse/u-collapse.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-column-notice/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-column-notice/u-column-notice.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-count-down/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-count-down/u-count-down.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-count-down/utils.js
LA22A07_PDA/uni_modules/uview-ui/components/u-count-to/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-count-to/u-count-to.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-datetime-picker/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-datetime-picker/u-datetime-picker.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-divider/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-divider/u-divider.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-dropdown-item/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-dropdown-item/u-dropdown-item.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-dropdown/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-dropdown/u-dropdown.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-empty/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-empty/u-empty.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-form-item/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-form-item/u-form-item.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-form/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-form/u-form.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-gap/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-gap/u-gap.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-grid-item/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-grid-item/u-grid-item.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-grid/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-grid/u-grid.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-icon/iconfont.ttf
LA22A07_PDA/uni_modules/uview-ui/components/u-icon/icons.js
LA22A07_PDA/uni_modules/uview-ui/components/u-icon/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-icon/u-icon.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-image/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-image/u-image.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-index-anchor/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-index-anchor/u-index-anchor.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-index-item/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-index-item/u-index-item.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-index-list/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-index-list/u-index-list.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-input/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-input/u-input.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-keyboard/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-keyboard/u-keyboard.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-line-progress/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-line-progress/u-line-progress.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-line/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-line/u-line.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-link/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-link/u-link.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-list-item/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-list-item/u-list-item.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-list/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-list/u-list.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-loading-icon/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-loading-icon/u-loading-icon.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-loading-page/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-loading-page/u-loading-page.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-loadmore/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-loadmore/u-loadmore.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-modal/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-modal/u-modal.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-navbar/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-navbar/u-navbar.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-no-network/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-no-network/u-no-network.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-notice-bar/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-notice-bar/u-notice-bar.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-notify/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-notify/u-notify.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-number-box/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-number-box/u-number-box.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-number-keyboard/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-number-keyboard/u-number-keyboard.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-overlay/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-overlay/u-overlay.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-parse/node/node.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-parse/parser.js
LA22A07_PDA/uni_modules/uview-ui/components/u-parse/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-parse/u-parse.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-picker-column/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-picker-column/u-picker-column.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-picker/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-picker/u-picker.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-popup/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-popup/u-popup.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-radio-group/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-radio-group/u-radio-group.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-radio/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-radio/u-radio.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-rate/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-rate/u-rate.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-read-more/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-read-more/u-read-more.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-row-notice/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-row-notice/u-row-notice.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-row/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-row/u-row.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-safe-bottom/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-safe-bottom/u-safe-bottom.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-scroll-list/nvue.js
LA22A07_PDA/uni_modules/uview-ui/components/u-scroll-list/other.js
LA22A07_PDA/uni_modules/uview-ui/components/u-scroll-list/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-scroll-list/scrollWxs.wxs
LA22A07_PDA/uni_modules/uview-ui/components/u-scroll-list/u-scroll-list.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-search/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-search/u-search.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-skeleton/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-skeleton/u-skeleton.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-slider/mpother.js
LA22A07_PDA/uni_modules/uview-ui/components/u-slider/mpwxs.js
LA22A07_PDA/uni_modules/uview-ui/components/u-slider/mpwxs.wxs
LA22A07_PDA/uni_modules/uview-ui/components/u-slider/nvue - 副本.js
LA22A07_PDA/uni_modules/uview-ui/components/u-slider/nvue.js
LA22A07_PDA/uni_modules/uview-ui/components/u-slider/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-slider/u-slider.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-status-bar/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-status-bar/u-status-bar.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-steps-item/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-steps-item/u-steps-item.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-steps/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-steps/u-steps.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-sticky/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-sticky/u-sticky.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-subsection/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-subsection/u-subsection.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-swipe-action-item/index - backup.wxs
LA22A07_PDA/uni_modules/uview-ui/components/u-swipe-action-item/index.wxs
LA22A07_PDA/uni_modules/uview-ui/components/u-swipe-action-item/nvue - backup.js
LA22A07_PDA/uni_modules/uview-ui/components/u-swipe-action-item/nvue.js
LA22A07_PDA/uni_modules/uview-ui/components/u-swipe-action-item/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-swipe-action-item/u-swipe-action-item.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-swipe-action-item/wxs.js
LA22A07_PDA/uni_modules/uview-ui/components/u-swipe-action/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-swipe-action/u-swipe-action.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-swiper-indicator/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-swiper-indicator/u-swiper-indicator.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-swiper/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-swiper/u-swiper.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-switch/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-switch/u-switch.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-tabbar-item/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-tabbar-item/u-tabbar-item.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-tabbar/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-tabbar/u-tabbar.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-table/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-table/u-table.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-tabs-item/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-tabs-item/u-tabs-item.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-tabs/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-tabs/u-tabs.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-tag/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-tag/u-tag.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-td/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-td/u-td.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-text/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-text/u-text.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-text/value.js
LA22A07_PDA/uni_modules/uview-ui/components/u-textarea/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-textarea/u-textarea.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-toast/u-toast.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-toolbar/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-toolbar/u-toolbar.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-tooltip/clipboard.min.js
LA22A07_PDA/uni_modules/uview-ui/components/u-tooltip/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-tooltip/u-tooltip.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-tr/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-tr/u-tr.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-transition/nvue.ani-map.js
LA22A07_PDA/uni_modules/uview-ui/components/u-transition/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-transition/transition.js
LA22A07_PDA/uni_modules/uview-ui/components/u-transition/u-transition.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-transition/vue.ani-style.scss
LA22A07_PDA/uni_modules/uview-ui/components/u-upload/mixin.js
LA22A07_PDA/uni_modules/uview-ui/components/u-upload/props.js
LA22A07_PDA/uni_modules/uview-ui/components/u-upload/u-upload.vue
LA22A07_PDA/uni_modules/uview-ui/components/u-upload/utils.js
LA22A07_PDA/uni_modules/uview-ui/components/uview-ui/uview-ui.vue
LA22A07_PDA/uni_modules/uview-ui/index.js
LA22A07_PDA/uni_modules/uview-ui/index.scss
LA22A07_PDA/uni_modules/uview-ui/libs/config/color.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/config.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/actionSheet.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/album.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/alert.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/avatar.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/avatarGroup.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/backtop.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/badge.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/button.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/calendar.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/carKeyboard.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/cell.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/cellGroup.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/checkbox.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/checkboxGroup.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/circleProgress.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/code.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/codeInput.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/col.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/collapse.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/collapseItem.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/columnNotice.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/countDown.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/countTo.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/datetimePicker.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/divider.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/empty.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/form.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/formItem.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/gap.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/grid.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/gridItem.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/icon.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/image.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/indexAnchor.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/indexList.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/input.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/keyboard.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/line.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/lineProgress.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/link.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/list.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/listItem.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/loadingIcon.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/loadingPage.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/loadmore.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/modal.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/navbar.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/noNetwork.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/noticeBar.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/notify.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/numberBox.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/numberKeyboard.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/overlay.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/parse.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/picker.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/popup.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/radio.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/radioGroup.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/rate.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/readMore.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/row.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/rowNotice.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/scrollList.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/search.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/section.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/skeleton.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/slider.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/statusBar.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/steps.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/stepsItem.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/sticky.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/subsection.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/swipeAction.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/swipeActionItem.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/swiper.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/swipterIndicator.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/switch.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/tabbar.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/tabbarItem.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/tabs.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/tag.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/text.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/textarea.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/toast.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/toolbar.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/tooltip.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/transition.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/props/upload.js
LA22A07_PDA/uni_modules/uview-ui/libs/config/zIndex.js
LA22A07_PDA/uni_modules/uview-ui/libs/css/color.scss
LA22A07_PDA/uni_modules/uview-ui/libs/css/common.scss
LA22A07_PDA/uni_modules/uview-ui/libs/css/components.scss
LA22A07_PDA/uni_modules/uview-ui/libs/css/flex.scss
LA22A07_PDA/uni_modules/uview-ui/libs/css/h5.scss
LA22A07_PDA/uni_modules/uview-ui/libs/css/mixin.scss
LA22A07_PDA/uni_modules/uview-ui/libs/css/mp.scss
LA22A07_PDA/uni_modules/uview-ui/libs/css/nvue.scss
LA22A07_PDA/uni_modules/uview-ui/libs/css/vue.scss
LA22A07_PDA/uni_modules/uview-ui/libs/function/colorGradient.js
LA22A07_PDA/uni_modules/uview-ui/libs/function/debounce.js
LA22A07_PDA/uni_modules/uview-ui/libs/function/digit.js
LA22A07_PDA/uni_modules/uview-ui/libs/function/index.js
LA22A07_PDA/uni_modules/uview-ui/libs/function/platform.js
LA22A07_PDA/uni_modules/uview-ui/libs/function/test.js
LA22A07_PDA/uni_modules/uview-ui/libs/function/throttle.js
LA22A07_PDA/uni_modules/uview-ui/libs/luch-request/adapters/index.js
LA22A07_PDA/uni_modules/uview-ui/libs/luch-request/core/InterceptorManager.js
LA22A07_PDA/uni_modules/uview-ui/libs/luch-request/core/Request.js
LA22A07_PDA/uni_modules/uview-ui/libs/luch-request/core/buildFullPath.js
LA22A07_PDA/uni_modules/uview-ui/libs/luch-request/core/defaults.js
LA22A07_PDA/uni_modules/uview-ui/libs/luch-request/core/dispatchRequest.js
LA22A07_PDA/uni_modules/uview-ui/libs/luch-request/core/mergeConfig.js
LA22A07_PDA/uni_modules/uview-ui/libs/luch-request/core/settle.js
LA22A07_PDA/uni_modules/uview-ui/libs/luch-request/helpers/buildURL.js
LA22A07_PDA/uni_modules/uview-ui/libs/luch-request/helpers/combineURLs.js
LA22A07_PDA/uni_modules/uview-ui/libs/luch-request/helpers/isAbsoluteURL.js
LA22A07_PDA/uni_modules/uview-ui/libs/luch-request/index.d.ts
LA22A07_PDA/uni_modules/uview-ui/libs/luch-request/index.js
LA22A07_PDA/uni_modules/uview-ui/libs/luch-request/utils.js
LA22A07_PDA/uni_modules/uview-ui/libs/luch-request/utils/clone.js
LA22A07_PDA/uni_modules/uview-ui/libs/mixin/button.js
LA22A07_PDA/uni_modules/uview-ui/libs/mixin/mixin.js
LA22A07_PDA/uni_modules/uview-ui/libs/mixin/mpMixin.js
LA22A07_PDA/uni_modules/uview-ui/libs/mixin/mpShare.js
LA22A07_PDA/uni_modules/uview-ui/libs/mixin/openType.js
LA22A07_PDA/uni_modules/uview-ui/libs/mixin/style.js
LA22A07_PDA/uni_modules/uview-ui/libs/mixin/touch.js
LA22A07_PDA/uni_modules/uview-ui/libs/util/async-validator.js
LA22A07_PDA/uni_modules/uview-ui/libs/util/calendar.js
LA22A07_PDA/uni_modules/uview-ui/libs/util/dayjs.js
LA22A07_PDA/uni_modules/uview-ui/libs/util/emitter.js
LA22A07_PDA/uni_modules/uview-ui/libs/util/route.js
LA22A07_PDA/uni_modules/uview-ui/package.json
LA22A07_PDA/uni_modules/uview-ui/theme.scss
LA22A07_PDA/unpackage/cache/apk/__UNI__BF591AD_cm.apk
LA22A07_PDA/unpackage/cache/apk/apkurl
LA22A07_PDA/unpackage/cache/apk/cmManifestCache.json
LA22A07_PDA/unpackage/cache/certdata
LA22A07_PDA/unpackage/cache/cloudcertificate/certini
LA22A07_PDA/unpackage/cache/cloudcertificate/package.keystore
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/.manifest/icon-android-hdpi.png
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/.manifest/icon-android-xhdpi.png
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/.manifest/icon-android-xxhdpi.png
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/.manifest/icon-android-xxxhdpi.png
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/__uniappchooselocation.js
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/__uniapperror.png
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/__uniappes6.js
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/__uniappopenlocation.js
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/__uniapppicker.js
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/__uniappquill.js
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/__uniappquillimageresize.js
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/__uniappscan.js
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/__uniappsuccess.png
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/__uniappview.html
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/app-config-service.js
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/app-config.js
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/app-service.js
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/app-view.js
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/assets/iconfont.4e517824.ttf
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/assets/uniicons.b6d3756e.ttf
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/manifest.json
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/static/fonts/iconfont.css
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/static/fonts/iconfont.ttf
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/static/fonts/iconfont.woff
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/static/fonts/iconfont.woff2
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/static/img/error.png
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/static/img/iconCk.png
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/static/img/logo.jpg
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/static/img/success.png
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/static/js/print/gbk.js
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/static/js/print/printerjobs.js
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/static/js/utils/index.js
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/static/js/utils/modules/color.js
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/static/js/utils/modules/regexValidate.js
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/static/logo.png
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/view.css
LA22A07_PDA/unpackage/cache/wgt/__UNI__BF591AD/view.umd.min.js
LA22A07_PDA/unpackage/dist/build/.automator/app-plus/.automator.json
LA22A07_PDA/unpackage/dist/build/app-plus/__uniappchooselocation.js
LA22A07_PDA/unpackage/dist/build/app-plus/__uniapperror.png
LA22A07_PDA/unpackage/dist/build/app-plus/__uniappes6.js
LA22A07_PDA/unpackage/dist/build/app-plus/__uniappopenlocation.js
LA22A07_PDA/unpackage/dist/build/app-plus/__uniapppicker.js
LA22A07_PDA/unpackage/dist/build/app-plus/__uniappquill.js
LA22A07_PDA/unpackage/dist/build/app-plus/__uniappquillimageresize.js
LA22A07_PDA/unpackage/dist/build/app-plus/__uniappscan.js
LA22A07_PDA/unpackage/dist/build/app-plus/__uniappsuccess.png
LA22A07_PDA/unpackage/dist/build/app-plus/__uniappview.html
LA22A07_PDA/unpackage/dist/build/app-plus/app-config-service.js
LA22A07_PDA/unpackage/dist/build/app-plus/app-config.js
LA22A07_PDA/unpackage/dist/build/app-plus/app-service.js
LA22A07_PDA/unpackage/dist/build/app-plus/app-view.js
LA22A07_PDA/unpackage/dist/build/app-plus/assets/iconfont.4e517824.ttf
LA22A07_PDA/unpackage/dist/build/app-plus/assets/uniicons.b6d3756e.ttf
LA22A07_PDA/unpackage/dist/build/app-plus/manifest.json
LA22A07_PDA/unpackage/dist/build/app-plus/static/fonts/iconfont.css
LA22A07_PDA/unpackage/dist/build/app-plus/static/fonts/iconfont.ttf
LA22A07_PDA/unpackage/dist/build/app-plus/static/fonts/iconfont.woff
LA22A07_PDA/unpackage/dist/build/app-plus/static/fonts/iconfont.woff2
LA22A07_PDA/unpackage/dist/build/app-plus/static/img/error.png
LA22A07_PDA/unpackage/dist/build/app-plus/static/img/iconCk.png
LA22A07_PDA/unpackage/dist/build/app-plus/static/img/logo.jpg
LA22A07_PDA/unpackage/dist/build/app-plus/static/img/success.png
LA22A07_PDA/unpackage/dist/build/app-plus/static/js/print/gbk.js
LA22A07_PDA/unpackage/dist/build/app-plus/static/js/print/printerjobs.js
LA22A07_PDA/unpackage/dist/build/app-plus/static/js/utils/index.js
LA22A07_PDA/unpackage/dist/build/app-plus/static/js/utils/modules/color.js
LA22A07_PDA/unpackage/dist/build/app-plus/static/js/utils/modules/regexValidate.js
LA22A07_PDA/unpackage/dist/build/app-plus/static/logo.png
LA22A07_PDA/unpackage/dist/build/app-plus/view.css
LA22A07_PDA/unpackage/dist/build/app-plus/view.umd.min.js
LA22A07_PDA/unpackage/dist/dev/.automator/app-plus/.automator.json
LA22A07_PDA/unpackage/dist/dev/app-plus/__uniappchooselocation.js
LA22A07_PDA/unpackage/dist/dev/app-plus/__uniapperror.png
LA22A07_PDA/unpackage/dist/dev/app-plus/__uniappes6.js
LA22A07_PDA/unpackage/dist/dev/app-plus/__uniappopenlocation.js
LA22A07_PDA/unpackage/dist/dev/app-plus/__uniapppicker.js
LA22A07_PDA/unpackage/dist/dev/app-plus/__uniappquill.js
LA22A07_PDA/unpackage/dist/dev/app-plus/__uniappquillimageresize.js
LA22A07_PDA/unpackage/dist/dev/app-plus/__uniappscan.js
LA22A07_PDA/unpackage/dist/dev/app-plus/__uniappsuccess.png
LA22A07_PDA/unpackage/dist/dev/app-plus/__uniappview.html
LA22A07_PDA/unpackage/dist/dev/app-plus/app-config-service.js
LA22A07_PDA/unpackage/dist/dev/app-plus/app-config.js
LA22A07_PDA/unpackage/dist/dev/app-plus/app-service.js
LA22A07_PDA/unpackage/dist/dev/app-plus/app-view.js
LA22A07_PDA/unpackage/dist/dev/app-plus/manifest.json
LA22A07_PDA/unpackage/dist/dev/app-plus/static/fonts/iconfont.css
LA22A07_PDA/unpackage/dist/dev/app-plus/static/fonts/iconfont.ttf
LA22A07_PDA/unpackage/dist/dev/app-plus/static/fonts/iconfont.woff
LA22A07_PDA/unpackage/dist/dev/app-plus/static/fonts/iconfont.woff2
LA22A07_PDA/unpackage/dist/dev/app-plus/static/img/error.png
LA22A07_PDA/unpackage/dist/dev/app-plus/static/img/iconCk.png
LA22A07_PDA/unpackage/dist/dev/app-plus/static/img/logo.jpg
LA22A07_PDA/unpackage/dist/dev/app-plus/static/img/success.png
LA22A07_PDA/unpackage/dist/dev/app-plus/static/js/print/gbk.js
LA22A07_PDA/unpackage/dist/dev/app-plus/static/js/print/printerjobs.js
LA22A07_PDA/unpackage/dist/dev/app-plus/static/js/utils/index.js
LA22A07_PDA/unpackage/dist/dev/app-plus/static/js/utils/modules/color.js
LA22A07_PDA/unpackage/dist/dev/app-plus/static/js/utils/modules/regexValidate.js
LA22A07_PDA/unpackage/dist/dev/app-plus/static/logo.png
LA22A07_PDA/unpackage/dist/dev/app-plus/uni_modules/uni-icons/components/uni-icons/uniicons.ttf
LA22A07_PDA/unpackage/dist/dev/app-plus/uni_modules/uview-ui/components/u-icon/iconfont.ttf
LA22A07_PDA/unpackage/dist/dev/app-plus/view.css
LA22A07_PDA/unpackage/dist/dev/app-plus/view.umd.min.js
LA22A07_PDA/unpackage/res/icons/1024x1024.png
LA22A07_PDA/unpackage/res/icons/120x120.png
LA22A07_PDA/unpackage/res/icons/144x144.png
LA22A07_PDA/unpackage/res/icons/152x152.png
LA22A07_PDA/unpackage/res/icons/167x167.png
LA22A07_PDA/unpackage/res/icons/180x180.png
LA22A07_PDA/unpackage/res/icons/192x192.png
LA22A07_PDA/unpackage/res/icons/20x20.png
LA22A07_PDA/unpackage/res/icons/29x29.png
LA22A07_PDA/unpackage/res/icons/40x40.png
LA22A07_PDA/unpackage/res/icons/58x58.png
LA22A07_PDA/unpackage/res/icons/60x60.png
LA22A07_PDA/unpackage/res/icons/72x72.png
LA22A07_PDA/unpackage/res/icons/76x76.png
LA22A07_PDA/unpackage/res/icons/80x80.png
LA22A07_PDA/unpackage/res/icons/87x87.png
LA22A07_PDA/unpackage/res/icons/96x96.png
LA22A07_QY/.gitattributes
LA22A07_QY/.gitignore
LA22A07_QY/LA22A07_QY.sln
LA22A07_QY/README.en.md
LA22A07_QY/README.md
LA22A07_QY/iWare.Wms.Application/Entity/LocationView.cs
LA22A07_QY/iWare.Wms.Application/Mapper/CustomMapper.cs
LA22A07_QY/iWare.Wms.Application/Service/Common/CommonHelper.cs
LA22A07_QY/iWare.Wms.Application/Service/Common/FindEmptyLocationFactory/Default/ContainerFindEmptyLocationHandle.cs
LA22A07_QY/iWare.Wms.Application/Service/Common/FindEmptyLocationFactory/Default/MaterialFindEmptyLocationHandle.cs
LA22A07_QY/iWare.Wms.Application/Service/Common/FindEmptyLocationFactory/FindEmptyLocationServiceFactory.cs
LA22A07_QY/iWare.Wms.Application/Service/Common/FindEmptyLocationFactory/FindEmptyLocationServiceHandle.cs
LA22A07_QY/iWare.Wms.Application/Service/Common/ListHelper.cs
LA22A07_QY/iWare.Wms.Application/Service/System/App/Dto/AppInput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/App/Dto/AppOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/App/ISysAppService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/App/SysAppService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Auth/AuthService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Auth/Dto/LoginInput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Auth/Dto/LoginOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Auth/Dto/RegistInput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Auth/IAuthService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Base/BaseService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Base/Dto/BaseDto.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Cache/ISysCacheService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Cache/SysCacheService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Captcha/ClickWord/ClickWordCaptcha.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Captcha/ClickWord/ClickWordCaptchaInput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Captcha/ClickWord/ClickWordCaptchaResult.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Captcha/ClickWord/IClickWordCaptcha.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Captcha/General/GeneralCaptcha.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Captcha/General/GeneralCaptchaInput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Captcha/General/IGeneralCaptcha.cs
LA22A07_QY/iWare.Wms.Application/Service/System/CodeGen/CodeGenConfigService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/CodeGen/CodeGenService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/CodeGen/Dto/CodeGenConfig.cs
LA22A07_QY/iWare.Wms.Application/Service/System/CodeGen/Dto/CodeGenInput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/CodeGen/Dto/CodeGenModel.cs
LA22A07_QY/iWare.Wms.Application/Service/System/CodeGen/Dto/CodeGenOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/CodeGen/Dto/DatabaseOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/CodeGen/Dto/TableColumnOuput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/CodeGen/Dto/TableOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/CodeGen/Dto/XnCodeGenOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/CodeGen/ICodeGenConfigService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/CodeGen/ICodeGenService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Config/Dto/ConfigInput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Config/ISysConfigService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Config/SysConfigService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Dict/Dto/DictDataInput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Dict/Dto/DictDataOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Dict/Dto/DictTreeOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Dict/Dto/DictTypeInput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Dict/ISysDictDataService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Dict/ISysDictTypeService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Dict/SysDictDataService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Dict/SysDictTypeService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Emp/Dto/EmpExtOrgPosOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Emp/Dto/EmpOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Emp/Dto/EmpOutput2.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Emp/Dto/EmpPosOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Emp/ISysEmpExtOrgPosService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Emp/ISysEmpPosService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Emp/ISysEmpService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Emp/SysEmpExtOrgPosService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Emp/SysEmpPosService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Emp/SysEmpService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Enum/Dto/EnumDataInput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Enum/Dto/EnumDataOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Enum/ISysEnumDataService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Enum/SysEnumDataService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/File/Dto/FileInput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/File/Dto/FileOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/File/ISysFileService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/File/SysFileService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Forms/Dto/FormAddDto.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Forms/Dto/FormDto.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Forms/Dto/FormEditDto.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Forms/Dto/FormPageSearch.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Forms/Dto/FormPublishDto.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Forms/FormService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Forms/IFormService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Hubs/ChatHub.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Hubs/Dto/MessageinputDto.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Hubs/IChatClient.cs
LA22A07_QY/iWare.Wms.Application/Service/System/LowCode/Dto/ContrasOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/LowCode/Dto/ContrastLowCode.cs
LA22A07_QY/iWare.Wms.Application/Service/System/LowCode/Dto/Front_CodeGenerate.cs
LA22A07_QY/iWare.Wms.Application/Service/System/LowCode/Dto/GenEntity.cs
LA22A07_QY/iWare.Wms.Application/Service/System/LowCode/Dto/LowCodeInput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/LowCode/GenEntityComparer.cs
LA22A07_QY/iWare.Wms.Application/Service/System/LowCode/ILowCodeService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/LowCode/LowCodeService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Menu/Dto/AntDesignTreeNode.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Menu/Dto/MenuInput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Menu/Dto/MenuOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Menu/Dto/MenuTreeOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Menu/ISysMenuService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Menu/SysMenuService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Message/ISendMessageService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Message/SendMessageService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Monitor/IMachineService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Monitor/MachineService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Notice/Dto/NoticeBase.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Notice/Dto/NoticeDetailOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Notice/Dto/NoticeInput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Notice/Dto/NoticeReceiveOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Notice/ISysNoticeService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Notice/ISysNoticeUserService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Notice/SysNoticeService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Notice/SysNoticeUserService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/OnlineUser/Dto/OnlineUserOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/OnlineUser/ISysOnlineUserService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/OnlineUser/SysOnlineUserService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Org/Dto/OrgInput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Org/Dto/OrgOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Org/Dto/OrgTreeNode.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Org/ISysOrgService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Org/SysOrgService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Pos/Dto/PosInput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Pos/ISysPosService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Pos/SysPosService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Role/Dto/RoleInput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Role/Dto/RoleOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Role/ISysRoleDataScopeService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Role/ISysRoleMenuService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Role/ISysRoleService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Role/SysRoleDataScopeService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Role/SysRoleMenuService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Role/SysRoleService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Timer/Dto/JobInput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Timer/Dto/JobOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Timer/ISysTimerService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/Timer/SysTimerService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/User/CurrentUserInfo.cs
LA22A07_QY/iWare.Wms.Application/Service/System/User/Dto/AuthToken.cs
LA22A07_QY/iWare.Wms.Application/Service/System/User/Dto/AuthUserInput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/User/Dto/UserInput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/User/Dto/UserOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/System/User/ISysUserDataScopeService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/User/ISysUserRoleService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/User/ISysUserService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/User/SysUserDataScopeService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/User/SysUserRoleService.cs
LA22A07_QY/iWare.Wms.Application/Service/System/User/SysUserService.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WareContainerVsMaterial/Dto/WareContainerVsMaterialDto.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WareContainerVsMaterial/Dto/WareContainerVsMaterialInput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WareContainerVsMaterial/Dto/WareContainerVsMaterialOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WareContainerVsMaterial/IWareContainerVsMaterialService.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WareContainerVsMaterial/Map/WareContainerVsMaterialMapper.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WareContainerVsMaterial/WareContainerVsMaterialService.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WareSite/Dto/WareSiteDto.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WareSite/Dto/WareSiteInput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WareSite/Dto/WareSiteOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WareSite/IWareSiteService.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WareSite/Map/WareSiteMapper.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WareSite/WareSiteService.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsArea/Dto/WmsAreaDto.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsArea/Dto/WmsAreaInput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsArea/Dto/WmsAreaOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsArea/IWmsAreaService.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsArea/Map/WmsAreaMapper.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsArea/WmsAreaService.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsContainer/Dto/WmsContainerDto.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsContainer/Dto/WmsContainerExcel.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsContainer/Dto/WmsContainerInput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsContainer/Dto/WmsContainerOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsContainer/IWmsContainerService.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsContainer/Map/WmsContainerMapper.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsContainer/WmsContainerService.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsContainerType/Dto/WmsContainerTypeDto.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsContainerType/Dto/WmsContainerTypeInput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsContainerType/Dto/WmsContainerTypeOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsContainerType/IWmsContainerTypeService.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsContainerType/Map/WmsContainerTypeMapper.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsContainerType/WmsContainerTypeService.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsLocationType/Dto/WmsLocationTypeDto.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsLocationType/Dto/WmsLocationTypeInput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsLocationType/Dto/WmsLocationTypeOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsLocationType/IWmsLocationTypeService.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsLocationType/Map/WmsLocationTypeMapper.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsLocationType/WmsLocationTypeService.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsMaterial/Dto/WmsMaterialDto.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsMaterial/Dto/WmsMaterialInput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsMaterial/Dto/WmsMaterialOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsMaterial/IWmsMaterialService.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsMaterial/Map/WmsMaterialMapper.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsMaterial/WmsMaterialService.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsPart/Dto/WarePartOutputDto.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsPart/Dto/WmsPartDto.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsPart/Dto/WmsPartExcel.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsPart/Dto/WmsPartInput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsPart/Dto/WmsPartOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsPart/IWmsPartService.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsPart/Map/WmsPartMapper.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsPart/WmsPartService.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsPlace/Dto/WmsPlaceDto.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsPlace/Dto/WmsPlaceExcel.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsPlace/Dto/WmsPlaceInput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsPlace/Dto/WmsPlaceOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsPlace/IWmsPlaceService.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsPlace/Map/WmsPlaceMapper.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsPlace/WmsPlaceService.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsBase/WmsSeed/WmsSeed.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/ScreenDisplay/Dto/DeviceWarningLaneInput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/ScreenDisplay/Dto/DeviceWarningOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/ScreenDisplay/Dto/LocationStatisticsOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/ScreenDisplay/Dto/OutTaskOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/ScreenDisplay/Dto/PageInputCustomBase.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/ScreenDisplay/Dto/PlanExecutionOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/ScreenDisplay/Dto/QueryTaskInput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/ScreenDisplay/Dto/SrmCoordinate.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/ScreenDisplay/ScreenDisplayService.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WareDeviceWarning/Dto/WareDeviceWarningDto.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WareDeviceWarning/Dto/WareDeviceWarningInput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WareDeviceWarning/Dto/WareDeviceWarningOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WareDeviceWarning/IWareDeviceWarningService.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WareDeviceWarning/Map/WareDeviceWarningMapper.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WareDeviceWarning/WareDeviceWarningService.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WareFlowRecord/Dto/WareFlowRecordDto.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WareFlowRecord/Dto/WareFlowRecordInput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WareFlowRecord/Dto/WareFlowRecordOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WareFlowRecord/IWareFlowRecordService.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WareFlowRecord/Map/WareFlowRecordMapper.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WareFlowRecord/WareFlowRecordService.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WareTaskBak/Dto/WareTaskBakDto.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WareTaskBak/Dto/WareTaskBakExcel.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WareTaskBak/Dto/WareTaskBakInput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WareTaskBak/Dto/WareTaskBakOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WareTaskBak/IWareTaskBakService.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WareTaskBak/Map/WareTaskBakMapper.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WareTaskBak/WareTaskBakService.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WmsAccessDetails/Dto/View_AccessDetailsDto.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WmsAccessDetails/Dto/View_AccessDetailsInput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WmsAccessDetails/Dto/View_AccessDetailsOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WmsAccessDetails/IView_AccessDetailsService.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WmsAccessDetails/Map/View_AccessDetailsMapper.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WmsAccessDetails/View_AccessDetailsService.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WmsIndex/Dto/IndexInput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WmsIndex/Dto/IndexOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WmsIndex/IIndexCountService.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WmsIndex/IndexCountService.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WmsLocationView/Dto/InventoryByLocationInput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WmsLocationView/Dto/InventoryByLocationOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WmsLocationView/Dto/LocationViewInput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WmsLocationView/Dto/LocationViewOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WmsLocationView/IlocationViewService.cs
LA22A07_QY/iWare.Wms.Application/Service/WmsCount/WmsLocationView/locationViewService.cs
LA22A07_QY/iWare.Wms.Application/Service/Wmsjob/AgvTask/AgvCallbackService.cs
LA22A07_QY/iWare.Wms.Application/Service/Wmsjob/AgvTask/Dto/AgvCallbackInput.cs
LA22A07_QY/iWare.Wms.Application/Service/Wmsjob/AgvTask/Dto/AgvCommonResponseDto.cs
LA22A07_QY/iWare.Wms.Application/Service/Wmsjob/AgvTask/Dto/AgvWarnCallbackDto.cs
LA22A07_QY/iWare.Wms.Application/Service/Wmsjob/WmsBindEntrance/BindEntranceService.cs
LA22A07_QY/iWare.Wms.Application/Service/Wmsjob/WmsBindEntrance/Dto/BindEntranceDto.cs
LA22A07_QY/iWare.Wms.Application/Service/Wmsjob/WmsBindEntrance/Dto/BindEntranceInput.cs
LA22A07_QY/iWare.Wms.Application/Service/Wmsjob/WmsBindEntrance/Dto/BindEntranceOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/Wmsjob/WmsBindEntrance/Dto/WmsMaterialContainerDto.cs
LA22A07_QY/iWare.Wms.Application/Service/Wmsjob/WmsBindEntrance/IBindEntranceService.cs
LA22A07_QY/iWare.Wms.Application/Service/Wmsjob/WmsExWarehouse/Dto/ExWarehouseInput.cs
LA22A07_QY/iWare.Wms.Application/Service/Wmsjob/WmsExWarehouse/Dto/WmsMaterialStockDto.cs
LA22A07_QY/iWare.Wms.Application/Service/Wmsjob/WmsExWarehouse/Dto/WmsMaterialStockInput.cs
LA22A07_QY/iWare.Wms.Application/Service/Wmsjob/WmsExWarehouse/Dto/WmsMaterialStockOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/Wmsjob/WmsExWarehouse/ExWarehouseService.cs
LA22A07_QY/iWare.Wms.Application/Service/Wmsjob/WmsExWarehouse/IExWarehouseService.cs
LA22A07_QY/iWare.Wms.Application/Service/Wmsjob/WmsExWarehouse/Map/WmsMaterialStockMapper.cs
LA22A07_QY/iWare.Wms.Application/Service/Wmsjob/WmsTask/Dto/WMSAgvTAskInput.cs
LA22A07_QY/iWare.Wms.Application/Service/Wmsjob/WmsTask/Dto/WMSConfirmInput.cs
LA22A07_QY/iWare.Wms.Application/Service/Wmsjob/WmsTask/Dto/WmsTaskDto.cs
LA22A07_QY/iWare.Wms.Application/Service/Wmsjob/WmsTask/Dto/WmsTaskInput.cs
LA22A07_QY/iWare.Wms.Application/Service/Wmsjob/WmsTask/Dto/WmsTaskOutput.cs
LA22A07_QY/iWare.Wms.Application/Service/Wmsjob/WmsTask/IWmsTaskService.cs
LA22A07_QY/iWare.Wms.Application/Service/Wmsjob/WmsTask/Map/WmsTaskMapper.cs
LA22A07_QY/iWare.Wms.Application/Service/Wmsjob/WmsTask/WmsTaskService.cs
LA22A07_QY/iWare.Wms.Application/SpareTimes/SpareTimeDemo.cs
LA22A07_QY/iWare.Wms.Application/Startup.cs
LA22A07_QY/iWare.Wms.Application/applicationsettings.json
LA22A07_QY/iWare.Wms.Application/iWare.Wms.Application.csproj
LA22A07_QY/iWare.Wms.Application/iWare.Wms.Application.xml
LA22A07_QY/iWare.Wms.Core/Const/ClaimConst.cs
LA22A07_QY/iWare.Wms.Core/Const/CommonConst.cs
LA22A07_QY/iWare.Wms.Core/Entity/DEntityBase.cs
LA22A07_QY/iWare.Wms.Core/Entity/IDataPermissions.cs
LA22A07_QY/iWare.Wms.Core/Entity/System/SysApp.cs
LA22A07_QY/iWare.Wms.Core/Entity/System/SysCodeGen.cs
LA22A07_QY/iWare.Wms.Core/Entity/System/SysCodeGenConfig.cs
LA22A07_QY/iWare.Wms.Core/Entity/System/SysCodeModular.cs
LA22A07_QY/iWare.Wms.Core/Entity/System/SysConfig.cs
LA22A07_QY/iWare.Wms.Core/Entity/System/SysDictData.cs
LA22A07_QY/iWare.Wms.Core/Entity/System/SysDictType.cs
LA22A07_QY/iWare.Wms.Core/Entity/System/SysEmp.cs
LA22A07_QY/iWare.Wms.Core/Entity/System/SysEmpExtOrgPos.cs
LA22A07_QY/iWare.Wms.Core/Entity/System/SysEmpPos.cs
LA22A07_QY/iWare.Wms.Core/Entity/System/SysFile.cs
LA22A07_QY/iWare.Wms.Core/Entity/System/SysForm.cs
LA22A07_QY/iWare.Wms.Core/Entity/System/SysLogAudit.cs
LA22A07_QY/iWare.Wms.Core/Entity/System/SysLogEx.cs
LA22A07_QY/iWare.Wms.Core/Entity/System/SysLogOp.cs
LA22A07_QY/iWare.Wms.Core/Entity/System/SysLogVis.cs
LA22A07_QY/iWare.Wms.Core/Entity/System/SysLowCode.cs
LA22A07_QY/iWare.Wms.Core/Entity/System/SysLowCodeDataBase.cs
LA22A07_QY/iWare.Wms.Core/Entity/System/SysMenu.cs
LA22A07_QY/iWare.Wms.Core/Entity/System/SysNotice.cs
LA22A07_QY/iWare.Wms.Core/Entity/System/SysNoticeUser.cs
LA22A07_QY/iWare.Wms.Core/Entity/System/SysOnlineUser.cs
LA22A07_QY/iWare.Wms.Core/Entity/System/SysOrg.cs
LA22A07_QY/iWare.Wms.Core/Entity/System/SysPos.cs
LA22A07_QY/iWare.Wms.Core/Entity/System/SysRole.cs
LA22A07_QY/iWare.Wms.Core/Entity/System/SysRoleDataScope.cs
LA22A07_QY/iWare.Wms.Core/Entity/System/SysRoleMenu.cs
LA22A07_QY/iWare.Wms.Core/Entity/System/SysTimer.cs
LA22A07_QY/iWare.Wms.Core/Entity/System/SysUser.cs
LA22A07_QY/iWare.Wms.Core/Entity/System/SysUserDataScope.cs
LA22A07_QY/iWare.Wms.Core/Entity/System/SysUserRole.cs
LA22A07_QY/iWare.Wms.Core/Entity/WmsBase/WareDeviceWarning.cs
LA22A07_QY/iWare.Wms.Core/Entity/WmsBase/WareFlowRecord.cs
LA22A07_QY/iWare.Wms.Core/Entity/WmsBase/WareSite.cs
LA22A07_QY/iWare.Wms.Core/Entity/WmsBase/WmsArea.cs
LA22A07_QY/iWare.Wms.Core/Entity/WmsBase/WmsContainer.cs
LA22A07_QY/iWare.Wms.Core/Entity/WmsBase/WmsContainerType.cs
LA22A07_QY/iWare.Wms.Core/Entity/WmsBase/WmsLocationType.cs
LA22A07_QY/iWare.Wms.Core/Entity/WmsBase/WmsMaterial.cs
LA22A07_QY/iWare.Wms.Core/Entity/WmsBase/WmsPart.cs
LA22A07_QY/iWare.Wms.Core/Entity/WmsBase/WmsPlace.cs
LA22A07_QY/iWare.Wms.Core/Entity/WmsCount/WmsMaterialStock.cs
LA22A07_QY/iWare.Wms.Core/Entity/WmsCount/v_AccessDetails.cs
LA22A07_QY/iWare.Wms.Core/Entity/WmsJob/WareContainerVsMaterial.cs
LA22A07_QY/iWare.Wms.Core/Entity/WmsJob/WareLocationVsContainer.cs
LA22A07_QY/iWare.Wms.Core/Entity/WmsJob/WareTask.cs
LA22A07_QY/iWare.Wms.Core/Entity/WmsJob/WareTaskBak.cs
LA22A07_QY/iWare.Wms.Core/Entity/WmsJob/WareTaskSub.cs
LA22A07_QY/iWare.Wms.Core/Entity/WmsJob/WareTaskSubBak.cs
LA22A07_QY/iWare.Wms.Core/Entity/WmsJob/WmsMaterialContainer.cs
LA22A07_QY/iWare.Wms.Core/Entity/WmsJob/WmsTask.cs
LA22A07_QY/iWare.Wms.Core/Entity/WmsJob/v_empty_location.cs
LA22A07_QY/iWare.Wms.Core/Entity/WmsJob/v_ware_inventory_by_container.cs
LA22A07_QY/iWare.Wms.Core/Enum/AdminType.cs
LA22A07_QY/iWare.Wms.Core/Enum/CommonStatus.cs
LA22A07_QY/iWare.Wms.Core/Enum/DataOpType.cs
LA22A07_QY/iWare.Wms.Core/Enum/DataScopeType.cs
LA22A07_QY/iWare.Wms.Core/Enum/DeepcellNoEnum.cs
LA22A07_QY/iWare.Wms.Core/Enum/EnumAuditStatus.cs
LA22A07_QY/iWare.Wms.Core/Enum/ErrorCode.cs
LA22A07_QY/iWare.Wms.Core/Enum/FileLocation.cs
LA22A07_QY/iWare.Wms.Core/Enum/FormDesignType.cs
LA22A07_QY/iWare.Wms.Core/Enum/Gender.cs
LA22A07_QY/iWare.Wms.Core/Enum/HttpMethod.cs
LA22A07_QY/iWare.Wms.Core/Enum/HttpStatusCode.cs
LA22A07_QY/iWare.Wms.Core/Enum/LineTypeEnum.cs
LA22A07_QY/iWare.Wms.Core/Enum/LoginType.cs
LA22A07_QY/iWare.Wms.Core/Enum/MenuOpenType.cs
LA22A07_QY/iWare.Wms.Core/Enum/MenuType.cs
LA22A07_QY/iWare.Wms.Core/Enum/MenuWeight.cs
LA22A07_QY/iWare.Wms.Core/Enum/MessageType.cs
LA22A07_QY/iWare.Wms.Core/Enum/MeterialType.cs
LA22A07_QY/iWare.Wms.Core/Enum/NoticeStatus.cs
LA22A07_QY/iWare.Wms.Core/Enum/NoticeType.cs
LA22A07_QY/iWare.Wms.Core/Enum/NoticeUserStatus.cs
LA22A07_QY/iWare.Wms.Core/Enum/QueryTypeEnum.cs
LA22A07_QY/iWare.Wms.Core/Enum/RequestTypeEnum.cs
LA22A07_QY/iWare.Wms.Core/Enum/RoleTypeEnum.cs
LA22A07_QY/iWare.Wms.Core/Enum/SiteTypeEnum.cs
LA22A07_QY/iWare.Wms.Core/Enum/StockStatusEnum.cs
LA22A07_QY/iWare.Wms.Core/Enum/SubTaskStateEnum.cs
LA22A07_QY/iWare.Wms.Core/Enum/TaskCategoryEnum.cs
LA22A07_QY/iWare.Wms.Core/Enum/TaskStateEnum.cs
LA22A07_QY/iWare.Wms.Core/Enum/WmsAreaEnum.cs
LA22A07_QY/iWare.Wms.Core/Enum/WmsContainerEnum.cs
LA22A07_QY/iWare.Wms.Core/Enum/WmsMaterialEnum.cs
LA22A07_QY/iWare.Wms.Core/Enum/WmsTaskEnum.cs
LA22A07_QY/iWare.Wms.Core/Enum/YesOrNot.cs
LA22A07_QY/iWare.Wms.Core/EventSubscriber/LogEventSubscriber.cs
LA22A07_QY/iWare.Wms.Core/Extension/CsRedisExtensions.cs
LA22A07_QY/iWare.Wms.Core/Extension/DictionaryExtensions.cs
LA22A07_QY/iWare.Wms.Core/Extension/FakeDeleteExtensions.cs
LA22A07_QY/iWare.Wms.Core/Extension/LambdaExpressionBuilder.cs
LA22A07_QY/iWare.Wms.Core/Extension/NewtonsoftJsonSerializerProvider .cs
LA22A07_QY/iWare.Wms.Core/Extension/QueryableExstenstions.cs
LA22A07_QY/iWare.Wms.Core/Filter/DisableOpLogAttribute.cs
LA22A07_QY/iWare.Wms.Core/Filter/LogExceptionHandler.cs
LA22A07_QY/iWare.Wms.Core/Filter/RequestActionFilter.cs
LA22A07_QY/iWare.Wms.Core/Helper/ExcelHelper/Excel.cs
LA22A07_QY/iWare.Wms.Core/Helper/ExcelHelper/Excel2003Result.cs
LA22A07_QY/iWare.Wms.Core/Helper/ExcelHelper/ExcelBaseResult.cs
LA22A07_QY/iWare.Wms.Core/Helper/ExcelHelper/ExcelDataOptionAttribute.cs
LA22A07_QY/iWare.Wms.Core/Helper/ExcelHelper/ExcelOperation.cs
LA22A07_QY/iWare.Wms.Core/Options/RefreshTokenSettingOptions.cs
LA22A07_QY/iWare.Wms.Core/SeedData/SysAppSeedData.cs
LA22A07_QY/iWare.Wms.Core/SeedData/SysConfigSeedData.cs
LA22A07_QY/iWare.Wms.Core/SeedData/SysDictDataSeedData.cs
LA22A07_QY/iWare.Wms.Core/SeedData/SysDictTypeSeedData.cs
LA22A07_QY/iWare.Wms.Core/SeedData/SysEmpExtOrgPos.cs
LA22A07_QY/iWare.Wms.Core/SeedData/SysEmpPosSeedData.cs
LA22A07_QY/iWare.Wms.Core/SeedData/SysEmpSeedData.cs
LA22A07_QY/iWare.Wms.Core/SeedData/SysMenuSeedData.cs
LA22A07_QY/iWare.Wms.Core/SeedData/SysOrgSeedData.cs
LA22A07_QY/iWare.Wms.Core/SeedData/SysPosSeedData.cs
LA22A07_QY/iWare.Wms.Core/SeedData/SysRoleSeedData.cs
LA22A07_QY/iWare.Wms.Core/SeedData/SysTimerSeedData.cs
LA22A07_QY/iWare.Wms.Core/SeedData/SysUserDataScopeSeedData.cs
LA22A07_QY/iWare.Wms.Core/SeedData/SysUserRoleSeedData.cs
LA22A07_QY/iWare.Wms.Core/SeedData/SysUserSeedData.cs
LA22A07_QY/iWare.Wms.Core/SeedData/WmsAreaSeedData.cs
LA22A07_QY/iWare.Wms.Core/SeedData/WmsContainerSeedData.cs
LA22A07_QY/iWare.Wms.Core/SeedData/WmsMaterialSeedData.cs
LA22A07_QY/iWare.Wms.Core/SeedData/WmsMaterialStockSeedData.cs
LA22A07_QY/iWare.Wms.Core/SeedData/WmsPlaceSeedData.cs
LA22A07_QY/iWare.Wms.Core/SeedData/WmsTaskSeedData.cs
LA22A07_QY/iWare.Wms.Core/Service/BaseId.cs
LA22A07_QY/iWare.Wms.Core/Util/CodeGenUtil.cs
LA22A07_QY/iWare.Wms.Core/Util/DataCompareUtil.cs
LA22A07_QY/iWare.Wms.Core/Util/DateTimeOffSetToDateTime.cs
LA22A07_QY/iWare.Wms.Core/Util/EnumEntity.cs
LA22A07_QY/iWare.Wms.Core/Util/EnumUtil.cs
LA22A07_QY/iWare.Wms.Core/Util/IPUtil.cs
LA22A07_QY/iWare.Wms.Core/Util/JsonUtil.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Dto/Front_FileDto.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Enum/FieldType.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/EssentialFactor.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Factor/DateFactor.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Factor/DecimalFactor.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Factor/Interface/IFactor.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Factor/TextFactor.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Att/FrontTypeAttribute.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Att/FrontTypeBindDatabaseAttribute.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Code/AutoCode_Dynamic.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Code/AutoCode_Front.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Code/AutoCode_FrontModel.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Code/FileUrl_Code.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Front_Alert.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Front_Batch.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Front_Button.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Front_Card.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Front_Cascader.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Front_Checkbox.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Front_Date.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Front_Divider.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Front_Editor.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Front_Grid.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Front_Html.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Front_Input.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Front_Number.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Front_Radio.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Front_Rate.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Front_Select.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Front_SelectInputList.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Front_Slider.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Front_Switch.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Front_Table.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Front_Tabs.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Front_Text.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Front_Textarea.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Front_Time.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Front_TreeSelect.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Front_UploadFile.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Front_UploadImg.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Interface/IFront.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Interface/IFrontDynamic.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Interface/IFrontDynamicOptions.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Interface/IFrontLayout.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Model/Front_Base.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Model/Front_Config.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Model/Front_Convert.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Model/Front_Dynamic.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Model/Front_Model.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Model/Front_Option.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Model/Front_Rule.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Model/Front_Tree_Option.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Model/NotFoundFrontException.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/Front/Model/ViewDynamic.cs
LA22A07_QY/iWare.Wms.Core/Util/LowCode/SysFileServiceEx.cs
LA22A07_QY/iWare.Wms.Core/Util/MachineUtil.cs
LA22A07_QY/iWare.Wms.Core/Util/PageInputOrder.cs
LA22A07_QY/iWare.Wms.Core/Util/PagedUtil.cs
LA22A07_QY/iWare.Wms.Core/Util/ReflectionUtil.cs
LA22A07_QY/iWare.Wms.Core/Util/ShellUtil.cs
LA22A07_QY/iWare.Wms.Core/Util/TreeBuildUtil.cs
LA22A07_QY/iWare.Wms.Core/Util/XnInputBase.cs
LA22A07_QY/iWare.Wms.Core/Util/XnPageResult.cs
LA22A07_QY/iWare.Wms.Core/Util/XnRestfulResultProvider.cs
LA22A07_QY/iWare.Wms.Core/applicationconfig.json
LA22A07_QY/iWare.Wms.Core/iWare.Wms.Core.csproj
LA22A07_QY/iWare.Wms.Database.Migrations/Migrations/20230419063037_v1.0.1.Designer.cs
LA22A07_QY/iWare.Wms.Database.Migrations/Migrations/20230419063037_v1.0.1.cs
LA22A07_QY/iWare.Wms.Database.Migrations/Migrations/20230420055601_v1.0.2.Designer.cs
LA22A07_QY/iWare.Wms.Database.Migrations/Migrations/20230420055601_v1.0.2.cs
LA22A07_QY/iWare.Wms.Database.Migrations/Migrations/20230420070950_v1.0.3.Designer.cs
LA22A07_QY/iWare.Wms.Database.Migrations/Migrations/20230420070950_v1.0.3.cs
LA22A07_QY/iWare.Wms.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs
LA22A07_QY/iWare.Wms.Database.Migrations/iWare.Wms.Database.Migrations.csproj
LA22A07_QY/iWare.Wms.EntityFramework.Core/DbContexts/DefaultDbContext.cs
LA22A07_QY/iWare.Wms.EntityFramework.Core/DbContexts/MultiTenantDbContext.cs
LA22A07_QY/iWare.Wms.EntityFramework.Core/Startup.cs
LA22A07_QY/iWare.Wms.EntityFramework.Core/dbsettings.json
LA22A07_QY/iWare.Wms.EntityFramework.Core/iWare.Wms.EntityFramework.Core.csproj
LA22A07_QY/iWare.Wms.Web.Core/Handlers/JwtHandler.cs
LA22A07_QY/iWare.Wms.Web.Core/ServiceExtension/BStyleServiceExtension.cs
LA22A07_QY/iWare.Wms.Web.Core/ServiceExtension/SnowflakeIdServiceExtension.cs
LA22A07_QY/iWare.Wms.Web.Core/Startup.cs
LA22A07_QY/iWare.Wms.Web.Core/iWare.Wms.Web.Core.csproj
LA22A07_QY/iWare.Wms.Web.Entry/.config/dotnet-tools.json
LA22A07_QY/iWare.Wms.Web.Entry/Controllers/HomeController.cs
LA22A07_QY/iWare.Wms.Web.Entry/Program.cs
LA22A07_QY/iWare.Wms.Web.Entry/Properties/launchSettings.json
LA22A07_QY/iWare.Wms.Web.Entry/Views/Home/Index.cshtml
LA22A07_QY/iWare.Wms.Web.Entry/Views/Shared/_Layout.cshtml
LA22A07_QY/iWare.Wms.Web.Entry/Views/_ViewImports.cshtml
LA22A07_QY/iWare.Wms.Web.Entry/Views/_ViewStart.cshtml
LA22A07_QY/iWare.Wms.Web.Entry/appsettings.json
LA22A07_QY/iWare.Wms.Web.Entry/iWare.Wms.Web.Entry.csproj
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Captcha/Font/font1559.ttf
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Captcha/Image/1.jpg
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Captcha/Image/2.jpg
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Captcha/Image/3.jpg
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Captcha/Image/4.jpg
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Captcha/Image/5.jpg
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Captcha/Image/6.jpg
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Captcha/Image/7.jpg
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Captcha/Image/8.jpg
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Image/logo.png
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Template.zip
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Template/Dto.cs.cshtml
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Template/Dto.cs.vm
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Template/Entity.cs.cshtml
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Template/Entity.cs.vm
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Template/IService.cs.cshtml
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Template/IService.cs.vm
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Template/Input.cs.cshtml
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Template/Input.cs.vm
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Template/Manage.js.cshtml
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Template/Manage.js.vm
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Template/Mapper.cs.cshtml
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Template/Mapper.cs.vm
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Template/Output.cs.cshtml
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Template/Output.cs.vm
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Template/Service.cs.cshtml
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Template/Service.cs.vm
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Template/addForm.vue.cshtml
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Template/addForm.vue.vm
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Template/editForm.vue.cshtml
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Template/editForm.vue.vm
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Template/index.vue.cshtml
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Template/index.vue.vm
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Upload/Default/273667564548165.jpeg
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Upload/Default/290520762908741.jpg
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Upload/Default/290540885852229.jpg
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Upload/Default/290541680373829.jpg
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Upload/Default/290541696553029.jpg
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Upload/Default/290541720457285.jpg
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Upload/Default/290543139135557.jpg
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Upload/Default/290543159849029.jpg
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Upload/Default/290543276712005.jpg
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Upload/Default/290543306960965.jpg
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Upload/Default/290543630598213.jpg
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Upload/Default/290543643689029.jpg
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Upload/Default/290544533905477.jpg
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Upload/Default/290544557092933.jpg
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Upload/Default/351604299395141.jpg
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Upload/Default/352893017190469.jpg
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/Upload/Default/352918594232389.jpg
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/avatar2.jpg
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/css/app.7633af46.css
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/css/app.7633af46.css.gz
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/css/chunk-b7a16696.677134ab.css
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/css/chunk-b7a16696.677134ab.css.gz
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/css/chunk-vendors.4659697d.css
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/css/chunk-vendors.4659697d.css.gz
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/css/fail.8d6df989.css
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/css/fail.8d6df989.css.gz
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/css/site.css
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/css/theme-colors-ef7df4e0.css
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/css/user.fa7ae686.css
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/css/user.fa7ae686.css.gz
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/favicon.ico
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/img/bg.110420cf.png
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/img/logo.a0cbaad2.png
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/img/map.3425b845.jpg
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/img/map.ae82c867.png
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/img/map2.48889afd.png
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/img/welcome.164ddad4.png
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/index.html
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/js/app.413ecdbc.js
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/js/app.413ecdbc.js.gz
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/js/chunk-b7a16696.e8717d8b.js
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/js/chunk-b7a16696.e8717d8b.js.gz
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/js/chunk-vendors.c9111d8d.js
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/js/chunk-vendors.c9111d8d.js.gz
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/js/fail.c1daacfd.js
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/js/fail.c1daacfd.js.gz
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/js/site.js
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/js/user.6ca40864.js
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/js/user.6ca40864.js.gz
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/LICENSE
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css.map
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css.map
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css.map
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css.map
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css.map
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css.map
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css.map
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css.map
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css.map
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/css/bootstrap.css
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css.map
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css.map
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js.map
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js.map
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/js/bootstrap.js
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/jquery-validation/LICENSE.md
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/jquery-validation/dist/additional-methods.js
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/jquery-validation/dist/additional-methods.min.js
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/jquery-validation/dist/jquery.validate.js
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/jquery/LICENSE.txt
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/jquery/dist/jquery.js
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/jquery/dist/jquery.min.js
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/lib/jquery/dist/jquery.min.map
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/loading/loading.css
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/loading/loading.html
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/loading/option2/html_code_segment.html
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/loading/option2/loading.css
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/loading/option2/loading.svg
LA22A07_QY/iWare.Wms.Web.Entry/wwwroot/logo.png
LA22A07_Screen/.vscode/extensions.json
LA22A07_Screen/README.md
LA22A07_Screen/dist/assets/Screen1.3165b730.js
LA22A07_Screen/dist/assets/Screen1.af811640.css
LA22A07_Screen/dist/assets/Screen3.68482974.js
LA22A07_Screen/dist/assets/Screen3.ef42553b.css
LA22A07_Screen/dist/assets/bg.0b1d8907.jpg
LA22A07_Screen/dist/assets/fonts/element-icons.ttf
LA22A07_Screen/dist/assets/fonts/element-icons.woff
LA22A07_Screen/dist/assets/head_bg.0e5deb14.png
LA22A07_Screen/dist/assets/header3.d326a2af.png
LA22A07_Screen/dist/assets/iconfont.31c70f5b.woff
LA22A07_Screen/dist/assets/iconfont.e1350bca.ttf
LA22A07_Screen/dist/assets/index.b5faa898.css
LA22A07_Screen/dist/assets/index.d17f1add.js
LA22A07_Screen/dist/assets/index.f473c350.js
LA22A07_Screen/dist/assets/shelves_normal.7e1d90d3.png
LA22A07_Screen/dist/assets/shelves_normal2.bcf1a674.png
LA22A07_Screen/dist/assets/yejing.2a87918f.TTF
LA22A07_Screen/dist/config.js
LA22A07_Screen/dist/favicon.png
LA22A07_Screen/dist/fonts/element-icons.ttf
LA22A07_Screen/dist/fonts/element-icons.woff
LA22A07_Screen/dist/index.html
LA22A07_Screen/index.html
LA22A07_Screen/package-lock.json
LA22A07_Screen/package.json
LA22A07_Screen/public/assets/fonts/element-icons.ttf
LA22A07_Screen/public/assets/fonts/element-icons.woff
LA22A07_Screen/public/config.js
LA22A07_Screen/public/favicon.png
LA22A07_Screen/public/fonts/element-icons.ttf
LA22A07_Screen/public/fonts/element-icons.woff
LA22A07_Screen/src/App.vue
LA22A07_Screen/src/assets/fonts/iconfont.css
LA22A07_Screen/src/assets/fonts/iconfont.js
LA22A07_Screen/src/assets/fonts/iconfont.json
LA22A07_Screen/src/assets/fonts/iconfont.ttf
LA22A07_Screen/src/assets/fonts/iconfont.woff
LA22A07_Screen/src/assets/fonts/iconfont.woff2
LA22A07_Screen/src/assets/fonts/yejing.TTF
LA22A07_Screen/src/assets/images/bg.jpg
LA22A07_Screen/src/assets/images/bg01.png
LA22A07_Screen/src/assets/images/bg02.png
LA22A07_Screen/src/assets/images/ck1.png
LA22A07_Screen/src/assets/images/ck2.png
LA22A07_Screen/src/assets/images/ck3.png
LA22A07_Screen/src/assets/images/ck4.png
LA22A07_Screen/src/assets/images/ck5.png
LA22A07_Screen/src/assets/images/down.png
LA22A07_Screen/src/assets/images/head_bg.png
LA22A07_Screen/src/assets/images/icon1.png
LA22A07_Screen/src/assets/images/icon2.png
LA22A07_Screen/src/assets/images/icon3.png
LA22A07_Screen/src/assets/images/icon4.png
LA22A07_Screen/src/assets/images/icon5.png
LA22A07_Screen/src/assets/images/icon6.png
LA22A07_Screen/src/assets/images/icon7.png
LA22A07_Screen/src/assets/images/icon8.png
LA22A07_Screen/src/assets/images/icon9.png
LA22A07_Screen/src/assets/images/loading.gif
LA22A07_Screen/src/assets/images/pk.png
LA22A07_Screen/src/assets/images/tp1.png
LA22A07_Screen/src/assets/images/up.png
LA22A07_Screen/src/assets/img/screen/center/machine_abnormal.png
LA22A07_Screen/src/assets/img/screen/center/machine_green.png
LA22A07_Screen/src/assets/img/screen/center/machine_normal.png
LA22A07_Screen/src/assets/img/screen/center/machine_track_normal.png
LA22A07_Screen/src/assets/img/screen/center/rate_box.png
LA22A07_Screen/src/assets/img/screen/center/rgv_abnormal.png
LA22A07_Screen/src/assets/img/screen/center/rgv_green.png
LA22A07_Screen/src/assets/img/screen/center/rgv_normal.png
LA22A07_Screen/src/assets/img/screen/center/rgv_track_normal.png
LA22A07_Screen/src/assets/img/screen/center/shelves_normal.png
LA22A07_Screen/src/assets/img/screen/center/shelves_normal2.png
LA22A07_Screen/src/assets/img/screen/center/备份.png
LA22A07_Screen/src/assets/img/screen/header1.png
LA22A07_Screen/src/assets/img/screen/header3.png
LA22A07_Screen/src/assets/img/screen/title-line.png
LA22A07_Screen/src/assets/img/screen/title-tag.png
LA22A07_Screen/src/assets/js/utils/index.js
LA22A07_Screen/src/assets/js/utils/modules/color.js
LA22A07_Screen/src/assets/js/utils/modules/eleResize.js
LA22A07_Screen/src/assets/js/utils/modules/project.js
LA22A07_Screen/src/assets/js/utils/modules/regexValidate.js
LA22A07_Screen/src/assets/style/base.css
LA22A07_Screen/src/assets/style/comon0.css
LA22A07_Screen/src/assets/style/reset.css
LA22A07_Screen/src/assets/style/style-vars.scss
LA22A07_Screen/src/components/AutoScroll.vue
LA22A07_Screen/src/components/DropdownMenu.vue
LA22A07_Screen/src/components/Pannel1.vue
LA22A07_Screen/src/components/SearchBar.vue
LA22A07_Screen/src/components/UploadButton.vue
LA22A07_Screen/src/config/index.js
LA22A07_Screen/src/config/lang/en.json
LA22A07_Screen/src/config/lang/index.js
LA22A07_Screen/src/config/lang/zh_CN.json
LA22A07_Screen/src/config/modules/ajax.js
LA22A07_Screen/src/config/modules/pagination.js
LA22A07_Screen/src/main.js
LA22A07_Screen/src/pages/NotFound.vue
LA22A07_Screen/src/pages/archives/carriers/Index.vue
LA22A07_Screen/src/pages/archives/carriers/compontents/ChooseModal.vue
LA22A07_Screen/src/pages/archives/carriers/compontents/FormModal.vue
LA22A07_Screen/src/pages/archives/goods/Index.vue
LA22A07_Screen/src/pages/archives/goods/compontents/ChooseModal.vue
LA22A07_Screen/src/pages/archives/goods/compontents/FormModal.vue
LA22A07_Screen/src/pages/home/Index.vue
LA22A07_Screen/src/pages/home/compontents/ModelEDetailModal.vue
LA22A07_Screen/src/pages/home/compontents/ModuleA.vue
LA22A07_Screen/src/pages/home/compontents/ModuleB.vue
LA22A07_Screen/src/pages/home/compontents/ModuleC.vue
LA22A07_Screen/src/pages/home/compontents/ModuleD.vue
LA22A07_Screen/src/pages/home/compontents/ModuleE.vue
LA22A07_Screen/src/pages/layout/Index.vue
LA22A07_Screen/src/pages/layout/compontents/Header.vue
LA22A07_Screen/src/pages/layout/compontents/LeftAside.vue
LA22A07_Screen/src/pages/layout/compontents/SubContainter.vue
LA22A07_Screen/src/pages/layout/compontents/SubMenus.vue
LA22A07_Screen/src/pages/layout/compontents/Tabs.vue
LA22A07_Screen/src/pages/layout/compontents/Title.vue
LA22A07_Screen/src/pages/login/Index.vue
LA22A07_Screen/src/pages/login/components/Form.vue
LA22A07_Screen/src/pages/screen/Screen1.vue
LA22A07_Screen/src/pages/screen/Screen2.vue
LA22A07_Screen/src/pages/screen/Screen3.vue
LA22A07_Screen/src/pages/screen/Screen4.vue
LA22A07_Screen/src/pages/screen/components/BlockTitle.vue
LA22A07_Screen/src/pages/screen/components/Center.vue
LA22A07_Screen/src/pages/screen/components/Header.vue
LA22A07_Screen/src/pages/screen/components/Inputs.vue
LA22A07_Screen/src/pages/screen/components/Outputs.vue
LA22A07_Screen/src/pages/screen/components/PlanWarnings.vue
LA22A07_Screen/src/pages/screen/components/Plans.vue
LA22A07_Screen/src/pages/screen/components/Stock.vue
LA22A07_Screen/src/pages/screen/components/TableInfo.vue
LA22A07_Screen/src/pages/screen/components/TableTask.vue
LA22A07_Screen/src/pages/screen/components/Warnings.vue
LA22A07_Screen/src/pages/screen/home.vue
LA22A07_Screen/src/pages/statistics/agv/Index.vue
LA22A07_Screen/src/pages/statistics/eqpErrs/Index.vue
LA22A07_Screen/src/pages/statistics/equipments/Index.vue
LA22A07_Screen/src/pages/statistics/equipments/compontents/ChangeStatusModal.vue
LA22A07_Screen/src/pages/statistics/equipments/compontents/ModuleA.vue
LA22A07_Screen/src/pages/statistics/equipments/compontents/ModuleB.vue
LA22A07_Screen/src/pages/statistics/equipments/compontents/ModuleC.vue
LA22A07_Screen/src/pages/statistics/inout/Index.vue
LA22A07_Screen/src/pages/statistics/inout/components/CarriersIndex.vue
LA22A07_Screen/src/pages/statistics/inout/components/GoodsIndex.vue
LA22A07_Screen/src/pages/statistics/inventory/Index.vue
LA22A07_Screen/src/pages/statistics/inventory/components/Choose.vue
LA22A07_Screen/src/pages/statistics/inventory/components/OrderChoose.vue
LA22A07_Screen/src/pages/statistics/outPlan/Index.vue
LA22A07_Screen/src/pages/statistics/overdue/index.vue
LA22A07_Screen/src/pages/statistics/storeLocation/Index.vue
LA22A07_Screen/src/pages/statistics/virtualInOut/Index.vue
LA22A07_Screen/src/pages/statistics/virtualInventory/Index.vue
LA22A07_Screen/src/pages/system/dictionaries/Index.vue
LA22A07_Screen/src/pages/system/dictionaries/compontents/DataFormModal.vue
LA22A07_Screen/src/pages/system/dictionaries/compontents/FormModal.vue
LA22A07_Screen/src/pages/system/orderNo/Index.vue
LA22A07_Screen/src/pages/system/orderNo/compontents/Action.vue
LA22A07_Screen/src/pages/system/orderNo/compontents/AllHistory.vue
LA22A07_Screen/src/pages/system/orderNo/compontents/FormModal.vue
LA22A07_Screen/src/pages/system/orderNo/compontents/HistoryModal.vue
LA22A07_Screen/src/pages/system/permissions/Index.vue
LA22A07_Screen/src/pages/system/permissions/compontents/FormModal.vue
LA22A07_Screen/src/pages/system/roles/Index.vue
LA22A07_Screen/src/pages/system/roles/compontents/AuthorityModal.vue
LA22A07_Screen/src/pages/system/roles/compontents/FormModal.vue
LA22A07_Screen/src/pages/system/special/Index.vue
LA22A07_Screen/src/pages/system/special/components/NewModal.vue
LA22A07_Screen/src/pages/system/users/Index.vue
LA22A07_Screen/src/pages/system/users/compontents/FormModal.vue
LA22A07_Screen/src/pages/system/users/compontents/ModifyMyPassword.vue
LA22A07_Screen/src/pages/tasks/carriersInput/Index.vue
LA22A07_Screen/src/pages/tasks/carriersInput/compontents/AddFormModal.vue
LA22A07_Screen/src/pages/tasks/carriresOutput/Index.vue
LA22A07_Screen/src/pages/tasks/carriresOutput/compontents/NewModal.vue
LA22A07_Screen/src/pages/tasks/input/Index.vue
LA22A07_Screen/src/pages/tasks/input/compontents/AddFormModal.vue
LA22A07_Screen/src/pages/tasks/output/Index.vue
LA22A07_Screen/src/pages/tasks/output/compontents/NewModal.vue
LA22A07_Screen/src/pages/tasks/output/compontents/SequenceModal.vue
LA22A07_Screen/src/pages/tasks/outputPlan/Index.vue
LA22A07_Screen/src/pages/tasks/outputPlan/compontents/CheckModal.vue
LA22A07_Screen/src/pages/tasks/outputPlan/compontents/FormModal.vue
LA22A07_Screen/src/pages/tasks/virtualInput/Index.vue
LA22A07_Screen/src/pages/tasks/virtualInput/compontents/AddFormModal.vue
LA22A07_Screen/src/pages/tasks/virtualOutput/Index.vue
LA22A07_Screen/src/pages/tasks/virtualOutput/compontents/NewModal.vue
LA22A07_Screen/src/pages/test.vue
LA22A07_Screen/src/service/ajax/index.js
LA22A07_Screen/src/service/ajax/modules/beforeSend.js
LA22A07_Screen/src/service/i18n.js
LA22A07_Screen/src/service/router/index.js
LA22A07_Screen/src/service/store/index.js
LA22A07_Screen/src/service/store/modules/system.js
LA22A07_Screen/src/service/store/modules/user.js
LA22A07_Screen/src/theme/theme-default.scss
LA22A07_Screen/src/theme/theme-green.scss
LA22A07_Screen/src/utils/cache.ts
LA22A07_Screen/vite.config.js
LA22A07_WCS/DLL/HslCommunication.dll
LA22A07_WCS/DLL/HslCommunication.xml
LA22A07_WCS/LA22A07.Wcs.sln
LA22A07_WCS/ServiceClient/App.config
LA22A07_WCS/ServiceClient/ConfigCommon.cs
LA22A07_WCS/ServiceClient/Program.cs
LA22A07_WCS/ServiceClient/Properties/AssemblyInfo.cs
LA22A07_WCS/ServiceClient/Properties/Resources.Designer.cs
LA22A07_WCS/ServiceClient/Properties/Resources.resx
LA22A07_WCS/ServiceClient/Properties/Settings.Designer.cs
LA22A07_WCS/ServiceClient/Properties/Settings.settings
LA22A07_WCS/ServiceClient/Service.ico
LA22A07_WCS/ServiceClient/ServiceClient.cs
LA22A07_WCS/ServiceClient/ServiceClient.csproj
LA22A07_WCS/ServiceClient/ServiceClient.designer.cs
LA22A07_WCS/ServiceClient/ServiceClient.resx
LA22A07_WCS/ServiceClient/ServiceSection.cs
LA22A07_WCS/ServiceClient/Windows.cs
LA22A07_WCS/Services/DeleteTaskService/Program.cs
LA22A07_WCS/Services/DeleteTaskService/ProjectInstaller.Designer.cs
LA22A07_WCS/Services/DeleteTaskService/ProjectInstaller.cs
LA22A07_WCS/Services/DeleteTaskService/ProjectInstaller.resx
LA22A07_WCS/Services/DeleteTaskService/Properties/AssemblyInfo.cs
LA22A07_WCS/Services/DeleteTaskService/app.config
LA22A07_WCS/Services/DeleteTaskService/iWareDeleteTaskService.Designer.cs
LA22A07_WCS/Services/DeleteTaskService/iWareDeleteTaskService.cs
LA22A07_WCS/Services/DeleteTaskService/iWareDeleteTaskService.csproj
LA22A07_WCS/Services/DeleteTaskService/iWareDeleteTaskService.resx
LA22A07_WCS/Services/DeleteTaskService/packages.config
LA22A07_WCS/Services/PastDueService/Program.cs
LA22A07_WCS/Services/PastDueService/ProjectInstaller.Designer.cs
LA22A07_WCS/Services/PastDueService/ProjectInstaller.cs
LA22A07_WCS/Services/PastDueService/ProjectInstaller.resx
LA22A07_WCS/Services/PastDueService/Properties/AssemblyInfo.cs
LA22A07_WCS/Services/PastDueService/app.config
LA22A07_WCS/Services/PastDueService/iWarePastDueService.Designer.cs
LA22A07_WCS/Services/PastDueService/iWarePastDueService.cs
LA22A07_WCS/Services/PastDueService/iWarePastDueService.csproj
LA22A07_WCS/Services/PastDueService/iWarePastDueService.resx
LA22A07_WCS/Services/PastDueService/packages.config
LA22A07_WCS/iWareCC_ASRS/App.config
LA22A07_WCS/iWareCC_ASRS/BLL/ConveyorBLL.cs
LA22A07_WCS/iWareCC_ASRS/BLL/MesBLL.cs
LA22A07_WCS/iWareCC_ASRS/BLL/RgvBLL.cs
LA22A07_WCS/iWareCC_ASRS/BLL/SrmBLL.cs
LA22A07_WCS/iWareCC_ASRS/Common/DeviceDict.cs
LA22A07_WCS/iWareCC_ASRS/Common/Helper/ControlHelper.cs
LA22A07_WCS/iWareCC_ASRS/Common/Helper/FormHelper.cs
LA22A07_WCS/iWareCC_ASRS/Common/Helper/MyExtendHelper.cs
LA22A07_WCS/iWareCC_ASRS/Common/MyMesService.cs
LA22A07_WCS/iWareCC_ASRS/Common/SystemValue.cs
LA22A07_WCS/iWareCC_ASRS/Common/SystemValueUtil.cs
LA22A07_WCS/iWareCC_ASRS/Common/SystemWarningMsg.cs
LA22A07_WCS/iWareCC_ASRS/Connected Services/ConveyorService/Reference.cs
LA22A07_WCS/iWareCC_ASRS/Connected Services/ConveyorService/Reference.svcmap
LA22A07_WCS/iWareCC_ASRS/Connected Services/ConveyorService/configuration.svcinfo
LA22A07_WCS/iWareCC_ASRS/Connected Services/ConveyorService/configuration91.svcinfo
LA22A07_WCS/iWareCC_ASRS/Connected Services/ConveyorService/iWareCC.ConveyorService.ConveyerView.datasource
LA22A07_WCS/iWareCC_ASRS/Connected Services/ConveyorService/iWareCC.ConveyorService.SdaResEntity.datasource
LA22A07_WCS/iWareCC_ASRS/Connected Services/ConveyorService/iWareSda.Devices._3_Conveyer.ConveyerModel.xsd
LA22A07_WCS/iWareCC_ASRS/Connected Services/ConveyorService/iWareSda.Model.xsd
LA22A07_WCS/iWareCC_ASRS/Connected Services/ConveyorService/iWareSda.xsd
LA22A07_WCS/iWareCC_ASRS/Connected Services/ConveyorService/service.wsdl
LA22A07_WCS/iWareCC_ASRS/Connected Services/ConveyorService/service.xsd
LA22A07_WCS/iWareCC_ASRS/Connected Services/ConveyorService/service1.xsd
LA22A07_WCS/iWareCC_ASRS/Connected Services/RgvService/Reference.cs
LA22A07_WCS/iWareCC_ASRS/Connected Services/RgvService/Reference.svcmap
LA22A07_WCS/iWareCC_ASRS/Connected Services/RgvService/configuration.svcinfo
LA22A07_WCS/iWareCC_ASRS/Connected Services/RgvService/configuration91.svcinfo
LA22A07_WCS/iWareCC_ASRS/Connected Services/RgvService/iWareCC.RgvService.RgvView.datasource
LA22A07_WCS/iWareCC_ASRS/Connected Services/RgvService/iWareCC.RgvService.SdaResEntity.datasource
LA22A07_WCS/iWareCC_ASRS/Connected Services/RgvService/iWareSda.Devices._3_Rgv.RgvModel1.xsd
LA22A07_WCS/iWareCC_ASRS/Connected Services/RgvService/iWareSda.Model1.xsd
LA22A07_WCS/iWareCC_ASRS/Connected Services/RgvService/iWareSda1.xsd
LA22A07_WCS/iWareCC_ASRS/Connected Services/RgvService/service.wsdl
LA22A07_WCS/iWareCC_ASRS/Connected Services/RgvService/service.xsd
LA22A07_WCS/iWareCC_ASRS/Connected Services/RgvService/service1.xsd
LA22A07_WCS/iWareCC_ASRS/Connected Services/SrmService/Reference.cs
LA22A07_WCS/iWareCC_ASRS/Connected Services/SrmService/Reference.svcmap
LA22A07_WCS/iWareCC_ASRS/Connected Services/SrmService/configuration.svcinfo
LA22A07_WCS/iWareCC_ASRS/Connected Services/SrmService/configuration91.svcinfo
LA22A07_WCS/iWareCC_ASRS/Connected Services/SrmService/iWareCC.SrmService.IsAllowSendTaskResponse.datasource
LA22A07_WCS/iWareCC_ASRS/Connected Services/SrmService/iWareCC.SrmService.IsReadyResponse.datasource
LA22A07_WCS/iWareCC_ASRS/Connected Services/SrmService/iWareCC.SrmService.SdaResEntity.datasource
LA22A07_WCS/iWareCC_ASRS/Connected Services/SrmService/iWareCC.SrmService.SrmEntity.datasource
LA22A07_WCS/iWareCC_ASRS/Connected Services/SrmService/iWareCC.SrmService.SrmView.datasource
LA22A07_WCS/iWareCC_ASRS/Connected Services/SrmService/iWareSda.SrmService.SrmEntity1.xsd
LA22A07_WCS/iWareCC_ASRS/Connected Services/SrmService/service1.wsdl
LA22A07_WCS/iWareCC_ASRS/Connected Services/SrmService/service1.xsd
LA22A07_WCS/iWareCC_ASRS/Connected Services/SrmService/service11.wsdl
LA22A07_WCS/iWareCC_ASRS/Connected Services/SrmService/service2.xsd
LA22A07_WCS/iWareCC_ASRS/Connected Services/SrmService/service21.xsd
LA22A07_WCS/iWareCC_ASRS/DeviceThreadFactory/DeviceThreadService/AGVThreadService/AGVThreadService.cs
LA22A07_WCS/iWareCC_ASRS/DeviceThreadFactory/DeviceThreadService/ConveyorThreadService/ConveyorThreadService.cs
LA22A07_WCS/iWareCC_ASRS/DeviceThreadFactory/DeviceThreadService/RgvThreadService/RgvTaskThreadService.cs
LA22A07_WCS/iWareCC_ASRS/DeviceThreadFactory/DeviceThreadService/SrmThreadService/SrmTaskThreadService.cs
LA22A07_WCS/iWareCC_ASRS/DeviceThreadFactory/DeviceThreadServiceFactory.cs
LA22A07_WCS/iWareCC_ASRS/DeviceThreadFactory/DeviceThreadServiceHandle.cs
LA22A07_WCS/iWareCC_ASRS/FormCC.Designer.cs
LA22A07_WCS/iWareCC_ASRS/FormCC.cs
LA22A07_WCS/iWareCC_ASRS/FormCC.resx
LA22A07_WCS/iWareCC_ASRS/Forms/SrmStockForm.Designer.cs
LA22A07_WCS/iWareCC_ASRS/Forms/SrmStockForm.cs
LA22A07_WCS/iWareCC_ASRS/Forms/SrmStockForm.resx
LA22A07_WCS/iWareCC_ASRS/Forms/SystemCheckForm.Designer.cs
LA22A07_WCS/iWareCC_ASRS/Forms/SystemCheckForm.cs
LA22A07_WCS/iWareCC_ASRS/Forms/SystemCheckForm.resx
LA22A07_WCS/iWareCC_ASRS/IwareICO.ico
LA22A07_WCS/iWareCC_ASRS/Logo.ico
LA22A07_WCS/iWareCC_ASRS/Program.cs
LA22A07_WCS/iWareCC_ASRS/Properties/AssemblyInfo.cs
LA22A07_WCS/iWareCC_ASRS/Properties/Resources.Designer.cs
LA22A07_WCS/iWareCC_ASRS/Properties/Resources.resx
LA22A07_WCS/iWareCC_ASRS/Properties/Settings.Designer.cs
LA22A07_WCS/iWareCC_ASRS/Properties/Settings.settings
LA22A07_WCS/iWareCC_ASRS/Resources/穿梭子母车(彩色).jpg
LA22A07_WCS/iWareCC_ASRS/Resources/穿梭母车1.jpg
LA22A07_WCS/iWareCC_ASRS/WCF/CCWcfService.cs
LA22A07_WCS/iWareCC_ASRS/WCF/ICCWcfService.cs
LA22A07_WCS/iWareCC_ASRS/WmsTask/MainTaskCompleteHandle.cs
LA22A07_WCS/iWareCC_ASRS/WmsTask/MainTaskDecompose.cs
LA22A07_WCS/iWareCC_ASRS/WmsTask/MoveTaskHandle.cs
LA22A07_WCS/iWareCC_ASRS/WmsTask/ScanContainerCode.cs
LA22A07_WCS/iWareCC_ASRS/iWareCC.csproj
LA22A07_WCS/iWareCommon/BusinessHelper/BusinessHelper.cs
LA22A07_WCS/iWareCommon/BusinessHelper/WCSConfigHelper.cs
LA22A07_WCS/iWareCommon/Common/Dao/CommonDao.cs
LA22A07_WCS/iWareCommon/Common/Dao/_system~.ini
LA22A07_WCS/iWareCommon/Common/Globle/SysGloble.cs
LA22A07_WCS/iWareCommon/Common/ParamEntity/AddMainTaskPostParam.cs
LA22A07_WCS/iWareCommon/Common/Service/CommonService.cs
LA22A07_WCS/iWareCommon/Common/Service/_system~.ini
LA22A07_WCS/iWareCommon/Common/ServiceEntity/Conveyor/ConveyorEntity/Conveyor_CacheEntity.cs
LA22A07_WCS/iWareCommon/Common/ServiceEntity/Conveyor/ConveyorEntity/SrmConveyorEntity.cs
LA22A07_WCS/iWareCommon/Common/ServiceEntity/Conveyor/ConveyorEntity/SrmConveyorStationEntity.cs
LA22A07_WCS/iWareCommon/Common/ServiceEntity/Conveyor/ConveyorEntity/SrmConveyor_DB.cs
LA22A07_WCS/iWareCommon/Common/ServiceEntity/Conveyor/ConveyorEnumType/ESrmConveyorAlarm.cs
LA22A07_WCS/iWareCommon/Common/ServiceEntity/Srm/SrmEntity/CacheEntity.cs
LA22A07_WCS/iWareCommon/Common/ServiceEntity/Srm/SrmEntity/Srm1_DB.cs
LA22A07_WCS/iWareCommon/Common/ServiceEntity/Srm/SrmEntity/Srm2_DB.cs
LA22A07_WCS/iWareCommon/Common/ServiceEntity/Srm/SrmEntity/SrmEntity.cs
LA22A07_WCS/iWareCommon/Common/ServiceEntity/Srm/SrmEntity/SrmInfo.cs
LA22A07_WCS/iWareCommon/Common/ServiceEntity/Srm/SrmEntity/Srm_CacheEntity.cs
LA22A07_WCS/iWareCommon/Common/ServiceEntity/Srm/SrmEnumType/ESrmAlarm.cs
LA22A07_WCS/iWareCommon/Common/ServiceEntity/Srm/SrmEnumType/ESrmCmd.cs
LA22A07_WCS/iWareCommon/Common/ServiceEntity/Srm/SrmEnumType/ESrmState.cs
LA22A07_WCS/iWareCommon/DLL/Castle.Core.dll
LA22A07_WCS/iWareCommon/DLL/Castle.Core.xml
LA22A07_WCS/iWareCommon/DLL/Common.Logging.Core.dll
LA22A07_WCS/iWareCommon/DLL/Common.Logging.Core.xml
LA22A07_WCS/iWareCommon/DLL/Common.Logging.Log4Net1213.dll
LA22A07_WCS/iWareCommon/DLL/Common.Logging.Log4Net1213.xml
LA22A07_WCS/iWareCommon/DLL/Common.Logging.dll
LA22A07_WCS/iWareCommon/DLL/Common.Logging.xml
LA22A07_WCS/iWareCommon/DLL/EntityFramework.SqlServer.dll
LA22A07_WCS/iWareCommon/DLL/EntityFramework.dll
LA22A07_WCS/iWareCommon/DLL/Interop.OPCAutomation.dll
LA22A07_WCS/iWareCommon/DLL/Newtonsoft.Json.dll
LA22A07_WCS/iWareCommon/DLL/Newtonsoft.Json.xml
LA22A07_WCS/iWareCommon/DLL/OpcAccess.dll
LA22A07_WCS/iWareCommon/DLL/Pager.XML
LA22A07_WCS/iWareCommon/DLL/Pager.dll
LA22A07_WCS/iWareCommon/DLL/TwinCAT.Ads.dll
LA22A07_WCS/iWareCommon/DLL/TwinCatAdsAccess.dll
LA22A07_WCS/iWareCommon/DLL/WZ.Useful.Commons.dll
LA22A07_WCS/iWareCommon/DLL/log4net.dll
LA22A07_WCS/iWareCommon/DLL/log4net.xml
LA22A07_WCS/iWareCommon/Properties/AssemblyInfo.cs
LA22A07_WCS/iWareCommon/Properties/Resources.Designer.cs
LA22A07_WCS/iWareCommon/Properties/Resources.resx
LA22A07_WCS/iWareCommon/Utils/AutoSizeFormClass.cs
LA22A07_WCS/iWareCommon/Utils/Base64Helper.cs
LA22A07_WCS/iWareCommon/Utils/CSharpHelper.cs
LA22A07_WCS/iWareCommon/Utils/ClassHelper.cs
LA22A07_WCS/iWareCommon/Utils/ComboBoxHelper.cs
LA22A07_WCS/iWareCommon/Utils/ConfigHelper.cs
LA22A07_WCS/iWareCommon/Utils/DESHelper.cs
LA22A07_WCS/iWareCommon/Utils/DataCache.cs
LA22A07_WCS/iWareCommon/Utils/DataTableHelper.cs
LA22A07_WCS/iWareCommon/Utils/DateTimeHelper.cs
LA22A07_WCS/iWareCommon/Utils/EntityPropHelper.cs
LA22A07_WCS/iWareCommon/Utils/EnumberHelper.cs
LA22A07_WCS/iWareCommon/Utils/ExcelHelper.cs
LA22A07_WCS/iWareCommon/Utils/FileHelper.cs
LA22A07_WCS/iWareCommon/Utils/FolderHelper.cs
LA22A07_WCS/iWareCommon/Utils/HTTP/HTTPService.cs
LA22A07_WCS/iWareCommon/Utils/HTTP/HttpHelper.cs
LA22A07_WCS/iWareCommon/Utils/HTTP/SSLUtil.cs
LA22A07_WCS/iWareCommon/Utils/IEnumerableHelper.cs
LA22A07_WCS/iWareCommon/Utils/IntHelper.cs
LA22A07_WCS/iWareCommon/Utils/ListHelper.cs
LA22A07_WCS/iWareCommon/Utils/Log4Net/C_LogWriter.cs
LA22A07_WCS/iWareCommon/Utils/Log4Net/Log4netHelper.cs
LA22A07_WCS/iWareCommon/Utils/Log4Net/LogType.cs
LA22A07_WCS/iWareCommon/Utils/LogTextHelper.cs
LA22A07_WCS/iWareCommon/Utils/MD5Helper.cs
LA22A07_WCS/iWareCommon/Utils/MachineHelper.cs
LA22A07_WCS/iWareCommon/Utils/MyBase64Helper.cs
LA22A07_WCS/iWareCommon/Utils/PageHelper.cs
LA22A07_WCS/iWareCommon/Utils/RandomHelper.cs
LA22A07_WCS/iWareCommon/Utils/StringHelper.cs
LA22A07_WCS/iWareCommon/Utils/SysHelper.cs
LA22A07_WCS/iWareCommon/Utils/SysMessageUtil.cs
LA22A07_WCS/iWareCommon/Utils/TaskNoHelper.cs
LA22A07_WCS/iWareCommon/Utils/TextHelper.cs
LA22A07_WCS/iWareCommon/Utils/ThreadHelper.cs
LA22A07_WCS/iWareCommon/Utils/TreeHelper.cs
LA22A07_WCS/iWareCommon/Utils/ValidateDataHelper.cs
LA22A07_WCS/iWareCommon/Utils/ZipHelper.cs
LA22A07_WCS/iWareCommon/iWareCommon.csproj
LA22A07_WCS/iWareCommon/log4net_iWare.config
LA22A07_WCS/iWareModel/Entity/AGV/AgvCallbackRequestDto.cs
LA22A07_WCS/iWareModel/Entity/AGV/AgvCancelTask.cs
LA22A07_WCS/iWareModel/Entity/AGV/AgvCommonResponseDto.cs
LA22A07_WCS/iWareModel/Entity/AGV/AgvContinueTask.cs
LA22A07_WCS/iWareModel/Entity/AGV/AgvSchedulingTaskDto.cs
LA22A07_WCS/iWareModel/Entity/BindableBase.cs
LA22A07_WCS/iWareModel/Entity/Context.cs
LA22A07_WCS/iWareModel/Entity/Device/DeviceCoordinat.cs
LA22A07_WCS/iWareModel/Entity/EnumberEntity.cs
LA22A07_WCS/iWareModel/Entity/Huffman.cs
LA22A07_WCS/iWareModel/Entity/IBuilder.cs
LA22A07_WCS/iWareModel/Entity/ICommonEntity.cs
LA22A07_WCS/iWareModel/Entity/IDirector.cs
LA22A07_WCS/iWareModel/Entity/IHandler.cs
LA22A07_WCS/iWareModel/Entity/IService.cs
LA22A07_WCS/iWareModel/Entity/IStrategy.cs
LA22A07_WCS/iWareModel/Entity/ITreeEntity.cs
LA22A07_WCS/iWareModel/Entity/LZW.cs
LA22A07_WCS/iWareModel/Entity/ListItem.cs
LA22A07_WCS/iWareModel/Entity/MES/MesRetModel.cs
LA22A07_WCS/iWareModel/Entity/MES/MesRetModel2.cs
LA22A07_WCS/iWareModel/Entity/MES/MesRetProductModel.cs
LA22A07_WCS/iWareModel/Entity/MES/MesUpdateOnlineStatusParamModel.cs
LA22A07_WCS/iWareModel/Entity/MES/Mes_BtjReceiveModel.cs
LA22A07_WCS/iWareModel/Entity/QueryParam.cs
LA22A07_WCS/iWareModel/Entity/ResponseListDataEntity.cs
LA22A07_WCS/iWareModel/Entity/ResponseListDataPageEntity.cs
LA22A07_WCS/iWareModel/Entity/ResponseSimpleDataEntity.cs
LA22A07_WCS/iWareModel/Entity/ResultModel/FunRetEntity.cs
LA22A07_WCS/iWareModel/Entity/ResultModel/MessageModel.cs
LA22A07_WCS/iWareModel/Entity/ResultModel/ResEntity.cs
LA22A07_WCS/iWareModel/Entity/SysUser.cs
LA22A07_WCS/iWareModel/Entity/System/ColumnsModel.cs
LA22A07_WCS/iWareModel/Entity/System/PropertieModel.cs
LA22A07_WCS/iWareModel/Entity/TEST.csdl
LA22A07_WCS/iWareModel/Entity/TEST.designer.cs
LA22A07_WCS/iWareModel/Entity/TEST.msl
LA22A07_WCS/iWareModel/Entity/TEST.ssdl
LA22A07_WCS/iWareModel/Entity/ValidateModel.cs
LA22A07_WCS/iWareModel/Entity/ValidateResModel.cs
LA22A07_WCS/iWareModel/Entity/WMS/CommonResponse.cs
LA22A07_WCS/iWareModel/Entity/WMS/CriterionEnterInput.cs
LA22A07_WCS/iWareModel/Entity/WMS/FrontTaskInput.cs
LA22A07_WCS/iWareModel/Entity/WMS/WMSConfirmInput.cs
LA22A07_WCS/iWareModel/Entity/WMS/WarehousOrderInput.cs
LA22A07_WCS/iWareModel/Entity/_system~.ini
LA22A07_WCS/iWareModel/EnumType/AoSinPublicCommon/ContainerTypeEnum.cs
LA22A07_WCS/iWareModel/EnumType/AoSinPublicCommon/EnumWarehousStatus.cs
LA22A07_WCS/iWareModel/EnumType/AoSinPublicCommon/OrderTypeEnum.cs
LA22A07_WCS/iWareModel/EnumType/AoSinPublicCommon/SiteTypeEnum.cs
LA22A07_WCS/iWareModel/EnumType/AoSinPublicCommon/StockStatusEnum.cs
LA22A07_WCS/iWareModel/EnumType/AoSinPublicCommon/TaskCategoryEnum.cs
LA22A07_WCS/iWareModel/EnumType/EDbError.cs
LA22A07_WCS/iWareModel/EnumType/EDevice/AGV/AGVState.cs
LA22A07_WCS/iWareModel/EnumType/EDevice/AGV/AgvForceCancel Type.cs
LA22A07_WCS/iWareModel/EnumType/EDevice/AGV/AgvPositionType.cs
LA22A07_WCS/iWareModel/EnumType/EDevice/AGV/AgvTaskTypeEnum.cs
LA22A07_WCS/iWareModel/EnumType/EDevice/Conveyer/EConveyerAlarm.cs
LA22A07_WCS/iWareModel/EnumType/EDevice/Conveyer/EConveyerBodyTest.cs
LA22A07_WCS/iWareModel/EnumType/EDevice/Conveyer/EConveyerCmd.cs
LA22A07_WCS/iWareModel/EnumType/EDevice/Conveyer/EConveyerEvent.cs
LA22A07_WCS/iWareModel/EnumType/EDevice/Conveyer/EConveyerMode.cs
LA22A07_WCS/iWareModel/EnumType/EDevice/Conveyer/EConveyerState.cs
LA22A07_WCS/iWareModel/EnumType/EDevice/EDevice.cs
LA22A07_WCS/iWareModel/EnumType/EDevice/EDeviceType.cs
LA22A07_WCS/iWareModel/EnumType/EDevice/ESrmAlarm.cs
LA22A07_WCS/iWareModel/EnumType/EDevice/Line/LineLocation.cs
LA22A07_WCS/iWareModel/EnumType/EDevice/Line/RgvErrorReason.cs
LA22A07_WCS/iWareModel/EnumType/EDevice/Line/RgvInOutFlag.cs
LA22A07_WCS/iWareModel/EnumType/EDevice/Line/RgvIsDie.cs
LA22A07_WCS/iWareModel/EnumType/EDevice/Line/RgvIsStock.cs
LA22A07_WCS/iWareModel/EnumType/EDevice/Line/RgvWorkMode.cs
LA22A07_WCS/iWareModel/EnumType/EDevice/Rgv/ERgvAlarm.cs
LA22A07_WCS/iWareModel/EnumType/EDevice/Rgv/ERgvBodyTest.cs
LA22A07_WCS/iWareModel/EnumType/EDevice/Rgv/ERgvCmd.cs
LA22A07_WCS/iWareModel/EnumType/EDevice/Rgv/ERgvEvent.cs
LA22A07_WCS/iWareModel/EnumType/EDevice/Rgv/ERgvMode.cs
LA22A07_WCS/iWareModel/EnumType/EDevice/Rgv/ERgvState.cs
LA22A07_WCS/iWareModel/EnumType/EDevice/Srm/ESrmCmd.cs
LA22A07_WCS/iWareModel/EnumType/EDevice/Srm/ESrmForkPosition.cs
LA22A07_WCS/iWareModel/EnumType/EDevice/Srm/ESrmMode.cs
LA22A07_WCS/iWareModel/EnumType/EDevice/Srm/ESrmState.cs
LA22A07_WCS/iWareModel/EnumType/EDevice/Srm/ESrmTaskType.cs
LA22A07_WCS/iWareModel/EnumType/EDevice/SubTaskStateEnum.cs
LA22A07_WCS/iWareModel/EnumType/EDevice/TaskStateEnum.cs
LA22A07_WCS/iWareModel/EnumType/ExceptionEnum.cs
LA22A07_WCS/iWareModel/EnumType/PLC/PLCServiceTypeEnum.cs
LA22A07_WCS/iWareModel/EnumType/RequestStatusEnum.cs
LA22A07_WCS/iWareModel/EnumType/StackSequenceSortRule.cs
LA22A07_WCS/iWareModel/EnumType/Sys/LanguageEnum.cs
LA22A07_WCS/iWareModel/EnumType/Sys/ValidateIntEnum.cs
LA22A07_WCS/iWareModel/EnumType/TaskExcuteTypeEnum.cs
LA22A07_WCS/iWareModel/EnumType/ThreadDirectionEnum.cs
LA22A07_WCS/iWareModel/EnumType/WareLaneEnum.cs
LA22A07_WCS/iWareModel/EnumType/XiGangPublicCommon/AddTransferTaskEnum.cs
LA22A07_WCS/iWareModel/EnumType/XiGangPublicCommon/DeviceTaskTypeEnum.cs
LA22A07_WCS/iWareModel/EnumType/XiGangPublicCommon/MainInOutFlagEnum.cs
LA22A07_WCS/iWareModel/EnumType/XiGangPublicCommon/MainTaskStatusEnum.cs
LA22A07_WCS/iWareModel/EnumType/XiGangPublicCommon/MainTaskTypeEnum.cs
LA22A07_WCS/iWareModel/EnumType/XiGangPublicCommon/MaterialTypeEnum.cs
LA22A07_WCS/iWareModel/EnumType/XiGangPublicCommon/Plan/OutPlanStateEnum.cs
LA22A07_WCS/iWareModel/EnumType/XiGangPublicCommon/Plan/OutPlanTypeEnum.cs
LA22A07_WCS/iWareModel/EnumType/XiGangPublicCommon/Plan/OutTaskDetailStateEnum.cs
LA22A07_WCS/iWareModel/EnumType/XiGangPublicCommon/Plan/OutTaskModeEnum.cs
LA22A07_WCS/iWareModel/EnumType/XiGangPublicCommon/Salver_V_Station_StateEnum.cs
LA22A07_WCS/iWareModel/Properties/AssemblyInfo.cs
LA22A07_WCS/iWareModel/iWareModel.csproj
LA22A07_WCS/iWareSda/App.config
LA22A07_WCS/iWareSda/Common/SdaHelper.cs
LA22A07_WCS/iWareSda/Common/Struct/WareSdaStruct.cs
LA22A07_WCS/iWareSda/DLL/EntityFramework.SqlServer.dll
LA22A07_WCS/iWareSda/DLL/EntityFramework.dll
LA22A07_WCS/iWareSda/DLL/Interop.OPCAutomation.dll
LA22A07_WCS/iWareSda/DLL/Newtonsoft.Json.dll
LA22A07_WCS/iWareSda/DLL/Newtonsoft.Json.xml
LA22A07_WCS/iWareSda/DLL/OpcAccess.dll
LA22A07_WCS/iWareSda/DLL/S7.Net.dll
LA22A07_WCS/iWareSda/DLL/WZ.Useful.Commons.dll
LA22A07_WCS/iWareSda/DLL/log4net.dll
LA22A07_WCS/iWareSda/DLL/log4net.xml
LA22A07_WCS/iWareSda/DLL/logtxt.dll
LA22A07_WCS/iWareSda/Devices/1-Srm/SrmModel/DB/SrmDB2Obj.cs
LA22A07_WCS/iWareSda/Devices/1-Srm/SrmModel/DB/SrmDBForRead.cs
LA22A07_WCS/iWareSda/Devices/1-Srm/SrmModel/DB/SrmDBForWrite.cs
LA22A07_WCS/iWareSda/Devices/1-Srm/SrmModel/SrmEntity.cs
LA22A07_WCS/iWareSda/Devices/1-Srm/SrmModel/SrmView.cs
LA22A07_WCS/iWareSda/Devices/1-Srm/SrmModel/Srm_CacheEntity.cs
LA22A07_WCS/iWareSda/Devices/1-Srm/SrmService/ISrmService.cs
LA22A07_WCS/iWareSda/Devices/1-Srm/SrmService/SrmService.cs
LA22A07_WCS/iWareSda/Devices/2-Line/LineModel/DB/LineDB2Obj.cs
LA22A07_WCS/iWareSda/Devices/2-Line/LineModel/DB/LineDBForRead.cs
LA22A07_WCS/iWareSda/Devices/2-Line/LineModel/DB/LineDBForWrite.cs
LA22A07_WCS/iWareSda/Devices/2-Line/LineModel/LineEntity.cs
LA22A07_WCS/iWareSda/Devices/2-Line/LineModel/LineView.cs
LA22A07_WCS/iWareSda/Devices/2-Line/LineModel/Line_CacheEntity.cs
LA22A07_WCS/iWareSda/Devices/2-Line/LineService/ILineService.cs
LA22A07_WCS/iWareSda/Devices/2-Line/LineService/LineService.cs
LA22A07_WCS/iWareSda/Devices/3-HuscoLine/HuscoLineModel/DB/HuscoLineDB2Obj.cs
LA22A07_WCS/iWareSda/Devices/3-HuscoLine/HuscoLineModel/DB/HuscoLineDBForRead.cs
LA22A07_WCS/iWareSda/Devices/3-HuscoLine/HuscoLineModel/DB/HuscoLineDBForWrite.cs
LA22A07_WCS/iWareSda/Devices/3-HuscoLine/HuscoLineModel/HuscoLineEntity.cs
LA22A07_WCS/iWareSda/Devices/3-HuscoLine/HuscoLineModel/HuscoLineView.cs
LA22A07_WCS/iWareSda/Devices/3-HuscoLine/HuscoLineModel/HuscoLine_CacheEntity.cs
LA22A07_WCS/iWareSda/Devices/3-HuscoLine/HuscoLineService/HuscoLineService.cs
LA22A07_WCS/iWareSda/Devices/3-HuscoLine/HuscoLineService/IHuscoLineService.cs
LA22A07_WCS/iWareSda/Devices/4-Rgv/RgvModel/DB/RgvComm.cs
LA22A07_WCS/iWareSda/Devices/4-Rgv/RgvModel/DB/RgvDB2Obj.cs
LA22A07_WCS/iWareSda/Devices/4-Rgv/RgvModel/DB/RgvDBForRead.cs
LA22A07_WCS/iWareSda/Devices/4-Rgv/RgvModel/DB/RgvDBForWrite.cs
LA22A07_WCS/iWareSda/Devices/4-Rgv/RgvModel/RgvEntity.cs
LA22A07_WCS/iWareSda/Devices/4-Rgv/RgvModel/RgvView.cs
LA22A07_WCS/iWareSda/Devices/4-Rgv/RgvModel/Rgv_CacheEntity.cs
LA22A07_WCS/iWareSda/Devices/4-Rgv/RgvService/IRgvService.cs
LA22A07_WCS/iWareSda/Devices/4-Rgv/RgvService/RgvService.cs
LA22A07_WCS/iWareSda/Devices/5-Conveyer/ConveyerModel/ConveyerEntity.cs
LA22A07_WCS/iWareSda/Devices/5-Conveyer/ConveyerModel/ConveyerView.cs
LA22A07_WCS/iWareSda/Devices/5-Conveyer/ConveyerModel/Conveyer_CacheEntity.cs
LA22A07_WCS/iWareSda/Devices/5-Conveyer/ConveyerModel/DB/ConveyerComm.cs
LA22A07_WCS/iWareSda/Devices/5-Conveyer/ConveyerModel/DB/ConveyerDB2Obj.cs
LA22A07_WCS/iWareSda/Devices/5-Conveyer/ConveyerModel/DB/ConveyerDBForRead.cs
LA22A07_WCS/iWareSda/Devices/5-Conveyer/ConveyerModel/DB/ConveyerDBForWrite.cs
LA22A07_WCS/iWareSda/Devices/5-Conveyer/ConveyerService/ConveyerService.cs
LA22A07_WCS/iWareSda/Devices/5-Conveyer/ConveyerService/IConveyerService.cs
LA22A07_WCS/iWareSda/Interface/IDevice.cs
LA22A07_WCS/iWareSda/IwareICO.ico
LA22A07_WCS/iWareSda/LOGO.ico
LA22A07_WCS/iWareSda/Model/DeviceWarningInfo.cs
LA22A07_WCS/iWareSda/Model/SdaResEntity.cs
LA22A07_WCS/iWareSda/PLCService/Default/AB_HslCommunicationService.cs
LA22A07_WCS/iWareSda/PLCService/Default/SS7.cs
LA22A07_WCS/iWareSda/PLCService/Default/Siemens_HslCommunicationService.cs
LA22A07_WCS/iWareSda/PLCService/Models/BasePlcParam.cs
LA22A07_WCS/iWareSda/PLCService/Models/HslCommunicationParam.cs
LA22A07_WCS/iWareSda/PLCService/Models/SS7Param.cs
LA22A07_WCS/iWareSda/PLCService/PLCFactory.cs
LA22A07_WCS/iWareSda/PLCService/PLCService.cs
LA22A07_WCS/iWareSda/Program.cs
LA22A07_WCS/iWareSda/Properties/AssemblyInfo.cs
LA22A07_WCS/iWareSda/Properties/Resources.Designer.cs
LA22A07_WCS/iWareSda/Properties/Resources.resx
LA22A07_WCS/iWareSda/Properties/Settings.Designer.cs
LA22A07_WCS/iWareSda/Properties/Settings.settings
LA22A07_WCS/iWareSda/Robot.ico
LA22A07_WCS/iWareSda/SdaMainForm.Designer.cs
LA22A07_WCS/iWareSda/SdaMainForm.cs
LA22A07_WCS/iWareSda/SdaMainForm.resx
LA22A07_WCS/iWareSda/iWareSda.csproj
LA22A07_WCS/iWareSda/packages.config
LA22A07_WCS/iWareSql/App.config
LA22A07_WCS/iWareSql/ClassDiagram1.cd
LA22A07_WCS/iWareSql/DataAccess/DeviceWarningHandler.cs
LA22A07_WCS/iWareSql/DataAccess/PartTaskHandler.cs
LA22A07_WCS/iWareSql/DataAccess/SysExceptionInfoHandler.cs
LA22A07_WCS/iWareSql/DbOrm/Base_SysExceptionInfo.cs
LA22A07_WCS/iWareSql/DbOrm/C__EFMigrationsHistory.cs
LA22A07_WCS/iWareSql/DbOrm/DbEntity.Context.cs
LA22A07_WCS/iWareSql/DbOrm/DbEntity.Context.tt
LA22A07_WCS/iWareSql/DbOrm/DbEntity.Designer.cs
LA22A07_WCS/iWareSql/DbOrm/DbEntity.cs
LA22A07_WCS/iWareSql/DbOrm/DbEntity.edmx
LA22A07_WCS/iWareSql/DbOrm/DbEntity.edmx.diagram
LA22A07_WCS/iWareSql/DbOrm/DbEntity.tt
LA22A07_WCS/iWareSql/DbOrm/sys_app.cs
LA22A07_WCS/iWareSql/DbOrm/sys_code_gen.cs
LA22A07_WCS/iWareSql/DbOrm/sys_code_gen_config.cs
LA22A07_WCS/iWareSql/DbOrm/sys_code_modular.cs
LA22A07_WCS/iWareSql/DbOrm/sys_config.cs
LA22A07_WCS/iWareSql/DbOrm/sys_dict_data.cs
LA22A07_WCS/iWareSql/DbOrm/sys_dict_type.cs
LA22A07_WCS/iWareSql/DbOrm/sys_emp.cs
LA22A07_WCS/iWareSql/DbOrm/sys_emp_ext_org_pos.cs
LA22A07_WCS/iWareSql/DbOrm/sys_file.cs
LA22A07_WCS/iWareSql/DbOrm/sys_forms.cs
LA22A07_WCS/iWareSql/DbOrm/sys_log_audit.cs
LA22A07_WCS/iWareSql/DbOrm/sys_log_ex.cs
LA22A07_WCS/iWareSql/DbOrm/sys_log_op.cs
LA22A07_WCS/iWareSql/DbOrm/sys_log_vis.cs
LA22A07_WCS/iWareSql/DbOrm/sys_low_code_module.cs
LA22A07_WCS/iWareSql/DbOrm/sys_low_code_module_database.cs
LA22A07_WCS/iWareSql/DbOrm/sys_menu.cs
LA22A07_WCS/iWareSql/DbOrm/sys_notice.cs
LA22A07_WCS/iWareSql/DbOrm/sys_notice_user.cs
LA22A07_WCS/iWareSql/DbOrm/sys_org.cs
LA22A07_WCS/iWareSql/DbOrm/sys_pos.cs
LA22A07_WCS/iWareSql/DbOrm/sys_role.cs
LA22A07_WCS/iWareSql/DbOrm/sys_timer.cs
LA22A07_WCS/iWareSql/DbOrm/sys_user.cs
LA22A07_WCS/iWareSql/DbOrm/v_empty_location.cs
LA22A07_WCS/iWareSql/DbOrm/ware_container_vs_material.cs
LA22A07_WCS/iWareSql/DbOrm/ware_device_wareing.cs
LA22A07_WCS/iWareSql/DbOrm/ware_equipment.cs
LA22A07_WCS/iWareSql/DbOrm/ware_location_vs_container.cs
LA22A07_WCS/iWareSql/DbOrm/ware_site.cs
LA22A07_WCS/iWareSql/DbOrm/ware_task.cs
LA22A07_WCS/iWareSql/DbOrm/ware_task_bak.cs
LA22A07_WCS/iWareSql/DbOrm/ware_task_sub.cs
LA22A07_WCS/iWareSql/DbOrm/ware_task_sub_bak.cs
LA22A07_WCS/iWareSql/DbOrm/wms_area.cs
LA22A07_WCS/iWareSql/DbOrm/wms_container.cs
LA22A07_WCS/iWareSql/DbOrm/wms_container_type.cs
LA22A07_WCS/iWareSql/DbOrm/wms_location_type.cs
LA22A07_WCS/iWareSql/DbOrm/wms_material.cs
LA22A07_WCS/iWareSql/DbOrm/wms_materialcontainer.cs
LA22A07_WCS/iWareSql/DbOrm/wms_materialstock.cs
LA22A07_WCS/iWareSql/DbOrm/wms_part.cs
LA22A07_WCS/iWareSql/DbOrm/wms_place.cs
LA22A07_WCS/iWareSql/DbOrm/wms_task.cs
LA22A07_WCS/iWareSql/Entity/ExtendEntity/MatModel.cs
LA22A07_WCS/iWareSql/Entity/ExtendEntity/RealPlaceEntity.cs
LA22A07_WCS/iWareSql/Entity/ExtendEntity/SyncStockToMesEntity.cs
LA22A07_WCS/iWareSql/Entity/ExtendEntity/UDT_SYS_ExceptionInfo_Extend.cs
LA22A07_WCS/iWareSql/Entity/MES/Mes_ResEntity.cs
LA22A07_WCS/iWareSql/Entity/ParamModel/InformIniInfoToTrussParam.cs
LA22A07_WCS/iWareSql/Entity/ParamModel/MesMatInfo.cs
LA22A07_WCS/iWareSql/Entity/ParamModel/Mes_BatchMat_Param.cs
LA22A07_WCS/iWareSql/Entity/ParamModel/Mes_BatchOrderUPIParam.cs
LA22A07_WCS/iWareSql/Entity/ParamModel/Srm_ItemParam.cs
LA22A07_WCS/iWareSql/Entity/ViewMode/AllMatStockViewForStockList.cs
LA22A07_WCS/iWareSql/Entity/ViewMode/BatchMatGatherView.cs
LA22A07_WCS/iWareSql/Entity/ViewMode/BatchMatView.cs
LA22A07_WCS/iWareSql/Entity/ViewMode/BatchOrderUPIView.cs
LA22A07_WCS/iWareSql/Entity/ViewMode/BoardLoadMaterialView.cs
LA22A07_WCS/iWareSql/Entity/ViewMode/MatStockCollectView.cs
LA22A07_WCS/iWareSql/Entity/ViewMode/PlaceLocationView.cs
LA22A07_WCS/iWareSql/Properties/AssemblyInfo.cs
LA22A07_WCS/iWareSql/iWareSql.csproj
LA22A07_WCS/iWareSql/packages.config
LA22A07_WCS/iWareTestForm/App.config
LA22A07_WCS/iWareTestForm/InterFaceTestForm.Designer.cs
LA22A07_WCS/iWareTestForm/InterFaceTestForm.cs
LA22A07_WCS/iWareTestForm/InterFaceTestForm.resx
LA22A07_WCS/iWareTestForm/MainForm.Designer.cs
LA22A07_WCS/iWareTestForm/MainForm.cs
LA22A07_WCS/iWareTestForm/MainForm.resx
LA22A07_WCS/iWareTestForm/Model/SelLoadStatus.cs
LA22A07_WCS/iWareTestForm/Model/SelUnloadingTable.cs
LA22A07_WCS/iWareTestForm/Model/SimulatorCommonEntity.cs
LA22A07_WCS/iWareTestForm/Model/TransTypeForOutStorageCompleted.cs
LA22A07_WCS/iWareTestForm/Model/TypeEnum.cs
LA22A07_WCS/iWareTestForm/Program.cs
LA22A07_WCS/iWareTestForm/Properties/AssemblyInfo.cs
LA22A07_WCS/iWareTestForm/Properties/Resources.Designer.cs
LA22A07_WCS/iWareTestForm/Properties/Resources.resx
LA22A07_WCS/iWareTestForm/Properties/Settings.Designer.cs
LA22A07_WCS/iWareTestForm/Properties/Settings.settings
LA22A07_WCS/iWareTestForm/Service References/MesWebService/MesWebService1.disco
LA22A07_WCS/iWareTestForm/Service References/MesWebService/MesWebService1.wsdl
LA22A07_WCS/iWareTestForm/Service References/MesWebService/Reference.cs
LA22A07_WCS/iWareTestForm/Service References/MesWebService/Reference.svcmap
LA22A07_WCS/iWareTestForm/Service References/MesWebService/XiGang_iWareTestForm.MesWebService.GetMesMatInfoResponse.datasource
LA22A07_WCS/iWareTestForm/Service References/MesWebService/XiGang_iWareTestForm.MesWebService.GetPlaceInfoResponse.datasource
LA22A07_WCS/iWareTestForm/Service References/MesWebService/XiGang_iWareTestForm.MesWebService.SawingConfirmResponse.datasource
LA22A07_WCS/iWareTestForm/Service References/MesWebService/XiGang_iWareTestForm.MesWebService.SendBatchUPIsResponse.datasource
LA22A07_WCS/iWareTestForm/Service References/MesWebService/XiGang_iWareTestForm.MesWebService.SendInStoreBatchMatsResponse.datasource
LA22A07_WCS/iWareTestForm/Service References/MesWebService/XiGang_iWareTestForm.MesWebService.SendOutStoreBatchMatsResponse.datasource
LA22A07_WCS/iWareTestForm/Service References/MesWebService/XiGang_iWareTestForm.MesWebService.SendSynchroMatPlaceToMesResponse.datasource
LA22A07_WCS/iWareTestForm/Service References/MesWebService/configuration.svcinfo
LA22A07_WCS/iWareTestForm/Service References/MesWebService/configuration91.svcinfo
LA22A07_WCS/iWareTestForm/Service References/SrmService/Reference.cs
LA22A07_WCS/iWareTestForm/Service References/SrmService/Reference.svcmap
LA22A07_WCS/iWareTestForm/Service References/SrmService/XiGang_iWareTestForm.SrmService.IsAllowSendTaskResponse.datasource
LA22A07_WCS/iWareTestForm/Service References/SrmService/XiGang_iWareTestForm.SrmService.IsReadyResponse.datasource
LA22A07_WCS/iWareTestForm/Service References/SrmService/XiGang_iWareTestForm.SrmService.SendSrmMoveResponse.datasource
LA22A07_WCS/iWareTestForm/Service References/SrmService/XiGang_iWareTestForm.SrmService.SrmEntity.datasource
LA22A07_WCS/iWareTestForm/Service References/SrmService/configuration.svcinfo
LA22A07_WCS/iWareTestForm/Service References/SrmService/configuration91.svcinfo
LA22A07_WCS/iWareTestForm/Service References/SrmService/iWareSda.SrmService.SrmEntity.xsd
LA22A07_WCS/iWareTestForm/Service References/SrmService/service.wsdl
LA22A07_WCS/iWareTestForm/Service References/SrmService/service.xsd
LA22A07_WCS/iWareTestForm/Service References/SrmService/service1.xsd
LA22A07_WCS/iWareTestForm/Service References/TrussService/Reference.cs
LA22A07_WCS/iWareTestForm/Service References/TrussService/Reference.svcmap
LA22A07_WCS/iWareTestForm/Service References/TrussService/XiGang_iWareTestForm.TrussService.IsAllowSendTaskResponse.datasource
LA22A07_WCS/iWareTestForm/Service References/TrussService/XiGang_iWareTestForm.TrussService.IsReadyResponse.datasource
LA22A07_WCS/iWareTestForm/Service References/TrussService/XiGang_iWareTestForm.TrussService.TrussEntity.datasource
LA22A07_WCS/iWareTestForm/Service References/TrussService/configuration.svcinfo
LA22A07_WCS/iWareTestForm/Service References/TrussService/configuration91.svcinfo
LA22A07_WCS/iWareTestForm/Service References/TrussService/iWareSda.TrussService.TrussEntity.xsd
LA22A07_WCS/iWareTestForm/Service References/TrussService/service.wsdl
LA22A07_WCS/iWareTestForm/Service References/TrussService/service.xsd
LA22A07_WCS/iWareTestForm/Service References/TrussService/service1.xsd
LA22A07_WCS/iWareTestForm/Utility/BLLHelpler.cs
LA22A07_WCS/iWareTestForm/Utility/CommonHelper.cs
LA22A07_WCS/iWareTestForm/Utility/InterfaceSection.cs
LA22A07_WCS/iWareTestForm/Utility/ReturnBody.cs
LA22A07_WCS/iWareTestForm/Utility/TestHelper.cs
LA22A07_WCS/iWareTestForm/Utility/TextHelper.cs
LA22A07_WCS/iWareTestForm/iWareTest/DialogForm/AddInStoreTaskForm.Designer.cs
LA22A07_WCS/iWareTestForm/iWareTest/DialogForm/AddInStoreTaskForm.cs
LA22A07_WCS/iWareTestForm/iWareTest/DialogForm/AddInStoreTaskForm.resx
LA22A07_WCS/iWareTestForm/iWareTest/DialogForm/TestBatchForm.Designer.cs
LA22A07_WCS/iWareTestForm/iWareTest/DialogForm/TestBatchForm.cs
LA22A07_WCS/iWareTestForm/iWareTest/DialogForm/TestBatchForm.resx
LA22A07_WCS/iWareTestForm/iWareTest/RCSWCSTestForm.Designer.cs
LA22A07_WCS/iWareTestForm/iWareTest/RCSWCSTestForm.cs
LA22A07_WCS/iWareTestForm/iWareTest/RCSWCSTestForm.resx
LA22A07_WCS/iWareTestForm/packages.config
LA22A07_WCS/iWareTestForm/西岗测试模拟器.csproj
LA22A07_WCS/iWareUnitTest/App.config
LA22A07_WCS/iWareUnitTest/CSharpTest.cs
LA22A07_WCS/iWareUnitTest/OPCTest.cs
LA22A07_WCS/iWareUnitTest/Properties/AssemblyInfo.cs
LA22A07_WCS/iWareUnitTest/Properties/DataSources/iWareCC_ASRS.SrmConveyorService.SrmConveyorEntity.datasource
LA22A07_WCS/iWareUnitTest/Properties/DataSources/iWareCC_ASRS.SrmConveyorService.SrmConveyorStationEntity.datasource
LA22A07_WCS/iWareUnitTest/Service References/MesWebService/MesWebService.disco
LA22A07_WCS/iWareUnitTest/Service References/MesWebService/MesWebService.wsdl
LA22A07_WCS/iWareUnitTest/Service References/MesWebService/Reference.cs
LA22A07_WCS/iWareUnitTest/Service References/MesWebService/Reference.svcmap
LA22A07_WCS/iWareUnitTest/Service References/MesWebService/configuration.svcinfo
LA22A07_WCS/iWareUnitTest/Service References/MesWebService/configuration91.svcinfo
LA22A07_WCS/iWareUnitTest/Service References/MesWebService/iWareUnitTest.MesWebService.GetMesMatInfoResponse.datasource
LA22A07_WCS/iWareUnitTest/Service References/MesWebService/iWareUnitTest.MesWebService.GetPlaceInfoResponse.datasource
LA22A07_WCS/iWareUnitTest/Service References/MesWebService/iWareUnitTest.MesWebService.SawingConfirmResponse.datasource
LA22A07_WCS/iWareUnitTest/Service References/MesWebService/iWareUnitTest.MesWebService.SendBatchUPIsResponse.datasource
LA22A07_WCS/iWareUnitTest/Service References/MesWebService/iWareUnitTest.MesWebService.SendInStoreBatchMatsResponse.datasource
LA22A07_WCS/iWareUnitTest/Service References/MesWebService/iWareUnitTest.MesWebService.SendOutStoreBatchMatsResponse.datasource
LA22A07_WCS/iWareUnitTest/Service References/MesWebService/iWareUnitTest.MesWebService.SendSynchroMatPlaceToMesResponse.datasource
LA22A07_WCS/iWareUnitTest/SrmTaskThreadServiceTest.cs
LA22A07_WCS/iWareUnitTest/Task_UnitTest.cs
LA22A07_WCS/iWareUnitTest/UPIs.txt
LA22A07_WCS/iWareUnitTest/iWareUnitTest.csproj |