Browse Source

优化

master
陈裕财 2 years ago
parent
commit
b1119dd0df
  1. 5
      .eslintignore
  2. 12
      .gitignore
  3. 9
      .postcssrc.js
  4. 4
      LICENSE
  5. 495
      README.md
  6. 43
      build/utils.js
  7. 293
      build/webpack.base.conf.js
  8. 43
      build/webpack.dev.conf.js
  9. 166
      build/webpack.prod.conf.js
  10. 3
      config/dev.env.js
  11. 64
      config/index.js
  12. 5
      config/m1prod.env.js
  13. 34
      copy/copy.js
  14. 50
      copy/copyDistToStatic.js
  15. 42
      docs/CHANGELOG.md
  16. 183
      docs/CONTRIBUTE.md
  17. 7
      docs/PLANS.md
  18. 183
      docs/backend/API.md
  19. 183
      docs/front/API.md
  20. 184
      docs/front/COMPOENTS.md
  21. BIN
      docs/images/ui-components/big-table-select.jpg
  22. BIN
      docs/images/ui-components/data-range-x-hove-click.jpg
  23. BIN
      docs/images/ui-components/data-range-x-hove.jpg
  24. BIN
      docs/images/ui-components/date-range-x-no-hove.jpg
  25. BIN
      docs/images/ui-components/date-x-hove.jpg
  26. BIN
      docs/images/ui-components/date-x.jpg
  27. BIN
      docs/images/ui-components/edit-table.jpg
  28. BIN
      docs/images/ui-components/hi-query.jpg
  29. BIN
      docs/images/ui-components/index.jpg
  30. BIN
      docs/images/ui-components/left-right-tree-table.jpg
  31. BIN
      docs/images/ui-components/query-param.jpg
  32. BIN
      docs/images/ui-components/select-origin.jpg
  33. BIN
      docs/images/ui-components/select-tag.jpg
  34. BIN
      docs/images/ui-components/select-user.jpg
  35. BIN
      docs/images/ui-components/select-x-hove.jpg
  36. BIN
      docs/images/ui-components/select-x-no-hove.jpg
  37. BIN
      docs/images/ui-components/table-column-configs.jpg
  38. BIN
      docs/images/ui-components/table-mng.jpg
  39. BIN
      docs/images/ui-components/tree-table.jpg
  40. 31
      index.html
  41. 122
      package.json
  42. 1
      src/App.vue
  43. 40
      src/api/article.js
  44. 33
      src/api/branch.js
  45. 283
      src/api/common/code.js
  46. 125
      src/api/itemOption.js
  47. 126
      src/api/login.js
  48. 11
      src/api/login/user.js
  49. 46
      src/api/mdp/arc/archive.js
  50. 26
      src/api/mdp/arc/archiveAttachment.js
  51. 28
      src/api/mdp/arc/category.js
  52. 34
      src/api/mdp/arc/image.js
  53. 32
      src/api/mdp/arc/imageCategory.js
  54. 36
      src/api/mdp/arc/tag.js
  55. 30
      src/api/mdp/arc/tagCategory.js
  56. 11
      src/api/mdp/attendance/attendace.js
  57. 22
      src/api/mdp/form/formData.js
  58. 4
      src/api/mdp/form/formDataTag.js
  59. 24
      src/api/mdp/form/formDef.js
  60. 4
      src/api/mdp/form/formDefTag.js
  61. 4
      src/api/mdp/form/formField.js
  62. 22
      src/api/mdp/form/formQx.js
  63. 4
      src/api/mdp/form/formView.js
  64. 9
      src/api/mdp/mallm/shop/shop.js
  65. 9
      src/api/mdp/mallm/shop/shopLocation.js
  66. 29
      src/api/mdp/meta/category.js
  67. 29
      src/api/mdp/meta/item.js
  68. 38
      src/api/mdp/meta/itemOption.js
  69. 4
      src/api/mdp/sms/smsSign.js
  70. 4
      src/api/mdp/sms/smsTemplate.js
  71. 29
      src/api/mdp/sys/branch.js
  72. 39
      src/api/mdp/sys/code.js
  73. 35
      src/api/mdp/sys/codeDetail.js
  74. 27
      src/api/mdp/sys/codeSecond.js
  75. 28
      src/api/mdp/sys/dept.js
  76. 25
      src/api/mdp/sys/deptExtinfo.js
  77. 25
      src/api/mdp/sys/deptMech.js
  78. 28
      src/api/mdp/sys/operDataTrail.js
  79. 33
      src/api/mdp/sys/post/post.js
  80. 25
      src/api/mdp/sys/qx.js
  81. 29
      src/api/mdp/sys/role.js
  82. 28
      src/api/mdp/sys/roleQx.js
  83. 24
      src/api/mdp/sys/thirdPartyAccount.js
  84. 33
      src/api/mdp/sys/user.js
  85. 25
      src/api/mdp/sys/userExtinfo.js
  86. 31
      src/api/mdp/sys/userRole.js
  87. 30
      src/api/mdp/workflow/biz/bizModel.js
  88. 31
      src/api/mdp/workflow/de/model.js
  89. 25
      src/api/mdp/workflow/hi/comment.js
  90. 25
      src/api/mdp/workflow/hi/procinst.js
  91. 29
      src/api/mdp/workflow/re/actAssignee.js
  92. 25
      src/api/mdp/workflow/re/deployment.js
  93. 34
      src/api/mdp/workflow/re/procdef.js
  94. 30
      src/api/mdp/workflow/re/procdefParames.js
  95. 34
      src/api/mdp/workflow/re/procdefParamesTemplate.js
  96. 34
      src/api/mdp/workflow/re/procdefTag.js
  97. 20
      src/api/mdp/workflow/ru/execution.js
  98. 30
      src/api/mdp/workflow/ru/procinstFormData.js
  99. 33
      src/api/mdp/workflow/ru/procinstParames.js
  100. 34
      src/api/mdp/workflow/ru/procinstTag.js

5
.eslintignore

@ -1,3 +1,8 @@
build/*.js build/*.js
config/*.js config/*.js
src/assets src/assets
node_modules/
/static/
/zTree_v3/
/*.js/
/dist/

12
.gitignore

@ -4,9 +4,10 @@ dist/
npm-debug.log* npm-debug.log*
yarn-debug.log* yarn-debug.log*
yarn-error.log* yarn-error.log*
**/*.log
test/unit/coverage
test/e2e/reports
tests/**/coverage/
tests/e2e/reports
selenium-debug.log selenium-debug.log
# Editor directories and files # Editor directories and files
@ -16,5 +17,12 @@ selenium-debug.log
*.ntvs* *.ntvs*
*.njsproj *.njsproj
*.sln *.sln
*.local
package-lock.json package-lock.json
yarn.lock
/bak/
.env.development
config/index.js

9
.postcssrc.js

@ -1,10 +1,17 @@
// https://github.com/michael-ciniawsky/postcss-load-config // https://github.com/michael-ciniawsky/postcss-load-config
module.exports = { module.exports = {
"autoprefixer": {
"grid": true
},
"plugins": { "plugins": {
"postcss-import": {}, "postcss-import": {},
"postcss-url": {}, "postcss-url": {},
// to edit target browsers: use "browserslist" field in package.json // to edit target browsers: use "browserslist" field in package.json
"autoprefixer": {}
"autoprefixer": {},
"cssnano":{
autoprefixer:false,
"postcss-zindex":false,
}
} }
} }

4
LICENSE

@ -1,6 +1,6 @@
MIT License MIT License
Copyright (c) 2016-present taylorchen709
Copyright (c) 2018-present chenyc
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal
@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
SOFTWARE.

495
README.md

