diff --git a/evo-tech-ui/.editorconfig b/evo-tech-ui/.editorconfig
new file mode 100644
index 0000000..7034f9b
--- /dev/null
+++ b/evo-tech-ui/.editorconfig
@@ -0,0 +1,22 @@
+# 告诉EditorConfig插件,这是根文件,不用继续往上查找
+root = true
+
+# 匹配全部文件
+[*]
+# 设置字符集
+charset = utf-8
+# 缩进风格,可选space、tab
+indent_style = space
+# 缩进的空格数
+indent_size = 2
+# 结尾换行符,可选lf、cr、crlf
+end_of_line = lf
+# 在文件结尾插入新行
+insert_final_newline = true
+# 删除一行中的前后空格
+trim_trailing_whitespace = true
+
+# 匹配md结尾的文件
+[*.md]
+insert_final_newline = false
+trim_trailing_whitespace = false
diff --git a/evo-tech-ui/.env.development b/evo-tech-ui/.env.development
new file mode 100644
index 0000000..302ecd1
--- /dev/null
+++ b/evo-tech-ui/.env.development
@@ -0,0 +1,11 @@
+# 页面标题
+VUE_APP_TITLE = 若依管理系统
+
+# 开发环境配置
+ENV = 'development'
+
+# 若依管理系统/开发环境
+VUE_APP_BASE_API = '/dev-api'
+
+# 路由懒加载
+VUE_CLI_BABEL_TRANSPILE_MODULES = true
diff --git a/evo-tech-ui/.env.production b/evo-tech-ui/.env.production
new file mode 100644
index 0000000..b4893b0
--- /dev/null
+++ b/evo-tech-ui/.env.production
@@ -0,0 +1,8 @@
+# 页面标题
+VUE_APP_TITLE = 若依管理系统
+
+# 生产环境配置
+ENV = 'production'
+
+# 若依管理系统/生产环境
+VUE_APP_BASE_API = '/prod-api'
diff --git a/evo-tech-ui/.env.staging b/evo-tech-ui/.env.staging
new file mode 100644
index 0000000..361859f
--- /dev/null
+++ b/evo-tech-ui/.env.staging
@@ -0,0 +1,10 @@
+# 页面标题
+VUE_APP_TITLE = 若依管理系统
+
+NODE_ENV = production
+
+# 测试环境配置
+ENV = 'staging'
+
+# 若依管理系统/测试环境
+VUE_APP_BASE_API = '/stage-api'
diff --git a/evo-tech-ui/.eslintignore b/evo-tech-ui/.eslintignore
new file mode 100644
index 0000000..89be6f6
--- /dev/null
+++ b/evo-tech-ui/.eslintignore
@@ -0,0 +1,10 @@
+# 忽略build目录下类型为js的文件的语法检查
+build/*.js
+# 忽略src/assets目录下文件的语法检查
+src/assets
+# 忽略public目录下文件的语法检查
+public
+# 忽略当前目录下为js的文件的语法检查
+*.js
+# 忽略当前目录下为vue的文件的语法检查
+*.vue
\ No newline at end of file
diff --git a/evo-tech-ui/.eslintrc.js b/evo-tech-ui/.eslintrc.js
new file mode 100644
index 0000000..82bbdee
--- /dev/null
+++ b/evo-tech-ui/.eslintrc.js
@@ -0,0 +1,199 @@
+// ESlint 检查配置
+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
+ rules: {
+ "vue/max-attributes-per-line": [2, {
+ "singleline": 10,
+ "multiline": {
+ "max": 1,
+ "allowFirstLine": false
+ }
+ }],
+ "vue/singleline-html-element-content-newline": "off",
+ "vue/multiline-html-element-content-newline":"off",
+ "vue/name-property-casing": ["error", "PascalCase"],
+ "vue/no-v-html": "off",
+ 'accessor-pairs': 2,
+ 'arrow-spacing': [2, {
+ 'before': true,
+ 'after': true
+ }],
+ 'block-spacing': [2, 'always'],
+ 'brace-style': [2, '1tbs', {
+ 'allowSingleLine': true
+ }],
+ 'camelcase': [0, {
+ 'properties': 'always'
+ }],
+ 'comma-dangle': [2, '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
+ }],
+ 'jsx-quotes': [2, 'prefer-single'],
+ 'key-spacing': [2, {
+ 'beforeColon': false,
+ 'afterColon': true
+ }],
+ 'keyword-spacing': [2, {
+ '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': [2, {
+ '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': [2, 'never'],
+ 'quotes': [2, 'single', {
+ 'avoidEscape': true,
+ 'allowTemplateLiterals': true
+ }],
+ 'semi': [2, 'never'],
+ 'semi-spacing': [2, {
+ 'before': false,
+ 'after': true
+ }],
+ 'space-before-blocks': [2, 'always'],
+ 'space-before-function-paren': [2, 'never'],
+ 'space-in-parens': [2, 'never'],
+ 'space-infix-ops': 2,
+ 'space-unary-ops': [2, {
+ 'words': true,
+ 'nonwords': false
+ }],
+ 'spaced-comment': [2, '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': 2,
+ 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
+ 'object-curly-spacing': [2, 'always', {
+ objectsInObjects: false
+ }],
+ 'array-bracket-spacing': [2, 'never']
+ }
+}
diff --git a/evo-tech-ui/.gitignore b/evo-tech-ui/.gitignore
new file mode 100644
index 0000000..78a752d
--- /dev/null
+++ b/evo-tech-ui/.gitignore
@@ -0,0 +1,23 @@
+.DS_Store
+node_modules/
+dist/
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+**/*.log
+
+tests/**/coverage/
+tests/e2e/reports
+selenium-debug.log
+
+# Editor directories and files
+.idea
+.vscode
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.local
+
+package-lock.json
+yarn.lock
diff --git a/evo-tech-ui/README.md b/evo-tech-ui/README.md
new file mode 100644
index 0000000..00c0ab8
--- /dev/null
+++ b/evo-tech-ui/README.md
@@ -0,0 +1,30 @@
+## 开发
+
+```bash
+# 克隆项目
+git clone https://gitee.com/y_project/RuoYi-Vue
+
+# 进入项目目录
+cd ruoyi-ui
+
+# 安装依赖
+npm install
+
+# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
+npm install --registry=https://registry.npmmirror.com
+
+# 启动服务
+npm run dev
+```
+
+浏览器访问 http://localhost:80
+
+## 发布
+
+```bash
+# 构建测试环境
+npm run build:stage
+
+# 构建生产环境
+npm run build:prod
+```
\ No newline at end of file
diff --git a/evo-tech-ui/babel.config.js b/evo-tech-ui/babel.config.js
new file mode 100644
index 0000000..c8267b2
--- /dev/null
+++ b/evo-tech-ui/babel.config.js
@@ -0,0 +1,13 @@
+module.exports = {
+ presets: [
+ // https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app
+ '@vue/cli-plugin-babel/preset'
+ ],
+ 'env': {
+ 'development': {
+ // babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require().
+ // This plugin can significantly increase the speed of hot updates, when you have a large number of pages.
+ 'plugins': ['dynamic-import-node']
+ }
+ }
+}
\ No newline at end of file
diff --git a/evo-tech-ui/bin/build.bat b/evo-tech-ui/bin/build.bat
new file mode 100644
index 0000000..dda590d
--- /dev/null
+++ b/evo-tech-ui/bin/build.bat
@@ -0,0 +1,12 @@
+@echo off
+echo.
+echo [Ϣ] Weḅdistļ
+echo.
+
+%~d0
+cd %~dp0
+
+cd ..
+npm run build:prod
+
+pause
\ No newline at end of file
diff --git a/evo-tech-ui/bin/package.bat b/evo-tech-ui/bin/package.bat
new file mode 100644
index 0000000..0e5bc0f
--- /dev/null
+++ b/evo-tech-ui/bin/package.bat
@@ -0,0 +1,12 @@
+@echo off
+echo.
+echo [Ϣ] װWeḅnode_modulesļ
+echo.
+
+%~d0
+cd %~dp0
+
+cd ..
+npm install --registry=https://registry.npmmirror.com
+
+pause
\ No newline at end of file
diff --git a/evo-tech-ui/bin/run-web.bat b/evo-tech-ui/bin/run-web.bat
new file mode 100644
index 0000000..d30deae
--- /dev/null
+++ b/evo-tech-ui/bin/run-web.bat
@@ -0,0 +1,12 @@
+@echo off
+echo.
+echo [Ϣ] ʹ Vue CLI Web ̡
+echo.
+
+%~d0
+cd %~dp0
+
+cd ..
+npm run dev
+
+pause
\ No newline at end of file
diff --git a/evo-tech-ui/build/index.js b/evo-tech-ui/build/index.js
new file mode 100644
index 0000000..0c57de2
--- /dev/null
+++ b/evo-tech-ui/build/index.js
@@ -0,0 +1,35 @@
+const { run } = require('runjs')
+const chalk = require('chalk')
+const config = require('../vue.config.js')
+const rawArgv = process.argv.slice(2)
+const args = rawArgv.join(' ')
+
+if (process.env.npm_config_preview || rawArgv.includes('--preview')) {
+ const report = rawArgv.includes('--report')
+
+ run(`vue-cli-service build ${args}`)
+
+ const port = 9526
+ const publicPath = config.publicPath
+
+ var connect = require('connect')
+ var serveStatic = require('serve-static')
+ const app = connect()
+
+ app.use(
+ publicPath,
+ serveStatic('./dist', {
+ index: ['index.html', '/']
+ })
+ )
+
+ app.listen(port, function () {
+ console.log(chalk.green(`> Preview at http://localhost:${port}${publicPath}`))
+ if (report) {
+ console.log(chalk.green(`> Report at http://localhost:${port}${publicPath}report.html`))
+ }
+
+ })
+} else {
+ run(`vue-cli-service build ${args}`)
+}
diff --git a/evo-tech-ui/package.json b/evo-tech-ui/package.json
new file mode 100644
index 0000000..fd4863a
--- /dev/null
+++ b/evo-tech-ui/package.json
@@ -0,0 +1,90 @@
+{
+ "name": "ruoyi",
+ "version": "3.8.8",
+ "description": "若依管理系统",
+ "author": "若依",
+ "license": "MIT",
+ "scripts": {
+ "dev": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
+ "build:prod": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build",
+ "build:stage": "vue-cli-service build --mode staging",
+ "preview": "node build/index.js --preview",
+ "lint": "eslint --ext .js,.vue src"
+ },
+ "husky": {
+ "hooks": {
+ "pre-commit": "lint-staged"
+ }
+ },
+ "lint-staged": {
+ "src/**/*.{js,vue}": [
+ "eslint --fix",
+ "git add"
+ ]
+ },
+ "keywords": [
+ "vue",
+ "admin",
+ "dashboard",
+ "element-ui",
+ "boilerplate",
+ "admin-template",
+ "management-system"
+ ],
+ "repository": {
+ "type": "git",
+ "url": "https://gitee.com/y_project/RuoYi-Vue.git"
+ },
+ "dependencies": {
+ "@riophae/vue-treeselect": "0.4.0",
+ "axios": "0.28.1",
+ "clipboard": "2.0.8",
+ "core-js": "3.37.1",
+ "echarts": "5.4.0",
+ "element-ui": "2.15.14",
+ "file-saver": "2.0.5",
+ "fuse.js": "6.4.3",
+ "highlight.js": "9.18.5",
+ "js-beautify": "1.13.0",
+ "js-cookie": "3.0.1",
+ "jsencrypt": "3.0.0-rc.1",
+ "nprogress": "0.2.0",
+ "quill": "1.3.7",
+ "screenfull": "5.0.2",
+ "sortablejs": "1.10.2",
+ "vue": "2.6.12",
+ "vue-count-to": "1.0.13",
+ "vue-cropper": "0.5.5",
+ "vue-meta": "2.4.0",
+ "vue-router": "3.4.9",
+ "vuedraggable": "2.24.3",
+ "vuex": "3.6.0"
+ },
+ "devDependencies": {
+ "@vue/cli-plugin-babel": "4.4.6",
+ "@vue/cli-plugin-eslint": "4.4.6",
+ "@vue/cli-service": "4.4.6",
+ "babel-eslint": "10.1.0",
+ "babel-plugin-dynamic-import-node": "2.3.3",
+ "chalk": "4.1.0",
+ "compression-webpack-plugin": "6.1.2",
+ "connect": "3.6.6",
+ "eslint": "7.15.0",
+ "eslint-plugin-vue": "7.2.0",
+ "lint-staged": "10.5.3",
+ "runjs": "4.4.2",
+ "sass": "1.32.13",
+ "sass-loader": "10.1.1",
+ "script-ext-html-webpack-plugin": "2.1.5",
+ "svg-sprite-loader": "5.1.1",
+ "vue-template-compiler": "2.6.12"
+ },
+ "engines": {
+ "node": ">=8.9",
+ "npm": ">= 3.0.0"
+ },
+ "browserslist": [
+ "> 1%",
+ "last 2 versions"
+ ]
+}
diff --git a/evo-tech-ui/public/favicon.ico b/evo-tech-ui/public/favicon.ico
new file mode 100644
index 0000000..9160b31
Binary files /dev/null and b/evo-tech-ui/public/favicon.ico differ
diff --git a/evo-tech-ui/public/html/ie.html b/evo-tech-ui/public/html/ie.html
new file mode 100644
index 0000000..052ffcd
--- /dev/null
+++ b/evo-tech-ui/public/html/ie.html
@@ -0,0 +1,46 @@
+
+
+
+
+
+ 请升级您的浏览器
+
+
+
+
+
+
+请升级您的浏览器,以便我们更好的为您提供服务!
+您正在使用 Internet Explorer 的早期版本(IE11以下版本或使用该内核的浏览器)。这意味着在升级浏览器前,您将无法访问此网站。
+
+请注意:微软公司对Windows XP 及 Internet Explorer 早期版本的支持已经结束
+自 2016 年 1 月 12 日起,Microsoft 不再为 IE 11 以下版本提供相应支持和更新。没有关键的浏览器安全更新,您的电脑可能易受有害病毒、间谍软件和其他恶意软件的攻击,它们可以窃取或损害您的业务数据和信息。请参阅 微软对 Internet Explorer 早期版本的支持将于 2016 年 1 月 12 日结束的说明 。
+
+您可以选择更先进的浏览器
+推荐使用以下浏览器的最新版本。如果您的电脑已有以下浏览器的最新版本则直接使用该浏览器访问即可。
+
+
+
+
\ No newline at end of file
diff --git a/evo-tech-ui/public/index.html b/evo-tech-ui/public/index.html
new file mode 100644
index 0000000..925455c
--- /dev/null
+++ b/evo-tech-ui/public/index.html
@@ -0,0 +1,208 @@
+
+
+
+
+
+
+
+
+ <%= webpackConfig.name %>
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/public/robots.txt b/evo-tech-ui/public/robots.txt
new file mode 100644
index 0000000..77470cb
--- /dev/null
+++ b/evo-tech-ui/public/robots.txt
@@ -0,0 +1,2 @@
+User-agent: *
+Disallow: /
\ No newline at end of file
diff --git a/evo-tech-ui/src/App.vue b/evo-tech-ui/src/App.vue
new file mode 100644
index 0000000..b92ea37
--- /dev/null
+++ b/evo-tech-ui/src/App.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/api/login.js b/evo-tech-ui/src/api/login.js
new file mode 100644
index 0000000..7b7388f
--- /dev/null
+++ b/evo-tech-ui/src/api/login.js
@@ -0,0 +1,60 @@
+import request from '@/utils/request'
+
+// 登录方法
+export function login(username, password, code, uuid) {
+ const data = {
+ username,
+ password,
+ code,
+ uuid
+ }
+ return request({
+ url: '/login',
+ headers: {
+ isToken: false,
+ repeatSubmit: false
+ },
+ method: 'post',
+ data: data
+ })
+}
+
+// 注册方法
+export function register(data) {
+ return request({
+ url: '/register',
+ headers: {
+ isToken: false
+ },
+ method: 'post',
+ data: data
+ })
+}
+
+// 获取用户详细信息
+export function getInfo() {
+ return request({
+ url: '/getInfo',
+ method: 'get'
+ })
+}
+
+// 退出方法
+export function logout() {
+ return request({
+ url: '/logout',
+ method: 'post'
+ })
+}
+
+// 获取验证码
+export function getCodeImg() {
+ return request({
+ url: '/captchaImage',
+ headers: {
+ isToken: false
+ },
+ method: 'get',
+ timeout: 20000
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/CwEmployeeInformation.js b/evo-tech-ui/src/api/management/CwEmployeeInformation.js
new file mode 100644
index 0000000..c415050
--- /dev/null
+++ b/evo-tech-ui/src/api/management/CwEmployeeInformation.js
@@ -0,0 +1,101 @@
+import request from '@/utils/request'
+
+// 查询员工信息列表
+export function listCwEmployeeInformation(query) {
+ return request({
+ url: '/management/CwEmployeeInformation/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询员工信息详细
+export function getCwEmployeeInformation(id) {
+ return request({
+ url: '/management/CwEmployeeInformation/' + id,
+ method: 'get'
+ })
+}
+
+// 新增员工信息
+export function addCwEmployeeInformation(data) {
+ return request({
+ url: '/management/CwEmployeeInformation',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改员工信息
+export function updateCwEmployeeInformation(data) {
+ return request({
+ url: '/management/CwEmployeeInformation',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除员工信息
+export function delCwEmployeeInformation(id) {
+ return request({
+ url: '/management/CwEmployeeInformation/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出员工信息
+export function exportCwEmployeeInformation(query) {
+ return request({
+ url: '/management/CwEmployeeInformation/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//上传养老保险信息文件
+export function uploadEndowmentInsuranceFile(data){
+ return request({
+ url:'/management/CwEmployeeInformation/uploadEndowmentInsuranceFile',
+ data:data,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ },
+ method:'post'
+ })
+}
+
+//上传医疗保险信息文件
+export function uploadMedicalInsuranceFile(data){
+ return request({
+ url:'/management/CwEmployeeInformation/uploadMedicalInsuranceFile',
+ data:data,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ },
+ method:'post'
+ })
+}
+
+//上传失业保险信息文件
+export function uploadUnemploymentInsuranceFile(data){
+ return request({
+ url:'/management/CwEmployeeInformation/uploadUnemploymentInsuranceFile',
+ data:data,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ },
+ method:'post'
+ })
+}
+
+//上传车间工资信息文件
+export function uploadCJFile(data){
+ return request({
+ url:'/management/CwEmployeeInformation/uploadCJFile',
+ data:data,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ },
+ method:'post'
+ })
+}
diff --git a/evo-tech-ui/src/api/management/ProductBillBom.js b/evo-tech-ui/src/api/management/ProductBillBom.js
new file mode 100644
index 0000000..96626d9
--- /dev/null
+++ b/evo-tech-ui/src/api/management/ProductBillBom.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询生产执行单bom列表
+export function listProductBillBom(query) {
+ return request({
+ url: '/management/ProductBillBom/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询生产执行单bom详细
+export function getProductBillBom(id) {
+ return request({
+ url: '/management/ProductBillBom/' + id,
+ method: 'get'
+ })
+}
+
+// 新增生产执行单bom
+export function addProductBillBom(data) {
+ return request({
+ url: '/management/ProductBillBom',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改生产执行单bom
+export function updateProductBillBom(data) {
+ return request({
+ url: '/management/ProductBillBom',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除生产执行单bom
+export function delProductBillBom(id) {
+ return request({
+ url: '/management/ProductBillBom/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出生产执行单bom
+export function exportProductBillBom(query) {
+ return request({
+ url: '/management/ProductBillBom/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/TaskBom.js b/evo-tech-ui/src/api/management/TaskBom.js
new file mode 100644
index 0000000..53c0e15
--- /dev/null
+++ b/evo-tech-ui/src/api/management/TaskBom.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询任务零部件关联列表
+export function listTaskBom(query) {
+ return request({
+ url: '/management/TaskBom/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询任务零部件关联详细
+export function getTaskBom(id) {
+ return request({
+ url: '/management/TaskBom/' + id,
+ method: 'get'
+ })
+}
+
+// 新增任务零部件关联
+export function addTaskBom(data) {
+ return request({
+ url: '/management/TaskBom',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改任务零部件关联
+export function updateTaskBom(data) {
+ return request({
+ url: '/management/TaskBom',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除任务零部件关联
+export function delTaskBom(id) {
+ return request({
+ url: '/management/TaskBom/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出任务零部件关联
+export function exportTaskBom(query) {
+ return request({
+ url: '/management/TaskBom/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/bom.js b/evo-tech-ui/src/api/management/bom.js
new file mode 100644
index 0000000..7da613c
--- /dev/null
+++ b/evo-tech-ui/src/api/management/bom.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询bom列表
+export function listBom(query) {
+ return request({
+ url: '/management/bom/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询bom详细
+export function getBom(id) {
+ return request({
+ url: '/management/bom/' + id,
+ method: 'get'
+ })
+}
+
+// 新增bom
+export function addBom(data) {
+ return request({
+ url: '/management/bom',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改bom
+export function updateBom(data) {
+ return request({
+ url: '/management/bom',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除bom
+export function delBom(id) {
+ return request({
+ url: '/management/bom/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出bom
+export function exportBom(query) {
+ return request({
+ url: '/management/bom/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/bomMaterialls.js b/evo-tech-ui/src/api/management/bomMaterialls.js
new file mode 100644
index 0000000..2ee065c
--- /dev/null
+++ b/evo-tech-ui/src/api/management/bomMaterialls.js
@@ -0,0 +1,20 @@
+import request from '@/utils/request'
+
+// 查询金蝶BOM信息列表
+export function listMaterialls(query) {
+ return request({
+ url: '/management/bomMaterialls/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询金蝶BOM物料信息
+export function materialList(query) {
+ return request({
+ url: '/management/bomMaterialls/materialList',
+ method: 'get',
+ params: query
+ })
+}
+
diff --git a/evo-tech-ui/src/api/management/buyingRequisition.js b/evo-tech-ui/src/api/management/buyingRequisition.js
new file mode 100644
index 0000000..1bb007a
--- /dev/null
+++ b/evo-tech-ui/src/api/management/buyingRequisition.js
@@ -0,0 +1,108 @@
+import request from '@/utils/request'
+
+// 查询采购申请单列表
+export function listBuyingRequisition(query) {
+ return request({
+ url: '/management/buyingRequisition/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询采购申请单详细
+export function getBuyingRequisition(id) {
+ return request({
+ url: '/management/buyingRequisition/' + id,
+ method: 'get'
+ })
+}
+
+// 新增采购申请单
+export function addBuyingRequisition(data) {
+ return request({
+ url: '/management/buyingRequisition',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改采购申请单
+export function updateBuyingRequisition(data) {
+ return request({
+ url: '/management/buyingRequisition',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除采购申请单
+export function delBuyingRequisition(id) {
+ return request({
+ url: '/management/buyingRequisition/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出采购申请单
+export function exportBuyingRequisition(query) {
+ return request({
+ url: '/management/buyingRequisition/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 审核采购申请单
+export function audit(query) {
+ return request({
+ url: '/management/buyingRequisition/auditPwBuyingRequisition',
+ method: 'get',
+ params: query
+ })
+}
+
+//打印合同
+export function printBuyingRequisition(id) {
+ return request({
+ url: '/management/buyingRequisition/prints/' + id,
+ method: 'get'
+ })
+}
+
+//领导审批按钮
+export function lingDaoApprovers(id) {
+ return request({
+ url: '/management/buyingRequisition/lingDaoApprover/' + id,
+ method: 'delete'
+ })
+}
+
+//申请付款
+export function addPayment(data) {
+ return request({
+ url: '/management/buyingRequisition/addPayment',
+ method: 'post',
+ data: data
+ })
+}
+
+//生成物流费用单按钮
+export function addLogistics(data) {
+ return request({
+ url: '/management/buyingRequisition/addLogistics',
+ method: 'post',
+ data: data
+ })
+}
+
+//上传合同
+export function uploadContractPDF(data){
+ return request({
+ url:'/management/buyingRequisition/uploadContractPDF',
+ data:data,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ },
+ method:'post'
+ })
+}
diff --git a/evo-tech-ui/src/api/management/cadMaterialInfo.js b/evo-tech-ui/src/api/management/cadMaterialInfo.js
new file mode 100644
index 0000000..afe8f36
--- /dev/null
+++ b/evo-tech-ui/src/api/management/cadMaterialInfo.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询CAD物料明细列表
+export function listCadMaterialInfo(query) {
+ return request({
+ url: '/management/cadMaterialInfo/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询CAD物料明细详细
+export function getCadMaterialInfo(id) {
+ return request({
+ url: '/management/cadMaterialInfo/' + id,
+ method: 'get'
+ })
+}
+
+// 新增CAD物料明细
+export function addCadMaterialInfo(data) {
+ return request({
+ url: '/management/cadMaterialInfo',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改CAD物料明细
+export function updateCadMaterialInfo(data) {
+ return request({
+ url: '/management/cadMaterialInfo',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除CAD物料明细
+export function delCadMaterialInfo(id) {
+ return request({
+ url: '/management/cadMaterialInfo/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出CAD物料明细
+export function exportCadMaterialInfo(query) {
+ return request({
+ url: '/management/cadMaterialInfo/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/comparison.js b/evo-tech-ui/src/api/management/comparison.js
new file mode 100644
index 0000000..a9fd5b6
--- /dev/null
+++ b/evo-tech-ui/src/api/management/comparison.js
@@ -0,0 +1,29 @@
+import request from '@/utils/request'
+
+// 查询盘库对比列表
+export function listComparison(query) {
+ return request({
+ url: '/management/comparison/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询盘库对比详细
+export function getComparisonDetail(query) {
+ return request({
+ url: '/management/comparison/getComparisonDetail',
+ method: 'get',
+ params: query
+ })
+}
+
+// 导出盘库对比
+export function exportComparison(query) {
+ return request({
+ url: '/management/comparison/export',
+ method: 'get',
+ params: query
+ })
+}
+
diff --git a/evo-tech-ui/src/api/management/completionNotice.js b/evo-tech-ui/src/api/management/completionNotice.js
new file mode 100644
index 0000000..d6d21ec
--- /dev/null
+++ b/evo-tech-ui/src/api/management/completionNotice.js
@@ -0,0 +1,80 @@
+import request from '@/utils/request'
+
+// 查询完工通知单列表
+export function listCompletionNotice(query) {
+ return request({
+ url: '/management/completionNotice/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询完工通知单详细
+export function getCompletionNotice(id) {
+ return request({
+ url: '/management/completionNotice/' + id,
+ method: 'get'
+ })
+}
+
+// 新增完工通知单
+export function addCompletionNotice(data) {
+ return request({
+ url: '/management/completionNotice',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改完工通知单
+export function updateCompletionNotice(data) {
+ return request({
+ url: '/management/completionNotice',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除完工通知单
+export function delCompletionNotice(id) {
+ return request({
+ url: '/management/completionNotice/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出完工通知单
+export function exportCompletionNotice(query) {
+ return request({
+ url: '/management/completionNotice/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询生产执行单列表
+export function getProductionBillList(query) {
+ return request({
+ url: '/management/productionBill/list',
+ method: 'get',
+ params: query
+ })
+}
+
+//审核完工通知单(生产部)
+export function editPdAudit(query) {
+ return request({
+ url: '/management/completionNotice/editPdAudit',
+ method: 'post',
+ params: query
+ })
+}
+
+//审核完工通知单(质检部)
+export function editQualityInspectorAudit(query) {
+ return request({
+ url: '/management/completionNotice/editQualityInspectorAudit',
+ method: 'post',
+ params: query
+ })
+}
diff --git a/evo-tech-ui/src/api/management/completionNoticeProduct.js b/evo-tech-ui/src/api/management/completionNoticeProduct.js
new file mode 100644
index 0000000..acf56e5
--- /dev/null
+++ b/evo-tech-ui/src/api/management/completionNoticeProduct.js
@@ -0,0 +1,96 @@
+import request from '@/utils/request'
+
+// 查询产品完工通知单关联列表
+export function listCompletionNoticeProduct(query) {
+ return request({
+ url: '/management/completionNoticeProduct/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询产品完工通知单关联详细
+export function getCompletionNoticeProduct(id) {
+ return request({
+ url: '/management/completionNoticeProduct/' + id,
+ method: 'get'
+ })
+}
+
+// 新增产品完工通知单关联
+export function addCompletionNoticeProduct(data) {
+ return request({
+ url: '/management/completionNoticeProduct',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改产品完工通知单关联
+export function updateCompletionNoticeProduct(data) {
+ return request({
+ url: '/management/completionNoticeProduct',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除产品完工通知单关联
+export function delCompletionNoticeProduct(id) {
+ return request({
+ url: '/management/completionNoticeProduct/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出产品完工通知单关联
+export function exportCompletionNoticeProduct(query) {
+ return request({
+ url: '/management/completionNoticeProduct/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 单条质检
+export function affirmCheckoutProduct(data) {
+ return request({
+ url: '/management/completionNoticeProduct/affirmCheckoutProduct/',
+ method: 'post',
+ data: data
+ })
+}
+
+//批量质检
+export function affirmCheckoutAlls(id) {
+ return request({
+ url: '/management/completionNoticeProduct/affirmCheckoutAlls/' + id,
+ method: 'delete'
+ })
+}
+
+//撤销检验按钮
+export function revocations(id) {
+ return request({
+ url: '/management/completionNoticeProduct/revocations/' + id,
+ method: 'get'
+ })
+}
+
+
+//打印单据按钮(申请人打印)
+export function printCompletionNoticeProducts(id) {
+ return request({
+ url: '/management/completionNoticeProduct/printCompletionNoticeProducts/' + id,
+ method: 'get'
+ })
+}
+
+//根据令号,名称,图号查询
+export function getCompletionNoticeProductTwo(data) {
+ return request({
+ url: '/management/completionNoticeProduct/getCompletionNoticeProductTwo/',
+ method: 'post',
+ data: data
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/configIni.js b/evo-tech-ui/src/api/management/configIni.js
new file mode 100644
index 0000000..994d7bb
--- /dev/null
+++ b/evo-tech-ui/src/api/management/configIni.js
@@ -0,0 +1,74 @@
+import request from '@/utils/request'
+
+// 查询图纸配置列表
+export function listConfigIni(query) {
+ return request({
+ url: '/management/configIni/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询图纸配置详细
+export function getConfigIni(id) {
+ return request({
+ url: '/management/configIni/' + id,
+ method: 'get'
+ })
+}
+
+// 新增图纸配置
+export function addConfigIni(data) {
+ return request({
+ url: '/management/configIni',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改图纸配置
+export function updateConfigIni(data) {
+ return request({
+ url: '/management/configIni',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除图纸配置
+export function delConfigIni(id) {
+ return request({
+ url: '/management/configIni/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出图纸配置
+export function exportConfigIni(query) {
+ return request({
+ url: '/management/configIni/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//图片上传
+export function uploadFile(data){
+ return request({
+ url:'/management/configIni/uploadDwg',
+ data:data,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ },
+ method:'post'
+ })
+}
+
+// 查询所有图纸类型
+export function queryAlllist() {
+ return request({
+ url: '/management/configIni/queryAlllist',
+ method: 'get'
+ })
+}
+
diff --git a/evo-tech-ui/src/api/management/contract.js b/evo-tech-ui/src/api/management/contract.js
new file mode 100644
index 0000000..a0c508f
--- /dev/null
+++ b/evo-tech-ui/src/api/management/contract.js
@@ -0,0 +1,106 @@
+import request from '@/utils/request'
+
+// 查询合同列表
+export function listContract(query) {
+ return request({
+ url: '/management/contract/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询合同详细
+export function getContract(id) {
+ return request({
+ url: '/management/contract/' + id,
+ method: 'get'
+ })
+}
+//打印合同
+export function prints(id) {
+ return request({
+ url: '/management/contract/prints/' + id,
+ method: 'get'
+ })
+}
+
+// 创建合同
+export function createContract(query) {
+ return request({
+ url: '/management/contract/createContract',
+ method: 'get',
+ params: query
+ })
+}
+
+// 新增合同
+export function addContract(data) {
+ return request({
+ url: '/management/contract',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改合同
+export function updateContract(data) {
+ return request({
+ url: '/management/contract',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除合同
+export function delContract(id) {
+ return request({
+ url: '/management/contract/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出合同
+export function exportContract(query) {
+ return request({
+ url: '/management/contract/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 发布合同(修改合同状态)
+export function editContractStatus(query) {
+ return request({
+ url: '/management/contract/editContractStatus',
+ method: 'get',
+ params: query
+ })
+}
+
+//领导审批按钮
+export function lingDaoApprovers(id) {
+ return request({
+ url: '/management/contract/lingDaoApprover/' + id,
+ method: 'delete'
+ })
+}
+
+//生成物流费用单按钮
+export function addLogistics(data) {
+ return request({
+ url: '/management/contract/addLogistics',
+ method: 'post',
+ data: data
+ })
+}
+//上传合同
+export function uploadContractPDF(data){
+ return request({
+ url:'/management/contract/uploadContractPDF',
+ data:data,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ },
+ method:'post'
+ })
+}
diff --git a/evo-tech-ui/src/api/management/currency.js b/evo-tech-ui/src/api/management/currency.js
new file mode 100644
index 0000000..631ad9c
--- /dev/null
+++ b/evo-tech-ui/src/api/management/currency.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询币别列表
+export function listCurrency(query) {
+ return request({
+ url: '/management/currency/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询币别详细
+export function getCurrency(id) {
+ return request({
+ url: '/management/currency/' + id,
+ method: 'get'
+ })
+}
+
+// 新增币别
+export function addCurrency(data) {
+ return request({
+ url: '/management/currency',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改币别
+export function updateCurrency(data) {
+ return request({
+ url: '/management/currency',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除币别
+export function delCurrency(id) {
+ return request({
+ url: '/management/currency/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出币别
+export function exportCurrency(query) {
+ return request({
+ url: '/management/currency/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/curtainMachine.js b/evo-tech-ui/src/api/management/curtainMachine.js
new file mode 100644
index 0000000..e7d314a
--- /dev/null
+++ b/evo-tech-ui/src/api/management/curtainMachine.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询大幕机型号列表
+export function listCurtainMachine(query) {
+ return request({
+ url: '/management/curtainMachine/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询大幕机型号详细
+export function getCurtainMachine(id) {
+ return request({
+ url: '/management/curtainMachine/' + id,
+ method: 'get'
+ })
+}
+
+// 新增大幕机型号
+export function addCurtainMachine(data) {
+ return request({
+ url: '/management/curtainMachine',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改大幕机型号
+export function updateCurtainMachine(data) {
+ return request({
+ url: '/management/curtainMachine',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除大幕机型号
+export function delCurtainMachine(id) {
+ return request({
+ url: '/management/curtainMachine/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出大幕机型号
+export function exportCurtainMachine(query) {
+ return request({
+ url: '/management/curtainMachine/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/customer.js b/evo-tech-ui/src/api/management/customer.js
new file mode 100644
index 0000000..584a1e2
--- /dev/null
+++ b/evo-tech-ui/src/api/management/customer.js
@@ -0,0 +1,60 @@
+import request from '@/utils/request'
+
+// 查询客户维护列表
+export function listCustomer(query) {
+ return request({
+ url: '/management/customer/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询客户维护详细
+export function getCustomer(id) {
+ return request({
+ url: '/management/customer/' + id,
+ method: 'get'
+ })
+}
+
+// 新增客户维护
+export function addCustomer(data) {
+ return request({
+ url: '/management/customer',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改客户维护
+export function updateCustomer(data) {
+ return request({
+ url: '/management/customer',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除客户维护
+export function delCustomer(id) {
+ return request({
+ url: '/management/customer/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出客户维护
+export function exportCustomer(query) {
+ return request({
+ url: '/management/customer/export',
+ method: 'get',
+ params: query
+ })
+}
+
+export function queryCustomers() {
+ return request({
+ url: '/management/customer/queryCustomers',
+ method: 'get'
+ })
+}
diff --git a/evo-tech-ui/src/api/management/customertype.js b/evo-tech-ui/src/api/management/customertype.js
new file mode 100644
index 0000000..5272de7
--- /dev/null
+++ b/evo-tech-ui/src/api/management/customertype.js
@@ -0,0 +1,61 @@
+import request from '@/utils/request'
+
+// 查询客户类型列表
+export function listType(query) {
+ return request({
+ url: '/management/type/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询客户类型详细
+export function getType(id) {
+ return request({
+ url: '/management/type/' + id,
+ method: 'get'
+ })
+}
+
+// 新增客户类型
+export function addType(data) {
+ return request({
+ url: '/management/type',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改客户类型
+export function updateType(data) {
+ return request({
+ url: '/management/type',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除客户类型
+export function delType(id) {
+ return request({
+ url: '/management/type/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出客户类型
+export function exportType(query) {
+ return request({
+ url: '/management/type/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询客户分组
+export function customerGroupList() {
+ return request({
+ url: '/management/type/customerGroupList',
+ method: 'get'
+ })
+}
diff --git a/evo-tech-ui/src/api/management/cuttingToolScrapGodownEntryDe.js b/evo-tech-ui/src/api/management/cuttingToolScrapGodownEntryDe.js
new file mode 100644
index 0000000..96f9a19
--- /dev/null
+++ b/evo-tech-ui/src/api/management/cuttingToolScrapGodownEntryDe.js
@@ -0,0 +1,61 @@
+import request from '@/utils/request'
+
+// 查询刀具报废入库详情列表
+export function listCuttingToolScrapGodownEntryDe(query) {
+ return request({
+ url: '/management/cuttingToolScrapGodownEntryDe/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询刀具报废入库详情详细
+export function getCuttingToolScrapGodownEntryDe(id) {
+ return request({
+ url: '/management/cuttingToolScrapGodownEntryDe/' + id,
+ method: 'get'
+ })
+}
+
+// 新增刀具报废入库详情
+export function addCuttingToolScrapGodownEntryDe(data) {
+ return request({
+ url: '/management/cuttingToolScrapGodownEntryDe',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改刀具报废入库详情
+export function updateCuttingToolScrapGodownEntryDe(data) {
+ return request({
+ url: '/management/cuttingToolScrapGodownEntryDe',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除刀具报废入库详情
+export function delCuttingToolScrapGodownEntryDe(id) {
+ return request({
+ url: '/management/cuttingToolScrapGodownEntryDe/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出刀具报废入库详情
+export function exportCuttingToolScrapGodownEntryDe(query) {
+ return request({
+ url: '/management/cuttingToolScrapGodownEntryDe/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 确认入库刀具入库详情
+export function affirms(id) {
+ return request({
+ url: '/management/cuttingToolScrapGodownEntryDe/affirms/' + id,
+ method: 'delete'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/cwAttendance.js b/evo-tech-ui/src/api/management/cwAttendance.js
new file mode 100644
index 0000000..33c0988
--- /dev/null
+++ b/evo-tech-ui/src/api/management/cwAttendance.js
@@ -0,0 +1,65 @@
+import request from '@/utils/request'
+
+// 查询考勤记录列表
+export function listCwAttendance(query) {
+ return request({
+ url: '/management/cwAttendance/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询考勤记录详细
+export function getCwAttendance(id) {
+ return request({
+ url: '/management/cwAttendance/' + id,
+ method: 'get'
+ })
+}
+
+// 新增考勤记录
+export function addCwAttendance(data) {
+ return request({
+ url: '/management/cwAttendance',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改考勤记录
+export function updateCwAttendance(data) {
+ return request({
+ url: '/management/cwAttendance',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除考勤记录
+export function delCwAttendance(id) {
+ return request({
+ url: '/management/cwAttendance/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出考勤记录
+export function exportCwAttendance(query) {
+ return request({
+ url: '/management/cwAttendance/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//上传考勤记录信息文件
+export function uploadAttendanceFile(data){
+ return request({
+ url:'/management/cwAttendance/uploadAttendanceFile',
+ data:data,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ },
+ method:'post'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/cwAttendanceRecordDetail.js b/evo-tech-ui/src/api/management/cwAttendanceRecordDetail.js
new file mode 100644
index 0000000..cc7e74a
--- /dev/null
+++ b/evo-tech-ui/src/api/management/cwAttendanceRecordDetail.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询考勤记录列表
+export function listCwAttendanceRecordDetail(query) {
+ return request({
+ url: '/api/v1/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询考勤记录详细
+export function getCwAttendanceRecordDetail(id) {
+ return request({
+ url: '/api/v1/' + id,
+ method: 'get'
+ })
+}
+
+// 新增考勤记录
+export function addCwAttendanceRecordDetail(data) {
+ return request({
+ url: '/api/v1',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改考勤记录
+export function updateCwAttendanceRecordDetail(data) {
+ return request({
+ url: '/api/v1',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除考勤记录
+export function delCwAttendanceRecordDetail(id) {
+ return request({
+ url: '/api/v1/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出考勤记录
+export function exportCwAttendanceRecordDetail(query) {
+ return request({
+ url: '/management/cwAttendanceRecordDetail/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/cwAttendanceUser.js b/evo-tech-ui/src/api/management/cwAttendanceUser.js
new file mode 100644
index 0000000..d837fd4
--- /dev/null
+++ b/evo-tech-ui/src/api/management/cwAttendanceUser.js
@@ -0,0 +1,65 @@
+import request from '@/utils/request'
+
+// 查询员工信息列表
+export function listCwAttendanceUser(query) {
+ return request({
+ url: '/management/cwAttendanceUser/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询员工信息详细
+export function getCwAttendanceUser(id) {
+ return request({
+ url: '/management/cwAttendanceUser/' + id,
+ method: 'get'
+ })
+}
+
+// 新增员工信息
+export function addCwAttendanceUser(data) {
+ return request({
+ url: '/management/cwAttendanceUser',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改员工信息
+export function updateCwAttendanceUser(data) {
+ return request({
+ url: '/management/cwAttendanceUser',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除员工信息
+export function delCwAttendanceUser(id) {
+ return request({
+ url: '/management/cwAttendanceUser/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出员工信息
+export function exportCwAttendanceUser(query) {
+ return request({
+ url: '/management/cwAttendanceUser/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//Bom文件上传(派工)
+export function uploadDispatchingFile(data){
+ return request({
+ url:'/management/cwAttendanceUser/uploadDispatchings',
+ data:data,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ },
+ method:'post'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/cwButton.js b/evo-tech-ui/src/api/management/cwButton.js
new file mode 100644
index 0000000..0c0e700
--- /dev/null
+++ b/evo-tech-ui/src/api/management/cwButton.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询按钮信息列表
+export function listCwButton(query) {
+ return request({
+ url: '/management/cwButton/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询按钮信息详细
+export function getCwButton(id) {
+ return request({
+ url: '/management/cwButton/' + id,
+ method: 'get'
+ })
+}
+
+// 新增按钮信息
+export function addCwButton(data) {
+ return request({
+ url: '/management/cwButton',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改按钮信息
+export function updateCwButton(data) {
+ return request({
+ url: '/management/cwButton',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除按钮信息
+export function delCwButton(id) {
+ return request({
+ url: '/management/cwButton/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出按钮信息
+export function exportCwButton(query) {
+ return request({
+ url: '/management/cwButton/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/cwCostAnalysis.js b/evo-tech-ui/src/api/management/cwCostAnalysis.js
new file mode 100644
index 0000000..bb2e494
--- /dev/null
+++ b/evo-tech-ui/src/api/management/cwCostAnalysis.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询成本分析信息列表
+export function listCwCostAnalysis(query) {
+ return request({
+ url: '/management/cwCostAnalysis/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询成本分析信息详细
+export function getCwCostAnalysis(id) {
+ return request({
+ url: '/management/cwCostAnalysis/' + id,
+ method: 'get'
+ })
+}
+
+// 新增成本分析信息
+export function addCwCostAnalysis(data) {
+ return request({
+ url: '/management/cwCostAnalysis',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改成本分析信息
+export function updateCwCostAnalysis(data) {
+ return request({
+ url: '/management/cwCostAnalysis',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除成本分析信息
+export function delCwCostAnalysis(id) {
+ return request({
+ url: '/management/cwCostAnalysis/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出成本分析信息
+export function exportCwCostAnalysis(query) {
+ return request({
+ url: '/management/cwCostAnalysis/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/cwCostStatistics.js b/evo-tech-ui/src/api/management/cwCostStatistics.js
new file mode 100644
index 0000000..7db441f
--- /dev/null
+++ b/evo-tech-ui/src/api/management/cwCostStatistics.js
@@ -0,0 +1,60 @@
+import request from '@/utils/request'
+
+// 查询成本统计信息列表
+export function listCwCostStatistics(query) {
+ return request({
+ url: '/management/cwCostStatistics/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询成本统计信息详细
+export function getCwCostStatistics(id) {
+ return request({
+ url: '/management/cwCostStatistics/' + id,
+ method: 'get'
+ })
+}
+
+// 新增成本统计信息
+export function addCwCostStatistics(data) {
+ return request({
+ url: '/management/cwCostStatistics',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改成本统计信息
+export function updateCwCostStatistics(data) {
+ return request({
+ url: '/management/cwCostStatistics',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除成本统计信息
+export function delCwCostStatistics(id) {
+ return request({
+ url: '/management/cwCostStatistics/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出成本统计信息
+export function exportCwCostStatistics(query) {
+ return request({
+ url: '/management/cwCostStatistics/export',
+ method: 'get',
+ params: query
+ })
+}
+
+export function apportions(id) {
+ return request({
+ url: '/management/cwCostStatistics/apportions/' + id,
+ method: 'delete'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/cwDepartment.js b/evo-tech-ui/src/api/management/cwDepartment.js
new file mode 100644
index 0000000..8977b4d
--- /dev/null
+++ b/evo-tech-ui/src/api/management/cwDepartment.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询财务部门列表
+export function listCwDepartment(query) {
+ return request({
+ url: '/management/cwDepartment/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询财务部门详细
+export function getCwDepartment(id) {
+ return request({
+ url: '/management/cwDepartment/' + id,
+ method: 'get'
+ })
+}
+
+// 新增财务部门
+export function addCwDepartment(data) {
+ return request({
+ url: '/management/cwDepartment',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改财务部门
+export function updateCwDepartment(data) {
+ return request({
+ url: '/management/cwDepartment',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除财务部门
+export function delCwDepartment(id) {
+ return request({
+ url: '/management/cwDepartment/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出财务部门
+export function exportCwDepartment(query) {
+ return request({
+ url: '/management/cwDepartment/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/cwDimission.js b/evo-tech-ui/src/api/management/cwDimission.js
new file mode 100644
index 0000000..7e02652
--- /dev/null
+++ b/evo-tech-ui/src/api/management/cwDimission.js
@@ -0,0 +1,93 @@
+import request from '@/utils/request'
+
+// 查询员工离职单列表
+export function listCwDimission(query) {
+ return request({
+ url: '/management/cwDimission/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询员工离职单详细
+export function getCwDimission(id) {
+ return request({
+ url: '/management/cwDimission/' + id,
+ method: 'get'
+ })
+}
+
+// 新增员工离职单
+export function addCwDimission(data) {
+ return request({
+ url: '/management/cwDimission',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改员工离职单
+export function updateCwDimission(data) {
+ return request({
+ url: '/management/cwDimission',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除员工离职单
+export function delCwDimission(id) {
+ return request({
+ url: '/management/cwDimission/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出员工离职单
+export function exportCwDimission(query) {
+ return request({
+ url: '/management/cwDimission/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 审核工资单
+export function approveOnes(id) {
+ return request({
+ url: '/management/cwDimission/approveOnes/'+id,
+ method: 'get'
+ })
+}
+
+// 审核工资单
+export function approveTwos(id) {
+ return request({
+ url: '/management/cwDimission/approveTwos/'+id,
+ method: 'get'
+ })
+}
+
+// 审核工资单
+export function approveThrees(id) {
+ return request({
+ url: '/management/cwDimission/approveThrees/'+id,
+ method: 'get'
+ })
+}
+
+// 审核工资单
+export function approveFours(id) {
+ return request({
+ url: '/management/cwDimission/approveFours/'+id,
+ method: 'get'
+ })
+}
+
+// 审核工资单
+export function approveFives(id) {
+ return request({
+ url: '/management/cwDimission/approveFives/'+id,
+ method: 'get'
+ })
+}
diff --git a/evo-tech-ui/src/api/management/cwEvection.js b/evo-tech-ui/src/api/management/cwEvection.js
new file mode 100644
index 0000000..601e537
--- /dev/null
+++ b/evo-tech-ui/src/api/management/cwEvection.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询出差申请列表
+export function listCwEvection(query) {
+ return request({
+ url: '/management/cwEvection/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询出差申请详细
+export function getCwEvection(id) {
+ return request({
+ url: '/management/cwEvection/' + id,
+ method: 'get'
+ })
+}
+
+// 新增出差申请
+export function addCwEvection(data) {
+ return request({
+ url: '/management/cwEvection',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改出差申请
+export function updateCwEvection(data) {
+ return request({
+ url: '/management/cwEvection',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除出差申请
+export function delCwEvection(id) {
+ return request({
+ url: '/management/cwEvection/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出出差申请
+export function exportCwEvection(query) {
+ return request({
+ url: '/management/cwEvection/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/cwExpenseReimbursement.js b/evo-tech-ui/src/api/management/cwExpenseReimbursement.js
new file mode 100644
index 0000000..6790d45
--- /dev/null
+++ b/evo-tech-ui/src/api/management/cwExpenseReimbursement.js
@@ -0,0 +1,85 @@
+import request from '@/utils/request'
+
+// 查询费用报销信息列表
+export function listCwExpenseReimbursement(query) {
+ return request({
+ url: '/management/cwExpenseReimbursement/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询费用报销信息详细
+export function getCwExpenseReimbursement(id) {
+ return request({
+ url: '/management/cwExpenseReimbursement/' + id,
+ method: 'get'
+ })
+}
+
+// 新增费用报销信息
+export function addCwExpenseReimbursement(data) {
+ return request({
+ url: '/management/cwExpenseReimbursement',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改费用报销信息
+export function updateCwExpenseReimbursement(data) {
+ return request({
+ url: '/management/cwExpenseReimbursement',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除费用报销信息
+export function delCwExpenseReimbursement(id) {
+ return request({
+ url: '/management/cwExpenseReimbursement/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出费用报销信息
+export function exportCwExpenseReimbursement(query) {
+ return request({
+ url: '/management/cwExpenseReimbursement/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//会记审批按钮
+export function kuaiJiApprovers(id) {
+ return request({
+ url: '/management/cwExpenseReimbursement/kuaiJiApprover/' + id,
+ method: 'delete'
+ })
+}
+
+//复核人审批按钮
+export function fuHeRenApprovers(id) {
+ return request({
+ url: '/management/cwExpenseReimbursement/fuHeRenApprover/' + id,
+ method: 'delete'
+ })
+}
+
+//出纳审批按钮
+export function chuNaApprovers(id) {
+ return request({
+ url: '/management/cwExpenseReimbursement/chuNaApprover/' + id,
+ method: 'delete'
+ })
+}
+
+//领导审批按钮
+export function lingDaoApprovers(id) {
+ return request({
+ url: '/management/cwExpenseReimbursement/lingDaoApprover/' + id,
+ method: 'delete'
+ })
+}
diff --git a/evo-tech-ui/src/api/management/cwJobs.js b/evo-tech-ui/src/api/management/cwJobs.js
new file mode 100644
index 0000000..a9ef5b1
--- /dev/null
+++ b/evo-tech-ui/src/api/management/cwJobs.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询岗位列表
+export function listCwJobs(query) {
+ return request({
+ url: '/management/cwJobs/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询岗位详细
+export function getCwJobs(id) {
+ return request({
+ url: '/management/cwJobs/' + id,
+ method: 'get'
+ })
+}
+
+// 新增岗位
+export function addCwJobs(data) {
+ return request({
+ url: '/management/cwJobs',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改岗位
+export function updateCwJobs(data) {
+ return request({
+ url: '/management/cwJobs',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除岗位
+export function delCwJobs(id) {
+ return request({
+ url: '/management/cwJobs/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出岗位
+export function exportCwJobs(query) {
+ return request({
+ url: '/management/cwJobs/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/cwLeaveRecord.js b/evo-tech-ui/src/api/management/cwLeaveRecord.js
new file mode 100644
index 0000000..566d35c
--- /dev/null
+++ b/evo-tech-ui/src/api/management/cwLeaveRecord.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询请假记录列表
+export function listCwLeaveRecord(query) {
+ return request({
+ url: '/management/cwLeaveRecord/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询请假记录详细
+export function getCwLeaveRecord(id) {
+ return request({
+ url: '/management/cwLeaveRecord/' + id,
+ method: 'get'
+ })
+}
+
+// 新增请假记录
+export function addCwLeaveRecord(data) {
+ return request({
+ url: '/management/cwLeaveRecord',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改请假记录
+export function updateCwLeaveRecord(data) {
+ return request({
+ url: '/management/cwLeaveRecord',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除请假记录
+export function delCwLeaveRecord(id) {
+ return request({
+ url: '/management/cwLeaveRecord/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出请假记录
+export function exportCwLeaveRecord(query) {
+ return request({
+ url: '/management/cwLeaveRecord/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/cwLevelOfEducation.js b/evo-tech-ui/src/api/management/cwLevelOfEducation.js
new file mode 100644
index 0000000..cc89046
--- /dev/null
+++ b/evo-tech-ui/src/api/management/cwLevelOfEducation.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询补助列表
+export function listCwLevelOfEducation(query) {
+ return request({
+ url: '/management/cwLevelOfEducation/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询补助详细
+export function getCwLevelOfEducation(id) {
+ return request({
+ url: '/management/cwLevelOfEducation/' + id,
+ method: 'get'
+ })
+}
+
+// 新增补助
+export function addCwLevelOfEducation(data) {
+ return request({
+ url: '/management/cwLevelOfEducation',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改补助
+export function updateCwLevelOfEducation(data) {
+ return request({
+ url: '/management/cwLevelOfEducation',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除补助
+export function delCwLevelOfEducation(id) {
+ return request({
+ url: '/management/cwLevelOfEducation/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出补助
+export function exportCwLevelOfEducation(query) {
+ return request({
+ url: '/management/cwLevelOfEducation/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/cwLogisticsFeesInfo.js b/evo-tech-ui/src/api/management/cwLogisticsFeesInfo.js
new file mode 100644
index 0000000..ef335dd
--- /dev/null
+++ b/evo-tech-ui/src/api/management/cwLogisticsFeesInfo.js
@@ -0,0 +1,78 @@
+import request from '@/utils/request'
+
+// 查询物流费用信息列表
+export function listCwLogisticsFeesInfo(query) {
+ return request({
+ url: '/management/cwLogisticsFeesInfo/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询物流费用信息详细
+export function getCwLogisticsFeesInfo(id) {
+ return request({
+ url: '/management/cwLogisticsFeesInfo/' + id,
+ method: 'get'
+ })
+}
+
+// 新增物流费用信息
+export function addCwLogisticsFeesInfo(data) {
+ return request({
+ url: '/management/cwLogisticsFeesInfo',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改物流费用信息
+export function updateCwLogisticsFeesInfo(data) {
+ return request({
+ url: '/management/cwLogisticsFeesInfo',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除物流费用信息
+export function delCwLogisticsFeesInfo(id) {
+ return request({
+ url: '/management/cwLogisticsFeesInfo/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出物流费用信息
+export function exportCwLogisticsFeesInfo(query) {
+ return request({
+ url: '/management/cwLogisticsFeesInfo/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//领导审批按钮
+export function lingDaoApprovers(id) {
+ return request({
+ url: '/management/cwLogisticsFeesInfo/lingDaoApprover/' + id,
+ method: 'delete'
+ })
+}
+
+//申请付款
+export function addPayment(data) {
+ return request({
+ url: '/management/cwLogisticsFeesInfo/addPayment',
+ method: 'post',
+ data: data
+ })
+}
+
+//查询相关联的入库单详情信息
+export function listImProductReceiptMaterial(id) {
+ return request({
+ url: '/management/cwLogisticsFeesInfo/listImProductReceiptMaterial/' + id,
+ method: 'delete'
+ })
+}
diff --git a/evo-tech-ui/src/api/management/cwLogsotocsFeesMaterial.js b/evo-tech-ui/src/api/management/cwLogsotocsFeesMaterial.js
new file mode 100644
index 0000000..d8e2ee4
--- /dev/null
+++ b/evo-tech-ui/src/api/management/cwLogsotocsFeesMaterial.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询物流费用和入库单关联列表
+export function listCwLogsotocsFeesMaterial(query) {
+ return request({
+ url: '/management/cwLogsotocsFeesMaterial/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询物流费用和入库单关联详细
+export function getCwLogsotocsFeesMaterial(id) {
+ return request({
+ url: '/management/cwLogsotocsFeesMaterial/' + id,
+ method: 'get'
+ })
+}
+
+// 新增物流费用和入库单关联
+export function addCwLogsotocsFeesMaterial(data) {
+ return request({
+ url: '/management/cwLogsotocsFeesMaterial',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改物流费用和入库单关联
+export function updateCwLogsotocsFeesMaterial(data) {
+ return request({
+ url: '/management/cwLogsotocsFeesMaterial',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除物流费用和入库单关联
+export function delCwLogsotocsFeesMaterial(id) {
+ return request({
+ url: '/management/cwLogsotocsFeesMaterial/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出物流费用和入库单关联
+export function exportCwLogsotocsFeesMaterial(query) {
+ return request({
+ url: '/management/cwLogsotocsFeesMaterial/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/cwNewAttendance.js b/evo-tech-ui/src/api/management/cwNewAttendance.js
new file mode 100644
index 0000000..a9df35b
--- /dev/null
+++ b/evo-tech-ui/src/api/management/cwNewAttendance.js
@@ -0,0 +1,65 @@
+import request from '@/utils/request'
+
+// 查询新考勤记录列表
+export function listCwNewAttendance(query) {
+ return request({
+ url: '/management/cwNewAttendance/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询新考勤记录详细
+export function getCwNewAttendance(id) {
+ return request({
+ url: '/management/cwNewAttendance/' + id,
+ method: 'get'
+ })
+}
+
+// 新增新考勤记录
+export function addCwNewAttendance(data) {
+ return request({
+ url: '/management/cwNewAttendance',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改新考勤记录
+export function updateCwNewAttendance(data) {
+ return request({
+ url: '/management/cwNewAttendance',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除新考勤记录
+export function delCwNewAttendance(id) {
+ return request({
+ url: '/management/cwNewAttendance/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出新考勤记录
+export function exportCwNewAttendance(query) {
+ return request({
+ url: '/management/cwNewAttendance/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//上传考勤记录信息文件
+export function uploadAttendanceFile(data){
+ return request({
+ url:'/management/cwNewAttendance/uploadAttendanceFile',
+ data:data,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ },
+ method:'post'
+ })
+}
diff --git a/evo-tech-ui/src/api/management/cwNewAttendanceStatistical.js b/evo-tech-ui/src/api/management/cwNewAttendanceStatistical.js
new file mode 100644
index 0000000..5cdbdef
--- /dev/null
+++ b/evo-tech-ui/src/api/management/cwNewAttendanceStatistical.js
@@ -0,0 +1,69 @@
+import request from '@/utils/request'
+
+// 查询考勤记录统计列表
+export function listCwNewAttendanceStatistical(query) {
+ return request({
+ url: '/management/cwNewAttendanceStatistical/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询考勤记录统计详细
+export function getCwNewAttendanceStatistical(id) {
+ return request({
+ url: '/management/cwNewAttendanceStatistical/' + id,
+ method: 'get'
+ })
+}
+
+// 新增考勤记录统计
+export function addCwNewAttendanceStatistical(data) {
+ return request({
+ url: '/management/cwNewAttendanceStatistical',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改考勤记录统计
+export function updateCwNewAttendanceStatistical(data) {
+ return request({
+ url: '/management/cwNewAttendanceStatistical',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除考勤记录统计
+export function delCwNewAttendanceStatistical(id) {
+ return request({
+ url: '/management/cwNewAttendanceStatistical/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出考勤记录统计
+export function exportCwNewAttendanceStatistical(query) {
+ return request({
+ url: '/management/cwNewAttendanceStatistical/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//打印单据按钮(申请人打印)
+export function prints() {
+ return request({
+ url: '/management/cwNewAttendanceStatistical/prints',
+ method: 'get'
+ })
+}
+
+
+export function reviseInfos(date) {
+ return request({
+ url: '/management/cwNewAttendanceStatistical/reviseInfos/' + date,
+ method: 'delete'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/deptOrProcess.js b/evo-tech-ui/src/api/management/deptOrProcess.js
new file mode 100644
index 0000000..d32ce94
--- /dev/null
+++ b/evo-tech-ui/src/api/management/deptOrProcess.js
@@ -0,0 +1,68 @@
+import request from '@/utils/request'
+
+// 查询工序部门列表
+export function listDept(query) {
+ return request({
+ url: '/management/deptOrProcess/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询工序部门详细
+export function getDept(id) {
+ return request({
+ url: '/management/deptOrProcess/' + id,
+ method: 'get'
+ })
+}
+
+// 新增工序部门
+export function addDept(data) {
+ return request({
+ url: '/management/deptOrProcess',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改工序部门
+export function updateDept(data) {
+ return request({
+ url: '/management/deptOrProcess',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除工序部门
+export function delDept(id) {
+ return request({
+ url: '/management/deptOrProcess/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出工序部门
+export function exportDept(query) {
+ return request({
+ url: '/management/deptOrProcess/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//根据工序名称查询部门
+export function queryProcessAndDept(processName) {
+ return request({
+ url: '/management/deptOrProcess/dept/' + processName,
+ method: 'get'
+ })
+}
+
+export function listDeptAll() {
+ return request({
+ url: '/management/deptOrProcess/listAll',
+ method: 'get',
+ })
+}
diff --git a/evo-tech-ui/src/api/management/detent.js b/evo-tech-ui/src/api/management/detent.js
new file mode 100644
index 0000000..4f9d8e6
--- /dev/null
+++ b/evo-tech-ui/src/api/management/detent.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询制动器型号列表
+export function listDetent(query) {
+ return request({
+ url: '/management/detent/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询制动器型号详细
+export function getDetent(id) {
+ return request({
+ url: '/management/detent/' + id,
+ method: 'get'
+ })
+}
+
+// 新增制动器型号
+export function addDetent(data) {
+ return request({
+ url: '/management/detent',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改制动器型号
+export function updateDetent(data) {
+ return request({
+ url: '/management/detent',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除制动器型号
+export function delDetent(id) {
+ return request({
+ url: '/management/detent/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出制动器型号
+export function exportDetent(query) {
+ return request({
+ url: '/management/detent/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/electricalMachineryAc.js b/evo-tech-ui/src/api/management/electricalMachineryAc.js
new file mode 100644
index 0000000..229c511
--- /dev/null
+++ b/evo-tech-ui/src/api/management/electricalMachineryAc.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询电机AC型号列表
+export function listElectricalMachineryAc(query) {
+ return request({
+ url: '/management/electricalMachineryAc/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询电机AC型号详细
+export function getElectricalMachineryAc(id) {
+ return request({
+ url: '/management/electricalMachineryAc/' + id,
+ method: 'get'
+ })
+}
+
+// 新增电机AC型号
+export function addElectricalMachineryAc(data) {
+ return request({
+ url: '/management/electricalMachineryAc',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改电机AC型号
+export function updateElectricalMachineryAc(data) {
+ return request({
+ url: '/management/electricalMachineryAc',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除电机AC型号
+export function delElectricalMachineryAc(id) {
+ return request({
+ url: '/management/electricalMachineryAc/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出电机AC型号
+export function exportElectricalMachineryAc(query) {
+ return request({
+ url: '/management/electricalMachineryAc/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/evoOperatorType.js b/evo-tech-ui/src/api/management/evoOperatorType.js
new file mode 100644
index 0000000..df82b91
--- /dev/null
+++ b/evo-tech-ui/src/api/management/evoOperatorType.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询操作员类型列表
+export function listJd(query) {
+ return request({
+ url: '/management/evoOperatorType/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询操作员类型详细
+export function getJd(id) {
+ return request({
+ url: '/management/evoOperatorType/' + id,
+ method: 'get'
+ })
+}
+
+// 新增操作员类型
+export function addJd(data) {
+ return request({
+ url: '/management/evoOperatorType',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改操作员类型
+export function updateJd(data) {
+ return request({
+ url: '/management/evoOperatorType',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除操作员类型
+export function delJd(id) {
+ return request({
+ url: '/management/evoOperatorType/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出操作员类型
+export function exportJd(query) {
+ return request({
+ url: '/management/evoOperatorType/export',
+ method: 'get',
+ params: query
+ })
+}
diff --git a/evo-tech-ui/src/api/management/fTypeReducer.js b/evo-tech-ui/src/api/management/fTypeReducer.js
new file mode 100644
index 0000000..0e93191
--- /dev/null
+++ b/evo-tech-ui/src/api/management/fTypeReducer.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询F型减速机型号列表
+export function listFTypeReducer(query) {
+ return request({
+ url: '/management/fTypeReducer/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询F型减速机型号详细
+export function getFTypeReducer(id) {
+ return request({
+ url: '/management/fTypeReducer/' + id,
+ method: 'get'
+ })
+}
+
+// 新增F型减速机型号
+export function addFTypeReducer(data) {
+ return request({
+ url: '/management/fTypeReducer',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改F型减速机型号
+export function updateFTypeReducer(data) {
+ return request({
+ url: '/management/fTypeReducer',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除F型减速机型号
+export function delFTypeReducer(id) {
+ return request({
+ url: '/management/fTypeReducer/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出F型减速机型号
+export function exportFTypeReducer(query) {
+ return request({
+ url: '/management/fTypeReducer/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/fireCurtainDampingDrive.js b/evo-tech-ui/src/api/management/fireCurtainDampingDrive.js
new file mode 100644
index 0000000..7a64a38
--- /dev/null
+++ b/evo-tech-ui/src/api/management/fireCurtainDampingDrive.js
@@ -0,0 +1,62 @@
+import request from '@/utils/request'
+
+// 查询防火隔离幕阻尼驱动型号列表
+export function listFireCurtainDampingDrive(query) {
+ return request({
+ url: '/management/fireCurtainDampingDrive/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询防火隔离幕阻尼驱动型号详细
+export function getFireCurtainDampingDrive(id) {
+ return request({
+ url: '/management/fireCurtainDampingDrive/' + id,
+ method: 'get'
+ })
+}
+
+// 新增防火隔离幕阻尼驱动型号
+export function addFireCurtainDampingDrive(data) {
+ return request({
+ url: '/management/fireCurtainDampingDrive',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改防火隔离幕阻尼驱动型号
+export function updateFireCurtainDampingDrive(data) {
+ return request({
+ url: '/management/fireCurtainDampingDrive',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除防火隔离幕阻尼驱动型号
+export function delFireCurtainDampingDrive(id) {
+ return request({
+ url: '/management/fireCurtainDampingDrive/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出防火隔离幕阻尼驱动型号
+export function exportFireCurtainDampingDrive(query) {
+ return request({
+ url: '/management/fireCurtainDampingDrive/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询型号价格
+export function getFireCurtainDampingDriveByType(query) {
+ return request({
+ url: '/management/fireCurtainDampingDrive/getFireCurtainDampingDriveByType',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/hooksCoupling.js b/evo-tech-ui/src/api/management/hooksCoupling.js
new file mode 100644
index 0000000..cc2c07b
--- /dev/null
+++ b/evo-tech-ui/src/api/management/hooksCoupling.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询万向连轴器型号列表
+export function listHooksCoupling(query) {
+ return request({
+ url: '/management/hooksCoupling/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询万向连轴器型号详细
+export function getHooksCoupling(id) {
+ return request({
+ url: '/management/hooksCoupling/' + id,
+ method: 'get'
+ })
+}
+
+// 新增万向连轴器型号
+export function addHooksCoupling(data) {
+ return request({
+ url: '/management/hooksCoupling',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改万向连轴器型号
+export function updateHooksCoupling(data) {
+ return request({
+ url: '/management/hooksCoupling',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除万向连轴器型号
+export function delHooksCoupling(id) {
+ return request({
+ url: '/management/hooksCoupling/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出万向连轴器型号
+export function exportHooksCoupling(query) {
+ return request({
+ url: '/management/hooksCoupling/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/imDeliveryUnit.js b/evo-tech-ui/src/api/management/imDeliveryUnit.js
new file mode 100644
index 0000000..78f8d80
--- /dev/null
+++ b/evo-tech-ui/src/api/management/imDeliveryUnit.js
@@ -0,0 +1,62 @@
+import request from '@/utils/request'
+
+// 查询交货单位列表
+export function listImDeliveryUnit(query) {
+ return request({
+ url: '/management/imDeliveryUnit/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询交货单位详细
+export function getImDeliveryUnit(id) {
+ return request({
+ url: '/management/imDeliveryUnit/' + id,
+ method: 'get'
+ })
+}
+
+// 新增交货单位
+export function addImDeliveryUnit(data) {
+ return request({
+ url: '/management/imDeliveryUnit',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改交货单位
+export function updateImDeliveryUnit(data) {
+ return request({
+ url: '/management/imDeliveryUnit',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除交货单位
+export function delImDeliveryUnit(id) {
+ return request({
+ url: '/management/imDeliveryUnit/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出交货单位
+export function exportImDeliveryUnit(query) {
+ return request({
+ url: '/management/imDeliveryUnit/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//部门列表
+export function getDeptList(query) {
+ return request({
+ url: '/system/dept/list',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/imLogistics.js b/evo-tech-ui/src/api/management/imLogistics.js
new file mode 100644
index 0000000..48ff55b
--- /dev/null
+++ b/evo-tech-ui/src/api/management/imLogistics.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询物流列表
+export function listImLogistics(query) {
+ return request({
+ url: '/management/imLogistics/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询物流详细
+export function getImLogistics(id) {
+ return request({
+ url: '/management/imLogistics/' + id,
+ method: 'get'
+ })
+}
+
+// 新增物流
+export function addImLogistics(data) {
+ return request({
+ url: '/management/imLogistics',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改物流
+export function updateImLogistics(data) {
+ return request({
+ url: '/management/imLogistics',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除物流
+export function delImLogistics(id) {
+ return request({
+ url: '/management/imLogistics/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出物流
+export function exportImLogistics(query) {
+ return request({
+ url: '/management/imLogistics/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/imMaterial.js b/evo-tech-ui/src/api/management/imMaterial.js
new file mode 100644
index 0000000..fca0898
--- /dev/null
+++ b/evo-tech-ui/src/api/management/imMaterial.js
@@ -0,0 +1,181 @@
+import request from '@/utils/request'
+
+// 查询物料(零件)列表
+export function listImMaterial(query) {
+ return request({
+ url: '/management/imMaterial/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询物料(零件)详细
+export function getImMaterial(id) {
+ return request({
+ url: '/management/imMaterial/' + id,
+ method: 'get'
+ })
+}
+
+// 新增物料(零件)
+export function addImMaterial(data) {
+ return request({
+ url: '/management/imMaterial',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改物料(零件)
+export function updateImMaterial(data) {
+ return request({
+ url: '/management/imMaterial',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除物料(零件)
+export function delImMaterial(id) {
+ return request({
+ url: '/management/imMaterial/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出物料(零件)
+export function exportImMaterial(query) {
+ return request({
+ // url: '/management/imMaterial/export',
+ url: '/management/imMaterial/downLoadZaiTu',
+ method: 'get',
+ // params: query
+ })
+}
+
+//物料类型信息列表
+export function getMaterialTypeList(query) {
+ return request({
+ url: '/management/imMaterialType/list',
+ method: 'get',
+ params: query
+ })
+}
+
+export function getMaterialGroup(query) {
+ return request({
+ url: '/management/materialgroup/list',
+ method: 'get',
+ params: query
+ })
+}
+
+//计量单位信息列表
+export function getMeteringUnitList(query) {
+ return request({
+ url: '/management/imMeteringUnit/list',
+ method: 'get',
+ params: query
+ })
+}
+
+//仓库信息列表
+export function getWarehouseList(query) {
+ return request({
+ url: '/management/imWarehouse/list',
+ method: 'get',
+ params: query
+ })
+}
+
+//供应商信息列表
+export function getSupplierList(query) {
+ return request({
+ url: '/management/imSupplier/list',
+ method: 'get',
+ params: query
+ })
+}
+
+//物料表文件上传
+export function uploadFile(data){
+ return request({
+ url:'/management/imMaterial/upload',
+ data:data,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ },
+ method:'post'
+ })
+}
+
+// 查询执行单列表(根据库存信息的在途数量)
+export function listImMaterialByInventoryDetailId(inventoryDetailId) {
+ return request({
+ url: '/management/imMaterial/listImMaterialByInventoryDetailId/' + inventoryDetailId,
+ method: 'get',
+ })
+}
+
+// 查询物料(零件)列表
+export function listImMaterialByType(query) {
+ return request({
+ url: '/management/imMaterial/listImMaterialByType',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询原材料列表
+export function listImMaterialByYuanCaiLiaoType(query) {
+ return request({
+ url: '/management/imMaterial/getImMaterialListByYuanCaiLiao',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询原材料列表
+export function listImMaterialByJiJianType(query) {
+ return request({
+ url: '/management/imMaterial/getImMaterialListByJiJian',
+ method: 'get',
+ params: query
+ })
+}
+
+//查询易耗品列表
+
+export function listImMaterialByYHP(query) {
+ return request({
+ url: '/management/imMaterial/getImMaterialByYHP',
+ method: 'get',
+ params: query
+ })
+}
+
+
+// 清洗标准件
+export function qingxis() {
+ return request({
+ url: '/management/imMaterial/updateAll',
+ method: 'delete'
+ })
+}
+
+// 查询物料(零件)类型列表
+export function listImMaterialByBuJianAndLingJian(query) {
+ return request({
+ url: '/management/imMaterial/listImMaterialByBuJianAndLingJian',
+ method: 'get',
+ params: query
+ })
+}
+
+// 根据物料名称查询物料信息
+export function getImMaterialByMaterialName(materialName) {
+ return request({
+ url: '/management/imMaterial/getImMaterialByMaterialName/' + materialName,
+ method: 'get'
+ })
+}
diff --git a/evo-tech-ui/src/api/management/imMaterialType.js b/evo-tech-ui/src/api/management/imMaterialType.js
new file mode 100644
index 0000000..059fd87
--- /dev/null
+++ b/evo-tech-ui/src/api/management/imMaterialType.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询物料(零件)类型列表
+export function listImMaterialType(query) {
+ return request({
+ url: '/management/imMaterialType/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询物料(零件)类型详细
+export function getImMaterialType(id) {
+ return request({
+ url: '/management/imMaterialType/' + id,
+ method: 'get'
+ })
+}
+
+// 新增物料(零件)类型
+export function addImMaterialType(data) {
+ return request({
+ url: '/management/imMaterialType',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改物料(零件)类型
+export function updateImMaterialType(data) {
+ return request({
+ url: '/management/imMaterialType',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除物料(零件)类型
+export function delImMaterialType(id) {
+ return request({
+ url: '/management/imMaterialType/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出物料(零件)类型
+export function exportImMaterialType(query) {
+ return request({
+ url: '/management/imMaterialType/export',
+ method: 'get',
+ params: query
+ })
+}
diff --git a/evo-tech-ui/src/api/management/imMeteringUnit.js b/evo-tech-ui/src/api/management/imMeteringUnit.js
new file mode 100644
index 0000000..adc3127
--- /dev/null
+++ b/evo-tech-ui/src/api/management/imMeteringUnit.js
@@ -0,0 +1,61 @@
+import request from '@/utils/request'
+
+// 查询计量单位列表
+export function listImMeteringUnit(query) {
+ return request({
+ url: '/management/imMeteringUnit/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询计量单位详细
+export function getImMeteringUnit(id) {
+ return request({
+ url: '/management/imMeteringUnit/' + id,
+ method: 'get'
+ })
+}
+
+// 新增计量单位
+export function addImMeteringUnit(data) {
+ return request({
+ url: '/management/imMeteringUnit',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改计量单位
+export function updateImMeteringUnit(data) {
+ return request({
+ url: '/management/imMeteringUnit',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除计量单位
+export function delImMeteringUnit(id) {
+ return request({
+ url: '/management/imMeteringUnit/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出计量单位
+export function exportImMeteringUnit(query) {
+ return request({
+ url: '/management/imMeteringUnit/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 获取计量单位列表
+export function getMeteringUnitList() {
+ return request({
+ url: '/management/imMeteringUnit/getUnitList',
+ method: 'get'
+ })
+}
diff --git a/evo-tech-ui/src/api/management/imProductReceipt.js b/evo-tech-ui/src/api/management/imProductReceipt.js
new file mode 100644
index 0000000..410ef3e
--- /dev/null
+++ b/evo-tech-ui/src/api/management/imProductReceipt.js
@@ -0,0 +1,80 @@
+import request from '@/utils/request'
+
+// 查询产品(半成品)入库单列表
+export function listImProductReceipt(query) {
+ return request({
+ url: '/management/imProductReceipt/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询产品(半成品)入库单详细
+export function getImProductReceipt(id) {
+ return request({
+ url: '/management/imProductReceipt/' + id,
+ method: 'get'
+ })
+}
+
+// 新增产品(半成品)入库单
+export function addImProductReceipt(data) {
+ return request({
+ url: '/management/imProductReceipt',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改产品(半成品)入库单
+export function updateImProductReceipt(data) {
+ return request({
+ url: '/management/imProductReceipt',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除产品(半成品)入库单
+export function delImProductReceipt(id) {
+ return request({
+ url: '/management/imProductReceipt/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出产品(半成品)入库单
+export function exportImProductReceipt(query) {
+ return request({
+ url: '/management/imProductReceipt/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//交货单位列表
+export function getDeliveryUnitList(query) {
+ return request({
+ url: '/management/imDeliveryUnit/list',
+ method: 'get',
+ params: query
+ })
+}
+
+//外协合同列表
+export function getOutsourcingContractList(query) {
+ return request({
+ url: '/management/outsourcingContract/selectByContractStatus',
+ method: 'get',
+ params: query
+ })
+}
+
+//销售合同列表
+export function getContractList(query) {
+ return request({
+ url: '/management/contract/selectByContractStatus',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/imProductReceiptMaterial.js b/evo-tech-ui/src/api/management/imProductReceiptMaterial.js
new file mode 100644
index 0000000..7c95dce
--- /dev/null
+++ b/evo-tech-ui/src/api/management/imProductReceiptMaterial.js
@@ -0,0 +1,86 @@
+import request from '@/utils/request'
+
+// 查询物料产品入库单关联列表
+export function listImProductReceiptMaterial(query) {
+ return request({
+ url: '/management/imProductReceiptMaterial/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询物料产品入库单关联详细
+export function getImProductReceiptMaterial(id) {
+ return request({
+ url: '/management/imProductReceiptMaterial/' + id,
+ method: 'get'
+ })
+}
+
+// 新增物料产品入库单关联
+export function addImProductReceiptMaterial(data) {
+ return request({
+ url: '/management/imProductReceiptMaterial',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改物料产品入库单关联
+export function updateImProductReceiptMaterial(data) {
+ return request({
+ url: '/management/imProductReceiptMaterial',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除物料产品入库单关联
+export function delImProductReceiptMaterial(id) {
+ return request({
+ url: '/management/imProductReceiptMaterial/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出物料产品入库单关联
+export function exportImProductReceiptMaterial(query) {
+ return request({
+ url: '/management/imProductReceiptMaterial/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 确认入库按钮
+export function affirms(id) {
+ return request({
+ url: '/management/imProductReceiptMaterial/affirms/' + id,
+ method: 'get'
+ })
+}
+
+//打印单据按钮
+export function prints(id) {
+ return request({
+ url: '/management/imProductReceiptMaterial/prints/' + id,
+ method: 'get'
+ })
+}
+
+//打印单据按钮(申请人打印)
+export function printsProposer(id) {
+ return request({
+ url: '/management/imProductReceiptMaterial/printsProposer/' + id,
+ method: 'get'
+ })
+}
+
+// 修改物料产品入库单关联
+export function updateImProductReceiptMaterialjiage(data) {
+ return request({
+ url: '/management/imProductReceiptMaterial/editjiage',
+ method: 'post',
+ data: data
+ })
+}
diff --git a/evo-tech-ui/src/api/management/imProductStockRequistion.js b/evo-tech-ui/src/api/management/imProductStockRequistion.js
new file mode 100644
index 0000000..65a7399
--- /dev/null
+++ b/evo-tech-ui/src/api/management/imProductStockRequistion.js
@@ -0,0 +1,71 @@
+import request from '@/utils/request'
+
+// 查询销售出库单列表
+export function listImProductStockRequistion(query) {
+ return request({
+ url: '/management/imProductStockRequistion/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询销售出库单详细
+export function getImProductStockRequistion(id) {
+ return request({
+ url: '/management/imProductStockRequistion/' + id,
+ method: 'get'
+ })
+}
+
+// 新增销售出库单
+export function addImProductStockRequistion(data) {
+ return request({
+ url: '/management/imProductStockRequistion',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改销售出库单
+export function updateImProductStockRequistion(data) {
+ return request({
+ url: '/management/imProductStockRequistion',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除销售出库单
+export function delImProductStockRequistion(id) {
+ return request({
+ url: '/management/imProductStockRequistion/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出销售出库单
+export function exportImProductStockRequistion(query) {
+ return request({
+ url: '/management/imProductStockRequistion/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//销售合同列表
+// export function getContractList(query) {
+// return request({
+// url: '/management/contract/selectByContractStatus',
+// method: 'get',
+// params: query
+// })
+// }
+
+//销售合同列表
+export function getLogisticsList(query) {
+ return request({
+ url: '/management/imLogistics/list',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/imPurchaseReceipt.js b/evo-tech-ui/src/api/management/imPurchaseReceipt.js
new file mode 100644
index 0000000..1acd480
--- /dev/null
+++ b/evo-tech-ui/src/api/management/imPurchaseReceipt.js
@@ -0,0 +1,80 @@
+import request from '@/utils/request'
+
+// 查询采购入库单列表
+export function listImPurchaseReceipt(query) {
+ return request({
+ url: '/management/imPurchaseReceipt/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询采购入库单详细
+export function getImPurchaseReceipt(id) {
+ return request({
+ url: '/management/imPurchaseReceipt/' + id,
+ method: 'get'
+ })
+}
+
+// 新增采购入库单
+export function addImPurchaseReceipt(data) {
+ return request({
+ url: '/management/imPurchaseReceipt',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改采购入库单
+export function updateImPurchaseReceipt(data) {
+ return request({
+ url: '/management/imPurchaseReceipt',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除采购入库单
+export function delImPurchaseReceipt(id) {
+ return request({
+ url: '/management/imPurchaseReceipt/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出采购入库单
+export function exportImPurchaseReceipt(query) {
+ return request({
+ url: '/management/imPurchaseReceipt/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//供应商信息列表
+export function getSupplierList(query) {
+ return request({
+ url: '/management/imSupplier/list',
+ method: 'get',
+ params: query
+ })
+}
+
+//采购合同信息列表
+export function getpurchaseContractList(query) {
+ return request({
+ url: '/management/purchaseContract/selectByStatus',
+ method: 'get',
+ params: query
+ })
+}
+
+//采购单信息列表
+export function getbuyingRequisitionCodeList(query) {
+ return request({
+ url: '/management/buyingRequisition/getPwBuyingRequisitionByStatus',
+ method: 'get',
+ params: query
+ })
+}
diff --git a/evo-tech-ui/src/api/management/imPurchaseReceiptMaterial.js b/evo-tech-ui/src/api/management/imPurchaseReceiptMaterial.js
new file mode 100644
index 0000000..f58da23
--- /dev/null
+++ b/evo-tech-ui/src/api/management/imPurchaseReceiptMaterial.js
@@ -0,0 +1,62 @@
+import request from '@/utils/request'
+
+// 查询物料采购入库单关联列表
+export function listImPurchaseReceiptMaterial(query) {
+ return request({
+ url: '/management/imPurchaseReceiptMaterial/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询物料采购入库单关联详细
+export function getImPurchaseReceiptMaterial(id) {
+ return request({
+ url: '/management/imPurchaseReceiptMaterial/' + id,
+ method: 'get'
+ })
+}
+
+// 新增物料采购入库单关联
+export function addImPurchaseReceiptMaterial(data) {
+ return request({
+ url: '/management/imPurchaseReceiptMaterial',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改物料采购入库单关联
+export function updateImPurchaseReceiptMaterial(data) {
+ return request({
+ url: '/management/imPurchaseReceiptMaterial',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除物料采购入库单关联
+export function delImPurchaseReceiptMaterial(id) {
+ return request({
+ url: '/management/imPurchaseReceiptMaterial/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出物料采购入库单关联
+export function exportImPurchaseReceiptMaterial(query) {
+ return request({
+ url: '/management/imPurchaseReceiptMaterial/export',
+ method: 'get',
+ params: query
+ })
+}
+
+export function getMaterialList(query) {
+ return request({
+ url: '/management/imPurchaseReceipt/getMaterialList',
+ method: 'get',
+ params: query
+ })
+}
+
diff --git a/evo-tech-ui/src/api/management/imStockRequisition.js b/evo-tech-ui/src/api/management/imStockRequisition.js
new file mode 100644
index 0000000..36714d4
--- /dev/null
+++ b/evo-tech-ui/src/api/management/imStockRequisition.js
@@ -0,0 +1,71 @@
+import request from '@/utils/request'
+
+// 查询领料单列表
+export function listImStockRequisition(query) {
+ return request({
+ url: '/management/imStockRequisition/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询领料单详细
+export function getImStockRequisition(id) {
+ return request({
+ url: '/management/imStockRequisition/' + id,
+ method: 'get'
+ })
+}
+
+// 新增领料单
+export function addImStockRequisition(data) {
+ return request({
+ url: '/management/imStockRequisition',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改领料单
+export function updateImStockRequisition(data) {
+ return request({
+ url: '/management/imStockRequisition',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除领料单
+export function delImStockRequisition(id) {
+ return request({
+ url: '/management/imStockRequisition/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出领料单
+export function exportImStockRequisition(query) {
+ return request({
+ url: '/management/imStockRequisition/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//部门列表
+export function getDeptList(query) {
+ return request({
+ url: '/system/dept/list',
+ method: 'get',
+ params: query
+ })
+}
+
+//人员信息列表
+export function getUserList(query) {
+ return request({
+ url: '/system/user/list',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/imStockRequisitionMaterial.js b/evo-tech-ui/src/api/management/imStockRequisitionMaterial.js
new file mode 100644
index 0000000..493404b
--- /dev/null
+++ b/evo-tech-ui/src/api/management/imStockRequisitionMaterial.js
@@ -0,0 +1,85 @@
+import request from '@/utils/request'
+
+// 查询物料和物料出库单关联列表
+export function listImStockRequisitionMaterial(query) {
+ return request({
+ url: '/management/imStockRequisitionMaterial/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询物料和物料出库单关联详细
+export function getImStockRequisitionMaterial(id) {
+ return request({
+ url: '/management/imStockRequisitionMaterial/' + id,
+ method: 'get'
+ })
+}
+
+// 新增物料和物料出库单关联
+export function addImStockRequisitionMaterial(data) {
+ return request({
+ url: '/management/imStockRequisitionMaterial',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改物料和物料出库单关联
+export function updateImStockRequisitionMaterial(data) {
+ return request({
+ url: '/management/imStockRequisitionMaterial',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除物料和物料出库单关联
+export function delImStockRequisitionMaterial(id) {
+ return request({
+ url: '/management/imStockRequisitionMaterial/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出物料和物料出库单关联
+export function exportImStockRequisitionMaterial(query) {
+ return request({
+ url: '/management/imStockRequisitionMaterial/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 一键确认出库
+export function affirmsAll(id) {
+ return request({
+ url: '/management/imStockRequisitionMaterial/affirmsAll/' + id,
+ method: 'get'
+ })
+}
+
+// 单个确认出库
+export function affirmOne(id) {
+ return request({
+ url: '/management/imStockRequisitionMaterial/affirmOne/' + id,
+ method: 'get'
+ })
+}
+
+//打印单据按钮
+export function prints(id) {
+ return request({
+ url: '/management/imStockRequisitionMaterial/prints/' + id,
+ method: 'get'
+ })
+}
+
+//退库按钮
+export function handBacks(id) {
+ return request({
+ url: '/management/imStockRequisitionMaterial/handBacks/' + id,
+ method: 'get'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/imSupplier.js b/evo-tech-ui/src/api/management/imSupplier.js
new file mode 100644
index 0000000..c46e7f7
--- /dev/null
+++ b/evo-tech-ui/src/api/management/imSupplier.js
@@ -0,0 +1,69 @@
+import request from '@/utils/request'
+
+// 查询供应商列表
+export function listImSupplier(query) {
+ return request({
+ url: '/management/imSupplier/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询供应商详细
+export function getImSupplier(id) {
+ return request({
+ url: '/management/imSupplier/' + id,
+ method: 'get'
+ })
+}
+
+// 新增供应商
+export function addImSupplier(data) {
+ return request({
+ url: '/management/imSupplier',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改供应商
+export function updateImSupplier(data) {
+ return request({
+ url: '/management/imSupplier',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除供应商
+export function delImSupplier(id) {
+ return request({
+ url: '/management/imSupplier/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出供应商
+export function exportImSupplier(query) {
+ return request({
+ url: '/management/imSupplier/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//供应商类型信息列表
+export function getSupplierTypeList(query) {
+ return request({
+ url: '/management/imSupplierType/list',
+ method: 'get',
+ params: query
+ })
+}
+
+export function getImSuppliers() {
+ return request({
+ url: '/management/imSupplier/getImSuppliers',
+ method: 'get'
+ })
+}
diff --git a/evo-tech-ui/src/api/management/imSupplierType.js b/evo-tech-ui/src/api/management/imSupplierType.js
new file mode 100644
index 0000000..48b5889
--- /dev/null
+++ b/evo-tech-ui/src/api/management/imSupplierType.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询供应商类型列表
+export function listImSupplierType(query) {
+ return request({
+ url: '/management/imSupplierType/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询供应商类型详细
+export function getImSupplierType(id) {
+ return request({
+ url: '/management/imSupplierType/' + id,
+ method: 'get'
+ })
+}
+
+// 新增供应商类型
+export function addImSupplierType(data) {
+ return request({
+ url: '/management/imSupplierType',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改供应商类型
+export function updateImSupplierType(data) {
+ return request({
+ url: '/management/imSupplierType',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除供应商类型
+export function delImSupplierType(id) {
+ return request({
+ url: '/management/imSupplierType/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出供应商类型
+export function exportImSupplierType(query) {
+ return request({
+ url: '/management/imSupplierType/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/imWarehouse.js b/evo-tech-ui/src/api/management/imWarehouse.js
new file mode 100644
index 0000000..65589e7
--- /dev/null
+++ b/evo-tech-ui/src/api/management/imWarehouse.js
@@ -0,0 +1,62 @@
+import request from '@/utils/request'
+
+// 查询仓库列表
+export function listImWarehouse(query) {
+ return request({
+ url: '/management/imWarehouse/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询仓库详细
+export function getImWarehouse(id) {
+ return request({
+ url: '/management/imWarehouse/' + id,
+ method: 'get'
+ })
+}
+
+// 新增仓库
+export function addImWarehouse(data) {
+ return request({
+ url: '/management/imWarehouse',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改仓库
+export function updateImWarehouse(data) {
+ return request({
+ url: '/management/imWarehouse',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除仓库
+export function delImWarehouse(id) {
+ return request({
+ url: '/management/imWarehouse/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出仓库
+export function exportImWarehouse(query) {
+ return request({
+ url: '/management/imWarehouse/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//人员信息列表
+export function getUserList(query) {
+ return request({
+ url: '/system/user/list',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/inoutstorage.js b/evo-tech-ui/src/api/management/inoutstorage.js
new file mode 100644
index 0000000..d045809
--- /dev/null
+++ b/evo-tech-ui/src/api/management/inoutstorage.js
@@ -0,0 +1,77 @@
+import request from '@/utils/request'
+
+// 查询物品出入库管理列表
+export function listInoutstorage(query) {
+ return request({
+ url: '/management/inoutstorage/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询物品出入库管理详细
+export function getInoutstorage(id) {
+ return request({
+ url: '/management/inoutstorage/' + id,
+ method: 'get'
+ })
+}
+
+// 新增物品出入库管理
+export function addInoutstorage(data) {
+ return request({
+ url: '/management/inoutstorage',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改物品出入库管理
+export function updateInoutstorage(data) {
+ return request({
+ url: '/management/inoutstorage',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除物品出入库管理
+export function delInoutstorage(id) {
+ return request({
+ url: '/management/inoutstorage/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出物品出入库管理
+export function exportInoutstorage(query) {
+ return request({
+ url: '/management/inoutstorage/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 审核
+export function auditInoutStorage(id) {
+ return request({
+ url: '/management/inoutstorage/audit/' + id,
+ method: 'get'
+ })
+}
+
+// 出入库确定
+export function inoutStorageDetermine(id) {
+ return request({
+ url: '/management/inoutstorage/determine/' + id,
+ method: 'get'
+ })
+}
+
+// 退料质检
+export function materialReturn(id) {
+ return request({
+ url: '/management/inoutstorage/materialReturn/' + id,
+ method: 'get'
+ })
+}
diff --git a/evo-tech-ui/src/api/management/inventoryDetail.js b/evo-tech-ui/src/api/management/inventoryDetail.js
new file mode 100644
index 0000000..9714efb
--- /dev/null
+++ b/evo-tech-ui/src/api/management/inventoryDetail.js
@@ -0,0 +1,84 @@
+import request from '@/utils/request'
+
+// 查询库存明细列表
+export function listInventoryDetail(query) {
+ return request({
+ url: '/management/inventoryDetail/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询库存明细详细
+export function getInventoryDetail(id) {
+ return request({
+ url: '/management/inventoryDetail/' + id,
+ method: 'get'
+ })
+}
+
+// 新增库存明细
+export function addInventoryDetail(data) {
+ return request({
+ url: '/management/inventoryDetail',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改库存明细
+export function updateInventoryDetail(data) {
+ return request({
+ url: '/management/inventoryDetail',
+ method: 'put',
+ data: data
+ })
+}
+
+
+// 删除库存明细
+export function delInventoryDetail(id) {
+ return request({
+ url: '/management/inventoryDetail/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出库存明细
+export function exportInventoryDetail(query) {
+ return request({
+ url: '/management/inventoryDetail/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 盘库按钮
+export function collateInventory(data) {
+ return request({
+ url: '/management/pankuRecord/collateInventory',
+ method: 'get',
+ params: data
+ })
+}
+
+//上传库存信息文件
+export function uploadInventoryDetailFile(data){
+ return request({
+ url:'/management/inventoryDetail/uploadInventoryDetailFile',
+ data:data,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ },
+ method:'post'
+ })
+}
+
+//报废按钮
+export function scrapsubmitForms(data) {
+ return request({
+ url: '/management/inventoryDetail/scrapsubmitForms',
+ method: 'post',
+ data: data
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/issue.js b/evo-tech-ui/src/api/management/issue.js
new file mode 100644
index 0000000..be7c5a7
--- /dev/null
+++ b/evo-tech-ui/src/api/management/issue.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询安全库存出单列表
+export function listIssue(query) {
+ return request({
+ url: '/management/issue/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询安全库存出单详细
+export function getIssue(id) {
+ return request({
+ url: '/management/issue/' + id,
+ method: 'get'
+ })
+}
+
+// 新增安全库存出单
+export function addIssue(data) {
+ return request({
+ url: '/management/issue',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改安全库存出单
+export function updateIssue(data) {
+ return request({
+ url: '/management/issue',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除安全库存出单
+export function delIssue(id) {
+ return request({
+ url: '/management/issue/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出安全库存出单
+export function exportIssue(query) {
+ return request({
+ url: '/management/issue/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/items.js b/evo-tech-ui/src/api/management/items.js
new file mode 100644
index 0000000..d6c42b5
--- /dev/null
+++ b/evo-tech-ui/src/api/management/items.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询费用项目列表
+export function listItems(query) {
+ return request({
+ url: '/management/items/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询费用项目详细
+export function getItems(id) {
+ return request({
+ url: '/management/items/' + id,
+ method: 'get'
+ })
+}
+
+// 新增费用项目
+export function addItems(data) {
+ return request({
+ url: '/management/items',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改费用项目
+export function updateItems(data) {
+ return request({
+ url: '/management/items',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除费用项目
+export function delItems(id) {
+ return request({
+ url: '/management/items/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出费用项目
+export function exportItems(query) {
+ return request({
+ url: '/management/items/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/jdBomRecord.js b/evo-tech-ui/src/api/management/jdBomRecord.js
new file mode 100644
index 0000000..45320ee
--- /dev/null
+++ b/evo-tech-ui/src/api/management/jdBomRecord.js
@@ -0,0 +1,34 @@
+import request from '@/utils/request'
+
+// 查询金蝶BOM记录列表
+export function listRecord(query) {
+ return request({
+ url: '/management/jdBomRecord/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询金蝶BOM记录详细
+export function upLoadRecord(id) {
+ return request({
+ url: '/management/jdBomRecord/' + id,
+ method: 'get'
+ })
+}
+
+// 新增金蝶工序BOM记录
+export function updateRecord(id) {
+ return request({
+ url: '/management/jdBomRecord/update/' + id,
+ method: 'get'
+ })
+}
+
+//投放计划订单功能
+export function placementOrder() {
+ return request({
+ url: '/management/jdBomRecord/placementOrder',
+ method: 'get',
+ })
+}
diff --git a/evo-tech-ui/src/api/management/jdProcessBom.js b/evo-tech-ui/src/api/management/jdProcessBom.js
new file mode 100644
index 0000000..6aeaf23
--- /dev/null
+++ b/evo-tech-ui/src/api/management/jdProcessBom.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询金蝶工序BOM记录列表
+export function listjdProcessBom(query) {
+ return request({
+ url: '/management/jdProcessBom/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 新增金蝶工序BOM记录
+export function addjdProcessBom(id) {
+ return request({
+ url: '/management/jdProcessBom/audit/' + id,
+ method: 'get'
+ })
+}
+
+
+// 查询金蝶工序BOM记录详细
+export function getjdProcessBom(id) {
+ return request({
+ url: '/management/jdProcessBom/' + id,
+ method: 'get'
+ })
+}
+
+// 修改金蝶工序BOM记录
+export function updatejdProcessBom(data) {
+ return request({
+ url: '/management/jdProcessBom',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除金蝶工序BOM记录
+export function deljdProcessBom(id) {
+ return request({
+ url: '/management/jdProcessBom/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出金蝶工序BOM记录
+export function exportjdProcessBom(query) {
+ return request({
+ url: '/management/jdProcessBom/export',
+ method: 'get',
+ params: query
+ })
+}
diff --git a/evo-tech-ui/src/api/management/jdReceiptsDataInfo.js b/evo-tech-ui/src/api/management/jdReceiptsDataInfo.js
new file mode 100644
index 0000000..0a9d510
--- /dev/null
+++ b/evo-tech-ui/src/api/management/jdReceiptsDataInfo.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询财务系统数据信息列表
+export function listJdReceiptsDataInfo(query) {
+ return request({
+ url: '/management/jdReceiptsDataInfo/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询财务系统数据信息详细
+export function getJdReceiptsDataInfo(id) {
+ return request({
+ url: '/management/jdReceiptsDataInfo/' + id,
+ method: 'get'
+ })
+}
+
+// 新增财务系统数据信息
+export function addJdReceiptsDataInfo(data) {
+ return request({
+ url: '/management/jdReceiptsDataInfo',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改财务系统数据信息
+export function updateJdReceiptsDataInfo(data) {
+ return request({
+ url: '/management/jdReceiptsDataInfo',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除财务系统数据信息
+export function delJdReceiptsDataInfo(id) {
+ return request({
+ url: '/management/jdReceiptsDataInfo/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出财务系统数据信息
+export function exportJdReceiptsDataInfo(query) {
+ return request({
+ url: '/management/jdReceiptsDataInfo/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/letterOfAdvice.js b/evo-tech-ui/src/api/management/letterOfAdvice.js
new file mode 100644
index 0000000..9509c9d
--- /dev/null
+++ b/evo-tech-ui/src/api/management/letterOfAdvice.js
@@ -0,0 +1,117 @@
+import request from '@/utils/request'
+
+// 查询发运通知单列表
+export function listLetterOfAdvice(query) {
+ return request({
+ url: '/management/letterOfAdvice/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询发运通知单详细
+export function getLetterOfAdvice(id) {
+ return request({
+ url: '/management/letterOfAdvice/' + id,
+ method: 'get'
+ })
+}
+
+// 新增发运通知单
+export function addLetterOfAdvice(data) {
+ return request({
+ url: '/management/letterOfAdvice',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改发运通知单
+export function updateLetterOfAdvice(data) {
+ return request({
+ url: '/management/letterOfAdvice',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除发运通知单
+export function delLetterOfAdvice(id) {
+ return request({
+ url: '/management/letterOfAdvice/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出发运通知单
+export function exportLetterOfAdvice(query) {
+ return request({
+ url: '/management/letterOfAdvice/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//销售合同列表
+export function getContractList(query) {
+ return request({
+ url: '/management/contract/selectByContractStatus',
+ method: 'get',
+ params: query
+ })
+}
+
+// 财务审核发运通知单
+export function editFinancialAudits(data) {
+ return request({
+ url: '/management/letterOfAdvice/editFinancialAudits',
+ method: 'put',
+ data: data
+ })
+}
+
+// 领导审核发运通知单
+export function editRatifys(id) {
+ return request({
+ url: '/management/letterOfAdvice/editRatifys/' + id,
+ method: 'delete'
+ })
+}
+
+// 领导审核发运通知单
+export function editStatuss(id) {
+ return request({
+ url: '/management/letterOfAdvice/editStatuss/' + id,
+ method: 'delete'
+ })
+}
+
+//出库
+export function createProductStockRequistion(query) {
+ return request({
+ url: '/management/imProductStockRequistion/createProductStockRequistion',
+ method: 'post',
+ params: query
+ })
+}
+
+//打印单据按钮
+export function prints(id) {
+ return request({
+ url: '/management/letterOfAdvice/prints/' + id,
+ method: 'get'
+ })
+}
+
+
+//上传签收单
+export function uploadPDF(data){
+ return request({
+ url:'/management/letterOfAdvice/uploadPDF',
+ data:data,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ },
+ method:'post'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/library.js b/evo-tech-ui/src/api/management/library.js
new file mode 100644
index 0000000..76d0cbf
--- /dev/null
+++ b/evo-tech-ui/src/api/management/library.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询【请填写功能名称】列表
+export function listLibrary(query) {
+ return request({
+ url: '/management/library/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询【请填写功能名称】详细
+export function getLibrary(id) {
+ return request({
+ url: '/management/library/' + id,
+ method: 'get'
+ })
+}
+
+// 新增【请填写功能名称】
+export function addLibrary(data) {
+ return request({
+ url: '/management/library',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改【请填写功能名称】
+export function updateLibrary(data) {
+ return request({
+ url: '/management/library',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除【请填写功能名称】
+export function delLibrary(id) {
+ return request({
+ url: '/management/library/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出【请填写功能名称】
+export function exportLibrary(query) {
+ return request({
+ url: '/management/library/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/makeDocuments.js b/evo-tech-ui/src/api/management/makeDocuments.js
new file mode 100644
index 0000000..d5117b4
--- /dev/null
+++ b/evo-tech-ui/src/api/management/makeDocuments.js
@@ -0,0 +1,121 @@
+import request from '@/utils/request'
+
+// 查询库存制作单列表
+export function listMakeDocuments(query) {
+ return request({
+ url: '/management/makeDocuments/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询库存制作单详细
+export function getMakeDocuments(id) {
+ return request({
+ url: '/management/makeDocuments/' + id,
+ method: 'get'
+ })
+}
+
+// 新增库存制作单
+export function addMakeDocuments(data) {
+ return request({
+ url: '/management/makeDocuments',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改库存制作单
+export function updateMakeDocuments(data) {
+ return request({
+ url: '/management/makeDocuments',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除库存制作单
+export function delMakeDocuments(id) {
+ return request({
+ url: '/management/makeDocuments/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出库存制作单
+export function exportMakeDocuments(id) {
+ return request({
+ url: '/management/makeDocuments/export/' + id,
+ method: 'get'
+ })
+}
+
+//审批库预制存清单
+export function editPass(query) {
+ return request({
+ url: '/management/makeDocuments/editPass',
+ method: 'post',
+ params: query
+ })
+}
+
+//打印企标单
+export function prints(id) {
+ return request({
+ url: '/management/makeDocuments/printMakeDocuments/'+id,
+ method: 'get'
+ })
+}
+
+// 查询库存制作单列表(根据库存信息的在途数量)
+export function listMakeDocumentsZaiTuByInventoryDetailId(inventoryDetailId) {
+ return request({
+ url: '/management/makeDocuments/listMakeDocumentsZaiTuByInventoryDetailId/' + inventoryDetailId,
+ method: 'get',
+ })
+}
+
+// 查询库存制作单列表(根据库存信息的在途数量)
+export function listMakeDocumentsYuDingByInventoryDetailId(inventoryDetailId) {
+ return request({
+ url: '/management/makeDocuments/listMakeDocumentsYuDingByInventoryDetailId/' + inventoryDetailId,
+ method: 'get',
+ })
+}
+
+// 删除库存制作单
+export function shoudongs() {
+ return request({
+ url: '/management/makeDocuments/shoudong',
+ method: 'get'
+ })
+}
+
+// 隐藏库存制作单
+export function updateHids(id) {
+ return request({
+ url: '/management/makeDocuments/updateHids/' + id,
+ method: 'delete'
+ })
+}
+
+//Bom文件上传(派工)
+export function uploadDispatchingFile(data){
+ return request({
+ url:'/management/makeDocuments/uploadDispatchings',
+ data:data,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ },
+ method:'post'
+ })
+}
+
+//批量下载图紙
+export function downloads(id) {
+ return request({
+ url: '/management/makeDocuments/downloads/' + id,
+ method: 'get',
+ })
+}
diff --git a/evo-tech-ui/src/api/management/makeDocumentsDetail.js b/evo-tech-ui/src/api/management/makeDocumentsDetail.js
new file mode 100644
index 0000000..ac8c081
--- /dev/null
+++ b/evo-tech-ui/src/api/management/makeDocumentsDetail.js
@@ -0,0 +1,183 @@
+import request from '@/utils/request'
+
+// 查询库存制作单明细列表
+export function listMakeDocumentsDetail(query) {
+ return request({
+ url: '/management/makeDocumentsDetail/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询库存制作单明细详细
+export function getMakeDocumentsDetail(id) {
+ return request({
+ url: '/management/makeDocumentsDetail/' + id,
+ method: 'get'
+ })
+}
+
+// 新增库存制作单明细
+export function addMakeDocumentsDetail(data) {
+ return request({
+ url: '/management/makeDocumentsDetail',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改库存制作单明细
+export function updateMakeDocumentsDetail(data) {
+ return request({
+ url: '/management/makeDocumentsDetail',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除库存制作单明细
+export function delMakeDocumentsDetail(id) {
+ return request({
+ url: '/management/makeDocumentsDetail/' + id,
+ method: 'delete'
+ })
+}
+
+
+// 导出库存制作单明细
+export function exportMakeDocumentsDetail(query) {
+ return request({
+ url: '/management/makeDocumentsDetail/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//下载生产图纸
+export function uploads(id) {
+ return request({
+ url: '/management/makeDocumentsDetail/uploadPDF/' + id,
+ method: 'get',
+ })
+}
+
+// 生成库存清单
+export function updateMakeDocumentsDetails(data) {
+ return request({
+ url: '/management/makeDocumentsDetail/createInventory',
+ method: 'post',
+ data: data
+ })
+}
+
+//清单文件上传
+export function uploadFile(data){
+ return request({
+ url:'/management/makeDocumentsDetail/uploadExcel',
+ data:data,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ },
+ method:'post'
+ })
+}
+
+// 申请入库
+export function storages(data) {
+ return request({
+ url: '/management/makeDocumentsDetail/storages',
+ method: 'put',
+ data: data
+ })
+}
+//毛坯物料申请领料
+export function getWorkblanks(data) {
+ return request({
+ url: '/management/makeDocumentsDetail/getWorkblanks/',
+ method: 'put',
+ data: data
+ })
+}
+
+// 撤销申请质检按钮
+export function revocationBoms(id) {
+ return request({
+ url: '/management/makeDocumentsDetail/revocationBoms/' + id,
+ method: 'delete'
+ })
+}
+
+// 生成库存制作单的原材料的预采购明细表
+export function generateProcurements(id) {
+ return request({
+ url: '/management/makeDocumentsDetail/generateProcurements/' + id,
+ method: 'delete'
+ })
+}
+
+// 撤销申请领料按钮
+export function revocationLingliaos(id) {
+ return request({
+ url: '/management/makeDocumentsDetail/revocationLingliaos/' + id,
+ method: 'delete'
+ })
+}
+
+
+//打印流转单
+export function prints(id) {
+ return request({
+ url: '/management/makeDocumentsDetail/prints/' + id,
+ method: 'get'
+ })
+}
+
+//生成外协合同
+export function addPwOutsourceContracts(data) {
+ return request({
+ url: '/management/makeDocumentsDetail/addPwOutsourceContracts',
+ method: 'put',
+ data: data
+ })
+}
+
+//批量生成外协合同
+export function addPwOutsourceContractsAll(id) {
+ return request({
+ url: '/management/makeDocumentsDetail/addPwOutsourceContractsAll/' + id,
+ method: 'delete'
+ })
+}
+
+export function listPwBomNumberTwoAllQB(query) {
+ return request({
+ url: '/management/makeDocumentsDetail/listPwBomNumberTwoAllQB',
+ method: 'get',
+ params: query
+ })
+}
+
+//物料状态信息
+export function listInfo(id) {
+ return request({
+ url: '/management/makeDocumentsDetail/listInfo/' + id,
+ method: 'delete'
+ })
+}
+
+//生产排产
+export function updateShopScheduling(data) {
+ return request({
+ url: '/management/makeDocumentsDetail/updateShopScheduling',
+ method: 'put',
+ data: data
+ })
+}
+
+export function updateMakeDocumentsDetailpaigong(data) {
+ return request({
+ url: '/management/makeDocumentsDetail/updateMakeDocumentsDetailpaigong',
+ method: 'put',
+ data: data
+ })
+}
diff --git a/evo-tech-ui/src/api/management/materialParams.js b/evo-tech-ui/src/api/management/materialParams.js
new file mode 100644
index 0000000..d5fa407
--- /dev/null
+++ b/evo-tech-ui/src/api/management/materialParams.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询物料参数列表
+export function listParams(query) {
+ return request({
+ url: '/management/materialParams/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询物料参数详细
+export function getParams(id) {
+ return request({
+ url: '/management/materialParams/' + id,
+ method: 'get'
+ })
+}
+
+// 新增物料参数
+export function addParams(data) {
+ return request({
+ url: '/management/materialParams',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改物料参数
+export function updateParams(data) {
+ return request({
+ url: '/management/materialParams',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除物料参数
+export function delParams(id) {
+ return request({
+ url: '/management/materialParams/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出物料参数
+export function exportParams(query) {
+ return request({
+ url: '/management/materialParams/export',
+ method: 'get',
+ params: query
+ })
+}
diff --git a/evo-tech-ui/src/api/management/materialgroup.js b/evo-tech-ui/src/api/management/materialgroup.js
new file mode 100644
index 0000000..7ed580c
--- /dev/null
+++ b/evo-tech-ui/src/api/management/materialgroup.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询物料分组列表
+export function listGroup(query) {
+ return request({
+ url: '/management/materialgroup/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询物料分组详细
+export function getGroup(id) {
+ return request({
+ url: '/management/materialgroup/' + id,
+ method: 'get'
+ })
+}
+
+// 新增物料分组
+export function addGroup(data) {
+ return request({
+ url: '/management/materialgroup',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改物料分组
+export function updateGroup(data) {
+ return request({
+ url: '/management/materialgroup',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除物料分组
+export function delGroup(id) {
+ return request({
+ url: '/management/materialgroup/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出物料分组
+export function exportGroup(query) {
+ return request({
+ url: '/management/materialgroup/export',
+ method: 'get',
+ params: query
+ })
+}
diff --git a/evo-tech-ui/src/api/management/outsourcingContract.js b/evo-tech-ui/src/api/management/outsourcingContract.js
new file mode 100644
index 0000000..29fc1ee
--- /dev/null
+++ b/evo-tech-ui/src/api/management/outsourcingContract.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询外协合同列表
+export function listOutsourcingContract(query) {
+ return request({
+ url: '/management/outsourcingContract/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询外协合同详细
+export function getOutsourcingContract(id) {
+ return request({
+ url: '/management/outsourcingContract/' + id,
+ method: 'get'
+ })
+}
+
+// 新增外协合同
+export function addOutsourcingContract(data) {
+ return request({
+ url: '/management/outsourcingContract',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改外协合同
+export function updateOutsourcingContract(data) {
+ return request({
+ url: '/management/outsourcingContract',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除外协合同
+export function delOutsourcingContract(id) {
+ return request({
+ url: '/management/outsourcingContract/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出外协合同
+export function exportOutsourcingContract(query) {
+ return request({
+ url: '/management/outsourcingContract/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/outsourcingContractMaterial.js b/evo-tech-ui/src/api/management/outsourcingContractMaterial.js
new file mode 100644
index 0000000..f00b922
--- /dev/null
+++ b/evo-tech-ui/src/api/management/outsourcingContractMaterial.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询零件和外协合同关联列表
+export function listOutsourcingContractMaterial(query) {
+ return request({
+ url: '/management/outsourcingContractMaterial/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询零件和外协合同关联详细
+export function getOutsourcingContractMaterial(id) {
+ return request({
+ url: '/management/outsourcingContractMaterial/' + id,
+ method: 'get'
+ })
+}
+
+// 新增零件和外协合同关联
+export function addOutsourcingContractMaterial(data) {
+ return request({
+ url: '/management/outsourcingContractMaterial',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改零件和外协合同关联
+export function updateOutsourcingContractMaterial(data) {
+ return request({
+ url: '/management/outsourcingContractMaterial',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除零件和外协合同关联
+export function delOutsourcingContractMaterial(id) {
+ return request({
+ url: '/management/outsourcingContractMaterial/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出零件和外协合同关联
+export function exportOutsourcingContractMaterial(query) {
+ return request({
+ url: '/management/outsourcingContractMaterial/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pankuRecord.js b/evo-tech-ui/src/api/management/pankuRecord.js
new file mode 100644
index 0000000..04799fc
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pankuRecord.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询盘库记录列表
+export function listPankuRecord(query) {
+ return request({
+ url: '/management/pankuRecord/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询盘库记录详细
+export function getPankuRecord(id) {
+ return request({
+ url: '/management/pankuRecord/' + id,
+ method: 'get'
+ })
+}
+
+// 新增盘库记录
+export function addPankuRecord(data) {
+ return request({
+ url: '/management/pankuRecord',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改盘库记录
+export function updatePankuRecord(data) {
+ return request({
+ url: '/management/pankuRecord',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除盘库记录
+export function delPankuRecord(id) {
+ return request({
+ url: '/management/pankuRecord/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出盘库记录
+export function exportPankuRecord(query) {
+ return request({
+ url: '/management/pankuRecord/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/process.js b/evo-tech-ui/src/api/management/process.js
new file mode 100644
index 0000000..494d9ac
--- /dev/null
+++ b/evo-tech-ui/src/api/management/process.js
@@ -0,0 +1,61 @@
+import request from '@/utils/request'
+
+// 查询物料工序信息列表
+export function listProcess(query) {
+ return request({
+ url: '/management/process/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询物料工序信息详细
+export function getProcess(id) {
+ return request({
+ url: '/management/process/' + id,
+ method: 'get'
+ })
+}
+
+// 新增物料工序信息
+export function addProcess(data) {
+ return request({
+ url: '/management/process',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改物料工序信息
+export function updateProcess(data) {
+ return request({
+ url: '/management/process',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除物料工序信息
+export function delProcess(id) {
+ return request({
+ url: '/management/process/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出物料工序信息
+export function exportProcess(query) {
+ return request({
+ url: '/management/process/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 下载模板
+export function importTemplate() {
+ return request({
+ url: '/management/process/importTemplate',
+ method: 'get'
+ })
+}
diff --git a/evo-tech-ui/src/api/management/product.js b/evo-tech-ui/src/api/management/product.js
new file mode 100644
index 0000000..e512a03
--- /dev/null
+++ b/evo-tech-ui/src/api/management/product.js
@@ -0,0 +1,76 @@
+import request from '@/utils/request'
+
+// 查询产品列表
+export function listProduct(query) {
+ return request({
+ url: '/management/product/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询产品详细
+export function getProduct(id) {
+ return request({
+ url: '/management/product/' + id,
+ method: 'get',
+ // data:data
+ })
+}
+
+//检查商品名称是否存在
+export function getProductName(query){
+ return request({
+ url:'/management/product/selectByName',
+ method:'get',
+ params:query
+ })
+}
+
+// 新增产品
+export function addProduct(data) {
+ return request({
+ url: '/management/product',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改产品
+export function updateProduct(data) {
+ return request({
+ url: '/management/product',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除产品
+export function delProduct(id) {
+ return request({
+ url: '/management/product/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出产品
+export function exportProduct(query) {
+ return request({
+ url: '/management/product/export',
+ method: 'get',
+ params: query
+ })
+}
+
+
+//图片上传
+export function uploadFile(data){
+ return request({
+ url:'/api/uploadFile',
+ data:data,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ },
+ method:'post'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/productDetail.js b/evo-tech-ui/src/api/management/productDetail.js
new file mode 100644
index 0000000..43ef796
--- /dev/null
+++ b/evo-tech-ui/src/api/management/productDetail.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询金蝶生产详情列表
+export function listDetail(query) {
+ return request({
+ url: '/management/productDetail/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询金蝶生产详情详细
+export function getDetail(id) {
+ return request({
+ url: '/management/productDetail/' + id,
+ method: 'get'
+ })
+}
+
+// 新增金蝶生产详情
+export function addDetail(data) {
+ return request({
+ url: '/management/productDetail',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改金蝶生产详情
+export function updateDetail(data) {
+ return request({
+ url: '/management/productDetail',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除金蝶生产详情
+export function delDetail(id) {
+ return request({
+ url: '/management/productDetail/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出金蝶生产详情
+export function exportDetail(query) {
+ return request({
+ url: '/management/productDetail/export',
+ method: 'get',
+ params: query
+ })
+}
diff --git a/evo-tech-ui/src/api/management/productQuotation.js b/evo-tech-ui/src/api/management/productQuotation.js
new file mode 100644
index 0000000..28be975
--- /dev/null
+++ b/evo-tech-ui/src/api/management/productQuotation.js
@@ -0,0 +1,71 @@
+import request from '@/utils/request'
+
+// 查询产品报价单关联列表
+export function listProductQuotation(query) {
+ return request({
+ url: '/management/productQuotation/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询产品报价单关联详细
+export function getProductQuotation(id) {
+ return request({
+ url: '/management/productQuotation/' + id,
+ method: 'get'
+ })
+}
+
+// 新增产品报价单关联
+export function addProductQuotation(data) {
+ return request({
+ url: '/management/productQuotation',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改产品报价单关联
+export function updateProductQuotation(data) {
+ return request({
+ url: '/management/productQuotation',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除产品报价单关联
+export function delProductQuotation(id) {
+ return request({
+ url: '/management/productQuotation/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出产品报价单关联
+export function exportProductQuotation(query) {
+ return request({
+ url: '/management/productQuotation/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//根据产品类型查询型号分类
+export function getproductClassifLists(query) {
+ return request({
+ url: '/management/productQuotation/getproductClassifLists',
+ method: 'get',
+ params: query
+ })
+}
+
+//根据产品类型查询型号
+export function getProductTypeLists(query) {
+ return request({
+ url: '/management/productQuotation/getProductTypeLists',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/productStockRequistionProduct.js b/evo-tech-ui/src/api/management/productStockRequistionProduct.js
new file mode 100644
index 0000000..44ead9a
--- /dev/null
+++ b/evo-tech-ui/src/api/management/productStockRequistionProduct.js
@@ -0,0 +1,62 @@
+import request from '@/utils/request'
+
+// 查询产品和产品出库单关联列表
+export function listProductStockRequistionProduct(query) {
+ return request({
+ url: '/management/productStockRequistionProduct/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询产品和产品出库单关联列表
+export function getProductList(query) {
+ return request({
+ url: '/management/imProductStockRequistion/getProductList',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询产品和产品出库单关联详细
+export function getProductStockRequistionProduct(id) {
+ return request({
+ url: '/management/productStockRequistionProduct/' + id,
+ method: 'get'
+ })
+}
+
+// 新增产品和产品出库单关联
+export function addProductStockRequistionProduct(data) {
+ return request({
+ url: '/management/productStockRequistionProduct',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改产品和产品出库单关联
+export function updateProductStockRequistionProduct(data) {
+ return request({
+ url: '/management/productStockRequistionProduct',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除产品和产品出库单关联
+export function delProductStockRequistionProduct(id) {
+ return request({
+ url: '/management/productStockRequistionProduct/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出产品和产品出库单关联
+export function exportProductStockRequistionProduct(query) {
+ return request({
+ url: '/management/productStockRequistionProduct/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/productionBill.js b/evo-tech-ui/src/api/management/productionBill.js
new file mode 100644
index 0000000..f1e82ab
--- /dev/null
+++ b/evo-tech-ui/src/api/management/productionBill.js
@@ -0,0 +1,161 @@
+import request from '@/utils/request'
+
+// 查询生产执行单列表
+export function listProductionBill(query) {
+ return request({
+ url: '/management/productionBill/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询生产执行单详细
+export function getProductionBill(id) {
+ return request({
+ url: '/management/productionBill/' + id,
+ method: 'get'
+ })
+}
+
+// 新增生产执行单
+export function addProductionBillWF(data) {
+ return request({
+ url: '/management/productionBill',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改生产执行单
+export function updateProductionBill(data) {
+ return request({
+ url: '/management/productionBill',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除生产执行单
+export function delProductionBill(id) {
+ return request({
+ url: '/management/productionBill/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出生产执行单
+export function exportProductionBill(id) {
+ return request({
+ url: '/management/productionBill/export/' + id,
+ method: 'get'
+ })
+}
+
+//生成生产执行单
+export function addProductionBill(data) {
+ return request({
+ url: '/management/productionBill/createProductionBill',
+ method: 'post',
+ data: data
+ })
+}
+
+//生成生产执行单 新程序出图
+export function addProductionBillNew(data) {
+ return request({
+ url: '/management/productionBill/createProductionBillNew',
+ method: 'post',
+ data: data
+ })
+}
+
+//审核生产执行单
+export function editStatusId(query) {
+ return request({
+ url: '/management/productionBill/editStatusId',
+ method: 'post',
+ params: query
+ })
+}
+
+export function upload(query) {
+ return request({
+ url: '/management/productionBill/uploadPDF',
+ method: 'post',
+ params: query
+ })
+}
+
+// 根据令号查询生产执行单下的型号
+export function getJourneyList(query) {
+ return request({
+ url: '/management/productionBill/getJourneyList',
+ method: 'get',
+ params: query
+ })
+}
+
+// 根据令号和型号查询生产执行单下的图号
+export function getJourneyLists(query) {
+ return request({
+ url: '/management/productionBill/getJourneyLists',
+ method: 'get',
+ params: query
+ })
+}
+
+// 根据令号查询生产执行单下的图号
+export function submitDwg(data) {
+ return request({
+ url: '/management/productionBill/submitDwg',
+ method: 'post',
+ data: data
+ })
+}
+
+// 查询执行单列表(根据库存信息的在途数量)
+export function listProductionBillByInventoryDetailId(inventoryDetailId) {
+ return request({
+ url: '/management/productionBill/listproductionBillByInventoryDetailId/' + inventoryDetailId,
+ method: 'get',
+ })
+}
+
+//标记表文件上传
+export function uploadFile(data){
+ return request({
+ url:'/management/productionBill/uploadWF',
+ data:data,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ },
+ method:'post'
+ })
+}
+
+
+// 查询生产执行单列表(未完成的项目)
+export function listProductionBills(query) {
+ return request({
+ url: '/management/productionBill/lists',
+ method: 'get',
+ params: query
+ })
+}
+
+//保留工序按钮
+export function retainXus(id) {
+ return request({
+ url: '/management/productionBill/retainXus/' + id,
+ method: 'get'
+ })
+}
+
+//引用工序
+export function submitFormQuoteXus(data) {
+ return request({
+ url: '/management/productionBill/submitFormQuoteXus',
+ method: 'put',
+ data: data
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/productionBillNonstandard.js b/evo-tech-ui/src/api/management/productionBillNonstandard.js
new file mode 100644
index 0000000..845514c
--- /dev/null
+++ b/evo-tech-ui/src/api/management/productionBillNonstandard.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询产品非标生产执行单关联列表
+export function listProductionBillNonstandard(query) {
+ return request({
+ url: '/management/productionBillNonstandard/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询产品非标生产执行单关联详细
+export function getProductionBillNonstandard(id) {
+ return request({
+ url: '/management/productionBillNonstandard/' + id,
+ method: 'get'
+ })
+}
+
+// 新增产品非标生产执行单关联
+export function addProductionBillNonstandard(data) {
+ return request({
+ url: '/management/productionBillNonstandard',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改产品非标生产执行单关联
+export function updateProductionBillNonstandard(data) {
+ return request({
+ url: '/management/productionBillNonstandard',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除产品非标生产执行单关联
+export function delProductionBillNonstandard(id) {
+ return request({
+ url: '/management/productionBillNonstandard/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出产品非标生产执行单关联
+export function exportProductionBillNonstandard(query) {
+ return request({
+ url: '/management/productionBillNonstandard/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/productionBillProduct.js b/evo-tech-ui/src/api/management/productionBillProduct.js
new file mode 100644
index 0000000..c9b8036
--- /dev/null
+++ b/evo-tech-ui/src/api/management/productionBillProduct.js
@@ -0,0 +1,104 @@
+import request from '@/utils/request'
+
+// 查询销齿链生产执行单关联列表
+export function listProductionBillProduct(query) {
+ return request({
+ url: '/management/productionBillProduct/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询销齿链生产执行单关联详细
+export function getProductionBillProduct(id) {
+ return request({
+ url: '/management/productionBillProduct/' + id,
+ method: 'get'
+ })
+}
+
+// 新增销齿链生产执行单关联
+export function addProductionBillProduct(data) {
+ return request({
+ url: '/management/productionBillProduct',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改销齿链生产执行单关联
+export function updateProductionBillProduct(data) {
+ return request({
+ url: '/management/productionBillProduct',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除销齿链生产执行单关联
+export function delProductionBillProduct(id) {
+ return request({
+ url: '/management/productionBillProduct/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出销齿链生产执行单关联
+export function exportProductionBillProduct(query) {
+ return request({
+ url: '/management/productionBillProduct/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//查看bom列表
+export function bomList(query) {
+ return request({
+ url: '/management/bom/list',
+ method: 'get',
+ params: query
+ })
+}
+
+//制定任务
+export function task(data) {
+ return request({
+ url: '/management/task',
+ method: 'post',
+ data: data
+ })
+}
+
+// 下载bom表
+export function downloadBOM(ids) {
+ return request({
+ url: '/management/productionBill/exportBom/'+ids,
+ method: 'get',
+ })
+}
+
+// 下载bom表
+export function downloadBOMWu(ids) {
+ return request({
+ url: '/management/productionBill/exportBomWu/'+ids,
+ method: 'get',
+ })
+}
+
+//申请领料按钮
+export function storesRequisition(id) {
+ return request({
+ url: '/management/productionBillProduct/storesRequisition/' + id,
+ method: 'get'
+ })
+}
+
+//申请领料提交按钮
+export function lingliaos(data) {
+ return request({
+ url: '/management/productionBillProduct/lingliao',
+ method: 'post',
+ data: data
+ })
+}
diff --git a/evo-tech-ui/src/api/management/property.js b/evo-tech-ui/src/api/management/property.js
new file mode 100644
index 0000000..22b8a8f
--- /dev/null
+++ b/evo-tech-ui/src/api/management/property.js
@@ -0,0 +1,52 @@
+import request from '@/utils/request'
+
+export function listProperty(query) {
+ return request({
+ url: '/management/property/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询资产管理详细
+export function getProperty(id) {
+ return request({
+ url: '/management/property/' + id,
+ method: 'get'
+ })
+}
+
+// 新增资产管理
+export function addProperty(data) {
+ return request({
+ url: '/management/property',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改资产管理
+export function updateProperty(data) {
+ return request({
+ url: '/management/property',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除资产管理
+export function delProperty(id) {
+ return request({
+ url: '/management/property/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出资产管理
+export function exportProperty(query) {
+ return request({
+ url: '/management/property/export',
+ method: 'get',
+ params: query
+ })
+}
diff --git a/evo-tech-ui/src/api/management/propertyCode.js b/evo-tech-ui/src/api/management/propertyCode.js
new file mode 100644
index 0000000..0e2d7c2
--- /dev/null
+++ b/evo-tech-ui/src/api/management/propertyCode.js
@@ -0,0 +1,68 @@
+import request from '@/utils/request'
+
+// 查询资产编码列表
+export function listCode(query) {
+ return request({
+ url: '/management/propertyCode/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询资产编码详细
+export function getCode(propertyId) {
+ return request({
+ url: '/management/propertyCode/' + propertyId,
+ method: 'get'
+ })
+}
+
+// 新增资产编码
+export function addCode(data) {
+ return request({
+ url: '/management/propertyCode',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改资产编码
+export function updateCode(data) {
+ return request({
+ url: '/management/propertyCode',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除资产编码
+export function delCode(propertyId) {
+ return request({
+ url: '/management/propertyCode/' + propertyId,
+ method: 'delete'
+ })
+}
+
+// 导出问题处理
+export function exportCode(query) {
+ return request({
+ url: '/management/propertyCode/export',
+ method: 'get',
+ params: query
+ })
+}
+
+export function listTwoCode(){
+ return request({
+ url: '/management/propertyCode/queryTwoCode',
+ method: 'get'
+ })
+}
+
+export function listThreeCode(query){
+ return request({
+ url: '/management/propertyCode/queryThreeCode',
+ method: 'get',
+ params: query
+ })
+}
diff --git a/evo-tech-ui/src/api/management/purchase.js b/evo-tech-ui/src/api/management/purchase.js
new file mode 100644
index 0000000..17fdb34
--- /dev/null
+++ b/evo-tech-ui/src/api/management/purchase.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询部件列表
+export function listPurchase(query) {
+ return request({
+ url: '/management/purchase/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询部件详细
+export function getPurchase(id) {
+ return request({
+ url: '/management/purchase/' + id,
+ method: 'get'
+ })
+}
+
+// 新增部件
+export function addPurchase(data) {
+ return request({
+ url: '/management/purchase',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改部件
+export function updatePurchase(data) {
+ return request({
+ url: '/management/purchase',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除部件
+export function delPurchase(id) {
+ return request({
+ url: '/management/purchase/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出部件
+export function exportPurchase(query) {
+ return request({
+ url: '/management/purchase/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/purchaseContract.js b/evo-tech-ui/src/api/management/purchaseContract.js
new file mode 100644
index 0000000..12d6468
--- /dev/null
+++ b/evo-tech-ui/src/api/management/purchaseContract.js
@@ -0,0 +1,106 @@
+import request from '@/utils/request'
+
+// 查询采购合同列表
+export function listPurchaseContract(query) {
+ return request({
+ url: '/management/purchaseContract/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询采购合同详细
+export function getPurchaseContract(id) {
+ return request({
+ url: '/management/purchaseContract/' + id,
+ method: 'get'
+ })
+}
+
+// 新增采购合同
+export function addPurchaseContract(data) {
+ return request({
+ url: '/management/purchaseContract',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改采购合同
+export function updatePurchaseContract(data) {
+ return request({
+ url: '/management/purchaseContract',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除采购合同
+export function delPurchaseContract(id) {
+ return request({
+ url: '/management/purchaseContract/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出采购合同
+export function exportPurchaseContract(query) {
+ return request({
+ url: '/management/purchaseContract/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//打印合同
+export function prints(id) {
+ return request({
+ url: '/management/purchaseContract/prints/' + id,
+ method: 'get'
+ })
+}
+
+//开具发票
+export function issueAnInvoices(id) {
+ return request({
+ url: '/management/purchaseContract/issueAnInvoices/' + id,
+ method: 'delete'
+ })
+}
+export function uploadContractPDF(data){
+ return request({
+ url:'/management/purchaseContract/uploadContractPDF',
+ data:data,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ },
+ method:'post'
+ })
+}
+
+//申请付款
+export function addPayment(data) {
+ return request({
+ url: '/management/purchaseContract/addPayment',
+ method: 'post',
+ data: data
+ })
+}
+
+//领导审批按钮
+export function lingDaoApprovers(id) {
+ return request({
+ url: '/management/purchaseContract/lingDaoApprover/' + id,
+ method: 'delete'
+ })
+}
+
+//生成物流费用单按钮
+export function addLogistics(data) {
+ return request({
+ url: '/management/purchaseContract/addLogistics',
+ method: 'post',
+ data: data
+ })
+}
+
diff --git a/evo-tech-ui/src/api/management/purchaseContractMaterial.js b/evo-tech-ui/src/api/management/purchaseContractMaterial.js
new file mode 100644
index 0000000..b374841
--- /dev/null
+++ b/evo-tech-ui/src/api/management/purchaseContractMaterial.js
@@ -0,0 +1,98 @@
+import request from '@/utils/request'
+
+// 查询物料和采购合同关联列表
+export function listPurchaseContractMaterial(query) {
+ return request({
+ url: '/management/purchaseContractMaterial/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询物料和采购合同关联详细
+export function getPurchaseContractMaterial(id) {
+ return request({
+ url: '/management/purchaseContractMaterial/' + id,
+ method: 'get'
+ })
+}
+
+// 新增物料和采购合同关联
+export function addPurchaseContractMaterial(data) {
+ return request({
+ url: '/management/purchaseContractMaterial',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改物料和采购合同关联
+export function updatePurchaseContractMaterial(data) {
+ return request({
+ url: '/management/purchaseContractMaterial',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除物料和采购合同关联
+export function delPurchaseContractMaterial(id) {
+ return request({
+ url: '/management/purchaseContractMaterial/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出物料和采购合同关联
+export function exportPurchaseContractMaterial(query) {
+ return request({
+ url: '/management/purchaseContractMaterial/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//生成合同
+export function generateContract(id) {
+ return request({
+ url: '/management/purchaseContractMaterial/createPurchaseContract/' + id,
+ method: 'get',
+ })
+}
+
+// 查询物料和采购合同关联列表
+export function getListByPurchaseContractId() {
+ return request({
+ url: '/management/purchaseContractMaterial/getListByPurchaseContractId',
+ method: 'get',
+ })
+}
+
+// 申请入库
+export function storages(data) {
+ return request({
+ url: '/management/purchaseContractMaterial/storages',
+ method: 'put',
+ data: data
+ })
+}
+
+// 撤销申请入库
+export function revocationMaterial(id) {
+ return request({
+ url: '/management/purchaseContractMaterial/revocationMaterial/' + id,
+ method: 'delete'
+ })
+}
+
+//申请退货按钮
+export function handBacks(data) {
+ return request({
+ url: '/management/purchaseContractMaterial/hadnBacks',
+ method: 'put',
+ data: data
+ })
+}
+
+
+
diff --git a/evo-tech-ui/src/api/management/pwAlteration.js b/evo-tech-ui/src/api/management/pwAlteration.js
new file mode 100644
index 0000000..82076c0
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwAlteration.js
@@ -0,0 +1,61 @@
+import request from '@/utils/request'
+
+// 查询变更单列表
+export function listPwAlteration(query) {
+ return request({
+ url: '/management/pwAlteration/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询变更单详细
+export function getPwAlteration(id) {
+ return request({
+ url: '/management/pwAlteration/' + id,
+ method: 'get'
+ })
+}
+
+// 新增变更单
+export function addPwAlteration(data) {
+ return request({
+ url: '/management/pwAlteration',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改变更单
+export function updatePwAlteration(data) {
+ return request({
+ url: '/management/pwAlteration',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除变更单
+export function delPwAlteration(id) {
+ return request({
+ url: '/management/pwAlteration/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出变更单
+export function exportPwAlteration(query) {
+ return request({
+ url: '/management/pwAlteration/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//审核变更单
+export function audits(id) {
+ return request({
+ url: '/management/pwAlteration/audits/' + id,
+ method: 'get'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwAlterationDetail.js b/evo-tech-ui/src/api/management/pwAlterationDetail.js
new file mode 100644
index 0000000..9be6340
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwAlterationDetail.js
@@ -0,0 +1,61 @@
+import request from '@/utils/request'
+
+// 查询变更单详情列表
+export function listPwAlterationDetail(query) {
+ return request({
+ url: '/management/pwAlterationDetail/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询变更单详情详细
+export function getPwAlterationDetail(id) {
+ return request({
+ url: '/management/pwAlterationDetail/' + id,
+ method: 'get'
+ })
+}
+
+// 新增变更单详情
+export function addPwAlterationDetail(data) {
+ return request({
+ url: '/management/pwAlterationDetail',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改变更单详情
+export function updatePwAlterationDetail(data) {
+ return request({
+ url: '/management/pwAlterationDetail',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除变更单详情
+export function delPwAlterationDetail(id) {
+ return request({
+ url: '/management/pwAlterationDetail/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出变更单详情
+export function exportPwAlterationDetail(query) {
+ return request({
+ url: '/management/pwAlterationDetail/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 删除变更单详情
+export function listPwBomNumberTwo(id) {
+ return request({
+ url: '/management/pwAlterationDetail/listPwBomNumberTwo/' + id,
+ method: 'delete'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwBacklog.js b/evo-tech-ui/src/api/management/pwBacklog.js
new file mode 100644
index 0000000..7b311d6
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwBacklog.js
@@ -0,0 +1,77 @@
+import request from '@/utils/request'
+
+// 查询待办事项列表
+export function listPwBacklog(query) {
+ return request({
+ url: '/management/pwBacklog/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询待办事项详细
+export function getPwBacklog(id) {
+ return request({
+ url: '/management/pwBacklog/' + id,
+ method: 'get'
+ })
+}
+
+// 新增待办事项
+export function addPwBacklog(data) {
+ return request({
+ url: '/management/pwBacklog',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改待办事项
+export function updatePwBacklog(data) {
+ return request({
+ url: '/management/pwBacklog',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除待办事项
+export function delPwBacklog(id) {
+ return request({
+ url: '/management/pwBacklog/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出待办事项
+export function exportPwBacklog(query) {
+ return request({
+ url: '/management/pwBacklog/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//办理待办事项(修改是否已阅状态)
+export function updatePwBacklogByStatus(id) {
+ return request({
+ url: '/management/pwBacklog/updatePwBacklogByStatus/' + id,
+ method: 'delete'
+ })
+}
+
+export function getlistNumber(query) {
+ return request({
+ url: '/management/pwBacklog/getlistNumber',
+ method: 'get',
+ params: query
+ })
+}
+
+//修改已阅状态
+export function editStatus(id) {
+ return request({
+ url: '/management/pwBacklog/editStatus/' + id,
+ method: 'delete'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwBomNumber.js b/evo-tech-ui/src/api/management/pwBomNumber.js
new file mode 100644
index 0000000..584a62a
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwBomNumber.js
@@ -0,0 +1,18 @@
+import request from '@/utils/request'
+
+// 查询数量计算列表
+export function listNumber(query) {
+ return request({
+ url: '/management/pwBomNumber/list',
+ method: 'get',
+ params: query
+ })
+}
+
+//推送金蝶
+export function pushJdBom(param) {
+ return request({
+ url: '/management/pwBomNumber/pushJdBom/' + param,
+ method: 'get'
+ })
+}
diff --git a/evo-tech-ui/src/api/management/pwBomNumberTwo.js b/evo-tech-ui/src/api/management/pwBomNumberTwo.js
new file mode 100644
index 0000000..5d6b1e5
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwBomNumberTwo.js
@@ -0,0 +1,337 @@
+import request from '@/utils/request'
+
+// 查询数量保存列表
+export function listPwBomNumberTwo(query) {
+ return request({
+ url: '/management/pwBomNumberTwo/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询数量保存详细
+export function getPwBomNumberTwo(id) {
+ return request({
+ url: '/management/pwBomNumberTwo/' + id,
+ method: 'get'
+ })
+}
+
+// 新增数量保存
+export function addPwBomNumberTwo(data) {
+ return request({
+ url: '/management/pwBomNumberTwo',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改数量保存
+export function updatePwBomNumberTwo(data) {
+ return request({
+ url: '/management/pwBomNumberTwo',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除数量保存
+export function delPwBomNumberTwo(id) {
+ return request({
+ url: '/management/pwBomNumberTwo/' + id,
+ method: 'delete'
+ })
+}
+
+
+
+//申请领料按钮
+export function storesRequisition(code) {
+ return request({
+ url: '/management/pwBomNumberTwo/storesRequisition/' + code,
+ method: 'get'
+ })
+}
+
+// 申请入库
+export function storages(data) {
+ return request({
+ url: '/management/pwBomNumberTwo/storages',
+ method: 'put',
+ data: data
+ })
+}
+
+//申请领料按钮
+export function lingliao(data) {
+ return request({
+ url: '/management/pwBomNumberTwo/lingliao',
+ method: 'post',
+ data: data
+ })
+}
+
+//毛坯物料申请领料
+export function getWorkblanks(data) {
+ return request({
+ url: '/management/pwBomNumberTwo/getWorkblanks/',
+ method: 'put',
+ data: data
+ })
+}
+
+//装配物料申请领料
+export function getWorkblanksTwo(data) {
+ return request({
+ url: '/management/pwBomNumberTwo/getWorkblanksTwo/',
+ method: 'put',
+ data: data
+ })
+}
+
+//部件申请领料按钮
+export function bujianstoresRequisition(id) {
+ return request({
+ url: '/management/pwBomNumberTwo/bujianstoresRequisition/' + id,
+ method: 'get'
+ })
+}
+
+//Bom文件上传
+export function uploadFile(data){
+ return request({
+ url:'/management/pwBomNumberTwo/uploadBom',
+ data:data,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ },
+ method:'post'
+ })
+}
+
+//Bom文件上传(派工)
+export function uploadDispatchingFile(data){
+ return request({
+ url:'/management/productionBill/uploadDispatchings',
+ data:data,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ },
+ method:'post'
+ })
+}
+
+
+//PDF文件上传
+export function uploadPDFFile(data){
+ return request({
+ url:'/management/pwBomNumberTwo/uploadPDF',
+ data:data,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ },
+ method:'post'
+ })
+}
+
+// 新增木箱
+export function addPwBomNumberTwoMuXiang(data) {
+ return request({
+ url: '/management/pwBomNumberTwo/addPwBomNumberTwoMuXiang',
+ method: 'post',
+ data: data
+ })
+}
+
+// 撤销申请质检按钮
+export function revocationBoms(id) {
+ return request({
+ url: '/management/pwBomNumberTwo/revocationBoms/' + id,
+ method: 'delete'
+ })
+}
+
+// 生成库存制作单的原材料的预采购明细表
+export function generateProcurements(id) {
+ return request({
+ url: '/management/pwBomNumberTwo/generateProcurements/' + id,
+ method: 'delete'
+ })
+}
+
+// 撤销申请领料按钮
+export function revocationLingliaos(id) {
+ return request({
+ url: '/management/pwBomNumberTwo/revocationLingliaos/' + id,
+ method: 'delete'
+ })
+}
+
+
+// 派工按钮
+export function updatePwBomNumberTwoPaiGong(data) {
+ return request({
+ url: '/management/pwBomNumberTwo/updatePwBomNumberTwoPaiGong',
+ method: 'put',
+ data: data
+ })
+}
+
+// 木箱申请领料按钮
+export function getWorkblankMuXiangs(id) {
+ return request({
+ url: '/management/pwBomNumberTwo/getWorkblankMuXiangs/' + id,
+ method: 'delete'
+ })
+}
+
+// 甲供件申请入库
+export function submitFormJiaGongJians(data) {
+ return request({
+ url: '/management/pwBomNumberTwo/submitFormJiaGongJians',
+ method: 'post',
+ data: data
+ })
+}
+
+//打印流转单
+export function prints(id) {
+ return request({
+ url: '/management/pwBomNumberTwo/prints/' + id,
+ method: 'get'
+ })
+}
+
+//查询子集物料
+export function selectSubsets(id) {
+ return request({
+ url: '/management/pwBomNumberTwo/selectSubsets/' + id,
+ method: 'get'
+ })
+}
+
+//设置虚拟物料
+export function xunis(id) {
+ return request({
+ url: '/management/pwBomNumberTwo/xunis/' + id,
+ method: 'delete'
+ })
+}
+
+//生成外协合同
+export function addPwOutsourceContracts(data) {
+ return request({
+ url: '/management/pwBomNumberTwo/addPwOutsourceContracts',
+ method: 'put',
+ data: data
+ })
+}
+
+export function listPwBomNumberTwoAll(query) {
+ return request({
+ url: '/management/pwBomNumberTwo/listPwBomNumberTwoAll',
+ method: 'get',
+ params: query
+ })
+}
+
+//批量生成外协合同
+export function addPwOutsourceContractsAll(id) {
+ return request({
+ url: '/management/pwBomNumberTwo/addPwOutsourceContractsAll/' + id,
+ method: 'delete'
+ })
+}
+
+//查询在途信息
+export function listZaiTuByInventoryDetailId(id) {
+ return request({
+ url: '/management/pwBomNumberTwo/listZaiTuByInventoryDetailId/' + id,
+ method: 'get'
+ })
+}
+
+//物料状态信息
+export function listInfo(id) {
+ return request({
+ url: '/management/pwBomNumberTwo/listInfo/' + id,
+ method: 'delete'
+ })
+}
+
+// 车间排产按钮
+export function updatePwBomNumberTwoShopScheduling(data) {
+ return request({
+ url: '/management/pwBomNumberTwo/updatePwBomNumberTwoShopScheduling',
+ method: 'put',
+ data: data
+ })
+}
+
+//虚拟化部件
+export function xuNiBuJians(id) {
+ return request({
+ url: '/management/pwBomNumberTwo/xuNiBuJians/' + id,
+ method: 'delete'
+ })
+}
+
+//退料
+export function materialReturn(data) {
+ return request({
+ url: '/management/pwBomNumberTwo/materialReturn',
+ method: 'post',
+ data: data
+ })
+}
+
+// 导出数量保存
+export function exportPwBomNumberTwo(query) {
+ return request({
+ url: '/management/pwBomNumberTwo/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 新添加工序
+export function addProcessNew(data) {
+ return request({
+ url: '/management/pwBomNumberTwo/addProcessNew',
+ method: 'post',
+ data: data
+ })
+}
+//调用工艺
+export function queryCallProcessList(query) {
+ return request({
+ url: '/management/pwBomNumberTwo/callProcess',
+ method: 'get',
+ params: query
+ })
+}
+//保存工艺
+export function queryCallProcessListByProcess(query) {
+ return request({
+ url: '/management/pwBomNumberTwo/queryCallProcessListByProcess',
+ method: 'get',
+ params: query
+ })
+}
+//提交工艺
+export function commitProcess(query) {
+ return request({
+ url: '/management/pwBomNumberTwo/commitProcess',
+ method: 'get',
+ params: query
+ })
+}
+
+// 新添加工序(单条)
+export function addProcessByOnlyOne(data) {
+ return request({
+ url: '/management/pwBomNumberTwo/addProcessByOnlyOne',
+ method: 'post',
+ data: data
+ })
+}
diff --git a/evo-tech-ui/src/api/management/pwBomNumberTwoFu.js b/evo-tech-ui/src/api/management/pwBomNumberTwoFu.js
new file mode 100644
index 0000000..a96a6c9
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwBomNumberTwoFu.js
@@ -0,0 +1,104 @@
+import request from '@/utils/request'
+
+// 查询副Bom列表
+export function listPwBomNumberTwoFu(query) {
+ return request({
+ url: '/management/pwBomNumberTwoFu/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询副Bom详细
+export function getPwBomNumberTwoFu(id) {
+ return request({
+ url: '/management/pwBomNumberTwoFu/' + id,
+ method: 'get'
+ })
+}
+
+// 新增副Bom
+export function addPwBomNumberTwoFu(data) {
+ return request({
+ url: '/management/pwBomNumberTwoFu',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改副Bom
+export function updatePwBomNumberTwoFu(data) {
+ return request({
+ url: '/management/pwBomNumberTwoFu',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除副Bom
+export function delPwBomNumberTwoFu(id) {
+ return request({
+ url: '/management/pwBomNumberTwoFu/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出副Bom
+export function exportPwBomNumberTwoFu(query) {
+ return request({
+ url: '/management/pwBomNumberTwoFu/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 派工按钮
+export function updatePwBomNumberTwoFuPaiGong(data) {
+ return request({
+ url: '/management/pwBomNumberTwoFu/updatePwBomNumberTwoFuPaiGong',
+ method: 'put',
+ data: data
+ })
+}
+
+// 申请入库
+export function storages(data) {
+ return request({
+ url: '/management/pwBomNumberTwoFu/storages',
+ method: 'put',
+ data: data
+ })
+}
+
+//毛坯物料申请领料
+export function getWorkblanks(data) {
+ return request({
+ url: '/management/pwBomNumberTwoFu/getWorkblanks/',
+ method: 'put',
+ data: data
+ })
+}
+
+// 撤销申请质检按钮
+export function revocationBoms(id) {
+ return request({
+ url: '/management/pwBomNumberTwoFu/revocationBoms/' + id,
+ method: 'delete'
+ })
+}
+
+// 撤销申请领料按钮
+export function revocationLingliaos(id) {
+ return request({
+ url: '/management/pwBomNumberTwoFu/revocationLingliaos/' + id,
+ method: 'delete'
+ })
+}
+
+//打印流转单
+export function prints(id) {
+ return request({
+ url: '/management/pwBomNumberTwoFu/prints/' + id,
+ method: 'get'
+ })
+}
diff --git a/evo-tech-ui/src/api/management/pwBuyingRequisitionJj.js b/evo-tech-ui/src/api/management/pwBuyingRequisitionJj.js
new file mode 100644
index 0000000..122d9fe
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwBuyingRequisitionJj.js
@@ -0,0 +1,70 @@
+import request from '@/utils/request'
+
+// 查询基建请购申请单列表
+export function listPwBuyingRequisitionJj(query) {
+ return request({
+ url: '/management/pwBuyingRequisitionJj/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询基建请购申请单详细
+export function getPwBuyingRequisitionJj(id) {
+ return request({
+ url: '/management/pwBuyingRequisitionJj/' + id,
+ method: 'get'
+ })
+}
+
+// 新增基建请购申请单
+export function addPwBuyingRequisitionJj(data) {
+ return request({
+ url: '/management/pwBuyingRequisitionJj',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改基建请购申请单
+export function updatePwBuyingRequisitionJj(data) {
+ return request({
+ url: '/management/pwBuyingRequisitionJj',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除基建请购申请单
+export function delPwBuyingRequisitionJj(id) {
+ return request({
+ url: '/management/pwBuyingRequisitionJj/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出基建请购申请单
+export function exportPwBuyingRequisitionJj(query) {
+ return request({
+ url: '/management/pwBuyingRequisitionJj/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 审核采购申请单
+export function audits(query) {
+ return request({
+ url: '/management/pwBuyingRequisitionJj/auditPwBuyingRequisitionJj',
+ method: 'get',
+ params: query
+ })
+}
+
+// 打印基建请购申请单
+export function prints(id) {
+ return request({
+ url: '/management/pwBuyingRequisitionJj/prints/' + id,
+ method: 'get'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwBuyingRequisitionMaterial.js b/evo-tech-ui/src/api/management/pwBuyingRequisitionMaterial.js
new file mode 100644
index 0000000..c4f3a45
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwBuyingRequisitionMaterial.js
@@ -0,0 +1,94 @@
+import request from '@/utils/request'
+
+// 查询请购单物料详情列表
+export function listPwBuyingRequisitionMaterial(query) {
+ return request({
+ url: '/management/pwBuyingRequisitionMaterial/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询请购单物料详情详细
+export function getPwBuyingRequisitionMaterial(id) {
+ return request({
+ url: '/management/pwBuyingRequisitionMaterial/' + id,
+ method: 'get'
+ })
+}
+
+// 新增请购单物料详情
+export function addPwBuyingRequisitionMaterial(data) {
+ return request({
+ url: '/management/pwBuyingRequisitionMaterial',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改请购单物料详情
+export function updatePwBuyingRequisitionMaterial(data) {
+ return request({
+ url: '/management/pwBuyingRequisitionMaterial',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除请购单物料详情
+export function delPwBuyingRequisitionMaterial(id) {
+ return request({
+ url: '/management/pwBuyingRequisitionMaterial/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出请购单物料详情
+export function exportPwBuyingRequisitionMaterial(query) {
+ return request({
+ url: '/management/pwBuyingRequisitionMaterial/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 申请入库
+export function storages(data) {
+ return request({
+ url: '/management/pwBuyingRequisitionMaterial/storages',
+ method: 'put',
+ data: data
+ })
+}
+
+// 生成采购单物料详情
+export function addPurchases(id) {
+ return request({
+ url: '/management/pwBuyingRequisitionMaterial/addPurchases/' + id,
+ method: 'delete'
+ })
+}
+
+//打印单据按钮
+export function prints(id) {
+ return request({
+ url: '/management/pwBuyingRequisitionMaterial/prints/' + id,
+ method: 'get'
+ })
+}
+
+// 确认购买按钮
+export function affirms(id) {
+ return request({
+ url: '/management/pwBuyingRequisitionMaterial/affirms/' + id,
+ method: 'delete'
+ })
+}
+
+//撤销申请入库按钮
+export function revocations(id) {
+ return request({
+ url: '/management/pwBuyingRequisitionMaterial/revocations/' + id,
+ method: 'delete'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwBuyingRequisitionMaterialJj.js b/evo-tech-ui/src/api/management/pwBuyingRequisitionMaterialJj.js
new file mode 100644
index 0000000..0751fde
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwBuyingRequisitionMaterialJj.js
@@ -0,0 +1,62 @@
+import request from '@/utils/request'
+
+// 查询基建请购单详情列表
+export function listPwBuyingRequisitionMaterialJj(query) {
+ return request({
+ url: '/management/pwBuyingRequisitionMaterialJj/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询基建请购单详情详细
+export function getPwBuyingRequisitionMaterialJj(id) {
+ return request({
+ url: '/management/pwBuyingRequisitionMaterialJj/' + id,
+ method: 'get'
+ })
+}
+
+// 新增基建请购单详情
+export function addPwBuyingRequisitionMaterialJj(data) {
+ return request({
+ url: '/management/pwBuyingRequisitionMaterialJj',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改基建请购单详情
+export function updatePwBuyingRequisitionMaterialJj(data) {
+ return request({
+ url: '/management/pwBuyingRequisitionMaterialJj',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除基建请购单详情
+export function delPwBuyingRequisitionMaterialJj(id) {
+ return request({
+ url: '/management/pwBuyingRequisitionMaterialJj/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出基建请购单详情
+export function exportPwBuyingRequisitionMaterialJj(query) {
+ return request({
+ url: '/management/pwBuyingRequisitionMaterialJj/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 申请入库
+export function storages(data) {
+ return request({
+ url: '/management/pwBuyingRequisitionMaterialJj/storages',
+ method: 'put',
+ data: data
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwBuyingRequisitionMaterialTwo.js b/evo-tech-ui/src/api/management/pwBuyingRequisitionMaterialTwo.js
new file mode 100644
index 0000000..e12cb18
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwBuyingRequisitionMaterialTwo.js
@@ -0,0 +1,78 @@
+import request from '@/utils/request'
+
+// 查询易耗品请购单详情列表
+export function listPwBuyingRequisitionMaterialTwo(query) {
+ return request({
+ url: '/management/pwBuyingRequisitionMaterialTwo/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询易耗品请购单详情详细
+export function getPwBuyingRequisitionMaterialTwo(id) {
+ return request({
+ url: '/management/pwBuyingRequisitionMaterialTwo/' + id,
+ method: 'get'
+ })
+}
+
+// 新增易耗品请购单详情
+export function addPwBuyingRequisitionMaterialTwo(data) {
+ return request({
+ url: '/management/pwBuyingRequisitionMaterialTwo',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改易耗品请购单详情
+export function updatePwBuyingRequisitionMaterialTwo(data) {
+ return request({
+ url: '/management/pwBuyingRequisitionMaterialTwo',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除易耗品请购单详情
+export function delPwBuyingRequisitionMaterialTwo(id) {
+ return request({
+ url: '/management/pwBuyingRequisitionMaterialTwo/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出易耗品请购单详情
+export function exportPwBuyingRequisitionMaterialTwo(query) {
+ return request({
+ url: '/management/pwBuyingRequisitionMaterialTwo/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 申请入库
+export function storages(data) {
+ return request({
+ url: '/management/pwBuyingRequisitionMaterialTwo/storages',
+ method: 'put',
+ data: data
+ })
+}
+
+//撤销申请入库按钮
+export function revocations(id) {
+ return request({
+ url: '/management/pwBuyingRequisitionMaterialTwo/revocations/' + id,
+ method: 'delete'
+ })
+}
+
+//打印合同
+export function prints(id) {
+ return request({
+ url: '/management/purchaseContract/prints/' + id,
+ method: 'get'
+ })
+}
diff --git a/evo-tech-ui/src/api/management/pwBuyingRequisitionTwo.js b/evo-tech-ui/src/api/management/pwBuyingRequisitionTwo.js
new file mode 100644
index 0000000..c7eba3b
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwBuyingRequisitionTwo.js
@@ -0,0 +1,108 @@
+import request from '@/utils/request'
+
+// 查询易耗品请购单列表
+export function listPwBuyingRequisitionTwo(query) {
+ return request({
+ url: '/management/pwBuyingRequisitionTwo/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询易耗品请购单详细
+export function getPwBuyingRequisitionTwo(id) {
+ return request({
+ url: '/management/pwBuyingRequisitionTwo/' + id,
+ method: 'get'
+ })
+}
+
+// 新增易耗品请购单
+export function addPwBuyingRequisitionTwo(data) {
+ return request({
+ url: '/management/pwBuyingRequisitionTwo',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改易耗品请购单
+export function updatePwBuyingRequisitionTwo(data) {
+ return request({
+ url: '/management/pwBuyingRequisitionTwo',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除易耗品请购单
+export function delPwBuyingRequisitionTwo(id) {
+ return request({
+ url: '/management/pwBuyingRequisitionTwo/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出易耗品请购单
+export function exportPwBuyingRequisitionTwo(query) {
+ return request({
+ url: '/management/pwBuyingRequisitionTwo/export',
+ method: 'get',
+ params: query
+ })
+}
+
+
+// 审核采购申请单
+export function audits(query) {
+ return request({
+ url: '/management/pwBuyingRequisitionTwo/auditPwBuyingRequisitionTwo',
+ method: 'get',
+ params: query
+ })
+}
+
+//打印合同
+export function printContract(id) {
+ return request({
+ url: '/management/pwBuyingRequisitionTwo/prints/' + id,
+ method: 'get'
+ })
+}
+
+//申请付款
+export function addPayment(data) {
+ return request({
+ url: '/management/pwBuyingRequisitionTwo/addPayment',
+ method: 'post',
+ data: data
+ })
+}
+
+//领导审批按钮
+export function lingDaoApprovers(id) {
+ return request({
+ url: '/management/pwBuyingRequisitionTwo/lingDaoApprover/' + id,
+ method: 'delete'
+ })
+}
+//上传合同
+export function uploadContractPDF(data){
+ return request({
+ url:'/management/pwBuyingRequisitionTwo/uploadContractPDF',
+ data:data,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ },
+ method:'post'
+ })
+}
+
+//生成物流费用单按钮
+export function addLogistics(data) {
+ return request({
+ url: '/management/pwBuyingRequisitionTwo/addLogistics',
+ method: 'post',
+ data: data
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwContractInfo.js b/evo-tech-ui/src/api/management/pwContractInfo.js
new file mode 100644
index 0000000..2fd561b
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwContractInfo.js
@@ -0,0 +1,61 @@
+import request from '@/utils/request'
+
+// 查询合同信息明细列表
+export function listPwContractInfo(query) {
+ return request({
+ url: '/management/pwContractInfo/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询合同信息明细详细
+export function getPwContractInfo(id) {
+ return request({
+ url: '/management/pwContractInfo/' + id,
+ method: 'get'
+ })
+}
+
+// 新增合同信息明细
+export function addPwContractInfo(data) {
+ return request({
+ url: '/management/pwContractInfo',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改合同信息明细
+export function updatePwContractInfo(data) {
+ return request({
+ url: '/management/pwContractInfo',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除合同信息明细
+export function delPwContractInfo(id) {
+ return request({
+ url: '/management/pwContractInfo/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出合同信息明细
+export function exportPwContractInfo(query) {
+ return request({
+ url: '/management/pwContractInfo/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询产品型号
+export function queryProduct(id) {
+ return request({
+ url: '/management/pwContractInfo/queryProduct/' + id,
+ method: 'get',
+ })
+}
diff --git a/evo-tech-ui/src/api/management/pwCuttingTool.js b/evo-tech-ui/src/api/management/pwCuttingTool.js
new file mode 100644
index 0000000..c8dc8df
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwCuttingTool.js
@@ -0,0 +1,63 @@
+import request from '@/utils/request'
+
+// 查询刀具列表
+export function listPwCuttingTool(query) {
+ return request({
+ url: '/management/pwCuttingTool/list',
+ method: 'get',
+ params: query
+ })
+}
+
+
+// 查询刀具列表(带数量)
+export function getListPwCuttingTool(query) {
+ return request({
+ url: '/management/pwCuttingTool/getList',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询刀具详细
+export function getPwCuttingTool(id) {
+ return request({
+ url: '/management/pwCuttingTool/' + id,
+ method: 'get'
+ })
+}
+
+// 新增刀具
+export function addPwCuttingTool(data) {
+ return request({
+ url: '/management/pwCuttingTool',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改刀具
+export function updatePwCuttingTool(data) {
+ return request({
+ url: '/management/pwCuttingTool',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除刀具
+export function delPwCuttingTool(id) {
+ return request({
+ url: '/management/pwCuttingTool/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出刀具
+export function exportPwCuttingTool(query) {
+ return request({
+ url: '/management/pwCuttingTool/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwCuttingToolApply.js b/evo-tech-ui/src/api/management/pwCuttingToolApply.js
new file mode 100644
index 0000000..78606e9
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwCuttingToolApply.js
@@ -0,0 +1,70 @@
+import request from '@/utils/request'
+
+// 查询刀具领用申请单列表
+export function listPwCuttingToolApply(query) {
+ return request({
+ url: '/management/pwCuttingToolApply/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询刀具领用申请单详细
+export function getPwCuttingToolApply(id) {
+ return request({
+ url: '/management/pwCuttingToolApply/' + id,
+ method: 'get'
+ })
+}
+
+// 新增刀具领用申请单
+export function addPwCuttingToolApply(data) {
+ return request({
+ url: '/management/pwCuttingToolApply',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改刀具领用申请单
+export function updatePwCuttingToolApply(data) {
+ return request({
+ url: '/management/pwCuttingToolApply',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除刀具领用申请单
+export function delPwCuttingToolApply(id) {
+ return request({
+ url: '/management/pwCuttingToolApply/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出刀具领用申请单
+export function exportPwCuttingToolApply(query) {
+ return request({
+ url: '/management/pwCuttingToolApply/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 审核刀具采购申请单
+export function audits(query) {
+ return request({
+ url: '/management/pwCuttingToolApply/auditPwCuttingToolApply',
+ method: 'get',
+ params: query
+ })
+}
+
+// 申请出库按钮
+export function applyForReceives(id) {
+ return request({
+ url: '/management/pwCuttingToolApply/applyForReceives/' + id,
+ method: 'delete'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwCuttingToolApplyDetail.js b/evo-tech-ui/src/api/management/pwCuttingToolApplyDetail.js
new file mode 100644
index 0000000..3b810f9
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwCuttingToolApplyDetail.js
@@ -0,0 +1,80 @@
+import request from '@/utils/request'
+
+// 查询刀具领用申请单详情列表
+export function listPwCuttingToolApplyDetail(query) {
+ return request({
+ url: '/management/pwCuttingToolApplyDetail/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询刀具领用申请单详情详细
+export function getPwCuttingToolApplyDetail(id) {
+ return request({
+ url: '/management/pwCuttingToolApplyDetail/' + id,
+ method: 'get'
+ })
+}
+
+// 新增刀具领用申请单详情
+export function addPwCuttingToolApplyDetail(data) {
+ return request({
+ url: '/management/pwCuttingToolApplyDetail',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改刀具领用申请单详情
+export function updatePwCuttingToolApplyDetail(data) {
+ return request({
+ url: '/management/pwCuttingToolApplyDetail',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除刀具领用申请单详情
+export function delPwCuttingToolApplyDetail(id) {
+ return request({
+ url: '/management/pwCuttingToolApplyDetail/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出刀具领用申请单详情
+export function exportPwCuttingToolApplyDetail(query) {
+ return request({
+ url: '/management/pwCuttingToolApplyDetail/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 生成采购单
+export function addApplyDetail(id) {
+ return request({
+ url: '/management/pwCuttingToolApplyDetail/addApplyDetail/' + id,
+ method: 'get'
+ })
+}
+
+//申请退还按钮
+export function handBacks(id) {
+ return request({
+ url: '/management/pwCuttingToolApplyDetail/handBacks/' + id,
+ method: 'delete'
+ })
+}
+
+export function uploadDispatchingFile(data){
+ return request({
+ url:'/management/pwCuttingToolApplyDetail/uploadDispatchings',
+ data:data,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ },
+ method:'post'
+ })
+}
diff --git a/evo-tech-ui/src/api/management/pwCuttingToolDelivery.js b/evo-tech-ui/src/api/management/pwCuttingToolDelivery.js
new file mode 100644
index 0000000..3d65419
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwCuttingToolDelivery.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询刀具出库单列表
+export function listPwCuttingToolDelivery(query) {
+ return request({
+ url: '/management/pwCuttingToolDelivery/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询刀具出库单详细
+export function getPwCuttingToolDelivery(id) {
+ return request({
+ url: '/management/pwCuttingToolDelivery/' + id,
+ method: 'get'
+ })
+}
+
+// 新增刀具出库单
+export function addPwCuttingToolDelivery(data) {
+ return request({
+ url: '/management/pwCuttingToolDelivery',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改刀具出库单
+export function updatePwCuttingToolDelivery(data) {
+ return request({
+ url: '/management/pwCuttingToolDelivery',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除刀具出库单
+export function delPwCuttingToolDelivery(id) {
+ return request({
+ url: '/management/pwCuttingToolDelivery/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出刀具出库单
+export function exportPwCuttingToolDelivery(query) {
+ return request({
+ url: '/management/pwCuttingToolDelivery/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwCuttingToolDeliveryDetail.js b/evo-tech-ui/src/api/management/pwCuttingToolDeliveryDetail.js
new file mode 100644
index 0000000..e30861b
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwCuttingToolDeliveryDetail.js
@@ -0,0 +1,69 @@
+import request from '@/utils/request'
+
+// 查询刀具出库单详情列表
+export function listPwCuttingToolDeliveryDetail(query) {
+ return request({
+ url: '/management/pwCuttingToolDeliveryDetail/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询刀具出库单详情详细
+export function getPwCuttingToolDeliveryDetail(id) {
+ return request({
+ url: '/management/pwCuttingToolDeliveryDetail/' + id,
+ method: 'get'
+ })
+}
+
+// 新增刀具出库单详情
+export function addPwCuttingToolDeliveryDetail(data) {
+ return request({
+ url: '/management/pwCuttingToolDeliveryDetail',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改刀具出库单详情
+export function updatePwCuttingToolDeliveryDetail(data) {
+ return request({
+ url: '/management/pwCuttingToolDeliveryDetail',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除刀具出库单详情
+export function delPwCuttingToolDeliveryDetail(id) {
+ return request({
+ url: '/management/pwCuttingToolDeliveryDetail/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出刀具出库单详情
+export function exportPwCuttingToolDeliveryDetail(query) {
+ return request({
+ url: '/management/pwCuttingToolDeliveryDetail/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 单个确认出库
+export function affirmOnes(id) {
+ return request({
+ url: '/management/pwCuttingToolDeliveryDetail/affirmOne/' + id,
+ method: 'get'
+ })
+}
+
+//退还入库
+export function handBacks(id) {
+ return request({
+ url: '/management/pwCuttingToolDeliveryDetail/handBacks/' + id,
+ method: 'get'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwCuttingToolGodownEntry.js b/evo-tech-ui/src/api/management/pwCuttingToolGodownEntry.js
new file mode 100644
index 0000000..b80ee02
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwCuttingToolGodownEntry.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询刀具入库单列表
+export function listPwCuttingToolGodownEntry(query) {
+ return request({
+ url: '/management/pwCuttingToolGodownEntry/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询刀具入库单详细
+export function getPwCuttingToolGodownEntry(id) {
+ return request({
+ url: '/management/pwCuttingToolGodownEntry/' + id,
+ method: 'get'
+ })
+}
+
+// 新增刀具入库单
+export function addPwCuttingToolGodownEntry(data) {
+ return request({
+ url: '/management/pwCuttingToolGodownEntry',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改刀具入库单
+export function updatePwCuttingToolGodownEntry(data) {
+ return request({
+ url: '/management/pwCuttingToolGodownEntry',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除刀具入库单
+export function delPwCuttingToolGodownEntry(id) {
+ return request({
+ url: '/management/pwCuttingToolGodownEntry/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出刀具入库单
+export function exportPwCuttingToolGodownEntry(query) {
+ return request({
+ url: '/management/pwCuttingToolGodownEntry/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwCuttingToolGodownEntryDetail.js b/evo-tech-ui/src/api/management/pwCuttingToolGodownEntryDetail.js
new file mode 100644
index 0000000..35dea19
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwCuttingToolGodownEntryDetail.js
@@ -0,0 +1,69 @@
+import request from '@/utils/request'
+
+// 查询刀具入库详情列表
+export function listPwCuttingToolGodownEntryDetail(query) {
+ return request({
+ url: '/management/pwCuttingToolGodownEntryDetail/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询刀具入库详情详细
+export function getPwCuttingToolGodownEntryDetail(id) {
+ return request({
+ url: '/management/pwCuttingToolGodownEntryDetail/' + id,
+ method: 'get'
+ })
+}
+
+// 新增刀具入库详情
+export function addPwCuttingToolGodownEntryDetail(data) {
+ return request({
+ url: '/management/pwCuttingToolGodownEntryDetail',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改刀具入库详情
+export function updatePwCuttingToolGodownEntryDetail(data) {
+ return request({
+ url: '/management/pwCuttingToolGodownEntryDetail',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除刀具入库详情
+export function delPwCuttingToolGodownEntryDetail(id) {
+ return request({
+ url: '/management/pwCuttingToolGodownEntryDetail/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出刀具入库详情
+export function exportPwCuttingToolGodownEntryDetail(query) {
+ return request({
+ url: '/management/pwCuttingToolGodownEntryDetail/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 确认入库刀具入库详情
+export function affirms(id) {
+ return request({
+ url: '/management/pwCuttingToolGodownEntryDetail/affirms/' + id,
+ method: 'delete'
+ })
+}
+
+//打印单据按钮
+export function prints(id) {
+ return request({
+ url: '/management/pwCuttingToolGodownEntryDetail/prints/' + id,
+ method: 'get'
+ })
+}
diff --git a/evo-tech-ui/src/api/management/pwCuttingToolInventoryDetail.js b/evo-tech-ui/src/api/management/pwCuttingToolInventoryDetail.js
new file mode 100644
index 0000000..076e5ee
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwCuttingToolInventoryDetail.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询刀具库存列表
+export function listPwCuttingToolInventoryDetail(query) {
+ return request({
+ url: '/management/pwCuttingToolInventoryDetail/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询刀具库存详细
+export function getPwCuttingToolInventoryDetail(id) {
+ return request({
+ url: '/management/pwCuttingToolInventoryDetail/' + id,
+ method: 'get'
+ })
+}
+
+// 新增刀具库存
+export function addPwCuttingToolInventoryDetail(data) {
+ return request({
+ url: '/management/pwCuttingToolInventoryDetail',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改刀具库存
+export function updatePwCuttingToolInventoryDetail(data) {
+ return request({
+ url: '/management/pwCuttingToolInventoryDetail',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除刀具库存
+export function delPwCuttingToolInventoryDetail(id) {
+ return request({
+ url: '/management/pwCuttingToolInventoryDetail/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出刀具库存
+export function exportPwCuttingToolInventoryDetail(query) {
+ return request({
+ url: '/management/pwCuttingToolInventoryDetail/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwCuttingToolMaintain.js b/evo-tech-ui/src/api/management/pwCuttingToolMaintain.js
new file mode 100644
index 0000000..f621452
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwCuttingToolMaintain.js
@@ -0,0 +1,70 @@
+import request from '@/utils/request'
+
+// 查询刀具维修申请单列表
+export function listPwCuttingToolMaintain(query) {
+ return request({
+ url: '/management/pwCuttingToolMaintain/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询刀具维修申请单详细
+export function getPwCuttingToolMaintain(id) {
+ return request({
+ url: '/management/pwCuttingToolMaintain/' + id,
+ method: 'get'
+ })
+}
+
+// 新增刀具维修申请单
+export function addPwCuttingToolMaintain(data) {
+ return request({
+ url: '/management/pwCuttingToolMaintain',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改刀具维修申请单
+export function updatePwCuttingToolMaintain(data) {
+ return request({
+ url: '/management/pwCuttingToolMaintain',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除刀具维修申请单
+export function delPwCuttingToolMaintain(id) {
+ return request({
+ url: '/management/pwCuttingToolMaintain/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出刀具维修申请单
+export function exportPwCuttingToolMaintain(query) {
+ return request({
+ url: '/management/pwCuttingToolMaintain/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 审核刀具采购申请单
+export function audits(query) {
+ return request({
+ url: '/management/pwCuttingToolMaintain/auditPwCuttingToolMaintain',
+ method: 'get',
+ params: query
+ })
+}
+
+// 申请出库按钮
+export function maintainForReceives(id) {
+ return request({
+ url: '/management/pwCuttingToolMaintain/maintainForReceives/' + id,
+ method: 'delete'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwCuttingToolMaintainDetail.js b/evo-tech-ui/src/api/management/pwCuttingToolMaintainDetail.js
new file mode 100644
index 0000000..44baa15
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwCuttingToolMaintainDetail.js
@@ -0,0 +1,70 @@
+import request from '@/utils/request'
+
+// 查询刀具维修申请单详情列表
+export function listPwCuttingToolMaintainDetail(query) {
+ return request({
+ url: '/management/pwCuttingToolMaintainDetail/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询刀具维修申请单详情详细
+export function getPwCuttingToolMaintainDetail(id) {
+ return request({
+ url: '/management/pwCuttingToolMaintainDetail/' + id,
+ method: 'get'
+ })
+}
+
+// 新增刀具维修申请单详情
+export function addPwCuttingToolMaintainDetail(data) {
+ return request({
+ url: '/management/pwCuttingToolMaintainDetail',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改刀具维修申请单详情
+export function updatePwCuttingToolMaintainDetail(data) {
+ return request({
+ url: '/management/pwCuttingToolMaintainDetail',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除刀具维修申请单详情
+export function delPwCuttingToolMaintainDetail(id) {
+ return request({
+ url: '/management/pwCuttingToolMaintainDetail/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出刀具维修申请单详情
+export function exportPwCuttingToolMaintainDetail(query) {
+ return request({
+ url: '/management/pwCuttingToolMaintainDetail/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 生成维修单
+export function addMaintainDetail(id) {
+ return request({
+ url: '/management/pwCuttingToolMaintainDetail/addMaintainDetail/' + id,
+ method: 'get'
+ })
+}
+
+// 申请入库刀具详情
+export function storages(data) {
+ return request({
+ url: '/management/pwCuttingToolMaintainDetail/storages',
+ method: 'post',
+ data: data
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwCuttingToolPurchase.js b/evo-tech-ui/src/api/management/pwCuttingToolPurchase.js
new file mode 100644
index 0000000..41d2e96
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwCuttingToolPurchase.js
@@ -0,0 +1,109 @@
+import request from '@/utils/request'
+
+// 查询刀具采购申请单列表
+export function listPwCuttingToolPurchase(query) {
+ return request({
+ url: '/management/pwCuttingToolPurchase/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询刀具采购申请单详细
+export function getPwCuttingToolPurchase(id) {
+ return request({
+ url: '/management/pwCuttingToolPurchase/' + id,
+ method: 'get'
+ })
+}
+
+// 新增刀具采购申请单
+export function addPwCuttingToolPurchase(data) {
+ return request({
+ url: '/management/pwCuttingToolPurchase',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改刀具采购申请单
+export function updatePwCuttingToolPurchase(data) {
+ return request({
+ url: '/management/pwCuttingToolPurchase',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除刀具采购申请单
+export function delPwCuttingToolPurchase(id) {
+ return request({
+ url: '/management/pwCuttingToolPurchase/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出刀具采购申请单
+export function exportPwCuttingToolPurchase(query) {
+ return request({
+ url: '/management/pwCuttingToolPurchase/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 审核刀具采购申请单
+export function audits(query) {
+ return request({
+ url: '/management/pwCuttingToolPurchase/auditPwCuttingToolPurchase',
+ method: 'get',
+ params: query
+ })
+}
+
+
+//打印合同
+export function printContract(id) {
+ return request({
+ url: '/management/pwCuttingToolPurchase/prints/' + id,
+ method: 'get'
+ })
+}
+
+//领导审批按钮
+export function lingDaoApprovers(id) {
+ return request({
+ url: '/management/pwCuttingToolPurchase/lingDaoApprover/' + id,
+ method: 'delete'
+ })
+}
+
+//申请付款
+export function addPayment(data) {
+ return request({
+ url: '/management/pwCuttingToolPurchase/addPayment',
+ method: 'post',
+ data: data
+ })
+}
+
+//生成物流费用单按钮
+export function addLogistics(data) {
+ return request({
+ url: '/management/pwCuttingToolPurchase/addLogistics',
+ method: 'post',
+ data: data
+ })
+}
+
+//上传合同
+export function uploadContractPDF(data){
+ return request({
+ url:'/management/pwCuttingToolPurchase/uploadContractPDF',
+ data:data,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ },
+ method:'post'
+ })
+}
diff --git a/evo-tech-ui/src/api/management/pwCuttingToolPurchaseDetail.js b/evo-tech-ui/src/api/management/pwCuttingToolPurchaseDetail.js
new file mode 100644
index 0000000..67acae4
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwCuttingToolPurchaseDetail.js
@@ -0,0 +1,77 @@
+import request from '@/utils/request'
+
+// 查询刀具采购详情列表
+export function listPwCuttingToolPurchaseDetail(query) {
+ return request({
+ url: '/management/pwCuttingToolPurchaseDetail/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询刀具采购详情详细
+export function getPwCuttingToolPurchaseDetail(id) {
+ return request({
+ url: '/management/pwCuttingToolPurchaseDetail/' + id,
+ method: 'get'
+ })
+}
+
+// 新增刀具采购详情
+export function addPwCuttingToolPurchaseDetail(data) {
+ return request({
+ url: '/management/pwCuttingToolPurchaseDetail',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改刀具采购详情
+export function updatePwCuttingToolPurchaseDetail(data) {
+ return request({
+ url: '/management/pwCuttingToolPurchaseDetail',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除刀具采购详情
+export function delPwCuttingToolPurchaseDetail(id) {
+ return request({
+ url: '/management/pwCuttingToolPurchaseDetail/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出刀具采购详情
+export function exportPwCuttingToolPurchaseDetail(query) {
+ return request({
+ url: '/management/pwCuttingToolPurchaseDetail/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 生成采购单
+export function addPurchaseDetail(id) {
+ return request({
+ url: '/management/pwCuttingToolPurchaseDetail/addPurchaseDetail/' + id,
+ method: 'get'
+ })
+}
+
+// 申请入库刀具详情
+export function storages(id) {
+ return request({
+ url: '/management/pwCuttingToolPurchaseDetail/storage/' + id,
+ method: 'delete'
+ })
+}
+
+// 撤销刀具入库
+export function revocations(id) {
+ return request({
+ url: '/management/pwCuttingToolPurchaseDetail/revocations/' + id,
+ method: 'delete'
+ })
+}
diff --git a/evo-tech-ui/src/api/management/pwCuttingToolScrap.js b/evo-tech-ui/src/api/management/pwCuttingToolScrap.js
new file mode 100644
index 0000000..62a2c22
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwCuttingToolScrap.js
@@ -0,0 +1,78 @@
+import request from '@/utils/request'
+
+// 查询刀具报废申请单列表
+export function listPwCuttingToolScrap(query) {
+ return request({
+ url: '/management/pwCuttingToolScrap/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询刀具报废申请单详细
+export function getPwCuttingToolScrap(id) {
+ return request({
+ url: '/management/pwCuttingToolScrap/' + id,
+ method: 'get'
+ })
+}
+
+// 新增刀具报废申请单
+export function addPwCuttingToolScrap(data) {
+ return request({
+ url: '/management/pwCuttingToolScrap',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改刀具报废申请单
+export function updatePwCuttingToolScrap(data) {
+ return request({
+ url: '/management/pwCuttingToolScrap',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除刀具报废申请单
+export function delPwCuttingToolScrap(id) {
+ return request({
+ url: '/management/pwCuttingToolScrap/' + id,
+ method: 'delete'
+ })
+}
+
+// 审核刀具采购申请单
+export function audits(query) {
+ return request({
+ url: '/management/pwCuttingToolScrap/auditPwCuttingToolScrap',
+ method: 'get',
+ params: query
+ })
+}
+
+// 导出刀具报废申请单
+export function exportPwCuttingToolScrap(query) {
+ return request({
+ url: '/management/pwCuttingToolScrap/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 报废申请入库按钮
+export function scrapForReceives(id) {
+ return request({
+ url: '/management/pwCuttingToolScrap/scrapForReceives/' + id,
+ method: 'delete'
+ })
+}
+
+// 维修申请入库按钮
+export function maintainForReceives(id) {
+ return request({
+ url: '/management/pwCuttingToolScrap/maintainForReceives/' + id,
+ method: 'delete'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwCuttingToolScrapDetail.js b/evo-tech-ui/src/api/management/pwCuttingToolScrapDetail.js
new file mode 100644
index 0000000..6bef0ca
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwCuttingToolScrapDetail.js
@@ -0,0 +1,61 @@
+import request from '@/utils/request'
+
+// 查询刀具报废详情列表
+export function listPwCuttingToolScrapDetail(query) {
+ return request({
+ url: '/management/pwCuttingToolScrapDetail/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询刀具报废详情详细
+export function getPwCuttingToolScrapDetail(id) {
+ return request({
+ url: '/management/pwCuttingToolScrapDetail/' + id,
+ method: 'get'
+ })
+}
+
+// 新增刀具报废详情
+export function addPwCuttingToolScrapDetail(data) {
+ return request({
+ url: '/management/pwCuttingToolScrapDetail',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改刀具报废详情
+export function updatePwCuttingToolScrapDetail(data) {
+ return request({
+ url: '/management/pwCuttingToolScrapDetail',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除刀具报废详情
+export function delPwCuttingToolScrapDetail(id) {
+ return request({
+ url: '/management/pwCuttingToolScrapDetail/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出刀具报废详情
+export function exportPwCuttingToolScrapDetail(query) {
+ return request({
+ url: '/management/pwCuttingToolScrapDetail/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 生成报废单
+export function addScrapDetail(id) {
+ return request({
+ url: '/management/pwCuttingToolScrapDetail/addScrapDetail/' + id,
+ method: 'get'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwCuttingToolScrapGodownEntry.js b/evo-tech-ui/src/api/management/pwCuttingToolScrapGodownEntry.js
new file mode 100644
index 0000000..a747722
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwCuttingToolScrapGodownEntry.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询刀具报废入库单列表
+export function listPwCuttingToolScrapGodownEntry(query) {
+ return request({
+ url: '/management/pwCuttingToolScrapGodownEntry/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询刀具报废入库单详细
+export function getPwCuttingToolScrapGodownEntry(id) {
+ return request({
+ url: '/management/pwCuttingToolScrapGodownEntry/' + id,
+ method: 'get'
+ })
+}
+
+// 新增刀具报废入库单
+export function addPwCuttingToolScrapGodownEntry(data) {
+ return request({
+ url: '/management/pwCuttingToolScrapGodownEntry',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改刀具报废入库单
+export function updatePwCuttingToolScrapGodownEntry(data) {
+ return request({
+ url: '/management/pwCuttingToolScrapGodownEntry',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除刀具报废入库单
+export function delPwCuttingToolScrapGodownEntry(id) {
+ return request({
+ url: '/management/pwCuttingToolScrapGodownEntry/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出刀具报废入库单
+export function exportPwCuttingToolScrapGodownEntry(query) {
+ return request({
+ url: '/management/pwCuttingToolScrapGodownEntry/export',
+ method: 'get',
+ params: query
+ })
+}
diff --git a/evo-tech-ui/src/api/management/pwDanceNotStandard.js b/evo-tech-ui/src/api/management/pwDanceNotStandard.js
new file mode 100644
index 0000000..0329f7a
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwDanceNotStandard.js
@@ -0,0 +1,73 @@
+import request from '@/utils/request'
+
+// 查询舞非型号列表
+export function listPwDanceNotStandard(query) {
+ return request({
+ url: '/management/pwDanceNotStandard/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询舞非型号详细
+export function getPwDanceNotStandard(id) {
+ return request({
+ url: '/management/pwDanceNotStandard/' + id,
+ method: 'get'
+ })
+}
+
+// 新增舞非型号
+export function addPwDanceNotStandard(data) {
+ return request({
+ url: '/management/pwDanceNotStandard',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改舞非型号
+export function updatePwDanceNotStandard(data) {
+ return request({
+ url: '/management/pwDanceNotStandard',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除舞非型号
+export function delPwDanceNotStandard(id) {
+ return request({
+ url: '/management/pwDanceNotStandard/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出舞非型号
+export function exportPwDanceNotStandard(query) {
+ return request({
+ url: '/management/pwDanceNotStandard/export',
+ method: 'get',
+ params: query
+ })
+}
+
+export function getPwDanceNotStandardByType(query) {
+ return request({
+ url: '/management/pwDanceNotStandard/getPwDanceNotStandardByType',
+ method: 'get',
+ params: query
+ })
+}
+
+//WF图纸文件上传
+export function uploadFile(data){
+ return request({
+ url:'/management/pwDanceNotStandard/uploadWF',
+ data:data,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ },
+ method:'post'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwDefectiveMaterial.js b/evo-tech-ui/src/api/management/pwDefectiveMaterial.js
new file mode 100644
index 0000000..f8eaf34
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwDefectiveMaterial.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询残料列表
+export function listPwDefectiveMaterial(query) {
+ return request({
+ url: '/management/pwDefectiveMaterial/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询残料详细
+export function getPwDefectiveMaterial(id) {
+ return request({
+ url: '/management/pwDefectiveMaterial/' + id,
+ method: 'get'
+ })
+}
+
+// 新增残料
+export function addPwDefectiveMaterial(data) {
+ return request({
+ url: '/management/pwDefectiveMaterial',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改残料
+export function updatePwDefectiveMaterial(data) {
+ return request({
+ url: '/management/pwDefectiveMaterial',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除残料
+export function delPwDefectiveMaterial(id) {
+ return request({
+ url: '/management/pwDefectiveMaterial/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出残料
+export function exportPwDefectiveMaterial(query) {
+ return request({
+ url: '/management/pwDefectiveMaterial/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwEquipmentInfo.js b/evo-tech-ui/src/api/management/pwEquipmentInfo.js
new file mode 100644
index 0000000..7b7446e
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwEquipmentInfo.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询生产设备信息列表
+export function listPwEquipmentInfo(query) {
+ return request({
+ url: '/management/pwEquipmentInfo/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询生产设备信息详细
+export function getPwEquipmentInfo(id) {
+ return request({
+ url: '/management/pwEquipmentInfo/' + id,
+ method: 'get'
+ })
+}
+
+// 新增生产设备信息
+export function addPwEquipmentInfo(data) {
+ return request({
+ url: '/management/pwEquipmentInfo',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改生产设备信息
+export function updatePwEquipmentInfo(data) {
+ return request({
+ url: '/management/pwEquipmentInfo',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除生产设备信息
+export function delPwEquipmentInfo(id) {
+ return request({
+ url: '/management/pwEquipmentInfo/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出生产设备信息
+export function exportPwEquipmentInfo(query) {
+ return request({
+ url: '/management/pwEquipmentInfo/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwFuturesOrders.js b/evo-tech-ui/src/api/management/pwFuturesOrders.js
new file mode 100644
index 0000000..b274d8f
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwFuturesOrders.js
@@ -0,0 +1,61 @@
+import request from '@/utils/request'
+
+// 查询预采购单列表
+export function listPwFuturesOrders(query) {
+ return request({
+ url: '/management/pwFuturesOrders/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询预采购单详细
+export function getPwFuturesOrders(id) {
+ return request({
+ url: '/management/pwFuturesOrders/' + id,
+ method: 'get'
+ })
+}
+
+// 新增预采购单
+export function addPwFuturesOrders(data) {
+ return request({
+ url: '/management/pwFuturesOrders',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改预采购单
+export function updatePwFuturesOrders(data) {
+ return request({
+ url: '/management/pwFuturesOrders',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除预采购单
+export function delPwFuturesOrders(id) {
+ return request({
+ url: '/management/pwFuturesOrders/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出预采购单
+export function exportPwFuturesOrders(query) {
+ return request({
+ url: '/management/pwFuturesOrders/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 审核预采购单
+export function audits(id) {
+ return request({
+ url: '/management/pwFuturesOrders/audits/' + id,
+ method: 'delete'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwFuturesOrdersDetail.js b/evo-tech-ui/src/api/management/pwFuturesOrdersDetail.js
new file mode 100644
index 0000000..aa7095a
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwFuturesOrdersDetail.js
@@ -0,0 +1,69 @@
+import request from '@/utils/request'
+
+// 查询预采购单明细列表
+export function listPwFuturesOrdersDetail(query) {
+ return request({
+ url: '/management/pwFuturesOrdersDetail/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询预采购单明细详细
+export function getPwFuturesOrdersDetail(id) {
+ return request({
+ url: '/management/pwFuturesOrdersDetail/' + id,
+ method: 'get'
+ })
+}
+
+// 新增预采购单明细
+export function addPwFuturesOrdersDetail(data) {
+ return request({
+ url: '/management/pwFuturesOrdersDetail',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改预采购单明细
+export function updatePwFuturesOrdersDetail(data) {
+ return request({
+ url: '/management/pwFuturesOrdersDetail',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除预采购单明细
+export function delPwFuturesOrdersDetail(id) {
+ return request({
+ url: '/management/pwFuturesOrdersDetail/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出预采购单明细
+export function exportPwFuturesOrdersDetail(query) {
+ return request({
+ url: '/management/pwFuturesOrdersDetail/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 生成采购单
+export function generates(id) {
+ return request({
+ url: '/management/pwFuturesOrdersDetail/generates/' + id,
+ method: 'delete'
+ })
+}
+
+//撤销生成的采购单
+export function revocations(id) {
+ return request({
+ url: '/management/pwFuturesOrdersDetail/revocations/' + id,
+ method: 'delete'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwFuturesOrdersDetailTwo.js b/evo-tech-ui/src/api/management/pwFuturesOrdersDetailTwo.js
new file mode 100644
index 0000000..6fb4db2
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwFuturesOrdersDetailTwo.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询预采购单明细详情列表
+export function listPwFuturesOrdersDetailTwo(query) {
+ return request({
+ url: '/management/pwFuturesOrdersDetailTwo/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询预采购单明细详情详细
+export function getPwFuturesOrdersDetailTwo(id) {
+ return request({
+ url: '/management/pwFuturesOrdersDetailTwo/' + id,
+ method: 'get'
+ })
+}
+
+// 新增预采购单明细详情
+export function addPwFuturesOrdersDetailTwo(data) {
+ return request({
+ url: '/management/pwFuturesOrdersDetailTwo',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改预采购单明细详情
+export function updatePwFuturesOrdersDetailTwo(data) {
+ return request({
+ url: '/management/pwFuturesOrdersDetailTwo',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除预采购单明细详情
+export function delPwFuturesOrdersDetailTwo(id) {
+ return request({
+ url: '/management/pwFuturesOrdersDetailTwo/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出预采购单明细详情
+export function exportPwFuturesOrdersDetailTwo(query) {
+ return request({
+ url: '/management/pwFuturesOrdersDetailTwo/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwHeightPermittedInfo.js b/evo-tech-ui/src/api/management/pwHeightPermittedInfo.js
new file mode 100644
index 0000000..4d75bcc
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwHeightPermittedInfo.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询安全库存限制信息列表
+export function listPwHeightPermittedInfo(query) {
+ return request({
+ url: '/management/pwHeightPermittedInfo/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询安全库存限制信息详细
+export function getPwHeightPermittedInfo(id) {
+ return request({
+ url: '/management/pwHeightPermittedInfo/' + id,
+ method: 'get'
+ })
+}
+
+// 新增安全库存限制信息
+export function addPwHeightPermittedInfo(data) {
+ return request({
+ url: '/management/pwHeightPermittedInfo',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改安全库存限制信息
+export function updatePwHeightPermittedInfo(data) {
+ return request({
+ url: '/management/pwHeightPermittedInfo',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除安全库存限制信息
+export function delPwHeightPermittedInfo(id) {
+ return request({
+ url: '/management/pwHeightPermittedInfo/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出安全库存限制信息
+export function exportPwHeightPermittedInfo(query) {
+ return request({
+ url: '/management/pwHeightPermittedInfo/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwInspectionCard.js b/evo-tech-ui/src/api/management/pwInspectionCard.js
new file mode 100644
index 0000000..be26932
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwInspectionCard.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询检验单列表
+export function listPwInspectionCard(query) {
+ return request({
+ url: '/management/pwInspectionCard/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询检验单详细
+export function getPwInspectionCard(id) {
+ return request({
+ url: '/management/pwInspectionCard/' + id,
+ method: 'get'
+ })
+}
+
+// 新增检验单
+export function addPwInspectionCard(data) {
+ return request({
+ url: '/management/pwInspectionCard',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改检验单
+export function updatePwInspectionCard(data) {
+ return request({
+ url: '/management/pwInspectionCard',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除检验单
+export function delPwInspectionCard(id) {
+ return request({
+ url: '/management/pwInspectionCard/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出检验单
+export function exportPwInspectionCard(query) {
+ return request({
+ url: '/management/pwInspectionCard/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwInspectionCardDetail.js b/evo-tech-ui/src/api/management/pwInspectionCardDetail.js
new file mode 100644
index 0000000..a5a656c
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwInspectionCardDetail.js
@@ -0,0 +1,69 @@
+import request from '@/utils/request'
+
+// 查询检验单详情列表
+export function listPwInspectionCardDetail(query) {
+ return request({
+ url: '/management/pwInspectionCardDetail/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询检验单详情详细
+export function getPwInspectionCardDetail(id) {
+ return request({
+ url: '/management/pwInspectionCardDetail/' + id,
+ method: 'get'
+ })
+}
+
+// 新增检验单详情
+export function addPwInspectionCardDetail(data) {
+ return request({
+ url: '/management/pwInspectionCardDetail',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改检验单详情
+export function updatePwInspectionCardDetail(data) {
+ return request({
+ url: '/management/pwInspectionCardDetail',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除检验单详情
+export function delPwInspectionCardDetail(id) {
+ return request({
+ url: '/management/pwInspectionCardDetail/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出检验单详情
+export function exportPwInspectionCardDetail(query) {
+ return request({
+ url: '/management/pwInspectionCardDetail/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 生成检验单按钮
+export function generates(id) {
+ return request({
+ url: '/management/pwInspectionCardDetail/generates/' + id,
+ method: 'delete'
+ })
+}
+
+//确认检验按钮
+export function affirms(id) {
+ return request({
+ url: '/management/pwInspectionCardDetail/affirms/' + id,
+ method: 'delete'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwInvoiceInfo.js b/evo-tech-ui/src/api/management/pwInvoiceInfo.js
new file mode 100644
index 0000000..e610ddb
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwInvoiceInfo.js
@@ -0,0 +1,65 @@
+import request from '@/utils/request'
+
+// 查询发票信息列表
+export function listPwInvoiceInfo(query) {
+ return request({
+ url: '/management/pwInvoiceInfo/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询发票信息详细
+export function getPwInvoiceInfo(id) {
+ return request({
+ url: '/management/pwInvoiceInfo/' + id,
+ method: 'get'
+ })
+}
+
+// 新增发票信息
+export function addPwInvoiceInfo(data) {
+ return request({
+ url: '/management/pwInvoiceInfo',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改发票信息
+export function updatePwInvoiceInfo(data) {
+ return request({
+ url: '/management/pwInvoiceInfo',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除发票信息
+export function delPwInvoiceInfo(id) {
+ return request({
+ url: '/management/pwInvoiceInfo/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出发票信息
+export function exportPwInvoiceInfo(query) {
+ return request({
+ url: '/management/pwInvoiceInfo/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//PDF文件上传
+export function uploadPDFFile(data){
+ return request({
+ url:'/management/pwInvoiceInfo/uploadInvoice',
+ data:data,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ },
+ method:'post'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwLetterOfAdviceDetails.js b/evo-tech-ui/src/api/management/pwLetterOfAdviceDetails.js
new file mode 100644
index 0000000..59f4782
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwLetterOfAdviceDetails.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询产品发货通知单详情列表
+export function listPwLetterOfAdviceDetails(query) {
+ return request({
+ url: '/management/pwLetterOfAdviceDetails/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询产品发货通知单详情详细
+export function getPwLetterOfAdviceDetails(id) {
+ return request({
+ url: '/management/pwLetterOfAdviceDetails/' + id,
+ method: 'get'
+ })
+}
+
+// 新增产品发货通知单详情
+export function addPwLetterOfAdviceDetails(data) {
+ return request({
+ url: '/management/pwLetterOfAdviceDetails',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改产品发货通知单详情
+export function updatePwLetterOfAdviceDetails(data) {
+ return request({
+ url: '/management/pwLetterOfAdviceDetails',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除产品发货通知单详情
+export function delPwLetterOfAdviceDetails(id) {
+ return request({
+ url: '/management/pwLetterOfAdviceDetails/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出产品发货通知单详情
+export function exportPwLetterOfAdviceDetails(query) {
+ return request({
+ url: '/management/pwLetterOfAdviceDetails/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwLetterOfAdviceProduct.js b/evo-tech-ui/src/api/management/pwLetterOfAdviceProduct.js
new file mode 100644
index 0000000..b469f89
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwLetterOfAdviceProduct.js
@@ -0,0 +1,70 @@
+import request from '@/utils/request'
+
+// 查询产品发货通知单关联列表
+export function listPwLetterOfAdviceProduct(query) {
+ return request({
+ url: '/management/letterOfAdviceProduct/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询产品发货通知单关联详细
+export function getPwLetterOfAdviceProduct(id) {
+ return request({
+ url: '/management/letterOfAdviceProduct/' + id,
+ method: 'get'
+ })
+}
+
+// 新增产品发货通知单关联
+export function addPwLetterOfAdviceProduct(data) {
+ return request({
+ url: '/management/letterOfAdviceProduct',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改产品发货通知单关联
+export function updatePwLetterOfAdviceProduct(data) {
+ return request({
+ url: '/management/letterOfAdviceProduct',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除产品发货通知单关联
+export function delPwLetterOfAdviceProduct(id) {
+ return request({
+ url: '/management/letterOfAdviceProduct/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出产品发货通知单关联
+export function exportPwLetterOfAdviceProduct(query) {
+ return request({
+ url: '/management/letterOfAdviceProduct/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 申请发货
+export function updateShipmentss(data) {
+ return request({
+ url: '/management/letterOfAdviceProduct/shipmentss',
+ method: 'put',
+ data: data
+ })
+}
+
+//转为库存商品
+export function transitions(id) {
+ return request({
+ url: '/management/letterOfAdviceProduct/transitions/' + id,
+ method: 'delete'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwMaterialBorrowInfo.js b/evo-tech-ui/src/api/management/pwMaterialBorrowInfo.js
new file mode 100644
index 0000000..a640c54
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwMaterialBorrowInfo.js
@@ -0,0 +1,85 @@
+import request from '@/utils/request'
+
+// 查询借用信息列表
+export function listPwMaterialBorrowInfo(query) {
+ return request({
+ url: '/management/pwMaterialBorrowInfo/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询借用信息详细
+export function getPwMaterialBorrowInfo(id) {
+ return request({
+ url: '/management/pwMaterialBorrowInfo/' + id,
+ method: 'get'
+ })
+}
+
+// 新增借用信息
+export function addPwMaterialBorrowInfo(data) {
+ return request({
+ url: '/management/pwMaterialBorrowInfo',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改借用信息
+export function updatePwMaterialBorrowInfo(data) {
+ return request({
+ url: '/management/pwMaterialBorrowInfo',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除借用信息
+export function delPwMaterialBorrowInfo(id) {
+ return request({
+ url: '/management/pwMaterialBorrowInfo/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出借用信息
+export function exportPwMaterialBorrowInfo(query) {
+ return request({
+ url: '/management/pwMaterialBorrowInfo/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//查询bom信息
+export function getBomLists() {
+ return request({
+ url: '/management/pwMaterialBorrowInfo/getBomLists/',
+ method: 'get',
+ })
+}
+
+//审核按钮
+export function audits(id) {
+ return request({
+ url: '/management/pwMaterialBorrowInfo/audits/' + id,
+ method: 'delete'
+ })
+}
+
+//申请借用
+export function deliverys(id) {
+ return request({
+ url: '/management/pwMaterialBorrowInfo/deliverys/' + id,
+ method: 'delete'
+ })
+}
+
+//申请退还
+export function handBacks(id) {
+ return request({
+ url: '/management/pwMaterialBorrowInfo/handBacks/' + id,
+ method: 'delete'
+ })
+}
diff --git a/evo-tech-ui/src/api/management/pwMaterialMaterials.js b/evo-tech-ui/src/api/management/pwMaterialMaterials.js
new file mode 100644
index 0000000..7ffabd4
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwMaterialMaterials.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询物料原材料列表
+export function listPwMaterialMaterials(query) {
+ return request({
+ url: '/management/pwMaterialMaterials/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询物料原材料详细
+export function getPwMaterialMaterials(id) {
+ return request({
+ url: '/management/pwMaterialMaterials/' + id,
+ method: 'get'
+ })
+}
+
+// 新增物料原材料
+export function addPwMaterialMaterials(data) {
+ return request({
+ url: '/management/pwMaterialMaterials',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改物料原材料
+export function updatePwMaterialMaterials(data) {
+ return request({
+ url: '/management/pwMaterialMaterials',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除物料原材料
+export function delPwMaterialMaterials(id) {
+ return request({
+ url: '/management/pwMaterialMaterials/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出物料原材料
+export function exportPwMaterialMaterials(query) {
+ return request({
+ url: '/management/pwMaterialMaterials/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwMaterialPrice.js b/evo-tech-ui/src/api/management/pwMaterialPrice.js
new file mode 100644
index 0000000..2b3e5da
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwMaterialPrice.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询物料价格校验列表
+export function listPwMaterialPrice(query) {
+ return request({
+ url: '/management/pwMaterialPrice/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询物料价格校验详细
+export function getPwMaterialPrice(id) {
+ return request({
+ url: '/management/pwMaterialPrice/' + id,
+ method: 'get'
+ })
+}
+
+// 新增物料价格校验
+export function addPwMaterialPrice(data) {
+ return request({
+ url: '/management/pwMaterialPrice',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改物料价格校验
+export function updatePwMaterialPrice(data) {
+ return request({
+ url: '/management/pwMaterialPrice',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除物料价格校验
+export function delPwMaterialPrice(id) {
+ return request({
+ url: '/management/pwMaterialPrice/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出物料价格校验
+export function exportPwMaterialPrice(query) {
+ return request({
+ url: '/management/pwMaterialPrice/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwMaterialProcess.js b/evo-tech-ui/src/api/management/pwMaterialProcess.js
new file mode 100644
index 0000000..43edc25
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwMaterialProcess.js
@@ -0,0 +1,65 @@
+import request from '@/utils/request'
+
+// 查询物料工序信息列表
+export function listPwMaterialProcess(query) {
+ return request({
+ url: '/management/pwMaterialProcess/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询物料工序信息详细
+export function getPwMaterialProcess(id) {
+ return request({
+ url: '/management/pwMaterialProcess/' + id,
+ method: 'get'
+ })
+}
+
+// 新增物料工序信息
+export function addPwMaterialProcess(data) {
+ return request({
+ url: '/management/pwMaterialProcess',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改物料工序信息
+export function updatePwMaterialProcess(data) {
+ return request({
+ url: '/management/pwMaterialProcess',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除物料工序信息
+export function delPwMaterialProcess(id) {
+ return request({
+ url: '/management/pwMaterialProcess/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出物料工序信息
+export function exportPwMaterialProcess(query) {
+ return request({
+ url: '/management/pwMaterialProcess/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//上传文件
+export function uploadEndowmentInsuranceFile(data){
+ return request({
+ url:'/management/pwMaterialProcess/uploadEndowmentInsuranceFile',
+ data:data,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ },
+ method:'post'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwModulePart.js b/evo-tech-ui/src/api/management/pwModulePart.js
new file mode 100644
index 0000000..b5cff75
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwModulePart.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询零部件关联列表
+export function listPwModulePart(query) {
+ return request({
+ url: '/management/pwModulePart/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询零部件关联详细
+export function getPwModulePart(id) {
+ return request({
+ url: '/management/pwModulePart/' + id,
+ method: 'get'
+ })
+}
+
+// 新增零部件关联
+export function addPwModulePart(data) {
+ return request({
+ url: '/management/pwModulePart',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改零部件关联
+export function updatePwModulePart(data) {
+ return request({
+ url: '/management/pwModulePart',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除零部件关联
+export function delPwModulePart(id) {
+ return request({
+ url: '/management/pwModulePart/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出零部件关联
+export function exportPwModulePart(query) {
+ return request({
+ url: '/management/pwModulePart/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwOtherCorrespondent.js b/evo-tech-ui/src/api/management/pwOtherCorrespondent.js
new file mode 100644
index 0000000..7b58e71
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwOtherCorrespondent.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询其它往来单位信息列表
+export function listPwOtherCorrespondent(query) {
+ return request({
+ url: '/management/pwOtherCorrespondent/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询其它往来单位信息详细
+export function getPwOtherCorrespondent(id) {
+ return request({
+ url: '/management/pwOtherCorrespondent/' + id,
+ method: 'get'
+ })
+}
+
+// 新增其它往来单位信息
+export function addPwOtherCorrespondent(data) {
+ return request({
+ url: '/management/pwOtherCorrespondent',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改其它往来单位信息
+export function updatePwOtherCorrespondent(data) {
+ return request({
+ url: '/management/pwOtherCorrespondent',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除其它往来单位信息
+export function delPwOtherCorrespondent(id) {
+ return request({
+ url: '/management/pwOtherCorrespondent/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出其它往来单位信息
+export function exportPwOtherCorrespondent(query) {
+ return request({
+ url: '/management/pwOtherCorrespondent/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwOutsourceContract.js b/evo-tech-ui/src/api/management/pwOutsourceContract.js
new file mode 100644
index 0000000..257b7d6
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwOutsourceContract.js
@@ -0,0 +1,97 @@
+import request from '@/utils/request'
+
+// 查询外协合同信息列表
+export function listPwOutsourceContract(query) {
+ return request({
+ url: '/management/pwOutsourceContract/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询外协合同信息详细
+export function getPwOutsourceContract(id) {
+ return request({
+ url: '/management/pwOutsourceContract/' + id,
+ method: 'get'
+ })
+}
+
+// 新增外协合同信息
+export function addPwOutsourceContract(data) {
+ return request({
+ url: '/management/pwOutsourceContract',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改外协合同信息
+export function updatePwOutsourceContract(data) {
+ return request({
+ url: '/management/pwOutsourceContract',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除外协合同信息
+export function delPwOutsourceContract(id) {
+ return request({
+ url: '/management/pwOutsourceContract/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出外协合同信息
+export function exportPwOutsourceContract(query) {
+ return request({
+ url: '/management/pwOutsourceContract/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//开具发票功能
+export function issueAnInvoices(id) {
+ return request({
+ url: '/management/pwOutsourceContract/issueAnInvoices/' + id,
+ method: 'delete'
+ })
+}
+
+//打印合同
+export function prints(id) {
+ return request({
+ url: '/management/pwOutsourceContract/prints/' + id,
+ method: 'get'
+ })
+}
+//上传合同
+export function uploadContractPDF(data){
+ return request({
+ url:'/management/pwOutsourceContract/uploadContractPDF',
+ data:data,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ },
+ method:'post'
+ })
+}
+
+//生成物流费用单按钮
+export function addLogistics(data) {
+ return request({
+ url: '/management/pwOutsourceContract/addLogistics',
+ method: 'post',
+ data: data
+ })
+}
+
+//领导审批按钮
+export function lingDaoApprovers(id) {
+ return request({
+ url: '/management/pwOutsourceContract/lingDaoApprover/' + id,
+ method: 'get'
+ })
+}
diff --git a/evo-tech-ui/src/api/management/pwOutsourceContractDetail.js b/evo-tech-ui/src/api/management/pwOutsourceContractDetail.js
new file mode 100644
index 0000000..7c2d528
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwOutsourceContractDetail.js
@@ -0,0 +1,146 @@
+import request from '@/utils/request'
+
+// 查询外协合同详情信息列表
+export function listPwOutsourceContractDetail(query) {
+ return request({
+ url: '/management/pwOutsourceContractDetail/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询外协合同详情信息详细
+export function getPwOutsourceContractDetail(id) {
+ return request({
+ url: '/management/pwOutsourceContractDetail/' + id,
+ method: 'get'
+ })
+}
+
+// 新增外协合同详情信息
+export function addPwOutsourceContractDetail(data) {
+ return request({
+ url: '/management/pwOutsourceContractDetail',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改外协合同详情信息
+export function updatePwOutsourceContractDetail(data) {
+ return request({
+ url: '/management/pwOutsourceContractDetail',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除外协合同详情信息
+export function delPwOutsourceContractDetail(id) {
+ return request({
+ url: '/management/pwOutsourceContractDetail/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出外协合同详情信息
+export function exportPwOutsourceContractDetail(query) {
+ return request({
+ url: '/management/pwOutsourceContractDetail/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//生成外协合同
+export function addPwOutsourceContracts(id) {
+ return request({
+ url: '/management/pwOutsourceContractDetail/addPwOutsourceContracts/' + id,
+ method: 'delete'
+ })
+}
+
+// 申请质检
+export function storages(data) {
+ return request({
+ url: '/management/pwOutsourceContractDetail/storages',
+ method: 'put',
+ data: data
+ })
+}
+
+// 查询数量保存详细
+export function getPwBomNumberTwo(id) {
+ return request({
+ url: '/management/pwOutsourceContractDetail/getPwBomNumberTwo/' + id,
+ method: 'get'
+ })
+}
+
+//毛坯物料申请领料
+export function getWorkblanks(data) {
+ return request({
+ url: '/management/pwOutsourceContractDetail/getWorkblanks/',
+ method: 'put',
+ data: data
+ })
+}
+
+// 撤销申请质检按钮
+export function revocationBoms(id) {
+ return request({
+ url: '/management/pwOutsourceContractDetail/revocationBoms/' + id,
+ method: 'delete'
+ })
+}
+
+// 撤销申请领料按钮
+export function revocationLingliaos(id) {
+ return request({
+ url: '/management/pwOutsourceContractDetail/revocationLingliaos/' + id,
+ method: 'delete'
+ })
+}
+
+export function downloadPdfs(id) {
+ return request({
+ url: '/management/pwOutsourceContractDetail/downloadPdfs/' + id,
+ method: 'get'
+ })
+}
+
+// 批量申请质检
+export function storageAlls(id) {
+ return request({
+ url: '/management/pwOutsourceContractDetail/storageAlls/' + id,
+ method: 'delete'
+ })
+}
+
+export function listProductReceipt(id) {
+ return request({
+ url: '/management/pwOutsourceContractDetail/listProductReceipt/' + id,
+ method: 'delete'
+ })
+}
+
+//打印单据按钮
+export function prints(id) {
+ return request({
+ url: '/management/pwOutsourceContractDetail/prints/' + id,
+ method: 'get'
+ })
+}
+
+
+//物料价格文件上传
+export function uploadFiles(data){
+ return request({
+ url:'/management/pwOutsourceContractDetail/uploadFiles',
+ data:data,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ },
+ method:'post'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwPredictPurchase.js b/evo-tech-ui/src/api/management/pwPredictPurchase.js
new file mode 100644
index 0000000..f812f83
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwPredictPurchase.js
@@ -0,0 +1,107 @@
+import request from '@/utils/request'
+
+// 查询预采购单列表
+export function listPurchase(query) {
+ return request({
+ url: '/management/predictPurchase/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询预采购单详细
+export function getPurchase(id) {
+ return request({
+ url: '/management/predictPurchase/' + id,
+ method: 'get'
+ })
+}
+
+// 新增预采购单
+export function addPurchase(data) {
+ return request({
+ url: '/management/predictPurchase',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改预采购单
+export function updatePurchase(data) {
+ return request({
+ url: '/management/predictPurchase',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除预采购单
+export function delPurchase(id) {
+ return request({
+ url: '/management/predictPurchase/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出预采购单
+export function exportPurchase(query) {
+ return request({
+ url: '/management/predictPurchase/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//审核外购件预采购单
+export function audits(id) {
+ return request({
+ url: '/management/predictPurchase/audits/' + id,
+ method: 'delete'
+ })
+}
+
+//打印合同
+export function printContract(id) {
+ return request({
+ url: '/management/predictPurchase/prints/' + id,
+ method: 'get'
+ })
+}
+
+//申请付款
+export function addPayment(data) {
+ return request({
+ url: '/management/predictPurchase/addPayment',
+ method: 'post',
+ data: data
+ })
+}
+
+//生成物流费用单按钮
+export function addLogistics(data) {
+ return request({
+ url: '/management/predictPurchase/addLogistics',
+ method: 'post',
+ data: data
+ })
+}
+
+
+//领导审批按钮
+export function lingDaoApprovers(id) {
+ return request({
+ url: '/management/predictPurchase/lingDaoApprover/' + id,
+ method: 'delete'
+ })
+}
+//上传合同
+export function uploadContractPDF(data){
+ return request({
+ url:'/management/predictPurchase/uploadContractPDF',
+ data:data,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ },
+ method:'post'
+ })
+}
diff --git a/evo-tech-ui/src/api/management/pwPredictPurchaseTwo.js b/evo-tech-ui/src/api/management/pwPredictPurchaseTwo.js
new file mode 100644
index 0000000..907a17f
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwPredictPurchaseTwo.js
@@ -0,0 +1,62 @@
+import request from '@/utils/request'
+
+// 查询预采购单详情列表
+export function listPwPredictPurchaseTwo(query) {
+ return request({
+ url: '/management/PwPredictPurchaseTwo/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询预采购单详情详细
+export function getPwPredictPurchaseTwo(id) {
+ return request({
+ url: '/management/PwPredictPurchaseTwo/' + id,
+ method: 'get'
+ })
+}
+
+// 新增预采购单详情
+export function addPwPredictPurchaseTwo(data) {
+ return request({
+ url: '/management/PwPredictPurchaseTwo',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改预采购单详情
+export function updatePwPredictPurchaseTwo(data) {
+ return request({
+ url: '/management/PwPredictPurchaseTwo',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除预采购单详情
+export function delPwPredictPurchaseTwo(id) {
+ return request({
+ url: '/management/PwPredictPurchaseTwo/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出预采购单详情
+export function exportPwPredictPurchaseTwo(query) {
+ return request({
+ url: '/management/PwPredictPurchaseTwo/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//申请质检
+export function storages(data) {
+ return request({
+ url: '/management/PwPredictPurchaseTwo/storages',
+ method: 'put',
+ data: data
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwProcess.js b/evo-tech-ui/src/api/management/pwProcess.js
new file mode 100644
index 0000000..5c7d95e
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwProcess.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询工序列表
+export function listPwProcess(query) {
+ return request({
+ url: '/management/pwProcess/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询工序详细
+export function getPwProcess(id) {
+ return request({
+ url: '/management/pwProcess/' + id,
+ method: 'get'
+ })
+}
+
+// 新增工序
+export function addPwProcess(data) {
+ return request({
+ url: '/management/pwProcess',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改工序
+export function updatePwProcess(data) {
+ return request({
+ url: '/management/pwProcess',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除工序
+export function delPwProcess(id) {
+ return request({
+ url: '/management/pwProcess/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出工序
+export function exportPwProcess(query) {
+ return request({
+ url: '/management/pwProcess/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwProductionOrder.js b/evo-tech-ui/src/api/management/pwProductionOrder.js
new file mode 100644
index 0000000..42c8037
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwProductionOrder.js
@@ -0,0 +1,69 @@
+import request from '@/utils/request'
+
+// 查询生产订单信息列表
+export function listPwProductionOrder(query) {
+ return request({
+ url: '/management/pwProductionOrder/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询生产订单信息详细
+export function getPwProductionOrder(id) {
+ return request({
+ url: '/management/pwProductionOrder/' + id,
+ method: 'get'
+ })
+}
+
+// 新增生产订单信息
+export function addPwProductionOrder(data) {
+ return request({
+ url: '/management/pwProductionOrder',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改生产订单信息
+export function updatePwProductionOrder(data) {
+ return request({
+ url: '/management/pwProductionOrder',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除生产订单信息
+export function delPwProductionOrder(id) {
+ return request({
+ url: '/management/pwProductionOrder/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出生产订单信息
+export function exportPwProductionOrder(query) {
+ return request({
+ url: '/management/pwProductionOrder/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 推送生产生产订单信息
+export function shengchans(id) {
+ return request({
+ url: '/management/pwProductionOrder/shengchans/' + id,
+ method: 'delete'
+ })
+}
+
+// 推送发运生产订单信息
+export function fayuns(id) {
+ return request({
+ url: '/management/pwProductionOrder/fayuns/' + id,
+ method: 'delete'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwProductionOrderInfo.js b/evo-tech-ui/src/api/management/pwProductionOrderInfo.js
new file mode 100644
index 0000000..85d9d40
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwProductionOrderInfo.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询生产订单详情信息列表
+export function listPwProductionOrderInfo(query) {
+ return request({
+ url: '/management/pwProductionOrderInfo/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询生产订单详情信息详细
+export function getPwProductionOrderInfo(id) {
+ return request({
+ url: '/management/pwProductionOrderInfo/' + id,
+ method: 'get'
+ })
+}
+
+// 新增生产订单详情信息
+export function addPwProductionOrderInfo(data) {
+ return request({
+ url: '/management/pwProductionOrderInfo',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改生产订单详情信息
+export function updatePwProductionOrderInfo(data) {
+ return request({
+ url: '/management/pwProductionOrderInfo',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除生产订单详情信息
+export function delPwProductionOrderInfo(id) {
+ return request({
+ url: '/management/pwProductionOrderInfo/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出生产订单详情信息
+export function exportPwProductionOrderInfo(query) {
+ return request({
+ url: '/management/pwProductionOrderInfo/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwProductionScheduling.js b/evo-tech-ui/src/api/management/pwProductionScheduling.js
new file mode 100644
index 0000000..409c57a
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwProductionScheduling.js
@@ -0,0 +1,69 @@
+import request from '@/utils/request'
+
+// 查询排产信息列表
+export function listPwProductionScheduling(query) {
+ return request({
+ url: '/management/pwProductionScheduling/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询排产信息详细
+export function getPwProductionScheduling(id) {
+ return request({
+ url: '/management/pwProductionScheduling/' + id,
+ method: 'get'
+ })
+}
+
+// 新增排产信息
+export function addPwProductionScheduling(data) {
+ return request({
+ url: '/management/pwProductionScheduling',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改排产信息
+export function updatePwProductionScheduling(data) {
+ return request({
+ url: '/management/pwProductionScheduling',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除排产信息
+export function delPwProductionScheduling(id) {
+ return request({
+ url: '/management/pwProductionScheduling/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出排产信息
+export function exportPwProductionScheduling(query) {
+ return request({
+ url: '/management/pwProductionScheduling/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 根据令号查询型号
+export function getTypeNameLists(code) {
+ return request({
+ url: '/management/pwProductionScheduling/getTypeNameLists/' + code,
+ method: 'delete'
+ })
+}
+
+//查询缺料信息
+export function getProductionSchedulingNumberList() {
+ return request({
+ url: '/management/pwProductionScheduling/getProductionSchedulingNumberList',
+ method: 'get',
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwProductionSchedulingNumber.js b/evo-tech-ui/src/api/management/pwProductionSchedulingNumber.js
new file mode 100644
index 0000000..a1951df
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwProductionSchedulingNumber.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询排产缺料统计列表
+export function listPwProductionSchedulingNumber(query) {
+ return request({
+ url: '/management/pwProductionSchedulingNumber/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询排产缺料统计详细
+export function getPwProductionSchedulingNumber(id) {
+ return request({
+ url: '/management/pwProductionSchedulingNumber/' + id,
+ method: 'get'
+ })
+}
+
+// 新增排产缺料统计
+export function addPwProductionSchedulingNumber(data) {
+ return request({
+ url: '/management/pwProductionSchedulingNumber',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改排产缺料统计
+export function updatePwProductionSchedulingNumber(data) {
+ return request({
+ url: '/management/pwProductionSchedulingNumber',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除排产缺料统计
+export function delPwProductionSchedulingNumber(id) {
+ return request({
+ url: '/management/pwProductionSchedulingNumber/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出排产缺料统计
+export function exportPwProductionSchedulingNumber(query) {
+ return request({
+ url: '/management/pwProductionSchedulingNumber/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwQrcode.js b/evo-tech-ui/src/api/management/pwQrcode.js
new file mode 100644
index 0000000..bd212fa
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwQrcode.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询二维码信息列表
+export function listPwQrcode(query) {
+ return request({
+ url: '/management/pwQrcode/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询二维码信息详细
+export function getPwQrcode(id) {
+ return request({
+ url: '/management/pwQrcode/' + id,
+ method: 'get'
+ })
+}
+
+// 新增二维码信息
+export function addPwQrcode(data) {
+ return request({
+ url: '/management/pwQrcode',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改二维码信息
+export function updatePwQrcode(data) {
+ return request({
+ url: '/management/pwQrcode',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除二维码信息
+export function delPwQrcode(id) {
+ return request({
+ url: '/management/pwQrcode/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出二维码信息
+export function exportPwQrcode(query) {
+ return request({
+ url: '/management/pwQrcode/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwSafetyInventory.js b/evo-tech-ui/src/api/management/pwSafetyInventory.js
new file mode 100644
index 0000000..b389b70
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwSafetyInventory.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询安全库存明细列表
+export function listPwSafetyInventory(query) {
+ return request({
+ url: '/management/pwSafetyInventory/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询安全库存明细详细
+export function getPwSafetyInventory(id) {
+ return request({
+ url: '/management/pwSafetyInventory/' + id,
+ method: 'get'
+ })
+}
+
+// 新增安全库存明细
+export function addPwSafetyInventory(data) {
+ return request({
+ url: '/management/pwSafetyInventory',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改安全库存明细
+export function updatePwSafetyInventory(data) {
+ return request({
+ url: '/management/pwSafetyInventory',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除安全库存明细
+export function delPwSafetyInventory(id) {
+ return request({
+ url: '/management/pwSafetyInventory/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出安全库存明细
+export function exportPwSafetyInventory(query) {
+ return request({
+ url: '/management/pwSafetyInventory/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwScrapInfo.js b/evo-tech-ui/src/api/management/pwScrapInfo.js
new file mode 100644
index 0000000..3a51d1f
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwScrapInfo.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询报废信息列表
+export function listPwScrapInfo(query) {
+ return request({
+ url: '/management/pwScrapInfo/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询报废信息详细
+export function getPwScrapInfo(id) {
+ return request({
+ url: '/management/pwScrapInfo/' + id,
+ method: 'get'
+ })
+}
+
+// 新增报废信息
+export function addPwScrapInfo(data) {
+ return request({
+ url: '/management/pwScrapInfo',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改报废信息
+export function updatePwScrapInfo(data) {
+ return request({
+ url: '/management/pwScrapInfo',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除报废信息
+export function delPwScrapInfo(id) {
+ return request({
+ url: '/management/pwScrapInfo/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出报废信息
+export function exportPwScrapInfo(query) {
+ return request({
+ url: '/management/pwScrapInfo/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwSpectaculars.js b/evo-tech-ui/src/api/management/pwSpectaculars.js
new file mode 100644
index 0000000..8a4f856
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwSpectaculars.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询生产看板列表
+export function listPwSpectaculars(query) {
+ return request({
+ url: '/management/pwSpectaculars/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询生产看板详细
+export function getPwSpectaculars(id) {
+ return request({
+ url: '/management/pwSpectaculars/' + id,
+ method: 'get'
+ })
+}
+
+// 新增生产看板
+export function addPwSpectaculars(data) {
+ return request({
+ url: '/management/pwSpectaculars',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改生产看板
+export function updatePwSpectaculars(data) {
+ return request({
+ url: '/management/pwSpectaculars',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除生产看板
+export function delPwSpectaculars(id) {
+ return request({
+ url: '/management/pwSpectaculars/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出生产看板
+export function exportPwSpectaculars(query) {
+ return request({
+ url: '/management/pwSpectaculars/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwSpectacularsInfo.js b/evo-tech-ui/src/api/management/pwSpectacularsInfo.js
new file mode 100644
index 0000000..aa1889f
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwSpectacularsInfo.js
@@ -0,0 +1,90 @@
+import request from '@/utils/request'
+
+// 查询新生产看板信息列表
+export function listPwSpectacularsInfo(query) {
+ return request({
+ url: '/management/pwSpectacularsInfo/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询新生产看板信息详细
+export function getPwSpectacularsInfo(id) {
+ return request({
+ url: '/management/pwSpectacularsInfo/' + id,
+ method: 'get'
+ })
+}
+
+// 新增新生产看板信息
+export function addPwSpectacularsInfo(data) {
+ return request({
+ url: '/management/pwSpectacularsInfo',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改新生产看板信息
+export function updatePwSpectacularsInfo(data) {
+ return request({
+ url: '/management/pwSpectacularsInfo',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除新生产看板信息
+export function delPwSpectacularsInfo(id) {
+ return request({
+ url: '/management/pwSpectacularsInfo/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出新生产看板信息
+export function exportPwSpectacularsInfo(query) {
+ return request({
+ url: '/management/pwSpectacularsInfo/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//查询质检信息
+export function getCompletionNoticeInfo(data) {
+ return request({
+ url: '/management/pwSpectacularsInfo/getCompletionNoticeInfo',
+ method: 'post',
+ data: data
+ })
+}
+
+//查询入库信息
+export function getProductReceiptInfo(data) {
+ return request({
+ url: '/management/pwSpectacularsInfo/getProductReceiptInfo',
+ method: 'post',
+ data: data
+ })
+}
+
+//查询出库信息
+export function getStockRequisition(data) {
+ return request({
+ url: '/management/pwSpectacularsInfo/getStockRequisition',
+ method: 'post',
+ data: data
+ })
+}
+
+//查询领料信息
+export function getLingLiao(data) {
+ return request({
+ url: '/management/pwSpectacularsInfo/getLingLiao',
+ method: 'post',
+ data: data
+ })
+}
+
diff --git a/evo-tech-ui/src/api/management/pwStoresRequisition.js b/evo-tech-ui/src/api/management/pwStoresRequisition.js
new file mode 100644
index 0000000..dbfe2b4
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwStoresRequisition.js
@@ -0,0 +1,95 @@
+import request from '@/utils/request'
+
+// 查询物品领料单列表
+export function listPwStoresRequisition(query) {
+ return request({
+ url: '/management/pwStoresRequisition/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询物品领料单详细
+export function getPwStoresRequisition(id) {
+ return request({
+ url: '/management/pwStoresRequisition/' + id,
+ method: 'get'
+ })
+}
+
+// 新增物品领料单
+export function addPwStoresRequisition(data) {
+ return request({
+ url: '/management/pwStoresRequisition',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改物品领料单
+export function updatePwStoresRequisition(data) {
+ return request({
+ url: '/management/pwStoresRequisition',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除物品领料单
+export function delPwStoresRequisition(id) {
+ return request({
+ url: '/management/pwStoresRequisition/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出物品领料单
+export function exportPwStoresRequisition(query) {
+ return request({
+ url: '/management/pwStoresRequisition/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//审核采购申请单
+export function auditTwo(query) {
+ return request({
+ url: '/management/pwStoresRequisition/auditTwoPwStoresRequisition',
+ method: 'get',
+ params: query
+ })
+}
+
+// 审批采购申请单
+export function audit(query) {
+ return request({
+ url: '/management/pwStoresRequisition/auditPwStoresRequisition',
+ method: 'get',
+ params: query
+ })
+}
+
+// 申请领料按钮
+export function applyForReceives(id) {
+ return request({
+ url: '/management/pwStoresRequisition/applyForReceives/' + id,
+ method: 'delete'
+ })
+}
+
+//打印流转单
+export function prints(id) {
+ return request({
+ url: '/management/pwStoresRequisition/prints/' + id,
+ method: 'get'
+ })
+}
+
+//打印流转单(易耗品)
+export function printAlls(id) {
+ return request({
+ url: '/management/pwStoresRequisition/printsAll/' + id,
+ method: 'get'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwStoresRequistionDetail.js b/evo-tech-ui/src/api/management/pwStoresRequistionDetail.js
new file mode 100644
index 0000000..f182498
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwStoresRequistionDetail.js
@@ -0,0 +1,62 @@
+import request from '@/utils/request'
+
+// 查询领料单详情列表
+export function listPwStoresRequistionDetail(query) {
+ return request({
+ url: '/management/pwStoresRequistionDetail/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询领料单详情详细
+export function getPwStoresRequistionDetail(id) {
+ return request({
+ url: '/management/pwStoresRequistionDetail/' + id,
+ method: 'get'
+ })
+}
+
+// 新增领料单详情
+export function addPwStoresRequistionDetail(data) {
+ return request({
+ url: '/management/pwStoresRequistionDetail',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改领料单详情
+export function updatePwStoresRequistionDetail(data) {
+ return request({
+ url: '/management/pwStoresRequistionDetail',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除领料单详情
+export function delPwStoresRequistionDetail(id) {
+ return request({
+ url: '/management/pwStoresRequistionDetail/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出领料单详情
+export function exportPwStoresRequistionDetail(query) {
+ return request({
+ url: '/management/pwStoresRequistionDetail/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//查询出库详情
+export function getListImStockRequisitionMaterial(query) {
+ return request({
+ url: '/management/pwStoresRequistionDetail/getListImStockRequisitionMaterial/',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwTaskOverTimeInfo.js b/evo-tech-ui/src/api/management/pwTaskOverTimeInfo.js
new file mode 100644
index 0000000..039d302
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwTaskOverTimeInfo.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询任务超时信息列表
+export function listPwTaskOverTimeInfo(query) {
+ return request({
+ url: '/management/pwTaskOverTimeInfo/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询任务超时信息详细
+export function getPwTaskOverTimeInfo(id) {
+ return request({
+ url: '/management/pwTaskOverTimeInfo/' + id,
+ method: 'get'
+ })
+}
+
+// 新增任务超时信息
+export function addPwTaskOverTimeInfo(data) {
+ return request({
+ url: '/management/pwTaskOverTimeInfo',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改任务超时信息
+export function updatePwTaskOverTimeInfo(data) {
+ return request({
+ url: '/management/pwTaskOverTimeInfo',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除任务超时信息
+export function delPwTaskOverTimeInfo(id) {
+ return request({
+ url: '/management/pwTaskOverTimeInfo/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出任务超时信息
+export function exportPwTaskOverTimeInfo(query) {
+ return request({
+ url: '/management/pwTaskOverTimeInfo/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwTicketInfo.js b/evo-tech-ui/src/api/management/pwTicketInfo.js
new file mode 100644
index 0000000..ef69a61
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwTicketInfo.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询处罚单信息列表
+export function listPwTicketInfo(query) {
+ return request({
+ url: '/management/pwTicketInfo/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询处罚单信息详细
+export function getPwTicketInfo(id) {
+ return request({
+ url: '/management/pwTicketInfo/' + id,
+ method: 'get'
+ })
+}
+
+// 新增处罚单信息
+export function addPwTicketInfo(data) {
+ return request({
+ url: '/management/pwTicketInfo',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改处罚单信息
+export function updatePwTicketInfo(data) {
+ return request({
+ url: '/management/pwTicketInfo',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除处罚单信息
+export function delPwTicketInfo(id) {
+ return request({
+ url: '/management/pwTicketInfo/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出处罚单信息
+export function exportPwTicketInfo(query) {
+ return request({
+ url: '/management/pwTicketInfo/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/pwUserEmail.js b/evo-tech-ui/src/api/management/pwUserEmail.js
new file mode 100644
index 0000000..3d42c8e
--- /dev/null
+++ b/evo-tech-ui/src/api/management/pwUserEmail.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询邮箱列表
+export function listPwUserEmail(query) {
+ return request({
+ url: '/management/pwUserEmail/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询邮箱详细
+export function getPwUserEmail(id) {
+ return request({
+ url: '/management/pwUserEmail/' + id,
+ method: 'get'
+ })
+}
+
+// 新增邮箱
+export function addPwUserEmail(data) {
+ return request({
+ url: '/management/pwUserEmail',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改邮箱
+export function updatePwUserEmail(data) {
+ return request({
+ url: '/management/pwUserEmail',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除邮箱
+export function delPwUserEmail(id) {
+ return request({
+ url: '/management/pwUserEmail/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出邮箱
+export function exportPwUserEmail(query) {
+ return request({
+ url: '/management/pwUserEmail/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/question.js b/evo-tech-ui/src/api/management/question.js
new file mode 100644
index 0000000..ea3045b
--- /dev/null
+++ b/evo-tech-ui/src/api/management/question.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询问题处理列表
+export function listQuestion(query) {
+ return request({
+ url: '/question/question/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询问题处理详细
+export function getQuestion(questionId) {
+ return request({
+ url: '/question/question/' + questionId,
+ method: 'get'
+ })
+}
+
+// 新增问题处理
+export function addQuestion(data) {
+ return request({
+ url: '/question/question',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改问题处理
+export function updateQuestion(data) {
+ return request({
+ url: '/question/question',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除问题处理
+export function delQuestion(questionId) {
+ return request({
+ url: '/question/question/' + questionId,
+ method: 'delete'
+ })
+}
+
+// 导出问题处理
+export function exportQuestion(query) {
+ return request({
+ url: '/question/question/export',
+ method: 'get',
+ params: query
+ })
+}
diff --git a/evo-tech-ui/src/api/management/quotation.js b/evo-tech-ui/src/api/management/quotation.js
new file mode 100644
index 0000000..faeceb3
--- /dev/null
+++ b/evo-tech-ui/src/api/management/quotation.js
@@ -0,0 +1,88 @@
+import request from '@/utils/request'
+
+// 查询报价单列表
+export function listQuotation(query) {
+ return request({
+ url: '/management/quotation/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询报价单详细
+export function getQuotation(id) {
+ return request({
+ url: '/management/quotation/' + id,
+ method: 'get'
+ })
+}
+
+// 生成报价单
+export function createQuotation(data) {
+ return request({
+ url: '/management/quotation/createQuotation',
+ method: 'post',
+ data: data
+ })
+}
+// 生成卷扬机报价单
+export function createWindlassQuotation(data) {
+ return request({
+ url: '/management/quotation/createWindlassQuotation',
+ method: 'post',
+ data: data
+ })
+}
+
+// 生成升降台报价单
+export function createSchemeQuotation(data) {
+ return request({
+ url: '/management/quotation/createSchemeQuotation',
+ method: 'post',
+ data: data
+ })
+}
+
+// 新增报价单
+export function addQuotation(data) {
+ return request({
+ url: '/management/quotation',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改报价单
+export function updateQuotation(data) {
+ return request({
+ url: '/management/quotation',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除报价单
+export function delQuotation(id) {
+ return request({
+ url: '/management/quotation/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出报价单
+export function exportQuotation(query) {
+ return request({
+ url: '/management/quotation/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 合同管理
+export function getQuotationInfo(query) {
+ return request({
+ url: '/management/quotation/getQuotationInfo',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/recordProcessing.js b/evo-tech-ui/src/api/management/recordProcessing.js
new file mode 100644
index 0000000..ea3045b
--- /dev/null
+++ b/evo-tech-ui/src/api/management/recordProcessing.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询问题处理列表
+export function listQuestion(query) {
+ return request({
+ url: '/question/question/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询问题处理详细
+export function getQuestion(questionId) {
+ return request({
+ url: '/question/question/' + questionId,
+ method: 'get'
+ })
+}
+
+// 新增问题处理
+export function addQuestion(data) {
+ return request({
+ url: '/question/question',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改问题处理
+export function updateQuestion(data) {
+ return request({
+ url: '/question/question',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除问题处理
+export function delQuestion(questionId) {
+ return request({
+ url: '/question/question/' + questionId,
+ method: 'delete'
+ })
+}
+
+// 导出问题处理
+export function exportQuestion(query) {
+ return request({
+ url: '/question/question/export',
+ method: 'get',
+ params: query
+ })
+}
diff --git a/evo-tech-ui/src/api/management/rigidChain.js b/evo-tech-ui/src/api/management/rigidChain.js
new file mode 100644
index 0000000..e77d602
--- /dev/null
+++ b/evo-tech-ui/src/api/management/rigidChain.js
@@ -0,0 +1,100 @@
+import request from '@/utils/request'
+
+// 查询销齿链型号列表
+export function listPcRigidChain(query) {
+ return request({
+ url: '/management/rigidChain/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询销齿链型号详细
+export function getPcRigidChain(id) {
+ return request({
+ url: '/management/rigidChain/' + id,
+ method: 'get'
+ })
+}
+
+// 新增销齿链型号
+export function addPcRigidChain(data) {
+ return request({
+ url: '/management/rigidChain',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改销齿链型号
+export function updatePcRigidChain(data) {
+ return request({
+ url: '/management/rigidChain',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除销齿链型号
+export function delPcRigidChain(id) {
+ return request({
+ url: '/management/rigidChain/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出销齿链型号
+export function exportPcRigidChain(query) {
+ return request({
+ url: '/management/rigidChain/export',
+ method: 'get',
+ params: query
+ })
+}
+
+//零部件
+export function purchase(){
+ return request({
+ url:'/management/purchase/list',
+ method:'get'
+ })
+}
+
+// 查询销齿链型号列表(报价查询,按型号去重)
+export function getTypeList(query) {
+ return request({
+ url: '/management/rigidChain/getTypeList',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询销齿链型号行程列表(报价查询,按行程去重)
+export function getJourneyList(query) {
+ return request({
+ url: '/management/rigidChain/getJourneyList',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询销齿链型号(价格)
+export function getPcRigidChainByTypeName(query) {
+ return request({
+ url: '/management/rigidChain/getPcRigidChainByTypeName',
+ method: 'get',
+ params: query
+ })
+}
+
+//标记表文件上传
+export function uploadFile(data){
+ return request({
+ url:'/management/rigidChain/uploadLableNumber',
+ data:data,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ },
+ method:'post'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/scheme.js b/evo-tech-ui/src/api/management/scheme.js
new file mode 100644
index 0000000..a61aed0
--- /dev/null
+++ b/evo-tech-ui/src/api/management/scheme.js
@@ -0,0 +1,63 @@
+import request from '@/utils/request'
+
+// 查询方案列表
+export function listScheme(query) {
+ return request({
+ url: '/management/scheme/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询方案详细
+export function getScheme(id) {
+ return request({
+ url: '/management/scheme/' + id,
+ method: 'get'
+ })
+}
+
+// 新增方案
+export function createScheme(data) {
+ return request({
+ url: '/management/scheme/createScheme',
+ method: 'post',
+ data: data
+ })
+}
+
+// 新增方案
+export function addScheme(data) {
+ return request({
+ url: '/management/scheme',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改方案
+export function updateScheme(data) {
+ return request({
+ url: '/management/scheme',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除方案
+export function delScheme(id) {
+ return request({
+ url: '/management/scheme/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出方案
+export function exportScheme(query) {
+ return request({
+ url: '/management/scheme/export',
+ method: 'get',
+ params: query
+ })
+}
+
diff --git a/evo-tech-ui/src/api/management/secure.js b/evo-tech-ui/src/api/management/secure.js
new file mode 100644
index 0000000..ddb9e1e
--- /dev/null
+++ b/evo-tech-ui/src/api/management/secure.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询安全库存设置列表
+export function listSecure(query) {
+ return request({
+ url: '/management/secure/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询安全库存设置详细
+export function getSecure(id) {
+ return request({
+ url: '/management/secure/' + id,
+ method: 'get'
+ })
+}
+
+// 新增安全库存设置
+export function addSecure(data) {
+ return request({
+ url: '/management/secure',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改安全库存设置
+export function updateSecure(data) {
+ return request({
+ url: '/management/secure',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除安全库存设置
+export function delSecure(id) {
+ return request({
+ url: '/management/secure/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出安全库存设置
+export function exportSecure(query) {
+ return request({
+ url: '/management/secure/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/storage.js b/evo-tech-ui/src/api/management/storage.js
new file mode 100644
index 0000000..8bdff51
--- /dev/null
+++ b/evo-tech-ui/src/api/management/storage.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询呆滞库列表
+export function listStorage(query) {
+ return request({
+ url: '/management/storage/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询呆滞库详细
+export function getStorage(id) {
+ return request({
+ url: '/management/storage/' + id,
+ method: 'get'
+ })
+}
+
+// 新增呆滞库
+export function addStorage(data) {
+ return request({
+ url: '/management/storage',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改呆滞库
+export function updateStorage(data) {
+ return request({
+ url: '/management/storage',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除呆滞库
+export function delStorage(id) {
+ return request({
+ url: '/management/storage/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出呆滞库
+export function exportStorage(query) {
+ return request({
+ url: '/management/storage/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/strokeMeasurement.js b/evo-tech-ui/src/api/management/strokeMeasurement.js
new file mode 100644
index 0000000..29679b3
--- /dev/null
+++ b/evo-tech-ui/src/api/management/strokeMeasurement.js
@@ -0,0 +1,62 @@
+import request from '@/utils/request'
+
+// 查询行程检测型号列表
+export function listStrokeMeasurement(query) {
+ return request({
+ url: '/management/strokeMeasurement/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询行程检测型号详细
+export function getStrokeMeasurement(id) {
+ return request({
+ url: '/management/strokeMeasurement/' + id,
+ method: 'get'
+ })
+}
+
+// 新增行程检测型号
+export function addStrokeMeasurement(data) {
+ return request({
+ url: '/management/strokeMeasurement',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改行程检测型号
+export function updateStrokeMeasurement(data) {
+ return request({
+ url: '/management/strokeMeasurement',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除行程检测型号
+export function delStrokeMeasurement(id) {
+ return request({
+ url: '/management/strokeMeasurement/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出行程检测型号
+export function exportStrokeMeasurement(query) {
+ return request({
+ url: '/management/strokeMeasurement/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询行程检测型号价格
+export function getStrokeMeasurementByType(query) {
+ return request({
+ url: '/management/strokeMeasurement/getStrokeMeasurementByType',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/task.js b/evo-tech-ui/src/api/management/task.js
new file mode 100644
index 0000000..fe13ac2
--- /dev/null
+++ b/evo-tech-ui/src/api/management/task.js
@@ -0,0 +1,80 @@
+import request from '@/utils/request'
+
+// 查询任务列表
+export function listTask(query) {
+ return request({
+ url: '/management/task/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询任务详细
+export function getTask(id) {
+ return request({
+ url: '/management/task/' + id,
+ method: 'get'
+ })
+}
+
+// 新增任务
+export function addTask(data) {
+ return request({
+ url: '/management/task',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改任务
+export function updateTask(data) {
+ return request({
+ url: '/management/task',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除任务
+export function delTask(id) {
+ return request({
+ url: '/management/task/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出任务
+export function exportTask(query) {
+ return request({
+ url: '/management/task/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 完成任务
+export function accomplishTask(query) {
+ return request({
+ url: '/management/task/accomplishTask',
+ method: 'get',
+ params: query
+ })
+}
+
+// 领取任务
+export function taskGetTask(query) {
+ return request({
+ url: '/management/task/getTask',
+ method: 'get',
+ params: query
+ })
+}
+
+// 发布任务
+export function taskPublishTask(query) {
+ return request({
+ url: '/management/task/publishTask',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/toothedCoupling.js b/evo-tech-ui/src/api/management/toothedCoupling.js
new file mode 100644
index 0000000..34534e1
--- /dev/null
+++ b/evo-tech-ui/src/api/management/toothedCoupling.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询齿形连轴器型号列表
+export function listToothedCoupling(query) {
+ return request({
+ url: '/management/toothedCoupling/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询齿形连轴器型号详细
+export function getToothedCoupling(id) {
+ return request({
+ url: '/management/toothedCoupling/' + id,
+ method: 'get'
+ })
+}
+
+// 新增齿形连轴器型号
+export function addToothedCoupling(data) {
+ return request({
+ url: '/management/toothedCoupling',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改齿形连轴器型号
+export function updateToothedCoupling(data) {
+ return request({
+ url: '/management/toothedCoupling',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除齿形连轴器型号
+export function delToothedCoupling(id) {
+ return request({
+ url: '/management/toothedCoupling/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出齿形连轴器型号
+export function exportToothedCoupling(query) {
+ return request({
+ url: '/management/toothedCoupling/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/travelSwitch.js b/evo-tech-ui/src/api/management/travelSwitch.js
new file mode 100644
index 0000000..9a65a72
--- /dev/null
+++ b/evo-tech-ui/src/api/management/travelSwitch.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询行程开关型号列表
+export function listTravelSwitch(query) {
+ return request({
+ url: '/management/travelSwitch/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询行程开关型号详细
+export function getTravelSwitch(id) {
+ return request({
+ url: '/management/travelSwitch/' + id,
+ method: 'get'
+ })
+}
+
+// 新增行程开关型号
+export function addTravelSwitch(data) {
+ return request({
+ url: '/management/travelSwitch',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改行程开关型号
+export function updateTravelSwitch(data) {
+ return request({
+ url: '/management/travelSwitch',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除行程开关型号
+export function delTravelSwitch(id) {
+ return request({
+ url: '/management/travelSwitch/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出行程开关型号
+export function exportTravelSwitch(query) {
+ return request({
+ url: '/management/travelSwitch/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/twoStageReductionGear.js b/evo-tech-ui/src/api/management/twoStageReductionGear.js
new file mode 100644
index 0000000..eb42819
--- /dev/null
+++ b/evo-tech-ui/src/api/management/twoStageReductionGear.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询二级减速器型号列表
+export function listTwoStageReductionGear(query) {
+ return request({
+ url: '/management/twoStageReductionGear/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询二级减速器型号详细
+export function getTwoStageReductionGear(id) {
+ return request({
+ url: '/management/twoStageReductionGear/' + id,
+ method: 'get'
+ })
+}
+
+// 新增二级减速器型号
+export function addTwoStageReductionGear(data) {
+ return request({
+ url: '/management/twoStageReductionGear',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改二级减速器型号
+export function updateTwoStageReductionGear(data) {
+ return request({
+ url: '/management/twoStageReductionGear',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除二级减速器型号
+export function delTwoStageReductionGear(id) {
+ return request({
+ url: '/management/twoStageReductionGear/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出二级减速器型号
+export function exportTwoStageReductionGear(query) {
+ return request({
+ url: '/management/twoStageReductionGear/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/windlass.js b/evo-tech-ui/src/api/management/windlass.js
new file mode 100644
index 0000000..a136120
--- /dev/null
+++ b/evo-tech-ui/src/api/management/windlass.js
@@ -0,0 +1,62 @@
+import request from '@/utils/request'
+
+// 查询卷扬机型号列表
+export function listWindlass(query) {
+ return request({
+ url: '/management/windlass/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询卷扬机型号详细
+export function getWindlass(id) {
+ return request({
+ url: '/management/windlass/' + id,
+ method: 'get'
+ })
+}
+
+// 新增卷扬机型号
+export function addWindlass(data) {
+ return request({
+ url: '/management/windlass',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改卷扬机型号
+export function updateWindlass(data) {
+ return request({
+ url: '/management/windlass',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除卷扬机型号
+export function delWindlass(id) {
+ return request({
+ url: '/management/windlass/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出卷扬机型号
+export function exportWindlass(query) {
+ return request({
+ url: '/management/windlass/export',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询卷扬机型号(价格)
+export function getPcWindlassByTypeName(query) {
+ return request({
+ url: '/management/windlass/getPcWindlassByTypeName',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/ycBomNumberPreliminaryInquiry.js b/evo-tech-ui/src/api/management/ycBomNumberPreliminaryInquiry.js
new file mode 100644
index 0000000..0bdd64b
--- /dev/null
+++ b/evo-tech-ui/src/api/management/ycBomNumberPreliminaryInquiry.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询预查询点件列表
+export function listYcBomNumberPreliminaryInquiry(query) {
+ return request({
+ url: '/management/ycBomNumberPreliminaryInquiry/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询预查询点件详细
+export function getYcBomNumberPreliminaryInquiry(id) {
+ return request({
+ url: '/management/ycBomNumberPreliminaryInquiry/' + id,
+ method: 'get'
+ })
+}
+
+// 新增预查询点件
+export function addYcBomNumberPreliminaryInquiry(data) {
+ return request({
+ url: '/management/ycBomNumberPreliminaryInquiry',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改预查询点件
+export function updateYcBomNumberPreliminaryInquiry(data) {
+ return request({
+ url: '/management/ycBomNumberPreliminaryInquiry',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除预查询点件
+export function delYcBomNumberPreliminaryInquiry(id) {
+ return request({
+ url: '/management/ycBomNumberPreliminaryInquiry/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出预查询点件
+export function exportYcBomNumberPreliminaryInquiry(query) {
+ return request({
+ url: '/management/ycBomNumberPreliminaryInquiry/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/ycBomNumberTwoInquiry.js b/evo-tech-ui/src/api/management/ycBomNumberTwoInquiry.js
new file mode 100644
index 0000000..dc5b300
--- /dev/null
+++ b/evo-tech-ui/src/api/management/ycBomNumberTwoInquiry.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询预查询计算后的点件列表
+export function listYcBomNumberTwoInquiry(query) {
+ return request({
+ url: '/management/ycBomNumberTwoInquiry/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询预查询计算后的点件详细
+export function getYcBomNumberTwoInquiry(id) {
+ return request({
+ url: '/management/ycBomNumberTwoInquiry/' + id,
+ method: 'get'
+ })
+}
+
+// 新增预查询计算后的点件
+export function addYcBomNumberTwoInquiry(data) {
+ return request({
+ url: '/management/ycBomNumberTwoInquiry',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改预查询计算后的点件
+export function updateYcBomNumberTwoInquiry(data) {
+ return request({
+ url: '/management/ycBomNumberTwoInquiry',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除预查询计算后的点件
+export function delYcBomNumberTwoInquiry(id) {
+ return request({
+ url: '/management/ycBomNumberTwoInquiry/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出预查询计算后的点件
+export function exportYcBomNumberTwoInquiry(query) {
+ return request({
+ url: '/management/ycBomNumberTwoInquiry/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/management/ycProduct.js b/evo-tech-ui/src/api/management/ycProduct.js
new file mode 100644
index 0000000..8106f18
--- /dev/null
+++ b/evo-tech-ui/src/api/management/ycProduct.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询预查询产品列表
+export function listYcProduct(query) {
+ return request({
+ url: '/management/ycProduct/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询预查询产品详细
+export function getYcProduct(id) {
+ return request({
+ url: '/management/ycProduct/' + id,
+ method: 'get'
+ })
+}
+
+// 新增预查询产品
+export function addYcProduct(data) {
+ return request({
+ url: '/management/ycProduct',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改预查询产品
+export function updateYcProduct(data) {
+ return request({
+ url: '/management/ycProduct',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除预查询产品
+export function delYcProduct(id) {
+ return request({
+ url: '/management/ycProduct/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出预查询产品
+export function exportYcProduct(query) {
+ return request({
+ url: '/management/ycProduct/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/menu.js b/evo-tech-ui/src/api/menu.js
new file mode 100644
index 0000000..faef101
--- /dev/null
+++ b/evo-tech-ui/src/api/menu.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+
+// 获取路由
+export const getRouters = () => {
+ return request({
+ url: '/getRouters',
+ method: 'get'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/monitor/cache.js b/evo-tech-ui/src/api/monitor/cache.js
new file mode 100644
index 0000000..72c5f6a
--- /dev/null
+++ b/evo-tech-ui/src/api/monitor/cache.js
@@ -0,0 +1,57 @@
+import request from '@/utils/request'
+
+// 查询缓存详细
+export function getCache() {
+ return request({
+ url: '/monitor/cache',
+ method: 'get'
+ })
+}
+
+// 查询缓存名称列表
+export function listCacheName() {
+ return request({
+ url: '/monitor/cache/getNames',
+ method: 'get'
+ })
+}
+
+// 查询缓存键名列表
+export function listCacheKey(cacheName) {
+ return request({
+ url: '/monitor/cache/getKeys/' + cacheName,
+ method: 'get'
+ })
+}
+
+// 查询缓存内容
+export function getCacheValue(cacheName, cacheKey) {
+ return request({
+ url: '/monitor/cache/getValue/' + cacheName + '/' + cacheKey,
+ method: 'get'
+ })
+}
+
+// 清理指定名称缓存
+export function clearCacheName(cacheName) {
+ return request({
+ url: '/monitor/cache/clearCacheName/' + cacheName,
+ method: 'delete'
+ })
+}
+
+// 清理指定键名缓存
+export function clearCacheKey(cacheKey) {
+ return request({
+ url: '/monitor/cache/clearCacheKey/' + cacheKey,
+ method: 'delete'
+ })
+}
+
+// 清理全部缓存
+export function clearCacheAll() {
+ return request({
+ url: '/monitor/cache/clearCacheAll',
+ method: 'delete'
+ })
+}
diff --git a/evo-tech-ui/src/api/monitor/job.js b/evo-tech-ui/src/api/monitor/job.js
new file mode 100644
index 0000000..3815569
--- /dev/null
+++ b/evo-tech-ui/src/api/monitor/job.js
@@ -0,0 +1,71 @@
+import request from '@/utils/request'
+
+// 查询定时任务调度列表
+export function listJob(query) {
+ return request({
+ url: '/monitor/job/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询定时任务调度详细
+export function getJob(jobId) {
+ return request({
+ url: '/monitor/job/' + jobId,
+ method: 'get'
+ })
+}
+
+// 新增定时任务调度
+export function addJob(data) {
+ return request({
+ url: '/monitor/job',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改定时任务调度
+export function updateJob(data) {
+ return request({
+ url: '/monitor/job',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除定时任务调度
+export function delJob(jobId) {
+ return request({
+ url: '/monitor/job/' + jobId,
+ method: 'delete'
+ })
+}
+
+// 任务状态修改
+export function changeJobStatus(jobId, status) {
+ const data = {
+ jobId,
+ status
+ }
+ return request({
+ url: '/monitor/job/changeStatus',
+ method: 'put',
+ data: data
+ })
+}
+
+
+// 定时任务立即执行一次
+export function runJob(jobId, jobGroup) {
+ const data = {
+ jobId,
+ jobGroup
+ }
+ return request({
+ url: '/monitor/job/run',
+ method: 'put',
+ data: data
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/monitor/jobLog.js b/evo-tech-ui/src/api/monitor/jobLog.js
new file mode 100644
index 0000000..6e0be61
--- /dev/null
+++ b/evo-tech-ui/src/api/monitor/jobLog.js
@@ -0,0 +1,26 @@
+import request from '@/utils/request'
+
+// 查询调度日志列表
+export function listJobLog(query) {
+ return request({
+ url: '/monitor/jobLog/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 删除调度日志
+export function delJobLog(jobLogId) {
+ return request({
+ url: '/monitor/jobLog/' + jobLogId,
+ method: 'delete'
+ })
+}
+
+// 清空调度日志
+export function cleanJobLog() {
+ return request({
+ url: '/monitor/jobLog/clean',
+ method: 'delete'
+ })
+}
diff --git a/evo-tech-ui/src/api/monitor/logininfor.js b/evo-tech-ui/src/api/monitor/logininfor.js
new file mode 100644
index 0000000..4d112b7
--- /dev/null
+++ b/evo-tech-ui/src/api/monitor/logininfor.js
@@ -0,0 +1,34 @@
+import request from '@/utils/request'
+
+// 查询登录日志列表
+export function list(query) {
+ return request({
+ url: '/monitor/logininfor/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 删除登录日志
+export function delLogininfor(infoId) {
+ return request({
+ url: '/monitor/logininfor/' + infoId,
+ method: 'delete'
+ })
+}
+
+// 解锁用户登录状态
+export function unlockLogininfor(userName) {
+ return request({
+ url: '/monitor/logininfor/unlock/' + userName,
+ method: 'get'
+ })
+}
+
+// 清空登录日志
+export function cleanLogininfor() {
+ return request({
+ url: '/monitor/logininfor/clean',
+ method: 'delete'
+ })
+}
diff --git a/evo-tech-ui/src/api/monitor/online.js b/evo-tech-ui/src/api/monitor/online.js
new file mode 100644
index 0000000..bd22137
--- /dev/null
+++ b/evo-tech-ui/src/api/monitor/online.js
@@ -0,0 +1,18 @@
+import request from '@/utils/request'
+
+// 查询在线用户列表
+export function list(query) {
+ return request({
+ url: '/monitor/online/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 强退用户
+export function forceLogout(tokenId) {
+ return request({
+ url: '/monitor/online/' + tokenId,
+ method: 'delete'
+ })
+}
diff --git a/evo-tech-ui/src/api/monitor/operlog.js b/evo-tech-ui/src/api/monitor/operlog.js
new file mode 100644
index 0000000..a04bca8
--- /dev/null
+++ b/evo-tech-ui/src/api/monitor/operlog.js
@@ -0,0 +1,26 @@
+import request from '@/utils/request'
+
+// 查询操作日志列表
+export function list(query) {
+ return request({
+ url: '/monitor/operlog/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 删除操作日志
+export function delOperlog(operId) {
+ return request({
+ url: '/monitor/operlog/' + operId,
+ method: 'delete'
+ })
+}
+
+// 清空操作日志
+export function cleanOperlog() {
+ return request({
+ url: '/monitor/operlog/clean',
+ method: 'delete'
+ })
+}
diff --git a/evo-tech-ui/src/api/monitor/server.js b/evo-tech-ui/src/api/monitor/server.js
new file mode 100644
index 0000000..e1f9ca2
--- /dev/null
+++ b/evo-tech-ui/src/api/monitor/server.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+
+// 获取服务信息
+export function getServer() {
+ return request({
+ url: '/monitor/server',
+ method: 'get'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/system/config.js b/evo-tech-ui/src/api/system/config.js
new file mode 100644
index 0000000..a404d82
--- /dev/null
+++ b/evo-tech-ui/src/api/system/config.js
@@ -0,0 +1,60 @@
+import request from '@/utils/request'
+
+// 查询参数列表
+export function listConfig(query) {
+ return request({
+ url: '/system/config/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询参数详细
+export function getConfig(configId) {
+ return request({
+ url: '/system/config/' + configId,
+ method: 'get'
+ })
+}
+
+// 根据参数键名查询参数值
+export function getConfigKey(configKey) {
+ return request({
+ url: '/system/config/configKey/' + configKey,
+ method: 'get'
+ })
+}
+
+// 新增参数配置
+export function addConfig(data) {
+ return request({
+ url: '/system/config',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改参数配置
+export function updateConfig(data) {
+ return request({
+ url: '/system/config',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除参数配置
+export function delConfig(configId) {
+ return request({
+ url: '/system/config/' + configId,
+ method: 'delete'
+ })
+}
+
+// 刷新参数缓存
+export function refreshCache() {
+ return request({
+ url: '/system/config/refreshCache',
+ method: 'delete'
+ })
+}
diff --git a/evo-tech-ui/src/api/system/dept.js b/evo-tech-ui/src/api/system/dept.js
new file mode 100644
index 0000000..fc943cd
--- /dev/null
+++ b/evo-tech-ui/src/api/system/dept.js
@@ -0,0 +1,52 @@
+import request from '@/utils/request'
+
+// 查询部门列表
+export function listDept(query) {
+ return request({
+ url: '/system/dept/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询部门列表(排除节点)
+export function listDeptExcludeChild(deptId) {
+ return request({
+ url: '/system/dept/list/exclude/' + deptId,
+ method: 'get'
+ })
+}
+
+// 查询部门详细
+export function getDept(deptId) {
+ return request({
+ url: '/system/dept/' + deptId,
+ method: 'get'
+ })
+}
+
+// 新增部门
+export function addDept(data) {
+ return request({
+ url: '/system/dept',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改部门
+export function updateDept(data) {
+ return request({
+ url: '/system/dept',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除部门
+export function delDept(deptId) {
+ return request({
+ url: '/system/dept/' + deptId,
+ method: 'delete'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/system/dict/data.js b/evo-tech-ui/src/api/system/dict/data.js
new file mode 100644
index 0000000..6c9eb79
--- /dev/null
+++ b/evo-tech-ui/src/api/system/dict/data.js
@@ -0,0 +1,52 @@
+import request from '@/utils/request'
+
+// 查询字典数据列表
+export function listData(query) {
+ return request({
+ url: '/system/dict/data/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询字典数据详细
+export function getData(dictCode) {
+ return request({
+ url: '/system/dict/data/' + dictCode,
+ method: 'get'
+ })
+}
+
+// 根据字典类型查询字典数据信息
+export function getDicts(dictType) {
+ return request({
+ url: '/system/dict/data/type/' + dictType,
+ method: 'get'
+ })
+}
+
+// 新增字典数据
+export function addData(data) {
+ return request({
+ url: '/system/dict/data',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改字典数据
+export function updateData(data) {
+ return request({
+ url: '/system/dict/data',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除字典数据
+export function delData(dictCode) {
+ return request({
+ url: '/system/dict/data/' + dictCode,
+ method: 'delete'
+ })
+}
diff --git a/evo-tech-ui/src/api/system/dict/type.js b/evo-tech-ui/src/api/system/dict/type.js
new file mode 100644
index 0000000..a7a6e01
--- /dev/null
+++ b/evo-tech-ui/src/api/system/dict/type.js
@@ -0,0 +1,60 @@
+import request from '@/utils/request'
+
+// 查询字典类型列表
+export function listType(query) {
+ return request({
+ url: '/system/dict/type/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询字典类型详细
+export function getType(dictId) {
+ return request({
+ url: '/system/dict/type/' + dictId,
+ method: 'get'
+ })
+}
+
+// 新增字典类型
+export function addType(data) {
+ return request({
+ url: '/system/dict/type',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改字典类型
+export function updateType(data) {
+ return request({
+ url: '/system/dict/type',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除字典类型
+export function delType(dictId) {
+ return request({
+ url: '/system/dict/type/' + dictId,
+ method: 'delete'
+ })
+}
+
+// 刷新字典缓存
+export function refreshCache() {
+ return request({
+ url: '/system/dict/type/refreshCache',
+ method: 'delete'
+ })
+}
+
+// 获取字典选择框列表
+export function optionselect() {
+ return request({
+ url: '/system/dict/type/optionselect',
+ method: 'get'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/system/menu.js b/evo-tech-ui/src/api/system/menu.js
new file mode 100644
index 0000000..f6415c6
--- /dev/null
+++ b/evo-tech-ui/src/api/system/menu.js
@@ -0,0 +1,60 @@
+import request from '@/utils/request'
+
+// 查询菜单列表
+export function listMenu(query) {
+ return request({
+ url: '/system/menu/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询菜单详细
+export function getMenu(menuId) {
+ return request({
+ url: '/system/menu/' + menuId,
+ method: 'get'
+ })
+}
+
+// 查询菜单下拉树结构
+export function treeselect() {
+ return request({
+ url: '/system/menu/treeselect',
+ method: 'get'
+ })
+}
+
+// 根据角色ID查询菜单下拉树结构
+export function roleMenuTreeselect(roleId) {
+ return request({
+ url: '/system/menu/roleMenuTreeselect/' + roleId,
+ method: 'get'
+ })
+}
+
+// 新增菜单
+export function addMenu(data) {
+ return request({
+ url: '/system/menu',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改菜单
+export function updateMenu(data) {
+ return request({
+ url: '/system/menu',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除菜单
+export function delMenu(menuId) {
+ return request({
+ url: '/system/menu/' + menuId,
+ method: 'delete'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/system/notice.js b/evo-tech-ui/src/api/system/notice.js
new file mode 100644
index 0000000..c274ea5
--- /dev/null
+++ b/evo-tech-ui/src/api/system/notice.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询公告列表
+export function listNotice(query) {
+ return request({
+ url: '/system/notice/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询公告详细
+export function getNotice(noticeId) {
+ return request({
+ url: '/system/notice/' + noticeId,
+ method: 'get'
+ })
+}
+
+// 新增公告
+export function addNotice(data) {
+ return request({
+ url: '/system/notice',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改公告
+export function updateNotice(data) {
+ return request({
+ url: '/system/notice',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除公告
+export function delNotice(noticeId) {
+ return request({
+ url: '/system/notice/' + noticeId,
+ method: 'delete'
+ })
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/api/system/post.js b/evo-tech-ui/src/api/system/post.js
new file mode 100644
index 0000000..1a8e9ca
--- /dev/null
+++ b/evo-tech-ui/src/api/system/post.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询岗位列表
+export function listPost(query) {
+ return request({
+ url: '/system/post/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询岗位详细
+export function getPost(postId) {
+ return request({
+ url: '/system/post/' + postId,
+ method: 'get'
+ })
+}
+
+// 新增岗位
+export function addPost(data) {
+ return request({
+ url: '/system/post',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改岗位
+export function updatePost(data) {
+ return request({
+ url: '/system/post',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除岗位
+export function delPost(postId) {
+ return request({
+ url: '/system/post/' + postId,
+ method: 'delete'
+ })
+}
diff --git a/evo-tech-ui/src/api/system/role.js b/evo-tech-ui/src/api/system/role.js
new file mode 100644
index 0000000..f13e6f4
--- /dev/null
+++ b/evo-tech-ui/src/api/system/role.js
@@ -0,0 +1,119 @@
+import request from '@/utils/request'
+
+// 查询角色列表
+export function listRole(query) {
+ return request({
+ url: '/system/role/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询角色详细
+export function getRole(roleId) {
+ return request({
+ url: '/system/role/' + roleId,
+ method: 'get'
+ })
+}
+
+// 新增角色
+export function addRole(data) {
+ return request({
+ url: '/system/role',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改角色
+export function updateRole(data) {
+ return request({
+ url: '/system/role',
+ method: 'put',
+ data: data
+ })
+}
+
+// 角色数据权限
+export function dataScope(data) {
+ return request({
+ url: '/system/role/dataScope',
+ method: 'put',
+ data: data
+ })
+}
+
+// 角色状态修改
+export function changeRoleStatus(roleId, status) {
+ const data = {
+ roleId,
+ status
+ }
+ return request({
+ url: '/system/role/changeStatus',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除角色
+export function delRole(roleId) {
+ return request({
+ url: '/system/role/' + roleId,
+ method: 'delete'
+ })
+}
+
+// 查询角色已授权用户列表
+export function allocatedUserList(query) {
+ return request({
+ url: '/system/role/authUser/allocatedList',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询角色未授权用户列表
+export function unallocatedUserList(query) {
+ return request({
+ url: '/system/role/authUser/unallocatedList',
+ method: 'get',
+ params: query
+ })
+}
+
+// 取消用户授权角色
+export function authUserCancel(data) {
+ return request({
+ url: '/system/role/authUser/cancel',
+ method: 'put',
+ data: data
+ })
+}
+
+// 批量取消用户授权角色
+export function authUserCancelAll(data) {
+ return request({
+ url: '/system/role/authUser/cancelAll',
+ method: 'put',
+ params: data
+ })
+}
+
+// 授权用户选择
+export function authUserSelectAll(data) {
+ return request({
+ url: '/system/role/authUser/selectAll',
+ method: 'put',
+ params: data
+ })
+}
+
+// 根据角色ID查询部门树结构
+export function deptTreeSelect(roleId) {
+ return request({
+ url: '/system/role/deptTree/' + roleId,
+ method: 'get'
+ })
+}
diff --git a/evo-tech-ui/src/api/system/user.js b/evo-tech-ui/src/api/system/user.js
new file mode 100644
index 0000000..9b0211a
--- /dev/null
+++ b/evo-tech-ui/src/api/system/user.js
@@ -0,0 +1,136 @@
+import request from '@/utils/request'
+import { parseStrEmpty } from "@/utils/ruoyi";
+
+// 查询用户列表
+export function listUser(query) {
+ return request({
+ url: '/system/user/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询用户详细
+export function getUser(userId) {
+ return request({
+ url: '/system/user/' + parseStrEmpty(userId),
+ method: 'get'
+ })
+}
+
+// 新增用户
+export function addUser(data) {
+ return request({
+ url: '/system/user',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改用户
+export function updateUser(data) {
+ return request({
+ url: '/system/user',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除用户
+export function delUser(userId) {
+ return request({
+ url: '/system/user/' + userId,
+ method: 'delete'
+ })
+}
+
+// 用户密码重置
+export function resetUserPwd(userId, password) {
+ const data = {
+ userId,
+ password
+ }
+ return request({
+ url: '/system/user/resetPwd',
+ method: 'put',
+ data: data
+ })
+}
+
+// 用户状态修改
+export function changeUserStatus(userId, status) {
+ const data = {
+ userId,
+ status
+ }
+ return request({
+ url: '/system/user/changeStatus',
+ method: 'put',
+ data: data
+ })
+}
+
+// 查询用户个人信息
+export function getUserProfile() {
+ return request({
+ url: '/system/user/profile',
+ method: 'get'
+ })
+}
+
+// 修改用户个人信息
+export function updateUserProfile(data) {
+ return request({
+ url: '/system/user/profile',
+ method: 'put',
+ data: data
+ })
+}
+
+// 用户密码重置
+export function updateUserPwd(oldPassword, newPassword) {
+ const data = {
+ oldPassword,
+ newPassword
+ }
+ return request({
+ url: '/system/user/profile/updatePwd',
+ method: 'put',
+ params: data
+ })
+}
+
+// 用户头像上传
+export function uploadAvatar(data) {
+ return request({
+ url: '/system/user/profile/avatar',
+ method: 'post',
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
+ data: data
+ })
+}
+
+// 查询授权角色
+export function getAuthRole(userId) {
+ return request({
+ url: '/system/user/authRole/' + userId,
+ method: 'get'
+ })
+}
+
+// 保存授权角色
+export function updateAuthRole(data) {
+ return request({
+ url: '/system/user/authRole',
+ method: 'put',
+ params: data
+ })
+}
+
+// 查询部门下拉树结构
+export function deptTreeSelect() {
+ return request({
+ url: '/system/user/deptTree',
+ method: 'get'
+ })
+}
diff --git a/evo-tech-ui/src/api/tool/gen.js b/evo-tech-ui/src/api/tool/gen.js
new file mode 100644
index 0000000..2075677
--- /dev/null
+++ b/evo-tech-ui/src/api/tool/gen.js
@@ -0,0 +1,85 @@
+import request from '@/utils/request'
+
+// 查询生成表数据
+export function listTable(query) {
+ return request({
+ url: '/tool/gen/list',
+ method: 'get',
+ params: query
+ })
+}
+// 查询db数据库列表
+export function listDbTable(query) {
+ return request({
+ url: '/tool/gen/db/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询表详细信息
+export function getGenTable(tableId) {
+ return request({
+ url: '/tool/gen/' + tableId,
+ method: 'get'
+ })
+}
+
+// 修改代码生成信息
+export function updateGenTable(data) {
+ return request({
+ url: '/tool/gen',
+ method: 'put',
+ data: data
+ })
+}
+
+// 导入表
+export function importTable(data) {
+ return request({
+ url: '/tool/gen/importTable',
+ method: 'post',
+ params: data
+ })
+}
+
+// 创建表
+export function createTable(data) {
+ return request({
+ url: '/tool/gen/createTable',
+ method: 'post',
+ params: data
+ })
+}
+
+// 预览生成代码
+export function previewTable(tableId) {
+ return request({
+ url: '/tool/gen/preview/' + tableId,
+ method: 'get'
+ })
+}
+
+// 删除表数据
+export function delTable(tableId) {
+ return request({
+ url: '/tool/gen/' + tableId,
+ method: 'delete'
+ })
+}
+
+// 生成代码(自定义路径)
+export function genCode(tableName) {
+ return request({
+ url: '/tool/gen/genCode/' + tableName,
+ method: 'get'
+ })
+}
+
+// 同步数据库
+export function synchDb(tableName) {
+ return request({
+ url: '/tool/gen/synchDb/' + tableName,
+ method: 'get'
+ })
+}
diff --git a/evo-tech-ui/src/assets/401_images/401.gif b/evo-tech-ui/src/assets/401_images/401.gif
new file mode 100644
index 0000000..cd6e0d9
Binary files /dev/null and b/evo-tech-ui/src/assets/401_images/401.gif differ
diff --git a/evo-tech-ui/src/assets/404_images/404.png b/evo-tech-ui/src/assets/404_images/404.png
new file mode 100644
index 0000000..3d8e230
Binary files /dev/null and b/evo-tech-ui/src/assets/404_images/404.png differ
diff --git a/evo-tech-ui/src/assets/404_images/404_cloud.png b/evo-tech-ui/src/assets/404_images/404_cloud.png
new file mode 100644
index 0000000..c6281d0
Binary files /dev/null and b/evo-tech-ui/src/assets/404_images/404_cloud.png differ
diff --git a/evo-tech-ui/src/assets/icons/index.js b/evo-tech-ui/src/assets/icons/index.js
new file mode 100644
index 0000000..2c6b309
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/index.js
@@ -0,0 +1,9 @@
+import Vue from 'vue'
+import SvgIcon from '@/components/SvgIcon'// svg component
+
+// register globally
+Vue.component('svg-icon', SvgIcon)
+
+const req = require.context('./svg', false, /\.svg$/)
+const requireAll = requireContext => requireContext.keys().map(requireContext)
+requireAll(req)
diff --git a/evo-tech-ui/src/assets/icons/svg/404.svg b/evo-tech-ui/src/assets/icons/svg/404.svg
new file mode 100644
index 0000000..6df5019
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/404.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/bug.svg b/evo-tech-ui/src/assets/icons/svg/bug.svg
new file mode 100644
index 0000000..05a150d
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/bug.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/build.svg b/evo-tech-ui/src/assets/icons/svg/build.svg
new file mode 100644
index 0000000..97c4688
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/build.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/button.svg b/evo-tech-ui/src/assets/icons/svg/button.svg
new file mode 100644
index 0000000..904fddc
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/button.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/cascader.svg b/evo-tech-ui/src/assets/icons/svg/cascader.svg
new file mode 100644
index 0000000..e256024
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/cascader.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/chart.svg b/evo-tech-ui/src/assets/icons/svg/chart.svg
new file mode 100644
index 0000000..27728fb
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/chart.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/checkbox.svg b/evo-tech-ui/src/assets/icons/svg/checkbox.svg
new file mode 100644
index 0000000..013fd3a
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/checkbox.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/clipboard.svg b/evo-tech-ui/src/assets/icons/svg/clipboard.svg
new file mode 100644
index 0000000..90923ff
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/clipboard.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/code.svg b/evo-tech-ui/src/assets/icons/svg/code.svg
new file mode 100644
index 0000000..5f9c5ab
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/code.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/color.svg b/evo-tech-ui/src/assets/icons/svg/color.svg
new file mode 100644
index 0000000..44a81aa
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/color.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/component.svg b/evo-tech-ui/src/assets/icons/svg/component.svg
new file mode 100644
index 0000000..29c3458
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/component.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/dashboard.svg b/evo-tech-ui/src/assets/icons/svg/dashboard.svg
new file mode 100644
index 0000000..5317d37
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/dashboard.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/date-range.svg b/evo-tech-ui/src/assets/icons/svg/date-range.svg
new file mode 100644
index 0000000..fda571e
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/date-range.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/date.svg b/evo-tech-ui/src/assets/icons/svg/date.svg
new file mode 100644
index 0000000..52dc73e
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/date.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/dict.svg b/evo-tech-ui/src/assets/icons/svg/dict.svg
new file mode 100644
index 0000000..4849377
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/dict.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/documentation.svg b/evo-tech-ui/src/assets/icons/svg/documentation.svg
new file mode 100644
index 0000000..7043122
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/documentation.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/download.svg b/evo-tech-ui/src/assets/icons/svg/download.svg
new file mode 100644
index 0000000..c896951
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/download.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/drag.svg b/evo-tech-ui/src/assets/icons/svg/drag.svg
new file mode 100644
index 0000000..4185d3c
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/drag.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/druid.svg b/evo-tech-ui/src/assets/icons/svg/druid.svg
new file mode 100644
index 0000000..a2b4b4e
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/druid.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/edit.svg b/evo-tech-ui/src/assets/icons/svg/edit.svg
new file mode 100644
index 0000000..d26101f
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/edit.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/education.svg b/evo-tech-ui/src/assets/icons/svg/education.svg
new file mode 100644
index 0000000..7bfb01d
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/education.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/email.svg b/evo-tech-ui/src/assets/icons/svg/email.svg
new file mode 100644
index 0000000..74d25e2
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/email.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/example.svg b/evo-tech-ui/src/assets/icons/svg/example.svg
new file mode 100644
index 0000000..46f42b5
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/example.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/excel.svg b/evo-tech-ui/src/assets/icons/svg/excel.svg
new file mode 100644
index 0000000..74d97b8
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/excel.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/exit-fullscreen.svg b/evo-tech-ui/src/assets/icons/svg/exit-fullscreen.svg
new file mode 100644
index 0000000..485c128
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/exit-fullscreen.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/eye-open.svg b/evo-tech-ui/src/assets/icons/svg/eye-open.svg
new file mode 100644
index 0000000..88dcc98
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/eye-open.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/eye.svg b/evo-tech-ui/src/assets/icons/svg/eye.svg
new file mode 100644
index 0000000..16ed2d8
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/eye.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/form.svg b/evo-tech-ui/src/assets/icons/svg/form.svg
new file mode 100644
index 0000000..dcbaa18
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/form.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/fullscreen.svg b/evo-tech-ui/src/assets/icons/svg/fullscreen.svg
new file mode 100644
index 0000000..0e86b6f
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/fullscreen.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/github.svg b/evo-tech-ui/src/assets/icons/svg/github.svg
new file mode 100644
index 0000000..db0a0d4
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/github.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/guide.svg b/evo-tech-ui/src/assets/icons/svg/guide.svg
new file mode 100644
index 0000000..b271001
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/guide.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/icon.svg b/evo-tech-ui/src/assets/icons/svg/icon.svg
new file mode 100644
index 0000000..82be8ee
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/input.svg b/evo-tech-ui/src/assets/icons/svg/input.svg
new file mode 100644
index 0000000..ab91381
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/input.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/international.svg b/evo-tech-ui/src/assets/icons/svg/international.svg
new file mode 100644
index 0000000..e9b56ee
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/international.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/job.svg b/evo-tech-ui/src/assets/icons/svg/job.svg
new file mode 100644
index 0000000..2a93a25
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/job.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/language.svg b/evo-tech-ui/src/assets/icons/svg/language.svg
new file mode 100644
index 0000000..0082b57
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/language.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/link.svg b/evo-tech-ui/src/assets/icons/svg/link.svg
new file mode 100644
index 0000000..48197ba
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/link.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/list.svg b/evo-tech-ui/src/assets/icons/svg/list.svg
new file mode 100644
index 0000000..20259ed
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/list.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/lock.svg b/evo-tech-ui/src/assets/icons/svg/lock.svg
new file mode 100644
index 0000000..74fee54
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/lock.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/log.svg b/evo-tech-ui/src/assets/icons/svg/log.svg
new file mode 100644
index 0000000..d879d33
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/log.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/logininfor.svg b/evo-tech-ui/src/assets/icons/svg/logininfor.svg
new file mode 100644
index 0000000..267f844
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/logininfor.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/message.svg b/evo-tech-ui/src/assets/icons/svg/message.svg
new file mode 100644
index 0000000..14ca817
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/message.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/money.svg b/evo-tech-ui/src/assets/icons/svg/money.svg
new file mode 100644
index 0000000..c1580de
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/money.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/monitor.svg b/evo-tech-ui/src/assets/icons/svg/monitor.svg
new file mode 100644
index 0000000..bc308cb
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/monitor.svg
@@ -0,0 +1,2 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/nested.svg b/evo-tech-ui/src/assets/icons/svg/nested.svg
new file mode 100644
index 0000000..06713a8
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/nested.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/number.svg b/evo-tech-ui/src/assets/icons/svg/number.svg
new file mode 100644
index 0000000..ad5ce9a
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/number.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/online.svg b/evo-tech-ui/src/assets/icons/svg/online.svg
new file mode 100644
index 0000000..330a202
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/online.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/password.svg b/evo-tech-ui/src/assets/icons/svg/password.svg
new file mode 100644
index 0000000..6c64def
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/password.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/pdf.svg b/evo-tech-ui/src/assets/icons/svg/pdf.svg
new file mode 100644
index 0000000..957aa0c
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/pdf.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/people.svg b/evo-tech-ui/src/assets/icons/svg/people.svg
new file mode 100644
index 0000000..2bd54ae
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/people.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/peoples.svg b/evo-tech-ui/src/assets/icons/svg/peoples.svg
new file mode 100644
index 0000000..aab852e
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/peoples.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/phone.svg b/evo-tech-ui/src/assets/icons/svg/phone.svg
new file mode 100644
index 0000000..ab8e8c4
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/phone.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/post.svg b/evo-tech-ui/src/assets/icons/svg/post.svg
new file mode 100644
index 0000000..2922c61
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/post.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/qq.svg b/evo-tech-ui/src/assets/icons/svg/qq.svg
new file mode 100644
index 0000000..ee13d4e
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/qq.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/question.svg b/evo-tech-ui/src/assets/icons/svg/question.svg
new file mode 100644
index 0000000..cf75bd4
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/question.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/radio.svg b/evo-tech-ui/src/assets/icons/svg/radio.svg
new file mode 100644
index 0000000..0cde345
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/radio.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/rate.svg b/evo-tech-ui/src/assets/icons/svg/rate.svg
new file mode 100644
index 0000000..aa3b14d
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/rate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/redis-list.svg b/evo-tech-ui/src/assets/icons/svg/redis-list.svg
new file mode 100644
index 0000000..98a15b2
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/redis-list.svg
@@ -0,0 +1,2 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/redis.svg b/evo-tech-ui/src/assets/icons/svg/redis.svg
new file mode 100644
index 0000000..2f1d62d
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/redis.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/row.svg b/evo-tech-ui/src/assets/icons/svg/row.svg
new file mode 100644
index 0000000..0780992
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/row.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/search.svg b/evo-tech-ui/src/assets/icons/svg/search.svg
new file mode 100644
index 0000000..84233dd
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/search.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/select.svg b/evo-tech-ui/src/assets/icons/svg/select.svg
new file mode 100644
index 0000000..d628382
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/select.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/server.svg b/evo-tech-ui/src/assets/icons/svg/server.svg
new file mode 100644
index 0000000..eb287e3
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/server.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/shopping.svg b/evo-tech-ui/src/assets/icons/svg/shopping.svg
new file mode 100644
index 0000000..87513e7
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/shopping.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/size.svg b/evo-tech-ui/src/assets/icons/svg/size.svg
new file mode 100644
index 0000000..ddb25b8
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/size.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/skill.svg b/evo-tech-ui/src/assets/icons/svg/skill.svg
new file mode 100644
index 0000000..a3b7312
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/skill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/slider.svg b/evo-tech-ui/src/assets/icons/svg/slider.svg
new file mode 100644
index 0000000..fbe4f39
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/slider.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/star.svg b/evo-tech-ui/src/assets/icons/svg/star.svg
new file mode 100644
index 0000000..6cf86e6
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/star.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/swagger.svg b/evo-tech-ui/src/assets/icons/svg/swagger.svg
new file mode 100644
index 0000000..05d4e7b
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/swagger.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/switch.svg b/evo-tech-ui/src/assets/icons/svg/switch.svg
new file mode 100644
index 0000000..0ba61e3
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/switch.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/system.svg b/evo-tech-ui/src/assets/icons/svg/system.svg
new file mode 100644
index 0000000..5992593
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/system.svg
@@ -0,0 +1,2 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/tab.svg b/evo-tech-ui/src/assets/icons/svg/tab.svg
new file mode 100644
index 0000000..b4b48e4
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/tab.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/table.svg b/evo-tech-ui/src/assets/icons/svg/table.svg
new file mode 100644
index 0000000..0e3dc9d
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/table.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/textarea.svg b/evo-tech-ui/src/assets/icons/svg/textarea.svg
new file mode 100644
index 0000000..2709f29
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/textarea.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/theme.svg b/evo-tech-ui/src/assets/icons/svg/theme.svg
new file mode 100644
index 0000000..5982a2f
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/theme.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/time-range.svg b/evo-tech-ui/src/assets/icons/svg/time-range.svg
new file mode 100644
index 0000000..13c1202
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/time-range.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/time.svg b/evo-tech-ui/src/assets/icons/svg/time.svg
new file mode 100644
index 0000000..b376e32
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/time.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/tool.svg b/evo-tech-ui/src/assets/icons/svg/tool.svg
new file mode 100644
index 0000000..48e0e35
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/tool.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/tree-table.svg b/evo-tech-ui/src/assets/icons/svg/tree-table.svg
new file mode 100644
index 0000000..8aafdb8
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/tree-table.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/tree.svg b/evo-tech-ui/src/assets/icons/svg/tree.svg
new file mode 100644
index 0000000..dd4b7dd
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/tree.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/upload.svg b/evo-tech-ui/src/assets/icons/svg/upload.svg
new file mode 100644
index 0000000..bae49c0
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/upload.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/user.svg b/evo-tech-ui/src/assets/icons/svg/user.svg
new file mode 100644
index 0000000..0ba0716
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/user.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/validCode.svg b/evo-tech-ui/src/assets/icons/svg/validCode.svg
new file mode 100644
index 0000000..cfb1021
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/validCode.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/wechat.svg b/evo-tech-ui/src/assets/icons/svg/wechat.svg
new file mode 100644
index 0000000..c586e55
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/wechat.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svg/zip.svg b/evo-tech-ui/src/assets/icons/svg/zip.svg
new file mode 100644
index 0000000..f806fc4
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svg/zip.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/icons/svgo.yml b/evo-tech-ui/src/assets/icons/svgo.yml
new file mode 100644
index 0000000..d11906a
--- /dev/null
+++ b/evo-tech-ui/src/assets/icons/svgo.yml
@@ -0,0 +1,22 @@
+# replace default config
+
+# multipass: true
+# full: true
+
+plugins:
+
+ # - name
+ #
+ # or:
+ # - name: false
+ # - name: true
+ #
+ # or:
+ # - name:
+ # param1: 1
+ # param2: 2
+
+- removeAttrs:
+ attrs:
+ - 'fill'
+ - 'fill-rule'
diff --git a/evo-tech-ui/src/assets/image/login-background.jpg b/evo-tech-ui/src/assets/image/login-background.jpg
new file mode 100644
index 0000000..0cc384b
Binary files /dev/null and b/evo-tech-ui/src/assets/image/login-background.jpg differ
diff --git a/evo-tech-ui/src/assets/image/profile.jpg b/evo-tech-ui/src/assets/image/profile.jpg
new file mode 100644
index 0000000..9160b31
Binary files /dev/null and b/evo-tech-ui/src/assets/image/profile.jpg differ
diff --git a/evo-tech-ui/src/assets/image/tuzhizhang.png b/evo-tech-ui/src/assets/image/tuzhizhang.png
new file mode 100644
index 0000000..dd20e4d
Binary files /dev/null and b/evo-tech-ui/src/assets/image/tuzhizhang.png differ
diff --git a/evo-tech-ui/src/assets/image/yite.png b/evo-tech-ui/src/assets/image/yite.png
new file mode 100644
index 0000000..d367237
Binary files /dev/null and b/evo-tech-ui/src/assets/image/yite.png differ
diff --git a/evo-tech-ui/src/assets/images/dark.svg b/evo-tech-ui/src/assets/images/dark.svg
new file mode 100644
index 0000000..f646bd7
--- /dev/null
+++ b/evo-tech-ui/src/assets/images/dark.svg
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/images/light.svg b/evo-tech-ui/src/assets/images/light.svg
new file mode 100644
index 0000000..ab7cc08
--- /dev/null
+++ b/evo-tech-ui/src/assets/images/light.svg
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/images/login-background.jpg b/evo-tech-ui/src/assets/images/login-background.jpg
new file mode 100644
index 0000000..bac2c44
Binary files /dev/null and b/evo-tech-ui/src/assets/images/login-background.jpg differ
diff --git a/evo-tech-ui/src/assets/images/profile.jpg b/evo-tech-ui/src/assets/images/profile.jpg
new file mode 100644
index 0000000..9160b31
Binary files /dev/null and b/evo-tech-ui/src/assets/images/profile.jpg differ
diff --git a/evo-tech-ui/src/assets/images/tuzhizhang.png b/evo-tech-ui/src/assets/images/tuzhizhang.png
new file mode 100644
index 0000000..dd20e4d
Binary files /dev/null and b/evo-tech-ui/src/assets/images/tuzhizhang.png differ
diff --git a/evo-tech-ui/src/assets/images/yite.png b/evo-tech-ui/src/assets/images/yite.png
new file mode 100644
index 0000000..d367237
Binary files /dev/null and b/evo-tech-ui/src/assets/images/yite.png differ
diff --git a/evo-tech-ui/src/assets/logo/logo.png b/evo-tech-ui/src/assets/logo/logo.png
new file mode 100644
index 0000000..9160b31
Binary files /dev/null and b/evo-tech-ui/src/assets/logo/logo.png differ
diff --git a/evo-tech-ui/src/assets/styles/btn.scss b/evo-tech-ui/src/assets/styles/btn.scss
new file mode 100644
index 0000000..e6ba1a8
--- /dev/null
+++ b/evo-tech-ui/src/assets/styles/btn.scss
@@ -0,0 +1,99 @@
+@import './variables.scss';
+
+@mixin colorBtn($color) {
+ background: $color;
+
+ &:hover {
+ color: $color;
+
+ &:before,
+ &:after {
+ background: $color;
+ }
+ }
+}
+
+.blue-btn {
+ @include colorBtn($blue)
+}
+
+.light-blue-btn {
+ @include colorBtn($light-blue)
+}
+
+.red-btn {
+ @include colorBtn($red)
+}
+
+.pink-btn {
+ @include colorBtn($pink)
+}
+
+.green-btn {
+ @include colorBtn($green)
+}
+
+.tiffany-btn {
+ @include colorBtn($tiffany)
+}
+
+.yellow-btn {
+ @include colorBtn($yellow)
+}
+
+.pan-btn {
+ font-size: 14px;
+ color: #fff;
+ padding: 14px 36px;
+ border-radius: 8px;
+ border: none;
+ outline: none;
+ transition: 600ms ease all;
+ position: relative;
+ display: inline-block;
+
+ &:hover {
+ background: #fff;
+
+ &:before,
+ &:after {
+ width: 100%;
+ transition: 600ms ease all;
+ }
+ }
+
+ &:before,
+ &:after {
+ content: '';
+ position: absolute;
+ top: 0;
+ right: 0;
+ height: 2px;
+ width: 0;
+ transition: 400ms ease all;
+ }
+
+ &::after {
+ right: inherit;
+ top: inherit;
+ left: 0;
+ bottom: 0;
+ }
+}
+
+.custom-button {
+ display: inline-block;
+ line-height: 1;
+ white-space: nowrap;
+ cursor: pointer;
+ background: #fff;
+ color: #fff;
+ -webkit-appearance: none;
+ text-align: center;
+ box-sizing: border-box;
+ outline: 0;
+ margin: 0;
+ padding: 10px 15px;
+ font-size: 14px;
+ border-radius: 4px;
+}
diff --git a/evo-tech-ui/src/assets/styles/element-ui.scss b/evo-tech-ui/src/assets/styles/element-ui.scss
new file mode 100644
index 0000000..363092a
--- /dev/null
+++ b/evo-tech-ui/src/assets/styles/element-ui.scss
@@ -0,0 +1,92 @@
+// cover some element-ui styles
+
+.el-breadcrumb__inner,
+.el-breadcrumb__inner a {
+ font-weight: 400 !important;
+}
+
+.el-upload {
+ input[type="file"] {
+ display: none !important;
+ }
+}
+
+.el-upload__input {
+ display: none;
+}
+
+.cell {
+ .el-tag {
+ margin-right: 0px;
+ }
+}
+
+.small-padding {
+ .cell {
+ padding-left: 5px;
+ padding-right: 5px;
+ }
+}
+
+.fixed-width {
+ .el-button--mini {
+ padding: 7px 10px;
+ width: 60px;
+ }
+}
+
+.status-col {
+ .cell {
+ padding: 0 10px;
+ text-align: center;
+
+ .el-tag {
+ margin-right: 0px;
+ }
+ }
+}
+
+// to fixed https://github.com/ElemeFE/element/issues/2461
+.el-dialog {
+ transform: none;
+ left: 0;
+ position: relative;
+ margin: 0 auto;
+}
+
+// refine element ui upload
+.upload-container {
+ .el-upload {
+ width: 100%;
+
+ .el-upload-dragger {
+ width: 100%;
+ height: 200px;
+ }
+ }
+}
+
+// dropdown
+.el-dropdown-menu {
+ a {
+ display: block
+ }
+}
+
+// fix date-picker ui bug in filter-item
+.el-range-editor.el-input__inner {
+ display: inline-flex !important;
+}
+
+// to fix el-date-picker css style
+.el-range-separator {
+ box-sizing: content-box;
+}
+
+.el-menu--collapse
+ > div
+ > .el-submenu
+ > .el-submenu__title
+ .el-submenu__icon-arrow {
+ display: none;
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/assets/styles/element-variables.scss b/evo-tech-ui/src/assets/styles/element-variables.scss
new file mode 100644
index 0000000..1615ff2
--- /dev/null
+++ b/evo-tech-ui/src/assets/styles/element-variables.scss
@@ -0,0 +1,31 @@
+/**
+* I think element-ui's default theme color is too light for long-term use.
+* So I modified the default color and you can modify it to your liking.
+**/
+
+/* theme color */
+$--color-primary: #1890ff;
+$--color-success: #13ce66;
+$--color-warning: #ffba00;
+$--color-danger: #ff4949;
+// $--color-info: #1E1E1E;
+
+$--button-font-weight: 400;
+
+// $--color-text-regular: #1f2d3d;
+
+$--border-color-light: #dfe4ed;
+$--border-color-lighter: #e6ebf5;
+
+$--table-border: 1px solid #dfe6ec;
+
+/* icon font path, required */
+$--font-path: '~element-ui/lib/theme-chalk/fonts';
+
+@import "~element-ui/packages/theme-chalk/src/index";
+
+// the :export directive is the magic sauce for webpack
+// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass
+:export {
+ theme: $--color-primary;
+}
diff --git a/evo-tech-ui/src/assets/styles/index.scss b/evo-tech-ui/src/assets/styles/index.scss
new file mode 100644
index 0000000..2f3b9ef
--- /dev/null
+++ b/evo-tech-ui/src/assets/styles/index.scss
@@ -0,0 +1,182 @@
+@import './variables.scss';
+@import './mixin.scss';
+@import './transition.scss';
+@import './element-ui.scss';
+@import './sidebar.scss';
+@import './btn.scss';
+
+body {
+ height: 100%;
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+ text-rendering: optimizeLegibility;
+ font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
+}
+
+label {
+ font-weight: 700;
+}
+
+html {
+ height: 100%;
+ box-sizing: border-box;
+}
+
+#app {
+ height: 100%;
+}
+
+*,
+*:before,
+*:after {
+ box-sizing: inherit;
+}
+
+.no-padding {
+ padding: 0px !important;
+}
+
+.padding-content {
+ padding: 4px 0;
+}
+
+a:focus,
+a:active {
+ outline: none;
+}
+
+a,
+a:focus,
+a:hover {
+ cursor: pointer;
+ color: inherit;
+ text-decoration: none;
+}
+
+div:focus {
+ outline: none;
+}
+
+.fr {
+ float: right;
+}
+
+.fl {
+ float: left;
+}
+
+.pr-5 {
+ padding-right: 5px;
+}
+
+.pl-5 {
+ padding-left: 5px;
+}
+
+.block {
+ display: block;
+}
+
+.pointer {
+ cursor: pointer;
+}
+
+.inlineBlock {
+ display: block;
+}
+
+.clearfix {
+ &:after {
+ visibility: hidden;
+ display: block;
+ font-size: 0;
+ content: " ";
+ clear: both;
+ height: 0;
+ }
+}
+
+aside {
+ background: #eef1f6;
+ padding: 8px 24px;
+ margin-bottom: 20px;
+ border-radius: 2px;
+ display: block;
+ line-height: 32px;
+ font-size: 16px;
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
+ color: #2c3e50;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+
+ a {
+ color: #337ab7;
+ cursor: pointer;
+
+ &:hover {
+ color: rgb(32, 160, 255);
+ }
+ }
+}
+
+//main-container全局样式
+.app-container {
+ padding: 20px;
+}
+
+.components-container {
+ margin: 30px 50px;
+ position: relative;
+}
+
+.pagination-container {
+ margin-top: 30px;
+}
+
+.text-center {
+ text-align: center
+}
+
+.sub-navbar {
+ height: 50px;
+ line-height: 50px;
+ position: relative;
+ width: 100%;
+ text-align: right;
+ padding-right: 20px;
+ transition: 600ms ease position;
+ background: linear-gradient(90deg, rgba(32, 182, 249, 1) 0%, rgba(32, 182, 249, 1) 0%, rgba(33, 120, 241, 1) 100%, rgba(33, 120, 241, 1) 100%);
+
+ .subtitle {
+ font-size: 20px;
+ color: #fff;
+ }
+
+ &.draft {
+ background: #d0d0d0;
+ }
+
+ &.deleted {
+ background: #d0d0d0;
+ }
+}
+
+.link-type,
+.link-type:focus {
+ color: #337ab7;
+ cursor: pointer;
+
+ &:hover {
+ color: rgb(32, 160, 255);
+ }
+}
+
+.filter-container {
+ padding-bottom: 10px;
+
+ .filter-item {
+ display: inline-block;
+ vertical-align: middle;
+ margin-bottom: 10px;
+ }
+}
diff --git a/evo-tech-ui/src/assets/styles/mixin.scss b/evo-tech-ui/src/assets/styles/mixin.scss
new file mode 100644
index 0000000..06fa061
--- /dev/null
+++ b/evo-tech-ui/src/assets/styles/mixin.scss
@@ -0,0 +1,66 @@
+@mixin clearfix {
+ &:after {
+ content: "";
+ display: table;
+ clear: both;
+ }
+}
+
+@mixin scrollBar {
+ &::-webkit-scrollbar-track-piece {
+ background: #d3dce6;
+ }
+
+ &::-webkit-scrollbar {
+ width: 6px;
+ }
+
+ &::-webkit-scrollbar-thumb {
+ background: #99a9bf;
+ border-radius: 20px;
+ }
+}
+
+@mixin relative {
+ position: relative;
+ width: 100%;
+ height: 100%;
+}
+
+@mixin pct($pct) {
+ width: #{$pct};
+ position: relative;
+ margin: 0 auto;
+}
+
+@mixin triangle($width, $height, $color, $direction) {
+ $width: $width/2;
+ $color-border-style: $height solid $color;
+ $transparent-border-style: $width solid transparent;
+ height: 0;
+ width: 0;
+
+ @if $direction==up {
+ border-bottom: $color-border-style;
+ border-left: $transparent-border-style;
+ border-right: $transparent-border-style;
+ }
+
+ @else if $direction==right {
+ border-left: $color-border-style;
+ border-top: $transparent-border-style;
+ border-bottom: $transparent-border-style;
+ }
+
+ @else if $direction==down {
+ border-top: $color-border-style;
+ border-left: $transparent-border-style;
+ border-right: $transparent-border-style;
+ }
+
+ @else if $direction==left {
+ border-right: $color-border-style;
+ border-top: $transparent-border-style;
+ border-bottom: $transparent-border-style;
+ }
+}
diff --git a/evo-tech-ui/src/assets/styles/ruoyi.scss b/evo-tech-ui/src/assets/styles/ruoyi.scss
new file mode 100644
index 0000000..4e29874
--- /dev/null
+++ b/evo-tech-ui/src/assets/styles/ruoyi.scss
@@ -0,0 +1,291 @@
+/**
+* 通用css样式布局处理
+* Copyright (c) 2019 ruoyi
+*/
+
+/** 基础通用 **/
+.pt5 {
+ padding-top: 5px;
+}
+
+.pr5 {
+ padding-right: 5px;
+}
+
+.pb5 {
+ padding-bottom: 5px;
+}
+
+.mt5 {
+ margin-top: 5px;
+}
+
+.mr5 {
+ margin-right: 5px;
+}
+
+.mb5 {
+ margin-bottom: 5px;
+}
+
+.mb8 {
+ margin-bottom: 8px;
+}
+
+.ml5 {
+ margin-left: 5px;
+}
+
+.mt10 {
+ margin-top: 10px;
+}
+
+.mr10 {
+ margin-right: 10px;
+}
+
+.mb10 {
+ margin-bottom: 10px;
+}
+.ml10 {
+ margin-left: 10px;
+}
+
+.mt20 {
+ margin-top: 20px;
+}
+
+.mr20 {
+ margin-right: 20px;
+}
+
+.mb20 {
+ margin-bottom: 20px;
+}
+.ml20 {
+ margin-left: 20px;
+}
+
+.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
+ font-family: inherit;
+ font-weight: 500;
+ line-height: 1.1;
+ color: inherit;
+}
+
+.el-message-box__status + .el-message-box__message{
+ word-break: break-word;
+}
+
+.el-dialog:not(.is-fullscreen) {
+ margin-top: 6vh !important;
+}
+
+.el-dialog__wrapper.scrollbar .el-dialog .el-dialog__body {
+ overflow: auto;
+ overflow-x: hidden;
+ max-height: 70vh;
+ padding: 10px 20px 0;
+}
+
+.el-table {
+ .el-table__header-wrapper, .el-table__fixed-header-wrapper {
+ th {
+ word-break: break-word;
+ background-color: #f8f8f9;
+ color: #515a6e;
+ height: 40px;
+ font-size: 13px;
+ }
+ }
+
+ .el-table__body-wrapper {
+ .el-button [class*="el-icon-"] + span {
+ margin-left: 1px;
+ }
+ }
+}
+
+/** 表单布局 **/
+.form-header {
+ font-size: 15px;
+ color: #6379bb;
+ border-bottom: 1px solid #ddd;
+ margin: 8px 10px 25px 10px;
+ padding-bottom: 5px
+}
+
+/** 表格布局 **/
+.pagination-container {
+ position: relative;
+ height: 25px;
+ margin-bottom: 10px;
+ margin-top: 15px;
+ padding: 10px 20px !important;
+}
+
+/* tree border */
+.tree-border {
+ margin-top: 5px;
+ border: 1px solid #e5e6e7;
+ background: #FFFFFF none;
+ border-radius: 4px;
+}
+
+.pagination-container .el-pagination {
+ right: 0;
+ position: absolute;
+}
+
+@media (max-width: 768px) {
+ .pagination-container .el-pagination > .el-pagination__jump {
+ display: none !important;
+ }
+ .pagination-container .el-pagination > .el-pagination__sizes {
+ display: none !important;
+ }
+}
+
+.el-table .fixed-width .el-button--mini {
+ padding-left: 0;
+ padding-right: 0;
+ width: inherit;
+}
+
+/** 表格更多操作下拉样式 */
+.el-table .el-dropdown-link,.el-table .el-dropdown-selfdefine {
+ cursor: pointer;
+ margin-left: 5px;
+}
+
+.el-table .el-dropdown, .el-icon-arrow-down {
+ font-size: 12px;
+}
+
+.el-tree-node__content > .el-checkbox {
+ margin-right: 8px;
+}
+
+.list-group-striped > .list-group-item {
+ border-left: 0;
+ border-right: 0;
+ border-radius: 0;
+ padding-left: 0;
+ padding-right: 0;
+}
+
+.list-group {
+ padding-left: 0px;
+ list-style: none;
+}
+
+.list-group-item {
+ border-bottom: 1px solid #e7eaec;
+ border-top: 1px solid #e7eaec;
+ margin-bottom: -1px;
+ padding: 11px 0px;
+ font-size: 13px;
+}
+
+.pull-right {
+ float: right !important;
+}
+
+.el-card__header {
+ padding: 14px 15px 7px;
+ min-height: 40px;
+}
+
+.el-card__body {
+ padding: 15px 20px 20px 20px;
+}
+
+.card-box {
+ padding-right: 15px;
+ padding-left: 15px;
+ margin-bottom: 10px;
+}
+
+/* button color */
+.el-button--cyan.is-active,
+.el-button--cyan:active {
+ background: #20B2AA;
+ border-color: #20B2AA;
+ color: #FFFFFF;
+}
+
+.el-button--cyan:focus,
+.el-button--cyan:hover {
+ background: #48D1CC;
+ border-color: #48D1CC;
+ color: #FFFFFF;
+}
+
+.el-button--cyan {
+ background-color: #20B2AA;
+ border-color: #20B2AA;
+ color: #FFFFFF;
+}
+
+/* text color */
+.text-navy {
+ color: #1ab394;
+}
+
+.text-primary {
+ color: inherit;
+}
+
+.text-success {
+ color: #1c84c6;
+}
+
+.text-info {
+ color: #23c6c8;
+}
+
+.text-warning {
+ color: #f8ac59;
+}
+
+.text-danger {
+ color: #ed5565;
+}
+
+.text-muted {
+ color: #888888;
+}
+
+/* image */
+.img-circle {
+ border-radius: 50%;
+}
+
+.img-lg {
+ width: 120px;
+ height: 120px;
+}
+
+.avatar-upload-preview {
+ position: relative;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ width: 200px;
+ height: 200px;
+ border-radius: 50%;
+ box-shadow: 0 0 4px #ccc;
+ overflow: hidden;
+}
+
+/* 拖拽列样式 */
+.sortable-ghost {
+ opacity: .8;
+ color: #fff !important;
+ background: #42b983 !important;
+}
+
+.top-right-btn {
+ position: relative;
+ float: right;
+}
diff --git a/evo-tech-ui/src/assets/styles/sidebar.scss b/evo-tech-ui/src/assets/styles/sidebar.scss
new file mode 100644
index 0000000..abe5b63
--- /dev/null
+++ b/evo-tech-ui/src/assets/styles/sidebar.scss
@@ -0,0 +1,227 @@
+#app {
+
+ .main-container {
+ height: 100%;
+ transition: margin-left .28s;
+ margin-left: $base-sidebar-width;
+ position: relative;
+ }
+
+ .sidebarHide {
+ margin-left: 0!important;
+ }
+
+ .sidebar-container {
+ -webkit-transition: width .28s;
+ transition: width 0.28s;
+ width: $base-sidebar-width !important;
+ background-color: $base-menu-background;
+ height: 100%;
+ position: fixed;
+ font-size: 0px;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1001;
+ overflow: hidden;
+ -webkit-box-shadow: 2px 0 6px rgba(0,21,41,.35);
+ box-shadow: 2px 0 6px rgba(0,21,41,.35);
+
+ // reset element-ui css
+ .horizontal-collapse-transition {
+ transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out;
+ }
+
+ .scrollbar-wrapper {
+ overflow-x: hidden !important;
+ }
+
+ .el-scrollbar__bar.is-vertical {
+ right: 0px;
+ }
+
+ .el-scrollbar {
+ height: 100%;
+ }
+
+ &.has-logo {
+ .el-scrollbar {
+ height: calc(100% - 50px);
+ }
+ }
+
+ .is-horizontal {
+ display: none;
+ }
+
+ a {
+ display: inline-block;
+ width: 100%;
+ overflow: hidden;
+ }
+
+ .svg-icon {
+ margin-right: 16px;
+ }
+
+ .el-menu {
+ border: none;
+ height: 100%;
+ width: 100% !important;
+ }
+
+ .el-menu-item, .el-submenu__title {
+ overflow: hidden !important;
+ text-overflow: ellipsis !important;
+ white-space: nowrap !important;
+ }
+
+ // menu hover
+ .submenu-title-noDropdown,
+ .el-submenu__title {
+ &:hover {
+ background-color: rgba(0, 0, 0, 0.06) !important;
+ }
+ }
+
+ & .theme-dark .is-active > .el-submenu__title {
+ color: $base-menu-color-active !important;
+ }
+
+ & .nest-menu .el-submenu>.el-submenu__title,
+ & .el-submenu .el-menu-item {
+ min-width: $base-sidebar-width !important;
+
+ &:hover {
+ background-color: rgba(0, 0, 0, 0.06) !important;
+ }
+ }
+
+ & .theme-dark .nest-menu .el-submenu>.el-submenu__title,
+ & .theme-dark .el-submenu .el-menu-item {
+ background-color: $base-sub-menu-background !important;
+
+ &:hover {
+ background-color: $base-sub-menu-hover !important;
+ }
+ }
+ }
+
+ .hideSidebar {
+ .sidebar-container {
+ width: 54px !important;
+ }
+
+ .main-container {
+ margin-left: 54px;
+ }
+
+ .submenu-title-noDropdown {
+ padding: 0 !important;
+ position: relative;
+
+ .el-tooltip {
+ padding: 0 !important;
+
+ .svg-icon {
+ margin-left: 20px;
+ }
+ }
+ }
+
+ .el-submenu {
+ overflow: hidden;
+
+ &>.el-submenu__title {
+ padding: 0 !important;
+
+ .svg-icon {
+ margin-left: 20px;
+ }
+
+ }
+ }
+
+ .el-menu--collapse {
+ .el-submenu {
+ &>.el-submenu__title {
+ &>span {
+ height: 0;
+ width: 0;
+ overflow: hidden;
+ visibility: hidden;
+ display: inline-block;
+ }
+ }
+ }
+ }
+ }
+
+ .el-menu--collapse .el-menu .el-submenu {
+ min-width: $base-sidebar-width !important;
+ }
+
+ // mobile responsive
+ .mobile {
+ .main-container {
+ margin-left: 0px;
+ }
+
+ .sidebar-container {
+ transition: transform .28s;
+ width: $base-sidebar-width !important;
+ }
+
+ &.hideSidebar {
+ .sidebar-container {
+ pointer-events: none;
+ transition-duration: 0.3s;
+ transform: translate3d(-$base-sidebar-width, 0, 0);
+ }
+ }
+ }
+
+ .withoutAnimation {
+
+ .main-container,
+ .sidebar-container {
+ transition: none;
+ }
+ }
+}
+
+// when menu collapsed
+.el-menu--vertical {
+ &>.el-menu {
+ .svg-icon {
+ margin-right: 16px;
+ }
+ }
+
+ .nest-menu .el-submenu>.el-submenu__title,
+ .el-menu-item {
+ &:hover {
+ // you can use $subMenuHover
+ background-color: rgba(0, 0, 0, 0.06) !important;
+ }
+ }
+
+ // the scroll bar appears when the subMenu is too long
+ >.el-menu--popup {
+ max-height: 100vh;
+ overflow-y: auto;
+
+ &::-webkit-scrollbar-track-piece {
+ background: #d3dce6;
+ }
+
+ &::-webkit-scrollbar {
+ width: 6px;
+ }
+
+ &::-webkit-scrollbar-thumb {
+ background: #99a9bf;
+ border-radius: 20px;
+ }
+ }
+}
diff --git a/evo-tech-ui/src/assets/styles/transition.scss b/evo-tech-ui/src/assets/styles/transition.scss
new file mode 100644
index 0000000..073f8c6
--- /dev/null
+++ b/evo-tech-ui/src/assets/styles/transition.scss
@@ -0,0 +1,49 @@
+// global transition css
+
+/* fade */
+.fade-enter-active,
+.fade-leave-active {
+ transition: opacity 0.28s;
+}
+
+.fade-enter,
+.fade-leave-active {
+ opacity: 0;
+}
+
+/* fade-transform */
+.fade-transform--move,
+.fade-transform-leave-active,
+.fade-transform-enter-active {
+ transition: all .5s;
+}
+
+.fade-transform-enter {
+ opacity: 0;
+ transform: translateX(-30px);
+}
+
+.fade-transform-leave-to {
+ opacity: 0;
+ transform: translateX(30px);
+}
+
+/* breadcrumb transition */
+.breadcrumb-enter-active,
+.breadcrumb-leave-active {
+ transition: all .5s;
+}
+
+.breadcrumb-enter,
+.breadcrumb-leave-active {
+ opacity: 0;
+ transform: translateX(20px);
+}
+
+.breadcrumb-move {
+ transition: all .5s;
+}
+
+.breadcrumb-leave-active {
+ position: absolute;
+}
diff --git a/evo-tech-ui/src/assets/styles/variables.scss b/evo-tech-ui/src/assets/styles/variables.scss
new file mode 100644
index 0000000..34484d4
--- /dev/null
+++ b/evo-tech-ui/src/assets/styles/variables.scss
@@ -0,0 +1,54 @@
+// base color
+$blue:#324157;
+$light-blue:#3A71A8;
+$red:#C03639;
+$pink: #E65D6E;
+$green: #30B08F;
+$tiffany: #4AB7BD;
+$yellow:#FEC171;
+$panGreen: #30B08F;
+
+// 默认菜单主题风格
+$base-menu-color:#bfcbd9;
+$base-menu-color-active:#f4f4f5;
+$base-menu-background:#304156;
+$base-logo-title-color: #ffffff;
+
+$base-menu-light-color:rgba(0,0,0,.70);
+$base-menu-light-background:#ffffff;
+$base-logo-light-title-color: #001529;
+
+$base-sub-menu-background:#1f2d3d;
+$base-sub-menu-hover:#001528;
+
+// 自定义暗色菜单风格
+/**
+$base-menu-color:hsla(0,0%,100%,.65);
+$base-menu-color-active:#fff;
+$base-menu-background:#001529;
+$base-logo-title-color: #ffffff;
+
+$base-menu-light-color:rgba(0,0,0,.70);
+$base-menu-light-background:#ffffff;
+$base-logo-light-title-color: #001529;
+
+$base-sub-menu-background:#000c17;
+$base-sub-menu-hover:#001528;
+*/
+
+$base-sidebar-width: 200px;
+
+// the :export directive is the magic sauce for webpack
+// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass
+:export {
+ menuColor: $base-menu-color;
+ menuLightColor: $base-menu-light-color;
+ menuColorActive: $base-menu-color-active;
+ menuBackground: $base-menu-background;
+ menuLightBackground: $base-menu-light-background;
+ subMenuBackground: $base-sub-menu-background;
+ subMenuHover: $base-sub-menu-hover;
+ sideBarWidth: $base-sidebar-width;
+ logoTitleColor: $base-logo-title-color;
+ logoLightTitleColor: $base-logo-light-title-color
+}
diff --git a/evo-tech-ui/src/components/Breadcrumb/index.vue b/evo-tech-ui/src/components/Breadcrumb/index.vue
new file mode 100644
index 0000000..1696f54
--- /dev/null
+++ b/evo-tech-ui/src/components/Breadcrumb/index.vue
@@ -0,0 +1,74 @@
+
+
+
+
+ {{ item.meta.title }}
+ {{ item.meta.title }}
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/components/Crontab/day.vue b/evo-tech-ui/src/components/Crontab/day.vue
new file mode 100644
index 0000000..fe3eaf0
--- /dev/null
+++ b/evo-tech-ui/src/components/Crontab/day.vue
@@ -0,0 +1,161 @@
+
+
+
+
+ 日,允许的通配符[, - * ? / L W]
+
+
+
+
+
+ 不指定
+
+
+
+
+
+ 周期从
+ -
+ 日
+
+
+
+
+
+ 从
+ 号开始,每
+ 日执行一次
+
+
+
+
+
+ 每月
+ 号最近的那个工作日
+
+
+
+
+
+ 本月最后一天
+
+
+
+
+
+ 指定
+
+ {{item}}
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/components/Crontab/hour.vue b/evo-tech-ui/src/components/Crontab/hour.vue
new file mode 100644
index 0000000..3216c33
--- /dev/null
+++ b/evo-tech-ui/src/components/Crontab/hour.vue
@@ -0,0 +1,120 @@
+
+
+
+
+ 小时,允许的通配符[, - * /]
+
+
+
+
+
+ 周期从
+ -
+ 小时
+
+
+
+
+
+ 从
+ 小时开始,每
+ 小时执行一次
+
+
+
+
+
+ 指定
+
+ {{item-1}}
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/components/Crontab/index.vue b/evo-tech-ui/src/components/Crontab/index.vue
new file mode 100644
index 0000000..3963df2
--- /dev/null
+++ b/evo-tech-ui/src/components/Crontab/index.vue
@@ -0,0 +1,430 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 确定
+ 重置
+ 取消
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/components/Crontab/min.vue b/evo-tech-ui/src/components/Crontab/min.vue
new file mode 100644
index 0000000..43cab90
--- /dev/null
+++ b/evo-tech-ui/src/components/Crontab/min.vue
@@ -0,0 +1,116 @@
+
+
+
+
+ 分钟,允许的通配符[, - * /]
+
+
+
+
+
+ 周期从
+ -
+ 分钟
+
+
+
+
+
+ 从
+ 分钟开始,每
+ 分钟执行一次
+
+
+
+
+
+ 指定
+
+ {{item-1}}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/components/Crontab/month.vue b/evo-tech-ui/src/components/Crontab/month.vue
new file mode 100644
index 0000000..fd0ac38
--- /dev/null
+++ b/evo-tech-ui/src/components/Crontab/month.vue
@@ -0,0 +1,114 @@
+
+
+
+
+ 月,允许的通配符[, - * /]
+
+
+
+
+
+ 周期从
+ -
+ 月
+
+
+
+
+
+ 从
+ 月开始,每
+ 月月执行一次
+
+
+
+
+
+ 指定
+
+ {{item}}
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/components/Crontab/result.vue b/evo-tech-ui/src/components/Crontab/result.vue
new file mode 100644
index 0000000..aea6e0e
--- /dev/null
+++ b/evo-tech-ui/src/components/Crontab/result.vue
@@ -0,0 +1,559 @@
+
+
+
+
+
diff --git a/evo-tech-ui/src/components/Crontab/second.vue b/evo-tech-ui/src/components/Crontab/second.vue
new file mode 100644
index 0000000..e7b7761
--- /dev/null
+++ b/evo-tech-ui/src/components/Crontab/second.vue
@@ -0,0 +1,117 @@
+
+
+
+
+ 秒,允许的通配符[, - * /]
+
+
+
+
+
+ 周期从
+ -
+ 秒
+
+
+
+
+
+ 从
+ 秒开始,每
+ 秒执行一次
+
+
+
+
+
+ 指定
+
+ {{item-1}}
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/components/Crontab/week.vue b/evo-tech-ui/src/components/Crontab/week.vue
new file mode 100644
index 0000000..1cec700
--- /dev/null
+++ b/evo-tech-ui/src/components/Crontab/week.vue
@@ -0,0 +1,202 @@
+
+
+
+
+ 周,允许的通配符[, - * ? / L #]
+
+
+
+
+
+ 不指定
+
+
+
+
+
+ 周期从星期
+
+ {{item.value}}
+
+ -
+
+ {{item.value}}
+
+
+
+
+
+
+ 第
+ 周的星期
+
+ {{item.value}}
+
+
+
+
+
+
+ 本月最后一个星期
+
+ {{item.value}}
+
+
+
+
+
+
+ 指定
+
+ {{item.value}}
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/components/Crontab/year.vue b/evo-tech-ui/src/components/Crontab/year.vue
new file mode 100644
index 0000000..5487a6c
--- /dev/null
+++ b/evo-tech-ui/src/components/Crontab/year.vue
@@ -0,0 +1,131 @@
+
+
+
+
+ 不填,允许的通配符[, - * /]
+
+
+
+
+
+ 每年
+
+
+
+
+
+ 周期从
+ -
+
+
+
+
+
+
+ 从
+ 年开始,每
+ 年执行一次
+
+
+
+
+
+
+ 指定
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/components/DictData/index.js b/evo-tech-ui/src/components/DictData/index.js
new file mode 100644
index 0000000..7b85d4a
--- /dev/null
+++ b/evo-tech-ui/src/components/DictData/index.js
@@ -0,0 +1,49 @@
+import Vue from 'vue'
+import store from '@/store'
+import DataDict from '@/utils/dict'
+import { getDicts as getDicts } from '@/api/system/dict/data'
+
+function searchDictByKey(dict, key) {
+ if (key == null && key == "") {
+ return null
+ }
+ try {
+ for (let i = 0; i < dict.length; i++) {
+ if (dict[i].key == key) {
+ return dict[i].value
+ }
+ }
+ } catch (e) {
+ return null
+ }
+}
+
+function install() {
+ Vue.use(DataDict, {
+ metas: {
+ '*': {
+ labelField: 'dictLabel',
+ valueField: 'dictValue',
+ request(dictMeta) {
+ const storeDict = searchDictByKey(store.getters.dict, dictMeta.type)
+ if (storeDict) {
+ return new Promise(resolve => { resolve(storeDict) })
+ } else {
+ return new Promise((resolve, reject) => {
+ getDicts(dictMeta.type).then(res => {
+ store.dispatch('dict/setDict', { key: dictMeta.type, value: res.data })
+ resolve(res.data)
+ }).catch(error => {
+ reject(error)
+ })
+ })
+ }
+ },
+ },
+ },
+ })
+}
+
+export default {
+ install,
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/components/DictTag/index.vue b/evo-tech-ui/src/components/DictTag/index.vue
new file mode 100644
index 0000000..6b5b230
--- /dev/null
+++ b/evo-tech-ui/src/components/DictTag/index.vue
@@ -0,0 +1,89 @@
+
+
+
+
+ {{ item.label + ' ' }}
+
+ {{ item.label + ' ' }}
+
+
+
+
+ {{ unmatchArray | handleArray }}
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/components/Editor/index.vue b/evo-tech-ui/src/components/Editor/index.vue
new file mode 100644
index 0000000..8981d76
--- /dev/null
+++ b/evo-tech-ui/src/components/Editor/index.vue
@@ -0,0 +1,274 @@
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/components/FileUpload/index.vue b/evo-tech-ui/src/components/FileUpload/index.vue
new file mode 100644
index 0000000..c7f6b0a
--- /dev/null
+++ b/evo-tech-ui/src/components/FileUpload/index.vue
@@ -0,0 +1,216 @@
+
+
+
+
+ 选取文件
+
+
+ 请上传
+ 大小不超过 {{ fileSize }}MB
+ 格式为 {{ fileType.join("/") }}
+ 的文件
+
+
+
+
+
+
+
+ {{ getFileName(file.name) }}
+
+
+ 删除
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/components/Hamburger/index.vue b/evo-tech-ui/src/components/Hamburger/index.vue
new file mode 100644
index 0000000..368b002
--- /dev/null
+++ b/evo-tech-ui/src/components/Hamburger/index.vue
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/components/HeaderSearch/index.vue b/evo-tech-ui/src/components/HeaderSearch/index.vue
new file mode 100644
index 0000000..7d6780b
--- /dev/null
+++ b/evo-tech-ui/src/components/HeaderSearch/index.vue
@@ -0,0 +1,198 @@
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/components/IconSelect/index.vue b/evo-tech-ui/src/components/IconSelect/index.vue
new file mode 100644
index 0000000..8dadc02
--- /dev/null
+++ b/evo-tech-ui/src/components/IconSelect/index.vue
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/components/IconSelect/requireIcons.js b/evo-tech-ui/src/components/IconSelect/requireIcons.js
new file mode 100644
index 0000000..99e5c54
--- /dev/null
+++ b/evo-tech-ui/src/components/IconSelect/requireIcons.js
@@ -0,0 +1,11 @@
+
+const req = require.context('../../assets/icons/svg', false, /\.svg$/)
+const requireAll = requireContext => requireContext.keys()
+
+const re = /\.\/(.*)\.svg/
+
+const icons = requireAll(req).map(i => {
+ return i.match(re)[1]
+})
+
+export default icons
diff --git a/evo-tech-ui/src/components/ImagePreview/index.vue b/evo-tech-ui/src/components/ImagePreview/index.vue
new file mode 100644
index 0000000..3c770c7
--- /dev/null
+++ b/evo-tech-ui/src/components/ImagePreview/index.vue
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/components/ImageUpload/index.vue b/evo-tech-ui/src/components/ImageUpload/index.vue
new file mode 100644
index 0000000..2e64c9b
--- /dev/null
+++ b/evo-tech-ui/src/components/ImageUpload/index.vue
@@ -0,0 +1,226 @@
+
+
+
+
+
+
+
+
+ 请上传
+ 大小不超过 {{ fileSize }}MB
+ 格式为 {{ fileType.join("/") }}
+ 的文件
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/components/Pagination/index.vue b/evo-tech-ui/src/components/Pagination/index.vue
new file mode 100644
index 0000000..56f5a6b
--- /dev/null
+++ b/evo-tech-ui/src/components/Pagination/index.vue
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/components/PanThumb/index.vue b/evo-tech-ui/src/components/PanThumb/index.vue
new file mode 100644
index 0000000..1bcf417
--- /dev/null
+++ b/evo-tech-ui/src/components/PanThumb/index.vue
@@ -0,0 +1,142 @@
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/components/ParentView/index.vue b/evo-tech-ui/src/components/ParentView/index.vue
new file mode 100644
index 0000000..7bf6148
--- /dev/null
+++ b/evo-tech-ui/src/components/ParentView/index.vue
@@ -0,0 +1,3 @@
+
+
+
diff --git a/evo-tech-ui/src/components/RightPanel/index.vue b/evo-tech-ui/src/components/RightPanel/index.vue
new file mode 100644
index 0000000..5abeecb
--- /dev/null
+++ b/evo-tech-ui/src/components/RightPanel/index.vue
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/components/RightToolbar/index.vue b/evo-tech-ui/src/components/RightToolbar/index.vue
new file mode 100644
index 0000000..67da293
--- /dev/null
+++ b/evo-tech-ui/src/components/RightToolbar/index.vue
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/components/RuoYi/Doc/index.vue b/evo-tech-ui/src/components/RuoYi/Doc/index.vue
new file mode 100644
index 0000000..75fa864
--- /dev/null
+++ b/evo-tech-ui/src/components/RuoYi/Doc/index.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/components/RuoYi/Git/index.vue b/evo-tech-ui/src/components/RuoYi/Git/index.vue
new file mode 100644
index 0000000..bdafbae
--- /dev/null
+++ b/evo-tech-ui/src/components/RuoYi/Git/index.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/components/Screenfull/index.vue b/evo-tech-ui/src/components/Screenfull/index.vue
new file mode 100644
index 0000000..d4e539c
--- /dev/null
+++ b/evo-tech-ui/src/components/Screenfull/index.vue
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/components/SizeSelect/index.vue b/evo-tech-ui/src/components/SizeSelect/index.vue
new file mode 100644
index 0000000..069b5de
--- /dev/null
+++ b/evo-tech-ui/src/components/SizeSelect/index.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+ {{ item.label }}
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/components/SvgIcon/index.vue b/evo-tech-ui/src/components/SvgIcon/index.vue
new file mode 100644
index 0000000..e4bf5ad
--- /dev/null
+++ b/evo-tech-ui/src/components/SvgIcon/index.vue
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/components/ThemePicker/index.vue b/evo-tech-ui/src/components/ThemePicker/index.vue
new file mode 100644
index 0000000..1714e1f
--- /dev/null
+++ b/evo-tech-ui/src/components/ThemePicker/index.vue
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/components/TopNav/index.vue b/evo-tech-ui/src/components/TopNav/index.vue
new file mode 100644
index 0000000..86a91c4
--- /dev/null
+++ b/evo-tech-ui/src/components/TopNav/index.vue
@@ -0,0 +1,195 @@
+
+
+
+
+
+ {{ item.meta.title }}
+
+
+
+
+
+ 更多菜单
+
+
+
+ {{ item.meta.title }}
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/components/iFrame/index.vue b/evo-tech-ui/src/components/iFrame/index.vue
new file mode 100644
index 0000000..426857f
--- /dev/null
+++ b/evo-tech-ui/src/components/iFrame/index.vue
@@ -0,0 +1,36 @@
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/directive/dialog/drag.js b/evo-tech-ui/src/directive/dialog/drag.js
new file mode 100644
index 0000000..2e82346
--- /dev/null
+++ b/evo-tech-ui/src/directive/dialog/drag.js
@@ -0,0 +1,64 @@
+/**
+* v-dialogDrag 弹窗拖拽
+* Copyright (c) 2019 ruoyi
+*/
+
+export default {
+ bind(el, binding, vnode, oldVnode) {
+ const value = binding.value
+ if (value == false) return
+ // 获取拖拽内容头部
+ const dialogHeaderEl = el.querySelector('.el-dialog__header');
+ const dragDom = el.querySelector('.el-dialog');
+ dialogHeaderEl.style.cursor = 'move';
+ // 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null);
+ const sty = dragDom.currentStyle || window.getComputedStyle(dragDom, null);
+ dragDom.style.position = 'absolute';
+ dragDom.style.marginTop = 0;
+ let width = dragDom.style.width;
+ if (width.includes('%')) {
+ width = +document.body.clientWidth * (+width.replace(/\%/g, '') / 100);
+ } else {
+ width = +width.replace(/\px/g, '');
+ }
+ dragDom.style.left = `${(document.body.clientWidth - width) / 2}px`;
+ // 鼠标按下事件
+ dialogHeaderEl.onmousedown = (e) => {
+ // 鼠标按下,计算当前元素距离可视区的距离 (鼠标点击位置距离可视窗口的距离)
+ const disX = e.clientX - dialogHeaderEl.offsetLeft;
+ const disY = e.clientY - dialogHeaderEl.offsetTop;
+
+ // 获取到的值带px 正则匹配替换
+ let styL, styT;
+
+ // 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px
+ if (sty.left.includes('%')) {
+ styL = +document.body.clientWidth * (+sty.left.replace(/\%/g, '') / 100);
+ styT = +document.body.clientHeight * (+sty.top.replace(/\%/g, '') / 100);
+ } else {
+ styL = +sty.left.replace(/\px/g, '');
+ styT = +sty.top.replace(/\px/g, '');
+ };
+
+ // 鼠标拖拽事件
+ document.onmousemove = function (e) {
+ // 通过事件委托,计算移动的距离 (开始拖拽至结束拖拽的距离)
+ const l = e.clientX - disX;
+ const t = e.clientY - disY;
+
+ let finallyL = l + styL
+ let finallyT = t + styT
+
+ // 移动当前元素
+ dragDom.style.left = `${finallyL}px`;
+ dragDom.style.top = `${finallyT}px`;
+
+ };
+
+ document.onmouseup = function (e) {
+ document.onmousemove = null;
+ document.onmouseup = null;
+ };
+ }
+ }
+};
\ No newline at end of file
diff --git a/evo-tech-ui/src/directive/dialog/dragHeight.js b/evo-tech-ui/src/directive/dialog/dragHeight.js
new file mode 100644
index 0000000..97e5305
--- /dev/null
+++ b/evo-tech-ui/src/directive/dialog/dragHeight.js
@@ -0,0 +1,34 @@
+/**
+ * v-dialogDragWidth 可拖动弹窗高度(右下角)
+ * Copyright (c) 2019 ruoyi
+ */
+
+export default {
+ bind(el) {
+ const dragDom = el.querySelector('.el-dialog');
+ const lineEl = document.createElement('div');
+ lineEl.style = 'width: 6px; background: inherit; height: 10px; position: absolute; right: 0; bottom: 0; margin: auto; z-index: 1; cursor: nwse-resize;';
+ lineEl.addEventListener('mousedown',
+ function(e) {
+ // 鼠标按下,计算当前元素距离可视区的距离
+ const disX = e.clientX - el.offsetLeft;
+ const disY = e.clientY - el.offsetTop;
+ // 当前宽度 高度
+ const curWidth = dragDom.offsetWidth;
+ const curHeight = dragDom.offsetHeight;
+ document.onmousemove = function(e) {
+ e.preventDefault(); // 移动时禁用默认事件
+ // 通过事件委托,计算移动的距离
+ const xl = e.clientX - disX;
+ const yl = e.clientY - disY
+ dragDom.style.width = `${curWidth + xl}px`;
+ dragDom.style.height = `${curHeight + yl}px`;
+ };
+ document.onmouseup = function(e) {
+ document.onmousemove = null;
+ document.onmouseup = null;
+ };
+ }, false);
+ dragDom.appendChild(lineEl);
+ }
+}
diff --git a/evo-tech-ui/src/directive/dialog/dragWidth.js b/evo-tech-ui/src/directive/dialog/dragWidth.js
new file mode 100644
index 0000000..2df0867
--- /dev/null
+++ b/evo-tech-ui/src/directive/dialog/dragWidth.js
@@ -0,0 +1,30 @@
+/**
+ * v-dialogDragWidth 可拖动弹窗宽度(右侧边)
+ * Copyright (c) 2019 ruoyi
+ */
+
+export default {
+ bind(el) {
+ const dragDom = el.querySelector('.el-dialog');
+ const lineEl = document.createElement('div');
+ lineEl.style = 'width: 5px; background: inherit; height: 80%; position: absolute; right: 0; top: 0; bottom: 0; margin: auto; z-index: 1; cursor: w-resize;';
+ lineEl.addEventListener('mousedown',
+ function (e) {
+ // 鼠标按下,计算当前元素距离可视区的距离
+ const disX = e.clientX - el.offsetLeft;
+ // 当前宽度
+ const curWidth = dragDom.offsetWidth;
+ document.onmousemove = function (e) {
+ e.preventDefault(); // 移动时禁用默认事件
+ // 通过事件委托,计算移动的距离
+ const l = e.clientX - disX;
+ dragDom.style.width = `${curWidth + l}px`;
+ };
+ document.onmouseup = function (e) {
+ document.onmousemove = null;
+ document.onmouseup = null;
+ };
+ }, false);
+ dragDom.appendChild(lineEl);
+ }
+}
diff --git a/evo-tech-ui/src/directive/index.js b/evo-tech-ui/src/directive/index.js
new file mode 100644
index 0000000..b9b07da
--- /dev/null
+++ b/evo-tech-ui/src/directive/index.js
@@ -0,0 +1,23 @@
+import hasRole from './permission/hasRole'
+import hasPermi from './permission/hasPermi'
+import dialogDrag from './dialog/drag'
+import dialogDragWidth from './dialog/dragWidth'
+import dialogDragHeight from './dialog/dragHeight'
+import clipboard from './module/clipboard'
+
+const install = function(Vue) {
+ Vue.directive('hasRole', hasRole)
+ Vue.directive('hasPermi', hasPermi)
+ Vue.directive('clipboard', clipboard)
+ Vue.directive('dialogDrag', dialogDrag)
+ Vue.directive('dialogDragWidth', dialogDragWidth)
+ Vue.directive('dialogDragHeight', dialogDragHeight)
+}
+
+if (window.Vue) {
+ window['hasRole'] = hasRole
+ window['hasPermi'] = hasPermi
+ Vue.use(install); // eslint-disable-line
+}
+
+export default install
diff --git a/evo-tech-ui/src/directive/module/clipboard.js b/evo-tech-ui/src/directive/module/clipboard.js
new file mode 100644
index 0000000..635315a
--- /dev/null
+++ b/evo-tech-ui/src/directive/module/clipboard.js
@@ -0,0 +1,54 @@
+/**
+* v-clipboard 文字复制剪贴
+* Copyright (c) 2021 ruoyi
+*/
+
+import Clipboard from 'clipboard'
+export default {
+ bind(el, binding, vnode) {
+ switch (binding.arg) {
+ case 'success':
+ el._vClipBoard_success = binding.value;
+ break;
+ case 'error':
+ el._vClipBoard_error = binding.value;
+ break;
+ default: {
+ const clipboard = new Clipboard(el, {
+ text: () => binding.value,
+ action: () => binding.arg === 'cut' ? 'cut' : 'copy'
+ });
+ clipboard.on('success', e => {
+ const callback = el._vClipBoard_success;
+ callback && callback(e);
+ });
+ clipboard.on('error', e => {
+ const callback = el._vClipBoard_error;
+ callback && callback(e);
+ });
+ el._vClipBoard = clipboard;
+ }
+ }
+ },
+ update(el, binding) {
+ if (binding.arg === 'success') {
+ el._vClipBoard_success = binding.value;
+ } else if (binding.arg === 'error') {
+ el._vClipBoard_error = binding.value;
+ } else {
+ el._vClipBoard.text = function () { return binding.value; };
+ el._vClipBoard.action = () => binding.arg === 'cut' ? 'cut' : 'copy';
+ }
+ },
+ unbind(el, binding) {
+ if (!el._vClipboard) return
+ if (binding.arg === 'success') {
+ delete el._vClipBoard_success;
+ } else if (binding.arg === 'error') {
+ delete el._vClipBoard_error;
+ } else {
+ el._vClipBoard.destroy();
+ delete el._vClipBoard;
+ }
+ }
+}
diff --git a/evo-tech-ui/src/directive/permission/hasPermi.js b/evo-tech-ui/src/directive/permission/hasPermi.js
new file mode 100644
index 0000000..7101e3e
--- /dev/null
+++ b/evo-tech-ui/src/directive/permission/hasPermi.js
@@ -0,0 +1,28 @@
+ /**
+ * v-hasPermi 操作权限处理
+ * Copyright (c) 2019 ruoyi
+ */
+
+import store from '@/store'
+
+export default {
+ inserted(el, binding, vnode) {
+ const { value } = binding
+ const all_permission = "*:*:*";
+ const permissions = store.getters && store.getters.permissions
+
+ if (value && value instanceof Array && value.length > 0) {
+ const permissionFlag = value
+
+ const hasPermissions = permissions.some(permission => {
+ return all_permission === permission || permissionFlag.includes(permission)
+ })
+
+ if (!hasPermissions) {
+ el.parentNode && el.parentNode.removeChild(el)
+ }
+ } else {
+ throw new Error(`请设置操作权限标签值`)
+ }
+ }
+}
diff --git a/evo-tech-ui/src/directive/permission/hasRole.js b/evo-tech-ui/src/directive/permission/hasRole.js
new file mode 100644
index 0000000..ad9d4d7
--- /dev/null
+++ b/evo-tech-ui/src/directive/permission/hasRole.js
@@ -0,0 +1,28 @@
+ /**
+ * v-hasRole 角色权限处理
+ * Copyright (c) 2019 ruoyi
+ */
+
+import store from '@/store'
+
+export default {
+ inserted(el, binding, vnode) {
+ const { value } = binding
+ const super_admin = "admin";
+ const roles = store.getters && store.getters.roles
+
+ if (value && value instanceof Array && value.length > 0) {
+ const roleFlag = value
+
+ const hasRole = roles.some(role => {
+ return super_admin === role || roleFlag.includes(role)
+ })
+
+ if (!hasRole) {
+ el.parentNode && el.parentNode.removeChild(el)
+ }
+ } else {
+ throw new Error(`请设置角色权限标签值"`)
+ }
+ }
+}
diff --git a/evo-tech-ui/src/layout/components/AppMain.vue b/evo-tech-ui/src/layout/components/AppMain.vue
new file mode 100644
index 0000000..a25c562
--- /dev/null
+++ b/evo-tech-ui/src/layout/components/AppMain.vue
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/layout/components/IframeToggle/index.vue b/evo-tech-ui/src/layout/components/IframeToggle/index.vue
new file mode 100644
index 0000000..39ad15b
--- /dev/null
+++ b/evo-tech-ui/src/layout/components/IframeToggle/index.vue
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/layout/components/InnerLink/index.vue b/evo-tech-ui/src/layout/components/InnerLink/index.vue
new file mode 100644
index 0000000..badefc5
--- /dev/null
+++ b/evo-tech-ui/src/layout/components/InnerLink/index.vue
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/layout/components/Navbar.vue b/evo-tech-ui/src/layout/components/Navbar.vue
new file mode 100644
index 0000000..466cd98
--- /dev/null
+++ b/evo-tech-ui/src/layout/components/Navbar.vue
@@ -0,0 +1,200 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/layout/components/Settings/index.vue b/evo-tech-ui/src/layout/components/Settings/index.vue
new file mode 100644
index 0000000..bb3c9ce
--- /dev/null
+++ b/evo-tech-ui/src/layout/components/Settings/index.vue
@@ -0,0 +1,260 @@
+
+
+
+
+
+
+
主题风格设置
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 主题颜色
+
+
+
+
+
+
+
系统布局配置
+
+
+ 开启 TopNav
+
+
+
+
+ 开启 Tags-Views
+
+
+
+
+ 固定 Header
+
+
+
+
+ 显示 Logo
+
+
+
+
+ 动态标题
+
+
+
+
+
+
保存配置
+
重置配置
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/layout/components/Sidebar/FixiOSBug.js b/evo-tech-ui/src/layout/components/Sidebar/FixiOSBug.js
new file mode 100644
index 0000000..6823726
--- /dev/null
+++ b/evo-tech-ui/src/layout/components/Sidebar/FixiOSBug.js
@@ -0,0 +1,25 @@
+export default {
+ computed: {
+ device() {
+ return this.$store.state.app.device
+ }
+ },
+ mounted() {
+ // In order to fix the click on menu on the ios device will trigger the mouseleave bug
+ this.fixBugIniOS()
+ },
+ methods: {
+ fixBugIniOS() {
+ const $subMenu = this.$refs.subMenu
+ if ($subMenu) {
+ const handleMouseleave = $subMenu.handleMouseleave
+ $subMenu.handleMouseleave = (e) => {
+ if (this.device === 'mobile') {
+ return
+ }
+ handleMouseleave(e)
+ }
+ }
+ }
+ }
+}
diff --git a/evo-tech-ui/src/layout/components/Sidebar/Item.vue b/evo-tech-ui/src/layout/components/Sidebar/Item.vue
new file mode 100644
index 0000000..be3285d
--- /dev/null
+++ b/evo-tech-ui/src/layout/components/Sidebar/Item.vue
@@ -0,0 +1,33 @@
+
diff --git a/evo-tech-ui/src/layout/components/Sidebar/Link.vue b/evo-tech-ui/src/layout/components/Sidebar/Link.vue
new file mode 100644
index 0000000..8b0bc93
--- /dev/null
+++ b/evo-tech-ui/src/layout/components/Sidebar/Link.vue
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/layout/components/Sidebar/Logo.vue b/evo-tech-ui/src/layout/components/Sidebar/Logo.vue
new file mode 100644
index 0000000..2774cc8
--- /dev/null
+++ b/evo-tech-ui/src/layout/components/Sidebar/Logo.vue
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/layout/components/Sidebar/SidebarItem.vue b/evo-tech-ui/src/layout/components/Sidebar/SidebarItem.vue
new file mode 100644
index 0000000..82ba407
--- /dev/null
+++ b/evo-tech-ui/src/layout/components/Sidebar/SidebarItem.vue
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/layout/components/Sidebar/index.vue b/evo-tech-ui/src/layout/components/Sidebar/index.vue
new file mode 100644
index 0000000..51d0839
--- /dev/null
+++ b/evo-tech-ui/src/layout/components/Sidebar/index.vue
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/layout/components/TagsView/ScrollPane.vue b/evo-tech-ui/src/layout/components/TagsView/ScrollPane.vue
new file mode 100644
index 0000000..bb753a1
--- /dev/null
+++ b/evo-tech-ui/src/layout/components/TagsView/ScrollPane.vue
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/layout/components/TagsView/index.vue b/evo-tech-ui/src/layout/components/TagsView/index.vue
new file mode 100644
index 0000000..96585a5
--- /dev/null
+++ b/evo-tech-ui/src/layout/components/TagsView/index.vue
@@ -0,0 +1,332 @@
+
+
+
+
+ {{ tag.title }}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/layout/components/index.js b/evo-tech-ui/src/layout/components/index.js
new file mode 100644
index 0000000..104bd3a
--- /dev/null
+++ b/evo-tech-ui/src/layout/components/index.js
@@ -0,0 +1,5 @@
+export { default as AppMain } from './AppMain'
+export { default as Navbar } from './Navbar'
+export { default as Settings } from './Settings'
+export { default as Sidebar } from './Sidebar/index.vue'
+export { default as TagsView } from './TagsView/index.vue'
diff --git a/evo-tech-ui/src/layout/index.vue b/evo-tech-ui/src/layout/index.vue
new file mode 100644
index 0000000..dba4393
--- /dev/null
+++ b/evo-tech-ui/src/layout/index.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/layout/mixin/ResizeHandler.js b/evo-tech-ui/src/layout/mixin/ResizeHandler.js
new file mode 100644
index 0000000..e8d0df8
--- /dev/null
+++ b/evo-tech-ui/src/layout/mixin/ResizeHandler.js
@@ -0,0 +1,45 @@
+import store from '@/store'
+
+const { body } = document
+const WIDTH = 992 // refer to Bootstrap's responsive design
+
+export default {
+ watch: {
+ $route(route) {
+ if (this.device === 'mobile' && this.sidebar.opened) {
+ store.dispatch('app/closeSideBar', { withoutAnimation: false })
+ }
+ }
+ },
+ beforeMount() {
+ window.addEventListener('resize', this.$_resizeHandler)
+ },
+ beforeDestroy() {
+ window.removeEventListener('resize', this.$_resizeHandler)
+ },
+ mounted() {
+ const isMobile = this.$_isMobile()
+ if (isMobile) {
+ store.dispatch('app/toggleDevice', 'mobile')
+ store.dispatch('app/closeSideBar', { withoutAnimation: true })
+ }
+ },
+ methods: {
+ // use $_ for mixins properties
+ // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential
+ $_isMobile() {
+ const rect = body.getBoundingClientRect()
+ return rect.width - 1 < WIDTH
+ },
+ $_resizeHandler() {
+ if (!document.hidden) {
+ const isMobile = this.$_isMobile()
+ store.dispatch('app/toggleDevice', isMobile ? 'mobile' : 'desktop')
+
+ if (isMobile) {
+ store.dispatch('app/closeSideBar', { withoutAnimation: true })
+ }
+ }
+ }
+ }
+}
diff --git a/evo-tech-ui/src/main.js b/evo-tech-ui/src/main.js
new file mode 100644
index 0000000..13c6cf2
--- /dev/null
+++ b/evo-tech-ui/src/main.js
@@ -0,0 +1,86 @@
+import Vue from 'vue'
+
+import Cookies from 'js-cookie'
+
+import Element from 'element-ui'
+import './assets/styles/element-variables.scss'
+
+import '@/assets/styles/index.scss' // global css
+import '@/assets/styles/ruoyi.scss' // ruoyi css
+import App from './App'
+import store from './store'
+import router from './router'
+import directive from './directive' // directive
+import plugins from './plugins' // plugins
+import { download } from '@/utils/request'
+
+import './assets/icons' // icon
+import './permission' // permission control
+import { getDicts } from "@/api/system/dict/data";
+import { getConfigKey } from "@/api/system/config";
+import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree } from "@/utils/ruoyi";
+// 分页组件
+import Pagination from "@/components/Pagination";
+// 自定义表格工具组件
+import RightToolbar from "@/components/RightToolbar"
+// 富文本组件
+import Editor from "@/components/Editor"
+// 文件上传组件
+import FileUpload from "@/components/FileUpload"
+// 图片上传组件
+import ImageUpload from "@/components/ImageUpload"
+// 图片预览组件
+import ImagePreview from "@/components/ImagePreview"
+// 字典标签组件
+import DictTag from '@/components/DictTag'
+// 头部标签组件
+import VueMeta from 'vue-meta'
+// 字典数据组件
+import DictData from '@/components/DictData'
+
+// 全局方法挂载
+Vue.prototype.getDicts = getDicts
+Vue.prototype.getConfigKey = getConfigKey
+Vue.prototype.parseTime = parseTime
+Vue.prototype.resetForm = resetForm
+Vue.prototype.addDateRange = addDateRange
+Vue.prototype.selectDictLabel = selectDictLabel
+Vue.prototype.selectDictLabels = selectDictLabels
+Vue.prototype.download = download
+Vue.prototype.handleTree = handleTree
+
+// 全局组件挂载
+Vue.component('DictTag', DictTag)
+Vue.component('Pagination', Pagination)
+Vue.component('RightToolbar', RightToolbar)
+Vue.component('Editor', Editor)
+Vue.component('FileUpload', FileUpload)
+Vue.component('ImageUpload', ImageUpload)
+Vue.component('ImagePreview', ImagePreview)
+
+Vue.use(directive)
+Vue.use(plugins)
+Vue.use(VueMeta)
+DictData.install()
+
+/**
+ * If you don't want to use mock-server
+ * you want to use MockJs for mock api
+ * you can execute: mockXHR()
+ *
+ * Currently MockJs will be used in the production environment,
+ * please remove it before going online! ! !
+ */
+
+Vue.use(Element, {
+ size: Cookies.get('size') || 'medium' // set element-ui default size
+})
+
+Vue.config.productionTip = false
+
+new Vue({
+ el: '#app',
+ router,
+ store,
+ render: h => h(App)
+})
diff --git a/evo-tech-ui/src/permission.js b/evo-tech-ui/src/permission.js
new file mode 100644
index 0000000..c568979
--- /dev/null
+++ b/evo-tech-ui/src/permission.js
@@ -0,0 +1,58 @@
+import router from './router'
+import store from './store'
+import { Message } from 'element-ui'
+import NProgress from 'nprogress'
+import 'nprogress/nprogress.css'
+import { getToken } from '@/utils/auth'
+import { isRelogin } from '@/utils/request'
+
+NProgress.configure({ showSpinner: false })
+
+const whiteList = ['/login', '/register']
+
+router.beforeEach((to, from, next) => {
+ NProgress.start()
+ if (getToken()) {
+ to.meta.title && store.dispatch('settings/setTitle', to.meta.title)
+ /* has token*/
+ if (to.path === '/login') {
+ next({ path: '/' })
+ NProgress.done()
+ } else if (whiteList.indexOf(to.path) !== -1) {
+ next()
+ } else {
+ if (store.getters.roles.length === 0) {
+ isRelogin.show = true
+ // 判断当前用户是否已拉取完user_info信息
+ store.dispatch('GetInfo').then(() => {
+ isRelogin.show = false
+ store.dispatch('GenerateRoutes').then(accessRoutes => {
+ // 根据roles权限生成可访问的路由表
+ router.addRoutes(accessRoutes) // 动态添加可访问路由表
+ next({ ...to, replace: true }) // hack方法 确保addRoutes已完成
+ })
+ }).catch(err => {
+ store.dispatch('LogOut').then(() => {
+ Message.error(err)
+ next({ path: '/' })
+ })
+ })
+ } else {
+ next()
+ }
+ }
+ } else {
+ // 没有token
+ if (whiteList.indexOf(to.path) !== -1) {
+ // 在免登录白名单,直接进入
+ next()
+ } else {
+ next(`/login?redirect=${encodeURIComponent(to.fullPath)}`) // 否则全部重定向到登录页
+ NProgress.done()
+ }
+ }
+})
+
+router.afterEach(() => {
+ NProgress.done()
+})
diff --git a/evo-tech-ui/src/plugins/auth.js b/evo-tech-ui/src/plugins/auth.js
new file mode 100644
index 0000000..6c6bc24
--- /dev/null
+++ b/evo-tech-ui/src/plugins/auth.js
@@ -0,0 +1,60 @@
+import store from '@/store'
+
+function authPermission(permission) {
+ const all_permission = "*:*:*";
+ const permissions = store.getters && store.getters.permissions
+ if (permission && permission.length > 0) {
+ return permissions.some(v => {
+ return all_permission === v || v === permission
+ })
+ } else {
+ return false
+ }
+}
+
+function authRole(role) {
+ const super_admin = "admin";
+ const roles = store.getters && store.getters.roles
+ if (role && role.length > 0) {
+ return roles.some(v => {
+ return super_admin === v || v === role
+ })
+ } else {
+ return false
+ }
+}
+
+export default {
+ // 验证用户是否具备某权限
+ hasPermi(permission) {
+ return authPermission(permission);
+ },
+ // 验证用户是否含有指定权限,只需包含其中一个
+ hasPermiOr(permissions) {
+ return permissions.some(item => {
+ return authPermission(item)
+ })
+ },
+ // 验证用户是否含有指定权限,必须全部拥有
+ hasPermiAnd(permissions) {
+ return permissions.every(item => {
+ return authPermission(item)
+ })
+ },
+ // 验证用户是否具备某角色
+ hasRole(role) {
+ return authRole(role);
+ },
+ // 验证用户是否含有指定角色,只需包含其中一个
+ hasRoleOr(roles) {
+ return roles.some(item => {
+ return authRole(item)
+ })
+ },
+ // 验证用户是否含有指定角色,必须全部拥有
+ hasRoleAnd(roles) {
+ return roles.every(item => {
+ return authRole(item)
+ })
+ }
+}
diff --git a/evo-tech-ui/src/plugins/cache.js b/evo-tech-ui/src/plugins/cache.js
new file mode 100644
index 0000000..6b5c00b
--- /dev/null
+++ b/evo-tech-ui/src/plugins/cache.js
@@ -0,0 +1,77 @@
+const sessionCache = {
+ set (key, value) {
+ if (!sessionStorage) {
+ return
+ }
+ if (key != null && value != null) {
+ sessionStorage.setItem(key, value)
+ }
+ },
+ get (key) {
+ if (!sessionStorage) {
+ return null
+ }
+ if (key == null) {
+ return null
+ }
+ return sessionStorage.getItem(key)
+ },
+ setJSON (key, jsonValue) {
+ if (jsonValue != null) {
+ this.set(key, JSON.stringify(jsonValue))
+ }
+ },
+ getJSON (key) {
+ const value = this.get(key)
+ if (value != null) {
+ return JSON.parse(value)
+ }
+ },
+ remove (key) {
+ sessionStorage.removeItem(key);
+ }
+}
+const localCache = {
+ set (key, value) {
+ if (!localStorage) {
+ return
+ }
+ if (key != null && value != null) {
+ localStorage.setItem(key, value)
+ }
+ },
+ get (key) {
+ if (!localStorage) {
+ return null
+ }
+ if (key == null) {
+ return null
+ }
+ return localStorage.getItem(key)
+ },
+ setJSON (key, jsonValue) {
+ if (jsonValue != null) {
+ this.set(key, JSON.stringify(jsonValue))
+ }
+ },
+ getJSON (key) {
+ const value = this.get(key)
+ if (value != null) {
+ return JSON.parse(value)
+ }
+ },
+ remove (key) {
+ localStorage.removeItem(key);
+ }
+}
+
+export default {
+ /**
+ * 会话级缓存
+ */
+ session: sessionCache,
+ /**
+ * 本地缓存
+ */
+ local: localCache
+}
diff --git a/evo-tech-ui/src/plugins/download.js b/evo-tech-ui/src/plugins/download.js
new file mode 100644
index 0000000..42acd00
--- /dev/null
+++ b/evo-tech-ui/src/plugins/download.js
@@ -0,0 +1,79 @@
+import axios from 'axios'
+import {Loading, Message} from 'element-ui'
+import { saveAs } from 'file-saver'
+import { getToken } from '@/utils/auth'
+import errorCode from '@/utils/errorCode'
+import { blobValidate } from "@/utils/ruoyi";
+
+const baseURL = process.env.VUE_APP_BASE_API
+let downloadLoadingInstance;
+
+export default {
+ name(name, isDelete = true) {
+ var url = baseURL + "/common/download?fileName=" + encodeURIComponent(name) + "&delete=" + isDelete
+ axios({
+ method: 'get',
+ url: url,
+ responseType: 'blob',
+ headers: { 'Authorization': 'Bearer ' + getToken() }
+ }).then((res) => {
+ const isBlob = blobValidate(res.data);
+ if (isBlob) {
+ const blob = new Blob([res.data])
+ this.saveAs(blob, decodeURIComponent(res.headers['download-filename']))
+ } else {
+ this.printErrMsg(res.data);
+ }
+ })
+ },
+ resource(resource) {
+ var url = baseURL + "/common/download/resource?resource=" + encodeURIComponent(resource);
+ axios({
+ method: 'get',
+ url: url,
+ responseType: 'blob',
+ headers: { 'Authorization': 'Bearer ' + getToken() }
+ }).then((res) => {
+ const isBlob = blobValidate(res.data);
+ if (isBlob) {
+ const blob = new Blob([res.data])
+ this.saveAs(blob, decodeURIComponent(res.headers['download-filename']))
+ } else {
+ this.printErrMsg(res.data);
+ }
+ })
+ },
+ zip(url, name) {
+ var url = baseURL + url
+ downloadLoadingInstance = Loading.service({ text: "正在下载数据,请稍候", spinner: "el-icon-loading", background: "rgba(0, 0, 0, 0.7)", })
+ axios({
+ method: 'get',
+ url: url,
+ responseType: 'blob',
+ headers: { 'Authorization': 'Bearer ' + getToken() }
+ }).then((res) => {
+ const isBlob = blobValidate(res.data);
+ if (isBlob) {
+ const blob = new Blob([res.data], { type: 'application/zip' })
+ this.saveAs(blob, name)
+ } else {
+ this.printErrMsg(res.data);
+ }
+ downloadLoadingInstance.close();
+ }).catch((r) => {
+ console.error(r)
+ Message.error('下载文件出现错误,请联系管理员!')
+ downloadLoadingInstance.close();
+ })
+ },
+ saveAs(text, name, opts) {
+ saveAs(text, name, opts);
+ },
+ async printErrMsg(data) {
+ const resText = await data.text();
+ const rspObj = JSON.parse(resText);
+ const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default']
+ Message.error(errMsg);
+ }
+}
+
diff --git a/evo-tech-ui/src/plugins/index.js b/evo-tech-ui/src/plugins/index.js
new file mode 100644
index 0000000..d000f2d
--- /dev/null
+++ b/evo-tech-ui/src/plugins/index.js
@@ -0,0 +1,20 @@
+import tab from './tab'
+import auth from './auth'
+import cache from './cache'
+import modal from './modal'
+import download from './download'
+
+export default {
+ install(Vue) {
+ // 页签操作
+ Vue.prototype.$tab = tab
+ // 认证对象
+ Vue.prototype.$auth = auth
+ // 缓存对象
+ Vue.prototype.$cache = cache
+ // 模态框对象
+ Vue.prototype.$modal = modal
+ // 下载文件
+ Vue.prototype.$download = download
+ }
+}
diff --git a/evo-tech-ui/src/plugins/modal.js b/evo-tech-ui/src/plugins/modal.js
new file mode 100644
index 0000000..b37ca14
--- /dev/null
+++ b/evo-tech-ui/src/plugins/modal.js
@@ -0,0 +1,83 @@
+import { Message, MessageBox, Notification, Loading } from 'element-ui'
+
+let loadingInstance;
+
+export default {
+ // 消息提示
+ msg(content) {
+ Message.info(content)
+ },
+ // 错误消息
+ msgError(content) {
+ Message.error(content)
+ },
+ // 成功消息
+ msgSuccess(content) {
+ Message.success(content)
+ },
+ // 警告消息
+ msgWarning(content) {
+ Message.warning(content)
+ },
+ // 弹出提示
+ alert(content) {
+ MessageBox.alert(content, "系统提示")
+ },
+ // 错误提示
+ alertError(content) {
+ MessageBox.alert(content, "系统提示", { type: 'error' })
+ },
+ // 成功提示
+ alertSuccess(content) {
+ MessageBox.alert(content, "系统提示", { type: 'success' })
+ },
+ // 警告提示
+ alertWarning(content) {
+ MessageBox.alert(content, "系统提示", { type: 'warning' })
+ },
+ // 通知提示
+ notify(content) {
+ Notification.info(content)
+ },
+ // 错误通知
+ notifyError(content) {
+ Notification.error(content);
+ },
+ // 成功通知
+ notifySuccess(content) {
+ Notification.success(content)
+ },
+ // 警告通知
+ notifyWarning(content) {
+ Notification.warning(content)
+ },
+ // 确认窗体
+ confirm(content) {
+ return MessageBox.confirm(content, "系统提示", {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: "warning",
+ })
+ },
+ // 提交内容
+ prompt(content) {
+ return MessageBox.prompt(content, "系统提示", {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: "warning",
+ })
+ },
+ // 打开遮罩层
+ loading(content) {
+ loadingInstance = Loading.service({
+ lock: true,
+ text: content,
+ spinner: "el-icon-loading",
+ background: "rgba(0, 0, 0, 0.7)",
+ })
+ },
+ // 关闭遮罩层
+ closeLoading() {
+ loadingInstance.close();
+ }
+}
diff --git a/evo-tech-ui/src/plugins/tab.js b/evo-tech-ui/src/plugins/tab.js
new file mode 100644
index 0000000..fcde419
--- /dev/null
+++ b/evo-tech-ui/src/plugins/tab.js
@@ -0,0 +1,71 @@
+import store from '@/store'
+import router from '@/router';
+
+export default {
+ // 刷新当前tab页签
+ refreshPage(obj) {
+ const { path, query, matched } = router.currentRoute;
+ if (obj === undefined) {
+ matched.forEach((m) => {
+ if (m.components && m.components.default && m.components.default.name) {
+ if (!['Layout', 'ParentView'].includes(m.components.default.name)) {
+ obj = { name: m.components.default.name, path: path, query: query };
+ }
+ }
+ });
+ }
+ return store.dispatch('tagsView/delCachedView', obj).then(() => {
+ const { path, query } = obj
+ router.replace({
+ path: '/redirect' + path,
+ query: query
+ })
+ })
+ },
+ // 关闭当前tab页签,打开新页签
+ closeOpenPage(obj) {
+ store.dispatch("tagsView/delView", router.currentRoute);
+ if (obj !== undefined) {
+ return router.push(obj);
+ }
+ },
+ // 关闭指定tab页签
+ closePage(obj) {
+ if (obj === undefined) {
+ return store.dispatch('tagsView/delView', router.currentRoute).then(({ visitedViews }) => {
+ const latestView = visitedViews.slice(-1)[0]
+ if (latestView) {
+ return router.push(latestView.fullPath)
+ }
+ return router.push('/');
+ });
+ }
+ return store.dispatch('tagsView/delView', obj);
+ },
+ // 关闭所有tab页签
+ closeAllPage() {
+ return store.dispatch('tagsView/delAllViews');
+ },
+ // 关闭左侧tab页签
+ closeLeftPage(obj) {
+ return store.dispatch('tagsView/delLeftTags', obj || router.currentRoute);
+ },
+ // 关闭右侧tab页签
+ closeRightPage(obj) {
+ return store.dispatch('tagsView/delRightTags', obj || router.currentRoute);
+ },
+ // 关闭其他tab页签
+ closeOtherPage(obj) {
+ return store.dispatch('tagsView/delOthersViews', obj || router.currentRoute);
+ },
+ // 添加tab页签
+ openPage(title, url, params) {
+ const obj = { path: url, meta: { title: title } }
+ store.dispatch('tagsView/addView', obj);
+ return router.push({ path: url, query: params });
+ },
+ // 修改tab页签
+ updatePage(obj) {
+ return store.dispatch('tagsView/updateVisitedView', obj);
+ }
+}
diff --git a/evo-tech-ui/src/router/index.js b/evo-tech-ui/src/router/index.js
new file mode 100644
index 0000000..71907b6
--- /dev/null
+++ b/evo-tech-ui/src/router/index.js
@@ -0,0 +1,183 @@
+import Vue from 'vue'
+import Router from 'vue-router'
+
+Vue.use(Router)
+
+/* Layout */
+import Layout from '@/layout'
+
+/**
+ * Note: 路由配置项
+ *
+ * hidden: true // 当设置 true 的时候该路由不会再侧边栏出现 如401,login等页面,或者如一些编辑页面/edit/1
+ * alwaysShow: true // 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面
+ * // 只有一个时,会将那个子路由当做根路由显示在侧边栏--如引导页面
+ * // 若你想不管路由下面的 children 声明的个数都显示你的根路由
+ * // 你可以设置 alwaysShow: true,这样它就会忽略之前定义的规则,一直显示根路由
+ * redirect: noRedirect // 当设置 noRedirect 的时候该路由在面包屑导航中不可被点击
+ * name:'router-name' // 设定路由的名字,一定要填写不然使用时会出现各种问题
+ * query: '{"id": 1, "name": "ry"}' // 访问路由的默认传递参数
+ * roles: ['admin', 'common'] // 访问路由的角色权限
+ * permissions: ['a:a:a', 'b:b:b'] // 访问路由的菜单权限
+ * meta : {
+ noCache: true // 如果设置为true,则不会被 缓存(默认 false)
+ title: 'title' // 设置该路由在侧边栏和面包屑中展示的名字
+ icon: 'svg-name' // 设置该路由的图标,对应路径src/assets/icons/svg
+ breadcrumb: false // 如果设置为false,则不会在breadcrumb面包屑中显示
+ activeMenu: '/system/user' // 当路由设置了该属性,则会高亮相对应的侧边栏。
+ }
+ */
+
+// 公共路由
+export const constantRoutes = [
+ {
+ path: '/redirect',
+ component: Layout,
+ hidden: true,
+ children: [
+ {
+ path: '/redirect/:path(.*)',
+ component: () => import('@/views/redirect')
+ }
+ ]
+ },
+ {
+ path: '/login',
+ component: () => import('@/views/login'),
+ hidden: true
+ },
+ {
+ path: '/register',
+ component: () => import('@/views/register'),
+ hidden: true
+ },
+ {
+ path: '/404',
+ component: () => import('@/views/error/404'),
+ hidden: true
+ },
+ {
+ path: '/401',
+ component: () => import('@/views/error/401'),
+ hidden: true
+ },
+ {
+ path: '',
+ component: Layout,
+ redirect: 'index',
+ children: [
+ {
+ path: 'index',
+ component: () => import('@/views/index'),
+ name: 'Index',
+ meta: { title: '首页', icon: 'dashboard', affix: true }
+ }
+ ]
+ },
+ {
+ path: '/user',
+ component: Layout,
+ hidden: true,
+ redirect: 'noredirect',
+ children: [
+ {
+ path: 'profile',
+ component: () => import('@/views/system/user/profile/index'),
+ name: 'Profile',
+ meta: { title: '个人中心', icon: 'user' }
+ }
+ ]
+ }
+]
+
+// 动态路由,基于用户权限动态去加载
+export const dynamicRoutes = [
+ {
+ path: '/system/user-auth',
+ component: Layout,
+ hidden: true,
+ permissions: ['system:user:edit'],
+ children: [
+ {
+ path: 'role/:userId(\\d+)',
+ component: () => import('@/views/system/user/authRole'),
+ name: 'AuthRole',
+ meta: { title: '分配角色', activeMenu: '/system/user' }
+ }
+ ]
+ },
+ {
+ path: '/system/role-auth',
+ component: Layout,
+ hidden: true,
+ permissions: ['system:role:edit'],
+ children: [
+ {
+ path: 'user/:roleId(\\d+)',
+ component: () => import('@/views/system/role/authUser'),
+ name: 'AuthUser',
+ meta: { title: '分配用户', activeMenu: '/system/role' }
+ }
+ ]
+ },
+ {
+ path: '/system/dict-data',
+ component: Layout,
+ hidden: true,
+ permissions: ['system:dict:list'],
+ children: [
+ {
+ path: 'index/:dictId(\\d+)',
+ component: () => import('@/views/system/dict/data'),
+ name: 'Data',
+ meta: { title: '字典数据', activeMenu: '/system/dict' }
+ }
+ ]
+ },
+ {
+ path: '/monitor/job-log',
+ component: Layout,
+ hidden: true,
+ permissions: ['monitor:job:list'],
+ children: [
+ {
+ path: 'index/:jobId(\\d+)',
+ component: () => import('@/views/monitor/job/log'),
+ name: 'JobLog',
+ meta: { title: '调度日志', activeMenu: '/monitor/job' }
+ }
+ ]
+ },
+ {
+ path: '/tool/gen-edit',
+ component: Layout,
+ hidden: true,
+ permissions: ['tool:gen:edit'],
+ children: [
+ {
+ path: 'index/:tableId(\\d+)',
+ component: () => import('@/views/tool/gen/editTable'),
+ name: 'GenEdit',
+ meta: { title: '修改生成配置', activeMenu: '/tool/gen' }
+ }
+ ]
+ }
+]
+
+// 防止连续点击多次路由报错
+let routerPush = Router.prototype.push;
+let routerReplace = Router.prototype.replace;
+// push
+Router.prototype.push = function push(location) {
+ return routerPush.call(this, location).catch(err => err)
+}
+// replace
+Router.prototype.replace = function push(location) {
+ return routerReplace.call(this, location).catch(err => err)
+}
+
+export default new Router({
+ mode: 'history', // 去掉url中的#
+ scrollBehavior: () => ({ y: 0 }),
+ routes: constantRoutes
+})
diff --git a/evo-tech-ui/src/settings.js b/evo-tech-ui/src/settings.js
new file mode 100644
index 0000000..6a0b09f
--- /dev/null
+++ b/evo-tech-ui/src/settings.js
@@ -0,0 +1,44 @@
+module.exports = {
+ /**
+ * 侧边栏主题 深色主题theme-dark,浅色主题theme-light
+ */
+ sideTheme: 'theme-dark',
+
+ /**
+ * 是否系统布局配置
+ */
+ showSettings: false,
+
+ /**
+ * 是否显示顶部导航
+ */
+ topNav: false,
+
+ /**
+ * 是否显示 tagsView
+ */
+ tagsView: true,
+
+ /**
+ * 是否固定头部
+ */
+ fixedHeader: false,
+
+ /**
+ * 是否显示logo
+ */
+ sidebarLogo: true,
+
+ /**
+ * 是否显示动态标题
+ */
+ dynamicTitle: false,
+
+ /**
+ * @type {string | array} 'production' | ['production', 'development']
+ * @description Need show err logs component.
+ * The default is only used in the production env
+ * If you want to also use it in dev, you can pass ['production', 'development']
+ */
+ errorLog: 'production'
+}
diff --git a/evo-tech-ui/src/store/getters.js b/evo-tech-ui/src/store/getters.js
new file mode 100644
index 0000000..8adb1b6
--- /dev/null
+++ b/evo-tech-ui/src/store/getters.js
@@ -0,0 +1,19 @@
+const getters = {
+ sidebar: state => state.app.sidebar,
+ size: state => state.app.size,
+ device: state => state.app.device,
+ dict: state => state.dict.dict,
+ visitedViews: state => state.tagsView.visitedViews,
+ cachedViews: state => state.tagsView.cachedViews,
+ token: state => state.user.token,
+ avatar: state => state.user.avatar,
+ name: state => state.user.name,
+ introduction: state => state.user.introduction,
+ roles: state => state.user.roles,
+ permissions: state => state.user.permissions,
+ permission_routes: state => state.permission.routes,
+ topbarRouters:state => state.permission.topbarRouters,
+ defaultRoutes:state => state.permission.defaultRoutes,
+ sidebarRouters:state => state.permission.sidebarRouters,
+}
+export default getters
diff --git a/evo-tech-ui/src/store/index.js b/evo-tech-ui/src/store/index.js
new file mode 100644
index 0000000..97aaef8
--- /dev/null
+++ b/evo-tech-ui/src/store/index.js
@@ -0,0 +1,25 @@
+import Vue from 'vue'
+import Vuex from 'vuex'
+import app from './modules/app'
+import dict from './modules/dict'
+import user from './modules/user'
+import tagsView from './modules/tagsView'
+import permission from './modules/permission'
+import settings from './modules/settings'
+import getters from './getters'
+
+Vue.use(Vuex)
+
+const store = new Vuex.Store({
+ modules: {
+ app,
+ dict,
+ user,
+ tagsView,
+ permission,
+ settings
+ },
+ getters
+})
+
+export default store
diff --git a/evo-tech-ui/src/store/modules/app.js b/evo-tech-ui/src/store/modules/app.js
new file mode 100644
index 0000000..3e22d1c
--- /dev/null
+++ b/evo-tech-ui/src/store/modules/app.js
@@ -0,0 +1,66 @@
+import Cookies from 'js-cookie'
+
+const state = {
+ sidebar: {
+ opened: Cookies.get('sidebarStatus') ? !!+Cookies.get('sidebarStatus') : true,
+ withoutAnimation: false,
+ hide: false
+ },
+ device: 'desktop',
+ size: Cookies.get('size') || 'medium'
+}
+
+const mutations = {
+ TOGGLE_SIDEBAR: state => {
+ if (state.sidebar.hide) {
+ return false;
+ }
+ state.sidebar.opened = !state.sidebar.opened
+ state.sidebar.withoutAnimation = false
+ if (state.sidebar.opened) {
+ Cookies.set('sidebarStatus', 1)
+ } else {
+ Cookies.set('sidebarStatus', 0)
+ }
+ },
+ CLOSE_SIDEBAR: (state, withoutAnimation) => {
+ Cookies.set('sidebarStatus', 0)
+ state.sidebar.opened = false
+ state.sidebar.withoutAnimation = withoutAnimation
+ },
+ TOGGLE_DEVICE: (state, device) => {
+ state.device = device
+ },
+ SET_SIZE: (state, size) => {
+ state.size = size
+ Cookies.set('size', size)
+ },
+ SET_SIDEBAR_HIDE: (state, status) => {
+ state.sidebar.hide = status
+ }
+}
+
+const actions = {
+ toggleSideBar({ commit }) {
+ commit('TOGGLE_SIDEBAR')
+ },
+ closeSideBar({ commit }, { withoutAnimation }) {
+ commit('CLOSE_SIDEBAR', withoutAnimation)
+ },
+ toggleDevice({ commit }, device) {
+ commit('TOGGLE_DEVICE', device)
+ },
+ setSize({ commit }, size) {
+ commit('SET_SIZE', size)
+ },
+ toggleSideBarHide({ commit }, status) {
+ commit('SET_SIDEBAR_HIDE', status)
+ }
+}
+
+export default {
+ namespaced: true,
+ state,
+ mutations,
+ actions
+}
diff --git a/evo-tech-ui/src/store/modules/dict.js b/evo-tech-ui/src/store/modules/dict.js
new file mode 100644
index 0000000..7a1b2f0
--- /dev/null
+++ b/evo-tech-ui/src/store/modules/dict.js
@@ -0,0 +1,50 @@
+const state = {
+ dict: new Array()
+}
+const mutations = {
+ SET_DICT: (state, { key, value }) => {
+ if (key !== null && key !== "") {
+ state.dict.push({
+ key: key,
+ value: value
+ })
+ }
+ },
+ REMOVE_DICT: (state, key) => {
+ try {
+ for (let i = 0; i < state.dict.length; i++) {
+ if (state.dict[i].key == key) {
+ state.dict.splice(i, 1)
+ return true
+ }
+ }
+ } catch (e) {
+ }
+ },
+ CLEAN_DICT: (state) => {
+ state.dict = new Array()
+ }
+}
+
+const actions = {
+ // 设置字典
+ setDict({ commit }, data) {
+ commit('SET_DICT', data)
+ },
+ // 删除字典
+ removeDict({ commit }, key) {
+ commit('REMOVE_DICT', key)
+ },
+ // 清空字典
+ cleanDict({ commit }) {
+ commit('CLEAN_DICT')
+ }
+}
+
+export default {
+ namespaced: true,
+ state,
+ mutations,
+ actions
+}
+
diff --git a/evo-tech-ui/src/store/modules/permission.js b/evo-tech-ui/src/store/modules/permission.js
new file mode 100644
index 0000000..b3c216a
--- /dev/null
+++ b/evo-tech-ui/src/store/modules/permission.js
@@ -0,0 +1,137 @@
+import auth from '@/plugins/auth'
+import router, { constantRoutes, dynamicRoutes } from '@/router'
+import { getRouters } from '@/api/menu'
+import Layout from '@/layout/index'
+import ParentView from '@/components/ParentView'
+import InnerLink from '@/layout/components/InnerLink'
+
+const permission = {
+ state: {
+ routes: [],
+ addRoutes: [],
+ defaultRoutes: [],
+ topbarRouters: [],
+ sidebarRouters: []
+ },
+ mutations: {
+ SET_ROUTES: (state, routes) => {
+ state.addRoutes = routes
+ state.routes = constantRoutes.concat(routes)
+ },
+ SET_DEFAULT_ROUTES: (state, routes) => {
+ state.defaultRoutes = constantRoutes.concat(routes)
+ },
+ SET_TOPBAR_ROUTES: (state, routes) => {
+ state.topbarRouters = routes
+ },
+ SET_SIDEBAR_ROUTERS: (state, routes) => {
+ state.sidebarRouters = routes
+ },
+ },
+ actions: {
+ // 生成路由
+ GenerateRoutes({ commit }) {
+ return new Promise(resolve => {
+ // 向后端请求路由数据
+ getRouters().then(res => {
+ const sdata = JSON.parse(JSON.stringify(res.data))
+ const rdata = JSON.parse(JSON.stringify(res.data))
+ const sidebarRoutes = filterAsyncRouter(sdata)
+ const rewriteRoutes = filterAsyncRouter(rdata, false, true)
+ const asyncRoutes = filterDynamicRoutes(dynamicRoutes);
+ rewriteRoutes.push({ path: '*', redirect: '/404', hidden: true })
+ router.addRoutes(asyncRoutes);
+ commit('SET_ROUTES', rewriteRoutes)
+ commit('SET_SIDEBAR_ROUTERS', constantRoutes.concat(sidebarRoutes))
+ commit('SET_DEFAULT_ROUTES', sidebarRoutes)
+ commit('SET_TOPBAR_ROUTES', sidebarRoutes)
+ resolve(rewriteRoutes)
+ })
+ })
+ }
+ }
+}
+
+// 遍历后台传来的路由字符串,转换为组件对象
+function filterAsyncRouter(asyncRouterMap, lastRouter = false, type = false) {
+ return asyncRouterMap.filter(route => {
+ if (type && route.children) {
+ route.children = filterChildren(route.children)
+ }
+ if (route.component) {
+ // Layout ParentView 组件特殊处理
+ if (route.component === 'Layout') {
+ route.component = Layout
+ } else if (route.component === 'ParentView') {
+ route.component = ParentView
+ } else if (route.component === 'InnerLink') {
+ route.component = InnerLink
+ } else {
+ route.component = loadView(route.component)
+ }
+ }
+ if (route.children != null && route.children && route.children.length) {
+ route.children = filterAsyncRouter(route.children, route, type)
+ } else {
+ delete route['children']
+ delete route['redirect']
+ }
+ return true
+ })
+}
+
+function filterChildren(childrenMap, lastRouter = false) {
+ var children = []
+ childrenMap.forEach((el, index) => {
+ if (el.children && el.children.length) {
+ if (el.component === 'ParentView' && !lastRouter) {
+ el.children.forEach(c => {
+ c.path = el.path + '/' + c.path
+ if (c.children && c.children.length) {
+ children = children.concat(filterChildren(c.children, c))
+ return
+ }
+ children.push(c)
+ })
+ return
+ }
+ }
+ if (lastRouter) {
+ el.path = lastRouter.path + '/' + el.path
+ if (el.children && el.children.length) {
+ children = children.concat(filterChildren(el.children, el))
+ return
+ }
+ }
+ children = children.concat(el)
+ })
+ return children
+}
+
+// 动态路由遍历,验证是否具备权限
+export function filterDynamicRoutes(routes) {
+ const res = []
+ routes.forEach(route => {
+ if (route.permissions) {
+ if (auth.hasPermiOr(route.permissions)) {
+ res.push(route)
+ }
+ } else if (route.roles) {
+ if (auth.hasRoleOr(route.roles)) {
+ res.push(route)
+ }
+ }
+ })
+ return res
+}
+
+export const loadView = (view) => {
+ if (process.env.NODE_ENV === 'development') {
+ return (resolve) => require([`@/views/${view}`], resolve)
+ } else {
+ // 使用 import 实现生产环境的路由懒加载
+ return () => import(`@/views/${view}`)
+ }
+}
+
+export default permission
diff --git a/evo-tech-ui/src/store/modules/settings.js b/evo-tech-ui/src/store/modules/settings.js
new file mode 100644
index 0000000..2455a1e
--- /dev/null
+++ b/evo-tech-ui/src/store/modules/settings.js
@@ -0,0 +1,42 @@
+import defaultSettings from '@/settings'
+
+const { sideTheme, showSettings, topNav, tagsView, fixedHeader, sidebarLogo, dynamicTitle } = defaultSettings
+
+const storageSetting = JSON.parse(localStorage.getItem('layout-setting')) || ''
+const state = {
+ title: '',
+ theme: storageSetting.theme || '#409EFF',
+ sideTheme: storageSetting.sideTheme || sideTheme,
+ showSettings: showSettings,
+ topNav: storageSetting.topNav === undefined ? topNav : storageSetting.topNav,
+ tagsView: storageSetting.tagsView === undefined ? tagsView : storageSetting.tagsView,
+ fixedHeader: storageSetting.fixedHeader === undefined ? fixedHeader : storageSetting.fixedHeader,
+ sidebarLogo: storageSetting.sidebarLogo === undefined ? sidebarLogo : storageSetting.sidebarLogo,
+ dynamicTitle: storageSetting.dynamicTitle === undefined ? dynamicTitle : storageSetting.dynamicTitle
+}
+const mutations = {
+ CHANGE_SETTING: (state, { key, value }) => {
+ if (state.hasOwnProperty(key)) {
+ state[key] = value
+ }
+ }
+}
+
+const actions = {
+ // 修改布局设置
+ changeSetting({ commit }, data) {
+ commit('CHANGE_SETTING', data)
+ },
+ // 设置网页标题
+ setTitle({ commit }, title) {
+ state.title = title
+ }
+}
+
+export default {
+ namespaced: true,
+ state,
+ mutations,
+ actions
+}
+
diff --git a/evo-tech-ui/src/store/modules/tagsView.js b/evo-tech-ui/src/store/modules/tagsView.js
new file mode 100644
index 0000000..5fc011c
--- /dev/null
+++ b/evo-tech-ui/src/store/modules/tagsView.js
@@ -0,0 +1,228 @@
+const state = {
+ visitedViews: [],
+ cachedViews: [],
+ iframeViews: []
+}
+
+const mutations = {
+ ADD_IFRAME_VIEW: (state, view) => {
+ if (state.iframeViews.some(v => v.path === view.path)) return
+ state.iframeViews.push(
+ Object.assign({}, view, {
+ title: view.meta.title || 'no-name'
+ })
+ )
+ },
+ ADD_VISITED_VIEW: (state, view) => {
+ if (state.visitedViews.some(v => v.path === view.path)) return
+ state.visitedViews.push(
+ Object.assign({}, view, {
+ title: view.meta.title || 'no-name'
+ })
+ )
+ },
+ ADD_CACHED_VIEW: (state, view) => {
+ if (state.cachedViews.includes(view.name)) return
+ if (view.meta && !view.meta.noCache) {
+ state.cachedViews.push(view.name)
+ }
+ },
+ DEL_VISITED_VIEW: (state, view) => {
+ for (const [i, v] of state.visitedViews.entries()) {
+ if (v.path === view.path) {
+ state.visitedViews.splice(i, 1)
+ break
+ }
+ }
+ state.iframeViews = state.iframeViews.filter(item => item.path !== view.path)
+ },
+ DEL_IFRAME_VIEW: (state, view) => {
+ state.iframeViews = state.iframeViews.filter(item => item.path !== view.path)
+ },
+ DEL_CACHED_VIEW: (state, view) => {
+ const index = state.cachedViews.indexOf(view.name)
+ index > -1 && state.cachedViews.splice(index, 1)
+ },
+
+ DEL_OTHERS_VISITED_VIEWS: (state, view) => {
+ state.visitedViews = state.visitedViews.filter(v => {
+ return v.meta.affix || v.path === view.path
+ })
+ state.iframeViews = state.iframeViews.filter(item => item.path === view.path)
+ },
+ DEL_OTHERS_CACHED_VIEWS: (state, view) => {
+ const index = state.cachedViews.indexOf(view.name)
+ if (index > -1) {
+ state.cachedViews = state.cachedViews.slice(index, index + 1)
+ } else {
+ state.cachedViews = []
+ }
+ },
+ DEL_ALL_VISITED_VIEWS: state => {
+ // keep affix tags
+ const affixTags = state.visitedViews.filter(tag => tag.meta.affix)
+ state.visitedViews = affixTags
+ state.iframeViews = []
+ },
+ DEL_ALL_CACHED_VIEWS: state => {
+ state.cachedViews = []
+ },
+ UPDATE_VISITED_VIEW: (state, view) => {
+ for (let v of state.visitedViews) {
+ if (v.path === view.path) {
+ v = Object.assign(v, view)
+ break
+ }
+ }
+ },
+ DEL_RIGHT_VIEWS: (state, view) => {
+ const index = state.visitedViews.findIndex(v => v.path === view.path)
+ if (index === -1) {
+ return
+ }
+ state.visitedViews = state.visitedViews.filter((item, idx) => {
+ if (idx <= index || (item.meta && item.meta.affix)) {
+ return true
+ }
+ const i = state.cachedViews.indexOf(item.name)
+ if (i > -1) {
+ state.cachedViews.splice(i, 1)
+ }
+ if(item.meta.link) {
+ const fi = state.iframeViews.findIndex(v => v.path === item.path)
+ state.iframeViews.splice(fi, 1)
+ }
+ return false
+ })
+ },
+ DEL_LEFT_VIEWS: (state, view) => {
+ const index = state.visitedViews.findIndex(v => v.path === view.path)
+ if (index === -1) {
+ return
+ }
+ state.visitedViews = state.visitedViews.filter((item, idx) => {
+ if (idx >= index || (item.meta && item.meta.affix)) {
+ return true
+ }
+ const i = state.cachedViews.indexOf(item.name)
+ if (i > -1) {
+ state.cachedViews.splice(i, 1)
+ }
+ if(item.meta.link) {
+ const fi = state.iframeViews.findIndex(v => v.path === item.path)
+ state.iframeViews.splice(fi, 1)
+ }
+ return false
+ })
+ }
+}
+
+const actions = {
+ addView({ dispatch }, view) {
+ dispatch('addVisitedView', view)
+ dispatch('addCachedView', view)
+ },
+ addIframeView({ commit }, view) {
+ commit('ADD_IFRAME_VIEW', view)
+ },
+ addVisitedView({ commit }, view) {
+ commit('ADD_VISITED_VIEW', view)
+ },
+ addCachedView({ commit }, view) {
+ commit('ADD_CACHED_VIEW', view)
+ },
+ delView({ dispatch, state }, view) {
+ return new Promise(resolve => {
+ dispatch('delVisitedView', view)
+ dispatch('delCachedView', view)
+ resolve({
+ visitedViews: [...state.visitedViews],
+ cachedViews: [...state.cachedViews]
+ })
+ })
+ },
+ delVisitedView({ commit, state }, view) {
+ return new Promise(resolve => {
+ commit('DEL_VISITED_VIEW', view)
+ resolve([...state.visitedViews])
+ })
+ },
+ delIframeView({ commit, state }, view) {
+ return new Promise(resolve => {
+ commit('DEL_IFRAME_VIEW', view)
+ resolve([...state.iframeViews])
+ })
+ },
+ delCachedView({ commit, state }, view) {
+ return new Promise(resolve => {
+ commit('DEL_CACHED_VIEW', view)
+ resolve([...state.cachedViews])
+ })
+ },
+ delOthersViews({ dispatch, state }, view) {
+ return new Promise(resolve => {
+ dispatch('delOthersVisitedViews', view)
+ dispatch('delOthersCachedViews', view)
+ resolve({
+ visitedViews: [...state.visitedViews],
+ cachedViews: [...state.cachedViews]
+ })
+ })
+ },
+ delOthersVisitedViews({ commit, state }, view) {
+ return new Promise(resolve => {
+ commit('DEL_OTHERS_VISITED_VIEWS', view)
+ resolve([...state.visitedViews])
+ })
+ },
+ delOthersCachedViews({ commit, state }, view) {
+ return new Promise(resolve => {
+ commit('DEL_OTHERS_CACHED_VIEWS', view)
+ resolve([...state.cachedViews])
+ })
+ },
+ delAllViews({ dispatch, state }, view) {
+ return new Promise(resolve => {
+ dispatch('delAllVisitedViews', view)
+ dispatch('delAllCachedViews', view)
+ resolve({
+ visitedViews: [...state.visitedViews],
+ cachedViews: [...state.cachedViews]
+ })
+ })
+ },
+ delAllVisitedViews({ commit, state }) {
+ return new Promise(resolve => {
+ commit('DEL_ALL_VISITED_VIEWS')
+ resolve([...state.visitedViews])
+ })
+ },
+ delAllCachedViews({ commit, state }) {
+ return new Promise(resolve => {
+ commit('DEL_ALL_CACHED_VIEWS')
+ resolve([...state.cachedViews])
+ })
+ },
+ updateVisitedView({ commit }, view) {
+ commit('UPDATE_VISITED_VIEW', view)
+ },
+ delRightTags({ commit }, view) {
+ return new Promise(resolve => {
+ commit('DEL_RIGHT_VIEWS', view)
+ resolve([...state.visitedViews])
+ })
+ },
+ delLeftTags({ commit }, view) {
+ return new Promise(resolve => {
+ commit('DEL_LEFT_VIEWS', view)
+ resolve([...state.visitedViews])
+ })
+ },
+}
+
+export default {
+ namespaced: true,
+ state,
+ mutations,
+ actions
+}
diff --git a/evo-tech-ui/src/store/modules/user.js b/evo-tech-ui/src/store/modules/user.js
new file mode 100644
index 0000000..cdbab1e
--- /dev/null
+++ b/evo-tech-ui/src/store/modules/user.js
@@ -0,0 +1,101 @@
+import { login, logout, getInfo } from '@/api/login'
+import { getToken, setToken, removeToken } from '@/utils/auth'
+
+const user = {
+ state: {
+ token: getToken(),
+ id: '',
+ name: '',
+ avatar: '',
+ roles: [],
+ permissions: []
+ },
+
+ mutations: {
+ SET_TOKEN: (state, token) => {
+ state.token = token
+ },
+ SET_ID: (state, id) => {
+ state.id = id
+ },
+ SET_NAME: (state, name) => {
+ state.name = name
+ },
+ SET_AVATAR: (state, avatar) => {
+ state.avatar = avatar
+ },
+ SET_ROLES: (state, roles) => {
+ state.roles = roles
+ },
+ SET_PERMISSIONS: (state, permissions) => {
+ state.permissions = permissions
+ }
+ },
+
+ actions: {
+ // 登录
+ Login({ commit }, userInfo) {
+ const username = userInfo.username.trim()
+ const password = userInfo.password
+ const code = userInfo.code
+ const uuid = userInfo.uuid
+ return new Promise((resolve, reject) => {
+ login(username, password, code, uuid).then(res => {
+ setToken(res.token)
+ commit('SET_TOKEN', res.token)
+ resolve()
+ }).catch(error => {
+ reject(error)
+ })
+ })
+ },
+
+ // 获取用户信息
+ GetInfo({ commit, state }) {
+ return new Promise((resolve, reject) => {
+ getInfo().then(res => {
+ const user = res.user
+ const avatar = (user.avatar == "" || user.avatar == null) ? require("@/assets/images/profile.jpg") : process.env.VUE_APP_BASE_API + user.avatar;
+ if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组
+ commit('SET_ROLES', res.roles)
+ commit('SET_PERMISSIONS', res.permissions)
+ } else {
+ commit('SET_ROLES', ['ROLE_DEFAULT'])
+ }
+ commit('SET_ID', user.userId)
+ commit('SET_NAME', user.userName)
+ commit('SET_AVATAR', avatar)
+ resolve(res)
+ }).catch(error => {
+ reject(error)
+ })
+ })
+ },
+
+ // 退出系统
+ LogOut({ commit, state }) {
+ return new Promise((resolve, reject) => {
+ logout(state.token).then(() => {
+ commit('SET_TOKEN', '')
+ commit('SET_ROLES', [])
+ commit('SET_PERMISSIONS', [])
+ removeToken()
+ resolve()
+ }).catch(error => {
+ reject(error)
+ })
+ })
+ },
+
+ // 前端 登出
+ FedLogOut({ commit }) {
+ return new Promise(resolve => {
+ commit('SET_TOKEN', '')
+ removeToken()
+ resolve()
+ })
+ }
+ }
+}
+
+export default user
diff --git a/evo-tech-ui/src/utils/auth.js b/evo-tech-ui/src/utils/auth.js
new file mode 100644
index 0000000..08a43d6
--- /dev/null
+++ b/evo-tech-ui/src/utils/auth.js
@@ -0,0 +1,15 @@
+import Cookies from 'js-cookie'
+
+const TokenKey = 'Admin-Token'
+
+export function getToken() {
+ return Cookies.get(TokenKey)
+}
+
+export function setToken(token) {
+ return Cookies.set(TokenKey, token)
+}
+
+export function removeToken() {
+ return Cookies.remove(TokenKey)
+}
diff --git a/evo-tech-ui/src/utils/dict/Dict.js b/evo-tech-ui/src/utils/dict/Dict.js
new file mode 100644
index 0000000..104bd6e
--- /dev/null
+++ b/evo-tech-ui/src/utils/dict/Dict.js
@@ -0,0 +1,82 @@
+import Vue from 'vue'
+import { mergeRecursive } from "@/utils/ruoyi";
+import DictMeta from './DictMeta'
+import DictData from './DictData'
+
+const DEFAULT_DICT_OPTIONS = {
+ types: [],
+}
+
+/**
+ * @classdesc 字典
+ * @property {Object} label 标签对象,内部属性名为字典类型名称
+ * @property {Object} dict 字段数组,内部属性名为字典类型名称
+ * @property {Array.} _dictMetas 字典元数据数组
+ */
+export default class Dict {
+ constructor() {
+ this.owner = null
+ this.label = {}
+ this.type = {}
+ }
+
+ init(options) {
+ if (options instanceof Array) {
+ options = { types: options }
+ }
+ const opts = mergeRecursive(DEFAULT_DICT_OPTIONS, options)
+ if (opts.types === undefined) {
+ throw new Error('need dict types')
+ }
+ const ps = []
+ this._dictMetas = opts.types.map(t => DictMeta.parse(t))
+ this._dictMetas.forEach(dictMeta => {
+ const type = dictMeta.type
+ Vue.set(this.label, type, {})
+ Vue.set(this.type, type, [])
+ if (dictMeta.lazy) {
+ return
+ }
+ ps.push(loadDict(this, dictMeta))
+ })
+ return Promise.all(ps)
+ }
+
+ /**
+ * 重新加载字典
+ * @param {String} type 字典类型
+ */
+ reloadDict(type) {
+ const dictMeta = this._dictMetas.find(e => e.type === type)
+ if (dictMeta === undefined) {
+ return Promise.reject(`the dict meta of ${type} was not found`)
+ }
+ return loadDict(this, dictMeta)
+ }
+}
+
+/**
+ * 加载字典
+ * @param {Dict} dict 字典
+ * @param {DictMeta} dictMeta 字典元数据
+ * @returns {Promise}
+ */
+function loadDict(dict, dictMeta) {
+ return dictMeta.request(dictMeta)
+ .then(response => {
+ const type = dictMeta.type
+ let dicts = dictMeta.responseConverter(response, dictMeta)
+ if (!(dicts instanceof Array)) {
+ console.error('the return of responseConverter must be Array.')
+ dicts = []
+ } else if (dicts.filter(d => d instanceof DictData).length !== dicts.length) {
+ console.error('the type of elements in dicts must be DictData')
+ dicts = []
+ }
+ dict.type[type].splice(0, Number.MAX_SAFE_INTEGER, ...dicts)
+ dicts.forEach(d => {
+ Vue.set(dict.label[type], d.value, d.label)
+ })
+ return dicts
+ })
+}
diff --git a/evo-tech-ui/src/utils/dict/DictConverter.js b/evo-tech-ui/src/utils/dict/DictConverter.js
new file mode 100644
index 0000000..0cf5df8
--- /dev/null
+++ b/evo-tech-ui/src/utils/dict/DictConverter.js
@@ -0,0 +1,17 @@
+import DictOptions from './DictOptions'
+import DictData from './DictData'
+
+export default function(dict, dictMeta) {
+ const label = determineDictField(dict, dictMeta.labelField, ...DictOptions.DEFAULT_LABEL_FIELDS)
+ const value = determineDictField(dict, dictMeta.valueField, ...DictOptions.DEFAULT_VALUE_FIELDS)
+ return new DictData(dict[label], dict[value], dict)
+}
+
+/**
+ * 确定字典字段
+ * @param {DictData} dict
+ * @param {...String} fields
+ */
+function determineDictField(dict, ...fields) {
+ return fields.find(f => Object.prototype.hasOwnProperty.call(dict, f))
+}
diff --git a/evo-tech-ui/src/utils/dict/DictData.js b/evo-tech-ui/src/utils/dict/DictData.js
new file mode 100644
index 0000000..afc763e
--- /dev/null
+++ b/evo-tech-ui/src/utils/dict/DictData.js
@@ -0,0 +1,13 @@
+/**
+ * @classdesc 字典数据
+ * @property {String} label 标签
+ * @property {*} value 标签
+ * @property {Object} raw 原始数据
+ */
+export default class DictData {
+ constructor(label, value, raw) {
+ this.label = label
+ this.value = value
+ this.raw = raw
+ }
+}
diff --git a/evo-tech-ui/src/utils/dict/DictMeta.js b/evo-tech-ui/src/utils/dict/DictMeta.js
new file mode 100644
index 0000000..9779daa
--- /dev/null
+++ b/evo-tech-ui/src/utils/dict/DictMeta.js
@@ -0,0 +1,38 @@
+import { mergeRecursive } from "@/utils/ruoyi";
+import DictOptions from './DictOptions'
+
+/**
+ * @classdesc 字典元数据
+ * @property {String} type 类型
+ * @property {Function} request 请求
+ * @property {String} label 标签字段
+ * @property {String} value 值字段
+ */
+export default class DictMeta {
+ constructor(options) {
+ this.type = options.type
+ this.request = options.request
+ this.responseConverter = options.responseConverter
+ this.labelField = options.labelField
+ this.valueField = options.valueField
+ this.lazy = options.lazy === true
+ }
+}
+
+
+/**
+ * 解析字典元数据
+ * @param {Object} options
+ * @returns {DictMeta}
+ */
+DictMeta.parse= function(options) {
+ let opts = null
+ if (typeof options === 'string') {
+ opts = DictOptions.metas[options] || {}
+ opts.type = options
+ } else if (typeof options === 'object') {
+ opts = options
+ }
+ opts = mergeRecursive(DictOptions.metas['*'], opts)
+ return new DictMeta(opts)
+}
diff --git a/evo-tech-ui/src/utils/dict/DictOptions.js b/evo-tech-ui/src/utils/dict/DictOptions.js
new file mode 100644
index 0000000..338a94e
--- /dev/null
+++ b/evo-tech-ui/src/utils/dict/DictOptions.js
@@ -0,0 +1,51 @@
+import { mergeRecursive } from "@/utils/ruoyi";
+import dictConverter from './DictConverter'
+
+export const options = {
+ metas: {
+ '*': {
+ /**
+ * 字典请求,方法签名为function(dictMeta: DictMeta): Promise
+ */
+ request: (dictMeta) => {
+ console.log(`load dict ${dictMeta.type}`)
+ return Promise.resolve([])
+ },
+ /**
+ * 字典响应数据转换器,方法签名为function(response: Object, dictMeta: DictMeta): DictData
+ */
+ responseConverter,
+ labelField: 'label',
+ valueField: 'value',
+ },
+ },
+ /**
+ * 默认标签字段
+ */
+ DEFAULT_LABEL_FIELDS: ['label', 'name', 'title'],
+ /**
+ * 默认值字段
+ */
+ DEFAULT_VALUE_FIELDS: ['value', 'id', 'uid', 'key'],
+}
+
+/**
+ * 映射字典
+ * @param {Object} response 字典数据
+ * @param {DictMeta} dictMeta 字典元数据
+ * @returns {DictData}
+ */
+function responseConverter(response, dictMeta) {
+ const dicts = response.content instanceof Array ? response.content : response
+ if (dicts === undefined) {
+ console.warn(`no dict data of "${dictMeta.type}" found in the response`)
+ return []
+ }
+ return dicts.map(d => dictConverter(d, dictMeta))
+}
+
+export function mergeOptions(src) {
+ mergeRecursive(options, src)
+}
+
+export default options
diff --git a/evo-tech-ui/src/utils/dict/index.js b/evo-tech-ui/src/utils/dict/index.js
new file mode 100644
index 0000000..215eb9e
--- /dev/null
+++ b/evo-tech-ui/src/utils/dict/index.js
@@ -0,0 +1,33 @@
+import Dict from './Dict'
+import { mergeOptions } from './DictOptions'
+
+export default function(Vue, options) {
+ mergeOptions(options)
+ Vue.mixin({
+ data() {
+ if (this.$options === undefined || this.$options.dicts === undefined || this.$options.dicts === null) {
+ return {}
+ }
+ const dict = new Dict()
+ dict.owner = this
+ return {
+ dict
+ }
+ },
+ created() {
+ if (!(this.dict instanceof Dict)) {
+ return
+ }
+ options.onCreated && options.onCreated(this.dict)
+ this.dict.init(this.$options.dicts).then(() => {
+ options.onReady && options.onReady(this.dict)
+ this.$nextTick(() => {
+ this.$emit('dictReady', this.dict)
+ if (this.$options.methods && this.$options.methods.onDictReady instanceof Function) {
+ this.$options.methods.onDictReady.call(this, this.dict)
+ }
+ })
+ })
+ },
+ })
+}
diff --git a/evo-tech-ui/src/utils/errorCode.js b/evo-tech-ui/src/utils/errorCode.js
new file mode 100644
index 0000000..d2111ee
--- /dev/null
+++ b/evo-tech-ui/src/utils/errorCode.js
@@ -0,0 +1,6 @@
+export default {
+ '401': '认证失败,无法访问系统资源',
+ '403': '当前操作没有权限',
+ '404': '访问资源不存在',
+ 'default': '系统未知错误,请反馈给管理员'
+}
diff --git a/evo-tech-ui/src/utils/generator/config.js b/evo-tech-ui/src/utils/generator/config.js
new file mode 100644
index 0000000..7abf227
--- /dev/null
+++ b/evo-tech-ui/src/utils/generator/config.js
@@ -0,0 +1,438 @@
+export const formConf = {
+ formRef: 'elForm',
+ formModel: 'formData',
+ size: 'medium',
+ labelPosition: 'right',
+ labelWidth: 100,
+ formRules: 'rules',
+ gutter: 15,
+ disabled: false,
+ span: 24,
+ formBtns: true
+}
+
+export const inputComponents = [
+ {
+ label: '单行文本',
+ tag: 'el-input',
+ tagIcon: 'input',
+ placeholder: '请输入',
+ defaultValue: undefined,
+ span: 24,
+ labelWidth: null,
+ style: { width: '100%' },
+ clearable: true,
+ prepend: '',
+ append: '',
+ 'prefix-icon': '',
+ 'suffix-icon': '',
+ maxlength: null,
+ 'show-word-limit': false,
+ readonly: false,
+ disabled: false,
+ required: true,
+ regList: [],
+ changeTag: true,
+ document: 'https://element.eleme.cn/#/zh-CN/component/input'
+ },
+ {
+ label: '多行文本',
+ tag: 'el-input',
+ tagIcon: 'textarea',
+ type: 'textarea',
+ placeholder: '请输入',
+ defaultValue: undefined,
+ span: 24,
+ labelWidth: null,
+ autosize: {
+ minRows: 4,
+ maxRows: 4
+ },
+ style: { width: '100%' },
+ maxlength: null,
+ 'show-word-limit': false,
+ readonly: false,
+ disabled: false,
+ required: true,
+ regList: [],
+ changeTag: true,
+ document: 'https://element.eleme.cn/#/zh-CN/component/input'
+ },
+ {
+ label: '密码',
+ tag: 'el-input',
+ tagIcon: 'password',
+ placeholder: '请输入',
+ defaultValue: undefined,
+ span: 24,
+ 'show-password': true,
+ labelWidth: null,
+ style: { width: '100%' },
+ clearable: true,
+ prepend: '',
+ append: '',
+ 'prefix-icon': '',
+ 'suffix-icon': '',
+ maxlength: null,
+ 'show-word-limit': false,
+ readonly: false,
+ disabled: false,
+ required: true,
+ regList: [],
+ changeTag: true,
+ document: 'https://element.eleme.cn/#/zh-CN/component/input'
+ },
+ {
+ label: '计数器',
+ tag: 'el-input-number',
+ tagIcon: 'number',
+ placeholder: '',
+ defaultValue: undefined,
+ span: 24,
+ labelWidth: null,
+ min: undefined,
+ max: undefined,
+ step: undefined,
+ 'step-strictly': false,
+ precision: undefined,
+ 'controls-position': '',
+ disabled: false,
+ required: true,
+ regList: [],
+ changeTag: true,
+ document: 'https://element.eleme.cn/#/zh-CN/component/input-number'
+ }
+]
+
+export const selectComponents = [
+ {
+ label: '下拉选择',
+ tag: 'el-select',
+ tagIcon: 'select',
+ placeholder: '请选择',
+ defaultValue: undefined,
+ span: 24,
+ labelWidth: null,
+ style: { width: '100%' },
+ clearable: true,
+ disabled: false,
+ required: true,
+ filterable: false,
+ multiple: false,
+ options: [{
+ label: '选项一',
+ value: 1
+ }, {
+ label: '选项二',
+ value: 2
+ }],
+ regList: [],
+ changeTag: true,
+ document: 'https://element.eleme.cn/#/zh-CN/component/select'
+ },
+ {
+ label: '级联选择',
+ tag: 'el-cascader',
+ tagIcon: 'cascader',
+ placeholder: '请选择',
+ defaultValue: [],
+ span: 24,
+ labelWidth: null,
+ style: { width: '100%' },
+ props: {
+ props: {
+ multiple: false
+ }
+ },
+ 'show-all-levels': true,
+ disabled: false,
+ clearable: true,
+ filterable: false,
+ required: true,
+ options: [{
+ id: 1,
+ value: 1,
+ label: '选项1',
+ children: [{
+ id: 2,
+ value: 2,
+ label: '选项1-1'
+ }]
+ }],
+ dataType: 'dynamic',
+ labelKey: 'label',
+ valueKey: 'value',
+ childrenKey: 'children',
+ separator: '/',
+ regList: [],
+ changeTag: true,
+ document: 'https://element.eleme.cn/#/zh-CN/component/cascader'
+ },
+ {
+ label: '单选框组',
+ tag: 'el-radio-group',
+ tagIcon: 'radio',
+ defaultValue: undefined,
+ span: 24,
+ labelWidth: null,
+ style: {},
+ optionType: 'default',
+ border: false,
+ size: 'medium',
+ disabled: false,
+ required: true,
+ options: [{
+ label: '选项一',
+ value: 1
+ }, {
+ label: '选项二',
+ value: 2
+ }],
+ regList: [],
+ changeTag: true,
+ document: 'https://element.eleme.cn/#/zh-CN/component/radio'
+ },
+ {
+ label: '多选框组',
+ tag: 'el-checkbox-group',
+ tagIcon: 'checkbox',
+ defaultValue: [],
+ span: 24,
+ labelWidth: null,
+ style: {},
+ optionType: 'default',
+ border: false,
+ size: 'medium',
+ disabled: false,
+ required: true,
+ options: [{
+ label: '选项一',
+ value: 1
+ }, {
+ label: '选项二',
+ value: 2
+ }],
+ regList: [],
+ changeTag: true,
+ document: 'https://element.eleme.cn/#/zh-CN/component/checkbox'
+ },
+ {
+ label: '开关',
+ tag: 'el-switch',
+ tagIcon: 'switch',
+ defaultValue: false,
+ span: 24,
+ labelWidth: null,
+ style: {},
+ disabled: false,
+ required: true,
+ 'active-text': '',
+ 'inactive-text': '',
+ 'active-color': null,
+ 'inactive-color': null,
+ 'active-value': true,
+ 'inactive-value': false,
+ regList: [],
+ changeTag: true,
+ document: 'https://element.eleme.cn/#/zh-CN/component/switch'
+ },
+ {
+ label: '滑块',
+ tag: 'el-slider',
+ tagIcon: 'slider',
+ defaultValue: null,
+ span: 24,
+ labelWidth: null,
+ disabled: false,
+ required: true,
+ min: 0,
+ max: 100,
+ step: 1,
+ 'show-stops': false,
+ range: false,
+ regList: [],
+ changeTag: true,
+ document: 'https://element.eleme.cn/#/zh-CN/component/slider'
+ },
+ {
+ label: '时间选择',
+ tag: 'el-time-picker',
+ tagIcon: 'time',
+ placeholder: '请选择',
+ defaultValue: null,
+ span: 24,
+ labelWidth: null,
+ style: { width: '100%' },
+ disabled: false,
+ clearable: true,
+ required: true,
+ 'picker-options': {
+ selectableRange: '00:00:00-23:59:59'
+ },
+ format: 'HH:mm:ss',
+ 'value-format': 'HH:mm:ss',
+ regList: [],
+ changeTag: true,
+ document: 'https://element.eleme.cn/#/zh-CN/component/time-picker'
+ },
+ {
+ label: '时间范围',
+ tag: 'el-time-picker',
+ tagIcon: 'time-range',
+ defaultValue: null,
+ span: 24,
+ labelWidth: null,
+ style: { width: '100%' },
+ disabled: false,
+ clearable: true,
+ required: true,
+ 'is-range': true,
+ 'range-separator': '至',
+ 'start-placeholder': '开始时间',
+ 'end-placeholder': '结束时间',
+ format: 'HH:mm:ss',
+ 'value-format': 'HH:mm:ss',
+ regList: [],
+ changeTag: true,
+ document: 'https://element.eleme.cn/#/zh-CN/component/time-picker'
+ },
+ {
+ label: '日期选择',
+ tag: 'el-date-picker',
+ tagIcon: 'date',
+ placeholder: '请选择',
+ defaultValue: null,
+ type: 'date',
+ span: 24,
+ labelWidth: null,
+ style: { width: '100%' },
+ disabled: false,
+ clearable: true,
+ required: true,
+ format: 'yyyy-MM-dd',
+ 'value-format': 'yyyy-MM-dd',
+ readonly: false,
+ regList: [],
+ changeTag: true,
+ document: 'https://element.eleme.cn/#/zh-CN/component/date-picker'
+ },
+ {
+ label: '日期范围',
+ tag: 'el-date-picker',
+ tagIcon: 'date-range',
+ defaultValue: null,
+ span: 24,
+ labelWidth: null,
+ style: { width: '100%' },
+ type: 'daterange',
+ 'range-separator': '至',
+ 'start-placeholder': '开始日期',
+ 'end-placeholder': '结束日期',
+ disabled: false,
+ clearable: true,
+ required: true,
+ format: 'yyyy-MM-dd',
+ 'value-format': 'yyyy-MM-dd',
+ readonly: false,
+ regList: [],
+ changeTag: true,
+ document: 'https://element.eleme.cn/#/zh-CN/component/date-picker'
+ },
+ {
+ label: '评分',
+ tag: 'el-rate',
+ tagIcon: 'rate',
+ defaultValue: 0,
+ span: 24,
+ labelWidth: null,
+ style: {},
+ max: 5,
+ 'allow-half': false,
+ 'show-text': false,
+ 'show-score': false,
+ disabled: false,
+ required: true,
+ regList: [],
+ changeTag: true,
+ document: 'https://element.eleme.cn/#/zh-CN/component/rate'
+ },
+ {
+ label: '颜色选择',
+ tag: 'el-color-picker',
+ tagIcon: 'color',
+ defaultValue: null,
+ labelWidth: null,
+ 'show-alpha': false,
+ 'color-format': '',
+ disabled: false,
+ required: true,
+ size: 'medium',
+ regList: [],
+ changeTag: true,
+ document: 'https://element.eleme.cn/#/zh-CN/component/color-picker'
+ },
+ {
+ label: '上传',
+ tag: 'el-upload',
+ tagIcon: 'upload',
+ action: 'https://jsonplaceholder.typicode.com/posts/',
+ defaultValue: null,
+ labelWidth: null,
+ disabled: false,
+ required: true,
+ accept: '',
+ name: 'file',
+ 'auto-upload': true,
+ showTip: false,
+ buttonText: '点击上传',
+ fileSize: 2,
+ sizeUnit: 'MB',
+ 'list-type': 'text',
+ multiple: false,
+ regList: [],
+ changeTag: true,
+ document: 'https://element.eleme.cn/#/zh-CN/component/upload'
+ }
+]
+
+export const layoutComponents = [
+ {
+ layout: 'rowFormItem',
+ tagIcon: 'row',
+ type: 'default',
+ justify: 'start',
+ align: 'top',
+ label: '行容器',
+ layoutTree: true,
+ children: [],
+ document: 'https://element.eleme.cn/#/zh-CN/component/layout'
+ },
+ {
+ layout: 'colFormItem',
+ label: '按钮',
+ changeTag: true,
+ labelWidth: null,
+ tag: 'el-button',
+ tagIcon: 'button',
+ span: 24,
+ default: '主要按钮',
+ type: 'primary',
+ icon: 'el-icon-search',
+ size: 'medium',
+ disabled: false,
+ document: 'https://element.eleme.cn/#/zh-CN/component/button'
+ }
+]
+
+// 组件rule的触发方式,无触发方式的组件不生成rule
+export const trigger = {
+ 'el-input': 'blur',
+ 'el-input-number': 'blur',
+ 'el-select': 'change',
+ 'el-radio-group': 'change',
+ 'el-checkbox-group': 'change',
+ 'el-cascader': 'change',
+ 'el-time-picker': 'change',
+ 'el-date-picker': 'change',
+ 'el-rate': 'change'
+}
diff --git a/evo-tech-ui/src/utils/generator/css.js b/evo-tech-ui/src/utils/generator/css.js
new file mode 100644
index 0000000..c1c62e6
--- /dev/null
+++ b/evo-tech-ui/src/utils/generator/css.js
@@ -0,0 +1,18 @@
+const styles = {
+ 'el-rate': '.el-rate{display: inline-block; vertical-align: text-top;}',
+ 'el-upload': '.el-upload__tip{line-height: 1.2;}'
+}
+
+function addCss(cssList, el) {
+ const css = styles[el.tag]
+ css && cssList.indexOf(css) === -1 && cssList.push(css)
+ if (el.children) {
+ el.children.forEach(el2 => addCss(cssList, el2))
+ }
+}
+
+export function makeUpCss(conf) {
+ const cssList = []
+ conf.fields.forEach(el => addCss(cssList, el))
+ return cssList.join('\n')
+}
diff --git a/evo-tech-ui/src/utils/generator/drawingDefault.js b/evo-tech-ui/src/utils/generator/drawingDefault.js
new file mode 100644
index 0000000..09f133c
--- /dev/null
+++ b/evo-tech-ui/src/utils/generator/drawingDefault.js
@@ -0,0 +1,29 @@
+export default [
+ {
+ layout: 'colFormItem',
+ tagIcon: 'input',
+ label: '手机号',
+ vModel: 'mobile',
+ formId: 6,
+ tag: 'el-input',
+ placeholder: '请输入手机号',
+ defaultValue: '',
+ span: 24,
+ style: { width: '100%' },
+ clearable: true,
+ prepend: '',
+ append: '',
+ 'prefix-icon': 'el-icon-mobile',
+ 'suffix-icon': '',
+ maxlength: 11,
+ 'show-word-limit': true,
+ readonly: false,
+ disabled: false,
+ required: true,
+ changeTag: true,
+ regList: [{
+ pattern: '/^1(3|4|5|7|8|9)\\d{9}$/',
+ message: '手机号格式错误'
+ }]
+ }
+]
diff --git a/evo-tech-ui/src/utils/generator/html.js b/evo-tech-ui/src/utils/generator/html.js
new file mode 100644
index 0000000..9bcc536
--- /dev/null
+++ b/evo-tech-ui/src/utils/generator/html.js
@@ -0,0 +1,359 @@
+/* eslint-disable max-len */
+import { trigger } from './config'
+
+let confGlobal
+let someSpanIsNot24
+
+export function dialogWrapper(str) {
+ return `
+ ${str}
+
+ 取消
+ 确定
+
+ `
+}
+
+export function vueTemplate(str) {
+ return `
+
+ ${str}
+
+ `
+}
+
+export function vueScript(str) {
+ return ``
+}
+
+export function cssStyle(cssStr) {
+ return ``
+}
+
+function buildFormTemplate(conf, child, type) {
+ let labelPosition = ''
+ if (conf.labelPosition !== 'right') {
+ labelPosition = `label-position="${conf.labelPosition}"`
+ }
+ const disabled = conf.disabled ? `:disabled="${conf.disabled}"` : ''
+ let str = `
+ ${child}
+ ${buildFromBtns(conf, type)}
+ `
+ if (someSpanIsNot24) {
+ str = `
+ ${str}
+ `
+ }
+ return str
+}
+
+function buildFromBtns(conf, type) {
+ let str = ''
+ if (conf.formBtns && type === 'file') {
+ str = `
+ 提交
+ 重置
+ `
+ if (someSpanIsNot24) {
+ str = `
+ ${str}
+ `
+ }
+ }
+ return str
+}
+
+// span不为24的用el-col包裹
+function colWrapper(element, str) {
+ if (someSpanIsNot24 || element.span !== 24) {
+ return `
+ ${str}
+ `
+ }
+ return str
+}
+
+const layouts = {
+ colFormItem(element) {
+ let labelWidth = ''
+ if (element.labelWidth && element.labelWidth !== confGlobal.labelWidth) {
+ labelWidth = `label-width="${element.labelWidth}px"`
+ }
+ const required = !trigger[element.tag] && element.required ? 'required' : ''
+ const tagDom = tags[element.tag] ? tags[element.tag](element) : null
+ let str = `
+ ${tagDom}
+ `
+ str = colWrapper(element, str)
+ return str
+ },
+ rowFormItem(element) {
+ const type = element.type === 'default' ? '' : `type="${element.type}"`
+ const justify = element.type === 'default' ? '' : `justify="${element.justify}"`
+ const align = element.type === 'default' ? '' : `align="${element.align}"`
+ const gutter = element.gutter ? `gutter="${element.gutter}"` : ''
+ const children = element.children.map(el => layouts[el.layout](el))
+ let str = `
+ ${children.join('\n')}
+ `
+ str = colWrapper(element, str)
+ return str
+ }
+}
+
+const tags = {
+ 'el-button': el => {
+ const {
+ tag, disabled
+ } = attrBuilder(el)
+ const type = el.type ? `type="${el.type}"` : ''
+ const icon = el.icon ? `icon="${el.icon}"` : ''
+ const size = el.size ? `size="${el.size}"` : ''
+ let child = buildElButtonChild(el)
+
+ if (child) child = `\n${child}\n` // 换行
+ return `<${el.tag} ${type} ${icon} ${size} ${disabled}>${child}${el.tag}>`
+ },
+ 'el-input': el => {
+ const {
+ disabled, vModel, clearable, placeholder, width
+ } = attrBuilder(el)
+ const maxlength = el.maxlength ? `:maxlength="${el.maxlength}"` : ''
+ const showWordLimit = el['show-word-limit'] ? 'show-word-limit' : ''
+ const readonly = el.readonly ? 'readonly' : ''
+ const prefixIcon = el['prefix-icon'] ? `prefix-icon='${el['prefix-icon']}'` : ''
+ const suffixIcon = el['suffix-icon'] ? `suffix-icon='${el['suffix-icon']}'` : ''
+ const showPassword = el['show-password'] ? 'show-password' : ''
+ const type = el.type ? `type="${el.type}"` : ''
+ const autosize = el.autosize && el.autosize.minRows
+ ? `:autosize="{minRows: ${el.autosize.minRows}, maxRows: ${el.autosize.maxRows}}"`
+ : ''
+ let child = buildElInputChild(el)
+
+ if (child) child = `\n${child}\n` // 换行
+ return `<${el.tag} ${vModel} ${type} ${placeholder} ${maxlength} ${showWordLimit} ${readonly} ${disabled} ${clearable} ${prefixIcon} ${suffixIcon} ${showPassword} ${autosize} ${width}>${child}${el.tag}>`
+ },
+ 'el-input-number': el => {
+ const { disabled, vModel, placeholder } = attrBuilder(el)
+ const controlsPosition = el['controls-position'] ? `controls-position=${el['controls-position']}` : ''
+ const min = el.min ? `:min='${el.min}'` : ''
+ const max = el.max ? `:max='${el.max}'` : ''
+ const step = el.step ? `:step='${el.step}'` : ''
+ const stepStrictly = el['step-strictly'] ? 'step-strictly' : ''
+ const precision = el.precision ? `:precision='${el.precision}'` : ''
+
+ return `<${el.tag} ${vModel} ${placeholder} ${step} ${stepStrictly} ${precision} ${controlsPosition} ${min} ${max} ${disabled}>${el.tag}>`
+ },
+ 'el-select': el => {
+ const {
+ disabled, vModel, clearable, placeholder, width
+ } = attrBuilder(el)
+ const filterable = el.filterable ? 'filterable' : ''
+ const multiple = el.multiple ? 'multiple' : ''
+ let child = buildElSelectChild(el)
+
+ if (child) child = `\n${child}\n` // 换行
+ return `<${el.tag} ${vModel} ${placeholder} ${disabled} ${multiple} ${filterable} ${clearable} ${width}>${child}${el.tag}>`
+ },
+ 'el-radio-group': el => {
+ const { disabled, vModel } = attrBuilder(el)
+ const size = `size="${el.size}"`
+ let child = buildElRadioGroupChild(el)
+
+ if (child) child = `\n${child}\n` // 换行
+ return `<${el.tag} ${vModel} ${size} ${disabled}>${child}${el.tag}>`
+ },
+ 'el-checkbox-group': el => {
+ const { disabled, vModel } = attrBuilder(el)
+ const size = `size="${el.size}"`
+ const min = el.min ? `:min="${el.min}"` : ''
+ const max = el.max ? `:max="${el.max}"` : ''
+ let child = buildElCheckboxGroupChild(el)
+
+ if (child) child = `\n${child}\n` // 换行
+ return `<${el.tag} ${vModel} ${min} ${max} ${size} ${disabled}>${child}${el.tag}>`
+ },
+ 'el-switch': el => {
+ const { disabled, vModel } = attrBuilder(el)
+ const activeText = el['active-text'] ? `active-text="${el['active-text']}"` : ''
+ const inactiveText = el['inactive-text'] ? `inactive-text="${el['inactive-text']}"` : ''
+ const activeColor = el['active-color'] ? `active-color="${el['active-color']}"` : ''
+ const inactiveColor = el['inactive-color'] ? `inactive-color="${el['inactive-color']}"` : ''
+ const activeValue = el['active-value'] !== true ? `:active-value='${JSON.stringify(el['active-value'])}'` : ''
+ const inactiveValue = el['inactive-value'] !== false ? `:inactive-value='${JSON.stringify(el['inactive-value'])}'` : ''
+
+ return `<${el.tag} ${vModel} ${activeText} ${inactiveText} ${activeColor} ${inactiveColor} ${activeValue} ${inactiveValue} ${disabled}>${el.tag}>`
+ },
+ 'el-cascader': el => {
+ const {
+ disabled, vModel, clearable, placeholder, width
+ } = attrBuilder(el)
+ const options = el.options ? `:options="${el.vModel}Options"` : ''
+ const props = el.props ? `:props="${el.vModel}Props"` : ''
+ const showAllLevels = el['show-all-levels'] ? '' : ':show-all-levels="false"'
+ const filterable = el.filterable ? 'filterable' : ''
+ const separator = el.separator === '/' ? '' : `separator="${el.separator}"`
+
+ return `<${el.tag} ${vModel} ${options} ${props} ${width} ${showAllLevels} ${placeholder} ${separator} ${filterable} ${clearable} ${disabled}>${el.tag}>`
+ },
+ 'el-slider': el => {
+ const { disabled, vModel } = attrBuilder(el)
+ const min = el.min ? `:min='${el.min}'` : ''
+ const max = el.max ? `:max='${el.max}'` : ''
+ const step = el.step ? `:step='${el.step}'` : ''
+ const range = el.range ? 'range' : ''
+ const showStops = el['show-stops'] ? `:show-stops="${el['show-stops']}"` : ''
+
+ return `<${el.tag} ${min} ${max} ${step} ${vModel} ${range} ${showStops} ${disabled}>${el.tag}>`
+ },
+ 'el-time-picker': el => {
+ const {
+ disabled, vModel, clearable, placeholder, width
+ } = attrBuilder(el)
+ const startPlaceholder = el['start-placeholder'] ? `start-placeholder="${el['start-placeholder']}"` : ''
+ const endPlaceholder = el['end-placeholder'] ? `end-placeholder="${el['end-placeholder']}"` : ''
+ const rangeSeparator = el['range-separator'] ? `range-separator="${el['range-separator']}"` : ''
+ const isRange = el['is-range'] ? 'is-range' : ''
+ const format = el.format ? `format="${el.format}"` : ''
+ const valueFormat = el['value-format'] ? `value-format="${el['value-format']}"` : ''
+ const pickerOptions = el['picker-options'] ? `:picker-options='${JSON.stringify(el['picker-options'])}'` : ''
+
+ return `<${el.tag} ${vModel} ${isRange} ${format} ${valueFormat} ${pickerOptions} ${width} ${placeholder} ${startPlaceholder} ${endPlaceholder} ${rangeSeparator} ${clearable} ${disabled}>${el.tag}>`
+ },
+ 'el-date-picker': el => {
+ const {
+ disabled, vModel, clearable, placeholder, width
+ } = attrBuilder(el)
+ const startPlaceholder = el['start-placeholder'] ? `start-placeholder="${el['start-placeholder']}"` : ''
+ const endPlaceholder = el['end-placeholder'] ? `end-placeholder="${el['end-placeholder']}"` : ''
+ const rangeSeparator = el['range-separator'] ? `range-separator="${el['range-separator']}"` : ''
+ const format = el.format ? `format="${el.format}"` : ''
+ const valueFormat = el['value-format'] ? `value-format="${el['value-format']}"` : ''
+ const type = el.type === 'date' ? '' : `type="${el.type}"`
+ const readonly = el.readonly ? 'readonly' : ''
+
+ return `<${el.tag} ${type} ${vModel} ${format} ${valueFormat} ${width} ${placeholder} ${startPlaceholder} ${endPlaceholder} ${rangeSeparator} ${clearable} ${readonly} ${disabled}>${el.tag}>`
+ },
+ 'el-rate': el => {
+ const { disabled, vModel } = attrBuilder(el)
+ const max = el.max ? `:max='${el.max}'` : ''
+ const allowHalf = el['allow-half'] ? 'allow-half' : ''
+ const showText = el['show-text'] ? 'show-text' : ''
+ const showScore = el['show-score'] ? 'show-score' : ''
+
+ return `<${el.tag} ${vModel} ${allowHalf} ${showText} ${showScore} ${disabled}>${el.tag}>`
+ },
+ 'el-color-picker': el => {
+ const { disabled, vModel } = attrBuilder(el)
+ const size = `size="${el.size}"`
+ const showAlpha = el['show-alpha'] ? 'show-alpha' : ''
+ const colorFormat = el['color-format'] ? `color-format="${el['color-format']}"` : ''
+
+ return `<${el.tag} ${vModel} ${size} ${showAlpha} ${colorFormat} ${disabled}>${el.tag}>`
+ },
+ 'el-upload': el => {
+ const disabled = el.disabled ? ':disabled=\'true\'' : ''
+ const action = el.action ? `:action="${el.vModel}Action"` : ''
+ const multiple = el.multiple ? 'multiple' : ''
+ const listType = el['list-type'] !== 'text' ? `list-type="${el['list-type']}"` : ''
+ const accept = el.accept ? `accept="${el.accept}"` : ''
+ const name = el.name !== 'file' ? `name="${el.name}"` : ''
+ const autoUpload = el['auto-upload'] === false ? ':auto-upload="false"' : ''
+ const beforeUpload = `:before-upload="${el.vModel}BeforeUpload"`
+ const fileList = `:file-list="${el.vModel}fileList"`
+ const ref = `ref="${el.vModel}"`
+ let child = buildElUploadChild(el)
+
+ if (child) child = `\n${child}\n` // 换行
+ return `<${el.tag} ${ref} ${fileList} ${action} ${autoUpload} ${multiple} ${beforeUpload} ${listType} ${accept} ${name} ${disabled}>${child}${el.tag}>`
+ }
+}
+
+function attrBuilder(el) {
+ return {
+ vModel: `v-model="${confGlobal.formModel}.${el.vModel}"`,
+ clearable: el.clearable ? 'clearable' : '',
+ placeholder: el.placeholder ? `placeholder="${el.placeholder}"` : '',
+ width: el.style && el.style.width ? ':style="{width: \'100%\'}"' : '',
+ disabled: el.disabled ? ':disabled=\'true\'' : ''
+ }
+}
+
+// el-buttin 子级
+function buildElButtonChild(conf) {
+ const children = []
+ if (conf.default) {
+ children.push(conf.default)
+ }
+ return children.join('\n')
+}
+
+// el-input innerHTML
+function buildElInputChild(conf) {
+ const children = []
+ if (conf.prepend) {
+ children.push(`${conf.prepend} `)
+ }
+ if (conf.append) {
+ children.push(`${conf.append} `)
+ }
+ return children.join('\n')
+}
+
+function buildElSelectChild(conf) {
+ const children = []
+ if (conf.options && conf.options.length) {
+ children.push(` `)
+ }
+ return children.join('\n')
+}
+
+function buildElRadioGroupChild(conf) {
+ const children = []
+ if (conf.options && conf.options.length) {
+ const tag = conf.optionType === 'button' ? 'el-radio-button' : 'el-radio'
+ const border = conf.border ? 'border' : ''
+ children.push(`<${tag} v-for="(item, index) in ${conf.vModel}Options" :key="index" :label="item.value" :disabled="item.disabled" ${border}>{{item.label}}${tag}>`)
+ }
+ return children.join('\n')
+}
+
+function buildElCheckboxGroupChild(conf) {
+ const children = []
+ if (conf.options && conf.options.length) {
+ const tag = conf.optionType === 'button' ? 'el-checkbox-button' : 'el-checkbox'
+ const border = conf.border ? 'border' : ''
+ children.push(`<${tag} v-for="(item, index) in ${conf.vModel}Options" :key="index" :label="item.value" :disabled="item.disabled" ${border}>{{item.label}}${tag}>`)
+ }
+ return children.join('\n')
+}
+
+function buildElUploadChild(conf) {
+ const list = []
+ if (conf['list-type'] === 'picture-card') list.push(' ')
+ else list.push(`${conf.buttonText} `)
+ if (conf.showTip) list.push(`只能上传不超过 ${conf.fileSize}${conf.sizeUnit} 的${conf.accept}文件
`)
+ return list.join('\n')
+}
+
+export function makeUpHtml(conf, type) {
+ const htmlList = []
+ confGlobal = conf
+ someSpanIsNot24 = conf.fields.some(item => item.span !== 24)
+ conf.fields.forEach(el => {
+ htmlList.push(layouts[el.layout](el))
+ })
+ const htmlStr = htmlList.join('\n')
+
+ let temp = buildFormTemplate(conf, htmlStr, type)
+ if (type === 'dialog') {
+ temp = dialogWrapper(temp)
+ }
+ confGlobal = null
+ return temp
+}
diff --git a/evo-tech-ui/src/utils/generator/icon.json b/evo-tech-ui/src/utils/generator/icon.json
new file mode 100644
index 0000000..2d9999a
--- /dev/null
+++ b/evo-tech-ui/src/utils/generator/icon.json
@@ -0,0 +1 @@
+["platform-eleme","eleme","delete-solid","delete","s-tools","setting","user-solid","user","phone","phone-outline","more","more-outline","star-on","star-off","s-goods","goods","warning","warning-outline","question","info","remove","circle-plus","success","error","zoom-in","zoom-out","remove-outline","circle-plus-outline","circle-check","circle-close","s-help","help","minus","plus","check","close","picture","picture-outline","picture-outline-round","upload","upload2","download","camera-solid","camera","video-camera-solid","video-camera","message-solid","bell","s-cooperation","s-order","s-platform","s-fold","s-unfold","s-operation","s-promotion","s-home","s-release","s-ticket","s-management","s-open","s-shop","s-marketing","s-flag","s-comment","s-finance","s-claim","s-custom","s-opportunity","s-data","s-check","s-grid","menu","share","d-caret","caret-left","caret-right","caret-bottom","caret-top","bottom-left","bottom-right","back","right","bottom","top","top-left","top-right","arrow-left","arrow-right","arrow-down","arrow-up","d-arrow-left","d-arrow-right","video-pause","video-play","refresh","refresh-right","refresh-left","finished","sort","sort-up","sort-down","rank","loading","view","c-scale-to-original","date","edit","edit-outline","folder","folder-opened","folder-add","folder-remove","folder-delete","folder-checked","tickets","document-remove","document-delete","document-copy","document-checked","document","document-add","printer","paperclip","takeaway-box","search","monitor","attract","mobile","scissors","umbrella","headset","brush","mouse","coordinate","magic-stick","reading","data-line","data-board","pie-chart","data-analysis","collection-tag","film","suitcase","suitcase-1","receiving","collection","files","notebook-1","notebook-2","toilet-paper","office-building","school","table-lamp","house","no-smoking","smoking","shopping-cart-full","shopping-cart-1","shopping-cart-2","shopping-bag-1","shopping-bag-2","sold-out","sell","present","box","bank-card","money","coin","wallet","discount","price-tag","news","guide","male","female","thumb","cpu","link","connection","open","turn-off","set-up","chat-round","chat-line-round","chat-square","chat-dot-round","chat-dot-square","chat-line-square","message","postcard","position","turn-off-microphone","microphone","close-notification","bangzhu","time","odometer","crop","aim","switch-button","full-screen","copy-document","mic","stopwatch","medal-1","medal","trophy","trophy-1","first-aid-kit","discover","place","location","location-outline","location-information","add-location","delete-location","map-location","alarm-clock","timer","watch-1","watch","lock","unlock","key","service","mobile-phone","bicycle","truck","ship","basketball","football","soccer","baseball","wind-power","light-rain","lightning","heavy-rain","sunrise","sunrise-1","sunset","sunny","cloudy","partly-cloudy","cloudy-and-sunny","moon","moon-night","dish","dish-1","food","chicken","fork-spoon","knife-fork","burger","tableware","sugar","dessert","ice-cream","hot-water","water-cup","coffee-cup","cold-drink","goblet","goblet-full","goblet-square","goblet-square-full","refrigerator","grape","watermelon","cherry","apple","pear","orange","coffee","ice-tea","ice-drink","milk-tea","potato-strips","lollipop","ice-cream-square","ice-cream-round"]
\ No newline at end of file
diff --git a/evo-tech-ui/src/utils/generator/js.js b/evo-tech-ui/src/utils/generator/js.js
new file mode 100644
index 0000000..ee8668d
--- /dev/null
+++ b/evo-tech-ui/src/utils/generator/js.js
@@ -0,0 +1,235 @@
+import { exportDefault, titleCase } from '@/utils/index'
+import { trigger } from './config'
+
+const units = {
+ KB: '1024',
+ MB: '1024 / 1024',
+ GB: '1024 / 1024 / 1024'
+}
+let confGlobal
+const inheritAttrs = {
+ file: '',
+ dialog: 'inheritAttrs: false,'
+}
+
+
+export function makeUpJs(conf, type) {
+ confGlobal = conf = JSON.parse(JSON.stringify(conf))
+ const dataList = []
+ const ruleList = []
+ const optionsList = []
+ const propsList = []
+ const methodList = mixinMethod(type)
+ const uploadVarList = []
+
+ conf.fields.forEach(el => {
+ buildAttributes(el, dataList, ruleList, optionsList, methodList, propsList, uploadVarList)
+ })
+
+ const script = buildexport(
+ conf,
+ type,
+ dataList.join('\n'),
+ ruleList.join('\n'),
+ optionsList.join('\n'),
+ uploadVarList.join('\n'),
+ propsList.join('\n'),
+ methodList.join('\n')
+ )
+ confGlobal = null
+ return script
+}
+
+function buildAttributes(el, dataList, ruleList, optionsList, methodList, propsList, uploadVarList) {
+ buildData(el, dataList)
+ buildRules(el, ruleList)
+
+ if (el.options && el.options.length) {
+ buildOptions(el, optionsList)
+ if (el.dataType === 'dynamic') {
+ const model = `${el.vModel}Options`
+ const options = titleCase(model)
+ buildOptionMethod(`get${options}`, model, methodList)
+ }
+ }
+
+ if (el.props && el.props.props) {
+ buildProps(el, propsList)
+ }
+
+ if (el.action && el.tag === 'el-upload') {
+ uploadVarList.push(
+ `${el.vModel}Action: '${el.action}',
+ ${el.vModel}fileList: [],`
+ )
+ methodList.push(buildBeforeUpload(el))
+ if (!el['auto-upload']) {
+ methodList.push(buildSubmitUpload(el))
+ }
+ }
+
+ if (el.children) {
+ el.children.forEach(el2 => {
+ buildAttributes(el2, dataList, ruleList, optionsList, methodList, propsList, uploadVarList)
+ })
+ }
+}
+
+function mixinMethod(type) {
+ const list = []; const
+ minxins = {
+ file: confGlobal.formBtns ? {
+ submitForm: `submitForm() {
+ this.$refs['${confGlobal.formRef}'].validate(valid => {
+ if(!valid) return
+ // TODO 提交表单
+ })
+ },`,
+ resetForm: `resetForm() {
+ this.$refs['${confGlobal.formRef}'].resetFields()
+ },`
+ } : null,
+ dialog: {
+ onOpen: 'onOpen() {},',
+ onClose: `onClose() {
+ this.$refs['${confGlobal.formRef}'].resetFields()
+ },`,
+ close: `close() {
+ this.$emit('update:visible', false)
+ },`,
+ handleConfirm: `handleConfirm() {
+ this.$refs['${confGlobal.formRef}'].validate(valid => {
+ if(!valid) return
+ this.close()
+ })
+ },`
+ }
+ }
+
+ const methods = minxins[type]
+ if (methods) {
+ Object.keys(methods).forEach(key => {
+ list.push(methods[key])
+ })
+ }
+
+ return list
+}
+
+function buildData(conf, dataList) {
+ if (conf.vModel === undefined) return
+ let defaultValue
+ if (typeof (conf.defaultValue) === 'string' && !conf.multiple) {
+ defaultValue = `'${conf.defaultValue}'`
+ } else {
+ defaultValue = `${JSON.stringify(conf.defaultValue)}`
+ }
+ dataList.push(`${conf.vModel}: ${defaultValue},`)
+}
+
+function buildRules(conf, ruleList) {
+ if (conf.vModel === undefined) return
+ const rules = []
+ if (trigger[conf.tag]) {
+ if (conf.required) {
+ const type = Array.isArray(conf.defaultValue) ? 'type: \'array\',' : ''
+ let message = Array.isArray(conf.defaultValue) ? `请至少选择一个${conf.vModel}` : conf.placeholder
+ if (message === undefined) message = `${conf.label}不能为空`
+ rules.push(`{ required: true, ${type} message: '${message}', trigger: '${trigger[conf.tag]}' }`)
+ }
+ if (conf.regList && Array.isArray(conf.regList)) {
+ conf.regList.forEach(item => {
+ if (item.pattern) {
+ rules.push(`{ pattern: ${eval(item.pattern)}, message: '${item.message}', trigger: '${trigger[conf.tag]}' }`)
+ }
+ })
+ }
+ ruleList.push(`${conf.vModel}: [${rules.join(',')}],`)
+ }
+}
+
+function buildOptions(conf, optionsList) {
+ if (conf.vModel === undefined) return
+ if (conf.dataType === 'dynamic') { conf.options = [] }
+ const str = `${conf.vModel}Options: ${JSON.stringify(conf.options)},`
+ optionsList.push(str)
+}
+
+function buildProps(conf, propsList) {
+ if (conf.dataType === 'dynamic') {
+ conf.valueKey !== 'value' && (conf.props.props.value = conf.valueKey)
+ conf.labelKey !== 'label' && (conf.props.props.label = conf.labelKey)
+ conf.childrenKey !== 'children' && (conf.props.props.children = conf.childrenKey)
+ }
+ const str = `${conf.vModel}Props: ${JSON.stringify(conf.props.props)},`
+ propsList.push(str)
+}
+
+function buildBeforeUpload(conf) {
+ const unitNum = units[conf.sizeUnit]; let rightSizeCode = ''; let acceptCode = ''; const
+ returnList = []
+ if (conf.fileSize) {
+ rightSizeCode = `let isRightSize = file.size / ${unitNum} < ${conf.fileSize}
+ if(!isRightSize){
+ this.$message.error('文件大小超过 ${conf.fileSize}${conf.sizeUnit}')
+ }`
+ returnList.push('isRightSize')
+ }
+ if (conf.accept) {
+ acceptCode = `let isAccept = new RegExp('${conf.accept}').test(file.type)
+ if(!isAccept){
+ this.$message.error('应该选择${conf.accept}类型的文件')
+ }`
+ returnList.push('isAccept')
+ }
+ const str = `${conf.vModel}BeforeUpload(file) {
+ ${rightSizeCode}
+ ${acceptCode}
+ return ${returnList.join('&&')}
+ },`
+ return returnList.length ? str : ''
+}
+
+function buildSubmitUpload(conf) {
+ const str = `submitUpload() {
+ this.$refs['${conf.vModel}'].submit()
+ },`
+ return str
+}
+
+function buildOptionMethod(methodName, model, methodList) {
+ const str = `${methodName}() {
+ // TODO 发起请求获取数据
+ this.${model}
+ },`
+ methodList.push(str)
+}
+
+function buildexport(conf, type, data, rules, selectOptions, uploadVar, props, methods) {
+ const str = `${exportDefault}{
+ ${inheritAttrs[type]}
+ components: {},
+ props: [],
+ data () {
+ return {
+ ${conf.formModel}: {
+ ${data}
+ },
+ ${conf.formRules}: {
+ ${rules}
+ },
+ ${uploadVar}
+ ${selectOptions}
+ ${props}
+ }
+ },
+ computed: {},
+ watch: {},
+ created () {},
+ mounted () {},
+ methods: {
+ ${methods}
+ }
+}`
+ return str
+}
diff --git a/evo-tech-ui/src/utils/generator/render.js b/evo-tech-ui/src/utils/generator/render.js
new file mode 100644
index 0000000..e8640f0
--- /dev/null
+++ b/evo-tech-ui/src/utils/generator/render.js
@@ -0,0 +1,126 @@
+import { makeMap } from '@/utils/index'
+
+// 参考https://github.com/vuejs/vue/blob/v2.6.10/src/platforms/web/server/util.js
+const isAttr = makeMap(
+ 'accept,accept-charset,accesskey,action,align,alt,async,autocomplete,'
+ + 'autofocus,autoplay,autosave,bgcolor,border,buffered,challenge,charset,'
+ + 'checked,cite,class,code,codebase,color,cols,colspan,content,http-equiv,'
+ + 'name,contenteditable,contextmenu,controls,coords,data,datetime,default,'
+ + 'defer,dir,dirname,disabled,download,draggable,dropzone,enctype,method,for,'
+ + 'form,formaction,headers,height,hidden,high,href,hreflang,http-equiv,'
+ + 'icon,id,ismap,itemprop,keytype,kind,label,lang,language,list,loop,low,'
+ + 'manifest,max,maxlength,media,method,GET,POST,min,multiple,email,file,'
+ + 'muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,'
+ + 'preload,radiogroup,readonly,rel,required,reversed,rows,rowspan,sandbox,'
+ + 'scope,scoped,seamless,selected,shape,size,type,text,password,sizes,span,'
+ + 'spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,'
+ + 'target,title,type,usemap,value,width,wrap'
+)
+
+function vModel(self, dataObject, defaultValue) {
+ dataObject.props.value = defaultValue
+
+ dataObject.on.input = val => {
+ self.$emit('input', val)
+ }
+}
+
+const componentChild = {
+ 'el-button': {
+ default(h, conf, key) {
+ return conf[key]
+ },
+ },
+ 'el-input': {
+ prepend(h, conf, key) {
+ return {conf[key]}
+ },
+ append(h, conf, key) {
+ return {conf[key]}
+ }
+ },
+ 'el-select': {
+ options(h, conf, key) {
+ const list = []
+ conf.options.forEach(item => {
+ list.push( )
+ })
+ return list
+ }
+ },
+ 'el-radio-group': {
+ options(h, conf, key) {
+ const list = []
+ conf.options.forEach(item => {
+ if (conf.optionType === 'button') list.push({item.label} )
+ else list.push({item.label} )
+ })
+ return list
+ }
+ },
+ 'el-checkbox-group': {
+ options(h, conf, key) {
+ const list = []
+ conf.options.forEach(item => {
+ if (conf.optionType === 'button') {
+ list.push({item.label} )
+ } else {
+ list.push({item.label} )
+ }
+ })
+ return list
+ }
+ },
+ 'el-upload': {
+ 'list-type': (h, conf, key) => {
+ const list = []
+ if (conf['list-type'] === 'picture-card') {
+ list.push( )
+ } else {
+ list.push({conf.buttonText} )
+ }
+ if (conf.showTip) {
+ list.push(只能上传不超过 {conf.fileSize}{conf.sizeUnit} 的{conf.accept}文件
)
+ }
+ return list
+ }
+ }
+}
+
+export default {
+ render(h) {
+ const dataObject = {
+ attrs: {},
+ props: {},
+ on: {},
+ style: {}
+ }
+ const confClone = JSON.parse(JSON.stringify(this.conf))
+ const children = []
+
+ const childObjs = componentChild[confClone.tag]
+ if (childObjs) {
+ Object.keys(childObjs).forEach(key => {
+ const childFunc = childObjs[key]
+ if (confClone[key]) {
+ children.push(childFunc(h, confClone, key))
+ }
+ })
+ }
+
+ Object.keys(confClone).forEach(key => {
+ const val = confClone[key]
+ if (key === 'vModel') {
+ vModel(this, dataObject, confClone.defaultValue)
+ } else if (dataObject[key]) {
+ dataObject[key] = val
+ } else if (!isAttr(key)) {
+ dataObject.props[key] = val
+ } else {
+ dataObject.attrs[key] = val
+ }
+ })
+ return h(this.conf.tag, dataObject, children)
+ },
+ props: ['conf']
+}
diff --git a/evo-tech-ui/src/utils/index.js b/evo-tech-ui/src/utils/index.js
new file mode 100644
index 0000000..df5db12
--- /dev/null
+++ b/evo-tech-ui/src/utils/index.js
@@ -0,0 +1,390 @@
+import { parseTime } from './ruoyi'
+
+/**
+ * 表格时间格式化
+ */
+export function formatDate(cellValue) {
+ if (cellValue == null || cellValue == "") return "";
+ var date = new Date(cellValue)
+ var year = date.getFullYear()
+ var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1
+ var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
+ var hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours()
+ var minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()
+ var seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()
+ return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds
+}
+
+/**
+ * @param {number} time
+ * @param {string} option
+ * @returns {string}
+ */
+export function formatTime(time, option) {
+ if (('' + time).length === 10) {
+ time = parseInt(time) * 1000
+ } else {
+ time = +time
+ }
+ const d = new Date(time)
+ const now = Date.now()
+
+ const diff = (now - d) / 1000
+
+ if (diff < 30) {
+ return '刚刚'
+ } else if (diff < 3600) {
+ // less 1 hour
+ return Math.ceil(diff / 60) + '分钟前'
+ } else if (diff < 3600 * 24) {
+ return Math.ceil(diff / 3600) + '小时前'
+ } else if (diff < 3600 * 24 * 2) {
+ return '1天前'
+ }
+ if (option) {
+ return parseTime(time, option)
+ } else {
+ return (
+ d.getMonth() +
+ 1 +
+ '月' +
+ d.getDate() +
+ '日' +
+ d.getHours() +
+ '时' +
+ d.getMinutes() +
+ '分'
+ )
+ }
+}
+
+/**
+ * @param {string} url
+ * @returns {Object}
+ */
+export function getQueryObject(url) {
+ url = url == null ? window.location.href : url
+ const search = url.substring(url.lastIndexOf('?') + 1)
+ const obj = {}
+ const reg = /([^?&=]+)=([^?&=]*)/g
+ search.replace(reg, (rs, $1, $2) => {
+ const name = decodeURIComponent($1)
+ let val = decodeURIComponent($2)
+ val = String(val)
+ obj[name] = val
+ return rs
+ })
+ return obj
+}
+
+/**
+ * @param {string} input value
+ * @returns {number} output value
+ */
+export function byteLength(str) {
+ // returns the byte length of an utf8 string
+ let s = str.length
+ for (var i = str.length - 1; i >= 0; i--) {
+ const code = str.charCodeAt(i)
+ if (code > 0x7f && code <= 0x7ff) s++
+ else if (code > 0x7ff && code <= 0xffff) s += 2
+ if (code >= 0xDC00 && code <= 0xDFFF) i--
+ }
+ return s
+}
+
+/**
+ * @param {Array} actual
+ * @returns {Array}
+ */
+export function cleanArray(actual) {
+ const newArray = []
+ for (let i = 0; i < actual.length; i++) {
+ if (actual[i]) {
+ newArray.push(actual[i])
+ }
+ }
+ return newArray
+}
+
+/**
+ * @param {Object} json
+ * @returns {Array}
+ */
+export function param(json) {
+ if (!json) return ''
+ return cleanArray(
+ Object.keys(json).map(key => {
+ if (json[key] === undefined) return ''
+ return encodeURIComponent(key) + '=' + encodeURIComponent(json[key])
+ })
+ ).join('&')
+}
+
+/**
+ * @param {string} url
+ * @returns {Object}
+ */
+export function param2Obj(url) {
+ const search = decodeURIComponent(url.split('?')[1]).replace(/\+/g, ' ')
+ if (!search) {
+ return {}
+ }
+ const obj = {}
+ const searchArr = search.split('&')
+ searchArr.forEach(v => {
+ const index = v.indexOf('=')
+ if (index !== -1) {
+ const name = v.substring(0, index)
+ const val = v.substring(index + 1, v.length)
+ obj[name] = val
+ }
+ })
+ return obj
+}
+
+/**
+ * @param {string} val
+ * @returns {string}
+ */
+export function html2Text(val) {
+ const div = document.createElement('div')
+ div.innerHTML = val
+ return div.textContent || div.innerText
+}
+
+/**
+ * Merges two objects, giving the last one precedence
+ * @param {Object} target
+ * @param {(Object|Array)} source
+ * @returns {Object}
+ */
+export function objectMerge(target, source) {
+ if (typeof target !== 'object') {
+ target = {}
+ }
+ if (Array.isArray(source)) {
+ return source.slice()
+ }
+ Object.keys(source).forEach(property => {
+ const sourceProperty = source[property]
+ if (typeof sourceProperty === 'object') {
+ target[property] = objectMerge(target[property], sourceProperty)
+ } else {
+ target[property] = sourceProperty
+ }
+ })
+ return target
+}
+
+/**
+ * @param {HTMLElement} element
+ * @param {string} className
+ */
+export function toggleClass(element, className) {
+ if (!element || !className) {
+ return
+ }
+ let classString = element.className
+ const nameIndex = classString.indexOf(className)
+ if (nameIndex === -1) {
+ classString += '' + className
+ } else {
+ classString =
+ classString.substr(0, nameIndex) +
+ classString.substr(nameIndex + className.length)
+ }
+ element.className = classString
+}
+
+/**
+ * @param {string} type
+ * @returns {Date}
+ */
+export function getTime(type) {
+ if (type === 'start') {
+ return new Date().getTime() - 3600 * 1000 * 24 * 90
+ } else {
+ return new Date(new Date().toDateString())
+ }
+}
+
+/**
+ * @param {Function} func
+ * @param {number} wait
+ * @param {boolean} immediate
+ * @return {*}
+ */
+export function debounce(func, wait, immediate) {
+ let timeout, args, context, timestamp, result
+
+ const later = function() {
+ // 据上一次触发时间间隔
+ const last = +new Date() - timestamp
+
+ // 上次被包装函数被调用时间间隔 last 小于设定时间间隔 wait
+ if (last < wait && last > 0) {
+ timeout = setTimeout(later, wait - last)
+ } else {
+ timeout = null
+ // 如果设定为immediate===true,因为开始边界已经调用过了此处无需调用
+ if (!immediate) {
+ result = func.apply(context, args)
+ if (!timeout) context = args = null
+ }
+ }
+ }
+
+ return function(...args) {
+ context = this
+ timestamp = +new Date()
+ const callNow = immediate && !timeout
+ // 如果延时不存在,重新设定延时
+ if (!timeout) timeout = setTimeout(later, wait)
+ if (callNow) {
+ result = func.apply(context, args)
+ context = args = null
+ }
+
+ return result
+ }
+}
+
+/**
+ * This is just a simple version of deep copy
+ * Has a lot of edge cases bug
+ * If you want to use a perfect deep copy, use lodash's _.cloneDeep
+ * @param {Object} source
+ * @returns {Object}
+ */
+export function deepClone(source) {
+ if (!source && typeof source !== 'object') {
+ throw new Error('error arguments', 'deepClone')
+ }
+ const targetObj = source.constructor === Array ? [] : {}
+ Object.keys(source).forEach(keys => {
+ if (source[keys] && typeof source[keys] === 'object') {
+ targetObj[keys] = deepClone(source[keys])
+ } else {
+ targetObj[keys] = source[keys]
+ }
+ })
+ return targetObj
+}
+
+/**
+ * @param {Array} arr
+ * @returns {Array}
+ */
+export function uniqueArr(arr) {
+ return Array.from(new Set(arr))
+}
+
+/**
+ * @returns {string}
+ */
+export function createUniqueString() {
+ const timestamp = +new Date() + ''
+ const randomNum = parseInt((1 + Math.random()) * 65536) + ''
+ return (+(randomNum + timestamp)).toString(32)
+}
+
+/**
+ * Check if an element has a class
+ * @param {HTMLElement} elm
+ * @param {string} cls
+ * @returns {boolean}
+ */
+export function hasClass(ele, cls) {
+ return !!ele.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)'))
+}
+
+/**
+ * Add class to element
+ * @param {HTMLElement} elm
+ * @param {string} cls
+ */
+export function addClass(ele, cls) {
+ if (!hasClass(ele, cls)) ele.className += ' ' + cls
+}
+
+/**
+ * Remove class from element
+ * @param {HTMLElement} elm
+ * @param {string} cls
+ */
+export function removeClass(ele, cls) {
+ if (hasClass(ele, cls)) {
+ const reg = new RegExp('(\\s|^)' + cls + '(\\s|$)')
+ ele.className = ele.className.replace(reg, ' ')
+ }
+}
+
+export function makeMap(str, expectsLowerCase) {
+ const map = Object.create(null)
+ const list = str.split(',')
+ for (let i = 0; i < list.length; i++) {
+ map[list[i]] = true
+ }
+ return expectsLowerCase
+ ? val => map[val.toLowerCase()]
+ : val => map[val]
+}
+
+export const exportDefault = 'export default '
+
+export const beautifierConf = {
+ html: {
+ indent_size: '2',
+ indent_char: ' ',
+ max_preserve_newlines: '-1',
+ preserve_newlines: false,
+ keep_array_indentation: false,
+ break_chained_methods: false,
+ indent_scripts: 'separate',
+ brace_style: 'end-expand',
+ space_before_conditional: true,
+ unescape_strings: false,
+ jslint_happy: false,
+ end_with_newline: true,
+ wrap_line_length: '110',
+ indent_inner_html: true,
+ comma_first: false,
+ e4x: true,
+ indent_empty_lines: true
+ },
+ js: {
+ indent_size: '2',
+ indent_char: ' ',
+ max_preserve_newlines: '-1',
+ preserve_newlines: false,
+ keep_array_indentation: false,
+ break_chained_methods: false,
+ indent_scripts: 'normal',
+ brace_style: 'end-expand',
+ space_before_conditional: true,
+ unescape_strings: false,
+ jslint_happy: true,
+ end_with_newline: true,
+ wrap_line_length: '110',
+ indent_inner_html: true,
+ comma_first: false,
+ e4x: true,
+ indent_empty_lines: true
+ }
+}
+
+// 首字母大小
+export function titleCase(str) {
+ return str.replace(/( |^)[a-z]/g, L => L.toUpperCase())
+}
+
+// 下划转驼峰
+export function camelCase(str) {
+ return str.replace(/_[a-z]/g, str1 => str1.substr(-1).toUpperCase())
+}
+
+export function isNumberStr(str) {
+ return /^[+-]?(0|([1-9]\d*))(\.\d+)?$/g.test(str)
+}
+
diff --git a/evo-tech-ui/src/utils/jsencrypt.js b/evo-tech-ui/src/utils/jsencrypt.js
new file mode 100644
index 0000000..78d9523
--- /dev/null
+++ b/evo-tech-ui/src/utils/jsencrypt.js
@@ -0,0 +1,30 @@
+import JSEncrypt from 'jsencrypt/bin/jsencrypt.min'
+
+// 密钥对生成 http://web.chacuo.net/netrsakeypair
+
+const publicKey = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdH\n' +
+ 'nzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ=='
+
+const privateKey = 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAqhHyZfSsYourNxaY\n' +
+ '7Nt+PrgrxkiA50efORdI5U5lsW79MmFnusUA355oaSXcLhu5xxB38SMSyP2KvuKN\n' +
+ 'PuH3owIDAQABAkAfoiLyL+Z4lf4Myxk6xUDgLaWGximj20CUf+5BKKnlrK+Ed8gA\n' +
+ 'kM0HqoTt2UZwA5E2MzS4EI2gjfQhz5X28uqxAiEA3wNFxfrCZlSZHb0gn2zDpWow\n' +
+ 'cSxQAgiCstxGUoOqlW8CIQDDOerGKH5OmCJ4Z21v+F25WaHYPxCFMvwxpcw99Ecv\n' +
+ 'DQIgIdhDTIqD2jfYjPTY8Jj3EDGPbH2HHuffvflECt3Ek60CIQCFRlCkHpi7hthh\n' +
+ 'YhovyloRYsM+IS9h/0BzlEAuO0ktMQIgSPT3aFAgJYwKpqRYKlLDVcflZFCKY7u3\n' +
+ 'UP8iWi1Qw0Y='
+
+// 加密
+export function encrypt(txt) {
+ const encryptor = new JSEncrypt()
+ encryptor.setPublicKey(publicKey) // 设置公钥
+ return encryptor.encrypt(txt) // 对数据进行加密
+}
+
+// 解密
+export function decrypt(txt) {
+ const encryptor = new JSEncrypt()
+ encryptor.setPrivateKey(privateKey) // 设置私钥
+ return encryptor.decrypt(txt) // 对数据进行解密
+}
+
diff --git a/evo-tech-ui/src/utils/permission.js b/evo-tech-ui/src/utils/permission.js
new file mode 100644
index 0000000..189a716
--- /dev/null
+++ b/evo-tech-ui/src/utils/permission.js
@@ -0,0 +1,47 @@
+import store from '@/store'
+
+/**
+ * 字符权限校验
+ * @param {Array} value 校验值
+ * @returns {Boolean}
+ */
+export function checkPermi(value) {
+ if (value && value instanceof Array && value.length > 0) {
+ const permissions = store.getters && store.getters.permissions
+ const permissionDatas = value
+ const all_permission = "*:*:*";
+
+ const hasPermission = permissions.some(permission => {
+ return all_permission === permission || permissionDatas.includes(permission)
+ })
+
+ return hasPermission;
+
+ } else {
+ console.error(`need roles! Like checkPermi="['system:user:add','system:user:edit']"`)
+ return false
+ }
+}
+
+/**
+ * 角色权限校验
+ * @param {Array} value 校验值
+ * @returns {Boolean}
+ */
+export function checkRole(value) {
+ if (value && value instanceof Array && value.length > 0) {
+ const roles = store.getters && store.getters.roles
+ const permissionRoles = value
+ const super_admin = "admin";
+
+ const hasRole = roles.some(role => {
+ return super_admin === role || permissionRoles.includes(role)
+ })
+
+ return hasRole;
+
+ } else {
+ console.error(`need roles! Like checkRole="['admin','editor']"`)
+ return false
+ }
+}
\ No newline at end of file
diff --git a/evo-tech-ui/src/utils/request.js b/evo-tech-ui/src/utils/request.js
new file mode 100644
index 0000000..ffb0d21
--- /dev/null
+++ b/evo-tech-ui/src/utils/request.js
@@ -0,0 +1,152 @@
+import axios from 'axios'
+import { Notification, MessageBox, Message, Loading } from 'element-ui'
+import store from '@/store'
+import { getToken } from '@/utils/auth'
+import errorCode from '@/utils/errorCode'
+import { tansParams, blobValidate } from "@/utils/ruoyi";
+import cache from '@/plugins/cache'
+import { saveAs } from 'file-saver'
+
+let downloadLoadingInstance;
+// 是否显示重新登录
+export let isRelogin = { show: false };
+
+axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
+// 创建axios实例
+const service = axios.create({
+ // axios中请求配置有baseURL选项,表示请求URL公共部分
+ baseURL: process.env.VUE_APP_BASE_API,
+ // 超时
+ timeout: 10000
+})
+
+// request拦截器
+service.interceptors.request.use(config => {
+ // 是否需要设置 token
+ const isToken = (config.headers || {}).isToken === false
+ // 是否需要防止数据重复提交
+ const isRepeatSubmit = (config.headers || {}).repeatSubmit === false
+ if (getToken() && !isToken) {
+ config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
+ }
+ // get请求映射params参数
+ if (config.method === 'get' && config.params) {
+ let url = config.url + '?' + tansParams(config.params);
+ url = url.slice(0, -1);
+ config.params = {};
+ config.url = url;
+ }
+ if (!isRepeatSubmit && (config.method === 'post' || config.method === 'put')) {
+ const requestObj = {
+ url: config.url,
+ data: typeof config.data === 'object' ? JSON.stringify(config.data) : config.data,
+ time: new Date().getTime()
+ }
+ const requestSize = Object.keys(JSON.stringify(requestObj)).length; // 请求数据大小
+ const limitSize = 5 * 1024 * 1024; // 限制存放数据5M
+ if (requestSize >= limitSize) {
+ console.warn(`[${config.url}]: ` + '请求数据大小超出允许的5M限制,无法进行防重复提交验证。')
+ return config;
+ }
+ const sessionObj = cache.session.getJSON('sessionObj')
+ if (sessionObj === undefined || sessionObj === null || sessionObj === '') {
+ cache.session.setJSON('sessionObj', requestObj)
+ } else {
+ const s_url = sessionObj.url; // 请求地址
+ const s_data = sessionObj.data; // 请求数据
+ const s_time = sessionObj.time; // 请求时间
+ const interval = 1000; // 间隔时间(ms),小于此时间视为重复提交
+ if (s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url) {
+ const message = '数据正在处理,请勿重复提交';
+ console.warn(`[${s_url}]: ` + message)
+ return Promise.reject(new Error(message))
+ } else {
+ cache.session.setJSON('sessionObj', requestObj)
+ }
+ }
+ }
+ return config
+}, error => {
+ console.log(error)
+ Promise.reject(error)
+})
+
+// 响应拦截器
+service.interceptors.response.use(res => {
+ // 未设置状态码则默认成功状态
+ const code = res.data.code || 200;
+ // 获取错误信息
+ const msg = errorCode[code] || res.data.msg || errorCode['default']
+ // 二进制数据则直接返回
+ if (res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer') {
+ return res.data
+ }
+ if (code === 401) {
+ if (!isRelogin.show) {
+ isRelogin.show = true;
+ MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', { confirmButtonText: '重新登录', cancelButtonText: '取消', type: 'warning' }).then(() => {
+ isRelogin.show = false;
+ store.dispatch('LogOut').then(() => {
+ location.href = '/index';
+ })
+ }).catch(() => {
+ isRelogin.show = false;
+ });
+ }
+ return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
+ } else if (code === 500) {
+ Message({ message: msg, type: 'error' })
+ return Promise.reject(new Error(msg))
+ } else if (code === 601) {
+ Message({ message: msg, type: 'warning' })
+ return Promise.reject('error')
+ } else if (code !== 200) {
+ Notification.error({ title: msg })
+ return Promise.reject('error')
+ } else {
+ return res.data
+ }
+ },
+ error => {
+ console.log('err' + error)
+ let { message } = error;
+ if (message == "Network Error") {
+ message = "后端接口连接异常";
+ } else if (message.includes("timeout")) {
+ message = "系统接口请求超时";
+ } else if (message.includes("Request failed with status code")) {
+ message = "系统接口" + message.substr(message.length - 3) + "异常";
+ }
+ Message({ message: message, type: 'error', duration: 5 * 1000 })
+ return Promise.reject(error)
+ }
+)
+
+// 通用下载方法
+export function download(url, params, filename, config) {
+ downloadLoadingInstance = Loading.service({ text: "正在下载数据,请稍候", spinner: "el-icon-loading", background: "rgba(0, 0, 0, 0.7)", })
+ return service.post(url, params, {
+ transformRequest: [(params) => { return tansParams(params) }],
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
+ responseType: 'blob',
+ ...config
+ }).then(async (data) => {
+ const isBlob = blobValidate(data);
+ if (isBlob) {
+ const blob = new Blob([data])
+ saveAs(blob, filename)
+ } else {
+ const resText = await data.text();
+ const rspObj = JSON.parse(resText);
+ const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default']
+ Message.error(errMsg);
+ }
+ downloadLoadingInstance.close();
+ }).catch((r) => {
+ console.error(r)
+ Message.error('下载文件出现错误,请联系管理员!')
+ downloadLoadingInstance.close();
+ })
+}
+
+export default service
diff --git a/evo-tech-ui/src/utils/ruoyi.js b/evo-tech-ui/src/utils/ruoyi.js
new file mode 100644
index 0000000..44bf9c4
--- /dev/null
+++ b/evo-tech-ui/src/utils/ruoyi.js
@@ -0,0 +1,233 @@
+
+
+/**
+ * 通用js方法封装处理
+ * Copyright (c) 2019 ruoyi
+ */
+
+// 日期格式化
+export function parseTime(time, pattern) {
+ if (arguments.length === 0 || !time) {
+ return null
+ }
+ const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}'
+ let date
+ if (typeof time === 'object') {
+ date = time
+ } else {
+ if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {
+ time = parseInt(time)
+ } else if (typeof time === 'string') {
+ time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\.[\d]{3}/gm), '');
+ }
+ if ((typeof time === 'number') && (time.toString().length === 10)) {
+ time = time * 1000
+ }
+ date = new Date(time)
+ }
+ const formatObj = {
+ y: date.getFullYear(),
+ m: date.getMonth() + 1,
+ d: date.getDate(),
+ h: date.getHours(),
+ i: date.getMinutes(),
+ s: date.getSeconds(),
+ a: date.getDay()
+ }
+ const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
+ let value = formatObj[key]
+ // Note: getDay() returns 0 on Sunday
+ if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value] }
+ if (result.length > 0 && value < 10) {
+ value = '0' + value
+ }
+ return value || 0
+ })
+ return time_str
+}
+
+// 表单重置
+export function resetForm(refName) {
+ if (this.$refs[refName]) {
+ this.$refs[refName].resetFields();
+ }
+}
+
+// 添加日期范围
+export function addDateRange(params, dateRange, propName) {
+ let search = params;
+ search.params = typeof (search.params) === 'object' && search.params !== null && !Array.isArray(search.params) ? search.params : {};
+ dateRange = Array.isArray(dateRange) ? dateRange : [];
+ if (typeof (propName) === 'undefined') {
+ search.params['beginTime'] = dateRange[0];
+ search.params['endTime'] = dateRange[1];
+ } else {
+ search.params['begin' + propName] = dateRange[0];
+ search.params['end' + propName] = dateRange[1];
+ }
+ return search;
+}
+
+// 回显数据字典
+export function selectDictLabel(datas, value) {
+ if (value === undefined) {
+ return "";
+ }
+ var actions = [];
+ Object.keys(datas).some((key) => {
+ if (datas[key].value == ('' + value)) {
+ actions.push(datas[key].label);
+ return true;
+ }
+ })
+ if (actions.length === 0) {
+ actions.push(value);
+ }
+ return actions.join('');
+}
+
+// 回显数据字典(字符串、数组)
+export function selectDictLabels(datas, value, separator) {
+ if (value === undefined || value.length ===0) {
+ return "";
+ }
+ if (Array.isArray(value)) {
+ value = value.join(",");
+ }
+ var actions = [];
+ var currentSeparator = undefined === separator ? "," : separator;
+ var temp = value.split(currentSeparator);
+ Object.keys(value.split(currentSeparator)).some((val) => {
+ var match = false;
+ Object.keys(datas).some((key) => {
+ if (datas[key].value == ('' + temp[val])) {
+ actions.push(datas[key].label + currentSeparator);
+ match = true;
+ }
+ })
+ if (!match) {
+ actions.push(temp[val] + currentSeparator);
+ }
+ })
+ return actions.join('').substring(0, actions.join('').length - 1);
+}
+
+// 字符串格式化(%s )
+export function sprintf(str) {
+ var args = arguments, flag = true, i = 1;
+ str = str.replace(/%s/g, function () {
+ var arg = args[i++];
+ if (typeof arg === 'undefined') {
+ flag = false;
+ return '';
+ }
+ return arg;
+ });
+ return flag ? str : '';
+}
+
+// 转换字符串,undefined,null等转化为""
+export function parseStrEmpty(str) {
+ if (!str || str == "undefined" || str == "null") {
+ return "";
+ }
+ return str;
+}
+
+// 数据合并
+export function mergeRecursive(source, target) {
+ for (var p in target) {
+ try {
+ if (target[p].constructor == Object) {
+ source[p] = mergeRecursive(source[p], target[p]);
+ } else {
+ source[p] = target[p];
+ }
+ } catch (e) {
+ source[p] = target[p];
+ }
+ }
+ return source;
+};
+
+/**
+ * 构造树型结构数据
+ * @param {*} data 数据源
+ * @param {*} id id字段 默认 'id'
+ * @param {*} parentId 父节点字段 默认 'parentId'
+ * @param {*} children 孩子节点字段 默认 'children'
+ */
+export function handleTree(data, id, parentId, children) {
+ let config = {
+ id: id || 'id',
+ parentId: parentId || 'parentId',
+ childrenList: children || 'children'
+ };
+
+ var childrenListMap = {};
+ var nodeIds = {};
+ var tree = [];
+
+ for (let d of data) {
+ let parentId = d[config.parentId];
+ if (childrenListMap[parentId] == null) {
+ childrenListMap[parentId] = [];
+ }
+ nodeIds[d[config.id]] = d;
+ childrenListMap[parentId].push(d);
+ }
+
+ for (let d of data) {
+ let parentId = d[config.parentId];
+ if (nodeIds[parentId] == null) {
+ tree.push(d);
+ }
+ }
+
+ for (let t of tree) {
+ adaptToChildrenList(t);
+ }
+
+ function adaptToChildrenList(o) {
+ if (childrenListMap[o[config.id]] !== null) {
+ o[config.childrenList] = childrenListMap[o[config.id]];
+ }
+ if (o[config.childrenList]) {
+ for (let c of o[config.childrenList]) {
+ adaptToChildrenList(c);
+ }
+ }
+ }
+ return tree;
+}
+
+/**
+* 参数处理
+* @param {*} params 参数
+*/
+export function tansParams(params) {
+ let result = ''
+ for (const propName of Object.keys(params)) {
+ const value = params[propName];
+ var part = encodeURIComponent(propName) + "=";
+ if (value !== null && value !== "" && typeof (value) !== "undefined") {
+ if (typeof value === 'object') {
+ for (const key of Object.keys(value)) {
+ if (value[key] !== null && value[key] !== "" && typeof (value[key]) !== 'undefined') {
+ let params = propName + '[' + key + ']';
+ var subPart = encodeURIComponent(params) + "=";
+ result += subPart + encodeURIComponent(value[key]) + "&";
+ }
+ }
+ } else {
+ result += part + encodeURIComponent(value) + "&";
+ }
+ }
+ }
+ return result
+}
+
+// 验证是否为blob格式
+export function blobValidate(data) {
+ return data.type !== 'application/json'
+}
diff --git a/evo-tech-ui/src/utils/scroll-to.js b/evo-tech-ui/src/utils/scroll-to.js
new file mode 100644
index 0000000..c5d8e04
--- /dev/null
+++ b/evo-tech-ui/src/utils/scroll-to.js
@@ -0,0 +1,58 @@
+Math.easeInOutQuad = function(t, b, c, d) {
+ t /= d / 2
+ if (t < 1) {
+ return c / 2 * t * t + b
+ }
+ t--
+ return -c / 2 * (t * (t - 2) - 1) + b
+}
+
+// requestAnimationFrame for Smart Animating http://goo.gl/sx5sts
+var requestAnimFrame = (function() {
+ return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function(callback) { window.setTimeout(callback, 1000 / 60) }
+})()
+
+/**
+ * Because it's so fucking difficult to detect the scrolling element, just move them all
+ * @param {number} amount
+ */
+function move(amount) {
+ document.documentElement.scrollTop = amount
+ document.body.parentNode.scrollTop = amount
+ document.body.scrollTop = amount
+}
+
+function position() {
+ return document.documentElement.scrollTop || document.body.parentNode.scrollTop || document.body.scrollTop
+}
+
+/**
+ * @param {number} to
+ * @param {number} duration
+ * @param {Function} callback
+ */
+export function scrollTo(to, duration, callback) {
+ const start = position()
+ const change = to - start
+ const increment = 20
+ let currentTime = 0
+ duration = (typeof (duration) === 'undefined') ? 500 : duration
+ var animateScroll = function() {
+ // increment the time
+ currentTime += increment
+ // find the value with the quadratic in-out easing function
+ var val = Math.easeInOutQuad(currentTime, start, change, duration)
+ // move the document.body
+ move(val)
+ // do the animation unless its over
+ if (currentTime < duration) {
+ requestAnimFrame(animateScroll)
+ } else {
+ if (callback && typeof (callback) === 'function') {
+ // the animation is done so lets callback
+ callback()
+ }
+ }
+ }
+ animateScroll()
+}
diff --git a/evo-tech-ui/src/utils/validate.js b/evo-tech-ui/src/utils/validate.js
new file mode 100644
index 0000000..57a568e
--- /dev/null
+++ b/evo-tech-ui/src/utils/validate.js
@@ -0,0 +1,80 @@
+/**
+ * @param {string} path
+ * @returns {Boolean}
+ */
+export function isExternal(path) {
+ return /^(https?:|mailto:|tel:)/.test(path)
+}
+
+/**
+ * @param {string} str
+ * @returns {Boolean}
+ */
+export function validUsername(str) {
+ const valid_map = ['admin', 'editor']
+ return valid_map.indexOf(str.trim()) >= 0
+}
+
+/**
+ * @param {string} url
+ * @returns {Boolean}
+ */
+export function validURL(url) {
+ const reg = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
+ return reg.test(url)
+}
+
+/**
+ * @param {string} str
+ * @returns {Boolean}
+ */
+export function validLowerCase(str) {
+ const reg = /^[a-z]+$/
+ return reg.test(str)
+}
+
+/**
+ * @param {string} str
+ * @returns {Boolean}
+ */
+export function validUpperCase(str) {
+ const reg = /^[A-Z]+$/
+ return reg.test(str)
+}
+
+/**
+ * @param {string} str
+ * @returns {Boolean}
+ */
+export function validAlphabets(str) {
+ const reg = /^[A-Za-z]+$/
+ return reg.test(str)
+}
+
+/**
+ * @param {string} email
+ * @returns {Boolean}
+ */
+export function validEmail(email) {
+ const reg = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
+ return reg.test(email)
+}
+
+/**
+ * @param {string} str
+ * @returns {Boolean}
+ */
+export function isString(str) {
+ return typeof str === 'string' || str instanceof String;
+}
+
+/**
+ * @param {Array} arg
+ * @returns {Boolean}
+ */
+export function isArray(arg) {
+ if (typeof Array.isArray === 'undefined') {
+ return Object.prototype.toString.call(arg) === '[object Array]'
+ }
+ return Array.isArray(arg)
+}
diff --git a/evo-tech-ui/src/views/dashboard/BarChart.vue b/evo-tech-ui/src/views/dashboard/BarChart.vue
new file mode 100644
index 0000000..88e7ef6
--- /dev/null
+++ b/evo-tech-ui/src/views/dashboard/BarChart.vue
@@ -0,0 +1,102 @@
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/dashboard/LineChart.vue b/evo-tech-ui/src/views/dashboard/LineChart.vue
new file mode 100644
index 0000000..702ff73
--- /dev/null
+++ b/evo-tech-ui/src/views/dashboard/LineChart.vue
@@ -0,0 +1,135 @@
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/dashboard/PanelGroup.vue b/evo-tech-ui/src/views/dashboard/PanelGroup.vue
new file mode 100644
index 0000000..1a1081f
--- /dev/null
+++ b/evo-tech-ui/src/views/dashboard/PanelGroup.vue
@@ -0,0 +1,181 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/dashboard/PieChart.vue b/evo-tech-ui/src/views/dashboard/PieChart.vue
new file mode 100644
index 0000000..63f0d84
--- /dev/null
+++ b/evo-tech-ui/src/views/dashboard/PieChart.vue
@@ -0,0 +1,79 @@
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/dashboard/RaddarChart.vue b/evo-tech-ui/src/views/dashboard/RaddarChart.vue
new file mode 100644
index 0000000..312e018
--- /dev/null
+++ b/evo-tech-ui/src/views/dashboard/RaddarChart.vue
@@ -0,0 +1,116 @@
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/dashboard/mixins/resize.js b/evo-tech-ui/src/views/dashboard/mixins/resize.js
new file mode 100644
index 0000000..b1e76e9
--- /dev/null
+++ b/evo-tech-ui/src/views/dashboard/mixins/resize.js
@@ -0,0 +1,56 @@
+import { debounce } from '@/utils'
+
+export default {
+ data() {
+ return {
+ $_sidebarElm: null,
+ $_resizeHandler: null
+ }
+ },
+ mounted() {
+ this.initListener()
+ },
+ activated() {
+ if (!this.$_resizeHandler) {
+ // avoid duplication init
+ this.initListener()
+ }
+
+ // when keep-alive chart activated, auto resize
+ this.resize()
+ },
+ beforeDestroy() {
+ this.destroyListener()
+ },
+ deactivated() {
+ this.destroyListener()
+ },
+ methods: {
+ // use $_ for mixins properties
+ // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential
+ $_sidebarResizeHandler(e) {
+ if (e.propertyName === 'width') {
+ this.$_resizeHandler()
+ }
+ },
+ initListener() {
+ this.$_resizeHandler = debounce(() => {
+ this.resize()
+ }, 100)
+ window.addEventListener('resize', this.$_resizeHandler)
+
+ this.$_sidebarElm = document.getElementsByClassName('sidebar-container')[0]
+ this.$_sidebarElm && this.$_sidebarElm.addEventListener('transitionend', this.$_sidebarResizeHandler)
+ },
+ destroyListener() {
+ window.removeEventListener('resize', this.$_resizeHandler)
+ this.$_resizeHandler = null
+
+ this.$_sidebarElm && this.$_sidebarElm.removeEventListener('transitionend', this.$_sidebarResizeHandler)
+ },
+ resize() {
+ const { chart } = this
+ chart && chart.resize()
+ }
+ }
+}
diff --git a/evo-tech-ui/src/views/error/401.vue b/evo-tech-ui/src/views/error/401.vue
new file mode 100644
index 0000000..448b6ec
--- /dev/null
+++ b/evo-tech-ui/src/views/error/401.vue
@@ -0,0 +1,88 @@
+
+
+
+ 返回
+
+
+
+
+ 401错误!
+
+ 您没有访问权限!
+ 对不起,您没有访问权限,请不要进行非法操作!您可以返回主页面
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/error/404.vue b/evo-tech-ui/src/views/error/404.vue
new file mode 100644
index 0000000..96f075c
--- /dev/null
+++ b/evo-tech-ui/src/views/error/404.vue
@@ -0,0 +1,233 @@
+
+
+
+
+
+
+ 404错误!
+
+
+ {{ message }}
+
+
+ 对不起,您正在寻找的页面不存在。尝试检查URL的错误,然后按浏览器上的刷新按钮或尝试在我们的应用程序中找到其他内容。
+
+
+ 返回首页
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/index.vue b/evo-tech-ui/src/views/index.vue
new file mode 100644
index 0000000..e69de29
diff --git a/evo-tech-ui/src/views/index_v1.vue b/evo-tech-ui/src/views/index_v1.vue
new file mode 100644
index 0000000..d2d2ec6
--- /dev/null
+++ b/evo-tech-ui/src/views/index_v1.vue
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/login.vue b/evo-tech-ui/src/views/login.vue
new file mode 100644
index 0000000..0778864
--- /dev/null
+++ b/evo-tech-ui/src/views/login.vue
@@ -0,0 +1,187 @@
+
+
+
+ 若依后台管理系统
+
+
+
+
+
+
+
+
+
+
+ 记住密码
+
+
+ 登 录
+ 登 录 中...
+
+
+ 立即注册
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/ProductBillBom/index.vue b/evo-tech-ui/src/views/management/ProductBillBom/index.vue
new file mode 100644
index 0000000..bda3c3d
--- /dev/null
+++ b/evo-tech-ui/src/views/management/ProductBillBom/index.vue
@@ -0,0 +1,499 @@
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/TaskBom/index.vue b/evo-tech-ui/src/views/management/TaskBom/index.vue
new file mode 100644
index 0000000..abe8f0d
--- /dev/null
+++ b/evo-tech-ui/src/views/management/TaskBom/index.vue
@@ -0,0 +1,409 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.materialName }}
+ {{ item.specificationType }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/materialList/index.vue b/evo-tech-ui/src/views/management/materialList/index.vue
new file mode 100644
index 0000000..b338699
--- /dev/null
+++ b/evo-tech-ui/src/views/management/materialList/index.vue
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/materialParams/index.vue b/evo-tech-ui/src/views/management/materialParams/index.vue
new file mode 100644
index 0000000..6746a6b
--- /dev/null
+++ b/evo-tech-ui/src/views/management/materialParams/index.vue
@@ -0,0 +1,300 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/materialgroup/index.vue b/evo-tech-ui/src/views/management/materialgroup/index.vue
new file mode 100644
index 0000000..2ce696f
--- /dev/null
+++ b/evo-tech-ui/src/views/management/materialgroup/index.vue
@@ -0,0 +1,254 @@
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/outsourcingContract/index.vue b/evo-tech-ui/src/views/management/outsourcingContract/index.vue
new file mode 100644
index 0000000..473229c
--- /dev/null
+++ b/evo-tech-ui/src/views/management/outsourcingContract/index.vue
@@ -0,0 +1,423 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.appointTime, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+ {{ parseTime(scope.row.completeTime, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/outsourcingContractMaterial/index.vue b/evo-tech-ui/src/views/management/outsourcingContractMaterial/index.vue
new file mode 100644
index 0000000..9d524f7
--- /dev/null
+++ b/evo-tech-ui/src/views/management/outsourcingContractMaterial/index.vue
@@ -0,0 +1,302 @@
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pankuRecord/index.vue b/evo-tech-ui/src/views/management/pankuRecord/index.vue
new file mode 100644
index 0000000..32dee51
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pankuRecord/index.vue
@@ -0,0 +1,401 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/process/index.vue b/evo-tech-ui/src/views/management/process/index.vue
new file mode 100644
index 0000000..759fc8d
--- /dev/null
+++ b/evo-tech-ui/src/views/management/process/index.vue
@@ -0,0 +1,660 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 导出
+
+
+ 折叠/展开
+
+
+ 下载模板
+
+
+ 导入
+
+
+
+
+
+ {{scope.row.figureNumber}}
+ {{scope.row.name}}
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 添加原材料
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 提交
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 将文件拖到此处,或
+ 点击上传
+
+ 提示:仅允许导入“xls”或“xlsx”格式文件!
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/product/index.vue b/evo-tech-ui/src/views/management/product/index.vue
new file mode 100644
index 0000000..48abd81
--- /dev/null
+++ b/evo-tech-ui/src/views/management/product/index.vue
@@ -0,0 +1,408 @@
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/productDetail/index.vue b/evo-tech-ui/src/views/management/productDetail/index.vue
new file mode 100644
index 0000000..18f6494
--- /dev/null
+++ b/evo-tech-ui/src/views/management/productDetail/index.vue
@@ -0,0 +1,258 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/productQuotation/index.vue b/evo-tech-ui/src/views/management/productQuotation/index.vue
new file mode 100644
index 0000000..b48e6b3
--- /dev/null
+++ b/evo-tech-ui/src/views/management/productQuotation/index.vue
@@ -0,0 +1,393 @@
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.typeName }}
+ {{ item.productName }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 注:如果出售产品为零件或部件则需要填写图号列和名称列
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/productStockRequistionProduct/index.vue b/evo-tech-ui/src/views/management/productStockRequistionProduct/index.vue
new file mode 100644
index 0000000..2cf25ff
--- /dev/null
+++ b/evo-tech-ui/src/views/management/productStockRequistionProduct/index.vue
@@ -0,0 +1,306 @@
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/productionBill/index.vue b/evo-tech-ui/src/views/management/productionBill/index.vue
new file mode 100644
index 0000000..c3e7c8d
--- /dev/null
+++ b/evo-tech-ui/src/views/management/productionBill/index.vue
@@ -0,0 +1,951 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 导出
+
+
+ 下载dwg
+
+
+ 下载三维图
+
+
+ 保留工序
+
+
+ 引用工序
+
+
+
+
+
+ {{scope.row.code}}
+ {{scope.row.projectName}}
+
+
+
+
+
+
+ {{ parseTime(scope.row.billDate, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+ 下载
+
+
+
+
+ 查看详情
+
+ 审核
+
+ 提交工艺
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ pushing }}
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/productionBillNonstandard/index.vue b/evo-tech-ui/src/views/management/productionBillNonstandard/index.vue
new file mode 100644
index 0000000..cef9b01
--- /dev/null
+++ b/evo-tech-ui/src/views/management/productionBillNonstandard/index.vue
@@ -0,0 +1,525 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/productionBillProduct/index.vue b/evo-tech-ui/src/views/management/productionBillProduct/index.vue
new file mode 100644
index 0000000..6e3d13f
--- /dev/null
+++ b/evo-tech-ui/src/views/management/productionBillProduct/index.vue
@@ -0,0 +1,365 @@
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+ 下载Bom(工序)
+
+
+ 下载Bom
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.completeDate, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+
+
+
+ 修改
+ 查看Bom表
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/property/index.vue b/evo-tech-ui/src/views/management/property/index.vue
new file mode 100644
index 0000000..c15d5b6
--- /dev/null
+++ b/evo-tech-ui/src/views/management/property/index.vue
@@ -0,0 +1,590 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.buyDate, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/propertyCode/index.vue b/evo-tech-ui/src/views/management/propertyCode/index.vue
new file mode 100644
index 0000000..fe7e812
--- /dev/null
+++ b/evo-tech-ui/src/views/management/propertyCode/index.vue
@@ -0,0 +1,294 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/purchase/index.vue b/evo-tech-ui/src/views/management/purchase/index.vue
new file mode 100644
index 0000000..13eccba
--- /dev/null
+++ b/evo-tech-ui/src/views/management/purchase/index.vue
@@ -0,0 +1,441 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwAlteration/index.vue b/evo-tech-ui/src/views/management/pwAlteration/index.vue
new file mode 100644
index 0000000..37a7b70
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwAlteration/index.vue
@@ -0,0 +1,534 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增(执行单)
+
+
+ 新增(企标单)
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.causeDate, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+
+
+
+ 审核
+ 修改
+ 删除 查看详情
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.code }}
+ {{ item.projectName }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.code }}
+ {{ item.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwAlterationDetail/index.vue b/evo-tech-ui/src/views/management/pwAlterationDetail/index.vue
new file mode 100644
index 0000000..e2452ae
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwAlterationDetail/index.vue
@@ -0,0 +1,584 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.name }}
+ {{ item.figureNumber }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.name }}
+ {{ item.figureNumber }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwBacklog/index.vue b/evo-tech-ui/src/views/management/pwBacklog/index.vue
new file mode 100644
index 0000000..5120c36
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwBacklog/index.vue
@@ -0,0 +1,550 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+ 修改
+
+
+ 标为已阅(未阅)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.pushTime, '{y}-{m}-{d} {h}:{i}:{s}') }}
+
+
+
+
+
+ {{ parseTime(scope.row.recipientTime, '{y}-{m}-{d} {h}:{i}:{s}') }}
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+
+ 办理
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwBomNumber/index.vue b/evo-tech-ui/src/views/management/pwBomNumber/index.vue
new file mode 100644
index 0000000..598f24e
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwBomNumber/index.vue
@@ -0,0 +1,137 @@
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 推送金蝶
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwBomNumberTwo/index.vue b/evo-tech-ui/src/views/management/pwBomNumberTwo/index.vue
new file mode 100644
index 0000000..eeeed63
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwBomNumberTwo/index.vue
@@ -0,0 +1,2643 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 申请领料
+
+
+ 上传BOM
+
+
+ 上传PDF
+
+
+ 新增
+
+
+ 删除
+
+
+ 生成采购单
+
+
+ 打印流转单
+
+
+ 上传派工表
+
+
+ 折叠
+
+
+ 设为虚拟件
+
+
+ 导出
+
+
+ 生成外协合同
+
+
+ 查看副BOM
+
+
+
+
+
+
+
{{item1.materialsNameTwo}}
+
+
+
+
+ 本 次 交 检 :
+ 合 格 数 量 :
+ 累 计 完 成 : {{item1.lenTwo}}
+
+
+
+
+
+
+
+
+
+
打印
+
+
+
+
+
+ {{scope.row.productionCode}}
+ {{scope.row.figureNumber}}
+ {{scope.row.name}}
+
+
+
+
+
+
+
+
+
+
+
+ 查看图片
+ 查看图片
+ 查看图片
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查看子集
+ 修改
+ 修改
+ 申请质检
+ 质检入库
+ 新增
+ 调用工序
+ 添加工序
+ 派工
+ 车间排产
+ 申请领料
+ 装配领料
+ 撤销质检
+ 删除
+ 撤销领料
+ 申请领料
+ 退料
+ 退料领料
+ 虚拟化
+ 生成合同
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 生产令号:
+
+ 单台数量:
+
+ 本批数量:
+
+ 制单时间:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 组焊件
+ 添加原材料
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 提交
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{scope.row.figureNumber}}
+
+ {{scope.row.name}}
+ {{scope.row.processName}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 将文件拖到此处,或
+ 点击上传
+
+ 提示:仅允许导入“xls”或“xlsx”格式文件!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwBomNumberTwo/index111.vue b/evo-tech-ui/src/views/management/pwBomNumberTwo/index111.vue
new file mode 100644
index 0000000..1ac34a1
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwBomNumberTwo/index111.vue
@@ -0,0 +1,2381 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 申请领料
+
+
+ 上传BOM
+
+
+ 上传PDF
+
+
+ 新增
+
+
+ 删除
+
+
+ 生成采购单
+
+
+ 打印流转单
+
+
+ 上传派工表
+
+
+ 折叠
+
+
+ 设为虚拟件
+
+
+ 导出
+
+
+ 生成外协合同
+
+
+ 查看副BOM
+
+
+
+
+
+
+
+
{{item1.materialsNameTwo}}
+
+
+
+
+ 本 次 交 检 :
+ 合 格 数 量 :
+ 累 计 完 成 : {{item1.lenTwo}}
+
+
+
+
+
+
+
+
+
+
打印
+
+
+
+
+
+ {{scope.row.productionCode}}
+ {{scope.row.figureNumber}}
+ {{scope.row.name}}
+
+
+
+
+
+
+
+
+
+
+
+ 查看图片
+ 查看图片
+ 查看图片
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查看子集
+ 修改
+ 修改
+ 申请质检
+ 质检入库
+ 添加工序
+ 派工
+ 车间排产
+ 申请领料
+ 装配领料
+ 撤销质检
+ 删除
+ 撤销领料
+ 申请领料
+ 退料
+ 退料领料
+ 虚拟化
+ 生成合同
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.materialName }}
+ {{ item.figureNumber }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.materialName }}
+ {{ item.figureNumber }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{scope.row.figureNumber}}
+
+ {{scope.row.name}}
+ {{scope.row.processName}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 将文件拖到此处,或
+ 点击上传
+
+ 提示:仅允许导入“xls”或“xlsx”格式文件!
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwBomNumberTwoFu/index.vue b/evo-tech-ui/src/views/management/pwBomNumberTwoFu/index.vue
new file mode 100644
index 0000000..f5b676b
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwBomNumberTwoFu/index.vue
@@ -0,0 +1,1373 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+ 打印流转单
+
+
+
+
+
+
+
+
+ {{scope.row.productionCode}}
+ {{scope.row.figureNumber}}
+ {{scope.row.name}}
+
+
+
+
+
+
+
+
+
+
+
+
+ 查看图片
+ 查看图片
+ 查看图片
+ 查看图片
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 添加工序
+ 删除
+ 派工
+ 申请质检
+ 申请领料
+ 撤销质检
+ 撤销领料
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.materialName }}
+ {{ item.figureNumber }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.materialName }}
+ {{ item.figureNumber }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwDanceNotStandard/index.vue b/evo-tech-ui/src/views/management/pwDanceNotStandard/index.vue
new file mode 100644
index 0000000..54f61db
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwDanceNotStandard/index.vue
@@ -0,0 +1,373 @@
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+ 上传图纸
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwDefectiveMaterial/index.vue b/evo-tech-ui/src/views/management/pwDefectiveMaterial/index.vue
new file mode 100644
index 0000000..cdd4e1e
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwDefectiveMaterial/index.vue
@@ -0,0 +1,390 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwEquipmentInfo/index.vue b/evo-tech-ui/src/views/management/pwEquipmentInfo/index.vue
new file mode 100644
index 0000000..222a5ae
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwEquipmentInfo/index.vue
@@ -0,0 +1,667 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.manufactureDate, '{y}-{m}-{d}') }}
+
+
+
+
+ {{ parseTime(scope.row.installDate, '{y}-{m}-{d}') }}
+
+
+
+
+ {{ parseTime(scope.row.useDate, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 启用
+ 停用
+
+
+
+
+
+
+ 制造
+ 非制造
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwFuturesOrders/index.vue b/evo-tech-ui/src/views/management/pwFuturesOrders/index.vue
new file mode 100644
index 0000000..703f271
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwFuturesOrders/index.vue
@@ -0,0 +1,418 @@
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.time, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+
+ 删除
+ 审核
+ 查看详情
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 请选择字典生成
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwFuturesOrdersDetail/index.vue b/evo-tech-ui/src/views/management/pwFuturesOrdersDetail/index.vue
new file mode 100644
index 0000000..6994f0f
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwFuturesOrdersDetail/index.vue
@@ -0,0 +1,628 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+ 修改
+
+
+ 删除
+
+
+ 生成采购单
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+ 查看详情
+ 撤销采购单
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwFuturesOrdersDetailTwo/index.vue b/evo-tech-ui/src/views/management/pwFuturesOrdersDetailTwo/index.vue
new file mode 100644
index 0000000..45a877c
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwFuturesOrdersDetailTwo/index.vue
@@ -0,0 +1,538 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwHeightPermittedInfo/index.vue b/evo-tech-ui/src/views/management/pwHeightPermittedInfo/index.vue
new file mode 100644
index 0000000..ada0d78
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwHeightPermittedInfo/index.vue
@@ -0,0 +1,464 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwInspectionCard/index.vue b/evo-tech-ui/src/views/management/pwInspectionCard/index.vue
new file mode 100644
index 0000000..fc4f3f3
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwInspectionCard/index.vue
@@ -0,0 +1,411 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.receiptsDate, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+
+
+
+ 修改
+
+ 查看详情
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwInspectionCardDetail/index.vue b/evo-tech-ui/src/views/management/pwInspectionCardDetail/index.vue
new file mode 100644
index 0000000..164f647
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwInspectionCardDetail/index.vue
@@ -0,0 +1,559 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+ 修改
+
+
+
+ 确认检验
+
+
+ 导出
+
+
+ 生成检验单
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.needDate, '{y}-{m}-{d}') }}
+
+
+
+
+ {{ parseTime(scope.row.checkoutDate, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+
+
+
+
+ 修改
+
+ 确认检验
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwInvoiceInfo/index.vue b/evo-tech-ui/src/views/management/pwInvoiceInfo/index.vue
new file mode 100644
index 0000000..264984a
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwInvoiceInfo/index.vue
@@ -0,0 +1,498 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+ 修改
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+ 查看文件
+
+
+
+
+
+
+
+
+
+
+ 查看详情
+
+ 修改
+ 删除
+ 上传发票
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwLetterOfAdviceDetails/index.vue b/evo-tech-ui/src/views/management/pwLetterOfAdviceDetails/index.vue
new file mode 100644
index 0000000..a805809
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwLetterOfAdviceDetails/index.vue
@@ -0,0 +1,403 @@
+
+
+
+
+
+
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwMaterialBorrowInfo/index.vue b/evo-tech-ui/src/views/management/pwMaterialBorrowInfo/index.vue
new file mode 100644
index 0000000..7667f00
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwMaterialBorrowInfo/index.vue
@@ -0,0 +1,569 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.approverTime, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+
+
+ 审批
+ 申请出库
+ 申请退还
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.name }}
+ {{ item.figureNumber }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwMaterialMaterials/index.vue b/evo-tech-ui/src/views/management/pwMaterialMaterials/index.vue
new file mode 100644
index 0000000..ab85fe6
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwMaterialMaterials/index.vue
@@ -0,0 +1,600 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.materialName }}
+ {{ item.figureNumber }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwMaterialPrice/index.vue b/evo-tech-ui/src/views/management/pwMaterialPrice/index.vue
new file mode 100644
index 0000000..e1ec6fd
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwMaterialPrice/index.vue
@@ -0,0 +1,371 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwMaterialProcess/index.vue b/evo-tech-ui/src/views/management/pwMaterialProcess/index.vue
new file mode 100644
index 0000000..148cb77
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwMaterialProcess/index.vue
@@ -0,0 +1,476 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+ 导入
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.materialName }}
+ {{ item.figureNumber }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwModulePart/index.vue b/evo-tech-ui/src/views/management/pwModulePart/index.vue
new file mode 100644
index 0000000..e50bcb2
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwModulePart/index.vue
@@ -0,0 +1,441 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.materialName }}
+ {{ item.figureNumber }}
+
+
+
+
+
+
+ {{ item.materialName }}
+ {{ item.figureNumber }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwProcess/index.vue b/evo-tech-ui/src/views/management/pwProcess/index.vue
new file mode 100644
index 0000000..ff7a2fa
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwProcess/index.vue
@@ -0,0 +1,356 @@
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwProductionOrder/index.vue b/evo-tech-ui/src/views/management/pwProductionOrder/index.vue
new file mode 100644
index 0000000..6044ca0
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwProductionOrder/index.vue
@@ -0,0 +1,385 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 推送生产
+ 推送发运
+ 修改
+ 删除
+ 查看详情
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwProductionOrderInfo/index.vue b/evo-tech-ui/src/views/management/pwProductionOrderInfo/index.vue
new file mode 100644
index 0000000..0d0ecf5
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwProductionOrderInfo/index.vue
@@ -0,0 +1,465 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 请选择字典生成
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwProductionScheduling/index.vue b/evo-tech-ui/src/views/management/pwProductionScheduling/index.vue
new file mode 100644
index 0000000..2906cf7
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwProductionScheduling/index.vue
@@ -0,0 +1,1123 @@
+
+
+
+
+
+
+ 新增
+
+
+ 导出
+
+
+ 查询
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.requireDate, '{y}-{m}-{d}') }}
+
+
+
+
+ {{ parseTime(scope.row.practicalDate, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
缺料信息显示
+
+
+
+
+
+
+
+
+
+ {{scope.row.oneNumber}}
+
+
+ {{scope.row.twoNumber}}
+
+
+ {{scope.row.threeNumber}}
+
+
+ {{scope.row.fourNumber}}
+
+
+ {{scope.row.fiveNumber}}
+
+
+ {{scope.row.sixNumber}}
+
+
+ {{scope.row.sevenNumber}}
+
+
+ {{scope.row.eightNumber}}
+
+
+ {{scope.row.nineNumber}}
+
+
+ {{scope.row.tenNumber}}
+
+
+ {{scope.row.eleven}}
+
+
+ {{scope.row.twelve}}
+
+
+ {{scope.row.thirteen}}
+
+
+ {{scope.row.fourteen}}
+
+
+ {{scope.row.fifteen}}
+
+
+
+ {{scope.row.sixteen}}
+
+
+ {{scope.row.seventeen}}
+
+
+ {{scope.row.eighteen}}
+
+
+ {{scope.row.nineteen}}
+
+
+ {{scope.row.twenty}}
+
+
+ {{scope.row.twentyOne}}
+
+
+ {{scope.row.twentyTwo}}
+
+
+ {{scope.row.twentyThree}}
+
+
+ {{scope.row.twentyFour}}
+
+
+ {{scope.row.twentyFive}}
+
+
+ {{scope.row.twentySix}}
+
+
+ {{scope.row.twentySeven}}
+
+
+ {{scope.row.twentyEight}}
+
+
+ {{scope.row.twentyNine}}
+
+
+ {{scope.row.thirty}}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.code }}
+ {{ item.projectName }}
+
+
+
+
+
+
+ {{ item.productType }}
+ {{ item.quantity }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwProductionSchedulingNumber/index.vue b/evo-tech-ui/src/views/management/pwProductionSchedulingNumber/index.vue
new file mode 100644
index 0000000..eff5076
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwProductionSchedulingNumber/index.vue
@@ -0,0 +1,615 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwQrcode/index.vue b/evo-tech-ui/src/views/management/pwQrcode/index.vue
new file mode 100644
index 0000000..6a925e8
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwQrcode/index.vue
@@ -0,0 +1,269 @@
+
+
+
+
+
+
+ 加急
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwQrcodeFive/index.vue b/evo-tech-ui/src/views/management/pwQrcodeFive/index.vue
new file mode 100644
index 0000000..99b6edd
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwQrcodeFive/index.vue
@@ -0,0 +1,416 @@
+
+
+
+
+
+ {{scope.row.figureNumber}}
+ {{scope.row.materialName}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 确认出库
+ 退库
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwQrcodeFour/index.vue b/evo-tech-ui/src/views/management/pwQrcodeFour/index.vue
new file mode 100644
index 0000000..5d71e8a
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwQrcodeFour/index.vue
@@ -0,0 +1,460 @@
+
+
+
+
+
+
+ 加急
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwQrcodeFourQB/index.vue b/evo-tech-ui/src/views/management/pwQrcodeFourQB/index.vue
new file mode 100644
index 0000000..c8f4ed9
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwQrcodeFourQB/index.vue
@@ -0,0 +1,227 @@
+
+
+
+
+
+ 加急
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwQrcodeQB/index.vue b/evo-tech-ui/src/views/management/pwQrcodeQB/index.vue
new file mode 100644
index 0000000..d117d03
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwQrcodeQB/index.vue
@@ -0,0 +1,243 @@
+
+
+
+
+
+ 加急
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwQrcodeSix/index.vue b/evo-tech-ui/src/views/management/pwQrcodeSix/index.vue
new file mode 100644
index 0000000..9aa3301
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwQrcodeSix/index.vue
@@ -0,0 +1,198 @@
+
+
+
+
+
+ {{scope.row.figureNumber}}
+
+ {{scope.row.name}}
+ {{scope.row.processName}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/views/management/pwQrcodeSixQB/index.vue b/evo-tech-ui/src/views/management/pwQrcodeSixQB/index.vue
new file mode 100644
index 0000000..54230f8
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwQrcodeSixQB/index.vue
@@ -0,0 +1,187 @@
+
+
+
+
+ {{scope.row.figureNumber}}
+
+ {{scope.row.name}}
+ {{scope.row.processName}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/views/management/pwQrcodeThree/index.vue b/evo-tech-ui/src/views/management/pwQrcodeThree/index.vue
new file mode 100644
index 0000000..4539d20
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwQrcodeThree/index.vue
@@ -0,0 +1,321 @@
+
+
+
+
+
+ {{scope.row.specification}}
+ {{scope.row.materialName}}
+
+
+
+
+
+ {{ parseTime(scope.row.checkoutTime, '{y}-{m}-{d} {h}:{i}:{s}') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.storageDate, '{y}-{m}-{d} {h}:{i}:{s}') }}
+
+
+
+
+
+ 修改
+ 重置
+ 确认入库
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwQrcodeTwo/index.vue b/evo-tech-ui/src/views/management/pwQrcodeTwo/index.vue
new file mode 100644
index 0000000..71da9ff
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwQrcodeTwo/index.vue
@@ -0,0 +1,285 @@
+
+
+
+
+
+
+
+ {{scope.row.figureNumber}}
+ {{scope.row.productName}}
+
+
+
+
+ 查看图片
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}:{s}') }}
+
+
+
+
+
+
+ {{ parseTime(scope.row.checkoutDate, '{y}-{m}-{d} {h}:{i}:{s}') }}
+
+
+
+
+
+ 确认质检
+ 撤销质检
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwSafetyInventory/index.vue b/evo-tech-ui/src/views/management/pwSafetyInventory/index.vue
new file mode 100644
index 0000000..57f9ee2
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwSafetyInventory/index.vue
@@ -0,0 +1,450 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+ 导出
+
+
+
+
+
+
+ {{scope.row.name}}
+ {{scope.row.figureNumber}}
+ {{scope.row.materials}}
+ {{scope.row.pieceWeight}}
+ {{scope.row.minimum}}
+ {{scope.row.highest}}
+ {{scope.row.quantity}}
+ {{scope.row.preliminaryInventory}}
+ {{scope.row.lockNumber}}
+ {{scope.row.proportion}}%
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwScrapInfo/index.vue b/evo-tech-ui/src/views/management/pwScrapInfo/index.vue
new file mode 100644
index 0000000..3fdde86
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwScrapInfo/index.vue
@@ -0,0 +1,450 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwSpectaculars/index.vue b/evo-tech-ui/src/views/management/pwSpectaculars/index.vue
new file mode 100644
index 0000000..d09835a
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwSpectaculars/index.vue
@@ -0,0 +1,250 @@
+
+
+
+
+
+
+ {{ item.code }}
+ {{ item.projectName }}
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+ 说 明:红 色 字 体 为 超 时 未 完 成 状 态 ;蓝 色 字 体 为 物 料 工 序 ;绿 色 字 体 为 完 成 状 态
+
+
+
+
+
+
+ {{scope.row.figureNumber}}
+ {{scope.row.name}}
+
+
+
+
+
+ {{scope.row.departmentName}}
+
+
+ {{ parseTime(scope.row.completionDate, '{y}-{m}-{d}') }}
+
+
+
+
+
+ 查看图片
+ 查看图片
+
+
+
+
+
+ {{ parseTime(scope.row.statusDate, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/views/management/pwSpectacularsInfo/index.vue b/evo-tech-ui/src/views/management/pwSpectacularsInfo/index.vue
new file mode 100644
index 0000000..7620685
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwSpectacularsInfo/index.vue
@@ -0,0 +1,1547 @@
+
+
+
+
+
+
+
+ {{ item.code }}
+ {{ item.projectName }}
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+ 领料记录
+ 质检记录
+ 入库记录
+ 出库记录
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{scope.row.processNameOne}}
+ {{scope.row.processNameOne}}
+
+
+
+
+
+ {{scope.row.processNameTwo}}
+ {{scope.row.processNameTwo}}
+
+
+
+
+
+
+
+ {{scope.row.processNameThree}}
+ {{scope.row.processNameThree}}
+
+
+
+
+
+ {{scope.row.processNameFour}}
+ {{scope.row.processNameFour}}
+
+
+
+
+
+ {{scope.row.processNameFive}}
+ {{scope.row.processNameFive}}
+
+
+
+
+
+ {{scope.row.processNameSix}}
+ {{scope.row.processNameSix}}
+
+
+
+
+
+ {{scope.row.processNameSeven}}
+ {{scope.row.processNameSeven}}
+
+
+
+
+
+ {{scope.row.processNameEight}}
+ {{scope.row.processNameEight}}
+
+
+
+
+
+ {{scope.row.processNameNine}}
+ {{scope.row.processNameNine}}
+
+
+
+
+
+
+ {{scope.row.processNameTen}}
+ {{scope.row.processNameTen}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{scope.row.figureNumber}}
+ {{scope.row.materialName}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{scope.row.quantity/scope.row.receivableQuantity*100}}%
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{scope.row.specification}}
+ {{scope.row.materialName}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{scope.row.figureNumber}}
+ {{scope.row.materialName}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwStoresRequisition/index.vue b/evo-tech-ui/src/views/management/pwStoresRequisition/index.vue
new file mode 100644
index 0000000..ef4a03e
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwStoresRequisition/index.vue
@@ -0,0 +1,703 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+ 打印领料单(劳保)
+
+
+ 打印领料单(耗材)
+
+
+
+
+
+
+
+
+
+
河北伊特机械设备制造有限公司
+ 物 品 领 料 单
+
+
+
+
+
+
为加强公司工作服发放管理工作,确保公司员工按规定要求着装上岗,以整洁的仪表仪容树立良好的精神面貌,根据公司相关规定要求,现对工作服及工鞋的采购、发放、领用、穿着特制定本管理制度。
+
一、工作服及工鞋的采购及发放
+
工作服及工鞋由行政部负责采购,库房负责发放及后续管理工作。
+
二、工作时间着装要求
+
1、工作时间须着公司统一发放的工作服;
+
2、着工装时无破损并符合工作要求;
+
3、工作场合不得赤脚、不得穿拖鞋;
+
4、工作服应经常保持清洁;
+
5、不得擅自将工作服改样,不得擅自转借他人工作服。
+
三、工作服的及工鞋的使用及发放
+
1、工作服及工鞋的发放标准、领用
+
(1)标准:公司提供标准的工作服及工鞋,发放标准依据员工所从事的工作岗位而定;
+
(2)领用范围:工作服为公司全体员工,工鞋为生产一线的员工;
+
(3)领用程序:工作服,劳保鞋,为新员工入职一周后方能领取。
+
(4)发放频率:两年一套/双(夏、冬装各一套/双);
+
(5)工作服及工鞋成本:价格以采购时成本价而定;
+
(6)工作服使用年限:二年。
+
2、工作服及工鞋的管理
+
(1)工作服及工鞋由公司统一制定标准,行政部负责工作服制作计划的拟定,并将计划报送公司领导审批;
+
(2)对于公司发放的工作服及工鞋,任何部门和个人不得随意更改;
+
(3)工作服及工鞋不收回,如有离职或调出岗位者,按下列规定执行;
+
①穿用不满1个月者,按100%缴纳服装及工鞋成本费;
+
②穿用不满2个月者,按50%缴纳服装及工鞋成本费;
+
③穿用满3个月者,不再收取服装及工鞋成本费。
+
④员工需缴纳的工作服成本费,将在离职结算工资时,从员工的工资中扣除。
+
3、在使用期限内,工作服及工鞋丢失或损坏,须向库房办理新装领用手续,如个人原因则其成本费由个人全部承担。
+
4、上岗必须统一着装,违反者按公司相关规定处罚。
+
四、处罚措施
+
上岗期间未按规定着装者,第一次口头批评教育,第二次罚款20元,第三次通报批评并罚款50元。
+
五、有需要配戴工帽或其它劳动防护用品的员工,发放管理均参照工作服及工鞋的发放管理规定办理。
+
六、附则
+
1、本制度由办公室负责制定、解释及修订,废止时亦同。
+
2、本制度自总经理签发之日实行。
+
+
+
+
+
+ 令号
+ 名称
+ 图号
+ 单位
+ 数量
+
+
+ {{item1.code}}
+ {{item1.materialName}}
+ {{item1.figureNumber}}
+ {{item1.unitOfMeasurementName}}
+ {{item1.number}}
+
+
+
+ 审 批 人 : {{item1.auditor}}
+ 领 料 人 : {{item1.preferentialOriginName}}
+ 出 单 日 期 : {{parseTime(new Date(), '{y}-{m}-{d} {h}:{i}:{s}')}}
+
+
+
+
打印
+
+
+
+
+
+
+
+
+
河北伊特机械设备制造有限公司
+ 物 品 领 料 单
+
+
+
+
+
+
+
+ 令号
+ 名称
+ 图号
+ 单位
+ 数量
+
+
+ {{item1.code}}
+ {{item2.materialName}}
+ {{item2.figureNumber}}
+ {{item2.unitOfMeasurementName}}
+ {{item2.number}}
+
+
+
+ 领 料 人 : {{item1.proposer}}
+ 审 批 人 : {{item1.auditor}}
+ 出 单 日 期 : {{parseTime(new Date(), '{y}-{m}-{d} {h}:{i}:{s}')}}
+
+
+
+
打印
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.demandDate, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+
+
+
+
+
+ 审核
+ 审批
+ 修改
+ 删除
+ 查看详情
+ 申请领料
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwStoresRequistionDetail/index.vue b/evo-tech-ui/src/views/management/pwStoresRequistionDetail/index.vue
new file mode 100644
index 0000000..1d8ee4d
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwStoresRequistionDetail/index.vue
@@ -0,0 +1,555 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.materialName }}
+ {{ item.figureNumber }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{scope.row.figureNumber}}
+ {{scope.row.materialName}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwTaskOverTimeInfo/index.vue b/evo-tech-ui/src/views/management/pwTaskOverTimeInfo/index.vue
new file mode 100644
index 0000000..9c26baf
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwTaskOverTimeInfo/index.vue
@@ -0,0 +1,571 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.orderTime, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+ {{ parseTime(scope.row.completionDate, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwTicketInfo/index.vue b/evo-tech-ui/src/views/management/pwTicketInfo/index.vue
new file mode 100644
index 0000000..91cbf58
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwTicketInfo/index.vue
@@ -0,0 +1,450 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/pwUserEmail/index.vue b/evo-tech-ui/src/views/management/pwUserEmail/index.vue
new file mode 100644
index 0000000..4ecb767
--- /dev/null
+++ b/evo-tech-ui/src/views/management/pwUserEmail/index.vue
@@ -0,0 +1,349 @@
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/question/index.vue b/evo-tech-ui/src/views/management/question/index.vue
new file mode 100644
index 0000000..2bdba8f
--- /dev/null
+++ b/evo-tech-ui/src/views/management/question/index.vue
@@ -0,0 +1,443 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+ 特急
+ 紧急
+ 普通
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.questionHandleTime, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/quotation/index.vue b/evo-tech-ui/src/views/management/quotation/index.vue
new file mode 100644
index 0000000..d6a9279
--- /dev/null
+++ b/evo-tech-ui/src/views/management/quotation/index.vue
@@ -0,0 +1,488 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查看详情
+ 生成合同
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/quotation/productOffer.vue b/evo-tech-ui/src/views/management/quotation/productOffer.vue
new file mode 100644
index 0000000..c2b6160
--- /dev/null
+++ b/evo-tech-ui/src/views/management/quotation/productOffer.vue
@@ -0,0 +1,160 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 询价
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/views/management/recordProcessing/index.vue b/evo-tech-ui/src/views/management/recordProcessing/index.vue
new file mode 100644
index 0000000..9314349
--- /dev/null
+++ b/evo-tech-ui/src/views/management/recordProcessing/index.vue
@@ -0,0 +1,444 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+ 特急
+ 紧急
+ 普通
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.questionHandleTime, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/rigidChain/index.vue b/evo-tech-ui/src/views/management/rigidChain/index.vue
new file mode 100644
index 0000000..4e69c8d
--- /dev/null
+++ b/evo-tech-ui/src/views/management/rigidChain/index.vue
@@ -0,0 +1,953 @@
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+ 上传标记表
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/scheme/index.vue b/evo-tech-ui/src/views/management/scheme/index.vue
new file mode 100644
index 0000000..9341da5
--- /dev/null
+++ b/evo-tech-ui/src/views/management/scheme/index.vue
@@ -0,0 +1,403 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/secure/index.vue b/evo-tech-ui/src/views/management/secure/index.vue
new file mode 100644
index 0000000..4c6872b
--- /dev/null
+++ b/evo-tech-ui/src/views/management/secure/index.vue
@@ -0,0 +1,371 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/storage/index.vue b/evo-tech-ui/src/views/management/storage/index.vue
new file mode 100644
index 0000000..9373fc6
--- /dev/null
+++ b/evo-tech-ui/src/views/management/storage/index.vue
@@ -0,0 +1,381 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/strokeMeasurement/index.vue b/evo-tech-ui/src/views/management/strokeMeasurement/index.vue
new file mode 100644
index 0000000..2b55cb1
--- /dev/null
+++ b/evo-tech-ui/src/views/management/strokeMeasurement/index.vue
@@ -0,0 +1,300 @@
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/task/index.vue b/evo-tech-ui/src/views/management/task/index.vue
new file mode 100644
index 0000000..195d566
--- /dev/null
+++ b/evo-tech-ui/src/views/management/task/index.vue
@@ -0,0 +1,546 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.completionTime }}
+
+
+
+
+ {{ scope.row.beginTimes }}
+
+
+
+
+ {{ scope.row.realityCompletionTime }}
+
+
+
+
+ {{ scope.row.workingTime }}
+
+
+
+
+
+
+ {{ taskStatus[scope.row.taskStatus] }}
+
+
+
+
+
+ {{ scope.row.remark }}
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+ 发布任务
+ 领取任务
+ 完成任务
+ 查看详情
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/toothedCoupling/index.vue b/evo-tech-ui/src/views/management/toothedCoupling/index.vue
new file mode 100644
index 0000000..3e62103
--- /dev/null
+++ b/evo-tech-ui/src/views/management/toothedCoupling/index.vue
@@ -0,0 +1,330 @@
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/travelSwitch/index.vue b/evo-tech-ui/src/views/management/travelSwitch/index.vue
new file mode 100644
index 0000000..18cc689
--- /dev/null
+++ b/evo-tech-ui/src/views/management/travelSwitch/index.vue
@@ -0,0 +1,294 @@
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/twoStageReductionGear/index.vue b/evo-tech-ui/src/views/management/twoStageReductionGear/index.vue
new file mode 100644
index 0000000..3f9b970
--- /dev/null
+++ b/evo-tech-ui/src/views/management/twoStageReductionGear/index.vue
@@ -0,0 +1,342 @@
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/windlass/index.vue b/evo-tech-ui/src/views/management/windlass/index.vue
new file mode 100644
index 0000000..166042a
--- /dev/null
+++ b/evo-tech-ui/src/views/management/windlass/index.vue
@@ -0,0 +1,330 @@
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/ycBomNumberPreliminaryInquiry/index.vue b/evo-tech-ui/src/views/management/ycBomNumberPreliminaryInquiry/index.vue
new file mode 100644
index 0000000..48dae59
--- /dev/null
+++ b/evo-tech-ui/src/views/management/ycBomNumberPreliminaryInquiry/index.vue
@@ -0,0 +1,463 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/ycBomNumberTwoInquiry/index.vue b/evo-tech-ui/src/views/management/ycBomNumberTwoInquiry/index.vue
new file mode 100644
index 0000000..c04e8ed
--- /dev/null
+++ b/evo-tech-ui/src/views/management/ycBomNumberTwoInquiry/index.vue
@@ -0,0 +1,537 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 请选择字典生成
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/management/ycProduct/index.vue b/evo-tech-ui/src/views/management/ycProduct/index.vue
new file mode 100644
index 0000000..928511e
--- /dev/null
+++ b/evo-tech-ui/src/views/management/ycProduct/index.vue
@@ -0,0 +1,358 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+ 查看详情
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/monitor/cache/index.vue b/evo-tech-ui/src/views/monitor/cache/index.vue
new file mode 100644
index 0000000..8d2f378
--- /dev/null
+++ b/evo-tech-ui/src/views/monitor/cache/index.vue
@@ -0,0 +1,148 @@
+
+
+
+
+
+ 基本信息
+
+
+
+
+ Redis版本
+ {{ cache.info.redis_version }}
+ 运行模式
+ {{ cache.info.redis_mode == "standalone" ? "单机" : "集群" }}
+ 端口
+ {{ cache.info.tcp_port }}
+ 客户端数
+ {{ cache.info.connected_clients }}
+
+
+ 运行时间(天)
+ {{ cache.info.uptime_in_days }}
+ 使用内存
+ {{ cache.info.used_memory_human }}
+ 使用CPU
+ {{ parseFloat(cache.info.used_cpu_user_children).toFixed(2) }}
+ 内存配置
+ {{ cache.info.maxmemory_human }}
+
+
+ AOF是否开启
+ {{ cache.info.aof_enabled == "0" ? "否" : "是" }}
+ RDB是否成功
+ {{ cache.info.rdb_last_bgsave_status }}
+ Key数量
+ {{ cache.dbSize }}
+ 网络入口/出口
+ {{ cache.info.instantaneous_input_kbps }}kps/{{cache.info.instantaneous_output_kbps}}kps
+
+
+
+
+
+
+
+
+
+ 命令统计
+
+
+
+
+
+
+ 内存信息
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/monitor/cache/list.vue b/evo-tech-ui/src/views/monitor/cache/list.vue
new file mode 100644
index 0000000..29a7c74
--- /dev/null
+++ b/evo-tech-ui/src/views/monitor/cache/list.vue
@@ -0,0 +1,241 @@
+
+
+
+
+
+
+ 缓存列表
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 键名列表
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 缓存内容
+ 清理全部
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/monitor/druid/index.vue b/evo-tech-ui/src/views/monitor/druid/index.vue
new file mode 100644
index 0000000..c6ad585
--- /dev/null
+++ b/evo-tech-ui/src/views/monitor/druid/index.vue
@@ -0,0 +1,15 @@
+
+
+
+
diff --git a/evo-tech-ui/src/views/monitor/job/index.vue b/evo-tech-ui/src/views/monitor/job/index.vue
new file mode 100644
index 0000000..892c727
--- /dev/null
+++ b/evo-tech-ui/src/views/monitor/job/index.vue
@@ -0,0 +1,513 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+ 日志
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+ handleCommand(command, scope.row)" v-hasPermi="['monitor:job:changeStatus', 'monitor:job:query']">
+ 更多
+
+ 执行一次
+ 任务详细
+ 调度日志
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 调用方法
+
+
+ Bean调用示例:ryTask.ryParams('ry')
+ Class类调用示例:com.ruoyi.quartz.task.RyTask.ryParams('ry')
+ 参数说明:支持字符串,布尔类型,长整型,浮点型,整型
+
+
+
+
+
+
+
+
+
+
+
+
+ 生成表达式
+
+
+
+
+
+
+
+
+
+ {{dict.label}}
+
+
+
+
+
+
+ 立即执行
+ 执行一次
+ 放弃执行
+
+
+
+
+
+
+ 允许
+ 禁止
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ form.jobId }}
+ {{ form.jobName }}
+
+
+ {{ jobGroupFormat(form) }}
+ {{ form.createTime }}
+
+
+ {{ form.cronExpression }}
+
+
+ {{ parseTime(form.nextValidTime) }}
+
+
+ {{ form.invokeTarget }}
+
+
+
+ 正常
+ 暂停
+
+
+
+
+ 允许
+ 禁止
+
+
+
+
+ 默认策略
+ 立即执行
+ 执行一次
+ 放弃执行
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/monitor/job/log.vue b/evo-tech-ui/src/views/monitor/job/log.vue
new file mode 100644
index 0000000..60bee1d
--- /dev/null
+++ b/evo-tech-ui/src/views/monitor/job/log.vue
@@ -0,0 +1,295 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 删除
+
+
+ 清空
+
+
+ 导出
+
+
+ 关闭
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.createTime) }}
+
+
+
+
+ 详细
+
+
+
+
+
+
+
+
+
+
+
+ {{ form.jobLogId }}
+ {{ form.jobName }}
+
+
+ {{ form.jobGroup }}
+ {{ form.createTime }}
+
+
+ {{ form.invokeTarget }}
+
+
+ {{ form.jobMessage }}
+
+
+
+ 正常
+ 失败
+
+
+
+ {{ form.exceptionInfo }}
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/monitor/logininfor/index.vue b/evo-tech-ui/src/views/monitor/logininfor/index.vue
new file mode 100644
index 0000000..d6af834
--- /dev/null
+++ b/evo-tech-ui/src/views/monitor/logininfor/index.vue
@@ -0,0 +1,246 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 删除
+
+
+ 清空
+
+
+ 解锁
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.loginTime) }}
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/monitor/online/index.vue b/evo-tech-ui/src/views/monitor/online/index.vue
new file mode 100644
index 0000000..ad613c9
--- /dev/null
+++ b/evo-tech-ui/src/views/monitor/online/index.vue
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+ {{(pageNum - 1) * pageSize + scope.$index + 1}}
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.loginTime) }}
+
+
+
+
+ 强退
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/monitor/operlog/index.vue b/evo-tech-ui/src/views/monitor/operlog/index.vue
new file mode 100644
index 0000000..4a1828f
--- /dev/null
+++ b/evo-tech-ui/src/views/monitor/operlog/index.vue
@@ -0,0 +1,323 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 删除
+
+
+ 清空
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.operTime) }}
+
+
+
+
+ {{ scope.row.costTime }}毫秒
+
+
+
+
+ 详细
+
+
+
+
+
+
+
+
+
+
+
+ {{ form.title }} / {{ typeFormat(form) }}
+ {{ form.operName }} / {{ form.operIp }} / {{ form.operLocation }}
+
+
+ {{ form.operUrl }}
+ {{ form.requestMethod }}
+
+
+ {{ form.method }}
+
+
+ {{ form.operParam }}
+
+
+ {{ form.jsonResult }}
+
+
+
+ 正常
+ 失败
+
+
+
+ {{ form.costTime }}毫秒
+
+
+ {{ parseTime(form.operTime) }}
+
+
+ {{ form.errorMsg }}
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/monitor/server/index.vue b/evo-tech-ui/src/views/monitor/server/index.vue
new file mode 100644
index 0000000..15ffc9a
--- /dev/null
+++ b/evo-tech-ui/src/views/monitor/server/index.vue
@@ -0,0 +1,207 @@
+
+
+
+
+
+ CPU
+
+
+
+
+ 属性
+ 值
+
+
+
+
+ 核心数
+ {{ server.cpu.cpuNum }}
+
+
+ 用户使用率
+ {{ server.cpu.used }}%
+
+
+ 系统使用率
+ {{ server.cpu.sys }}%
+
+
+ 当前空闲率
+ {{ server.cpu.free }}%
+
+
+
+
+
+
+
+
+
+ 内存
+
+
+
+
+ 属性
+ 内存
+ JVM
+
+
+
+
+ 总内存
+ {{ server.mem.total }}G
+ {{ server.jvm.total }}M
+
+
+ 已用内存
+ {{ server.mem.used}}G
+ {{ server.jvm.used}}M
+
+
+ 剩余内存
+ {{ server.mem.free }}G
+ {{ server.jvm.free }}M
+
+
+ 使用率
+ {{ server.mem.usage }}%
+ {{ server.jvm.usage }}%
+
+
+
+
+
+
+
+
+
+
+ 服务器信息
+
+
+
+
+
+ 服务器名称
+ {{ server.sys.computerName }}
+ 操作系统
+ {{ server.sys.osName }}
+
+
+ 服务器IP
+ {{ server.sys.computerIp }}
+ 系统架构
+ {{ server.sys.osArch }}
+
+
+
+
+
+
+
+
+
+
+ Java虚拟机信息
+
+
+
+
+
+ Java名称
+ {{ server.jvm.name }}
+ Java版本
+ {{ server.jvm.version }}
+
+
+ 启动时间
+ {{ server.jvm.startTime }}
+ 运行时长
+ {{ server.jvm.runTime }}
+
+
+ 安装路径
+ {{ server.jvm.home }}
+
+
+ 项目路径
+ {{ server.sys.userDir }}
+
+
+ 运行参数
+ {{ server.jvm.inputArgs }}
+
+
+
+
+
+
+
+
+
+
+ 磁盘状态
+
+
+
+
+
+ 盘符路径
+ 文件系统
+ 盘符类型
+ 总大小
+ 可用大小
+ 已用大小
+ 已用百分比
+
+
+
+
+ {{ sysFile.dirName }}
+ {{ sysFile.sysTypeName }}
+ {{ sysFile.typeName }}
+ {{ sysFile.total }}
+ {{ sysFile.free }}
+ {{ sysFile.used }}
+ {{ sysFile.usage }}%
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/redirect.vue b/evo-tech-ui/src/views/redirect.vue
new file mode 100644
index 0000000..db4c1d6
--- /dev/null
+++ b/evo-tech-ui/src/views/redirect.vue
@@ -0,0 +1,12 @@
+
diff --git a/evo-tech-ui/src/views/register.vue b/evo-tech-ui/src/views/register.vue
new file mode 100644
index 0000000..7bf6f43
--- /dev/null
+++ b/evo-tech-ui/src/views/register.vue
@@ -0,0 +1,210 @@
+
+
+
+ 若依后台管理系统
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 注 册
+ 注 册 中...
+
+
+ 使用已有账户登录
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/system/config/index.vue b/evo-tech-ui/src/views/system/config/index.vue
new file mode 100644
index 0000000..3ab81fc
--- /dev/null
+++ b/evo-tech-ui/src/views/system/config/index.vue
@@ -0,0 +1,343 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+ 刷新缓存
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.createTime) }}
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{dict.label}}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/system/dept/index.vue b/evo-tech-ui/src/views/system/dept/index.vue
new file mode 100644
index 0000000..e502b4e
--- /dev/null
+++ b/evo-tech-ui/src/views/system/dept/index.vue
@@ -0,0 +1,340 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 展开/折叠
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.createTime) }}
+
+
+
+
+ 修改
+ 新增
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{dict.label}}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/system/dict/data.vue b/evo-tech-ui/src/views/system/dict/data.vue
new file mode 100644
index 0000000..3befe4a
--- /dev/null
+++ b/evo-tech-ui/src/views/system/dict/data.vue
@@ -0,0 +1,402 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+ 关闭
+
+
+
+
+
+
+
+
+
+ {{ scope.row.dictLabel }}
+ {{ scope.row.dictLabel }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.createTime) }}
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{dict.label}}
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/views/system/dict/index.vue b/evo-tech-ui/src/views/system/dict/index.vue
new file mode 100644
index 0000000..6ca5457
--- /dev/null
+++ b/evo-tech-ui/src/views/system/dict/index.vue
@@ -0,0 +1,347 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+ 刷新缓存
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.dictType }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.createTime) }}
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{dict.label}}
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/views/system/menu/index.vue b/evo-tech-ui/src/views/system/menu/index.vue
new file mode 100644
index 0000000..c703fa0
--- /dev/null
+++ b/evo-tech-ui/src/views/system/menu/index.vue
@@ -0,0 +1,452 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 展开/折叠
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.createTime) }}
+
+
+
+
+ 修改
+ 新增
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 目录
+ 菜单
+ 按钮
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 是否外链
+
+
+ 是
+ 否
+
+
+
+
+
+
+
+
+
+ 路由地址
+
+
+
+
+
+
+
+
+
+
+ 组件路径
+
+
+
+
+
+
+
+
+
+
+
+ 权限字符
+
+
+
+
+
+
+
+
+
+
+ 路由参数
+
+
+
+
+
+
+
+
+
+ 是否缓存
+
+
+ 缓存
+ 不缓存
+
+
+
+
+
+
+
+
+
+ 显示状态
+
+
+ {{dict.label}}
+
+
+
+
+
+
+
+
+
+ 菜单状态
+
+
+ {{dict.label}}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/system/notice/index.vue b/evo-tech-ui/src/views/system/notice/index.vue
new file mode 100644
index 0000000..7982b54
--- /dev/null
+++ b/evo-tech-ui/src/views/system/notice/index.vue
@@ -0,0 +1,312 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{dict.label}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/system/post/index.vue b/evo-tech-ui/src/views/system/post/index.vue
new file mode 100644
index 0000000..444bf63
--- /dev/null
+++ b/evo-tech-ui/src/views/system/post/index.vue
@@ -0,0 +1,309 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.createTime) }}
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{dict.label}}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/system/role/authUser.vue b/evo-tech-ui/src/views/system/role/authUser.vue
new file mode 100644
index 0000000..147aa33
--- /dev/null
+++ b/evo-tech-ui/src/views/system/role/authUser.vue
@@ -0,0 +1,199 @@
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 添加用户
+
+
+ 批量取消授权
+
+
+ 关闭
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.createTime) }}
+
+
+
+
+ 取消授权
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/views/system/role/index.vue b/evo-tech-ui/src/views/system/role/index.vue
new file mode 100644
index 0000000..fb3b5ef
--- /dev/null
+++ b/evo-tech-ui/src/views/system/role/index.vue
@@ -0,0 +1,605 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.createTime) }}
+
+
+
+
+ 修改
+ 删除
+ handleCommand(command, scope.row)" v-hasPermi="['system:role:edit']">
+ 更多
+
+ 数据权限
+ 分配用户
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 权限字符
+
+
+
+
+
+
+
+
+ {{dict.label}}
+
+
+
+ 展开/折叠
+ 全选/全不选
+ 父子联动
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 展开/折叠
+ 全选/全不选
+ 父子联动
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/views/system/role/selectUser.vue b/evo-tech-ui/src/views/system/role/selectUser.vue
new file mode 100644
index 0000000..10a5365
--- /dev/null
+++ b/evo-tech-ui/src/views/system/role/selectUser.vue
@@ -0,0 +1,136 @@
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.createTime) }}
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/system/user/authRole.vue b/evo-tech-ui/src/views/system/user/authRole.vue
new file mode 100644
index 0000000..943710e
--- /dev/null
+++ b/evo-tech-ui/src/views/system/user/authRole.vue
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{(pageNum - 1) * pageSize + scope.$index + 1}}
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.createTime) }}
+
+
+
+
+
+
+
+
+ 提交
+ 返回
+
+
+
+
+
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/views/system/user/index.vue b/evo-tech-ui/src/views/system/user/index.vue
new file mode 100644
index 0000000..6b2a0aa
--- /dev/null
+++ b/evo-tech-ui/src/views/system/user/index.vue
@@ -0,0 +1,676 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导入
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.createTime) }}
+
+
+
+
+ 修改
+ 删除
+ handleCommand(command, scope.row)" v-hasPermi="['system:user:resetPwd', 'system:user:edit']">
+ 更多
+
+ 重置密码
+ 分配角色
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{dict.label}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 将文件拖到此处,或点击上传
+
+
+ 是否更新已经存在的用户数据
+
+
仅允许导入xls、xlsx格式文件。
+
下载模板
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/evo-tech-ui/src/views/system/user/profile/index.vue b/evo-tech-ui/src/views/system/user/profile/index.vue
new file mode 100644
index 0000000..529c564
--- /dev/null
+++ b/evo-tech-ui/src/views/system/user/profile/index.vue
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+ 个人信息
+
+
+
+
+
+
+
+ 基本资料
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/system/user/profile/resetPwd.vue b/evo-tech-ui/src/views/system/user/profile/resetPwd.vue
new file mode 100644
index 0000000..f329e6e
--- /dev/null
+++ b/evo-tech-ui/src/views/system/user/profile/resetPwd.vue
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 保存
+ 关闭
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/system/user/profile/userAvatar.vue b/evo-tech-ui/src/views/system/user/profile/userAvatar.vue
new file mode 100644
index 0000000..cbf3ca1
--- /dev/null
+++ b/evo-tech-ui/src/views/system/user/profile/userAvatar.vue
@@ -0,0 +1,184 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 选择
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 提 交
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/system/user/profile/userInfo.vue b/evo-tech-ui/src/views/system/user/profile/userInfo.vue
new file mode 100644
index 0000000..c970dc9
--- /dev/null
+++ b/evo-tech-ui/src/views/system/user/profile/userInfo.vue
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 男
+ 女
+
+
+
+ 保存
+ 关闭
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/tool/build/CodeTypeDialog.vue b/evo-tech-ui/src/views/tool/build/CodeTypeDialog.vue
new file mode 100644
index 0000000..b5c2e2e
--- /dev/null
+++ b/evo-tech-ui/src/views/tool/build/CodeTypeDialog.vue
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+ {{ item.label }}
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+
+
+ 确定
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/tool/build/DraggableItem.vue b/evo-tech-ui/src/views/tool/build/DraggableItem.vue
new file mode 100644
index 0000000..e881778
--- /dev/null
+++ b/evo-tech-ui/src/views/tool/build/DraggableItem.vue
@@ -0,0 +1,100 @@
+
diff --git a/evo-tech-ui/src/views/tool/build/IconsDialog.vue b/evo-tech-ui/src/views/tool/build/IconsDialog.vue
new file mode 100644
index 0000000..958be50
--- /dev/null
+++ b/evo-tech-ui/src/views/tool/build/IconsDialog.vue
@@ -0,0 +1,123 @@
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/tool/build/RightPanel.vue b/evo-tech-ui/src/views/tool/build/RightPanel.vue
new file mode 100644
index 0000000..c2760eb
--- /dev/null
+++ b/evo-tech-ui/src/views/tool/build/RightPanel.vue
@@ -0,0 +1,946 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.label }}
+
+
+
+
+
+
+
+
+ {{ activeData.componentName }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 选择
+
+
+
+
+
+
+ 选择
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 默认
+
+
+ 右侧
+
+
+
+
+
+
+ 个字符
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text
+
+
+ picture
+
+
+ picture-card
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 选项
+
+
+
+
+
+ 添加选项
+
+
+
+
+
+
+ 选项
+
+
+
+ 动态数据
+
+
+ 静态数据
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 添加父级
+
+
+
+
+
+
+
+
+ 默认
+
+
+ 按钮
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 中等
+
+
+ 较小
+
+
+ 迷你
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 布局结构树
+
+
+
+
+ {{ node.label }}
+
+
+
+
+
+
+ 正则校验
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 添加规则
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 中等
+
+
+ 较小
+
+
+ 迷你
+
+
+
+
+
+
+ 左对齐
+
+
+ 右对齐
+
+
+ 顶部对齐
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/tool/build/TreeNodeDialog.vue b/evo-tech-ui/src/views/tool/build/TreeNodeDialog.vue
new file mode 100644
index 0000000..fa7f0b2
--- /dev/null
+++ b/evo-tech-ui/src/views/tool/build/TreeNodeDialog.vue
@@ -0,0 +1,149 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 确定
+
+
+ 取消
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/tool/build/index.vue b/evo-tech-ui/src/views/tool/build/index.vue
new file mode 100644
index 0000000..2bd298b
--- /dev/null
+++ b/evo-tech-ui/src/views/tool/build/index.vue
@@ -0,0 +1,768 @@
+
+
+
+
+
+
Form Generator
+
+
+
+
+
+ 输入型组件
+
+
+
+
+
+ {{ element.label }}
+
+
+
+
+ 选择型组件
+
+
+
+
+
+ {{ element.label }}
+
+
+
+
+ 布局型组件
+
+
+
+
+
+ {{ element.label }}
+
+
+
+
+
+
+
+
+
+
+ 导出vue文件
+
+
+ 复制代码
+
+
+ 清空
+
+
+
+
+
+
+
+
+
+ 从左侧拖入或点选组件进行表单设计
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/tool/build/warterMark.js b/evo-tech-ui/src/views/tool/build/warterMark.js
new file mode 100644
index 0000000..77c72c8
--- /dev/null
+++ b/evo-tech-ui/src/views/tool/build/warterMark.js
@@ -0,0 +1,63 @@
+'use strict'
+
+var watermark = (className,str,type) => {
+ let dom = document.getElementsByClassName(className)
+ let canvas = document.createElement('canvas')
+ let cxt = canvas.getContext('2d')
+ let div = document.createElement('div')
+
+ let imgScale = 1
+ canvas.width = 200
+ if(type == 'text'){
+ cxt.font = '16px Microsoft JhengHei'
+ cxt.fillStyle = 'rgba(200, 200, 200, 0.3)'
+ cxt.textAlign = 'left'
+ cxt.textBaseline = 'Middle'
+ cxt.fillText(str, 10, 50)
+ cxt.clearRect(0, 0, canvas.width, canvas.height);
+ div.style.background = 'url(' + canvas.toDataURL('image/png') + ') left top repeat'
+ drawImage(div,dom)
+ }else{
+ //创建新的图片对象
+ let img = new Image();
+ //指定图片的URL
+ img.src = str;
+ //浏览器加载图片完毕后再绘制图片
+ img.onload = function() {
+ //cxt.drawImage(img,0,0);
+ cxt.rotate(-20 * Math.PI / 180)
+ let whScale = img.width / img.height
+ cxt.clearRect(0, 0, canvas.width, canvas.height);
+ cxt.drawImage(img, //规定要使用的图像、画布或视频。
+ 0, 0, //开始剪切的 x 坐标位置。
+ img.width, img.height, //被剪切图像的高度。
+ 30, 100,//在画布上放置图像的 x 、y坐标位置。
+ img.width * imgScale, img.height * imgScale //要使用的图像的宽度、高度
+ )
+ div.style.opacity = 0.2
+ div.style.background = 'url(' + canvas.toDataURL('image/png') + ') left top repeat'
+ drawImage(div,dom)
+ }
+ }
+}
+var drawImage = function (div,dom) {
+ div.style.pointerEvents = 'none'
+ div.className = 'weterbox' //样式名
+ div.style.top = 0
+ div.style.left = 0
+ div.style.position = 'absolute'
+ div.style.zIndex = '100000'
+ div.style.width = '100%'
+ div.style.height = '100%'
+ if( dom.length > 0){
+ for(let i = 0; i< dom.length;i++){
+ let child = dom[i].getElementsByClassName('weterbox')
+ if(child.length > 0){
+ dom[i].removeChild(child[0])
+ }
+ dom[i].appendChild(div.cloneNode(true))
+ }
+ }
+}
+
+export default watermark
diff --git a/evo-tech-ui/src/views/tool/gen/basicInfoForm.vue b/evo-tech-ui/src/views/tool/gen/basicInfoForm.vue
new file mode 100644
index 0000000..7029529
--- /dev/null
+++ b/evo-tech-ui/src/views/tool/gen/basicInfoForm.vue
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/tool/gen/createTable.vue b/evo-tech-ui/src/views/tool/gen/createTable.vue
new file mode 100644
index 0000000..f914b5d
--- /dev/null
+++ b/evo-tech-ui/src/views/tool/gen/createTable.vue
@@ -0,0 +1,45 @@
+
+
+
+ 创建表语句(支持多个建表语句):
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/tool/gen/editTable.vue b/evo-tech-ui/src/views/tool/gen/editTable.vue
new file mode 100644
index 0000000..951497a
--- /dev/null
+++ b/evo-tech-ui/src/views/tool/gen/editTable.vue
@@ -0,0 +1,234 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ dict.dictName }}
+ {{ dict.dictType }}
+
+
+
+
+
+
+
+
+
+
+
+
+ 提交
+ 返回
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/tool/gen/genInfoForm.vue b/evo-tech-ui/src/views/tool/gen/genInfoForm.vue
new file mode 100644
index 0000000..98daf6d
--- /dev/null
+++ b/evo-tech-ui/src/views/tool/gen/genInfoForm.vue
@@ -0,0 +1,312 @@
+
+
+
+
+
+ 生成模板
+
+
+
+
+
+
+
+
+
+ 前端类型
+
+
+
+
+
+
+
+
+
+ 生成包路径
+
+
+
+
+
+
+
+
+
+
+
+ 生成模块名
+
+
+
+
+
+
+
+
+
+
+
+ 生成业务名
+
+
+
+
+
+
+
+
+
+
+
+ 生成功能名
+
+
+
+
+
+
+
+
+
+
+
+ 生成代码方式
+
+
+
+
+ zip压缩包
+ 自定义路径
+
+
+
+
+
+
+ 上级菜单
+
+
+
+
+
+
+
+
+
+
+
+ 自定义路径
+
+
+
+
+
+
+
+ 最近路径快速选择
+
+
+
+ 恢复默认的生成基础路径
+
+
+
+
+
+
+
+
+
+
+
+
+ 树编码字段
+
+
+
+
+
+
+
+
+
+
+
+
+ 树父编码字段
+
+
+
+
+
+
+
+
+
+
+
+
+ 树名称字段
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 关联子表的表名
+
+
+
+
+
+
+
+
+
+
+
+
+ 子表关联的外键名
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/tool/gen/importTable.vue b/evo-tech-ui/src/views/tool/gen/importTable.vue
new file mode 100644
index 0000000..3ea9532
--- /dev/null
+++ b/evo-tech-ui/src/views/tool/gen/importTable.vue
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/tool/gen/index.vue b/evo-tech-ui/src/views/tool/gen/index.vue
new file mode 100644
index 0000000..9237c30
--- /dev/null
+++ b/evo-tech-ui/src/views/tool/gen/index.vue
@@ -0,0 +1,354 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 生成
+
+
+ 创建
+
+
+ 导入
+
+
+ 修改
+
+
+ 删除
+
+
+
+
+
+
+
+
+ {{(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1}}
+
+
+
+
+
+
+
+
+
+ 预览
+ 编辑
+ 删除
+ 同步
+ 生成代码
+
+
+
+
+
+
+
+
+ 复制
+
+
+
+
+
+
+
+
+
+
diff --git a/evo-tech-ui/src/views/tool/swagger/index.vue b/evo-tech-ui/src/views/tool/swagger/index.vue
new file mode 100644
index 0000000..b8becc6
--- /dev/null
+++ b/evo-tech-ui/src/views/tool/swagger/index.vue
@@ -0,0 +1,15 @@
+
+
+
+
diff --git a/evo-tech-ui/vue.config.js b/evo-tech-ui/vue.config.js
new file mode 100644
index 0000000..8e4e1f7
--- /dev/null
+++ b/evo-tech-ui/vue.config.js
@@ -0,0 +1,130 @@
+'use strict'
+const path = require('path')
+
+function resolve(dir) {
+ return path.join(__dirname, dir)
+}
+
+const CompressionPlugin = require('compression-webpack-plugin')
+
+const name = process.env.VUE_APP_TITLE || '若依管理系统' // 网页标题
+
+const port = process.env.port || process.env.npm_config_port || 8090 // 端口
+
+// vue.config.js 配置说明
+//官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions
+// 这里只列一部分,具体配置参考文档
+module.exports = {
+ // 部署生产环境和开发环境下的URL。
+ // 默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上
+ // 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。
+ publicPath: process.env.NODE_ENV === "production" ? "/" : "/",
+ // 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseUrl的生产环境路径一致)(默认dist)
+ outputDir: 'dist',
+ // 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下)
+ assetsDir: 'static',
+ // 是否开启eslint保存检测,有效值:ture | false | 'error'
+ lintOnSave: process.env.NODE_ENV === 'development',
+ // 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。
+ productionSourceMap: false,
+ // webpack-dev-server 相关配置
+ devServer: {
+ host: '0.0.0.0',
+ port: port,
+ open: true,
+ proxy: {
+ // detail: https://cli.vuejs.org/config/#devserver-proxy
+ [process.env.VUE_APP_BASE_API]: {
+ target: `http://localhost:8081/evo`,
+ changeOrigin: true,
+ pathRewrite: {
+ ['^' + process.env.VUE_APP_BASE_API]: ''
+ }
+ }
+ },
+ disableHostCheck: true
+ },
+ css: {
+ loaderOptions: {
+ sass: {
+ sassOptions: { outputStyle: "expanded" }
+ }
+ }
+ },
+ configureWebpack: {
+ name: name,
+ resolve: {
+ alias: {
+ '@': resolve('src')
+ }
+ },
+ plugins: [
+ // http://doc.ruoyi.vip/ruoyi-vue/other/faq.html#使用gzip解压缩静态文件
+ new CompressionPlugin({
+ cache: false, // 不启用文件缓存
+ test: /\.(js|css|html|jpe?g|png|gif|svg)?$/i, // 压缩文件格式
+ filename: '[path][base].gz[query]', // 压缩后的文件名
+ algorithm: 'gzip', // 使用gzip压缩
+ minRatio: 0.8, // 压缩比例,小于 80% 的文件不会被压缩
+ deleteOriginalAssets: false // 压缩后删除原文件
+ })
+ ],
+ },
+ chainWebpack(config) {
+ config.plugins.delete('preload') // TODO: need test
+ config.plugins.delete('prefetch') // TODO: need test
+
+ // set svg-sprite-loader
+ config.module
+ .rule('svg')
+ .exclude.add(resolve('src/assets/icons'))
+ .end()
+ config.module
+ .rule('icons')
+ .test(/\.svg$/)
+ .include.add(resolve('src/assets/icons'))
+ .end()
+ .use('svg-sprite-loader')
+ .loader('svg-sprite-loader')
+ .options({
+ symbolId: 'icon-[name]'
+ })
+ .end()
+
+ config.when(process.env.NODE_ENV !== 'development', config => {
+ config
+ .plugin('ScriptExtHtmlWebpackPlugin')
+ .after('html')
+ .use('script-ext-html-webpack-plugin', [{
+ // `runtime` must same as runtimeChunk name. default is `runtime`
+ inline: /runtime\..*\.js$/
+ }])
+ .end()
+
+ config.optimization.splitChunks({
+ chunks: 'all',
+ cacheGroups: {
+ libs: {
+ name: 'chunk-libs',
+ test: /[\\/]node_modules[\\/]/,
+ priority: 10,
+ chunks: 'initial' // only package third parties that are initially dependent
+ },
+ elementUI: {
+ name: 'chunk-elementUI', // split elementUI into a single package
+ test: /[\\/]node_modules[\\/]_?element-ui(.*)/, // in order to adapt to cnpm
+ priority: 20 // the weight needs to be larger than libs and app or it will be packaged into libs or app
+ },
+ commons: {
+ name: 'chunk-commons',
+ test: resolve('src/components'), // can customize your rules
+ minChunks: 3, // minimum common number
+ priority: 5,
+ reuseExistingChunk: true
+ }
+ }
+ })
+ config.optimization.runtimeChunk('single')
+ })
+ }
+}