ソースを参照

init repository

wucl 2 年 前
コミット
23ce82e37e
100 ファイル変更84751 行追加0 行削除
  1. 14 0
      .editorconfig
  2. 15 0
      .env.development
  3. 10 0
      .env.production
  4. 11 0
      .env.test
  5. 4 0
      .eslintignore
  6. 203 0
      .eslintrc.js
  7. 33 0
      .gitignore
  8. 166 0
      README.md
  9. 5 0
      babel.config.js
  10. 24 0
      deploy/config.js
  11. 26 0
      deploy/index.js
  12. 107 0
      package.json
  13. BIN
      public/favicon.ico.bak
  14. 17 0
      public/index.html
  15. 177 0
      public/pdf/LICENSE
  16. 25688 0
      public/pdf/build/pdf.js
  17. 1 0
      public/pdf/build/pdf.js.map
  18. 58239 0
      public/pdf/build/pdf.worker.js
  19. 1 0
      public/pdf/build/pdf.worker.js.map
  20. BIN
      public/pdf/web/cmaps/78-EUC-H.bcmap
  21. BIN
      public/pdf/web/cmaps/78-EUC-V.bcmap
  22. BIN
      public/pdf/web/cmaps/78-H.bcmap
  23. BIN
      public/pdf/web/cmaps/78-RKSJ-H.bcmap
  24. BIN
      public/pdf/web/cmaps/78-RKSJ-V.bcmap
  25. BIN
      public/pdf/web/cmaps/78-V.bcmap
  26. BIN
      public/pdf/web/cmaps/78ms-RKSJ-H.bcmap
  27. BIN
      public/pdf/web/cmaps/78ms-RKSJ-V.bcmap
  28. BIN
      public/pdf/web/cmaps/83pv-RKSJ-H.bcmap
  29. BIN
      public/pdf/web/cmaps/90ms-RKSJ-H.bcmap
  30. BIN
      public/pdf/web/cmaps/90ms-RKSJ-V.bcmap
  31. BIN
      public/pdf/web/cmaps/90msp-RKSJ-H.bcmap
  32. BIN
      public/pdf/web/cmaps/90msp-RKSJ-V.bcmap
  33. BIN
      public/pdf/web/cmaps/90pv-RKSJ-H.bcmap
  34. BIN
      public/pdf/web/cmaps/90pv-RKSJ-V.bcmap
  35. BIN
      public/pdf/web/cmaps/Add-H.bcmap
  36. BIN
      public/pdf/web/cmaps/Add-RKSJ-H.bcmap
  37. BIN
      public/pdf/web/cmaps/Add-RKSJ-V.bcmap
  38. BIN
      public/pdf/web/cmaps/Add-V.bcmap
  39. BIN
      public/pdf/web/cmaps/Adobe-CNS1-0.bcmap
  40. BIN
      public/pdf/web/cmaps/Adobe-CNS1-1.bcmap
  41. BIN
      public/pdf/web/cmaps/Adobe-CNS1-2.bcmap
  42. BIN
      public/pdf/web/cmaps/Adobe-CNS1-3.bcmap
  43. BIN
      public/pdf/web/cmaps/Adobe-CNS1-4.bcmap
  44. BIN
      public/pdf/web/cmaps/Adobe-CNS1-5.bcmap
  45. BIN
      public/pdf/web/cmaps/Adobe-CNS1-6.bcmap
  46. BIN
      public/pdf/web/cmaps/Adobe-CNS1-UCS2.bcmap
  47. BIN
      public/pdf/web/cmaps/Adobe-GB1-0.bcmap
  48. BIN
      public/pdf/web/cmaps/Adobe-GB1-1.bcmap
  49. BIN
      public/pdf/web/cmaps/Adobe-GB1-2.bcmap
  50. BIN
      public/pdf/web/cmaps/Adobe-GB1-3.bcmap
  51. BIN
      public/pdf/web/cmaps/Adobe-GB1-4.bcmap
  52. BIN
      public/pdf/web/cmaps/Adobe-GB1-5.bcmap
  53. BIN
      public/pdf/web/cmaps/Adobe-GB1-UCS2.bcmap
  54. BIN
      public/pdf/web/cmaps/Adobe-Japan1-0.bcmap
  55. BIN
      public/pdf/web/cmaps/Adobe-Japan1-1.bcmap
  56. BIN
      public/pdf/web/cmaps/Adobe-Japan1-2.bcmap
  57. BIN
      public/pdf/web/cmaps/Adobe-Japan1-3.bcmap
  58. BIN
      public/pdf/web/cmaps/Adobe-Japan1-4.bcmap
  59. BIN
      public/pdf/web/cmaps/Adobe-Japan1-5.bcmap
  60. BIN
      public/pdf/web/cmaps/Adobe-Japan1-6.bcmap
  61. BIN
      public/pdf/web/cmaps/Adobe-Japan1-UCS2.bcmap
  62. BIN
      public/pdf/web/cmaps/Adobe-Korea1-0.bcmap
  63. BIN
      public/pdf/web/cmaps/Adobe-Korea1-1.bcmap
  64. BIN
      public/pdf/web/cmaps/Adobe-Korea1-2.bcmap
  65. BIN
      public/pdf/web/cmaps/Adobe-Korea1-UCS2.bcmap
  66. BIN
      public/pdf/web/cmaps/B5-H.bcmap
  67. BIN
      public/pdf/web/cmaps/B5-V.bcmap
  68. BIN
      public/pdf/web/cmaps/B5pc-H.bcmap
  69. BIN
      public/pdf/web/cmaps/B5pc-V.bcmap
  70. BIN
      public/pdf/web/cmaps/CNS-EUC-H.bcmap
  71. BIN
      public/pdf/web/cmaps/CNS-EUC-V.bcmap
  72. BIN
      public/pdf/web/cmaps/CNS1-H.bcmap
  73. BIN
      public/pdf/web/cmaps/CNS1-V.bcmap
  74. BIN
      public/pdf/web/cmaps/CNS2-H.bcmap
  75. 3 0
      public/pdf/web/cmaps/CNS2-V.bcmap
  76. BIN
      public/pdf/web/cmaps/ETHK-B5-H.bcmap
  77. BIN
      public/pdf/web/cmaps/ETHK-B5-V.bcmap
  78. BIN
      public/pdf/web/cmaps/ETen-B5-H.bcmap
  79. BIN
      public/pdf/web/cmaps/ETen-B5-V.bcmap
  80. 3 0
      public/pdf/web/cmaps/ETenms-B5-H.bcmap
  81. BIN
      public/pdf/web/cmaps/ETenms-B5-V.bcmap
  82. BIN
      public/pdf/web/cmaps/EUC-H.bcmap
  83. BIN
      public/pdf/web/cmaps/EUC-V.bcmap
  84. BIN
      public/pdf/web/cmaps/Ext-H.bcmap
  85. BIN
      public/pdf/web/cmaps/Ext-RKSJ-H.bcmap
  86. BIN
      public/pdf/web/cmaps/Ext-RKSJ-V.bcmap
  87. BIN
      public/pdf/web/cmaps/Ext-V.bcmap
  88. BIN
      public/pdf/web/cmaps/GB-EUC-H.bcmap
  89. BIN
      public/pdf/web/cmaps/GB-EUC-V.bcmap
  90. 4 0
      public/pdf/web/cmaps/GB-H.bcmap
  91. BIN
      public/pdf/web/cmaps/GB-V.bcmap
  92. BIN
      public/pdf/web/cmaps/GBK-EUC-H.bcmap
  93. BIN
      public/pdf/web/cmaps/GBK-EUC-V.bcmap
  94. BIN
      public/pdf/web/cmaps/GBK2K-H.bcmap
  95. BIN
      public/pdf/web/cmaps/GBK2K-V.bcmap
  96. BIN
      public/pdf/web/cmaps/GBKp-EUC-H.bcmap
  97. BIN
      public/pdf/web/cmaps/GBKp-EUC-V.bcmap
  98. BIN
      public/pdf/web/cmaps/GBT-EUC-H.bcmap
  99. BIN
      public/pdf/web/cmaps/GBT-EUC-V.bcmap
  100. 0 0
      public/pdf/web/cmaps/GBT-H.bcmap