@ -1,185 +1,418 @@
# To start
<p align="center">
<a href="https://maimengcloud.com/" target="_blank">
<img src="https://maimengcloud.com/img/728c2dec5c1055349455.png" width="400" alt="logo">
</a>
</p>
<p align="center">
<strong>多功能、高效率、低代码的前后端一体化、智能化的开发工具</strong>
</p>
<p align="center">
<a target="_blank" href="https://gitee.com/qingqinkj/mdp-sys-ui-web">
<img src='https://gitee.com/qingqinkj/mdp-sys-ui-web/badge/star.svg?theme=gvp' alt='gitee star'/>
</a>
<a target="_blank" href="https://github.com/qingqinkj218/mdp-sys-ui-web">
<img src="https://img.shields.io/github/stars/qingqinkj218/mdp-sys-ui-web.svg?style=social" alt="github star"/>
</a>
</p>
<p align="center">
👉 <a target="_blank" href="https://maimengcloud.com/#/openCommunity">https://maimengcloud.com/#/openCommunity</a> 👈
</p>
## 📢 简介
**mdp-sys-ui-web**旨在为企业开发管理类的业务系统提供一个模板工程,该模板工程具有高效率、低代码、功能丰富等特点。企业可以在该工程之上,加入更多其它业务功能;也可以以该工程作为模板,创建新的工程,用于开发其它业务。使用该工程构建应用,您不用考虑多租户、登录、统一认证中心、权限、菜单管理、系统管理、公共组件、公共api、代码冗余、数据字典、图片库、文件库、智能表单、工作流、微服务互相调用、全局跟踪定位bug、多主键crud,复杂sql查询等各种问题,这些都内置其中了,轻松搞定。
如果非要给你一个使用mdp的理由:那就是代码大量减少、开发so easy
**mdp-sys-ui-web**作为独立前端项目,企业可以单独使用该工程,另外单独开发后端系统;也可以直接使用**唛盟团队** 配套开源的后端系统[mdp-sys-backend](https://gitee.com/qingqinkj/mdp-sys-backend)作为后端服务。
唛盟mdp更多内容,请点击👉[mdp-core](https://gitee.com/qingqinkj/mdp-core) 👈
## 💪 内置功能
这是一个开发工具项目,主要帮助程序员自动生成增删改查代码,由广州擎勤网络科技有限公司研发。
```
角色权限
├── 角色管理 => 角色crud、分配菜单、分配权限
├── 权限定义 => 权限crud
├── 菜单管理 => 菜单(按钮)crud、分配菜单(按钮)给角色、
├── 模块管理 => 模块crud
├── 已开模块 => 查看企业(个人)已开通的模块
组织管理
├── 机构管理 => 企业信息维护、管理员维护、账户信息维护、企业产品维护、
├── 用户管理 => 用户的crud、分配岗位、分配部门、重置密码、邀请
├── 部门管理 => 部门curd、分配岗位到部门、查看部门用户
├── 公司管理 => 公司curd(超级管理员使用)
├── 岗位管理 => 岗位curd、分配角色到岗位、岗位人员查看
├── 注销审核 => 审核用户的注销申请
平台管理
├── 平台配置 => 配置平台的信息
├── 个人认证审核 => 审核个人的实名认证请求
├── 企业认证审核 => 审核企业的实名认证请求
元数据管理
├── 字典管理 => 数据字典的crud
├── 列表维护 => 下拉列表数据项的crud
├── 参数定义 => 公共系统参数的crud
审批中心
├── 待执行 => 我的待执行任务查询、任务执行
├── 日历任务 => 我的待执行任务查询、任务执行
├── 发起流程 => 发起流程
审批监控
├── 我发起的流程 => 查询我发起的流程
├── 我监控的流程 => 查询我监控的流程、催办
├── 我参与的流程 => 查询我参与过的流程
流程模型
├── 流程编辑器 => 在线流程编辑器
├── 模型发布 => 流程模型发布
├── 模型设置 => 设置流程与智能表单的关联、模型的启动条件、审批人、权限等
智能表单(低代码)
├── 表单中心 => 智能表单的门户
├── 表单设计 => 进行智能表单设计、权限设置等
├── 数据录入、查询 => 查询表单已录入的数据
```
## 组件库[mdp-ui](/src/components/mdp-ui)
mdp封装了几十个ui组件,使用mdp-ui与不使用mdp-ui的区别:写100行代码还是写1行代码的区别,代码量的减少立竿见影
- [mdp-ui](/src/components/mdp-ui)
mdp的核心组件,该组件库为纯前端页面组件,无须配置任何后端api接口即可正确运行
- [mdp-ui-ext](/src/components/mdp-ui-ext)
基于mdp-ui扩展的带有对接后台api业务加载能力的业务组件
>⚠️注意:[mdp-ui组件效果预览](https://maimengcloud.com/sys/m1/#/mdp/form/index)
### ⚙快速开始
>找到[main.js](/src/main.js) 添加下面代码
```js
//mdp-ui 基础组件
import MdpComponents from '@/components/mdp-ui/index.js'
Vue.use(MdpComponents)
//mdp-ui-ext拓展的组件
import MdpUiExtComponents from '@/components/mdp-ui-ext/index.js'
Vue.use(MdpUiExtComponents)
// 公共api
import mdp from "@/api/mdp_pub";
Vue.prototype.$mdp = mdp;
```
` 前端`
### [mdp-dialog](/src/components/mdp-ui/mdp-dialog)
弹框,可以把任意页面装配成弹框,无须定义多余的变量及函数
- 相对于el-dialog来说,要使用弹窗,事情还真不少。需要定义visible变量,定义showDialog,closeDialog两个函数,最关键一点是如果要父页面传递参数到窗口内组件,还得在父页面定义一个变量,通过props属性传递。相当麻烦。如果某个功能弹窗特别多,会有一堆的控制弹窗的变量及函数,非常恶心。mdp-dialog则完全解决上述问题。
# 前端开发工具
node.js、webpacck、npm、eclipse、svn、安卓、ios等
# 前端ui-pc端
vue.js、element-ui、axios
### [mdp-table](/src/components/mdp-ui/mdp-table)
表格,内置了增、删、改、查、高级查询、重置查询、导出、列配置、分页、批量编辑等功能、内置了对按钮权限的控制机制
功能非常强大,懂的都懂。
# 前端ui-手机端
vue.js、vux、weui、weex
- 综合管理
![综合管理表格](/docs/images/ui-components/table-mng.jpg)
- 可编辑表格
![可编辑表格](/docs/images/ui-components/edit-table.jpg)
- 可编辑-树状表格
![可编辑-树状表格](/docs/images/ui-components/left-right-tree-table.jpg)
# 前端ui-微信公众号端
vue.js、vux
### [mdp-select](/src/components/mdp-ui/mdp-select)
下拉列表,支持对数据字典、元数据的引用,支持对任意小表表格数据的引用,支持参数化加载后台数据,对后台加载的数据进行缓存
![mdp-select](/docs/images/ui-components/select-origin.jpg)
# 前端ui-微信小程序
微信开发工具
### [mdp-select-table](/src/components/mdp-ui/mdp-select-table)
超大表格下拉列表,与mdp-select相比,该组件具有分页查询功能
![分页选择表格数据](/docs/images/ui-components/big-table-select.jpg)
### [mdp-select-user](/src/components/mdp-ui-ext/mdp-select-user)
用户选择下拉列表,与mdp-select-table组件类似,仅仅针对用户的头像做了特殊处理
![用户选择](/docs/images/ui-components/select-user.jpg)
# 前端文件结构
* build - webpack config files
* config - webpack config files
* dist - build
* src -your app
* api
* assets
* common
* components - your vue components
* mock
* styles
* views - your pages
* vuex
* App.vue
* main.js - main file
* routes.js
* static - static assets
### [mdp-input](/src/components/mdp-ui/mdp-input)
输入框
# 前端web开发工具安装步骤 首次安装执行 1-6,添加工程执行 7-12
## 1 安装node.js 从网络下载最新稳定版本
node-v8.9.1-x64
### [mdp-date](/src/components/mdp-ui/mdp-date)
日期
## 2 安装 npm
npm install npm@latest -g
### [mdp-date-range](/src/components/mdp-ui/mdp-date-range)
区间日期
## 3 设置淘宝镜像及安装淘宝镜像命令cnpm (如有必要)
npm config set registry https://registry.npm.taobao.org
### [mdp-number](/src/components/mdp-ui/mdp-number)
数字输入
npm install -g cnpm --registry=https://registry.npm.taobao.org
### [mdp-hi-query](/src/components/mdp-ui/mdp-hi-query)
高级查询,可以由用户自定义任意复杂的查询条件
![高级查询](/docs/images/ui-components/hi-query.jpg)
## 4 通过镜像下载 node-sass(如有必要)
npm install -g node-sass --registry=https://registry.npm.taobao.org
### [mdp-table-configs](/src/components/mdp-ui/mdp-table-configs)
表格配置,用于控制表格的列显示与否
![表格配置列显示隐藏](/docs/images/ui-components/table-column-configs.jpg)
## 5 安装vue 命令行工具 (如有必要)
npm install -g vue-cli
### [mdp-transfer](/src/components/mdp-ui/mdp-transfer)
穿梭框
## 6 设置eclipse 关联 .vue文件
Window -> Preferences -> General -> Editors -> File Associations -> Add -> *.vue -> Add -> HTML Editor / JS Editor / CSS Editor
### [mdp-cate-tree](/src/components/mdp-ui-ext/mdp-cate-tree)
文档、文章目录树
## 7 用eclipse 从svn下载工程项目
svn地址 http://203.195.131.73:8085/svn/
如工程 mdp-arc-web
### [mdp-expand](/src/components/mdp-ui-ext/mdp-expand)
智能表单相关组件
## 8 进入工程 目录 (假设工程在 D:\workspace\mdp-arc-web)
cd /D D:\workspace\mdp-arc-web
### [mdp-ext-infos](/src/components/mdp-ui-ext/mdp-ext-infos)
自动扩展字段信息
## 9 安装工程依赖包
D:\workspace\mdp-arc-web > npm install
## 10 开发调试工程
npm dev
## 11 编译
npm build
### [mdp-image](/src/components/mdp-ui-ext/mdp-image)
图片库,图片的增删改查、上传、下载
## 12 拷贝编译后文件到后台工程(用于与后台工程一起打成jar包发布)(如有必要)
npm copyToStatic
### [mdp-select-image](/src/components/mdp-ui-ext/mdp-select-image)
图片选择器,支持图片的上传下载、上传后的统一管理、共享
### [mdp-select-dept](/src/components/mdp-ui-ext/mdp-select-dept)
部门选择,支持树状机构,异步加载,支持分页查询,任意大数据量
### [mdp-select-att](/src/components/mdp-ui-ext/mdp-select-att)
附件库,支持附件的上传下载、上传后的统一管理、共享
`服务端`
# 服务端开发工具
jdk8、eclipse oxygen、svn、maven、oracle
### [mdp-select-cate](/src/components/mdp-ui-ext/mdp-select-cate)
文档、文章目录树选择器
# 服务端编程框架
spring boot 1.5、spring mvc 4、spring cloud 1.5、spring security 4、logback 1、mybatis 3、thymeleaf 3
### [mdp-select-tag](/src/components/mdp-ui-ext/mdp-select-tag)
标签库,支持标签的统一管理、共享
# 服务端安装开发工具步骤 首次安装执行 1-3,开发打包部署执行4-5
## 1 安装开发工具
### 1.0 安装jdk8, elcipse oxygen, svn 官网下载64位版本
jdk-8u121-windows-x64
eclipse-jee-oxygen-3-win32-x86_64
TortoiseSVN-1.9.7.27907-x64
### 1.1 配置eclipse运行内存
在eclipse.ini中添加下面几个参数
-Xms512m
-Xmx1024m
### [mdp-meta-item](/src/components/mdp-ui-ext/[mdp-meta-item)
元数据管理库、支持元数据的crud
### 1.2 从eclipse marketplace 下载版本控制插件工具svn
eclipse -> help -> Eclipse marketplace,搜索svn,安装subclipse4.2.3
### [mdp-meta-option](/src/components/mdp-ui-ext/mdp-meta-option)
元数据管理库-列表数据组件、支持列表数据的crud
#### 1.2.1 设置eclipse svn 忽略的文件规则 */logs/* */target/* */node_modules/*
Window -> Preferences -> Team -> Ignored Resource -> Add pattern -> */logs/*
Window -> Preferences -> Team -> Ignored Resource -> Add pattern -> */target/*
Window -> Preferences -> Team -> Ignored Resource -> Add pattern -> */node_modules/*
### [mdp-rich-text](/src/components/mdp-ui-ext/mdp-rich-text)
富文本编辑器,整合了mdp-select-image作为插件
### 1.3 设置eclipse工程编码为utf-8
Window -> Preferences -> General -> Content Types -> java Archive / java class path / Text -> utf-8
Window -> Preferences -> General -> Workspace -> Text file encoding / UTF-8
## 🔃 api
- [api](/src/api/)
业务api,哪里用到哪里就单独引入
### [api/mdp_pub/index.js](/src/api/mdp_pub/index.js)
公共api总入口,注册到vue全局函数中,可以在页面中任意地方直接使用,公共api总入口,如需要添加公共api,请在此文件添加
### [mdp_api_base.js](/src/api/mdp_pub/mdp_api_base.js)
为mdp框架核心的与后端交互的api,自动注册为全局公共函数,可通过$mdp.xxx调用,可改,但不要新增,删除任何一个api.
### [mdp_api_ext.js](/src/api/mdp_pub/mdp_api_ext.js)
为mdp扩展的组件与后端交互的api,自动注册为全局公共函数,可通过$mdp.xxx调用,可改,但不要新增,删除任何一个api.
### [mdp_api_biz.js](/src/api/mdp_pub/mdp_api_biz.js)
为mdp扩展的组件与后端交互的api,自动注册为全局公共函数,可通过$mdp.xxx调用,可改,可新增必要的api.
### 1.4 设置eclipse jdk
Window -> Preferences -> Java -> Installed JREs -> 选择一条 -> Edit -> C:\Program Files\Java\jdk1.8.0_121(假设jdk安装目录,注意不是jre目录)
```html
<el-button @click="$mdp.xxxApi()"/>
```
```js
this.$mdp.xxxApi()
```
- [login](/src/api/login.js)
登录相关api
## ↕️ 指令
- [v-adaptive](./directive/el-table/index.js)
让表格自动适应,表格底部始终保持距离视窗底部一定距离(默认 30px)
```
<el-table v-adaptive="{bottomOffset:30}"/>
```
### 1.5 设置eclipse 检查项,提升编译速度
Window -> Preferences -> Validation -> 找到build列 -> 只保留 Classpath Dependance Validator 选中状态
## 2 下载代码生成器mdp-dev
### 2.0 从svn下载mdp-dev工程,mdp自研发的开发工具
svn 地址为 http://203.195.131.73:8085/svn/mdp/trunk/mdp-dev
### 2.1 使用mdp-dev生成crud代码(开发业务功能时使用,先设计表结构,再生成代码)
使用/mdp-dev/src/test/java/com/qqkj/mdp/dev/TestCodegenService.java 进行代码生成
## 3 maven 设置
### 3.0 设置maven私服 用户密码
将/mdp-dev/settings.xml拷贝到 C:\Users\Administrator\.m2目录下
## ⌨ 技术栈
### 3.1 安装本地jar包到私服(如果有本地jar包,目前有orcale的驱动包已经安装)
私服登录地址 http://203.195.131.73:8081/nexus 用户名、密码 admin/admin123
vue全家桶 + element-ui + axios
## 4 应用项目开发
### 4.0 从svn下载应用工程项目
svn 地址为 http://203.195.131.73:8085/svn/应用产品对应目录
## 💻 样例项目
### 4.1 从mven私服下载依赖jar包
在 Eclipse 工程目录鼠标右键 -> Maven -> Update Project
- [系统管理] (https://maimengcloud.com/sys/m1/)
- [协同办公] (https://maimengcloud.com/oa/m1/)
- [项目管理] (https://maimengcloud.com/xm/m1/)
- [流程管理] (https://maimengcloud.com/workflow/m1/)
### 4.2 运行工程项目
在src/main/java 中找到 ***Application。java -> 鼠标右键 -> Run as -> Java Application
或者
在src/test/java 中找到 ***Application。java -> 鼠标右键 -> Run as -> Java Application
## ⚙ 快速开始
## 5 打包部署
### 5.0 工程打jar包
在 Eclipse 工程目录鼠标右键 -> Run as -> Maven Install
>⚠️注意:该项目使用 element-ui@2.3.0+ 版本,所以最低兼容 vue@2.5.0+
### 5.1 将打包好的jar包上传maven私服
在 Eclipse 工程目录鼠标右键 -> Run as -> Maven Buil -> deploy
### 前序准备
- 你的本地环境需要安装 [node](http://nodejs.org/) 和 [git](https://git-scm.com/)。我们的技术栈基于 [ES2015+](http://es6.ruanyifeng.com/)、[vue](https://cn.vuejs.org/index.html)、[vuex](https://vuex.vuejs.org/zh-cn/)、[vue-router](https://router.vuejs.org/zh-cn/) and [element-ui](https://github.com/ElemeFE/element),提前了解和学习这些知识会对使用本项目有很大的帮助。
- 该项目属于网页版前端项目,所有api由 [mdp-sys-backend](https://gitee.com/qingqinkj/mdp-sys-backend)提供,请下载该项目
- 代码生成器下载 [mdp-code-generator](https://gitee.com/qingqinkj/mdp-code-generator)
``` bash
# install dependencies
cnpm install
### 开发
```bash
# 克隆项目
git clone https://gitee.com/qingqinkj/mdp-sys-ui-web.git
# serve with hot reload at localhost:8081
cnpm run dev
# 安装依赖
npm install
   
# 建议不要用cnpm安装 会有各种诡异的bug 可以通过如下操作解决 npm 下载速度慢的问题
npm install --registry=https://registry.npm.taobao.org
# build for production with minification
cnpm run build
# 启动服务
npm run dev
```
浏览器访问 http://localhost:8015
#### 登录相关
登录api,对接后台接口有两种方式,分别为对接统一认证中心、对接mdp-sys-backend
默认对接mdp-sys-backend中的登录模块,如果想切换,更改[mdp_config.js中的getOauth2LoginContext函数即可](src/api/mdp_pub/mdp_config.js)
- 对接统一认证中心进行登录
```js
getOauth2LoginContext:function(){
return "oauth2client"
}
```
- 对接mdp-sys-backend进行登录
```js
getOauth2LoginContext:function(){
return "sys"
}
```
### 发布
```bash
# 构建测试环境
npm run build:sit
# 构建生成环境
npm run build:prod
``` ```
` 其它一些常用命令 `
# 清除缓存
npm cache clean --force
# npm国内代理镜像服务器 镜像使用方法(三种办法任意一种都能解决问题,建议使用第三种,将配置写死,下次用的时候配置还在):
npm config set registry https://registry.npm.taobao.org
npm info underscore (如果上面配置正确这个命令会有字符串response)
### 🔔️ 特别提醒
mdp 3.0 版本已经开始规划更新了,尽请期待新版本的诞生吧
### 🗒️ 版本更新日志
升级前必看:[CHANGELOG.md](/docs/CHANGELOG.md)
## 🚀 基于mdp框架拓展的开源项目
>⚠️ 注意:以下拓展的框架或者子系统,由mdp开源团队基于项目经验进行总结抽取,可用可不用,可以以jar包方式合并到现有工程进行发布,也可单独发布成单体应用、微服务应用
- 第三方支付框架,整合了微信支付、支付宝支付、paypal支付
1. [mdp-tpa-pay-backend](https://gitee.com/qingqinkj/mdp-tpa-pay-backend) 后端
- 即时通讯框架
1. [mdp-im-uniapp](https://gitee.com/qingqinkj/mdp-im-uniapp) 前端app
2. [mdp-im-web](https://gitee.com/qingqinkj/mdp-im-web) 前端浏览器
3. [mdp-im-backend](https://gitee.com/qingqinkj/mdp-im-backend) 后端
- 统一认证中心框架
1. [mdp-sys-ui-web](https://gitee.com/qingqinkj/mdp-sys-ui-web) 前端
2. [mdp-oauth2-backend](https://gitee.com/qingqinkj/mdp-oauth2-backend) 后端
3. [mdp-sys-backend](https://gitee.com/qingqinkj/mdp-sys-backend) 后端
- 微服务框架
1. [mdp-cloud-backend](https://gitee.com/qingqinkj/mdp-cloud-backend) 后端
- 工作流管理子系统
1. [mdp-workflow-ui-web](https://gitee.com/qingqinkj/mdp-workflow-ui-web) 前端
2. [mdp-workflow-backend](https://gitee.com/qingqinkj/mdp-workflow-backend) 后端
- 智能表单子系统
1. [mdp-form-ui-web](https://gitee.com/qingqinkj/mdp-form-ui-web) 前端
2. [mdp-form-backend](https://gitee.com/qingqinkj/mdp-form-backend) 后端
- 内容管理子系统
1. [mdp-arc-ui-web](https://gitee.com/qingqinkj/mdp-arc-ui-web) 前端
2. [mdp-arc-backend](https://gitee.com/qingqinkj/mdp-arc-backend) 后端
- 短信子系统
1. [mdp-sms-ui-web](https://gitee.com/qingqinkj/mdp-sms-ui-web) 前端
2. [mdp-sms-backend](https://gitee.com/qingqinkj/mdp-sms-backend) 后端
- 项目管理子系统
1. [xm-crowd-ui-web](https://gitee.com/qingqinkj/xm-crowd-ui-web) 前端众包
2. [xm-ui-web](https://gitee.com/qingqinkj/xm-ui-web) 前端管理端
3. [xm-backend](https://gitee.com/qingqinkj/xm-backend) 后端
- 财务管理子系统
1. [ac-core-ui-web](https://gitee.com/qingqinkj/ac-core-ui-web) 前端管理端
2. [ac-backend](https://gitee.com/qingqinkj/ac-backend) 后端
## 📝 常见问题、操作说明
- [前端基础组件](https://gitee.com/qingqinkj/mdp-modules/blob/master/docs/COMPONENTS.md)
- [前端扩展组件](https://gitee.com/qingqinkj/mdp-modules/blob/master/docs/COMPONENTS.md)
- [前端公共api](https://gitee.com/qingqinkj/mdp-modules/blob/master/docs/COMPONENTS.md)
- [后端公共api](https://gitee.com/qingqinkj/mdp-modules/blob/master/docs/COMPONENTS.md)
- [文档主页](https://maimengcloud.com/#/openCommunity/mdp)
- [FQA](https://maimengcloud.com/#/openCommunity/fqa)
## 💯 实践案例
1. [系统管理](https://maimengcloud.com/sys/m1/)
2. [协同办公](https://maimengcloud.com/oa/m1/)
3. [唛盟众包-网页](https://maimengcloud.com)
3. [项目管理-网页](https://maimengcloud.com/xm/m1/)
4. 项目管理-小程序
<img src="https://maimengcloud.com/img/77639c6907935d3b699f.png" alt="drawing" width="200"/>
5. [流程管理](https://maimengcloud.com/workflow/m1/)
## 🔨贡献指南
### 贡献须知
mdp 作为开源项目,离不开社区的支持,欢迎任何人修改和提出建议。贡献无论大小,你的贡献会帮助背后成千上万的使用者以及开发者,你做出的贡献也会永远的保留在项目的贡献者名单中,这也是开源项目的意义所在!
为了保证项目代码的质量与规范,以及帮助你更快的了解项目的结构,请在贡献之前阅读:
- [mdp 贡献说明](https://gitee.com/qingqinkj/mdp-core/blob/master/docs/CONTRIBUTE.md)
### 贡献步骤
1. Fork 本仓库。
2. Fork 后会在你的帐号下多了一个和本仓库一模一样的仓库,把你帐号的仓库 clone 到本地。
注意替换掉链接中的`分支名`和`用户名`。
如果是贡献代码,分支名填 `dev`;如果是贡献文档,分支名填 `docs`
```bash
git clone -b 分支名 https://gitee.com/用户名/mdp-sys-ui-web.git
```
3. 修改代码/文档,修改后提交上来。
```bash
# 把修改的文件添加到暂存区
git add .
# 提交到本地仓库,说明你具体做了什么修改
git commit -m '填写你做了什么修改'
# 推送到远程仓库,分支名替换成 dev 或者 docs
git push origin 分支名
```
4. 登录你的仓库,然后会看到一条 PR 请求,点击请求合并,等待管理员把你的代码合并进来。
### 项目分支说明
| 分支 | 说明 |
|--------|-----------------------------------------------|
| master | 主分支,受保护分支,此分支不接受 PR。在 dev 分支后经过测试没问题后会合并到此分支。 |
| dev | 开发分支,接受 PR,PR 请提交到 dev 分支。 |
## 🐞 交流讨论 、反馈 BUG、提出建议等
1. 快扫描下方左侧微信二维码和我们一起交流讨论吧!(备注 唛盟-mdp 进群)
<img src="https://maimengcloud.com/img/5ff0a747a4a1f14cf6a5.png" alt="drawing" width="200"/>
2. 唛盟微信公众号查看一些基础教程
<img src="https://maimengcloud.com/img/f3f91bac3a3735264a66.png" alt="drawing" width="200"/>
3. 反馈 BUG、提出建议,欢迎新建:[issues](https://gitee.com/qingqinkj/mdp-sys-ui-web/issues),开发人员会不定时查看回复。
4. 参与贡献,请查看[贡献指南](#🔨贡献指南)。
# Browser support
## 💲 打赏
**感谢所有赞赏以及参与贡献的小伙伴,你们的支持是我们不断更新前进的动力!微信扫一扫,赏杯咖啡呗!**
<img src="https://maimengcloud.com/img/97094cc1553fe0b0046c.jpg" alt="drawing" width="300"/>
Modern browsers and IE 10+.
## 🔔 精品项目推荐
# License
[MIT](http://opensource.org/licenses/MIT)
| 项目名称 | 项目地址 | 项目介绍 |
|----------------------|---------------------------------------------------------------------------------------------|--------------------------------------------------|
| SpringBoot_v2 | [https://gitee.com/bdj/SpringBoot_v2](https://gitee.com/bdj/SpringBoot_v2) - | 基于springboot的一款纯净脚手架 |

43
build/utils.js

@ -1,7 +1,7 @@
'use strict' 'use strict'
const path = require('path') const path = require('path')
const config = require('../config') const config = require('../config')
const ExtractTextPlugin = require('extract-text-webpack-plugin')
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const packageConfig = require('../package.json') const packageConfig = require('../package.json')
exports.assetsPath = function (_path) { exports.assetsPath = function (_path) {
@ -15,6 +15,13 @@ exports.assetsPath = function (_path) {
exports.cssLoaders = function (options) { exports.cssLoaders = function (options) {
options = options || {} options = options || {}
const threadLoader = {
loader: 'thread-loader',
options: {
sourceMap: options.sourceMap
}
}
const cssLoader = { const cssLoader = {
loader: 'css-loader', loader: 'css-loader',
options: { options: {
@ -31,7 +38,7 @@ exports.cssLoaders = function (options) {
// generate loader string to be used with extract text plugin // generate loader string to be used with extract text plugin
function generateLoaders (loader, loaderOptions) { function generateLoaders (loader, loaderOptions) {
const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]
let loaders = options.usePostCSS ? [ cssLoader, postcssLoader] : [ cssLoader]
if (loader) { if (loader) {
loaders.push({ loaders.push({
@ -44,14 +51,26 @@ exports.cssLoaders = function (options) {
// Extract CSS when that option is specified // Extract CSS when that option is specified
// (which is the case during production build) // (which is the case during production build)
if (options.extract) {
return ExtractTextPlugin.extract({
use: loaders,
fallback: 'vue-style-loader',
publicPath:'../'
})
let loaderss=[];
if (options.extract) {
loaderss=[
threadLoader,
{
loader: MiniCssExtractPlugin.loader,
options: {
publicPath:'../'
},
},
]
loaderss=loaderss.concat(loaders)
return loaderss
} else { } else {
return ['vue-style-loader'].concat(loaders)
loaderss=[
threadLoader,
'vue-style-loader'
]
loaderss=loaderss.concat(loaders)
return loaderss
} }
} }
@ -76,7 +95,8 @@ exports.styleLoaders = function (options) {
const loader = loaders[extension] const loader = loaders[extension]
output.push({ output.push({
test: new RegExp('\\.' + extension + '$'), test: new RegExp('\\.' + extension + '$'),
use: loader
use: loader,
exclude:/node_modules/
}) })
} }
@ -90,8 +110,7 @@ exports.createNotifierCallback = () => {
if (severity !== 'error') return if (severity !== 'error') return
const error = errors[0] const error = errors[0]
const filename = error.file && error.file.split('!').pop()
const filename = error.file && error.file.split('!').pop()
notifier.notify({ notifier.notify({
title: packageConfig.name, title: packageConfig.name,
message: severity + ': ' + error.name, message: severity + ': ' + error.name,

293
build/webpack.base.conf.js

@ -2,101 +2,218 @@
const path = require('path') const path = require('path')
const utils = require('./utils') const utils = require('./utils')
const config = require('../config') const config = require('../config')
const webpack = require('webpack')
const pkg = require('../package.json');
const vueLoaderConfig = require('./vue-loader.conf') const vueLoaderConfig = require('./vue-loader.conf')
const VueLoaderPlugin = require('vue-loader/lib/plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
const threadLoader = require('thread-loader');
threadLoader.warmup({
// pool options, like passed to loader options
// must match loader options to boot the correct pool
}, [
// modules to load
// can be any module, i. e.
'vue-loader',
'css-loader',
'babel-loader',
'babel-preset-es2015',
'sass-loader',
]);
var threadLoaderConfig={
loader: "thread-loader",
// 有同样配置的 loader 会共享一个 worker 池(worker pool)
options: {
// 产生的 worker 的数量,默认是 cpu 的核心数
//workers: 8,
// 一个 worker 进程中并行执行工作的数量
// 默认为 20
//workerParallelJobs: 20,
// 额外的 node.js 参数
//workerNodeArgs: ['--max-old-space-size', '1024'],
// 闲置时定时删除 worker 进程
// 默认为 500ms
// 可以设置为无穷大, 这样在监视模式(--watch)下可以保持 worker 持续存在
//poolTimeout: 2000,
function resolve (dir) {
return path.join(__dirname, '..', dir)
// 池(pool)分配给 worker 的工作数量
// 默认为 200
// 降低这个数值会降低总体的效率,但是会提升工作分布更均一
//poolParallelJobs: 200,
// 池(pool)的名称
// 可以修改名称来创建其余选项都一样的池(pool)
name: "my-pool"
}
}
const publicCssLoaders=process.env.NODE_ENV === 'production'?[{loader:MiniCssExtractPlugin.loader,options:{publicPath:'../'}},'css-loader','postcss-loader']:[ 'style-loader','css-loader','postcss-loader']
function resolve(dir) {
return path.join(__dirname, '..', dir)
} }
const createLintingRule = () => ({ const createLintingRule = () => ({
test: /\.(js|vue)$/,
loader: 'eslint-loader',
enforce: 'pre',
include: [resolve('src'), resolve('test')],
options: {
formatter: require('eslint-friendly-formatter'),
emitWarning: !config.dev.showEslintErrorsInOverlay
}
test: /\.(js|vue)$/,
loader: 'eslint-loader',
enforce: 'pre',
include: [resolve('src'), resolve('test')],
options: {
formatter: require('eslint-friendly-formatter'),
emitWarning: !config.dev.showEslintErrorsInOverlay
}
}) })
module.exports = { module.exports = {
context: path.resolve(__dirname, '../'),
entry: {
app: './src/main.js'
},
output: {
path: config.build.assetsRoot,
filename: '[name].js',
publicPath: process.env.NODE_ENV === 'production'
? config.build.assetsPublicPath
: config.dev.assetsPublicPath
},
resolve: {
extensions: ['.js', '.vue', '.json'],
alias: {
'vue$': 'vue/dist/vue.esm.js',
'@': resolve('src'),
}
},
module: {
rules: [
...(config.dev.useEslint ? [createLintingRule()] : []),
{
test: /\.vue$/,
loader: 'vue-loader',
options: vueLoaderConfig
},
{
test: /\.js$/,
loader: 'babel-loader?cacheDirectory',
exclude: /node_modules(?!\/quill-image-drop-module|quill-image-resize-module)/,
include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')]
},
{
test: /\.svg$/,
loader: 'svg-sprite-loader',
include: [resolve('src/icons')],
options: {
symbolId: 'icon-[name]'
context: path.resolve(__dirname, '../'),
entry: {
app: './src/main.js'
},
output: {
clean:true,
path: config.build.assetsRoot,
filename: 'js/[name].[contenthash].js',
pathinfo: false,
publicPath: process.env.NODE_ENV === 'production'
? config.build.assetsPublicPath
: config.dev.assetsPublicPath
},
resolve: {
extensions: ['.js', '.vue', '.json'],
alias: {
'vue$': 'vue/dist/vue.esm.js',
'@': resolve('src'),
} }
},
{
test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
loader: 'url-loader',
exclude: [resolve('src/icons')],
options: {
limit: 10000,
name: utils.assetsPath('img/[name].[hash:7].[ext]')
}
},
{
test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: utils.assetsPath('media/[name].[hash:7].[ext]')
}
},
{
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
}
}
]
},
node: {
// prevent webpack from injecting useless setImmediate polyfill because Vue
// source contains it (although only uses it if it's native).
setImmediate: false,
// prevent webpack from injecting mocks to Node native modules
// that does not make sense for the client
dgram: 'empty',
fs: 'empty',
net: 'empty',
tls: 'empty',
child_process: 'empty'
}
},
// 加载器
module: {
// https://doc.webpack-china.org/guides/migrating/#module-loaders-module-rules
rules: [
//...(config.dev.useEslint ? [createLintingRule()] : []),
{
test: /\.vue$/,
use:[
threadLoaderConfig,
{
loader: 'vue-loader',
/**
options:vueLoaderConfig,
*/
options: {
postcss: [require('postcss-cssnext')()],
loaders: {
js: [
{ loader: 'cache-loader' },
{ loader: 'babel-loader', options: { presets: ['env'] } }
]
},
extractCSS: true,
hotReload:true,
},
}
]
},
{
test: /\.css$/,
use: publicCssLoaders,
},
{
test: /\.(sa|sc)ss$/,
use: publicCssLoaders.concat([
// 将 Sass 编译成 CSS
'sass-loader',
]),
},
{
test: /\.less$/,
use: publicCssLoaders.concat([
// 将 Sass 编译成 CSS
'less-loader',
]),
},
{
test: /\.(stylus|styl)$/,
use: publicCssLoaders.concat([
// 将 Sass 编译成 CSS
'stylus-loader',
]),
},
{ // 配置Babel将ES6+ 转换为ES5
test: /\.js$/,
use:[
threadLoaderConfig,
{
loader: 'babel-loader',
options: {
presets: ['env'],
plugins: ['transform-runtime']
},
},
],
include: resolve('src'),
},
{
test: /\.svg$/,
loader: 'svg-sprite-loader',
include: [resolve('src/icons')],
options: {
symbolId: 'icon-[name]'
}
},
{
test: /\.(png|jpe?g|gif|tif?f|bmp|webp|svg)(\?.*)?$/,
exclude: [resolve('src/icons')],
type: 'asset',
generator: {
filename: 'img/[hash][ext][query]'
}
},
{
test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
type: 'asset/resource',
generator: {
filename: 'media/[hash][ext][query]'
}
},
{
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
type: 'asset/resource',
generator: {
filename: 'fonts/[hash][ext][query]'
}
}
]
},
plugins: [
new VueLoaderPlugin(),
],
optimization: {
splitChunks: {
chunks: 'all',
cacheGroups: {
defaultVendors: {
test: /[\\/]node_modules[\\/]/,
priority: -10,
reuseExistingChunk: true,
},
default: {
minChunks: 2,
priority: -20,
reuseExistingChunk: true,
},
},
},
},
} }

43
build/webpack.dev.conf.js

@ -5,7 +5,8 @@ const webpack = require('webpack')
const config = require('../config') const config = require('../config')
const merge = require('webpack-merge') const merge = require('webpack-merge')
const baseWebpackConfig = require('./webpack.base.conf') const baseWebpackConfig = require('./webpack.base.conf')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const CopyWebpackPlugin = require('copy-webpack-plugin')
const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin') const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
const portfinder = require('portfinder') const portfinder = require('portfinder')
@ -17,49 +18,53 @@ const HOST = process.env.HOST
const PORT = process.env.PORT && Number(process.env.PORT) const PORT = process.env.PORT && Number(process.env.PORT)
const devWebpackConfig = merge(baseWebpackConfig, { const devWebpackConfig = merge(baseWebpackConfig, {
mode:'development',
module: { module: {
rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: true })
//rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: true })
}, },
// cheap-module-eval-source-map is faster for development // cheap-module-eval-source-map is faster for development
devtool: config.dev.devtool, devtool: config.dev.devtool,
// these devServer options should be customized in /config/index.js // these devServer options should be customized in /config/index.js
devServer: { devServer: {
clientLogLevel: 'warning',
//解决内网穿透
historyApiFallback: true,
allowedHosts: "all",
historyApiFallback: true, historyApiFallback: true,
hot: true, hot: true,
compress: true, compress: true,
host: HOST || config.dev.host, host: HOST || config.dev.host,
port: PORT || config.dev.port, port: PORT || config.dev.port,
open: config.dev.autoOpenBrowser, open: config.dev.autoOpenBrowser,
overlay: config.dev.errorOverlay
? { warnings: false, errors: true }
: false,
publicPath: config.dev.assetsPublicPath,
proxy: config.dev.proxyTable, proxy: config.dev.proxyTable,
quiet: true, // necessary for FriendlyErrorsPlugin
watchOptions: {
poll: config.dev.poll,
}
client: {
overlay: {
errors: config.dev.errorOverlay,
warnings: false,
},
},
}, },
plugins: [ plugins: [
new webpack.DefinePlugin({ new webpack.DefinePlugin({
'process.env.ASSET_PATH': resolve ("/assets/"),
'process.env': require('../config/dev.env') 'process.env': require('../config/dev.env')
}), }),
new webpack.HotModuleReplacementPlugin(),
new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update.
new webpack.HotModuleReplacementPlugin(),
new webpack.NoEmitOnErrorsPlugin(), new webpack.NoEmitOnErrorsPlugin(),
// https://github.com/ampedandwired/html-webpack-plugin // https://github.com/ampedandwired/html-webpack-plugin
new HtmlWebpackPlugin({
filename: 'index.html',
new HtmlWebpackPlugin({
template: 'index.html', template: 'index.html',
inject: true, inject: true,
favicon: resolve('favicon.ico'), favicon: resolve('favicon.ico'),
title: 'vue-element-admin',
path: config.dev.assetsPublicPath + config.dev.assetsSubDirectory
title: 'mdp-arc',
}), }),
new webpack.ProvidePlugin({
'window.Quill': 'quill'
// copy custom static assets
new CopyWebpackPlugin( {
patterns: [
{ from: path.resolve(__dirname, '../static'), to: config.build.assetsSubDirectory },
]
}) })
] ]
}) })

166
build/webpack.prod.conf.js

