yys před 19 hodinami
rodič
revize
5ecb94ed1b
8 změnil soubory, kde provedl 196 přidání a 129 odebrání
  1. 7 10
      .env.development
  2. 7 10
      .env.production
  3. 2 2
      README.en.md
  4. 2 2
      README.md
  5. 1 1
      nginx.conf
  6. 73 94
      package.json
  7. 94 10
      vue.config.js
  8. 10 0
      webpack.config.js

+ 7 - 10
.env.development

@@ -1,10 +1,7 @@
-#该文本用于打包测试平台
 # 页面标题
-VUE_APP_TITLE =云联融智SAAS管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =云联融智SAAS
+VUE_APP_TITLE =云联融智销售端
 # 公司名称
-VUE_APP_COMPANY_NAME =云联融智科技有限公司
+VUE_APP_COMPANY_NAME =云联融智医药有限公司
 # ICP备案号
 VUE_APP_ICP_RECORD =
 # ICP网站访问地址
@@ -12,16 +9,16 @@ VUE_APP_ICP_URL =https://beian.miit.gov.cn
 # 网站LOG
 VUE_APP_LOG_URL =@/assets/logo/ylrz.png
 
-# 开发环境配置
+# 生产环境配置
 ENV = 'production'
 
 # FS管理系统/开发环境
 VUE_APP_BASE_API = '/prod-api'
 
+
+#项目所属
+VUE_APP_PROJECT_FROM=ylrz
+
 # 路由懒加载
 VUE_CLI_BABEL_TRANSPILE_MODULES = true
 
-# 患者信息
-VUE_APP_PATIENT_INFO = '客户信息'
-# 添加病人
-VUE_APP_ADD_PATIENT = '添加信息'

+ 7 - 10
.env.production

@@ -1,10 +1,7 @@
-#该文本用于打包测试平台
 # 页面标题
-VUE_APP_TITLE =云联融智SAAS管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =云联融智SAAS
+VUE_APP_TITLE =云联融智销售端
 # 公司名称
-VUE_APP_COMPANY_NAME =云联融智科技有限公司
+VUE_APP_COMPANY_NAME =云联融智医药有限公司
 # ICP备案号
 VUE_APP_ICP_RECORD =
 # ICP网站访问地址
@@ -12,16 +9,16 @@ VUE_APP_ICP_URL =https://beian.miit.gov.cn
 # 网站LOG
 VUE_APP_LOG_URL =@/assets/logo/ylrz.png
 
-# 开发环境配置
+# 生产环境配置
 ENV = 'production'
 
 # FS管理系统/开发环境
 VUE_APP_BASE_API = '/prod-api'
 
+
+#项目所属
+VUE_APP_PROJECT_FROM=ylrz
+
 # 路由懒加载
 VUE_CLI_BABEL_TRANSPILE_MODULES = true
 
-# 患者信息
-VUE_APP_PATIENT_INFO = '客户信息'
-# 添加病人
-VUE_APP_ADD_PATIENT = '添加信息'

+ 2 - 2
README.en.md

@@ -1,7 +1,7 @@
-# his_adminui
+# his_companyui
 
 #### Description
-adminui
+his_companyui
 
 #### Software Architecture
 Software architecture description

+ 2 - 2
README.md

@@ -1,7 +1,7 @@
-# his_adminui
+# his_companyui
 
 #### 介绍
-adminui
+his_companyui
 
 #### 软件架构
 软件架构说明

+ 1 - 1
nginx.conf