+ 14 - 0
.editorconfig

@@ -0,0 +1,14 @@
+# https://editorconfig.org
+root = true
+
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 2
+end_of_line = lf
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+[*.md]
+insert_final_newline = false
+trim_trailing_whitespace = false

+ 15 - 0
.env.development

@@ -0,0 +1,15 @@
+# just a flag
+ENV = 'development'
+
+# base api
+VUE_APP_BASE_API = '/api/'
+VUE_APP_BASE_API2 = '/api'
+VUE_APP_BASE_WEB = ''
+VUE_APP_BASE_WEB_URL = '/adminm'
+VUE_APP_BASE_WEB_URL_STUDENT = '/studentm'
+
+VUE_CLI_BABEL_TRANSPILE_MODULES = true
+
+
+
+# 只有以VUE_APP_开头的变量才会被webpack.DefinePlugin静态嵌入到客户端侧的包中

+ 10 - 0
.env.production

@@ -0,0 +1,10 @@
+# just a flag
+ENV = 'production'
+
+# base api
+VUE_APP_BASE_API = '/api/'
+VUE_APP_BASE_API2 = '/api'
+VUE_APP_BASE_WEB = '/admin'
+VUE_APP_BASE_WEB_URL = '/adminm'
+VUE_APP_BASE_WEB_URL_STUDENT = '/studentm'
+

+ 11 - 0
.env.test