@ -4,62 +4,30 @@ const utils = require('./utils')
const webpack = require('webpack') const webpack = require('webpack')
const config = require('../config') const config = require('../config')
const merge = require('webpack-merge') const merge = require('webpack-merge')
const baseWebpackConfig = require('./webpack.base.conf')
const baseWebpackConfig = require('./webpack.base.conf')
const CopyWebpackPlugin = require('copy-webpack-plugin') const CopyWebpackPlugin = require('copy-webpack-plugin')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const ExtractTextPlugin = require('extract-text-webpack-plugin')
const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
const CssMinimizerPlugin = require("css-minimizer-webpack-plugin");
const TerserPlugin = require("terser-webpack-plugin");
const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
function resolve (dir) { function resolve (dir) {
return path.join(__dirname, '..', dir) return path.join(__dirname, '..', dir)
} }
const env = require('../config/'+process.env.env_config+'.env')
const env = require('../config/'+process.env.ENV_CONFIG+'.env')
const webpackConfig = merge(baseWebpackConfig, {
module: {
rules: utils.styleLoaders({
sourceMap: config.build.productionSourceMap,
extract: true,
usePostCSS: true
})
},
devtool: config.build.productionSourceMap ? config.build.devtool : false,
output: {
path: config.build.assetsRoot,
filename: utils.assetsPath('js/[name].[chunkhash].js'),
chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
},
const webpackConfig = merge(baseWebpackConfig, {
mode:'production',
devtool: config.build.productionSourceMap ? config.build.devtool : false,
plugins: [ plugins: [
// http://vuejs.github.io/vue-loader/en/workflow/production.html // http://vuejs.github.io/vue-loader/en/workflow/production.html
new webpack.DefinePlugin({ new webpack.DefinePlugin({
'process.env': env 'process.env': env
}),
new UglifyJsPlugin({
uglifyOptions: {
compress: {
warnings: false
}
},
sourceMap: config.build.productionSourceMap,
parallel: true
}),
// extract css into its own file
new ExtractTextPlugin({
filename: utils.assetsPath('css/[name].[contenthash].css'),
// Setting the following option to `false` will not extract CSS from codesplit chunks.
// Their CSS will instead be inserted dynamically with style-loader when the codesplit chunk has been loaded by webpack.
// increasing file size: https://github.com/vuejs-templates/webpack/issues/1110
allChunks: false,
}),
// Compress extracted CSS. We are using this plugin so that possible
// duplicated CSS from different components can be deduped.
new OptimizeCSSPlugin({
cssProcessorOptions: config.build.productionSourceMap
? { safe: true, map: { inline: false } }
: { safe: true }
}),
}),
// generate dist index.html with correct asset hash for caching. // generate dist index.html with correct asset hash for caching.
// you can customize output by editing /index.html // you can customize output by editing /index.html
// see https://github.com/ampedandwired/html-webpack-plugin // see https://github.com/ampedandwired/html-webpack-plugin
@ -77,89 +45,53 @@ const webpackConfig = merge(baseWebpackConfig, {
// more options: // more options:
// https://github.com/kangax/html-minifier#options-quick-reference // https://github.com/kangax/html-minifier#options-quick-reference
}, },
// necessary to consistently work with multiple chunks via CommonsChunkPlugin
chunksSortMode: 'dependency'
}),
// keep module.id stable when vender modules does not change
new webpack.HashedModuleIdsPlugin(),
new webpack.ProvidePlugin({
'window.Quill': 'quill'
}),
chunksSortMode: 'auto'
}),
// enable scope hoisting // enable scope hoisting
new webpack.optimize.ModuleConcatenationPlugin(), new webpack.optimize.ModuleConcatenationPlugin(),
// split vendor js into its own file
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
minChunks (module) {
// any required modules inside node_modules are extracted to vendor
return (
module.resource &&
/\.js$/.test(module.resource) &&
module.resource.indexOf(
path.join(__dirname, '../node_modules')
) === 0
)
}
}),
// extract webpack runtime and module manifest to its own file in order to
// prevent vendor hash from being updated whenever app bundle is updated
new webpack.optimize.CommonsChunkPlugin({
name: 'manifest',
minChunks: Infinity
}),
// This instance extracts shared chunks from code splitted chunks and bundles them
// in a separate chunk, similar to the vendor chunk
// see: https://webpack.js.org/plugins/commons-chunk-plugin/#extra-async-commons-chunk
new webpack.optimize.CommonsChunkPlugin({
name: 'app',
async: 'vendor-async',
children: true,
minChunks: 3
}),
// split echarts into its own file
new webpack.optimize.CommonsChunkPlugin({
async: 'echarts',
minChunks(module) {
var context = module.context;
return context && (context.indexOf('echarts') >= 0 || context.indexOf('zrender') >= 0);
}
new MiniCssExtractPlugin({
filename: "css/[name].[contenthash].css",
chunkFilename: "css/[id].[contenthash].css",
}), }),
// split xlsx into its own file
new webpack.optimize.CommonsChunkPlugin({
async: 'xlsx',
minChunks(module) {
var context = module.context;
return context && (context.indexOf('xlsx') >= 0);
}
// copy custom static assets
new CopyWebpackPlugin({
patterns: [
{
from: path.resolve(__dirname, '../static'), to: config.build.assetsSubDirectory
}
],
}), }),
// split codemirror into its own file
new webpack.optimize.CommonsChunkPlugin({
async: 'codemirror',
minChunks(module) {
var context = module.context;
return context && (context.indexOf('codemirror') >= 0);
}
new FriendlyErrorsPlugin({
onErrors: utils.createNotifierCallback()
}), }),
// copy custom static assets
new CopyWebpackPlugin([
{
from: path.resolve(__dirname, '../static'),
to: config.build.assetsSubDirectory,
ignore: ['.*']
}
])
]
],
optimization: {
minimize: true,
minimizer:[
new CssMinimizerPlugin({
parallel:true
}),
new TerserPlugin({
extractComments: false,
minify: TerserPlugin.uglifyJsMinify,
// `terserOptions` options will be passed to `uglify-js`
// Link to options - https://github.com/mishoo/UglifyJS#minify-options
terserOptions: {},
})
],
splitChunks: {
chunks: 'all'
},
},
}) })
if (config.build.productionGzip) { if (config.build.productionGzip) {
const CompressionWebpackPlugin = require('compression-webpack-plugin') const CompressionWebpackPlugin = require('compression-webpack-plugin')
webpackConfig.plugins.push( webpackConfig.plugins.push(
new CompressionWebpackPlugin({
asset: '[path].gz[query]',
new CompressionWebpackPlugin({
algorithm: 'gzip', algorithm: 'gzip',
test: new RegExp( test: new RegExp(
'\\.(' + '\\.(' +

3
config/dev.env.js

@ -3,6 +3,5 @@ module.exports = {
ENV_CONFIG: '"dev"',//环境版本号 如npm run build:${ENV_CONFIG},建议与spring.profiles.active=${ENV_CONFIG}一一对应 ENV_CONFIG: '"dev"',//环境版本号 如npm run build:${ENV_CONFIG},建议与spring.profiles.active=${ENV_CONFIG}一一对应
VERSION: '"m1"',//产品版本号,nginx中通过此版本号导航到不同的静态资源目录,请求路径中用法如下:静态页面url=${DOMAIN}/${CONTEXT}/${VERSION}/#/{router.path}?${queryString} VERSION: '"m1"',//产品版本号,nginx中通过此版本号导航到不同的静态资源目录,请求路径中用法如下:静态页面url=${DOMAIN}/${CONTEXT}/${VERSION}/#/{router.path}?${queryString}
CONTEXT:'"form"',//对应spring中的server.context-path CONTEXT:'"form"',//对应spring中的server.context-path
BASE_API: '"api"',//api访问的统一入口,最后形成的apiUrl=${BASE_API}/${VERSION}/${spring.application.name}/${CONTEXT}/${ctrlUrl}
WEBSOCKET_URL:'"wss://www.qingqinkj.com/websocket/imsg/m1"'//本地环境是 ws://localhost:3333/websocket/im
BASE_API: '"api"'//api访问的统一入口,最后形成的apiUrl=${BASE_API}/${VERSION}/${spring.application.name}/${CONTEXT}/${ctrlUrl}
} }

64
config/index.js

@ -6,30 +6,64 @@ const path = require('path')
module.exports = { module.exports = {
dev: { dev: {
// Paths // Paths
assetsSubDirectory: 'static',
assetsSubDirectory: '',
assetsPublicPath: '/', assetsPublicPath: '/',
proxyTable: { proxyTable: {
'/workflow': {
target: 'https://www.qingqinkj.com',
/**
'/api/m1/form': {
target: 'http://localhost:7013',
changeOrigin: true,
pathRewrite: {
'^/api/m1/form': '/form'
}
},
'/api/m1/xm': {
target: 'http://localhost:7067',
changeOrigin: true,
pathRewrite: {
'^/api/m1/xm': '/xm'
}
},
**/
/**
'/api/m1/sys': {
target: 'http://localhost:7015',
changeOrigin: true,
pathRewrite: {
'^/api/m1/sys': '/sys'
}
},
**/
// '/api/m1/pay': {
// target: 'http://localhost:7125',
// changeOrigin: true,
// pathRewrite: {
// '^/api/m1/pay': '/pay'
// }
// },
/**
'/api/m1/form': {
target: 'http://localhost:7080',
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {
'^/workflow': '/api/workflow'
'^/api/m1/form': '/form'
} }
}, },
'/api': {
target: 'https://www.qingqinkj.com',
changeOrigin: true,
pathRewrite: {
'^/api': '/api'
}
}
**/
'/api': {
target: 'https://www.qingqinkj.com',
changeOrigin: true,
pathRewrite: {
'^/api': '/api'
}
}
}, },
// Various Dev Server settings // Various Dev Server settings
host: 'localhost', // can be overwritten by process.env.HOST host: 'localhost', // can be overwritten by process.env.HOST
port: 8089, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
port: 8015, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
autoOpenBrowser: true, autoOpenBrowser: true,
errorOverlay: true, errorOverlay: true,
notifyOnErrors: false, notifyOnErrors: false,
@ -48,7 +82,7 @@ module.exports = {
*/ */
// https://webpack.js.org/configuration/devtool/#development // https://webpack.js.org/configuration/devtool/#development
devtool: '#cheap-source-map',
devtool: 'eval',
// If you have problems debugging vue-files in devtools, // If you have problems debugging vue-files in devtools,
// set this to false - it *may* help // set this to false - it *may* help
@ -80,7 +114,7 @@ module.exports = {
productionSourceMap: false, productionSourceMap: false,
// https://webpack.js.org/configuration/devtool/#production // https://webpack.js.org/configuration/devtool/#production
devtool: '#source-map',
devtool: false,
// Gzip off by default as many popular static hosts such as // Gzip off by default as many popular static hosts such as
// Surge or Netlify already gzip all static assets for you. // Surge or Netlify already gzip all static assets for you.

5
config/m1prod.env.js

@ -1,8 +1,7 @@
module.exports = { module.exports = {
NODE_ENV: '"production"', NODE_ENV: '"production"',
ENV_CONFIG: '"m1prod"',//环境版本号 如npm run build:${ENV_CONFIG},建议与spring.profiles.active=${ENV_CONFIG}一一对应 ENV_CONFIG: '"m1prod"',//环境版本号 如npm run build:${ENV_CONFIG},建议与spring.profiles.active=${ENV_CONFIG}一一对应
VERSION: '"m1"',//产品版本号,nginx中通过此版本号导航到不同的静态资源目录,请求路径中用法如下:静态页面url=${curlDOMAIN}/${CONTEXT}/${VERSION}/#/{router.path}?${queryString}
VERSION: '"m1"',//产品版本号,nginx中通过此版本号导航到不同的静态资源目录,请求路径中用法如下:静态页面url=${DOMAIN}/${CONTEXT}/${VERSION}/#/{router.path}?${queryString}
CONTEXT:'"form"',//对应spring中的server.context-path CONTEXT:'"form"',//对应spring中的server.context-path
BASE_API: '"api"',//api访问的统一入口,最后形成的apiUrl=${BASE_API}/${VERSION}/${spring.application.name}/${CONTEXT}/${ctrlUrl}
WEBSOCKET_URL:'"${wsProtocol}://${curlHost}/websocket/imsg/m1"'//本地环境是 ws://localhost:3333/websocket/im
BASE_API: '"api"'//api访问的统一入口,最后形成的apiUrl=${BASE_API}/${VERSION}/${spring.application.name}/${CONTEXT}/${ctrlUrl}
} }

34
copy/copy.js

@ -1,34 +0,0 @@
var fs = require('fs');
var path = require('path')
function copy(src, dst) {
fs.writeFileSync(dst, fs.readFileSync(src));
}
function travel(dir, callback) {
if (fs.statSync(dir).isDirectory()) {
callback(dir,true);
}
fs.readdirSync(dir).forEach(function (file) {
var pathname = path.join(dir, file);
if (fs.statSync(pathname).isDirectory()) {
travel(pathname, callback);
} else {
callback(pathname,false);
}
});
}
function copy(src, dest){
travel(src,function(file,isDir){
var filename=dest+file.substring(src.length);
if (isDir===true && !fs.existsSync(filename)) {
fs.mkdirSync(filename);
}
if(isDir===false){
fs.writeFileSync(filename, fs.readFileSync(file));
}
});
};
//copy('../mdp-sys-web/src/api/mdp/','src/api/mdp/');
//copy('../mdp-sys-web/src/views/mdp/','src/views/mdp/');

50
copy/copyDistToStatic.js

@ -1,50 +0,0 @@
var fs = require('fs');
var path = require('path')
function copy(src, dst) {
fs.writeFileSync(dst, fs.readFileSync(src));
}
function travel(dir, callback) {
if (fs.statSync(dir).isDirectory()) {
callback(dir,true);
}
fs.readdirSync(dir).forEach(function (file) {
var pathname = path.join(dir, file);
if (fs.statSync(pathname).isDirectory()) {
travel(pathname, callback);
} else {
callback(pathname,false);
}
});
}
function copy(src, dest){
travel(src,function(file,isDir){
var filename=dest+file.substring(src.length);
if (isDir===true && !fs.existsSync(filename)) {
fs.mkdirSync(filename);
}
if(isDir===false){
fs.writeFileSync(filename, fs.readFileSync(file));
}
});
};
function delDir(path) {
if( fs.existsSync(path) ) {
fs.readdirSync(path).forEach(function(file) {
var curPath = path + "/" + file;
if(fs.statSync(curPath).isDirectory()) { // recurse
delDir(curPath);
} else { // delete file
fs.unlinkSync(curPath);
}
});
fs.rmdirSync(path);
}
};
function delCopy(src,dest){
delDir(dest);
copy(src,dest);
}
delCopy('dist','../mdp-workflow-starter/src/main/resources/static');

42
docs/CHANGELOG.md

@ -0,0 +1,42 @@
# 🚀 版本日志
## 1.0.0 (2019-03-06)
### 🐣 新增功能
1. 第一个基于vue的版本,包含用户管理、部门管理、角色管理、菜单管理、字典管理
------
## 1.10.10 (2020-03-03)
### 🐞 解决BUG、优化功能
1. 融合商城版本添加 岗位管理、机构管理、系统参数管理
------
## 1.10.25 (2021-01-20)
### 🐣 新增功能
1. 智能表单
2. 工作流管理
------
## 1.20.29 (2022-7-01)
### 🐞 解决BUG、优化功能
1. 整合数据字典+系统参数,形成元数据管理解决方案,支持分布式环境下的数据共享、分发、清理、同步
2. 整合权限管理,更简单、更灵活
------
## 2.0.0 (2023-08-28)
### 🐣 新增功能
1. 用新的mdp-ui组件库重新改造所有页面,每个功能提供增、删、改、查、导出、明细、复制、表格编辑、高级查询、重置查询等基本功能,每个功能提供mng、list、add、edit、detail四种打开模式,对应不同的按钮权限、输入框权限
2. 优化元数据管理,增加每个列表项的颜色控制、列表项过滤条件、联表联动等

183
docs/CONTRIBUTE.md

@ -0,0 +1,183 @@
# mdp 贡献说明
## 目录说明
### 工程命名规范
**前端工程命名规则:业务名-ui-web|-app|-uniapp**
**后端工程命名规则:业务名-backend**
- [-ui]代表前端
- [-web]代表电脑浏览器应用
- [-app]代表手机应用
- [-uniapp]代表小程序+app的综合体,或者仅代表小程序
- [-backend]代表后端
- [-cloud]代表适用于微服务、分布式、云环境
- [-bootstrap]代表属于打包类的工程,不能写业务代码
### 前端目录
```
业务-ui-web
├── build => 编译构建相关
├── config => 编译构建配置项
├── dist => 编译后的产物
├── src => 源代码
   ├── api => 与后端交互的api接口列表,一个表一个文件,公共api放入$fly中
   ├── fly.js => 公共api放入fly中,自动注册成全局函数,页面上可以通过 $fly.xxxxApi()进行调用,无须引入任何文件
   ├── assets => 静态资源
   ├── common => 一些公共js脚本
   ├── components => 组件库
   ├── Mdp => mdp-ui基础组件库
   ├── MdpExt => mdp-ui扩展的组件库,一般根据业务需要抽取提炼新的组件放入该目录
   ├── directive => vue指令库
   ├── icons => 图标库
   ├── lang => 语言包
   ├── mock => 接口模拟数据
   ├── router => 路由库
   ├── store => 全局公共数据库
   ├── styles => css样式库
   ├── views => 业务功能的页面代码
   ├── vuex => vuex
   ├── App.vue => 总入口 vue
   ├── main.js => 总入口 js
   ├── permission.js => 路由菜单权限过滤
├── static => 某些静态资源
├── .editorconfig => 全局代码格式配置
├── .gitattributes => 文件编码格式配置
├── CHANGELOG.md => 重大更新日志
├── CONTRIBUTE.md => 贡献说明
├── PLANS.md => 重大开发计划说明
├── README.md => 项目说明
├── LICENSE => 协议
├── favicon.ico => 项目图标
├── package.json => 组件依赖关系
├── index.html => 总入口、首页
```
### 后端目录
**后端工程结构**
- 工程结构总图:
```
业务名-backend
├── 业务名 =>业务工程,主要用来书写业务代码
├── 业务名-cloud-bootstrap =>maven打包工程,禁止书写业务代码,部署到云环境
├── 业务名-bootstrap =>maven打包工程,禁止书写业务代码,部署到单体应用环境
├── pom.xml =>maven pom文件
```
- 工程结构明细图:
```
业务名-backend
├── 业务名 => 业务主体工程,主要用来写业务功能代码
├── logs => 工程运行日志输出目录
├── src => src
├── main => 源码包
├── com.企业名.业务名 => 一级业务、产品、大模块之类的
├── DruidConfig.java => 数据库连接配置
├── SwaggerConfig.java => wagger配置
├── SysApplication.java => 启动类
├── WebSecurityConfig.java => spring security配置
├── com.企业名.业务名.模块1 => 模块目录,一个模块=一个表
├── com.企业名.业务名.模块1.ctrl => 控制器
├── com.企业名.业务名.模块1.entity => 实体类,保持与数据库表一摸一样,不建议改动,代码生成器随时覆盖
├── com.企业名.业务名.模块1.mapper => mybatis mapper文件,包含 Mapper.java Mapper.xml两个文件
├── com.企业名.业务名.模块1.service => 服务类,所有服务继承 BaseService
├── com.企业名.业务名.模块1.vo => 如果需要对entity进行扩展,可在此目录定义继承entity的子类
├── resources => 资源文件
├── test => 测试用例
├── pom.xml => maven pom文件
├── 业务名-cloud-bootstrap => 打包工程(微服务环境)
├── logs => 工程运行日志输出目录
├── src => src
├── main => 源码包
├── com.企业名.业务名
├── DruidConfig.java => 数据库连接配置
├── SwaggerConfig.java => wagger配置
├── SysApplication.java => 启动类
├── WebSecurityConfig.java => spring security配置
├── resources => 资源文件
├── test => 测试用例
├── pom.xml => maven pom文件
├── 业务名-bootstrap => 打包工程(单体应用)
├── logs => 工程运行日志输出目录
├── src => src
├── main => 源码包
├── com.企业名.业务名
├── DruidConfig.java => 数据库连接配置
├── SwaggerConfig.java => wagger配置
├── SysApplication.java => 启动类
├── WebSecurityConfig.java => spring security配置
├── resources => 资源文件
├── test => 测试用例
├── pom.xml => maven pom文件
├── pom.xml => maven pom文件
```
## [java]一些规范说明
1. 写完代码后在保证不影响其他的人的代码情况下尽量统一格式化一下代码
1. 采用 4 个空格缩进,禁止使用 tab 字符
2. 如果使用 tab 缩进,必须设置 1 个 tab 为 4 个空格。IDEA 设置 tab 为 4 个空格时,
请勿勾选 Use tab character;而在 eclipse 中,必须勾选 insert spaces for tabs
2. Java 代码需要保证新增方法都有充足、标准的 JavaDoc 注释
3. 在修改 Bug、新增功能尽量保证最小提交的方式提交代码,减少多个功能一个 commit
4. 所有接口 url 都需要遵循下划线模式
5. Java 代码、方法需要遵循小驼峰法
6. Java 类名需要遵循大驼峰法
7. 前端项目统一采用 `prettier` 方式来格式化(需要安装插件)
8. 所有 controller 层的接口都需要添加文档注释(至少包含接口的作用说明、参数说明、返回值说明及添加 apiDoc 文档注释)
> 注:由于旧代码存在很多不规范问题,会逐步调整为新规范。在新写的代码都需要需要遵循上面说明
>
>
### 类的文档注释规范(Javadoc)
```
/**
* xxxxxxxx
* @author xxxx
* @since ${DATE}
*/
```
> 这里采用 `@since` 声明创建日期是因为 `Javadoc` 规范里面并没有 `@date` 标记所以采用 `@since` 代替
### Java 代码规范
> 推荐安装 `Alibaba Java Coding Guidelines`(`p3c`) 插件
## changelog 更新规范
> 在新加功能、修复bug、优化功能在完成时候都需要在 [CHANGELOG.md](./CHANGELOG.md) 记录
1. 如果是使用者反馈的bug,在修复后需要备注反馈人的昵称
2. 如果是 issue 需要备注 issue 地址以及平台(Gitee、GitHub)
3. 如果是 pr 需要备注 pr 地址以及平台(Gitee、GitHub)
4. 根据变动情况确定影响范围:如果影响 只:`agent`、`server` 其中一个,就使用【agent】、【server】开头,如果都影响就不用
5. 可以视情况添加其他说明:如提交记录
6. emoji 表情参考:[https://emojixd.com/](https://emojixd.com/)
## 分支说明
1. 新功能都提交到 dev 分支, 不能提交到 master 分支
2. PR 提交到 dev 分支
3. 一般功能开发可以直接提交到 dev 分支,较大功能开发需要新建分支提交
## 需要的小组
1. 后端小组 (主要任务:根据需求开发对应的接口)
2. 前端小组 (主要任务:优化前端 UI 交互和对接部分接口)
3. 文档小组 (主要任务:完善、补充 mdp 使用文档)
4. 视频小组 (主要任务:录制 mdp 相关的使用视频)
5. 测试小组 (主要任务:参与 mdp 新版内测、日常开发测试相关任务)

7
docs/PLANS.md

@ -0,0 +1,7 @@
# 开发计划
## 3.x.x
1. **升级到vue 3.0+**
2. 全面开源

183
docs/backend/API.md

@ -0,0 +1,183 @@
# mdp-ui 组件库说明
## 目录说明
### 工程命名规范
**前端工程命名规则:业务名-ui-web|-app|-uniapp**
**后端工程命名规则:业务名-backend**
- [-ui]代表前端
- [-web]代表电脑浏览器应用
- [-app]代表手机应用
- [-uniapp]代表小程序+app的综合体,或者仅代表小程序
- [-backend]代表后端
- [-cloud]代表适用于微服务、分布式、云环境
- [-bootstrap]代表属于打包类的工程,不能写业务代码
### 前端目录
```
业务-ui-web
├── build => 编译构建相关
├── config => 编译构建配置项
├── dist => 编译后的产物
├── src => 源代码
   ├── api => 与后端交互的api接口列表,一个表一个文件,公共api放入$fly中
   ├── fly.js => 公共api放入fly中,自动注册成全局函数,页面上可以通过 $fly.xxxxApi()进行调用,无须引入任何文件
   ├── assets => 静态资源
   ├── common => 一些公共js脚本
   ├── components => 组件库
   ├── Mdp => mdp-ui基础组件库
   ├── MdpExt => mdp-ui扩展的组件库,一般根据业务需要抽取提炼新的组件放入该目录
   ├── directive => vue指令库
   ├── icons => 图标库
   ├── lang => 语言包
   ├── mock => 接口模拟数据
   ├── router => 路由库
   ├── store => 全局公共数据库
   ├── styles => css样式库
   ├── views => 业务功能的页面代码
   ├── vuex => vuex
   ├── App.vue => 总入口 vue
   ├── main.js => 总入口 js
   ├── permission.js => 路由菜单权限过滤
├── static => 某些静态资源
├── .editorconfig => 全局代码格式配置
├── .gitattributes => 文件编码格式配置
├── CHANGELOG.md => 重大更新日志
├── CONTRIBUTE.md => 贡献说明
├── PLANS.md => 重大开发计划说明
├── README.md => 项目说明
├── LICENSE => 协议
├── favicon.ico => 项目图标
├── package.json => 组件依赖关系
├── index.html => 总入口、首页
```
### 后端目录
**后端工程结构**
- 工程结构总图:
```
业务名-backend
├── 业务名 =>业务工程,主要用来书写业务代码
├── 业务名-cloud-bootstrap =>maven打包工程,禁止书写业务代码,部署到云环境
├── 业务名-bootstrap =>maven打包工程,禁止书写业务代码,部署到单体应用环境
├── pom.xml =>maven pom文件
```
- 工程结构明细图:
```
业务名-backend
├── 业务名 => 业务主体工程,主要用来写业务功能代码
├── logs => 工程运行日志输出目录
├── src => src
├── main => 源码包
├── com.企业名.业务名 => 一级业务、产品、大模块之类的
├── DruidConfig.java => 数据库连接配置
├── SwaggerConfig.java => wagger配置
├── SysApplication.java => 启动类
├── WebSecurityConfig.java => spring security配置
├── com.企业名.业务名.模块1 => 模块目录,一个模块=一个表
├── com.企业名.业务名.模块1.ctrl => 控制器
├── com.企业名.业务名.模块1.entity => 实体类,保持与数据库表一摸一样,不建议改动,代码生成器随时覆盖
├── com.企业名.业务名.模块1.mapper => mybatis mapper文件,包含 Mapper.java Mapper.xml两个文件
├── com.企业名.业务名.模块1.service => 服务类,所有服务继承 BaseService
├── com.企业名.业务名.模块1.vo => 如果需要对entity进行扩展,可在此目录定义继承entity的子类
├── resources => 资源文件
├── test => 测试用例
├── pom.xml => maven pom文件
├── 业务名-cloud-bootstrap => 打包工程(微服务环境)
├── logs => 工程运行日志输出目录
├── src => src
├── main => 源码包
├── com.企业名.业务名
├── DruidConfig.java => 数据库连接配置
├── SwaggerConfig.java => wagger配置
├── SysApplication.java => 启动类
├── WebSecurityConfig.java => spring security配置
├── resources => 资源文件
├── test => 测试用例
├── pom.xml => maven pom文件
├── 业务名-bootstrap => 打包工程(单体应用)
├── logs => 工程运行日志输出目录
├── src => src
├── main => 源码包
├── com.企业名.业务名
├── DruidConfig.java => 数据库连接配置
├── SwaggerConfig.java => wagger配置
├── SysApplication.java => 启动类
├── WebSecurityConfig.java => spring security配置
├── resources => 资源文件
├── test => 测试用例
├── pom.xml => maven pom文件
├── pom.xml => maven pom文件
```
## [java]一些规范说明
1. 写完代码后在保证不影响其他的人的代码情况下尽量统一格式化一下代码
1. 采用 4 个空格缩进,禁止使用 tab 字符
2. 如果使用 tab 缩进,必须设置 1 个 tab 为 4 个空格。IDEA 设置 tab 为 4 个空格时,
请勿勾选 Use tab character;而在 eclipse 中,必须勾选 insert spaces for tabs
2. Java 代码需要保证新增方法都有充足、标准的 JavaDoc 注释
3. 在修改 Bug、新增功能尽量保证最小提交的方式提交代码,减少多个功能一个 commit
4. 所有接口 url 都需要遵循下划线模式
5. Java 代码、方法需要遵循小驼峰法
6. Java 类名需要遵循大驼峰法
7. 前端项目统一采用 `prettier` 方式来格式化(需要安装插件)
8. 所有 controller 层的接口都需要添加文档注释(至少包含接口的作用说明、参数说明、返回值说明及添加 apiDoc 文档注释)
> 注:由于旧代码存在很多不规范问题,会逐步调整为新规范。在新写的代码都需要需要遵循上面说明
>
>
### 类的文档注释规范(Javadoc)
```
/**
* xxxxxxxx
* @author xxxx
* @since ${DATE}
*/
```
> 这里采用 `@since` 声明创建日期是因为 `Javadoc` 规范里面并没有 `@date` 标记所以采用 `@since` 代替
### Java 代码规范
> 推荐安装 `Alibaba Java Coding Guidelines`(`p3c`) 插件
## changelog 更新规范
> 在新加功能、修复bug、优化功能在完成时候都需要在 [CHANGELOG.md](./CHANGELOG.md) 记录
1. 如果是使用者反馈的bug,在修复后需要备注反馈人的昵称
2. 如果是 issue 需要备注 issue 地址以及平台(Gitee、GitHub)
3. 如果是 pr 需要备注 pr 地址以及平台(Gitee、GitHub)
4. 根据变动情况确定影响范围:如果影响 只:`agent`、`server` 其中一个,就使用【agent】、【server】开头,如果都影响就不用
5. 可以视情况添加其他说明:如提交记录
6. emoji 表情参考:[https://emojixd.com/](https://emojixd.com/)
## 分支说明
1. 新功能都提交到 dev 分支, 不能提交到 master 分支
2. PR 提交到 dev 分支
3. 一般功能开发可以直接提交到 dev 分支,较大功能开发需要新建分支提交
## 需要的小组
1. 后端小组 (主要任务:根据需求开发对应的接口)
2. 前端小组 (主要任务:优化前端 UI 交互和对接部分接口)
3. 文档小组 (主要任务:完善、补充 mdp 使用文档)
4. 视频小组 (主要任务:录制 mdp 相关的使用视频)
5. 测试小组 (主要任务:参与 mdp 新版内测、日常开发测试相关任务)

183
docs/front/API.md

@ -0,0 +1,183 @@
# mdp-ui 组件库说明
## 目录说明
### 工程命名规范
**前端工程命名规则:业务名-ui-web|-app|-uniapp**
**后端工程命名规则:业务名-backend**
- [-ui]代表前端
- [-web]代表电脑浏览器应用
- [-app]代表手机应用
- [-uniapp]代表小程序+app的综合体,或者仅代表小程序
- [-backend]代表后端
- [-cloud]代表适用于微服务、分布式、云环境
- [-bootstrap]代表属于打包类的工程,不能写业务代码
### 前端目录
```
业务-ui-web
├── build => 编译构建相关
├── config => 编译构建配置项
├── dist => 编译后的产物
├── src => 源代码
   ├── api => 与后端交互的api接口列表,一个表一个文件,公共api放入$fly中
   ├── fly.js => 公共api放入fly中,自动注册成全局函数,页面上可以通过 $fly.xxxxApi()进行调用,无须引入任何文件
   ├── assets => 静态资源
   ├── common => 一些公共js脚本
   ├── components => 组件库
   ├── Mdp => mdp-ui基础组件库
   ├── MdpExt => mdp-ui扩展的组件库,一般根据业务需要抽取提炼新的组件放入该目录
   ├── directive => vue指令库
   ├── icons => 图标库
   ├── lang => 语言包
   ├── mock => 接口模拟数据
   ├── router => 路由库
   ├── store => 全局公共数据库
   ├── styles => css样式库
   ├── views => 业务功能的页面代码
   ├── vuex => vuex
   ├── App.vue => 总入口 vue
   ├── main.js => 总入口 js
   ├── permission.js => 路由菜单权限过滤
├── static => 某些静态资源
├── .editorconfig => 全局代码格式配置
├── .gitattributes => 文件编码格式配置
├── CHANGELOG.md => 重大更新日志
├── CONTRIBUTE.md => 贡献说明
├── PLANS.md => 重大开发计划说明
├── README.md => 项目说明
├── LICENSE => 协议
├── favicon.ico => 项目图标
├── package.json => 组件依赖关系
├── index.html => 总入口、首页
```
### 后端目录
**后端工程结构**
- 工程结构总图:
```
业务名-backend
├── 业务名 =>业务工程,主要用来书写业务代码
├── 业务名-cloud-bootstrap =>maven打包工程,禁止书写业务代码,部署到云环境
├── 业务名-bootstrap =>maven打包工程,禁止书写业务代码,部署到单体应用环境
├── pom.xml =>maven pom文件
```
- 工程结构明细图:
```
业务名-backend
├── 业务名 => 业务主体工程,主要用来写业务功能代码
├── logs => 工程运行日志输出目录
├── src => src
├── main => 源码包
├── com.企业名.业务名 => 一级业务、产品、大模块之类的
├── DruidConfig.java => 数据库连接配置
├── SwaggerConfig.java => wagger配置
├── SysApplication.java => 启动类
├── WebSecurityConfig.java => spring security配置
├── com.企业名.业务名.模块1 => 模块目录,一个模块=一个表
├── com.企业名.业务名.模块1.ctrl => 控制器
├── com.企业名.业务名.模块1.entity => 实体类,保持与数据库表一摸一样,不建议改动,代码生成器随时覆盖
├── com.企业名.业务名.模块1.mapper => mybatis mapper文件,包含 Mapper.java Mapper.xml两个文件
├── com.企业名.业务名.模块1.service => 服务类,所有服务继承 BaseService
├── com.企业名.业务名.模块1.vo => 如果需要对entity进行扩展,可在此目录定义继承entity的子类
├── resources => 资源文件
├── test => 测试用例
├── pom.xml => maven pom文件
├── 业务名-cloud-bootstrap => 打包工程(微服务环境)
├── logs => 工程运行日志输出目录
├── src => src
├── main => 源码包
├── com.企业名.业务名
├── DruidConfig.java => 数据库连接配置
├── SwaggerConfig.java => wagger配置
├── SysApplication.java => 启动类
├── WebSecurityConfig.java => spring security配置
├── resources => 资源文件
├── test => 测试用例
├── pom.xml => maven pom文件
├── 业务名-bootstrap => 打包工程(单体应用)
├── logs => 工程运行日志输出目录
├── src => src
├── main => 源码包
├── com.企业名.业务名
├── DruidConfig.java => 数据库连接配置
├── SwaggerConfig.java => wagger配置
├── SysApplication.java => 启动类
├── WebSecurityConfig.java => spring security配置
├── resources => 资源文件
├── test => 测试用例
├── pom.xml => maven pom文件
├── pom.xml => maven pom文件
```
## [java]一些规范说明
1. 写完代码后在保证不影响其他的人的代码情况下尽量统一格式化一下代码
1. 采用 4 个空格缩进,禁止使用 tab 字符
2. 如果使用 tab 缩进,必须设置 1 个 tab 为 4 个空格。IDEA 设置 tab 为 4 个空格时,
请勿勾选 Use tab character;而在 eclipse 中,必须勾选 insert spaces for tabs
2. Java 代码需要保证新增方法都有充足、标准的 JavaDoc 注释
3. 在修改 Bug、新增功能尽量保证最小提交的方式提交代码,减少多个功能一个 commit
4. 所有接口 url 都需要遵循下划线模式
5. Java 代码、方法需要遵循小驼峰法
6. Java 类名需要遵循大驼峰法
7. 前端项目统一采用 `prettier` 方式来格式化(需要安装插件)
8. 所有 controller 层的接口都需要添加文档注释(至少包含接口的作用说明、参数说明、返回值说明及添加 apiDoc 文档注释)
> 注:由于旧代码存在很多不规范问题,会逐步调整为新规范。在新写的代码都需要需要遵循上面说明
>
>
### 类的文档注释规范(Javadoc)
```
/**
* xxxxxxxx
* @author xxxx
* @since ${DATE}
*/
```
> 这里采用 `@since` 声明创建日期是因为 `Javadoc` 规范里面并没有 `@date` 标记所以采用 `@since` 代替
### Java 代码规范
> 推荐安装 `Alibaba Java Coding Guidelines`(`p3c`) 插件
## changelog 更新规范
> 在新加功能、修复bug、优化功能在完成时候都需要在 [CHANGELOG.md](./CHANGELOG.md) 记录
1. 如果是使用者反馈的bug,在修复后需要备注反馈人的昵称
2. 如果是 issue 需要备注 issue 地址以及平台(Gitee、GitHub)
3. 如果是 pr 需要备注 pr 地址以及平台(Gitee、GitHub)
4. 根据变动情况确定影响范围:如果影响 只:`agent`、`server` 其中一个,就使用【agent】、【server】开头,如果都影响就不用
5. 可以视情况添加其他说明:如提交记录
6. emoji 表情参考:[https://emojixd.com/](https://emojixd.com/)
## 分支说明
1. 新功能都提交到 dev 分支, 不能提交到 master 分支
2. PR 提交到 dev 分支
3. 一般功能开发可以直接提交到 dev 分支,较大功能开发需要新建分支提交
## 需要的小组
1. 后端小组 (主要任务:根据需求开发对应的接口)
2. 前端小组 (主要任务:优化前端 UI 交互和对接部分接口)
3. 文档小组 (主要任务:完善、补充 mdp 使用文档)
4. 视频小组 (主要任务:录制 mdp 相关的使用视频)
5. 测试小组 (主要任务:参与 mdp 新版内测、日常开发测试相关任务)

184
docs/front/COMPOENTS.md

@ -0,0 +1,184 @@
# mdp-ui 组件库
## 如何开始?
## 目录说明
### 工程命名规范
**前端工程命名规则:业务名-ui-web|-app|-uniapp**
**后端工程命名规则:业务名-backend**
- [-ui]代表前端
- [-web]代表电脑浏览器应用
- [-app]代表手机应用
- [-uniapp]代表小程序+app的综合体,或者仅代表小程序
- [-backend]代表后端
- [-cloud]代表适用于微服务、分布式、云环境
- [-bootstrap]代表属于打包类的工程,不能写业务代码
### 前端目录
```
业务-ui-web
├── build => 编译构建相关
├── config => 编译构建配置项
├── dist => 编译后的产物
├── src => 源代码
   ├── api => 与后端交互的api接口列表,一个表一个文件,公共api放入$fly中
   ├── fly.js => 公共api放入fly中,自动注册成全局函数,页面上可以通过 $fly.xxxxApi()进行调用,无须引入任何文件
   ├── assets => 静态资源
   ├── common => 一些公共js脚本
   ├── components => 组件库
   ├── Mdp => mdp-ui基础组件库
   ├── MdpExt => mdp-ui扩展的组件库,一般根据业务需要抽取提炼新的组件放入该目录
   ├── directive => vue指令库
   ├── icons => 图标库
   ├── lang => 语言包
   ├── mock => 接口模拟数据
   ├── router => 路由库
   ├── store => 全局公共数据库
   ├── styles => css样式库
   ├── views => 业务功能的页面代码
   ├── vuex => vuex
   ├── App.vue => 总入口 vue
   ├── main.js => 总入口 js
   ├── permission.js => 路由菜单权限过滤
├── static => 某些静态资源
├── .editorconfig => 全局代码格式配置
├── .gitattributes => 文件编码格式配置
├── CHANGELOG.md => 重大更新日志
├── CONTRIBUTE.md => 贡献说明
├── PLANS.md => 重大开发计划说明
├── README.md => 项目说明
├── LICENSE => 协议
├── favicon.ico => 项目图标
├── package.json => 组件依赖关系
├── index.html => 总入口、首页
```
### 后端目录
**后端工程结构**
- 工程结构总图:
```
业务名-backend
├── 业务名 =>业务工程,主要用来书写业务代码
├── 业务名-cloud-bootstrap =>maven打包工程,禁止书写业务代码,部署到云环境
├── 业务名-bootstrap =>maven打包工程,禁止书写业务代码,部署到单体应用环境
├── pom.xml =>maven pom文件
```
- 工程结构明细图:
```
业务名-backend
├── 业务名 => 业务主体工程,主要用来写业务功能代码
├── logs => 工程运行日志输出目录
├── src => src
├── main => 源码包
├── com.企业名.业务名 => 一级业务、产品、大模块之类的
├── DruidConfig.java => 数据库连接配置
├── SwaggerConfig.java => wagger配置
├── SysApplication.java => 启动类
├── WebSecurityConfig.java => spring security配置
├── com.企业名.业务名.模块1 => 模块目录,一个模块=一个表
├── com.企业名.业务名.模块1.ctrl => 控制器
├── com.企业名.业务名.模块1.entity => 实体类,保持与数据库表一摸一样,不建议改动,代码生成器随时覆盖
├── com.企业名.业务名.模块1.mapper => mybatis mapper文件,包含 Mapper.java Mapper.xml两个文件
├── com.企业名.业务名.模块1.service => 服务类,所有服务继承 BaseService
├── com.企业名.业务名.模块1.vo => 如果需要对entity进行扩展,可在此目录定义继承entity的子类
├── resources => 资源文件
├── test => 测试用例
├── pom.xml => maven pom文件
├── 业务名-cloud-bootstrap => 打包工程(微服务环境)
├── logs => 工程运行日志输出目录
├── src => src
├── main => 源码包
├── com.企业名.业务名
├── DruidConfig.java => 数据库连接配置
├── SwaggerConfig.java => wagger配置
├── SysApplication.java => 启动类
├── WebSecurityConfig.java => spring security配置
├── resources => 资源文件
├── test => 测试用例
├── pom.xml => maven pom文件
├── 业务名-bootstrap => 打包工程(单体应用)
├── logs => 工程运行日志输出目录
├── src => src
├── main => 源码包
├── com.企业名.业务名
├── DruidConfig.java => 数据库连接配置
├── SwaggerConfig.java => wagger配置
├── SysApplication.java => 启动类
├── WebSecurityConfig.java => spring security配置
├── resources => 资源文件
├── test => 测试用例
├── pom.xml => maven pom文件
├── pom.xml => maven pom文件
```
## [java]一些规范说明
1. 写完代码后在保证不影响其他的人的代码情况下尽量统一格式化一下代码
1. 采用 4 个空格缩进,禁止使用 tab 字符
2. 如果使用 tab 缩进,必须设置 1 个 tab 为 4 个空格。IDEA 设置 tab 为 4 个空格时,
请勿勾选 Use tab character;而在 eclipse 中,必须勾选 insert spaces for tabs
2. Java 代码需要保证新增方法都有充足、标准的 JavaDoc 注释
3. 在修改 Bug、新增功能尽量保证最小提交的方式提交代码,减少多个功能一个 commit
4. 所有接口 url 都需要遵循下划线模式
5. Java 代码、方法需要遵循小驼峰法
6. Java 类名需要遵循大驼峰法
7. 前端项目统一采用 `prettier` 方式来格式化(需要安装插件)
8. 所有 controller 层的接口都需要添加文档注释(至少包含接口的作用说明、参数说明、返回值说明及添加 apiDoc 文档注释)
> 注:由于旧代码存在很多不规范问题,会逐步调整为新规范。在新写的代码都需要需要遵循上面说明
>
>
### 类的文档注释规范(Javadoc)
```
/**
* xxxxxxxx
* @author xxxx
* @since ${DATE}
*/
```
> 这里采用 `@since` 声明创建日期是因为 `Javadoc` 规范里面并没有 `@date` 标记所以采用 `@since` 代替
### Java 代码规范
> 推荐安装 `Alibaba Java Coding Guidelines`(`p3c`) 插件
## changelog 更新规范
> 在新加功能、修复bug、优化功能在完成时候都需要在 [CHANGELOG.md](./CHANGELOG.md) 记录
1. 如果是使用者反馈的bug,在修复后需要备注反馈人的昵称
2. 如果是 issue 需要备注 issue 地址以及平台(Gitee、GitHub)
3. 如果是 pr 需要备注 pr 地址以及平台(Gitee、GitHub)
4. 根据变动情况确定影响范围:如果影响 只:`agent`、`server` 其中一个,就使用【agent】、【server】开头,如果都影响就不用
5. 可以视情况添加其他说明:如提交记录
6. emoji 表情参考:[https://emojixd.com/](https://emojixd.com/)
## 分支说明
1. 新功能都提交到 dev 分支, 不能提交到 master 分支
2. PR 提交到 dev 分支
3. 一般功能开发可以直接提交到 dev 分支,较大功能开发需要新建分支提交
## 需要的小组
1. 后端小组 (主要任务:根据需求开发对应的接口)
2. 前端小组 (主要任务:优化前端 UI 交互和对接部分接口)
3. 文档小组 (主要任务:完善、补充 mdp 使用文档)
4. 视频小组 (主要任务:录制 mdp 相关的使用视频)
5. 测试小组 (主要任务:参与 mdp 新版内测、日常开发测试相关任务)

BIN
docs/images/ui-components/big-table-select.jpg

After

Width: 1757  |  Height: 1089  |  Size: 98 KiB

BIN
docs/images/ui-components/data-range-x-hove-click.jpg

After

Width: 1128  |  Height: 591  |  Size: 42 KiB

BIN
docs/images/ui-components/data-range-x-hove.jpg

After

Width: 588  |  Height: 65  |  Size: 3.8 KiB

BIN
docs/images/ui-components/date-range-x-no-hove.jpg

After

Width: 290  |  Height: 74  |  Size: 3.5 KiB

BIN
docs/images/ui-components/date-x-hove.jpg

After

Width: 672  |  Height: 608  |  Size: 26 KiB

BIN
docs/images/ui-components/date-x.jpg

After

Width: 173  |  Height: 77  |  Size: 2.8 KiB

BIN
docs/images/ui-components/edit-table.jpg

After

Width: 2285  |  Height: 936  |  Size: 162 KiB

BIN
docs/images/ui-components/hi-query.jpg

After

Width: 1538  |  Height: 828  |  Size: 38 KiB

BIN
docs/images/ui-components/index.jpg

After

Width: 2559  |  Height: 1379  |  Size: 281 KiB

BIN
docs/images/ui-components/left-right-tree-table.jpg

After

Width: 2559  |  Height: 1379  |  Size: 367 KiB

BIN
docs/images/ui-components/query-param.jpg

After

Width: 1497  |  Height: 80  |  Size: 6.1 KiB

BIN
docs/images/ui-components/select-origin.jpg

After

Width: 222  |  Height: 228  |  Size: 4.3 KiB

BIN
docs/images/ui-components/select-tag.jpg

After

Width: 473  |  Height: 512  |  Size: 17 KiB

BIN
docs/images/ui-components/select-user.jpg

After

Width: 245  |  Height: 377  |  Size: 10 KiB

BIN
docs/images/ui-components/select-x-hove.jpg

After

Width: 353  |  Height: 456  |  Size: 13 KiB

BIN
docs/images/ui-components/select-x-no-hove.jpg

After

Width: 153  |  Height: 74  |  Size: 2.0 KiB

BIN
docs/images/ui-components/table-column-configs.jpg

After

Width: 1536  |  Height: 1092  |  Size: 44 KiB

BIN
docs/images/ui-components/table-mng.jpg

After

Width: 2288  |  Height: 932  |  Size: 151 KiB

BIN
docs/images/ui-components/tree-table.jpg

After

Width: 2283  |  Height: 371  |  Size: 57 KiB

31
index.html

@ -1,20 +1,15 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="renderer" content="webkit">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<title>MDP-多功能快速开发平台</title>
<link rel="shortcut icon" href="assets/logo32x32.ico" type="image/x-icon"/>
</head>
<body>
<div id="app">
</div>
<!-- built files will be auto injected -->
</body>
</html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="renderer" content="webkit">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<title>唛盟平台-智能表单</title>
</head>
<body>
<script src="./tinymce/tinymce.min.js"></script>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>

122
package.json

@ -1,30 +1,33 @@
{ {
"name": "form-ui-web",
"name": "mdp-form-ui-web",
"version": "1.0.0", "version": "1.0.0",
"description": "form-ui-web",
"description": "mdp-form-web",
"author": "chenyc <cyc58469@163.com>", "author": "chenyc <cyc58469@163.com>",
"license": "MIT", "license": "MIT",
"private": true, "private": true,
"scripts": { "scripts": {
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
"dev": "webpack-dev-server --progress --config build/webpack.dev.conf.js",
"build:prod": "cross-env NODE_ENV=production env_config=prod node build/build.js", "build:prod": "cross-env NODE_ENV=production env_config=prod node build/build.js",
"build:sit": "cross-env NODE_ENV=production env_config=sit node build/build.js", "build:sit": "cross-env NODE_ENV=production env_config=sit node build/build.js",
"build:m1prod": "cross-env NODE_ENV=production env_config=m1prod node build/build.js", "build:m1prod": "cross-env NODE_ENV=production env_config=m1prod node build/build.js",
"lint": "eslint --ext .js,.vue src", "lint": "eslint --ext .js,.vue src",
"test": "npm run lint",
"copy": "node copy/copy.js",
"copyDistToStatic": "node copy/copyDistToStatic.js"
"test": "npm run lint"
}, },
"dependencies": { "dependencies": {
"@jiaminghi/data-view": "^2.10.0",
"axios": "0.17.1", "axios": "0.17.1",
"clipboard": "1.7.1", "clipboard": "1.7.1",
"codemirror": "5.32.0", "codemirror": "5.32.0",
"dayjs": "^1.8.29",
"decimal.js": "^10.2.0",
"driver.js": "^0.9.8",
"dropzone": "5.2.0", "dropzone": "5.2.0",
"echarts": "3.8.5",
"element-ui": "^2.13.0",
"echarts": "^5.3.2",
"element-ui": "^2.15.8",
"file-saver": "2.0.1", "file-saver": "2.0.1",
"font-awesome": "4.7.0", "font-awesome": "4.7.0",
"highlight.js": "^9.12.0",
"gantt-elastic": "^1.0.11",
"gantt-elastic-header": "^0.1.11",
"html2canvas": "^1.0.0-alpha.9", "html2canvas": "^1.0.0-alpha.9",
"js-cookie": "2.2.0", "js-cookie": "2.2.0",
"js-md5": "^0.7.3", "js-md5": "^0.7.3",
@ -32,81 +35,104 @@
"jszip": "3.2.1", "jszip": "3.2.1",
"mockjs": "1.0.1-beta3", "mockjs": "1.0.1-beta3",
"moment": "^2.24.0", "moment": "^2.24.0",
"node-sass": "^4.13.1",
"normalize.css": "7.0.0", "normalize.css": "7.0.0",
"nprogress": "0.2.0", "nprogress": "0.2.0",
"object-assign": "^4.1.1", "object-assign": "^4.1.1",
"quill-image-drop-module": "^1.0.3",
"quill-image-resize-module": "^3.0.0",
"screenfull": "3.3.2", "screenfull": "3.3.2",
"showdown": "1.8.5", "showdown": "1.8.5",
"simplemde": "1.11.2", "simplemde": "1.11.2",
"sortablejs": "1.7.0", "sortablejs": "1.7.0",
"vue": "2.6.10",
"vue": "2.6.14",
"vue-clipboard2": "^0.3.1", "vue-clipboard2": "^0.3.1",
"vue-contextmenujs": "^1.3.10",
"vue-count-to": "1.0.13", "vue-count-to": "1.0.13",
"vue-cropper": "^0.2.9", "vue-cropper": "^0.2.9",
"vue-gantt-schedule-timeline-calendar": "^1.0.33",
"vue-grid-layout": "^2.3.12",
"vue-i18n": "7.3.2", "vue-i18n": "7.3.2",
"vue-image-crop-upload": "^1.3.14",
"vue-multiselect": "2.0.8",
"vue-quill-editor": "^3.0.6",
"vue-okr-tree": "^1.0.10",
"vue-print-nb": "^1.7.5",
"vue-qr": "^4.0.6",
"vue-qriously": "^1.1.1",
"vue-router": "3.0.1", "vue-router": "3.0.1",
"vue-splitpane": "1.0.2",
"vuedraggable": "2.15.0", "vuedraggable": "2.15.0",
"vuex": "3.0.1", "vuex": "3.0.1",
"xlsx": "^0.14.1"
"wl-gantt": "^1.0.6",
"xlsx": "^0.14.5"
}, },
"devDependencies": { "devDependencies": {
"autoprefixer": "7.2.3",
"babel-core": "6.26.0",
"babel-eslint": "8.0.3",
"babel-helper-vue-jsx-merge-props": "2.0.3",
"babel-loader": "7.1.2",
"babel-plugin-syntax-jsx": "6.18.0",
"babel-plugin-transform-runtime": "6.23.0",
"babel-plugin-transform-vue-jsx": "3.5.0",
"babel-preset-env": "1.6.1",
"babel-preset-stage-2": "6.24.1",
"@babel/core": "^7.15.8",
"@babel/preset-env": "^7.15.8",
"@babel/preset-react": "^7.14.5",
"acorn": "^8.5.0",
"acorn-import-assertions": "^1.8.0",
"autoprefixer": "^10.3.7",
"babel-core": "^6.26.3",
"babel-loader": "^7.1.5",
"babel-plugin-syntax-jsx": "^6.18.0",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-plugin-transform-vue-jsx": "^3.7.0",
"babel-polyfill": "^6.26.0",
"babel-preset-env": "^1.7.0",
"babel-preset-es2015": "^6.24.1",
"babel-preset-stage-2": "^6.24.1",
"babel-runtime": "^6.26.0",
"chalk": "2.3.0", "chalk": "2.3.0",
"copy-webpack-plugin": "4.3.0",
"compression-webpack-plugin": "^9.0.0",
"copy-webpack-plugin": "^9.0.1",
"cross-env": "5.1.1", "cross-env": "5.1.1",
"css-loader": "0.28.7",
"css-loader": "^6.4.0",
"css-minimizer-webpack-plugin": "^3.1.1",
"cssnano": "^5.0.8",
"eslint": "4.13.1", "eslint": "4.13.1",
"eslint-friendly-formatter": "3.0.0", "eslint-friendly-formatter": "3.0.0",
"eslint-loader": "1.9.0", "eslint-loader": "1.9.0",
"eslint-plugin-html": "4.0.1", "eslint-plugin-html": "4.0.1",
"extract-text-webpack-plugin": "3.0.2",
"file-loader": "1.1.5",
"friendly-errors-webpack-plugin": "1.6.1",
"html-webpack-plugin": "2.30.1",
"extract-text-webpack-plugin": "^3.0.2",
"file-loader": "^6.2.0",
"friendly-errors-plugin": "^1.1.2",
"friendly-errors-webpack-plugin": "^1.7.0",
"html-webpack-plugin": "^5.4.0",
"less": "^4.1.2",
"less-loader": "^10.2.0",
"mini-css-extract-plugin": "^2.4.3",
"node-loader": "^2.0.0",
"node-notifier": "5.1.2", "node-notifier": "5.1.2",
"node-sass": "^4.5.0",
"optimize-css-assets-webpack-plugin": "3.2.0",
"node-sass": "^4.14.1",
"ora": "1.3.0", "ora": "1.3.0",
"portfinder": "1.0.13", "portfinder": "1.0.13",
"postcss": "^8.3.11",
"postcss-cssnext": "^3.1.1",
"postcss-import": "11.0.0", "postcss-import": "11.0.0",
"postcss-loader": "2.0.9",
"postcss-loader": "^6.2.0",
"postcss-merge-rules": "^5.0.2",
"postcss-url": "7.3.0", "postcss-url": "7.3.0",
"pushstate-server": "3.0.1", "pushstate-server": "3.0.1",
"quill-image-extend-module": "^1.1.2",
"rimraf": "2.6.2", "rimraf": "2.6.2",
"sass-loader": "6.0.6",
"sass-loader": "^12.2.0",
"script-loader": "0.7.2", "script-loader": "0.7.2",
"semver": "5.4.1", "semver": "5.4.1",
"shelljs": "0.7.8", "shelljs": "0.7.8",
"svg-sprite-loader": "3.5.2",
"uglifyjs-webpack-plugin": "1.1.3",
"url-loader": "0.6.2",
"vue-loader": "13.5.0",
"vue-style-loader": "3.0.3",
"vue-template-compiler": "2.6.10",
"webpack": "3.10.0",
"stream": "0.0.2",
"style-loader": "^3.3.1",
"svg-sprite-loader": "^6.0.10",
"terser-webpack-plugin": "^5.2.4",
"thread-loader": "^3.0.4",
"uglifyjs-webpack-plugin": "^2.2.0",
"url-loader": "^4.1.1",
"vue-loader": "^15.9.8",
"vue-style-loader": "^4.1.3",
"vue-template-compiler": "^2.6.14",
"vue-wxlogin": "^1.0.4",
"webpack": "^5.59.1",
"webpack-bundle-analyzer": "2.9.1", "webpack-bundle-analyzer": "2.9.1",
"webpack-dev-server": "2.9.7",
"webpack-cli": "^4.9.1",
"webpack-dev-middleware": "^5.2.1",
"webpack-dev-server": "^4.3.1",
"webpack-merge": "4.1.1" "webpack-merge": "4.1.1"
}, },
"engines": { "engines": {
"node": ">= 4.0.0",
"node": ">= 10.13.0",
"npm": ">= 3.0.0" "npm": ">= 3.0.0"
}, },
"browserslist": [ "browserslist": [

1
src/App.vue

@ -10,3 +10,4 @@
} }
</script> </script>

40
src/api/article.js

@ -1,40 +0,0 @@
import request from '@/utils/request'
export function fetchList(query) {
return request({
url: '/article/list',
method: 'get',
params: query
})
}
export function fetchArticle() {
return request({
url: '/article/detail',
method: 'get'
})
}
export function fetchPv(pv) {
return request({
url: '/article/pv',
method: 'get',
params: { pv }
})
}
export function createArticle(data) {
return request({
url: '/article/create',
method: 'post',
data
})
}
export function updateArticle(data) {
return request({
url: '/article/update',
method: 'post',
data
})
}

33
src/api/branch.js

@ -1,33 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base=config.getSysBasePath();
/**
* 管理端机构表机构下面若干部门
*1 默认只开放普通查询所有查询只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录数如果是0后台会自动计算总记录数非0不会自动计算}后台都会自动按分页查询 其它 api用到再打开没用到的api请注释掉
*2 查询新增修改的参数格式 params={id:'机构编号 主键',branchName:'机构名称',enabled:'是否可用',industryCategory:'行业分类',cuserid:'创建人编号',cdate:'创建日期',cusername:'创建人姓名',phoneNo:'联系电话',emaill:'邮件'}
**/
//普通查询 条件之间and关系
export const listBranchNoAuth = params => { return axios.get(`${base}/mdp/sys/branch/listBranchNoAuth`, { params: params }); };
//模糊查询管理端机构表(机构下面若干部门) 条件之间or关系
//export const listBranchKey = params => { return axios.get(`${base}/mdp/sys/branch/listKey`, { params: params }); };
//删除一条管理端机构表(机构下面若干部门) params={id:'机构编号 主键'}
export const delBranch = params => { return axios.post(`${base}/mdp/sys/branch/del`,params); };
//批量删除管理端机构表(机构下面若干部门) params=[{id:'机构编号 主键'}]
export const batchDelBranch = params => { return axios.post(`${base}/mdp/sys/branch/batchDel`, params); };
//修改一条管理端机构表(机构下面若干部门)记录
export const editBranch = params => { return axios.post(`${base}/mdp/sys/branch/edit`, params); };
//新增一条管理端机构表(机构下面若干部门)
export const addBranchNoAuth = params => { return axios.post(`${base}/mdp/sys/branch/addBranchNoAuth`, params); };
//新增一条企业入驻审核流程
export const addUserJoinBranchRequire = params => { return axios.post(`${base}/mdp/sys/userJoinBranchRequire/add`, params); };

283
src/api/common/code.js

@ -1,283 +0,0 @@
import axios from 'axios';
import config from '../../common/config.js';
let base = "/"+config.getContextName();
/***
* {
*
* }
*/
var cacheOptions={};
var cacheSeconds={};
var cacheOptionsBySecondCodeRows={};
var cacheCompanyDepts=null;
var cacheCompanyEmployees=null;
//默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:1,pageSize:10,total:0},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉,
//普通查询
export const listCode = params => { return axios.get(`${base}/sys/code/list`, { params: params }); };
//关键字模糊查询 {字段1:v1,字段2:v1,字段3:v1},字段驼峰命名,条件之间默认为or关系
export const listCodeKey = params => {
return axios.get(`${base}/sys/code/listKey`, { params: params });
};
/**
* 查询下拉选项目 参数为数组型参数 selectOptions( { fieldNames:['sex','age','student'],code:'all' } ),code为数据分类
* 返回结果为
* res.data.data:{
* sex:[{codeName:,codeValue:1,ifdefault:'1'},{codeName:,codeValue:2,ifdefault:'0'}],
* age:[{codeName:1,codeValue:1,ifdefault:'1'},{codeName:2,codeValue:2,ifdefault:'0'},{codeName:3,codeValue:3,ifdefault:'0'}]
* }
*/
export const selectCacheOptions = params => {
let code=params.code;
let fieldNames=params.fieldNames;
if(!cacheOptions[code]){
return new Promise((resolve, reject) => {
axios.get(`${base}/sys/code/selectOptions`, { params:params }).then(res=>{
let options=res.data.data;
cacheOptions[code]=options;
resolve({
data: {data:options}
});
});
});
}else{
let codeOptions=cacheOptions[code];
var lostFieldNames=[];
var cacheHasOptions={};
fieldNames.forEach(item=>{
if(codeOptions[item]){
cacheHasOptions[item]=codeOptions[item];
}else{
lostFieldNames.push(item);
}
});
if(lostFieldNames.length>0){
return new Promise((resolve, reject) => {
axios.get(`${base}/sys/code/selectOptions`, { params:{code:code,fieldNames:lostFieldNames} }).then(res=>{
let options2=res.data.data;
lostFieldNames.forEach(item=>{
codeOptions[item]=options2[item];
cacheHasOptions[item]=options2[item];
cacheOptions[code]=codeOptions;
});
resolve( {
data: {data:cacheHasOptions}
});
});
});
}else{
return new Promise((resolve, reject) => {
resolve( {
data: {data:cacheHasOptions}
});
});
}
}
};
/**
* 查询下拉选项目 参数为数组型参数 selectOptionsBySecondCodeRows( {secondCodeRows:['secondCodeRow1','secondCodeRow2']} )
* 返回结果为
* res.data.data:{
* secondCodeRow1:[{codeName:,codeValue:1,ifdefault:'1'},{codeName:,codeValue:2,ifdefault:'0'}],
* secondCodeRow1:[{codeName:1,codeValue:1,ifdefault:'1'},{codeName:2,codeValue:2,ifdefault:'0'},{codeName:3,codeValue:3,ifdefault:'0'}]
* }
*/
export const selectOptionsBySecondCodeRows = params => {
let secondCodeRows=params.secondCodeRows;
var lostSecondCodeRows=[];
var cacheHasOptions={};
secondCodeRows.forEach(item=>{
if(cacheOptionsBySecondCodeRows[item]){
cacheHasOptions[item]=cacheOptionsBySecondCodeRows[item];
}else{
lostSecondCodeRows.push(item);
}
});
if(lostSecondCodeRows.length>0){
return new Promise((resolve, reject) => {
axios.get(`${base}/sys/code/selectOptionsBySecondCodeRows`, { params:{secondCodeRows:lostSecondCodeRows }}).then(res=>{
let options2=res.data.data;
lostSecondCodeRows.forEach(item=>{
cacheOptionsBySecondCodeRows[item]=options2[item];
cacheHasOptions[item]=options2[item];
});
resolve( {
data: {data:cacheHasOptions}
});
});
});
}else{
return new Promise((resolve, reject) => {
resolve( {
data: {data:cacheHasOptions}
});
});
}
};
/**
* 查询下拉选项目 参数为数组型参数 selectOptions( { fieldNames:['sex','age','student'],code:'all' } ),code为数据分类
* 返回结果为
* res.data.data:{
* sex:[{codeName:,codeValue:1,ifdefault:'1'},{codeName:,codeValue:2,ifdefault:'0'}],
* age:[{codeName:1,codeValue:1,ifdefault:'1'},{codeName:2,codeValue:2,ifdefault:'0'},{codeName:3,codeValue:3,ifdefault:'0'}]
* }
*/
export const selectOptions = params => {
return axios.get(`${base}/sys/code/selectOptions`, { params:params })
};
//获取代码对应的名称 用于数据反显 如 getCodeName(options.sex,'1');
export const getCodeName = (options,codeValue)=>{
if(!options)return codeValue;
let code=options.filter(i=>i.codeValue==codeValue);
if(code.length>0){
return code[0].codeName
}else{
return codeValue
}
};
/**
* 获取某个字段的默认值
* getDefaultValue(options.sex,'1');
*/
export const getDefaultValue = (fieldOptions,defaultValue) =>{
if(fieldOptions==null || fieldOptions.length==0){
return defaultValue;
}
let defaultV=defaultValue;
fieldOptions.forEach(i=>{
if(i.ifdefault=='1'){
defaultV=i.codeValue;
}
});
return defaultV;
};
/**
* 根据一级分类列表查询所有的二级分类
* @param codes 分类编码 列表 ['JCBM_TPL','SystemParas']
* @return 返回如下格式的mapsecondCodeRow为主键,dtcodeId为编码dtcodeName中文描述
* {
* JCBM_TPL:[{secondCodeRow:'xxxx',dtcodeId:1,dtcodeName:},{secondCodeRow:'xxxx',dtcodeid:1,dtcodeName:}],
* SystemParas:[{secondCodeRow:'xxxx',dtcodeId:3,dtcodeName:其它},{secondCodeRow:'xxxx',dtcodeid:2,dtcodeName:其它2}]
* }
*/
export const selectSeconds = params => { return axios.get(`${base}/sys/code/selectSeconds`, { params:params }); };
/**
* 根据一级分类列表查询所有的二级分类
* @param codes 分类编码 列表 ['JCBM_TPL','SystemParas']
* @return 返回如下格式的mapsecondCodeRow为主键,dtcodeId为编码dtcodeName中文描述
* {
* JCBM_TPL:[{secondCodeRow:'xxxx',dtcodeId:1,dtcodeName:},{secondCodeRow:'xxxx',dtcodeid:1,dtcodeName:}],
* SystemParas:[{secondCodeRow:'xxxx',dtcodeId:3,dtcodeName:其它},{secondCodeRow:'xxxx',dtcodeid:2,dtcodeName:其它2}]
* }
*/
export const selectCacheSeconds = params => {
let codes=params.codes;
let lostCodes=[];
codes.forEach(item=>{
if(!cacheSeconds[item]){
lostCodes.push(item);
}
});
if(lostCodes.length>0){
return new Promise((resolve, reject) => {
selectSeconds({codes:lostCodes}).then(res=>{
let seconds=res.data.data;
lostCodes.forEach(item=>{
cacheSeconds[item]=seconds[item];
});
let result={};
codes.forEach(item=>{
result[item]=cacheSeconds[item];
});
resolve( {
data: {data:result}
});
});
});
}else{
let result={};
codes.forEach(item=>{
result[item]=cacheSeconds[item];
});
return new Promise((resolve, reject) => {
resolve( {
data: {data:result}
});
});
}
};
// [{dpetid:'',displayDeptid:'',deptName:'',shortName:'',pdeptid:''},{dpetid:'',displayDeptid:'',deptName:'',shortName:'',pdeptid:''}]
export const getCompanyDepts = () => {
if(cacheCompanyDepts!=null && cacheCompanyDepts.length>=0){
return new Promise((resolve, reject) => {
resolve( {
data: {data:cacheCompanyDepts}
});
});
}
return axios.get(`${base}/sys/code/companyDepts`).then(res=>{
if(res.data.data==null){
cacheCompanyDepts=[];
}else{
cacheCompanyDepts=res.data.data;
}
return new Promise((resolve, reject) => {
resolve( {
data: {data:cacheCompanyDepts}
});
});
});
};
//[{userid:'',displayUserid:'',username:'',deptid:'',shortName:'',deptName:''},{userid:'',displayUserid:'',username:'',deptid:'',shortName:'',deptName:''}]
export const getCompanyEmployees = () => {
if(cacheCompanyEmployees!=null && cacheCompanyEmployees.length>=0){
return new Promise((resolve, reject) => {
resolve( {
data: {data:cacheCompanyEmployees}
});
});
}
return axios.get(`${base}/sys/code/companyEmployees`).then(res=>{
if(res.data.data==null){
cacheCompanyEmployees=[];
}else{
cacheCompanyEmployees=res.data.data;
}
return new Promise((resolve, reject) => {
resolve( {
data: {data:cacheCompanyEmployees}
});
});
});
};

125
src/api/itemOption.js

@ -1,125 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base=config.getSysBasePath();
/**
* 数据项取值列表
*1 默认只开放普通查询所有查询只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录数如果是0后台会自动计算总记录数非0不会自动计算}后台都会自动按分页查询 其它 api用到再打开没用到的api请注释掉
*2 查询新增修改的参数格式 params={id:'主键 主键',itemId:'数据项编号',optionValue:'选项值',optionName:'选项名称',keys:'快捷键',isShow:'是否显示',seqOrder:'顺序',fp:'第一扩展字段',tp:'第三扩展字段',sp:'第二扩展字段',isDefault:'是否默认',cdate:'创建日期',branchId:'机构编号',deptid:'部门编号'}
**/
//普通查询 条件之间and关系
export const listItemOption = params => { return axios.get(`${base}/mdp/meta/itemOption/list`, { params: params }); };
//普通查询 条件之间and关系 params=[{categoryId:'0001',itemCode:'sex'}] 返回结果 {'sex':[{optionValue:'1',optionName:'男',seqOrder:'1',fp:'',isDefault:'0'},{optionValue:'2',optionName:'女',seqOrder:'2',fp:'',isDefault:'0'}]}
export const listOption = params => {
var date=new Date();
var dateStr=date.getFullYear()+"-"+date.getMonth()+"-"+date.getDay()
var result={
data:{
tips:{
isOk:true,
},
data:{
}
}
}
var noExistsParams=params.filter(i=>{
var key=i.categoryId+"-"+i.itemCode+"-"+dateStr;
var options = localStorage.getItem(key);
if(options){
result.data.data[i.itemCode]=JSON.parse(options)
return false
}return true;
});
return new Promise((resolve,reject) => {
if(noExistsParams.length>0){
axios.post(`${base}/mdp/meta/itemOption/list/byItemCode`, noExistsParams ).then(res=>{
var tips = res.data.tips;
if(tips.isOk){
var data=res.data.data;
noExistsParams.forEach(k=>{
var key=k.categoryId+"-"+k.itemCode+"-"+dateStr;
localStorage.setItem(key, JSON.stringify(data[k.itemCode]));
result.data.data[k.itemCode]= data[k.itemCode]
})
}else{
result.data.tips=tips;
}
resolve(result);
}).catch(e=>reject(e));
}else{
resolve(result);
}
});
};
export const listOptionByItemIds = params => {
var date=new Date();
var dateStr=date.getFullYear()+"-"+date.getMonth()+"-"+date.getDay()
var result={
data:{
tips:{
isOk:true,
},
data:{
}
}
}
var noExistsParams=params.filter(i=>{
var key=i+"-"+dateStr;
var options = localStorage.getItem(key);
if(options){
var optionsJson=JSON.parse(options);
result.data.data[i]=optionsJson
return false
}return true;
});
return new Promise((resolve,reject) => {
if(noExistsParams.length>0){
axios.post(`${base}/mdp/meta/itemOption/listItemOptionByItemIds`, noExistsParams ).then(res=>{
var tips = res.data.tips;
if(tips.isOk){
var data=res.data.data;
noExistsParams.forEach(k=>{
var key= k+"-"+dateStr;
localStorage.setItem(key, JSON.stringify(data[k]));
result.data.data[k]= data[k]
})
}else{
result.data.tips=tips;
}
resolve(result);
}).catch(e=>reject(e));
}else{
resolve(result);
}
});
};
//params={id:''} 返回 {optionValue:'1',optionName:'男',seqOrder:'1',fp:'',isDefault:'0'}
export const getSysParam = params => { return axios.post(`${base}/mdp/meta/itemOption/sysParam`, params ); };
//模糊查询数据项取值列表 条件之间or关系
//export const listItemOptionKey = params => { return axios.get(`${base}/mdp/meta/itemOption/listKey`, { params: params }); };
//删除一条数据项取值列表 params={id:'主键 主键'}
export const delItemOption = params => { return axios.post(`${base}/mdp/meta/itemOption/del`,params); };
//批量删除数据项取值列表 params=[{id:'主键 主键'}]
export const batchDelItemOption = params => { return axios.post(`${base}/mdp/meta/itemOption/batchDel`, params); };
//修改一条数据项取值列表记录
export const editItemOption = params => { return axios.post(`${base}/mdp/meta/itemOption/edit`, params); };
//新增一条数据项取值列表
export const addItemOption = params => { return axios.post(`${base}/mdp/meta/itemOption/add`, params); };

126
src/api/login.js

@ -1,19 +1,34 @@
import axios from '@/utils/request'
import axios from '@/utils/request'
import axiosNoAuth from '@/utils/requestNoAuth'
import { getToken, setToken, removeToken,getCacheUserInfo,setCacheUserInfo,removeCacheUserInfo} from '@/utils/auth' import { getToken, setToken, removeToken,getCacheUserInfo,setCacheUserInfo,removeCacheUserInfo} from '@/utils/auth'
import config from '@/common/config'
import config from '@/api/mdp_pub/mdp_config'
let base=config.getOauth2LoginBasePath();
let base=config.getOauth2LoginContext();
//let base=''; //let base='';
export function doLoginByUserloginid(userloginid, password,grantType,authType,deptid) {
removeToken();
export function doLoginByUserloginid(userloginid, password,grantType,authType,deptid,userid) {
const data = {
userloginid: userloginid,
password: password,
authType:authType,
deptid:deptid,
userid:userid,
}
return axiosNoAuth({
url: base+'/login/token?grantType='+grantType,
method: 'post',
data
})
}
export function switchUser(userloginid, password,grantType,authType,deptid,userid) {
const data = { const data = {
userloginid: userloginid, userloginid: userloginid,
password: password, password: password,
authType:authType, authType:authType,
deptid:deptid
deptid:deptid,
userid:userid,
} }
return axios({ return axios({
url: base+'/login/token?grantType='+grantType, url: base+'/login/token?grantType='+grantType,
@ -21,40 +36,64 @@ export function doLoginByUserloginid(userloginid, password,grantType,authType,de
data data
}) })
} }
export function checkUserid(userid ) {
removeToken();
export function setDefLogin(userid,defLogin) {
const data = { const data = {
userid: userid
userid: userid,
defLogin:defLogin
} }
return axios({ return axios({
url: base+'/user/setDefLogin',
method: 'post',
data
})
}
export function checkUserid(userid ) {
const data = {
userid: userid
}
return axiosNoAuth({
url: base+'/user/check/userid', url: base+'/user/check/userid',
method: 'post', method: 'post',
data data
}) })
} }
export function checkDisplayUserid(displayUserid ) {
removeToken();
export function checkDisplayUserid(displayUserid ) {
const data = { const data = {
displayUserid: displayUserid displayUserid: displayUserid
} }
return axios({
return axiosNoAuth({
url: base+'/user/check/displayUserid', url: base+'/user/check/displayUserid',
method: 'post', method: 'post',
data data
}) })
} }
export function checkPhoneno(phoneno ) {
removeToken();
export function updatePhoneno(params ) {
const data = params
return axios({
url: base+'/user/update/phoneno',
method: 'post',
data
})
}
export function checkPhoneno(phoneno ) {
const data = { const data = {
phoneno: phoneno phoneno: phoneno
} }
return axios({
return axiosNoAuth({
url: base+'/user/check/phoneno', url: base+'/user/check/phoneno',
method: 'post', method: 'post',
data data
}) })
} }
export function queryByUserloginid( params ) {
return axiosNoAuth({
url: base+'/user/queryByUserloginid',
method: 'get',
params:params
})
}
export function doRegister( userInfo ) { export function doRegister( userInfo ) {
removeToken(); removeToken();
const data = { const data = {
@ -64,7 +103,8 @@ export function doRegister( userInfo ) {
password:userInfo.password, password:userInfo.password,
phoneno:userInfo.phoneno, phoneno:userInfo.phoneno,
smsCode:userInfo.smsCode, smsCode:userInfo.smsCode,
deptid:userInfo.deptid
deptid:userInfo.deptid,
branchId:userInfo.branchId
} }
return axios({ return axios({
url: base+'/user/register', url: base+'/user/register',
@ -74,11 +114,11 @@ export function doRegister( userInfo ) {
} }
export function resetPasswordByPhoneno( userInfo ) { export function resetPasswordByPhoneno( userInfo ) {
removeToken();
const data = {
const data = {
newPassword:userInfo.newPassword, newPassword:userInfo.newPassword,
phoneno:userInfo.phoneno, phoneno:userInfo.phoneno,
smsCode:userInfo.smsCode, smsCode:userInfo.smsCode,
userid:userInfo.userid
} }
return axios({ return axios({
url: base+'/user/password/reset?type=sms', url: base+'/user/password/reset?type=sms',
@ -109,3 +149,53 @@ export function getUserInfo(params) {
data data
}) })
} }
/**
* 发送邮件
*/
export function sendEmail(params) {
const data=params;
return axiosNoAuth({
url: base+'/user/sendEmail',
method: 'post',
data
})
}
/**
* 验证邮箱
*/
export function validEmailCode(params) {
return axios({
url: base+'/user/validEmailCode',
method: 'get',
params:params
})
}
/**
* 获取第三方登录需要state参数防止crfs攻击
* @param
* @returns
*/
export function getTpaState( ) {
return axiosNoAuth({
url: '/tpa/login/wechat/wxpub/state',
method: 'post',
data:{}
})
}
/**
* 获取查询当前登录账户的所有关联账户
* @returns
*/
export function queryMyUsers( ) {
return axios({
url: base+'/user/queryMyUsers',
method: 'get'
})
}

11
src/api/login/user.js

@ -1,11 +0,0 @@
import axios from 'axios';
import config from '../../common/config.js';
let base = "/"+config.getContextName();
//没用到的api请注释掉
export const userLogin = params => { return axios.post(`${base}/common/login`, params) };
export const userReg = params => { return axios.post(`${base}/common/user/reg/web`, params) };

46
src/api/mdp/arc/archive.js

@ -1,46 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base=config.getArcBasePath();
/**
* 档案信息表
*1 默认只开放普通查询所有查询只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录数如果是0后台会自动计算总记录数非0不会自动计算}后台都会自动按分页查询 其它 api用到再打开没用到的api请注释掉
*2 查询新增修改的参数格式 params={id:'主键 主键',tagNames:'标签名多个,分割',deptid:'创建部门',userid:'创建人',isShare:'是否共享',url:'访问路径',archiveAbstract:'摘要',archiveContext:'内容',archiveTitle:'标题',archivingUserid:'归档人',isFromArchiving:'是否来自归档',archivingDate:'归档日期',createDate:'创建日期',authorUserid:'作者编号',authorName:'作者名称',canDel:'是否可删除',canEdit:'是否可修改',canRead:'是否可读',bizKey:'业务编号',encryptType:'加密方式0不加密1私钥2公钥',canComment:'开放评论',status:'0草稿1发布2取消发布',isStorageDir:'是否存到硬盘',branchId:'机构编号'}
**/
//普通查询 条件之间and关系
export const listArchive = params => { return axios.get(`${base}/mdp/arc/archive/list`, { params: params }); };
export const getOneArchive = params => { return axios.get(`${base}/mdp/arc/archive/one`, { params: params }); };
//模糊查询档案信息表 条件之间or关系
//export const listArchiveKey = params => { return axios.get(`${base}/mdp/arc/archive/listKey`, { params: params }); };
//删除一条档案信息表 params={id:'主键 主键'}
export const delArchive = params => { return axios.post(`${base}/mdp/arc/archive/del`,params); };
//批量删除档案信息表 params=[{id:'主键 主键'}]
export const batchDelArchive = params => { return axios.post(`${base}/mdp/arc/archive/batchDel`, params); };
//修改一条档案信息表记录
export const editArchive = params => { return axios.post(`${base}/mdp/arc/archive/edit`, params); };
//新增一条档案信息表
export const addArchive = params => { return axios.post(`${base}/mdp/arc/archive/add`, params); };
//打开评论
export const openComment = params => { return axios.post(`${base}/mdp/arc/archive/comment/open`, params); };
//关闭评论
export const closeComment = params => { return axios.post(`${base}/mdp/arc/archive/comment/close`, params); };
//发布
export const publish = params => { return axios.post(`${base}/mdp/arc/archive/publish`, params); };
//取消发布
export const unPublish = params => { return axios.post(`${base}/mdp/arc/archive/unpublish`, params); };
//新增一个
export const addWorkflowArchive = params => { return axios.post(`${base}/mdp/arc/archive/add/workflow`, params); };

26
src/api/mdp/arc/archiveAttachment.js

@ -1,26 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base=config.getArcBasePath();
//普通查询
export const listArchiveAttachment = params => { return axios.get(`${base}/mdp/arc/file/list`, { params: params }); };
//将base64的图片数据保存为png图片附件
export const uploadBase64ArchiveAttachment = params => { return axios.post(`${base}/mdp/arc/file/upload/base64`, params); };
//关键字模糊查询 {字段1:v1,字段2:v1,字段3:v1},字段驼峰命名,条件之间默认为or关系
//export const listArchiveAttachmentKey = params => { return axios.get(`${base}/mdp/arc/file/listKey`, { params: params }); };
//删除一个
export const delArchiveAttachment = params => { return axios.post(`${base}/mdp/arc/file/del`,params); };
//批量删除
export const batchDelArchiveAttachment = params => { return axios.post(`${base}/mdp/arc/file/batchDel`, params); };
//修改一个
export const editArchiveAttachment = params => { return axios.post(`${base}/mdp/arc/file/edit`, params); };
//新增一个
export const addArchiveAttachment = params => { return axios.post(`${base}/mdp/arc/file/add`, params); };

28
src/api/mdp/arc/category.js

@ -1,28 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base=config.getArcBasePath();
//默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:1,pageSize:10,total:0},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉,
//普通查询
export const listCategory = params => { return axios.get(`${base}/mdp/arc/category/list`, { params: params }); };
//普通查询
export const listTreeCategory = params => { return axios.get(`${base}/mdp/arc/category/list/tree`, { params: params }); };
//关键字模糊查询 {字段1:v1,字段2:v1,字段3:v1},字段驼峰命名,条件之间默认为or关系
//export const listCategoryKey = params => { return axios.get(`${base}/mdp/arc/category/listKey`, { params: params }); };
//删除一个
export const delCategory = params => { return axios.post(`${base}/mdp/arc/category/del`,params); };
//批量删除
export const batchDelCategory = params => { return axios.post(`${base}/mdp/arc/category/batchDel`, params); };
//修改一个
export const editCategory = params => { return axios.post(`${base}/mdp/arc/category/edit`, params); };
//新增一个
export const addCategory = params => { return axios.post(`${base}/mdp/arc/category/add`, params); };

34
src/api/mdp/arc/image.js

@ -1,34 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base=config.getArcBasePath();
/**
* 图片素材库
*1 默认只开放普通查询所有查询只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录数如果是0后台会自动计算总记录数非0不会自动计算}后台都会自动按分页查询 其它 api用到再打开没用到的api请注释掉
*2 查询新增修改的参数格式 params={id:'主键 主键',name:'附件名称',url:'访问路径',relativePath:'硬盘存放路径',fileSuffix:'后缀名',rootPath:'根目录',createDate:'存入时间',fileSize:'文件大小',deptid:'归属部门',tag:'标签',remark:'备注信息',categoryId:'图片分类',storageName:'硬盘存储名字(不带后缀)',urlPrefix:'链接前缀',isOutUrl:'是否外部链接',outUrl:'外部链接',branchId:'机构编号'}
**/
//普通查询 条件之间and关系
export const listImage = params => { return axios.get(`${base}/mdp/arc/image/list`, { params: params }); };
//模糊查询图片素材库 条件之间or关系
//export const listImageKey = params => { return axios.get(`${base}/mdp/arc/image/listKey`, { params: params }); };
//删除一条图片素材库 params={id:'主键 主键'}
export const delImage = params => { return axios.post(`${base}/mdp/arc/image/del`,params); };
//批量删除图片素材库 params=[{id:'主键 主键'}]
export const batchDelImage = params => { return axios.post(`${base}/mdp/arc/image/batchDel`, params); };
//修改一条图片素材库记录
export const editImage = params => { return axios.post(`${base}/mdp/arc/image/edit`, params); };
//新增一条图片素材库
export const addImage = params => { return axios.post(`${base}/mdp/arc/image/add`, params); };
//获取图片分类名
export const listTags = params => { return axios.get(`${base}/mdp/arc/image/listTags`, params); };
export const uploadBase64 = params => { return axios.post(`${base}/mdp/arc/image/upload/base64`, params); };

32
src/api/mdp/arc/imageCategory.js

@ -1,32 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base=config.getArcBasePath();
/**
* 图片分类
*1 默认只开放普通查询所有查询只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录数如果是0后台会自动计算总记录数非0不会自动计算}后台都会自动按分页查询 其它 api用到再打开没用到的api请注释掉
*2 查询新增修改的参数格式 params={id:'主键 主键',categoryName:'分类名称',branchId:'机构编号'}
**/
//普通查询 条件之间and关系
export const listImageCategory = params => { return axios.get(`${base}/mdp/arc/imageCategory/list`, { params: params }); };
//模糊查询图片分类 条件之间or关系
//export const listImageCategoryKey = params => { return axios.get(`${base}/mdp/arc/imageCategory/listKey`, { params: params }); };
//删除一条图片分类 params={id:'主键 主键'}
export const delImageCategory = params => { return axios.post(`${base}/mdp/arc/imageCategory/del`,params); };
//批量删除图片分类 params=[{id:'主键 主键'}]
export const batchDelImageCategory = params => { return axios.post(`${base}/mdp/arc/imageCategory/batchDel`, params); };
//修改一条图片分类记录
export const editImageCategory = params => { return axios.post(`${base}/mdp/arc/imageCategory/edit`, params); };
//新增一条图片分类
export const addImageCategory = params => { return axios.post(`${base}/mdp/arc/imageCategory/add`, params); };
//查分类树
export const getImageCategoryTrees = params => { return axios.get(`${base}/mdp/arc/imageCategory/list/trees`, { params: params }); };

36
src/api/mdp/arc/tag.js

@ -1,36 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base = config.getArcBasePath();
/**
* arc_tag
*1 默认只开放普通查询所有查询只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录数如果是0后台会自动计算总记录数非0不会自动计算}后台都会自动按分页查询 其它 api用到再打开没用到的api请注释掉
*2 查询新增修改的参数格式 params={id:'标签编号 主键',tagName:'标签名',branchId:'机构号',shopId:'商户编号',categoryId:'标签分组'}
**/
//普通查询 条件之间and关系
export const listTag = params => { return axios.get(`${base}/mdp/arc/tag/list`, { params: params }); };
//模糊查询arc_tag 条件之间or关系
//export const listTagKey = params => { return axios.get(`${base}/mdp/arc/tag/listKey`, { params: params }); };
//删除一条arc_tag params={id:'标签编号 主键'}
export const delTag = params => { return axios.post(`${base}/mdp/arc/tag/del`,params); };
//批量删除arc_tag params=[{id:'标签编号 主键'}]
export const batchDelTag = params => { return axios.post(`${base}/mdp/arc/tag/batchDel`, params); };
//修改一条arc_tag记录
export const editTag = params => { return axios.post(`${base}/mdp/arc/tag/edit`, params); };
//新增一条arc_tag
export const addTag = params => { return axios.post(`${base}/mdp/arc/tag/add`, params); };
export const getAllTag = params => { return axios.get(`${base}/mdp/arc/tag/getAllTag`, { params: params }); };
//新增一条arc_tag
export const deleteTagCategory= params => { return axios.post(`${base}/mdp/arc/tag/deleteTagCategory`, params); };

30
src/api/mdp/arc/tagCategory.js

@ -1,30 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base = config.getArcBasePath();
/**
* arc_tag_category
*1 默认只开放普通查询所有查询只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录数如果是0后台会自动计算总记录数非0不会自动计算}后台都会自动按分页查询 其它 api用到再打开没用到的api请注释掉
*2 查询新增修改的参数格式 params={id:'分组编号 主键',branchId:'机构号',shopId:'商户编号',categoryName:'分组名称'}
**/
//普通查询 条件之间and关系
export const listTagCategory = params => { return axios.get(`${base}/mdp/arc/tagCategory/list`, { params: params }); };
//模糊查询arc_tag_category 条件之间or关系
//export const listTagCategoryKey = params => { return axios.get(`${base}/mdp/arc/tagCategory/listKey`, { params: params }); };
//删除一条arc_tag_category params={id:'分组编号 主键'}
export const delTagCategory = params => { return axios.post(`${base}/mdp/arc/tagCategory/del`,params); };
//批量删除arc_tag_category params=[{id:'分组编号 主键'}]
export const batchDelTagCategory = params => { return axios.post(`${base}/mdp/arc/tagCategory/batchDel`, params); };
//修改一条arc_tag_category记录
export const editTagCategory = params => { return axios.post(`${base}/mdp/arc/tagCategory/edit`, params); };
//新增一条arc_tag_category
export const addTagCategory = params => { return axios.post(`${base}/mdp/arc/tagCategory/add`, params); };

11
src/api/mdp/attendance/attendace.js

@ -1,11 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
const base = config.getOaBasePath()
export const listAttendanceMonth = params => {
return axios.get(`${base}/kq/attendance/monthRecord`,
{ params: params })
}

22
src/api/mdp/form/formData.js

@ -1,25 +1,28 @@
import axios from '@/utils/request' import axios from '@/utils/request'
import config from '@/common/config'
let base = config.getFormBasePath();
import config from '@/api/mdp_pub/mdp_config'
let base = config.getFormContext();
/**-------------------------与后端通讯接口------------------请写在下面-------------------------------------------- */
/** /**
* 表单数据表 * 表单数据表
*1 默认只开放普通查询所有查询只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录数如果是0后台会自动计算总记录数非0不会自动计算}后台都会自动按分页查询 其它 api用到再打开没用到的api请注释掉
*2 查询新增修改的参数格式 params={id:'主键 主键',two:'属性二',three:'属性三',four:'属性四',five:'属性五',six:'属性六',seven:'属性七',eight:'属性八',nine:'属性九',ten:'属性十',lastTime:'最后更新日期',one:'属性一',zero:'属性零',remark:'备注',formId:'表单编号',userid:'最后更新人',eleven:'字段十一',twelve:'字段十二',thirteen:'字段十三',fourteen:'字段十四',fifteen:'字段十五',attachmentUrls:'附件url多个',attachmentNames:'附件名称多个',branchId:'机构编号',bizKey:'唯一确定该业务的主键',deptid:'创建部门'}
*1 默认只开放普通查询所有查询只要上传 分页参数 {pageNum:当前页码从1开始,pageSize:每页记录数,total:总记录数如果是0后台会自动计算总记录数非0不会自动计算}后台都会自动按分页查询 其它 api用到再打开没用到的api请注释掉
*2 查询新增修改的参数格式 params={id:'主键 主键',two:'属性二',three:'属性三',four:'属性四',five:'属性五',six:'属性六',seven:'属性七',eight:'属性八',nine:'属性九',ten:'属性十',lastTime:'最后更新日期',one:'属性一',zero:'属性零',remark:'备注',formId:'表单编号',userid:'最后更新人',eleven:'字段十一',twelve:'字段十二',thirteen:'字段十三',fourteen:'字段十四',fifteen:'字段十五',attachmentUrls:'附件url多个',attachmentNames:'附件名称多个',branchId:'机构编号',bizKey:'唯一确定该业务的主键竖线分隔多个,如果是联合组件的话',deptid:'创建部门',flowState:'0初始1审批中2结束审批',createTime:'创建时间',dqxCode:'数据权限码',cuserid:'创建人编号',tagIds:'标签编号列表逗号分割',tagNames:'标签名列表逗号分割',cusername:'创建人姓名',deptName:'创建部门'}
**/ **/
//普通查询 条件之间and关系 //普通查询 条件之间and关系
export const listFormData = params => { return axios.get(`${base}/mdp/form/formData/list`, { params: params }); }; export const listFormData = params => { return axios.get(`${base}/mdp/form/formData/list`, { params: params }); };
//模糊查询表单数据表 条件之间or关系
//export const listFormDataKey = params => { return axios.get(`${base}/mdp/form/formData/listKey`, { params: params }); };
//普通查询 条件之间and关系
export const queryFormDataById = params => { return axios.get(`${base}/mdp/form/formData/queryById`, { params: params }); };
//删除一条表单数据表 params={id:'主键 主键'} //删除一条表单数据表 params={id:'主键 主键'}
export const delFormData = params => { return axios.post(`${base}/mdp/form/formData/del`,params); }; export const delFormData = params => { return axios.post(`${base}/mdp/form/formData/del`,params); };
//批量删除表单数据表 params=[{id:'主键 主键'}]
export const batchAddFormData = params => { return axios.post(`${base}/mdp/form/formData/batchAdd`, params); };
//批量删除表单数据表 params=[{id:'主键 主键'}] //批量删除表单数据表 params=[{id:'主键 主键'}]
export const batchDelFormData = params => { return axios.post(`${base}/mdp/form/formData/batchDel`, params); }; export const batchDelFormData = params => { return axios.post(`${base}/mdp/form/formData/batchDel`, params); };
@ -27,4 +30,7 @@ export const batchDelFormData = params => { return axios.post(`${base}/mdp/form/
export const editFormData = params => { return axios.post(`${base}/mdp/form/formData/edit`, params); }; export const editFormData = params => { return axios.post(`${base}/mdp/form/formData/edit`, params); };
//新增一条表单数据表 //新增一条表单数据表
export const addFormData = params => { return axios.post(`${base}/mdp/form/formData/add`, params); };
export const addFormData = params => { return axios.post(`${base}/mdp/form/formData/add`, params); };
//批量修改某些字段
export const editSomeFieldsFormData = params => { return axios.post(`${base}/mdp/form/formData/editSomeFields`, params); };

4
src/api/mdp/form/formDataTag.js

@ -1,8 +1,8 @@
import axios from '@/utils/request' import axios from '@/utils/request'
import config from '@/common/config'
import config from '@/api/mdp_pub/mdp_config'
let base = config.getFormBasePath();
let base = config.getFormContext();
/** /**

24
src/api/mdp/form/formDef.js

@ -1,36 +1,42 @@
import axios from '@/utils/request' import axios from '@/utils/request'
import config from '@/common/config'
let base = config.getFormBasePath();
import config from '@/api/mdp_pub/mdp_config'
let base = config.getFormContext();
/**-------------------------与后端通讯接口------------------请写在下面-------------------------------------------- */
/** /**
* 表单定义 * 表单定义
*1 默认只开放普通查询所有查询只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录数如果是0后台会自动计算总记录数非0不会自动计算}后台都会自动按分页查询 其它 api用到再打开没用到的api请注释掉
*2 查询新增修改的参数格式 params={id:'主键 主键',tableName:'表名',tableOwner:'表名拥有者',isCreateTable:'是否已经创建库表',formName:'表单名称',userid:'创建人',deptid:'创建部门',formType:'表单类型',isTemplate:'是否为模板',bizType:'业务分类',ctime:'创建日期',branchId:'机构编号'}
*1 默认只开放普通查询所有查询只要上传 分页参数 {pageNum:当前页码从1开始,pageSize:每页记录数,total:总记录数如果是0后台会自动计算总记录数非0不会自动计算}后台都会自动按分页查询 其它 api用到再打开没用到的api请注释掉
*2 查询新增修改的参数格式 params={id:'主键 主键',tableName:'表名',tableOwner:'表名拥有者',isCreateTable:'是否已经创建库表',formName:'表单名称',userid:'创建人',deptid:'创建部门',formType:'表单类型',isTemplate:'是否为模板',bizType:'业务分类',ctime:'创建日期',branchId:'机构编号',categoryId:'分类编号',tagIds:'标签编号列表',tagNames:'标签名字列表',username:'创建人姓名',deptName:'创建部门',groupsJson:'表单元素分组',pks:'主键列表,逗号分割'}
**/ **/
//普通查询 条件之间and关系 //普通查询 条件之间and关系
export const listFormDef = params => { return axios.get(`${base}/mdp/form/formDef/list`, { params: params }); }; export const listFormDef = params => { return axios.get(`${base}/mdp/form/formDef/list`, { params: params }); };
//模糊查询表单定义 条件之间or关系
//export const listFormDefKey = params => { return axios.get(`${base}/mdp/form/formDef/listKey`, { params: params }); };
//普通查询 条件之间and关系
export const queryFormDefById = params => { return axios.get(`${base}/mdp/form/formDef/queryById`, { params: params }); };
//删除一条表单定义 params={id:'主键 主键'} //删除一条表单定义 params={id:'主键 主键'}
export const delFormDef = params => { return axios.post(`${base}/mdp/form/formDef/del`,params); }; export const delFormDef = params => { return axios.post(`${base}/mdp/form/formDef/del`,params); };
//批量删除表单定义 params=[{id:'主键 主键'}]
export const batchAddFormDef = params => { return axios.post(`${base}/mdp/form/formDef/batchAdd`, params); };
//批量删除表单定义 params=[{id:'主键 主键'}] //批量删除表单定义 params=[{id:'主键 主键'}]
export const batchDelFormDef = params => { return axios.post(`${base}/mdp/form/formDef/batchDel`, params); }; export const batchDelFormDef = params => { return axios.post(`${base}/mdp/form/formDef/batchDel`, params); };
//修改一条表单定义记录 //修改一条表单定义记录
export const editFormDef = params => { return axios.post(`${base}/mdp/form/formDef/edit`, params); }; export const editFormDef = params => { return axios.post(`${base}/mdp/form/formDef/edit`, params); };
//新增一
//新增一条表单定义
export const addFormDef = params => { return axios.post(`${base}/mdp/form/formDef/add`, params); }; export const addFormDef = params => { return axios.post(`${base}/mdp/form/formDef/add`, params); };
//新增一个及其属性多个 {formDef:{formName:'',formId:''},formFields:[{fieldId:'',fieldTitle:''},{fieldId:'',fieldTitle:''}]} //新增一个及其属性多个 {formDef:{formName:'',formId:''},formFields:[{fieldId:'',fieldTitle:''},{fieldId:'',fieldTitle:''}]}
export const addFormDefAndFields = params => { return axios.post(`${base}/mdp/form/formDef/addFormDefAndFields`, params); }; export const addFormDefAndFields = params => { return axios.post(`${base}/mdp/form/formDef/addFormDefAndFields`, params); };
//新增一个及其属性多个 {formDef:{formName:'',formId:''},formFields:[{fieldId:'',fieldTitle:''},{fieldId:'',fieldTitle:''}]} //新增一个及其属性多个 {formDef:{formName:'',formId:''},formFields:[{fieldId:'',fieldTitle:''},{fieldId:'',fieldTitle:''}]}
export const editFormDefAndFields = params => { return axios.post(`${base}/mdp/form/formDef/editFormDefAndFields`, params); };
export const editFormDefAndFields = params => { return axios.post(`${base}/mdp/form/formDef/editFormDefAndFields`, params); };
//批量修改某些字段
export const editSomeFieldsFormDef= params => { return axios.post(`${base}/mdp/form/formDef/editSomeFields`, params); };

4
src/api/mdp/form/formDefTag.js

@ -1,8 +1,8 @@
import axios from '@/utils/request' import axios from '@/utils/request'
import config from '@/common/config'
import config from '@/api/mdp_pub/mdp_config'
let base = config.getFormBasePath();
let base = config.getFormContext();
/** /**

4
src/api/mdp/form/formField.js

@ -1,8 +1,8 @@
import axios from '@/utils/request' import axios from '@/utils/request'
import config from '@/common/config'
import config from '@/api/mdp_pub/mdp_config'
let base = config.getFormBasePath();
let base = config.getFormContext();
/** /**

22
src/api/mdp/form/formQx.js

@ -1,25 +1,28 @@
import axios from '@/utils/request' import axios from '@/utils/request'
import config from '@/common/config'
let base = config.getFormBasePath();
import config from '@/api/mdp_pub/mdp_config'
let base = config.getFormContext();
/**-------------------------与后端通讯接口------------------请写在下面-------------------------------------------- */
/** /**
* 表单权限 * 表单权限
*1 默认只开放普通查询所有查询只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录数如果是0后台会自动计算总记录数非0不会自动计算}后台都会自动按分页查询 其它 api用到再打开没用到的api请注释掉
*2 查询新增修改的参数格式 params={formId:'表单编号 主键',allowQueryRoleids:'允许那些角色查询,号分割',allowQueryDeptids:'允许那些部门查询,号分割',allowQueryUserids:'允许哪些人查询,号分割',notQueryRoleids:'禁止哪些角色查询',notQueryDeptids:'禁止哪些部门查询',notQueryUserids:'禁止哪些人查询',allowOtherQuery:'是否允许其它人查询',allowOtherEdit:'是否允许其它人修改',allowOtherDel:'是否允许其它人删除',doDeptLvlCheck:'是否进行部门级别传递权限检查',deptLvlQx:'部门级别权限'}
*1 默认只开放普通查询所有查询只要上传 分页参数 {pageNum:当前页码从1开始,pageSize:每页记录数,total:总记录数如果是0后台会自动计算总记录数非0不会自动计算}后台都会自动按分页查询 其它 api用到再打开没用到的api请注释掉
*2 查询新增修改的参数格式 params={formId:'表单编号 主键',qryRoleids:'允许那些角色查询,号分割',qryDeptids:'允许那些部门查询,号分割',qryUserids:'允许哪些人查询,号分割',nqRoleids:'禁止哪些角色查询',nqDeptids:'禁止哪些部门查询',nqUserids:'禁止哪些人查询',othQuery:'是否允许其它人查询',othEdit:'是否允许其它人修改',othDel:'是否允许其它人删除',lvlCheck:'是否进行部门级别传递权限检查',qryMinLvl:'最低级别查询权限',editRoleids:'允许那些角色更新,号分割',editDeptids:'允许那些部门更新,号分割',editUserids:'允许哪些人更新号分割',neRoleids:'禁止哪些角色更新',neDeptids:'禁止哪些部门更新',neUserids:'禁止哪些人更新',delRoleids:'允许那些角色删除,号分割',delDeptids:'允许那些部门删除,号分割',delUserids:'允许哪些人删除,号分割',ndRoleids:'禁止哪些角色删除',ndDeptids:'禁止哪些部门删除',ndUserids:'禁止哪些人查询',editMinLvl:'最低级别更新权限',delMinLvl:'最低级别删除权限'}
**/ **/
//普通查询 条件之间and关系 //普通查询 条件之间and关系
export const listFormQx = params => { return axios.get(`${base}/mdp/form/formQx/list`, { params: params }); }; export const listFormQx = params => { return axios.get(`${base}/mdp/form/formQx/list`, { params: params }); };
//模糊查询表单权限 条件之间or关系
//export const listFormQxKey = params => { return axios.get(`${base}/mdp/form/formQx/listKey`, { params: params }); };
//普通查询 条件之间and关系
export const queryFormQxById = params => { return axios.get(`${base}/mdp/form/formQx/queryById`, { params: params }); };
//删除一条表单权限 params={formId:'表单编号 主键'} //删除一条表单权限 params={formId:'表单编号 主键'}
export const delFormQx = params => { return axios.post(`${base}/mdp/form/formQx/del`,params); }; export const delFormQx = params => { return axios.post(`${base}/mdp/form/formQx/del`,params); };
//批量删除表单权限 params=[{formId:'表单编号 主键'}]
export const batchAddFormQx = params => { return axios.post(`${base}/mdp/form/formQx/batchAdd`, params); };
//批量删除表单权限 params=[{formId:'表单编号 主键'}] //批量删除表单权限 params=[{formId:'表单编号 主键'}]
export const batchDelFormQx = params => { return axios.post(`${base}/mdp/form/formQx/batchDel`, params); }; export const batchDelFormQx = params => { return axios.post(`${base}/mdp/form/formQx/batchDel`, params); };
@ -27,4 +30,7 @@ export const batchDelFormQx = params => { return axios.post(`${base}/mdp/form/fo
export const editFormQx = params => { return axios.post(`${base}/mdp/form/formQx/edit`, params); }; export const editFormQx = params => { return axios.post(`${base}/mdp/form/formQx/edit`, params); };
//新增一条表单权限 //新增一条表单权限
export const addFormQx = params => { return axios.post(`${base}/mdp/form/formQx/add`, params); };
export const addFormQx = params => { return axios.post(`${base}/mdp/form/formQx/add`, params); };
//批量修改某些字段
export const editSomeFieldsFormQx = params => { return axios.post(`${base}/mdp/form/formQx/editSomeFields`, params); };

4
src/api/mdp/form/formView.js

@ -1,8 +1,8 @@
import axios from '@/utils/request' import axios from '@/utils/request'
import config from '@/common/config'
import config from '@/api/mdp_pub/mdp_config'
let base=config.getFormBasePath();
let base=config.getFormContext();
//默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:1,pageSize:10,total:0},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, //默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:1,pageSize:10,total:0},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉,

9
src/api/mdp/mallm/shop/shop.js

@ -1,9 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base=config.getSysBasePath();
//普通查询 条件之间and关系
export const createShopApi = params => { return axios.post(`${base}/mdp/mallm/shop/shop/createShop`, params); };

9
src/api/mdp/mallm/shop/shopLocation.js

@ -1,9 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base=config.getSysBasePath();
//普通查询 条件之间and关系
export const selectshopLocationBySysDeptIdApi = params => { return axios.post(`${base}/mdp/mallm/shop/shopLocation/selectshopLocationBySysDeptId`, params); };

29
src/api/mdp/meta/category.js

@ -1,29 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base=config.getSysBasePath();
/**
* 元数据分类
*1 默认只开放普通查询所有查询只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录数如果是0后台会自动计算总记录数非0不会自动计算}后台都会自动按分页查询 其它 api用到再打开没用到的api请注释掉
*2 查询新增修改的参数格式 params={id:'分类编号 主键',categoryName:'分类名称',isShow:'是否显示0否1是',remark:'备注',branchId:'机构编号'}
**/
//普通查询 条件之间and关系
export const listCategory = params => { return axios.get(`${base}/mdp/meta/category/list`, { params: params }); };
//模糊查询元数据分类 条件之间or关系
//export const listCategoryKey = params => { return axios.get(`${base}/mdp/meta/category/listKey`, { params: params }); };
//删除一条元数据分类 params={id:'分类编号 主键'}
export const delCategory = params => { return axios.post(`${base}/mdp/meta/category/del`,params); };
//批量删除元数据分类 params=[{id:'分类编号 主键'}]
export const batchDelCategory = params => { return axios.post(`${base}/mdp/meta/category/batchDel`, params); };
//修改一条元数据分类记录
export const editCategory = params => { return axios.post(`${base}/mdp/meta/category/edit`, params); };
//新增一条元数据分类
export const addCategory = params => { return axios.post(`${base}/mdp/meta/category/add`, params); };

29
src/api/mdp/meta/item.js

@ -1,29 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base=config.getSysBasePath();
/**
* 数据项定义
*1 默认只开放普通查询所有查询只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录数如果是0后台会自动计算总记录数非0不会自动计算}后台都会自动按分页查询 其它 api用到再打开没用到的api请注释掉
*2 查询新增修改的参数格式 params={id:'主键 主键',itemCode:'代码',itemName:'名称',remark:'备注',categoryId:'分类编号',itemSize:'长度',itemType:'类型',branchId:'机构编号',deptid:'部门编号'}
**/
//普通查询 条件之间and关系
export const listItem = params => { return axios.get(`${base}/mdp/meta/item/list`, { params: params }); };
//模糊查询数据项定义 条件之间or关系
//export const listItemKey = params => { return axios.get(`${base}/mdp/meta/item/listKey`, { params: params }); };
//删除一条数据项定义 params={id:'主键 主键'}
export const delItem = params => { return axios.post(`${base}/mdp/meta/item/del`,params); };
//批量删除数据项定义 params=[{id:'主键 主键'}]
export const batchDelItem = params => { return axios.post(`${base}/mdp/meta/item/batchDel`, params); };
//修改一条数据项定义记录
export const editItem = params => { return axios.post(`${base}/mdp/meta/item/edit`, params); };
//新增一条数据项定义
export const addItem = params => { return axios.post(`${base}/mdp/meta/item/add`, params); };

38
src/api/mdp/meta/itemOption.js

@ -1,38 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base=config.getSysBasePath();
/**
* 数据项取值列表
*1 默认只开放普通查询所有查询只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录数如果是0后台会自动计算总记录数非0不会自动计算}后台都会自动按分页查询 其它 api用到再打开没用到的api请注释掉
*2 查询新增修改的参数格式 params={id:'主键 主键',itemId:'数据项编号',optionValue:'选项值',optionName:'选项名称',keys:'快捷键',isShow:'是否显示',seqOrder:'顺序',fp:'第一扩展字段',tp:'第三扩展字段',sp:'第二扩展字段',isDefault:'是否默认',cdate:'创建日期',branchId:'机构编号',deptid:'部门编号'}
**/
//普通查询 条件之间and关系
export const listItemOption = params => { return axios.get(`${base}/mdp/meta/itemOption/list`, { params: params }); };
//普通查询 条件之间and关系 params=[{categoryId:'0001',itemCode:'sex'}] 返回结果 {'sex':[{optionValue:'1',optionName:'男',seqOrder:'1',fp:'',isDefault:'0'},{optionValue:'2',optionName:'女',seqOrder:'2',fp:'',isDefault:'0'}]}
export const listOption = params => { return axios.post(`${base}/mdp/meta/itemOption/list/byItemCode`, params ); };
//params={id:''} 返回 {optionValue:'1',optionName:'男',seqOrder:'1',fp:'',isDefault:'0'}
export const getSysParam = params => { return axios.post(`${base}/mdp/meta/itemOption/sysParam`, params ); };
//模糊查询数据项取值列表 条件之间or关系
//export const listItemOptionKey = params => { return axios.get(`${base}/mdp/meta/itemOption/listKey`, { params: params }); };
//删除一条数据项取值列表 params={id:'主键 主键'}
export const delItemOption = params => { return axios.post(`${base}/mdp/meta/itemOption/del`,params); };
//批量删除数据项取值列表 params=[{id:'主键 主键'}]
export const batchDelItemOption = params => { return axios.post(`${base}/mdp/meta/itemOption/batchDel`, params); };
//修改一条数据项取值列表记录
export const editItemOption = params => { return axios.post(`${base}/mdp/meta/itemOption/edit`, params); };
//新增一条数据项取值列表
export const addItemOption = params => { return axios.post(`${base}/mdp/meta/itemOption/add`, params); };
//刷新缓存
export const refresh = params => { return axios.post(`${base}/mdp/meta/itemOption/refresh`, params); };

4
src/api/mdp/sms/smsSign.js

@ -1,8 +1,8 @@
import axios from '@/utils/request' import axios from '@/utils/request'
import config from '@/common/config'
import config from '@/api/mdp_pub/mdp_config'
let base = config.getSmsBasePath();
let base = config.getSmsContext();
/** /**

4
src/api/mdp/sms/smsTemplate.js

@ -1,8 +1,8 @@
import axios from '@/utils/request' import axios from '@/utils/request'
import config from '@/common/config'
import config from '@/api/mdp_pub/mdp_config'
let base = config.getSmsBasePath();
let base = config.getSmsContext();
/** /**

29
src/api/mdp/sys/branch.js

@ -1,29 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base=config.getSysBasePath();
/**
* 管理端机构表机构下面若干部门
*1 默认只开放普通查询所有查询只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录数如果是0后台会自动计算总记录数非0不会自动计算}后台都会自动按分页查询 其它 api用到再打开没用到的api请注释掉
*2 查询新增修改的参数格式 params={id:'机构编号 主键',branchName:'机构名称',enabled:'是否可用',industryCategory:'行业分类',cuserid:'创建人编号',cdate:'创建日期',cusername:'创建人姓名',phoneNo:'联系电话',emaill:'邮件'}
**/
//普通查询 条件之间and关系
export const listBranch = params => { return axios.get(`${base}/mdp/sys/branch/list`, { params: params }); };
//模糊查询管理端机构表(机构下面若干部门) 条件之间or关系
//export const listBranchKey = params => { return axios.get(`${base}/mdp/sys/branch/listKey`, { params: params }); };
//删除一条管理端机构表(机构下面若干部门) params={id:'机构编号 主键'}
export const delBranch = params => { return axios.post(`${base}/mdp/sys/branch/del`,params); };
//批量删除管理端机构表(机构下面若干部门) params=[{id:'机构编号 主键'}]
export const batchDelBranch = params => { return axios.post(`${base}/mdp/sys/branch/batchDel`, params); };
//修改一条管理端机构表(机构下面若干部门)记录
export const editBranch = params => { return axios.post(`${base}/mdp/sys/branch/edit`, params); };
//新增一条管理端机构表(机构下面若干部门)
export const addBranch = params => { return axios.post(`${base}/mdp/sys/branch/add`, params); };

39
src/api/mdp/sys/code.js

@ -1,39 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base=config.getSysBasePath();
//默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:1,pageSize:10,total:0},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉,
//普通查询
export const listCode = params => { return axios.get(`${base}/sys/code/list`, { params: params }); };
//关键字模糊查询 {字段1:v1,字段2:v1,字段3:v1},字段驼峰命名,条件之间默认为or关系
export const listCodeKey = params => { return axios.get(`${base}/sys/code/listKey`, { params: params }); };
//删除一个
export const delCode = params => { return axios.post(`${base}/sys/code/del`,params); };
//批量删除
export const batchDelCode = params => { return axios.post(`${base}/sys/code/batchDel`, params); };
//修改一个
export const editCode = params => { return axios.post(`${base}/sys/code/edit`, params); };
//新增一个
export const addCode = params => { return axios.post(`${base}/sys/code/add`, params); };
//查询下拉选项目 参数为数组型参数 如 selectOptions( { fieldNames:['sex','age','student'],code:'all' } ),code为数据分类
export const selectOptions = params => { return axios.get(`${base}/sys/code/selectOptions`, { params:params }); };
/**
* 根据一级分类列表查询所有的二级分类
* @param codes 分类编码 列表 ['JCBM_TPL','SystemParas']
* @return 返回如下格式的mapsecondCodeRow为主键,dtcodeId为编码dtcodeName中文描述
* {
* JCBM_TPL:[{secondCodeRow:'xxxx',dtcodeId:1,dtcodeName:},{secondCodeRow:'xxxx',dtcodeid:1,dtcodeName:}],
* SystemParas:[{secondCodeRow:'xxxx',dtcodeId:3,dtcodeName:其它},{secondCodeRow:'xxxx',dtcodeid:2,dtcodeName:其它2}]
* }
*/
export const selectSeconds = params => { return axios.get(`${base}/sys/code/selectSeconds`, { params:params }); };

35
src/api/mdp/sys/codeDetail.js

@ -1,35 +0,0 @@
import axios from 'axios';
import config from '../../../common/config.js';
let base = "/"+config.getSysContextName();
//默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:1,pageSize:10,total:0},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉,
//普通查询
export const listCodeDetail = params => { return axios.get(`${base}/sys/codeDetail/list`, { params: params }); };
//关键字模糊查询 {字段1:v1,字段2:v1,字段3:v1},字段驼峰命名,条件之间默认为or关系
export const listCodeDetailKey = params => { return axios.get(`${base}/sys/codeDetail/listKey`, { params: params }); };
//删除一个
export const delCodeDetail = params => { return axios.post(`${base}/sys/codeDetail/del`,params); };
//批量删除
export const batchDelCodeDetail = params => { return axios.post(`${base}/sys/codeDetail/batchDel`, params); };
//修改一个
export const editCodeDetail = params => { return axios.post(`${base}/sys/codeDetail/edit`, params); };
//新增一个
export const addCodeDetail = params => { return axios.post(`${base}/sys/codeDetail/add`, params); };
export const upDownCodeDetail = params => { return axios.post(`${base}/sys/codeDetail/upDown`, params); };
export const uploadFileToRemote=(request)=>{
let formData=new FormData();
formData.append('file',request.file);
return axios.post(request.action,formData);
}

27
src/api/mdp/sys/codeSecond.js

@ -1,27 +0,0 @@
import axios from 'axios';
import config from '../../../common/config.js';
let base = "/"+config.getSysContextName();
//默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:1,pageSize:10,total:0},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉,
//普通查询
export const listCodeSecond = params => { return axios.get(`${base}/sys/codeSecond/list`, { params: params }); };
//关键字模糊查询 {字段1:v1,字段2:v1,字段3:v1},字段驼峰命名,条件之间默认为or关系
//export const listCodeSecondKey = params => { return axios.get(`${base}/sys/codeSecond/listKey`, { params: params }); };
//删除一个
export const delCodeSecond = params => { return axios.post(`${base}/sys/codeSecond/del`,params); };
//批量删除
export const batchDelCodeSecond = params => { return axios.post(`${base}/sys/codeSecond/batchDel`, params); };
//修改一个
export const editCodeSecond = params => { return axios.post(`${base}/sys/codeSecond/edit`, params); };
//新增一个
export const addCodeSecond = params => { return axios.post(`${base}/sys/codeSecond/add`, params); };

28
src/api/mdp/sys/dept.js

@ -1,28 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base=config.getSysBasePath();
//默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:1,pageSize:10,total:0},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉,
//普通查询
export const listDept = params => { return axios.get(`${base}/sys/dept/list`, { params: params }); };
//普通查询
export const listTreeDept = params => { return axios.get(`${base}/sys/dept/list/tree`, { params: params }); };
//关键字模糊查询 {字段1:v1,字段2:v1,字段3:v1},字段驼峰命名,条件之间默认为or关系
export const listDeptKey = params => { return axios.get(`${base}/sys/dept/listKey`, { params: params }); };
//删除一个
export const delDept = params => { return axios.post(`${base}/sys/dept/del`,params); };
//批量删除
export const batchDelDept = params => { return axios.post(`${base}/sys/dept/batchDel`, params); };
//修改一个
export const editDept = params => { return axios.post(`${base}/sys/dept/edit`, params); };
//新增一个
export const addDept = params => { return axios.post(`${base}/sys/dept/add`, params); };

25
src/api/mdp/sys/deptExtinfo.js

@ -1,25 +0,0 @@
import axios from 'axios';
import config from '../../../common/config.js';
let base = "/"+config.getSysContextName();
//默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:1,pageSize:10,total:0},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉,
//普通查询
export const listDeptExtinfo = params => { return axios.get(`${base}/sys/deptExtinfo/list`, { params: params }); };
//关键字模糊查询 {字段1:v1,字段2:v1,字段3:v1},字段驼峰命名,条件之间默认为or关系
//export const listDeptExtinfoKey = params => { return axios.get(`${base}/sys/deptExtinfo/listKey`, { params: params }); };
//删除一个
//export const delDeptExtinfo = params => { return axios.post(`${base}/sys/deptExtinfo/del`,params); };
//批量删除
//export const batchDelDeptExtinfo = params => { return axios.post(`${base}/sys/deptExtinfo/batchDel`, params); };
//修改一个
//export const editDeptExtinfo = params => { return axios.post(`${base}/sys/deptExtinfo/edit`, params); };
//新增一个
//export const addDeptExtinfo = params => { return axios.post(`${base}/sys/deptExtinfo/add`, params); };

25
src/api/mdp/sys/deptMech.js

@ -1,25 +0,0 @@
import axios from 'axios';
import config from '../../../common/config.js';
let base = "/"+config.getSysContextName();
//默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:1,pageSize:10,total:0},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉,
//普通查询
export const listDeptMch = params => { return axios.get(`${base}/sys/deptMch/list`, { params: params }); };
//关键字模糊查询 {字段1:v1,字段2:v1,字段3:v1},字段驼峰命名,条件之间默认为or关系
//export const listDeptMchKey = params => { return axios.get(`${base}/sys/deptMch/listKey`, { params: params }); };
//删除一个
//export const delDeptMch = params => { return axios.post(`${base}/sys/deptMch/del`,params); };
//批量删除
//export const batchDelDeptMch = params => { return axios.post(`${base}/sys/deptMch/batchDel`, params); };
//修改一个
//export const editDeptMch = params => { return axios.post(`${base}/sys/deptMch/edit`, params); };
//新增一个
//export const addDeptMch = params => { return axios.post(`${base}/sys/deptMch/add`, params); };

28
src/api/mdp/sys/operDataTrail.js

@ -1,28 +0,0 @@
import axios from 'axios';
import config from '../../../common/config.js';
let base = "/"+config.getSysContextName();
//默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:1,pageSize:10,total:0},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉,
//普通查询
export const listOperDataTrail = params => { return axios.get(`${base}/sys/operDataTrail/list`, { params: params }); };
//关键字模糊查询 {字段1:v1,字段2:v1,字段3:v1},字段驼峰命名,条件之间默认为or关系
//export const listOperDataTrailKey = params => { return axios.get(`${base}/sys/operDataTrail/listKey`, { params: params }); };
//删除一个
export const delOperDataTrail = params => { return axios.post(`${base}/sys/operDataTrail/del`,params); };
//批量删除
export const batchDelOperDataTrail = params => { return axios.post(`${base}/sys/operDataTrail/batchDel`, params); };
//修改一个
export const editOperDataTrail = params => { return axios.post(`${base}/sys/operDataTrail/edit`, params); };
//新增一个
export const addOperDataTrail = params => { return axios.post(`${base}/sys/operDataTrail/add`, params); };
//修改一个
export const operEnd = params => { return axios.post(`${base}/sys/operDataTrail/edit/end`, params); };

33
src/api/mdp/sys/post/post.js

@ -1,33 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base = config.getSysBasePath();
/**
* sys_post
*1 默认只开放普通查询所有查询只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录数如果是0后台会自动计算总记录数非0不会自动计算}后台都会自动按分页查询 其它 api用到再打开没用到的api请注释掉
*2 查询新增修改的参数格式 params={id:'主键 主键',postName:'岗位名称',remark:'备注',branchId:'归属机构号',cdate:'创建日期'}
**/
//普通查询 条件之间and关系
export const listPost = params => { return axios.get(`${base}/mdp/sys/post/post/list`, { params: params }); };
//查询未添加到部门的岗位
export const listPostNotInDeptid = params => { return axios.get(`${base}/mdp/sys/post/post/list/notInDeptid`, { params: params }); };
//模糊查询sys_post 条件之间or关系
//export const listPostKey = params => { return axios.get(`${base}/mdp/sys/post/post/listKey`, { params: params }); };
//删除一条sys_post params={id:'主键 主键'}
export const delPost = params => { return axios.post(`${base}/mdp/sys/post/post/del`,params); };
//批量删除sys_post params=[{id:'主键 主键'}]
export const batchDelPost = params => { return axios.post(`${base}/mdp/sys/post/post/batchDel`, params); };
//修改一条sys_post记录
export const editPost = params => { return axios.post(`${base}/mdp/sys/post/post/edit`, params); };
//新增一条sys_post
export const addPost = params => { return axios.post(`${base}/mdp/sys/post/post/add`, params); };

25
src/api/mdp/sys/qx.js

@ -1,25 +0,0 @@
import axios from 'axios';
import config from '../../../common/config.js';
let base = "/"+config.getSysContextName();
//默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:1,pageSize:10,total:0},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉,
//普通查询
export const listQx = params => { return axios.get(`${base}/sys/qx/list`, { params: params }); };
//关键字模糊查询 {字段1:v1,字段2:v1,字段3:v1},字段驼峰命名,条件之间默认为or关系
//export const listQxKey = params => { return axios.get(`${base}/sys/qx/listKey`, { params: params }); };
//删除一个
export const delQx = params => { return axios.post(`${base}/sys/qx/del`,params); };
//批量删除
export const batchDelQx = params => { return axios.post(`${base}/sys/qx/batchDel`, params); };
//修改一个
export const editQx = params => { return axios.post(`${base}/sys/qx/edit`, params); };
//新增一个
export const addQx = params => { return axios.post(`${base}/sys/qx/add`, params); };

29
src/api/mdp/sys/role.js

@ -1,29 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base=config.getSysBasePath();
/**
* 角色管理
*1 默认只开放普通查询所有查询只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录数如果是0后台会自动计算总记录数非0不会自动计算}后台都会自动按分页查询 其它 api用到再打开没用到的api请注释掉
*2 查询新增修改的参数格式 params={roleid:'角色编号 主键',rolename:'角色名',remark:'备注',roletype:'角色类型',rolebeg:'开始时间',roleend:'结束时间',crdate:'创建日期',enabled:'是否启用',deptid:'机构编号',sortOrder:'角色排序',branchId:'云用户机构编号'}
**/
//普通查询 条件之间and关系
export const listRole = params => { return axios.get(`${base}/mdp/sys/role/list`, { params: params }); };
//模糊查询角色管理 条件之间or关系
//export const listRoleKey = params => { return axios.get(`${base}/mdp/sys/role/listKey`, { params: params }); };
//删除一条角色管理 params={roleid:'角色编号 主键'}
export const delRole = params => { return axios.post(`${base}/mdp/sys/role/del`,params); };
//批量删除角色管理 params=[{roleid:'角色编号 主键'}]
export const batchDelRole = params => { return axios.post(`${base}/mdp/sys/role/batchDel`, params); };
//修改一条角色管理记录
export const editRole = params => { return axios.post(`${base}/mdp/sys/role/edit`, params); };
//新增一条角色管理
export const addRole = params => { return axios.post(`${base}/mdp/sys/role/add`, params); };

28
src/api/mdp/sys/roleQx.js

@ -1,28 +0,0 @@
import axios from 'axios';
import config from '../../../common/config.js';
let base = "/"+config.getSysContextName();
//默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:1,pageSize:10,total:0},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉,
//普通查询
export const listRoleQx = params => { return axios.get(`${base}/sys/roleQx/list`, { params: params }); };
//关键字模糊查询 {字段1:v1,字段2:v1,字段3:v1},字段驼峰命名,条件之间默认为or关系
//export const listRoleQxKey = params => { return axios.get(`${base}/sys/roleQx/listKey`, { params: params }); };
//删除一个
//export const delRoleQx = params => { return axios.post(`${base}/sys/roleQx/del`,params); };
//批量删除
//export const batchDelRoleQx = params => { return axios.post(`${base}/sys/roleQx/batchDel`, params); };
//批量更新角色权限
export const batchEditRoleQx = params => { return axios.post(`${base}/sys/roleQx/batchEdit`, params); };
//修改一个
//export const editRoleQx = params => { return axios.post(`${base}/sys/roleQx/edit`, params); };
//新增一个
//export const addRoleQx = params => { return axios.post(`${base}/sys/roleQx/add`, params); };

24
src/api/mdp/sys/thirdPartyAccount.js

@ -1,24 +0,0 @@
import axios from 'axios';
import config from '../../../common/config.js';
let base = "/"+config.getSysContextName();
//默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:1,pageSize:10,total:0},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉,
//普通查询
export const listThirdPartyAccount = params => { return axios.get(`${base}/sys/thirdPartyAccount/list`, { params: params }); };
//关键字模糊查询 {字段1:v1,字段2:v1,字段3:v1},字段驼峰命名,条件之间默认为or关系
//export const listThirdPartyAccountKey = params => { return axios.get(`${base}/sys/thirdPartyAccount/listKey`, { params: params }); };
//删除一个
//export const delThirdPartyAccount = params => { return axios.post(`${base}/sys/thirdPartyAccount/del`,params); };
//批量删除
//export const batchDelThirdPartyAccount = params => { return axios.post(`${base}/sys/thirdPartyAccount/batchDel`, params); };
//修改一个
//export const editThirdPartyAccount = params => { return axios.post(`${base}/sys/thirdPartyAccount/edit`, params); };
//新增一个
//export const addThirdPartyAccount = params => { return axios.post(`${base}/sys/thirdPartyAccount/add`, params); };

33
src/api/mdp/sys/user.js

@ -1,33 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base=config.getSysBasePath();
/**
* 用户表
*1 默认只开放普通查询所有查询只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录数如果是0后台会自动计算总记录数非0不会自动计算}后台都会自动按分页查询 其它 api用到再打开没用到的api请注释掉
*2 查询新增修改的参数格式 params={userid:'内部用户编号 主键',unionid:'全局唯一编号',displayUserid:'登录展示使用用户编号',locked:'是否被锁定0否1是',startdate:'启用日期',nickname:'昵称',username:'用户名称',phoneno:'移动电话号码',password:'密码',salt:'盐值',fgOne:'指纹1',fgTwo:'指纹2',fgThr:'指纹3',idCardNo:'身份证号码',pwdtype:'密码类型1指纹2密码',headimgurl:'头像地址',country:'国家',city:'城市',province:'省份',address:'详细地址',sex:'性别',enddate:'到期日期',districtId:'区县编号',email:'邮箱',userId:'user_id',userAccount:'user_account',userPwd:'user_pwd',userName:'user_name',userDesc:'user_desc'}
**/
//普通查询 条件之间and关系
export const listUser = params => { return axios.get(`${base}/mdp/sys/user/list`, { params: params }); };
export const listUserNames = params => { return axios.get(`${base}/mdp/sys/user/listUserNames`, { params: params }); };
export const selectlistKey= params => { return axios.get(`${base}/mdp/sys/user/selectlistKey`, { params: params }); };
//模糊查询用户表 条件之间or关系
//export const listUserKey = params => { return axios.get(`${base}/mdp/sys/user/listKey`, { params: params }); };
export const addUser = params => { return axios.post(`${base}/mdp/sys/user/add`,params); };
//删除一条用户表 params={userid:'内部用户编号 主键'}
export const delUser = params => { return axios.post(`${base}/mdp/sys/user/del`,params); };
//批量删除用户表 params=[{userid:'内部用户编号 主键'}]
export const batchDelUser = params => { return axios.post(`${base}/mdp/sys/user/batchDel`, params); };
//修改一条用户表记录
export const editUser = params => { return axios.post(`${base}/mdp/sys/user/edit`, params); };
//重置管理人员帮别人重置密码
export const resetPasswordByAdmin = params => { return axios.post(`${base}/safe/user/password/reset/byAdmin`, params); };

25
src/api/mdp/sys/userExtinfo.js

@ -1,25 +0,0 @@
import axios from 'axios';
import config from '../../../common/config.js';
let base = "/"+config.getSysContextName();
//默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:1,pageSize:10,total:0},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉,
//普通查询
export const listUserExtinfo = params => { return axios.get(`${base}/sys/userExtinfo/list`, { params: params }); };
//关键字模糊查询 {字段1:v1,字段2:v1,字段3:v1},字段驼峰命名,条件之间默认为or关系
//export const listUserExtinfoKey = params => { return axios.get(`${base}/sys/userExtinfo/listKey`, { params: params }); };
//删除一个
//export const delUserExtinfo = params => { return axios.post(`${base}/sys/userExtinfo/del`,params); };
//批量删除
//export const batchDelUserExtinfo = params => { return axios.post(`${base}/sys/userExtinfo/batchDel`, params); };
//修改一个
//export const editUserExtinfo = params => { return axios.post(`${base}/sys/userExtinfo/edit`, params); };
//新增一个
//export const addUserExtinfo = params => { return axios.post(`${base}/sys/userExtinfo/add`, params); };

31
src/api/mdp/sys/userRole.js

@ -1,31 +0,0 @@
import axios from 'axios';
import config from '../../../common/config.js';
let base = "/"+config.getSysContextName();
//默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:1,pageSize:10,total:0},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉,
//普通查询
export const listUserRole = params => { return axios.get(`${base}/sys/userRole/list`, { params: params }); };
//普通查询
export const listUserInfosByRoleid = params => { return axios.get(`${base}/sys/userRole/list/users`, { params: params }); };
//关键字模糊查询 {字段1:v1,字段2:v1,字段3:v1},字段驼峰命名,条件之间默认为or关系
//export const listUserRoleKey = params => { return axios.get(`${base}/sys/userRole/listKey`, { params: params }); };
//删除一个
//export const delUserRole = params => { return axios.post(`${base}/sys/userRole/del`,params); };
//批量删除
//export const batchDelUserRole = params => { return axios.post(`${base}/sys/userRole/batchDel`, params); };
//批量删除
export const batchEditUserRole = params => { return axios.post(`${base}/sys/userRole/batchEdit`, params); };
//修改一个
//export const editUserRole = params => { return axios.post(`${base}/sys/userRole/edit`, params); };
//新增一个
//export const addUserRole = params => { return axios.post(`${base}/sys/userRole/add`, params); };

30
src/api/mdp/workflow/biz/bizModel.js

@ -1,30 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base = config.getWorkflowBasePath();
/**
* mdp_biz_model
*1 默认只开放普通查询所有查询只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录数如果是0后台会自动计算总记录数非0不会自动计算}后台都会自动按分页查询 其它 api用到再打开没用到的api请注释掉
*2 查询新增修改的参数格式 params={id:'主键 主键',bizName:'业务名称',bizKey:'业务编码',modelKey:'模型编码',modelName:'模型名称',branchId:'机构编号'}
**/
//普通查询 条件之间and关系
export const listBizModel = params => { return axios.get(`${base}/mdp/workflow/biz/bizModel/list`, { params: params }); };
//模糊查询mdp_biz_model 条件之间or关系
//export const listBizModelKey = params => { return axios.get(`${base}/mdp/workflow/biz/bizModel/listKey`, { params: params }); };
//删除一条mdp_biz_model params={id:'主键 主键'}
export const delBizModel = params => { return axios.post(`${base}/mdp/workflow/biz/bizModel/del`,params); };
//批量删除mdp_biz_model params=[{id:'主键 主键'}]
export const batchDelBizModel = params => { return axios.post(`${base}/mdp/workflow/biz/bizModel/batchDel`, params); };
//修改一条mdp_biz_model记录
export const editBizModel = params => { return axios.post(`${base}/mdp/workflow/biz/bizModel/edit`, params); };
//新增一条mdp_biz_model
export const addBizModel = params => { return axios.post(`${base}/mdp/workflow/biz/bizModel/add`, params); };

31
src/api/mdp/workflow/de/model.js

@ -1,31 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base=config.getWorkflowBasePath();
//默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:1,pageSize:10,total:0},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉,
//普通查询
export const listModel = params => { return axios.get(`${base}/mdp/workflow/de/model/list`, { params: params }); };
//关键字模糊查询 {字段1:v1,字段2:v1,字段3:v1},字段驼峰命名,条件之间默认为or关系
//export const listModelKey = params => { return axios.get(`${base}/mdp/workflow/de/model/listKey`, { params: params }); };
//删除一个
export const delModel = params => { return axios.post(`${base}/mdp/workflow/de/model/del`,params); };
//批量删除
export const batchDelModel = params => { return axios.post(`${base}/mdp/workflow/de/model/batchDel`, params); };
//修改一个
export const editModel = params => { return axios.post(`${base}/mdp/workflow/de/model/edit`, params); };
//修改一个
export const deployModel = params => { return axios.post(`${base}/mdp/workflow/de/model/deploy`, params); };
//修改一个
export const unDeployModel = params => { return axios.post(`${base}/mdp/workflow/de/model/unDeploy`, params); };
//新增一个
export const addModel = params => { return axios.post(`${base}/mdp/workflow/de/model/add`, params); };

25
src/api/mdp/workflow/hi/comment.js

@ -1,25 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base=config.getWorkflowBasePath();
//默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:1,pageSize:10,total:0},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉,
//普通查询
export const listComment = params => { return axios.get(`${base}/mdp/workflow/hi/comment/list`, { params: params }); };
//关键字模糊查询 {字段1:v1,字段2:v1,字段3:v1},字段驼峰命名,条件之间默认为or关系
//export const listCommentKey = params => { return axios.get(`${base}/mdp/workflow/hi/comment/listKey`, { params: params }); };
//删除一个
export const delComment = params => { return axios.post(`${base}/mdp/workflow/hi/comment/del`,params); };
//批量删除
export const batchDelComment = params => { return axios.post(`${base}/mdp/workflow/hi/comment/batchDel`, params); };
//修改一个
export const editComment = params => { return axios.post(`${base}/mdp/workflow/hi/comment/edit`, params); };
//新增一个
export const addComment = params => { return axios.post(`${base}/mdp/workflow/hi/comment/add`, params); };

25
src/api/mdp/workflow/hi/procinst.js

@ -1,25 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base=config.getWorkflowBasePath();
//默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:1,pageSize:10,total:0},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉,
//普通查询
export const listProcinst = params => { return axios.get(`${base}/mdp/workflow/hi/procinst/list`, { params: params }); };
//关键字模糊查询 {字段1:v1,字段2:v1,字段3:v1},字段驼峰命名,条件之间默认为or关系
//export const listProcinstKey = params => { return axios.get(`${base}/mdp/workflow/hi/procinst/listKey`, { params: params }); };
//删除一个
export const delProcinst = params => { return axios.post(`${base}/mdp/workflow/hi/procinst/del`,params); };
//批量删除
export const batchDelProcinst = params => { return axios.post(`${base}/mdp/workflow/hi/procinst/batchDel`, params); };
//修改一个
export const editProcinst = params => { return axios.post(`${base}/mdp/workflow/hi/procinst/edit`, params); };
//新增一个
export const addProcinst = params => { return axios.post(`${base}/mdp/workflow/hi/procinst/add`, params); };

29
src/api/mdp/workflow/re/actAssignee.js

@ -1,29 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base=config.getWorkflowBasePath();
//默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:1,pageSize:10,total:0},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉,
//普通查询
export const listActAssignee = params => { return axios.get(`${base}/mdp/workflow/re/actAssignee/list`, { params: params }); };
//普通查询模型中的所有节点的执行人列表,需要procDefId
export const getBpmnActAssignees = params => { return axios.get(`${base}/mdp/workflow/re/actAssignee/getBpmnActAssignees`, { params: params }); };
//关键字模糊查询 {字段1:v1,字段2:v1,字段3:v1},字段驼峰命名,条件之间默认为or关系
//export const listActAssigneeKey = params => { return axios.get(`${base}/mdp/workflow/re/actAssignee/listKey`, { params: params }); };
//删除一个
export const delActAssignee = params => { return axios.post(`${base}/mdp/workflow/re/actAssignee/del`,params); };
//批量删除
export const batchDelActAssignee = params => { return axios.post(`${base}/mdp/workflow/re/actAssignee/batchDel`, params); };
//修改一个
export const editActAssignee = params => { return axios.post(`${base}/mdp/workflow/re/actAssignee/edit`, params); };
//新增一个
export const addActAssignee = params => { return axios.post(`${base}/mdp/workflow/re/actAssignee/add`, params); };

25
src/api/mdp/workflow/re/deployment.js

@ -1,25 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base=config.getWorkflowBasePath();
//默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:1,pageSize:10,total:0},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉,
//普通查询
export const listDeployment = params => { return axios.get(`${base}/mdp/workflow/re/deployment/list`, { params: params }); };
//关键字模糊查询 {字段1:v1,字段2:v1,字段3:v1},字段驼峰命名,条件之间默认为or关系
//export const listDeploymentKey = params => { return axios.get(`${base}/mdp/workflow/re/deployment/listKey`, { params: params }); };
//删除一个
export const delDeployment = params => { return axios.post(`${base}/mdp/workflow/re/deployment/del`,params); };
//批量删除
export const batchDelDeployment = params => { return axios.post(`${base}/mdp/workflow/re/deployment/batchDel`, params); };
//修改一个
export const editDeployment = params => { return axios.post(`${base}/mdp/workflow/re/deployment/edit`, params); };
//新增一个
export const addDeployment = params => { return axios.post(`${base}/mdp/workflow/re/deployment/add`, params); };

34
src/api/mdp/workflow/re/procdef.js

@ -1,34 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base=config.getWorkflowBasePath();
//默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:1,pageSize:10,total:0},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉,
//普通查询
export const listProcdef = params => { return axios.get(`${base}/mdp/workflow/re/procdef/list`, { params: params }); };
//普通查询
export const listCategorys = params => { return axios.get(`${base}/mdp/workflow/re/procdef/categorys`, { params: params }); };
//关键字模糊查询 {字段1:v1,字段2:v1,字段3:v1},字段驼峰命名,条件之间默认为or关系
//export const listProcdefKey = params => { return axios.get(`${base}/mdp/workflow/re/procdef/listKey`, { params: params }); };
//删除一个
export const delProcdef = params => { return axios.post(`${base}/mdp/workflow/re/procdef/del`,params); };
//批量删除
export const batchDelProcdef = params => { return axios.post(`${base}/mdp/workflow/re/procdef/batchDel`, params); };
//修改一个
export const editProcdef = params => { return axios.post(`${base}/mdp/workflow/re/procdef/edit`, params); };
//修改一个
export const suspendProcdef = params => { return axios.post(`${base}/mdp/workflow/re/procdef/suspend`, params); };
//修改一个
export const activateProcdef = params => { return axios.post(`${base}/mdp/workflow/re/procdef/activate`, params); };
//新增一个
export const addProcdef = params => { return axios.post(`${base}/mdp/workflow/re/procdef/add`, params); };

30
src/api/mdp/workflow/re/procdefParames.js

@ -1,30 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base = config.getWorkflowBasePath();
/**
* mdp_re_procdef_parames
*1 默认只开放普通查询所有查询只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录数如果是0后台会自动计算总记录数非0不会自动计算}后台都会自动按分页查询 其它 api用到再打开没用到的api请注释掉
*2 查询新增修改的参数格式 params={id:'主键 主键',isRefForm:'是否关联自定义表单',monitors:'监控人多个',sponsors:'主办人多个默认为发起人',formId:'表单编号',procDefId:'流程定义编号',userid:'创建人',lastDate:'最后更新时间',mainContext:'流程正文',mainTitle:'流程标题',bizUrl:'业务功能跳转',bizName:'业务功能名称',categoryId:'所属分类编号',branchId:'云用户机构编号',formShowType:'智能表单展示方式form/table',fp:'备用字段1',sp:'备用字段2',tp:'备用字段3',pconfig:'5个备用字段',fo:'备用字段4',fi:'备用字段5',tagNames:'标签名称逗号分隔',tagIds:'标签编号逗号分隔'}
**/
//普通查询 条件之间and关系
export const listProcdefParames = params => { return axios.get(`${base}/mdp/workflow/re/procdefParames/list`, { params: params }); };
//模糊查询mdp_re_procdef_parames 条件之间or关系
//export const listProcdefParamesKey = params => { return axios.get(`${base}/mdp/workflow/re/procdefParames/listKey`, { params: params }); };
//删除一条mdp_re_procdef_parames params={id:'主键 主键'}
export const delProcdefParames = params => { return axios.post(`${base}/mdp/workflow/re/procdefParames/del`,params); };
//批量删除mdp_re_procdef_parames params=[{id:'主键 主键'}]
export const batchDelProcdefParames = params => { return axios.post(`${base}/mdp/workflow/re/procdefParames/batchDel`, params); };
//修改一条mdp_re_procdef_parames记录
export const editProcdefParames = params => { return axios.post(`${base}/mdp/workflow/re/procdefParames/edit`, params); };
//新增一条mdp_re_procdef_parames
export const addProcdefParames = params => { return axios.post(`${base}/mdp/workflow/re/procdefParames/add`, params); };

34
src/api/mdp/workflow/re/procdefParamesTemplate.js

@ -1,34 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base = config.getWorkflowBasePath();
/**
* mdp_re_procdef_parames_template
*1 默认只开放普通查询所有查询只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录数如果是0后台会自动计算总记录数非0不会自动计算}后台都会自动按分页查询 其它 api用到再打开没用到的api请注释掉
*2 查询新增修改的参数格式 params={id:'主键 主键',isRefForm:'是否关联自定义表单',monitors:'监控人多个',sponsors:'主办人多个默认为发起人',formId:'表单编号',procDefId:'流程定义编号',userid:'创建人',lastDate:'最后更新时间',mainContext:'流程正文',mainTitle:'流程标题',bizUrl:'业务功能跳转',bizName:'业务功能名称',categoryId:'所属分类编号',branchId:'云用户机构编号',formShowType:'智能表单展示方式form/table',fp:'备用字段1',sp:'备用字段2',tp:'备用字段3',pconfig:'5个备用字段',fo:'备用字段4',fi:'备用字段5',tagNames:'标签名称逗号分隔',tagIds:'标签编号逗号分隔',mainQx:'1-是否控制节点权限-2是否有正文-3是否发起人外其它人可修改正文-4是否控制附件权限',modelKey:'模型key,来自act_de_model.key_'}
**/
//普通查询 条件之间and关系
export const listProcdefParamesTemplate = params => { return axios.get(`${base}/mdp/workflow/re/procdefParamesTemplate/list`, { params: params }); };
//模糊查询mdp_re_procdef_parames_template 条件之间or关系
//export const listProcdefParamesTemplateKey = params => { return axios.get(`${base}/mdp/workflow/re/procdefParamesTemplate/listKey`, { params: params }); };
//删除一条mdp_re_procdef_parames_template params={id:'主键 主键'}
export const delProcdefParamesTemplate = params => { return axios.post(`${base}/mdp/workflow/re/procdefParamesTemplate/del`,params); };
//批量删除mdp_re_procdef_parames_template params=[{id:'主键 主键'}]
export const batchDelProcdefParamesTemplate = params => { return axios.post(`${base}/mdp/workflow/re/procdefParamesTemplate/batchDel`, params); };
//修改一条mdp_re_procdef_parames_template记录
export const editProcdefParamesTemplate = params => { return axios.post(`${base}/mdp/workflow/re/procdefParamesTemplate/edit`, params); };
//新增一条mdp_re_procdef_parames_template
export const addProcdefParamesTemplate = params => { return axios.post(`${base}/mdp/workflow/re/procdefParamesTemplate/add`, params); };
//新增或者修改模板
export const addOrUpdateTemplate = params => { return axios.post(`${base}/mdp/workflow/re/procdefParamesTemplate/addOrUpdate`, params); };

34
src/api/mdp/workflow/re/procdefTag.js

@ -1,34 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base = config.getWorkflowBasePath();
/**
* mdp_re_procdef_tag
*1 默认只开放普通查询所有查询只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录数如果是0后台会自动计算总记录数非0不会自动计算}后台都会自动按分页查询 其它 api用到再打开没用到的api请注释掉
*2 查询新增修改的参数格式 params={id:'id 主键',procInstId:'流程实例编号',tagId:'标签(arc.arc_tag表的id)',addUserid:'谁给我打的标签',addTime:'添加时间',state:'0无效1有效',procDefId:'流程定义编号',tagName:'tag_name'}
**/
//普通查询 条件之间and关系
export const listProcdefTag = params => { return axios.get(`${base}/mdp/workflow/re/procdefTag/list`, { params: params }); };
//模糊查询mdp_re_procdef_tag 条件之间or关系
//export const listProcdefTagKey = params => { return axios.get(`${base}/mdp/workflow/re/procdefTag/listKey`, { params: params }); };
//删除一条mdp_re_procdef_tag params={id:'id 主键'}
export const delProcdefTag = params => { return axios.post(`${base}/mdp/workflow/re/procdefTag/del`,params); };
//批量删除mdp_re_procdef_tag params=[{id:'id 主键'}]
export const batchDelProcdefTag = params => { return axios.post(`${base}/mdp/workflow/re/procdefTag/batchDel`, params); };
//修改一条mdp_re_procdef_tag记录
export const editProcdefTag = params => { return axios.post(`${base}/mdp/workflow/re/procdefTag/edit`, params); };
//新增一条mdp_re_procdef_tag
export const addProcdefTag = params => { return axios.post(`${base}/mdp/workflow/re/procdefTag/add`, params); };
// params=[{procDefId:'',branchId:'',userid:'',tags:[{tagId:'',tagName:''}]}]
export const batchInsertOrDeleteTags = params => { return axios.post(`${base}/mdp/workflow/re/procdefTag/batchInsertOrDeleteTags`, params); };

20
src/api/mdp/workflow/ru/execution.js

@ -1,20 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base=config.getWorkflowBasePath();
//默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:1,pageSize:10,total:0},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉,
//普通查询
export const listExecution = params => { return axios.get(`${base}/mdp/workflow/ru/execution/list`, { params: params }); };
//启动流程
export const startProc = params => { return axios.post(`${base}/mdp/workflow/ru/execution/start`, params); };
//激活流程
export const activiteExecution = params => { return axios.post(`${base}/mdp/workflow/ru/execution/activite`, params); };
//挂起流程
export const suspendExecution = params => { return axios.post(`${base}/mdp/workflow/ru/execution/suspend`, params); };
//删除流程
export const delExecution = params => { return axios.post(`${base}/mdp/workflow/ru/execution/del`, params); };

30
src/api/mdp/workflow/ru/procinstFormData.js

@ -1,30 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base = config.getWorkflowBasePath();
/**
* mdp_ru_procinst_form_data
*1 默认只开放普通查询所有查询只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录数如果是0后台会自动计算总记录数非0不会自动计算}后台都会自动按分页查询 其它 api用到再打开没用到的api请注释掉
*2 查询新增修改的参数格式 params={id:'主键 主键',procInstId:'流程实例编号',formDataId:'表单数据编号'}
**/
//普通查询 条件之间and关系
export const listProcinstFormData = params => { return axios.get(`${base}/mdp/workflow/ru/procinstFormData/list`, { params: params }); };
//模糊查询mdp_ru_procinst_form_data 条件之间or关系
//export const listProcinstFormDataKey = params => { return axios.get(`${base}/mdp/workflow/ru/procinstFormData/listKey`, { params: params }); };
//删除一条mdp_ru_procinst_form_data params={id:'主键 主键'}
export const delProcinstFormData = params => { return axios.post(`${base}/mdp/workflow/ru/procinstFormData/del`,params); };
//批量删除mdp_ru_procinst_form_data params=[{id:'主键 主键'}]
export const batchDelProcinstFormData = params => { return axios.post(`${base}/mdp/workflow/ru/procinstFormData/batchDel`, params); };
//修改一条mdp_ru_procinst_form_data记录
export const editProcinstFormData = params => { return axios.post(`${base}/mdp/workflow/ru/procinstFormData/edit`, params); };
//新增一条mdp_ru_procinst_form_data
export const addProcinstFormData = params => { return axios.post(`${base}/mdp/workflow/ru/procinstFormData/add`, params); };

33
src/api/mdp/workflow/ru/procinstParames.js

@ -1,33 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base = config.getWorkflowBasePath();
/**
* mdp_ru_procinst_parames
*1 默认只开放普通查询所有查询只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录数如果是0后台会自动计算总记录数非0不会自动计算}后台都会自动按分页查询 其它 api用到再打开没用到的api请注释掉
*2 查询新增修改的参数格式 params={id:'主键 主键',isRefForm:'是否关联自定义表单',monitors:'监控人多个',sponsors:'主办人多个默认为发起人',procInstId:'流程实例编号',formId:'表单编号',procDefId:'流程定义编号',userid:'创建人',startDate:'发起时间',isTemplate:'是否存为模板',mainContext:'流程正文',mainTitle:'流程标题',deptid:'发起部门',bizUrl:'业务功能跳转',bizName:'流程分类编号',categoryId:'流程分类编号',branchId:'云用户机构编号',lastUserid:'最后更新用户编号',lastTime:'最后更新时间',flowState:'审批状态0未开始1审批中2审批结束',formShowType:'智能表单数据展现方式form/table',startUsername:'发起人姓名',startDeptName:'发起部门名称',fp:'备用字段1',sp:'备用字段2',tp:'备用字段3',pconfig:'5个备用字段',fo:'备用字段4',fi:'备用字段5',tagNames:'标签名称逗号分隔',tagIds:'标签编号逗号分隔'}
**/
//普通查询 条件之间and关系
export const listProcinstParames = params => { return axios.get(`${base}/mdp/workflow/ru/procinstParames/list`, { params: params }); };
//模糊查询mdp_ru_procinst_parames 条件之间or关系
//export const listProcinstParamesKey = params => { return axios.get(`${base}/mdp/workflow/ru/procinstParames/listKey`, { params: params }); };
//删除一条mdp_ru_procinst_parames params={id:'主键 主键'}
export const delProcinstParames = params => { return axios.post(`${base}/mdp/workflow/ru/procinstParames/del`,params); };
//批量删除mdp_ru_procinst_parames params=[{id:'主键 主键'}]
export const batchDelProcinstParames = params => { return axios.post(`${base}/mdp/workflow/ru/procinstParames/batchDel`, params); };
//修改一条mdp_ru_procinst_parames记录
export const editProcinstParames = params => { return axios.post(`${base}/mdp/workflow/ru/procinstParames/edit`, params); };
//新增一条mdp_ru_procinst_parames
export const addProcinstParames = params => { return axios.post(`${base}/mdp/workflow/ru/procinstParames/add`, params); };
//单独更新计划完成时间
export const editPlanFinishTime = params => { return axios.post(`${base}/mdp/workflow/ru/procinstParames/editPlanFinishTime`, params); };

34
src/api/mdp/workflow/ru/procinstTag.js

@ -1,34 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base = config.getWorkflowBasePath();
/**
* mdp_ru_procinst_tag
*1 默认只开放普通查询所有查询只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录数如果是0后台会自动计算总记录数非0不会自动计算}后台都会自动按分页查询 其它 api用到再打开没用到的api请注释掉
*2 查询新增修改的参数格式 params={id:'id 主键',procDefId:'流程编号',tag:'标签(arc.arc_tag表的id)',addUserid:'谁给我打的标签',addTime:'添加时间',state:'0无效1有效',tagName:'tag_name'}
**/
//普通查询 条件之间and关系
export const listProcinstTag = params => { return axios.get(`${base}/mdp/workflow/ru/procinstTag/list`, { params: params }); };
//模糊查询mdp_ru_procinst_tag 条件之间or关系
//export const listProcinstTagKey = params => { return axios.get(`${base}/mdp/workflow/ru/procinstTag/listKey`, { params: params }); };
//删除一条mdp_ru_procinst_tag params={id:'id 主键'}
export const delProcinstTag = params => { return axios.post(`${base}/mdp/workflow/ru/procinstTag/del`,params); };
//批量删除mdp_ru_procinst_tag params=[{id:'id 主键'}]
export const batchDelProcinstTag = params => { return axios.post(`${base}/mdp/workflow/ru/procinstTag/batchDel`, params); };
//修改一条mdp_ru_procinst_tag记录
export const editProcinstTag = params => { return axios.post(`${base}/mdp/workflow/ru/procinstTag/edit`, params); };
//新增一条mdp_ru_procinst_tag
export const addProcinstTag = params => { return axios.post(`${base}/mdp/workflow/ru/procinstTag/add`, params); };
// params=[{procInstId:'',procDefId:'',branchId:'',userid:'',tags:[{tagId:'',tagName:''}]}]
export const batchInsertOrDeleteTags = params => { return axios.post(`${base}/mdp/workflow/ru/procinstTag/batchInsertOrDeleteTags`, params); };

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save