@@ -27,7 +27,7 @@ http {
 
         # 关键:反向代理 API(解决跨域,替换为你的真实后端地址)
         location /prod-api/ {
-            proxy_pass http://192.168.58.159:7772/;  # 后端 API 地址(末尾加 / 避免路径拼接问题)
+            proxy_pass http://192.168.52.215:7773/;  # 后端 API 地址(末尾加 / 避免路径拼接问题)
             proxy_set_header Host $host;
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

+ 73 - 94
package.json

@@ -1,63 +1,19 @@
 {
-  "name": "FS",
+  "name": "fs",
   "version": "1.1.0",
-  "description": "FS管理系统",
-  "author": "YZX",
+  "description": "互联网医院销售管理平台",
+  "author": "FS",
   "license": "MIT",
   "scripts": {
     "dev": "vue-cli-service serve",
     "build:prod": "vue-cli-service build",
-    "build:prod-ylrz": "vue-cli-service build --mode prod-ylrz",
-    "build:prod-test": "vue-cli-service build --mode prod-test",
-    "build:prod-hzyy": "vue-cli-service build --mode prod-hzyy",
-    "build:prod-jzzx": "vue-cli-service build --mode prod-jzzx",
-    "build:prod-hcl": "vue-cli-service build --mode prod-hcl",
-    "build:prod-myhk": "vue-cli-service build --mode prod-myhk",
-    "build:prod-nmgyt": "vue-cli-service build --mode prod-nmgyt",
-    "build:prod-cqtyt": "vue-cli-service build --mode prod-cqtyt",
-    "build:prod-heyantang": "vue-cli-service build --mode prod-heyantang",
-    "build:prod-bly": "vue-cli-service build --mode prod-bly",
-    "build:prod-fzbt": "vue-cli-service build --mode prod-fzbt",
-    "build:prod-sxjz": "vue-cli-service build --mode prod-sxjz",
-    "build:prod-xfk": "vue-cli-service build --mode prod-xfk",
-    "build:prod-jnmy": "vue-cli-service build --mode prod-jnmy",
-    "build:prod-knt": "vue-cli-service build --mode prod-knt",
-    "build:prod-knt2": "vue-cli-service build --mode prod-knt2",
-    "build:prod-hdt": "vue-cli-service build --mode prod-hdt",
-    "build:prod-yzt": "vue-cli-service build --mode prod-yzt",
-    "build:prod-sft": "vue-cli-service build --mode prod-sft",
-    "build:prod-zsjk": "vue-cli-service build --mode prod-zsjk",
-    "build:prod-lmjy": "vue-cli-service build --mode prod-lmjy",
-    "build:prod-bnkc": "vue-cli-service build --mode prod-bnkc",
-    "build:prod-whhm": "vue-cli-service build --mode prod-whhm",
-    "build:prod-drk": "vue-cli-service build --mode prod-drk",
-    "build:prod-qdtst": "vue-cli-service build --mode prod-qdtst",
-    "build:prod-jkj": "vue-cli-service build --mode prod-jkj",
-    "build:prod-kyt": "vue-cli-service build --mode prod-kyt",
     "build:stage": "vue-cli-service build --mode staging",
-    "build:prod-cqxzt": "vue-cli-service build --mode prod-cqxzt",
-    "build:prod-bjyjb": "vue-cli-service build --mode prod-bjyjb",
-    "build:prod-bjczwh": "vue-cli-service build --mode prod-bjczwh",
-    "build:prod-jnlzjk": "vue-cli-service build --mode prod-jnlzjk",
-    "build:prod-fby": "vue-cli-service build --mode prod-fby",
-    "build:prod-zkzh": "vue-cli-service build --mode prod-zkzh",
-    "build:prod-syysy": "vue-cli-service build --mode prod-syysy",
-    "build:prod-hyt": "vue-cli-service build --mode prod-hyt",
-    "build:prod-hst": "vue-cli-service build --mode prod-hst",
-    "build:prod-czt": "vue-cli-service build --mode prod-czt",
-    "build:prod-hat": "vue-cli-service build --mode prod-hat",
-    "build:prod-sczy": "vue-cli-service build --mode prod-sczy",
-    "build:prod-ddgy": "vue-cli-service build --mode prod-ddgy",
-    "build:prod-yxj": "vue-cli-service build --mode prod-yxj",
-    "build:prod-bjzm": "vue-cli-service build --mode prod-bjzm",
-    "build:prod-gzzdy": "vue-cli-service build --mode prod-gzzdy",
-    "build:prod-cfryt": "vue-cli-service build --mode prod-cfryt",
-    "build:prod-hsyy": "vue-cli-service build --mode prod-hsyy",
-    "build:prod-jnsyj": "vue-cli-service build --mode prod-jnsyj",
-    "build:prod-shdn": "vue-cli-service build --mode prod-shdn",
-    "build:prod-xcsw": "vue-cli-service build --mode prod-xcsw",
     "preview": "node build/index.js --preview",
-    "lint": "eslint --ext .js,.vue src"
+    "lint": "eslint --ext .js,.vue src",
+    "test:unit": "jest --clearCache && vue-cli-service test:unit",
+    "test:ci": "npm run lint && npm run test:unit",
+    "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml",
+    "new": "plop"
   },
   "husky": {
     "hooks": {
@@ -81,66 +37,89 @@
   ],
   "dependencies": {
     "@amap/amap-jsapi-loader": "^1.0.1",
-    "@huaweicloud/huaweicloud-sdk-core": "^3.1.105",
-    "@huaweicloud/huaweicloud-sdk-vod": "^3.1.105",
+    "@jridgewell/gen-mapping": "^0.3.5",
     "@riophae/vue-treeselect": "0.4.0",
-    "axios": "0.21.0",
+    "axios": "0.18.1",
     "chart.js": "^2.9.4",
-    "clipboard": "2.0.6",
-    "core-js": "3.8.1",
-    "cos-js-sdk-v5": "^1.8.3",
+    "clipboard": "2.0.4",
+    "compression-webpack-plugin": "^5.0.1",
+    "core-js": "3.6.5",
+    "cos-js-sdk-v5": "^1.10.1",
     "dayjs": "^1.11.13",
-    "echarts": "^4.9.0",
+    "echarts": "4.2.1",
     "element-ui": "2.15.5",
-    "esdk-obs-browserjs": "^3.24.3",
-    "file-saver": "2.0.4",
-    "fuse.js": "6.4.3",
-    "highlight.js": "9.18.5",
-    "hls.js": "^1.6.14",
-    "image-conversion": "^2.1.1",
-    "js-beautify": "1.13.0",
-    "js-cookie": "2.2.1",
-    "js-yaml": "^4.1.1",
+    "esdk-obs-browserjs": "^3.25.6",
+    "file-saver": "2.0.1",
+    "form-making": "^1.2.9",
+    "fuse.js": "^3.4.4",
+    "hls.js": "^1.6.13",
+    "js-beautify": "1.10.2",
+    "js-cookie": "2.2.0",
     "jsencrypt": "3.0.0-rc.1",
-    "monaco-editor": "^0.55.1",
+    "lodash.clonedeep": "^4.5.0",
+    "lodash.merge": "^4.6.2",
+    "moment": "^2.29.4",
+    "normalize.css": "7.0.0",
     "nprogress": "0.2.0",
+    "path-to-regexp": "2.4.0",
+    "qrcode": "^1.5.4",
+    "qrcode.vue": "^1.7.0",
     "qrcodejs2": "0.0.2",
     "quill": "1.3.7",
-    "screenfull": "5.0.2",
-    "sortablejs": "1.10.2",
-    "tt-uploader": "^1.5.5",
-    "vod-js-sdk-v6": "^1.7.0",
-    "vue": "2.6.12",
+    "screenfull": "4.2.0",
+    "sortablejs": "1.8.4",
+    "stylus": "^0.54.7",
+    "stylus-loader": "^3.0.2",
+    "tt-uploader": "^1.6.1",
+    "v-clipboard": "^2.2.3",
+    "vod-js-sdk-v6": "^1.7.1-beta.1",
+    "vue": "2.6.10",
     "vue-baidu-map": "^0.21.22",
+    "vue-clipboard2": "^0.3.1",
     "vue-count-to": "1.0.13",
-    "vue-cropper": "0.5.5",
-    "vue-jsonp": "^2.0.0",
+    "vue-cropper": "0.4.9",
+    "vue-full-calendar": "^2.8.1-0",
+    "vue-jsonp": "^2.1.0",
     "vue-meta": "^2.4.0",
+    "vue-mobile-audio": "^0.1.3",
     "vue-mobile-calendar": "^3.3.0",
     "vue-monaco": "^1.2.2",
-    "vue-router": "3.4.9",
-    "vuedraggable": "^2.24.3",
-    "vuex": "3.6.0",
-    "wangeditor": "^4.7.5"
+    "vue-router": "3.0.2",
+    "vue-splitpane": "1.0.4",
+    "vue2-ace-editor": "0.0.15",
+    "vuedraggable": "^2.20.0",
+    "vuex": "3.1.0",
+    "wangeditor": "^4.6.13"
   },
   "devDependencies": {
-    "@vue/cli-plugin-babel": "4.4.6",
-    "@vue/cli-plugin-eslint": "4.4.6",
-    "@vue/cli-service": "4.4.6",
+    "@vue/cli-plugin-babel": "4.4.4",
+    "@vue/cli-plugin-eslint": "4.4.4",
+    "@vue/cli-plugin-unit-jest": "4.4.4",
+    "@vue/cli-service": "4.4.4",
+    "@vue/test-utils": "1.0.0-beta.29",
+    "autoprefixer": "9.5.1",
     "babel-eslint": "10.1.0",
-    "chalk": "4.1.0",
+    "babel-jest": "23.6.0",
+    "babel-plugin-dynamic-import-node": "2.3.3",
+    "chalk": "2.4.2",
+    "chokidar": "2.1.5",
     "connect": "3.6.6",
-    "eslint": "7.15.0",
-    "eslint-plugin-vue": "7.2.0",
-    "lint-staged": "10.5.3",
-    "node-sass": "4.14.1",
-    "runjs": "4.4.2",
+    "eslint": "6.7.2",
+    "eslint-plugin-vue": "6.2.2",
+    "html-webpack-plugin": "3.2.0",
+    "husky": "1.3.1",
+    "lint-staged": "8.1.5",
+    "mockjs": "1.0.1-beta3",
+    "plop": "2.3.0",
+    "runjs": "4.3.2",
+    "sass": "^1.97.1",
     "sass-loader": "8.0.2",
-    "script-ext-html-webpack-plugin": "2.1.5",
-    "svg-sprite-loader": "5.1.1",
-    "vue-template-compiler": "2.6.12",
-    "webpack": "^4.46.0",
-    "webpack-dev-server": "^3.11.3"
+    "script-ext-html-webpack-plugin": "2.1.3",
+    "script-loader": "0.7.2",
+    "serve-static": "1.13.2",
+    "svg-sprite-loader": "4.1.3",
+    "svgo": "1.2.0",
+    "vue-template-compiler": "2.6.10"
   },
   "engines": {
     "node": ">=8.9",

+ 94 - 10
vue.config.js

@@ -1,5 +1,9 @@
 'use strict'
 const path = require('path')
+// 导入compression-webpack-plugin 压缩JS大小
+const CompressionWebpackPlugin = require('compression-webpack-plugin')
+// 定义压缩文件类型 压缩JS大小
+const productionGzipExtensions = ['js', 'css']
 
 function resolve(dir) {
   return path.join(__dirname, dir)
@@ -7,7 +11,7 @@ function resolve(dir) {
 
 const name = process.env.VUE_APP_TITLE || '互联网医院管理系统' // 网页标题
 
-const port = process.env.port || process.env.npm_config_port || 80 // 端口
+const port = process.env.port || process.env.npm_config_port || 83 // 端口
 
 // vue.config.js 配置说明
 //官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions
@@ -30,32 +34,112 @@ module.exports = {
     host: '0.0.0.0',
     port: port,
     open: true,
-    disableHostCheck: true,
     proxy: {
       // 为 watch 模块单独设置的代理
       '/watch-api': {
-        target: 'http://localhost:8004', // 另一个目标服务器
+        target: 'http://localhost:8114',
         changeOrigin: true,
         pathRewrite: {
-          '^/watch-api': '' // 将 /watch-api 替换为空
+          '^/watch-api': ''
         }
       },
+      // 以下路径前缀代理到 fs-admin(8004) - 平台管理端
+      // saasui前端API中这些路径只在fs-admin有Controller
+      [process.env.VUE_APP_BASE_API + '/admin']: {
+        target: 'http://localhost:8004',
+        changeOrigin: true,
+        pathRewrite: { ['^' + process.env.VUE_APP_BASE_API]: '' }
+      },
+      [process.env.VUE_APP_BASE_API + '/api']: {
+        target: 'http://localhost:8004',
+        changeOrigin: true,
+        pathRewrite: { ['^' + process.env.VUE_APP_BASE_API]: '' }
+      },
+      [process.env.VUE_APP_BASE_API + '/baiduStatistics']: {
+        target: 'http://localhost:8004',
+        changeOrigin: true,
+        pathRewrite: { ['^' + process.env.VUE_APP_BASE_API]: '' }
+      },
+      [process.env.VUE_APP_BASE_API + '/bd']: {
+        target: 'http://localhost:8004',
+        changeOrigin: true,
+        pathRewrite: { ['^' + process.env.VUE_APP_BASE_API]: '' }
+      },
+      [process.env.VUE_APP_BASE_API + '/doctorChat']: {
+        target: 'http://localhost:8004',
+        changeOrigin: true,
+        pathRewrite: { ['^' + process.env.VUE_APP_BASE_API]: '' }
+      },
+      [process.env.VUE_APP_BASE_API + '/easyCall']: {
+        target: 'http://localhost:8004',
+        changeOrigin: true,
+        pathRewrite: { ['^' + process.env.VUE_APP_BASE_API]: '' }
+      },
+      [process.env.VUE_APP_BASE_API + '/fs']: {
+        target: 'http://localhost:8004',
+        changeOrigin: true,
+        pathRewrite: { ['^' + process.env.VUE_APP_BASE_API]: '' }
+      },
+      [process.env.VUE_APP_BASE_API + '/proxy']: {
+        target: 'http://localhost:8004',
+        changeOrigin: true,
+        pathRewrite: { ['^' + process.env.VUE_APP_BASE_API]: '' }
+      },
+      [process.env.VUE_APP_BASE_API + '/sop']: {
+        target: 'http://localhost:8004',
+        changeOrigin: true,
+        pathRewrite: { ['^' + process.env.VUE_APP_BASE_API]: '' }
+      },
+      [process.env.VUE_APP_BASE_API + '/tenant']: {
+        target: 'http://localhost:8004',
+        changeOrigin: true,
+        pathRewrite: { ['^' + process.env.VUE_APP_BASE_API]: '' }
+      },
+      [process.env.VUE_APP_BASE_API + '/third']: {
+        target: 'http://localhost:8004',
+        changeOrigin: true,
+        pathRewrite: { ['^' + process.env.VUE_APP_BASE_API]: '' }
+      },
+      [process.env.VUE_APP_BASE_API + '/tool']: {
+        target: 'http://localhost:8004',
+        changeOrigin: true,
+        pathRewrite: { ['^' + process.env.VUE_APP_BASE_API]: '' }
+      },
       // detail: https://cli.vuejs.org/config/#devserver-proxy
+      // 默认所有其他请求代理到 fs-company(8006) - 租户服务端
       [process.env.VUE_APP_BASE_API]: {
-        target: `http://localhost:8004`,
+        target: `http://localhost:8006`,
         changeOrigin: true,
         pathRewrite: {
           ['^' + process.env.VUE_APP_BASE_API]: ''
         }
       }
-    }
+    },
+    disableHostCheck: true
   },
-  configureWebpack: {
-    name: name,
-    resolve: {
+  configureWebpack: config => { //压缩JS大小
+    // 第一部分配置(对象形式转函数操作)
+    config.name = name;
+    config.resolve = {
+      ...config.resolve,
       alias: {
-        '@': resolve('src')
+        ...(config.resolve.alias || {}),
+        '@': resolve('src'),
+        'styles': resolve("src/components/LemonUI/styles")
       }
+    };
+    if (process.env.NODE_ENV === 'production') {
+      config.plugins.push(
+        new CompressionWebpackPlugin({
+          // filename: '[path].gz[query]',
+          // algorithm: 'gzip',
+          test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'),
+          threshold: 5120,
+          minRatio: 0.4
+        })
+      )
+    } else {
+      // 开发环境
     }
   },
   chainWebpack(config) {

+ 10 - 0
webpack.config.js

@@ -0,0 +1,10 @@
+module.exports = {
+    module: {
+      rules: [
+        {
+            test: /\.css$/,
+            use: ['style-loader', 'css-loader']
+        },
+      ],
+    },
+ };