@@ -0,0 +1,11 @@
+NODE_ENV = production
+
+# just a flag
+ENV = 'staging'
+
+# base api
+VUE_APP_BASE_API = '/api/'
+VUE_APP_BASE_API2 = '/api'
+VUE_APP_BASE_WEB_URL = '/adminm'
+VUE_APP_BASE_WEB = '/admin'
+

+ 4 - 0
.eslintignore

@@ -0,0 +1,4 @@
+build/*.js
+src/assets
+public
+dist

+ 203 - 0
.eslintrc.js

@@ -0,0 +1,203 @@
+module.exports = {
+  root: true,
+  parserOptions: {
+    parser: 'babel-eslint',
+    sourceType: 'module'
+  },
+  env: {
+    browser: true,
+    node: true,
+    es6: true
+  },
+  extends: ['plugin:vue/recommended', 'eslint:recommended'],
+
+  // add your custom rules here
+  //it is base on https://github.com/vuejs/eslint-config-vue
+  // 0的意思是off关闭,1是warning警告,2是error 报错
+  rules: {
+    'vue/max-attributes-per-line': [0, {
+      'singleline': 10,
+      'multiline': {
+        'max': 1,
+        'allowFirstLine': false
+      }
+    }],
+    'vue/attributes-order': 'off',
+    'vue/attribute-hyphenation': 'off',
+    'vue/singleline-html-element-content-newline': 'off',
+    'vue/multiline-html-element-content-newline': 'off',
+    'vue/name-property-casing': 'off',
+    'vue/no-v-html': 'off',
+    'vue/html-closing-bracket-spacing': 'off',
+    'accessor-pairs': 2,
+    'arrow-spacing': [0, {
+      'before': true,
+      'after': true
+    }],
+    'block-spacing': [2, 'always'],
+    'brace-style': [2, '1tbs', {
+      'allowSingleLine': true
+    }],
+    'camelcase': [0, {
+      'properties': 'always'
+    }],
+    'comma-dangle': [0, 'never'],
+    'comma-spacing': [2, {
+      'before': false,
+      'after': true
+    }],
+    'comma-style': [2, 'last'],
+    'constructor-super': 2,
+    'curly': [2, 'multi-line'],
+    'dot-location': [2, 'property'],
+    'eol-last': 2,
+    'eqeqeq': ['error', 'always', { 'null': 'ignore' }],
+    'generator-star-spacing': [2, {
+      'before': true,
+      'after': true
+    }],
+    'handle-callback-err': [2, '^(err|error)$'],
+    // 'indent': [2, 2, {
+    //   'SwitchCase': 1
+    // }],
+    'indent': 0,
+    'jsx-quotes': [2, 'prefer-single'],
+    'key-spacing': [0, {
+      'beforeColon': false,
+      'afterColon': true
+    }],
+    'keyword-spacing': [0, {
+      'before': true,
+      'after': true
+    }],
+    'new-cap': [2, {
+      'newIsCap': true,
+      'capIsNew': false
+    }],
+    'new-parens': 2,
+    'no-array-constructor': 2,
+    'no-caller': 2,
+    'no-console': 'off',
+    'no-class-assign': 2,
+    'no-cond-assign': 2,
+    'no-const-assign': 2,
+    'no-control-regex': 0,
+    'no-delete-var': 2,
+    'no-dupe-args': 2,
+    'no-dupe-class-members': 2,
+    'no-dupe-keys': 2,
+    'no-duplicate-case': 2,
+    'no-empty-character-class': 2,
+    'no-empty-pattern': 2,
+    'no-eval': 2,
+    'no-ex-assign': 2,
+    'no-extend-native': 2,
+    'no-extra-bind': 2,
+    'no-extra-boolean-cast': 2,
+    'no-extra-parens': [2, 'functions'],
+    'no-fallthrough': 2,
+    'no-floating-decimal': 2,
+    'no-func-assign': 2,
+    'no-implied-eval': 2,
+    'no-inner-declarations': [2, 'functions'],
+    'no-invalid-regexp': 2,
+    'no-irregular-whitespace': 2,
+    'no-iterator': 2,
+    'no-label-var': 2,
+    'no-labels': [2, {
+      'allowLoop': false,
+      'allowSwitch': false
+    }],
+    'no-lone-blocks': 2,
+    'no-mixed-spaces-and-tabs': 2,
+    'no-multi-spaces': 2,
+    'no-multi-str': 2,
+    'no-multiple-empty-lines': [2, {
+      'max': 1
+    }],
+    'no-native-reassign': 2,
+    'no-negated-in-lhs': 2,
+    'no-new-object': 2,
+    'no-new-require': 2,
+    'no-new-symbol': 2,
+    'no-new-wrappers': 2,
+    'no-obj-calls': 2,
+    'no-octal': 2,
+    'no-octal-escape': 2,
+    'no-path-concat': 2,
+    'no-proto': 2,
+    'no-redeclare': 2,
+    'no-regex-spaces': 2,
+    'no-return-assign': [2, 'except-parens'],
+    'no-self-assign': 2,
+    'no-self-compare': 2,
+    'no-sequences': 2,
+    'no-shadow-restricted-names': 2,
+    'no-spaced-func': 2,
+    'no-sparse-arrays': 2,
+    'no-this-before-super': 2,
+    'no-throw-literal': 2,
+    'no-trailing-spaces': 2,
+    'no-undef': 2,
+    'no-undef-init': 2,
+    'no-unexpected-multiline': 2,
+    'no-unmodified-loop-condition': 2,
+    'no-unneeded-ternary': [2, {
+      'defaultAssignment': false
+    }],
+    'no-unreachable': 2,
+    'no-unsafe-finally': 2,
+    'no-unused-vars': [0, {
+      'vars': 'all',
+      'args': 'none'
+    }],
+    'no-useless-call': 2,
+    'no-useless-computed-key': 2,
+    'no-useless-constructor': 2,
+    'no-useless-escape': 0,
+    'no-whitespace-before-property': 2,
+    'no-with': 2,
+    'one-var': [2, {
+      'initialized': 'never'
+    }],
+    'operator-linebreak': [2, 'after', {
+      'overrides': {
+        '?': 'before',
+        ':': 'before'
+      }
+    }],
+    'padded-blocks': [0, 'never'],
+    'quotes': [1, 'single', {
+      'avoidEscape': true,
+      'allowTemplateLiterals': true
+    }],
+    'semi': [0, 'never'],
+    'semi-spacing': [2, {
+      'before': false,
+      'after': true
+    }],
+    'space-before-blocks': [0, 'always'],
+    'space-before-function-paren': [0, 'never'],
+    'space-in-parens': [2, 'never'],
+    'space-infix-ops': 0,
+    'space-unary-ops': [2, {
+      'words': true,
+      'nonwords': false
+    }],
+    'spaced-comment': [0, 'always', {
+      'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ',']
+    }],
+    'template-curly-spacing': [2, 'never'],
+    'use-isnan': 2,
+    'valid-typeof': 2,
+    'wrap-iife': [2, 'any'],
+    'yield-star-spacing': [2, 'both'],
+    'yoda': [2, 'never'],
+    'prefer-const': 0,
+    'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
+    'object-curly-spacing': [0, 'always', {
+      objectsInObjects: false
+    }],
+    'array-bracket-spacing': [2, 'never'],
+  }
+}

+ 33 - 0
.gitignore

@@ -0,0 +1,33 @@
+.DS_Store
+node_modules
+/dist
+
+# local env files
+.env.local
+.env.*.local
+
+# Log files
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+*.log
+
+tests/**/coverage/
+tests/e2e/reports
+selenium-debug.log
+
+# Editor directories and files
+.idea
+.vscode
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
+*.local
+
+package-lock.json
+yarn.lock
+
+debug.log

+ 166 - 0
README.md

@@ -0,0 +1,166 @@
+# school_admin
+
+## Project setup
+```
+npm install
+```
+
+### Compiles and hot-reloads for development
+```
+npm run serve
+```
+
+### Compiles and minifies for production
+```
+npm run build
+```
+
+### Run your tests
+```
+npm run test
+```
+
+### Lints and fixes files
+```
+npm run lint
+```
+
+### Customize configuration
+See [Configuration Reference](https://cli.vuejs.org/config/).
+
+
+### 文档
+#### 1.接口
+接口全部放在 api 目录 得module 下, 可以单模块import 使用 也可以全局使用 this.$api.文件名.function
+>添加一个模块,只需要在api/modules/目录下 添加一个js 文件即可工程化引入
+
+#### 2.项目图标
+直接将png 和 svg 图标放入 /src/icons 下得对应目录。 访问http://localhost:9527/#/icons 即可查看,点击复制使用.支持svg,png,element图标以及base64、网络地址
+>图标做了工程化管理,
+
+#### 3. 代码质量
+使用eslint 标准风格,本地代码不符合要求禁止提交。
+```
+/* eslint-disable */ 单文件禁用
+/* eslint-disable no-new */ 
+/* eslint-disable-next-line */ 下一行
+当前行校验 some code // eslint-disable-line
+
+ /* eslint-disable */ 一部分代码 /* eslint-enable */
+```
+rule规则修改还是在 .eslintrc.js
+
+#### 4. ico 修改直接修改public/favicon.ico 图标
+
+#### 5. 目录说明
+```
+   -public
+   -src
+        -api // 接口定义
+        -assets
+        -components
+        -icons
+        -layout // router-view得工作,布局性得组件
+        -router
+        -store
+        -styles
+        -utils // 工具函数
+        -vendor
+        -views
+        -VueConfig // 这个目录主要是简化main.js ,作为统一vue 三方引入入口
+            -mixin 用户及常用数据 加入mixin
+            -prototype 挂载vue 全局 prototype
+            -globalComponents 三方全局挂在的组件
+            -directive
+            -filters
+            -styles 三方的
+        App.vue
+        main.js
+        settings.js // 全局性设置定义
+``` 
+#### 6. 权限
+
+
+#### 7. 禁用调试功能
+在main.js 的头部调用
+
+### 8. 全局引入
+    * element
+    * 接口 this.$api.文件名.function
+    * this.$moment
+    * this.$qs
+    * this.$vueCookies
+    * this.$webStorage
+    
+### 9. 菜单配置,权限说明
+    1. 路由分为两种,有权限、无权限。有权限router 在页面菜单设置配置(但本地要留有router配置备份,如/router/modules_bak 这个备份目录),无权限得写入本地router
+    2. 页面菜单设置配置,首先需要在 /router/urlMap.js 做响应配置,urlMap.js 有注释说明,包括一些约定
+    3. 按钮权限,在需要配置按钮权限得页面引入组件  参入该按编号 menuNo控制权限,如:岗位管理views/set/post/index 的使用
+        ```
+        import PermissionButton from '@/components/PermissionButton/PermissionButton'
+        // 纯操作性的 name不写会自动从配置中读取
+        <PermissionButton menu-no="_views_set_post_edit" type="primary" name="编辑" @click="handleUpdate(row)"/>
+        // 需要获取按钮 数据的. 需要自己做跳转一定注意url 菜单层级参数  name不写会自动从配置中读取
+        <PermissionButton menu-no="_views_set_post_remove" type="danger" name="删除" @click="(data) =>{handleDelete(row, data)}"/>
+        // 纯跳转性的  name不写会自动从配置中读取
+        <PermissionButton menu-no="_views_set_post_auth" type="warning" name="权限" :page-jump="true" :page-query="{id: row.id}"/>
+        
+        // 需要阻止冒泡调用 PermissionButtonStop.vue 组件
+        import PermissionButton from '@/components/PermissionButton/PermissionButtonStop'
+        
+        // 其他实列
+        // 1.导入模板下载,导入(menu-no 设置为相同)
+                <PermissionButton
+                  menu-no="_views_staff_list_import"
+                  class-name="filter-item"
+                  icon="el-icon-download"
+                  name="导入模板下载"
+                  @click="exportFile"
+                />
+                
+                <el-upload
+                  class="filter-item"
+                  style="display: inline-block;margin-left: 10px;"
+                  action=""
+                  :before-upload="beforeUpload"
+                >
+                  <PermissionButton
+                    menu-no="_views_staff_list_import"
+                    class-name="filter-item"
+                    type="primary"
+                    icon="el-icon-upload2"
+                    name="导入"
+                  />
+                </el-upload>
+        
+        
+        // 2. 图标按钮
+                    <PermissionButton
+                      menu-no="_views_staff_eduDetail"
+                      class-name="filter-item"
+                      name=""
+                      type="text"
+                      :page-jump="true"
+                      :page-query="{id: row.id}"
+                    >
+                      <svg-icon
+                        icon-class="edit"
+                        style="color: #157ddd;transform: scale(1.5);cursor: pointer;"
+                      />
+                    </PermissionButton>
+        
+        ```
+    4. 目录是不需要配置url, 按钮分为两种,纯操作的按钮,和需要绑定页面的(需要按菜单来处理,否则会404)
+    5. 页面的url参数:记录四个参数,一二三级菜单Id(menuLevel1,menuLevel2,menuLevel3),当前页面菜单id(使用menuId字段)
+       * 【所有页面都要带上四个菜单的参数】
+#### 999.开发时注意
+       1. 设计审批的新增编辑页面 都新开页面 使用弹窗, 需要 从审批哪里调整回来查看详情
+       1. 列表查询 统一 点击搜索时查询,查询条件多的列表需要加一个重置按钮
+       1. 移动端涉及到导入导出的都去掉
+       1. vue style 要加 scoped, 不能加得情况也必须有命名空间。避免污染其他页面
+       1. 项目通用性得页面,可以在 views/DOME/ 下写一些demo方便使用
+       1. 主键的 name 命名: 与编码一致(用于 keep-alive缓存) 如:编码为:_views_baseinfo_department_list  那么组件name 为 ViewsBaseinfoDepartmentList
+       1. 为了调试方便  编码、url、组件映射 都是 组件在/views 下的路径一致
+       
+# 警告
+vue-photo-preview 包安装数据源有问题。 勿使用 yarn 安装会报错       

+ 5 - 0
babel.config.js

@@ -0,0 +1,5 @@
+module.exports = {
+  presets: [
+    '@vue/cli-plugin-babel/preset'
+  ]
+}

+ 24 - 0
deploy/config.js

@@ -0,0 +1,24 @@
+/**
+ * 服务器相关配置
+ */
+const SERVER_LIST = [
+  {
+    id: 'test',
+    name: '本地环境',
+    host: '127.0.0.1', // ip
+    port: 8088, // 端口
+    username: 'root',
+    password: 'B89cukAsnvwbclMX',
+    path: '/usr/local/nginx/html/admin' // 项目静态文件存放地址
+  },
+  {
+    id: 'prod',
+    name: '正式环境',
+    host: '101.x.xx.xx',
+    port: 22,
+    username: 'root',
+    password: '******',
+    path: '/opt/xxx/front'
+  }
+]
+module.exports = SERVER_LIST

+ 26 - 0
deploy/index.js

@@ -0,0 +1,26 @@
+const scpClient = require('scp2')
+const ora = require('ora')
+const chalk = require('chalk')
+const serverList = require('./config')
+let server = process.env.NODE_ENV === 'prod' ? serverList[1] : serverList[0]
+const spinner = ora('正在发布到' + (process.env.NODE_ENV === 'prod' ? '生产' : '测试') + `服务器(${server.host})...`)
+spinner.start()
+scpClient.scp(
+  'dist/',
+  {
+    host: server.host,
+    port: server.port,
+    username: server.username,
+    password: server.password,
+    path: server.path
+  },
+  function (err) {
+    spinner.stop()
+    if (err) {
+      console.log(chalk.red('发布失败.\n'))
+      throw err
+    } else {
+      console.log(chalk.green('Success! 成功发布到' + (process.env.NODE_ENV === 'prod' ? '生产' : '测试') + '服务器! \n'))
+    }
+  }
+)

+ 107 - 0
package.json

@@ -0,0 +1,107 @@
+{
+  "name": "item-management-web",
+  "version": "0.1.0",
+  "private": true,
+  "scripts": {
+    "serve": "vue-cli-service serve",
+    "build": "vue-cli-service build",
+    "lint": "vue-cli-service lint",
+    "deploy:test": "npm run build && cross-env NODE_ENV=test node ./deploy"
+  },
+  "husky": {
+    "hooks": {
+      "pre-commit": "lint-staged"
+    }
+  },
+  "lint-staged": {
+    "src/views/**/*.{js,vue}": [
+      "eslint --fix",
+      "git add"
+    ]
+  },
+  "dependencies": {
+    "@antv/g2": "^4.0.14",
+    "axios": "^0.19.2",
+    "bpmn-js": "^7.2.0",
+    "clipboard": "^2.0.6",
+    "core-js": "^3.6.5",
+    "cross-env": "^7.0.2",
+    "e-vue-contextmenu": "^0.1.3",
+    "echarts": "^4.8.0",
+    "element-ui": "^2.13.2",
+    "format": "^0.2.2",
+    "fuse.js": "^6.2.0",
+    "html2canvas": "^1.0.0-rc.7",
+    "jquery": "^3.5.1",
+    "js-base64": "^2.6.2",
+    "js-cookie": "^2.2.1",
+    "js-md5": "^0.7.3",
+    "jspdf": "^2.0.0",
+    "moment": "2.24.0",
+    "normalize.css": "^8.0.1",
+    "nprogress": "^0.2.0",
+    "path-to-regexp": "^6.2.0",
+    "qrcode": "^1.4.4",
+    "qrcodejs2": "^0.0.2",
+    "qs": "^6.9.4",
+    "register-service-worker": "^1.7.1",
+    "screenfull": "^5.0.2",
+    "vue": "^2.6.11",
+    "vue-amap": "^0.5.10",
+    "vue-baidu-map": "^0.21.22",
+    "vue-clipboard2": "^0.3.1",
+    "vue-cookies": "^1.7.0",
+    "vue-count-to": "^1.0.13",
+    "vue-piczoom": "^1.0.6",
+    "vue-router": "^3.2.0",
+    "vuex": "^3.4.0",
+    "webpack-spritesmith": "^1.1.0",
+    "webStorage": "^2.1.1"
+  },
+  "devDependencies": {
+    "@vue/cli-plugin-babel": "^4.4.0",
+    "@vue/cli-plugin-eslint": "^4.4.0",
+    "@vue/cli-plugin-pwa": "^4.4.0",
+    "@vue/cli-plugin-router": "~4.3.0",
+    "@vue/cli-plugin-vuex": "~4.3.0",
+    "@vue/cli-service": "^4.4.0",
+    "@vue/eslint-config-standard": "^5.1.2",
+    "babel-eslint": "^10.1.0",
+    "cross-env": "^7.0.2",
+    "eslint": "^6.7.2",
+    "eslint-plugin-import": "^2.20.2",
+    "eslint-plugin-node": "^11.1.0",
+    "eslint-plugin-promise": "^4.2.1",
+    "eslint-plugin-standard": "^4.0.0",
+    "eslint-plugin-vue": "^6.2.2",
+    "less": "^3.0.4",
+    "less-loader": "^5.0.0",
+    "lint-staged": "^9.5.0",
+    "node-sass": "^4.12.0",
+    "postcss-px-to-viewport": "^1.1.1",
+    "sass-loader": "^8.0.2",
+    "scp2": "^0.5.0",
+    "script-ext-html-webpack-plugin": "^2.1.4",
+    "svg-sprite-loader": "^5.0.0",
+    "vue-template-compiler": "^2.6.11"
+  },
+  "eslintConfig": {
+    "root": true,
+    "env": {
+      "node": true
+    },
+    "extends": [
+      "plugin:vue/essential",
+      "@vue/standard"
+    ],
+    "parserOptions": {
+      "parser": "babel-eslint"
+    },
+    "rules": {}
+  },
+  "browserslist": [
+    "> 1%",
+    "last 2 versions",
+    "not dead"
+  ]
+}

BIN
public/favicon.ico.bak


+ 17 - 0
public/index.html

@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+  <meta charset="utf-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+  <meta name="renderer" content="webkit">
+  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
+  <link rel="shortcut icon" href="<%= BASE_URL %>favicon.ico">
+  <title><%= webpackConfig.name %></title>
+</head>
+<body>
+<div id="app"></div>
+<!-- built files will be auto injected -->
+</body>
+
+</html>

+ 177 - 0
public/pdf/LICENSE

@@ -0,0 +1,177 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS

ファイルの差分が大きいため隠しています
+ 25688 - 0
public/pdf/build/pdf.js


ファイルの差分が大きいため隠しています
+ 1 - 0
public/pdf/build/pdf.js.map


ファイルの差分が大きいため隠しています
+ 58239 - 0
public/pdf/build/pdf.worker.js


ファイルの差分が大きいため隠しています
+ 1 - 0
public/pdf/build/pdf.worker.js.map


BIN
public/pdf/web/cmaps/78-EUC-H.bcmap


BIN
public/pdf/web/cmaps/78-EUC-V.bcmap


BIN
public/pdf/web/cmaps/78-H.bcmap


BIN
public/pdf/web/cmaps/78-RKSJ-H.bcmap


BIN
public/pdf/web/cmaps/78-RKSJ-V.bcmap


BIN
public/pdf/web/cmaps/78-V.bcmap


BIN
public/pdf/web/cmaps/78ms-RKSJ-H.bcmap


BIN
public/pdf/web/cmaps/78ms-RKSJ-V.bcmap


BIN
public/pdf/web/cmaps/83pv-RKSJ-H.bcmap


BIN
public/pdf/web/cmaps/90ms-RKSJ-H.bcmap


BIN
public/pdf/web/cmaps/90ms-RKSJ-V.bcmap


BIN
public/pdf/web/cmaps/90msp-RKSJ-H.bcmap


BIN
public/pdf/web/cmaps/90msp-RKSJ-V.bcmap


BIN
public/pdf/web/cmaps/90pv-RKSJ-H.bcmap


BIN
public/pdf/web/cmaps/90pv-RKSJ-V.bcmap


BIN
public/pdf/web/cmaps/Add-H.bcmap


BIN
public/pdf/web/cmaps/Add-RKSJ-H.bcmap


BIN
public/pdf/web/cmaps/Add-RKSJ-V.bcmap


BIN
public/pdf/web/cmaps/Add-V.bcmap


BIN
public/pdf/web/cmaps/Adobe-CNS1-0.bcmap


BIN
public/pdf/web/cmaps/Adobe-CNS1-1.bcmap


BIN
public/pdf/web/cmaps/Adobe-CNS1-2.bcmap


BIN
public/pdf/web/cmaps/Adobe-CNS1-3.bcmap


BIN
public/pdf/web/cmaps/Adobe-CNS1-4.bcmap


BIN
public/pdf/web/cmaps/Adobe-CNS1-5.bcmap


BIN
public/pdf/web/cmaps/Adobe-CNS1-6.bcmap


BIN
public/pdf/web/cmaps/Adobe-CNS1-UCS2.bcmap


BIN
public/pdf/web/cmaps/Adobe-GB1-0.bcmap


BIN
public/pdf/web/cmaps/Adobe-GB1-1.bcmap


BIN
public/pdf/web/cmaps/Adobe-GB1-2.bcmap


BIN
public/pdf/web/cmaps/Adobe-GB1-3.bcmap


BIN
public/pdf/web/cmaps/Adobe-GB1-4.bcmap


BIN
public/pdf/web/cmaps/Adobe-GB1-5.bcmap


BIN
public/pdf/web/cmaps/Adobe-GB1-UCS2.bcmap


BIN
public/pdf/web/cmaps/Adobe-Japan1-0.bcmap


BIN
public/pdf/web/cmaps/Adobe-Japan1-1.bcmap


BIN
public/pdf/web/cmaps/Adobe-Japan1-2.bcmap


BIN
public/pdf/web/cmaps/Adobe-Japan1-3.bcmap


BIN
public/pdf/web/cmaps/Adobe-Japan1-4.bcmap


BIN
public/pdf/web/cmaps/Adobe-Japan1-5.bcmap


BIN
public/pdf/web/cmaps/Adobe-Japan1-6.bcmap


BIN
public/pdf/web/cmaps/Adobe-Japan1-UCS2.bcmap


BIN
public/pdf/web/cmaps/Adobe-Korea1-0.bcmap


BIN
public/pdf/web/cmaps/Adobe-Korea1-1.bcmap


BIN
public/pdf/web/cmaps/Adobe-Korea1-2.bcmap


BIN
public/pdf/web/cmaps/Adobe-Korea1-UCS2.bcmap


BIN
public/pdf/web/cmaps/B5-H.bcmap


BIN
public/pdf/web/cmaps/B5-V.bcmap


BIN
public/pdf/web/cmaps/B5pc-H.bcmap


BIN
public/pdf/web/cmaps/B5pc-V.bcmap


BIN
public/pdf/web/cmaps/CNS-EUC-H.bcmap


BIN
public/pdf/web/cmaps/CNS-EUC-V.bcmap


BIN
public/pdf/web/cmaps/CNS1-H.bcmap


BIN
public/pdf/web/cmaps/CNS1-V.bcmap


BIN
public/pdf/web/cmaps/CNS2-H.bcmap


+ 3 - 0
public/pdf/web/cmaps/CNS2-V.bcmap

@@ -0,0 +1,3 @@
+àRCopyright 1990-2009 Adobe Systems Incorporated.
+All rights reserved.
+See ./LICENSEáCNS2-H

BIN
public/pdf/web/cmaps/ETHK-B5-H.bcmap


BIN
public/pdf/web/cmaps/ETHK-B5-V.bcmap


BIN
public/pdf/web/cmaps/ETen-B5-H.bcmap


BIN
public/pdf/web/cmaps/ETen-B5-V.bcmap


+ 3 - 0
public/pdf/web/cmaps/ETenms-B5-H.bcmap

@@ -0,0 +1,3 @@
+àRCopyright 1990-2009 Adobe Systems Incorporated.
+All rights reserved.
+See ./LICENSEá	ETen-B5-H` ^

BIN
public/pdf/web/cmaps/ETenms-B5-V.bcmap


BIN
public/pdf/web/cmaps/EUC-H.bcmap


BIN
public/pdf/web/cmaps/EUC-V.bcmap


BIN
public/pdf/web/cmaps/Ext-H.bcmap


BIN
public/pdf/web/cmaps/Ext-RKSJ-H.bcmap


BIN
public/pdf/web/cmaps/Ext-RKSJ-V.bcmap


BIN
public/pdf/web/cmaps/Ext-V.bcmap


BIN
public/pdf/web/cmaps/GB-EUC-H.bcmap


BIN
public/pdf/web/cmaps/GB-EUC-V.bcmap


+ 4 - 0
public/pdf/web/cmaps/GB-H.bcmap

@@ -0,0 +1,4 @@
+àRCopyright 1990-2009 Adobe Systems Incorporated.
+All rights reserved.
+See ./LICENSE!!�º]aX!!]`�21�>	�p�z�$]‚�"R‚d�-Uƒ7�*„
4„%�+ „Z „{�/…%…<�9K…b�1]†.�"‡‰`]‡,�"]ˆ
+�"]ˆh�"]‰F�"]Š$�"]‹�"]‹`�"]Œ>�"]��"]�z�"]ŽX�"]�6�"]��"]�r�"]‘P�"]’.�"]“�"]“j�"]”H�"]•&�"]–�"]–b�"]—@�"]˜�"]˜|�"]™Z�"]š8�"]›�"]›t�"]œR�"]�0�"]ž�"]žl�"]ŸJ�"] (�"]¡�"]¡d�"]¢B�"]£ �"X£~�']¤W�"]¥5�"]¦�"]¦q�"]§O�"]¨-�"]©�"]©i�"]ªG�"]«%�"]¬�"]¬a�"]­?�"]®�"]®{�"]¯Y�"]°7�"]±�"]±s�"]²Q�"]³/�"]´
�"]´k�"]µI�"]¶'�"]·�"]·c�"]¸A�"]¹�"]¹}�"]º[�"]»9

BIN
public/pdf/web/cmaps/GB-V.bcmap


BIN
public/pdf/web/cmaps/GBK-EUC-H.bcmap


BIN
public/pdf/web/cmaps/GBK-EUC-V.bcmap


BIN
public/pdf/web/cmaps/GBK2K-H.bcmap


BIN
public/pdf/web/cmaps/GBK2K-V.bcmap


BIN
public/pdf/web/cmaps/GBKp-EUC-H.bcmap


BIN
public/pdf/web/cmaps/GBKp-EUC-V.bcmap


BIN
public/pdf/web/cmaps/GBT-EUC-H.bcmap


BIN
public/pdf/web/cmaps/GBT-EUC-V.bcmap


+ 0 - 0
public/pdf/web/cmaps/GBT-H.bcmap


この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません