diff --git a/README.md b/README.md index 6a3adfa4..47c53349 100644 --- a/README.md +++ b/README.md @@ -4,34 +4,31 @@
- 唛盟(mdp-lcode vue3 ):多功能、高效率、低代码(支持0代码) 前后端一体化、智能化的开发工具 + 唛盟xm:涵盖项目规划、需求管理、开发迭代、版本控制、缺陷跟踪、测试管理、工时管理、效能分析等环 +节,实现项目全过程、全方位管理的一站式企业研发项目管理解决方案
- 👉 https://maimengcloud.com 👈 + 👉 https://maimengcloud.com 👈
-## 快速导航 +## 快速导航 -- [唛盟-后端开发底座](https://gitee.com/maimengcloud/mdp-core) -- [前端组件](https://gitee.com/maimengcloud/mdp-lcode-ui-web) -- [后端服务](https://gitee.com/maimengcloud/mdp-lcode-backend) -- [体验环境](https://maimengcloud.com/lcode/) - 登陆界面上选择演示账号登陆或者直接扫码登陆,无须注册 -- 👉[教程]b站上搜素 [唛盟9哥教你撸前后端代码](https://www.bilibili.com/video/BV111421S72r/?spm_id_from=333.337.search-card.all.click&vd_source=93be23d03863773d50b81112985b9237) +- [前端组件](https://gitee.com/maimengcloud/xm-ui-web) +- [后端服务](https://gitee.com/maimengcloud/xm-backend) +- [体验环境](https://maimengcloud.com/xm/m1/) + 登陆界面上选择演示账号登陆(账号密码:demo-branch-01 888888)或者直接扫码登陆,无须注册 +- 相关教程b站上搜素[唛盟9哥教你撸前后端代码](https://www.bilibili.com/video/BV111421S72r/?spm_id_from=333.337.search-card.all.click&vd_source=93be23d03863773d50b81112985b9237) - -## 📢 简介[唛盟低代码开发平台mdp-lcode](/) - -唛盟低代码开发平台简称唛盟或者mdp. 👉[唛盟-总体介绍](https://www.bilibili.com/video/BV111421S72r/?spm_id_from=333.337.search-card.all.click&vd_source=93be23d03863773d50b81112985b9237) -唛盟旨在为企业开发业务系统提供一整套解决方案,唛盟具有高效率、低代码、支持0代码、功能丰富等特点。企业可以在唛盟工程之上,加入更多其它业务功能;也可以以唛盟作为模板,创建新的工程,用于开发其它业务。使用唛盟构建应用,您不用考虑多租户、登录、统一认证中心、权限、菜单管理、系统管理、公共组件、公共api、代码冗余、数据字典、图片库、文件库、智能表单、工作流、微服务互相调用、全局跟踪定位bug、多主键crud,复杂sql查询等各种问题,这些问题的解决方案都作为扩展功能内置唛盟工程中了。 +## 📢 简介[唛盟xm](/) +唛盟企业级研发管理系统简称唛盟xm,属于唛盟生态的专业子系统之一,以研发管理为核心,涵盖项目规划、需求管理、开发迭代、版本控制、缺陷跟踪、测试管理、工时管理、效能分析等环节,实现全过程、全方位的研发管理。通过该系统,企业能够优化研发流程,提高研发效率,降低研发成本,提高市场竞争力。 💪给你一个使用唛盟的理由:代码大量减少、开发so easy、前后端MIT协议、全部开源、永久免费 ## 📢 唛盟生态 @@ -78,7 +75,7 @@ | 框架 | 说明 | 版本 | |----------------------------------------------------------------------|------------------|--------| -| spring boot | spring boot 框架 | 2.4.1 | +| spring boot | spring boot 框架 | 2.6.11 | | mybatis plus | 数据库操作框架 | 3.5.3.1 | | spring security | 安全框架 | 2.1.7 | | jsqlparse | sql解析引擎 | 4.7+ | @@ -110,7 +107,6 @@ | Prettier | 代码格式化 | | ESLint | 脚本代码检查 | | DotENV | env 文件高亮 | -| [ruoyi-vue-pro](https://gitee.com/zhijiantianya/ruoyi-vue-pro)|前端流程ui基于若依修改 @@ -120,513 +116,176 @@ | idea | java 开发工具 社区版、企业版都可 | -## 😭 日常开发中,您是否有以下痛点? - -- **团队中缺乏企业级前后端分离的开发底座**,需要在各种框架中进行摸索、整合。 -- ai时代,开发工具如何去支持未来的软件开发? -- 重复造轮子现象严重、浪费人力、对开发者经验要求过高。 -- 缺乏统一的开发模式,缺乏公共组件的抽取和共享机制,导致业务代码混乱不堪、代码臃肿、bug多、维护困难 -- 缺乏统一的足够灵活的权限管理机制,开发人员不得不写一堆的权限代码混入业务代码中,前端权限、后端权限控制混乱不堪 -- 缺乏统一的能够覆盖前后端的、满足前后端分离的代码生成器,代码模板无法按企业现状进行重新编辑、修改 -- 缺乏统一的编程规范,或者具有书面编程规范,难以贯彻落实到开发中,代码还是五花八门 -- 缺乏统一的元数据(数据字典)管理机制,前后的数据共享调用困难,下拉列表数据混乱不堪 -- 缺乏统一的流程管理机制,要想进行流程类业务开发非常困难 -- 缺乏统一的国际化机制,国际化实施困难,不得不针对各种语言发布多个版本,无法解决后端国际化、前端国际化等问题 -- 缺乏统一的微服务、分布式系统整合机制,微服务互相调用、微服务的权限管理困难 -- 缺乏统一的认证中心,单点登录实施困难 -- 缺乏统一的支付整合机制,接入微信、支付宝、paypal等困难 -- 缺乏项目管理工具,项目计划、任务委派、质量管理、需求管理、持续集成等完全没概念 -- **让 唛盟-mdp 来帮你解决这些痛点吧!然而,这些只是 唛盟-mdp 解决的最基础的功能。** - -## 😁 为什么要使用唛盟产品 - -- 唛盟所有子系统从前端到后端提供ai支持能力 - 1. 前端每个字段可以调起ai指令、el表达式 - 2. 后端每个接口可以支持识别ai指令、el表达式 - 3. 后端支持接入大模型 - 4. 具有根据企业数字资产进行ai自训练能力 - -- 完全开源、永久免费的企业级开发底座 - 1. 使用mdp能够带来开发效率的大幅提升,代码行数大幅减少,质量提升明显 - 2. 使用mdp能够大幅度降低对开发人员的经验要求,大幅度降低人力成本 - 3. mdp对各种开源组件进行了融合改进,提供了针对企业开发中各种问题的最佳解决方案 - 4. 企业使用一套开源软件即同时拥有前端开发框架及后端开发框架 - -- 统一的开发模式 - 1. 前后端分离 - 2. 前后端都分别进行了技术组件、业务组件的抽取、共享,企业可以进行再提炼、抽象,形成更多的公共组件,对后续开发形成强力的支撑作用 - -- 足够灵活的权限管理机制 - 1. 前端提供统一的按钮级别的权限判断接口、提供路由菜单的权限控制机制 - 2. 后端实现api接口的自动注册、自动审核 - 3. 基于岗位-部门-角色-菜单及按钮-后端api-人员 6要素的权限管理机制,可以0编程实现绝大多数的权限需求 - -- 基于领域驱动设计(DDD)的框架及代码生成器 - 1. 代码生成器覆盖前端、后端,支持任意时刻的重新生成,支持命令行、开发工具插件、在线三种方式生成代码,生成的代码可以0编程使用 - 2. 代码生成器代码模板可以按企业现状进行修改、满足不断发展、持续改进的需求 - 3. 支持多个表一次性生成,也就是可以一次性生成几十到几百张表的增删改查功能,而开发人员仅需要填写表名即可完成 - -- 提供完整的编程规范说明 - 1. mdp的框架提供了完备的接口说明、组件说明、组件使用场景等 - 2. mdp维护团队提供在线支持,及时解答、解决开发者使用过程中的问题 - -- 提供强大的元数据(数据字典)管理机制 - 1. 内置了元数据管理模块,并实现了元数据的分布式缓存、客户端缓存、元数据分发、缓存清理等 - 2. 开发者在客户端、任意微服务中、任意单体应用中可以快速获取元数据 - 3. 元数据的调用效率等同于调用本地map缓存,几乎可以忽略使用元数据的性能开销问题 - -- 整合了最新版本的强大的flowable工作流引擎 - 1. 基于mdp框架重新开发了流程中心、任务中心、流程的发布、上下架等功能 - 2. 提供分布式环境下的流程调用、流程整合问题的解决方案 - 3. 提供vue3版本在线流程设计器,并整合了mdp的权限机制 - 4. 整合了mdp的智能表单 - 5. 整合了mdp的数据字典,通过配置即可实现大部分业务场景,真正做到流程设计、部署、运行0耗时,0延迟。 - 4. 任务的提交支持几乎能想到的各种方式:转办、委办、主办、前加签、后加签、减签、发起人处理、驳回任意节点、审批同意、审批不同意但流程继续、拒绝终止流程等,同时提供框架的提交方式可扩展性,让你轻松应对各种变态需求。 - 5. 会签支持:会签、或签、过半通过、一票否决等等 - 6. 任务分配到人十来种策略支持并提供扩展接口:按岗位、按部门、按组、按标签、按指定人员、发起人、上一步执行人、上一步执行人临时指定、发起流程时统一指定、转主办、转监控、按高级自定义查询条件、 - 7. 整合了mdp的消息发送机制,轻松发送流程消息到im、站内信、公众号、短信 - 8. 整合mdp事件模型,为将来ai调用流程等创新场景提供底层基础 - 9. 提供业务模块内嵌页面发起流程的组件和统一的方式,开发几乎可以无视工作流相关的接入工时。 - 10. 整合mdp附件管理 - - -- 提供强大的国际化解决方案 - 1. 前后端均支持分别进行国际化 - 2. 多语言的支持与业务代码完全解耦,彻底解决硬编码进行语言切换的问题 - -- 整合了强大的微服务框架 - 1. mdp平台任意组件均同时支持微服务环境、单体应用环境运行,开发人员开发的时候可以以单体应用的方式开发,然后以微服务方式发布到生产、测试环境 - 2. 提供微服务的治理 - -- 强大的DAO层 - 1. 支持基于xml文件的sql编写 - 2. 支持无xml方式的数据访问 - 3. 支持多主键(对mybatis plus进行升级,解决了多主键、多表联合查询等问题) - 4. 支持多数据源,通过备注实现数据源切换 - 5. 支持前端构建任意复杂的查询条件并提供对应的最佳实践,支持前端输入框输入>,=,*,$IS NULL,$IN,$NOT IN等运算操作符,支持前端通过 or and 连接符构建任意复杂的条件表达式 - -- 强大的web ui - 1. 提供好用好看的ui组件库 - 2. 提供页面高级查询功能、可以组装任意复杂的查询条件 - 3. 提供针对元数据(数据字典)的引用、针对任意表的引用的组件库 - 4. 提供导入、导出等基础功能 - 5. 提供按钮权限判断接口、 - 6. 提供动态菜单功能 - -- 提供自定义表单解决方案,具有0代码0延时发布一个新功能的能力 - 1. 自定义表单设计 - 2. 表单展现 - 3. 表单数据管理 - 4. 自定义表单与工作流整合使用 - 5. 自定义表单发布成普通菜单 - -- 整合了微信支付、支付宝支付、paypal支付 - 1. 提供支付、订单、支付通知底层框架,可以快速整合各种支付功能 - 2. 整合了微信支付功能,进行配置文件更新即可使用 - 3. 整合了支付宝支付功能,进行配置文件更新即可使用 - 4. 整合了paypal支付,进行配置文件更新即可使用 - -- 整合了oauth2.0框架 - 1. 提供oauth2.0的整体框架,构建统一认证中心、单点登录等不再是难事 - 2. 整合了微信、支付宝、手机验证码、账户密码等登录方式 - -## 💪 内置功能、界面展示 - -### 组织管理 -|功能 |描述| -|-------------------------------|--------------------------| -|机构管理 | 企业信息维护、管理员维护、账户信息维护、企业产品维护、| -|用户管理 | 用户的crud、分配岗位、分配部门、重置密码、邀请| -|部门管理 | 部门curd、分配岗位到部门、查看部门用户| -|公司管理 | 公司curd(超级管理员使用)| -|岗位管理 | 岗位curd、分配角色到岗位、岗位人员查看| -|注销审核 | 审核用户的注销申请| - - - - - - -### 个人中心 -|功能 |描述| -|-------------------------------|--------------------------| -|个人信息 | 基本信息、邮箱、手机、企业绑定、微信绑定等| -|我的消息 | 接收个人私信、公告等| -|登录日志 | 查询我的登录日志 | - - -### 角色权限 -|功能 |描述| -|-------------------------------|--------------------------| -|角色管理 | 角色crud、分配菜单、分配权限| -|权限定义 | 权限crud| -|菜单管理 | 菜单(按钮)crud、分配菜单(按钮)给角色、| -|模块管理 | 模块crud| -|已开模块 | 查看企业(个人)已开通的模块| - - - - -### 平台管理 -|功能 |描述| -|-------------------------------|--------------------------| -|平台配置 | 配置平台的信息| -|个人认证审核 | 审核个人的实名认证请求| -|企业认证审核 | 审核企业的实名认证请求| - - - -### 元数据管理 -|功能 |描述| -|-------------------------------|--------------------------| -|字典管理 | 数据字典的crud| -|列表维护 | 下拉列表数据项的crud| -|参数定义 | 公共系统参数的crud| - - - - - - -### 数据模型 -|功能 |描述| -|-------------------------------|--------------------------| -|模型中心 | 模型的crud| -|表格结构 | 表结构预览、表结构修改、表的字段维护等| -|表格数据 | 表的业务数据crud等| -|数据集市 | 可以快速构造查询sql,提供给外部接口、智能表单、数据分析等使用| -|创建数据集 | 数据集的设计、保存、预览数据等| - - - - - -### 智能表单 -支持mdp-ui组件的拖拉拽,支持表单0编码0耗时发布形成一个新的功能 - -|功能 |描述| -|-------------------------------|--------------------------| -|表单中心 |表单列表,权限管理,数据查阅等 | -|创建表单 | 表单设计、预览| - - - -### 内容管理 -|功能 |描述| -|-------------------------------|--------------------------| -|附件库 | 附件上传、预览、权限配置等| -|图片库 | 图片上传、预览、删除等| -|图标库 | 图标的预览、选用等| - - - - - -### 订单管理 -|功能 |描述| -|-------------------------------|--------------------------| -|我的订单 | 订单查看、管理、打折促销等| -|购买产品 | 下单购买应用| -|增购人数 | 增加企业人数| -|续费 | 到期续费| - - - -### 第三方管理 -|功能 |描述| -|-------------------------------|--------------------------| -|邀请管理 | 查询、管理我发起的邀请| -|我邀请的用户 | 查询我邀请的用户列表| -|第三方用户查询 | 查询第三方账户信息 | - - -### 流程模型 -|功能 |描述| -|-------------------------------|--------------------------| -|流程编辑器 | 在线流程编辑器| -|模型发布 | 流程模型发布| -|模型设置 | 设置流程与智能表单的关联、模型的启动条件、审批人、权限等| - - - - - - - -### 审批中心 -|功能 |描述| -|-------------------------------|--------------------------| -|待执行 | 我的待执行任务查询、任务执行| -|日历任务 | 我的待执行任务查询、任务执行| -|发起流程 | 发起流程| +## 😭 日常项目管理中,您是否有以下痛点? +### 需求管控困难 +- 需求不明确:客户提出一些模糊的需求,这可能导致开发团队对需求的理解存在偏差。 +- 信息分散、杂乱:需求可能散落在多个地方,如邮件、Excel表格、即时通讯工具、不同的项目组等无法进行统一管理。 +- 需求追溯困难:提出者、评审者、实施人等不明确,导致责任不清、分工不明等问题产生。 +- 需求与开发脱节:无法实时跟踪需求完成情况。无法实时定位需求进度落后原因,进而无法做出补救措施。 +- 需求与测试不匹配:需求文档与测试用例不匹配导致测试工作无法顺利进行 +- 需求变更频发:频繁变更需求,给开发团队带来很大的困扰。 +### 任务管理困难 +- 任务分配不明确:任务通过口头或邮件形式进行分配,这可能导致任务责任不明确和任务重叠。 +- 任务发布、沟通困难:由于涉及的成员和部门众多,信息同步不及时,很容易导致项目协作混乱。 +- 任务进度把控难:缺乏有效的工具来跟踪任务进度,团队成员很难准确把握项目的整体完成情况,也无法针对性地进行调整。 +- 任务风险管理不充分:常常忽视任务风险管理,导致项目面临较大的风险。 +- 工时统计困难:手动记录工时不仅容易出错,而且难以统计和分析,这不仅影响团队成员的个人成果统计,也影响团队之间的凝聚力和协作效果。 - - - - +### 质量管理困难 +- 质量标准不明确:缺乏明确的质量标准和规范,导致团队成员对质量要求的理解存在差异,从而影响软件质量。 +- 质量保证不到位:导致软件存在缺陷和漏洞,影响用户体验和产品可靠性。 +- 测试不全面:缺乏缺陷登记跟踪工具、缺乏测试用例管理工具,导致一些潜在问题未被发现和解决,从而影响软件质量。 +- 质量管理与开发流程不融合:质量管理与开发流程相互分离,导致质量管理与开发效率相互影响,难以实现高效的软件开发。 -### 审批监控 -|功能 |描述| -|-------------------------------|--------------------------| -|我发起的流程 | 查询我发起的流程| -|我监控的流程 | 查询我监控的流程、催办| -|我参与的流程 | 查询我参与过的流程| +### 缺乏协作&沟通 +- 沟通渠道不统一:在开发团队中,不同的成员可能有不同的沟通渠道,导致信息分散,难以统一管理。 +- 沟通不够及时:在开发过程中,有时沟通不够及时,导致一些重要信息滞后的处理,影响了项目进度。 +- 沟通不够清晰:由于技术术语或背景知识的不同,团队成员之间的沟通有时不够清晰,导致理解上的偏差。 +- 沟通缺乏反馈机制:在沟通中,有时缺乏反馈机制,导致对问题的处理不够及时和有效。 - +### 缺乏效能分析 +- 缺乏组织级、项目级、产品级、团队级、个人级、迭代级等不同组织级别的效能分析:企业在长期项目实施过程中,未构建起从组织级到个人级的效能分析体系,无法全面掌握企业的项目运作全貌,进而无法有效进行资源调配,利益最大化。 +- 缺乏对不同职能部门的多维度的效能分析 +- 缺乏风险预警、风险分析 +- 项目报告不全面、不准确 +- 质量报告不全面、不准确 +- 进度计划汇总、分解困难 -### 低代码 -|功能 |描述| -|-------------------------------|--------------------------| -|代码生成器 | 在线生成crud的前端页面代码(表单、表格、api),后端代码(控制层、服务层、dao层代码),前后端0修改即可正常运行 | +## 解决之道 + -### 界面风格切换 +### 系统概况 + - +### 系统特点 + - +### 系统功能 + - +### 技术架构 + -## ⚙ 组件库[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/lcode/#/mdp/lcode/index) -### 非唛盟的子系统如何快速整合mdp-ui组件库 ->找到[main.ts](/src/main.ts) 添加下面代码 -```js +### 项目总体管理 + -//mdp-ui 基础组件 -import MdpComponents from '@/components/mdp-ui/index.js' -//mdp-ui-ext拓展的组件 -import MdpUiExtComponents from '@/components/mdp-ui-ext/index.js' -//唛盟公共api -import MdpPubApi from "@/api/mdp_pub"; -const app = createApp(App) +### 需求管理 + -app.use(MdpComponents) -app.use(MdpUiExtComponents) -app.config.globalProperties.$mdp=MdpPubApi -``` +### 项目计划 + -### [mdp-dialog](/src/components/mdp-ui/mdp-dialog) -弹框,可以把任意页面装配成弹框,无须定义多余的变量及函数 -- 相对于el-dialog来说,要使用弹窗,事情还真不少。需要定义visible变量,定义showDialog,closeDialog两个函数,最关键一点是如果要父页面传递参数到窗口内组件,还得在父页面定义一个变量,通过props属性传递。相当麻烦。如果某个功能弹窗特别多,会有一堆的控制弹窗的变量及函数,非常恶心。mdp-dialog则完全解决上述问题。 -### [mdp-table](/src/components/mdp-ui/mdp-table) -表格,内置了增、删、改、查、高级查询、重置查询、导出、列配置、分页、批量编辑等功能、内置了对按钮权限的控制机制 -功能非常强大,懂的都懂。 +### 质量管理 + -- 综合管理 - -- 可编辑表格 - -- 可编辑-树状表格 - -### [mdp-select](/src/components/mdp-ui/mdp-select) -下拉列表,支持对数据字典、元数据的引用,支持对任意小表表格数据的引用,支持参数化加载后台数据,对后台加载的数据进行缓存 - +### 迭代管理 + -### [mdp-select-table](/src/components/mdp-ui/mdp-select-table) -超大表格下拉列表,与mdp-select相比,该组件具有分页查询功能 - -### [mdp-select-user](/src/components/mdp-ui-ext/mdp-select-user) -用户选择下拉列表,与mdp-select-table组件类似,仅仅针对用户的头像做了特殊处理 - +### 效能分析 + -### [mdp-input](/src/components/mdp-ui/mdp-input) -输入框 +## 💪 功能展示 +### 项目立项 + -### [mdp-date](/src/components/mdp-ui/mdp-date) -日期 -### [mdp-date-range](/src/components/mdp-ui/mdp-date-range) -区间日期 +### 项目总体 + -### [mdp-number](/src/components/mdp-ui/mdp-number) -数字输入 -### [mdp-hi-query](/src/components/mdp-ui/mdp-hi-query) -高级查询,可以由用户自定义任意复杂的查询条件 - +### 组织架构 + -### [mdp-table-configs](/src/components/mdp-ui/mdp-table-configs) -表格配置,用于控制表格的列显示与否 - -### [mdp-transfer](/src/components/mdp-ui/mdp-transfer) -穿梭框 +### 项目报告 + -### [mdp-cate-tree](/src/components/mdp-ui-ext/mdp-cate-tree) -文档、文章目录树 -### [mdp-expand](/src/components/mdp-ui-ext/mdp-expand) -智能表单相关组件 +### 需求管理 + -### [mdp-ext-infos](/src/components/mdp-ui-ext/mdp-ext-infos) -自动扩展字段信息 +### 用户故事 + -### [mdp-image](/src/components/mdp-ui-ext/mdp-image) -图片库,图片的增删改查、上传、下载 -### [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) -附件库,支持附件的上传下载、上传后的统一管理、共享 +### 项目计划-任务 + -### [mdp-select-cate](/src/components/mdp-ui-ext/mdp-select-cate) -文档、文章目录树选择器 -### [mdp-select-tag](/src/components/mdp-ui-ext/mdp-select-tag) -标签库,支持标签的统一管理、共享 +### 迭代概览 + -### [mdp-meta-item](/src/components/mdp-ui-ext/[mdp-meta-item) -元数据管理库、支持元数据的crud +### 迭代维护 + -### [mdp-meta-option](/src/components/mdp-ui-ext/mdp-meta-option) -元数据管理库-列表数据组件、支持列表数据的crud -### [mdp-rich-text](/src/components/mdp-ui-ext/mdp-rich-text) -富文本编辑器,整合了mdp-select-image作为插件 +### 测试管理 + -## 🔃 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. -### [mdp_config.js](/src/api/mdp_pub/mdp_config.js) -前端工程的一些公共配置项,主要配置每一类api对接哪个后端微服务 -根据不同的环境,需要修改部分内容。mdp_config配置项已与vue3工程公共配置打通,vue3依赖于VIET_*的全局配置项,因此,vue3及更高版本之后应该以VITE的配置为准,详细查阅 [env.d.ts](/types/env.d.ts) +### 测试报告 + -```js +### 缺陷管理 + -# 固定网址 -VITE_FIXED_DOMAIN=https://www.maimengcloud.com +### 财务费用 + -# 开源项目地址 -VITE_OPEN_SOURCE_LINK=https://gitee.com/qingqinkj218/collections/375320 +### 驾驶舱 + -# 微信开放平台 appid -VITE_WXOPEN_APPID=wx2671d5db8346b6fc +### 效能分析 + -# -# 说明: VITE_CTX_# 为定义唛盟各个子系统的context; -# context指向子系统的微服务名称,spring.application.name -# -# 1. 用于前端请求路径前缀映射, -# 前端页面一般部署在 ./{VITE_CONTEXT}/{VITE_UI_VERSION?} -# -# 2. api导航到对应子系统等 -# api一般按以下格式规范组装 ./{VITE_API_BASE_PATH}/{VITE_API_VERSION}/{VITE_CONTEXT} -# +### 燃尽图 + -# 登录相关,如果后端启用oauth2,则返回 oauth2client ,如果后端不启用oauth2,后端账户使用mdp-lcode服务,则返回 lcode ,如果使用mdp-sys提供服务,则返回sys -VITE_CTX_LOGIN=oauth2client +### 每日工作项分布 + -# 项目管理子系统 -VITE_CTX_XM=xm +### 任务年龄分布 + -# 工作流子系统,由于flowable启动限制,目前不支持jar集成到lcode,需要单独部署 -VITE_CTX_WF=workflow +### 任务排行棒 + -# 低代码子系统 -VITE_CTX_LCODE=lcode +### 测试用例规划分析 + -# 内容管理子系统 -VITE_CTX_ARC=arc +## 客户端展示 +### 小程序 + -# 数据模型 由lcode接管 -VITE_CTX_DM=lcode +### 审批管理 + -# 协同办公 -VITE_CTX_OA=oa - -# 系统管理,目前由lcode接管 -VITE_CTX_SYS=lcode - -# 智能表单,目前由lcode接管 -VITE_CTX_FORM=lcode - -# 商城-面向消费用户端 -VITE_CTX_MALL=mall - -# 商城管理端 -VITE_CTX_MALLM=mallm - -# 即时通讯 -VITE_CTX_IM=im - -# 短信 -VITE_CTX_SMS=sms - -# 唛盟内置的应用购买模块订单 目前由lcode接管 -VITE_CTX_MO=lcode - -# 众包 目前由xm接管 -VITE_CTX_CROWD=xm - -# 第三方集成系统 -VITE_CTX_TPA=tpa -``` - - -#### api的调用方法 -```html -
-5. [流程管理](https://maimengcloud.com/workflow/)
+5. [流程管理](https://maimengcloud.com/lcode/)
### 项目分支说明
diff --git a/docs/images/xm-jg/xm-1-jjzd.png b/docs/images/xm-jg/xm-1-jjzd.png
new file mode 100644
index 00000000..8cf202eb
Binary files /dev/null and b/docs/images/xm-jg/xm-1-jjzd.png differ
diff --git a/docs/images/xm-jg/xm-10-xmjh.png b/docs/images/xm-jg/xm-10-xmjh.png
new file mode 100644
index 00000000..73536349
Binary files /dev/null and b/docs/images/xm-jg/xm-10-xmjh.png differ
diff --git a/docs/images/xm-jg/xm-11-zlgl.png b/docs/images/xm-jg/xm-11-zlgl.png
new file mode 100644
index 00000000..7463ce29
Binary files /dev/null and b/docs/images/xm-jg/xm-11-zlgl.png differ
diff --git a/docs/images/xm-jg/xm-12-ddgl.png b/docs/images/xm-jg/xm-12-ddgl.png
new file mode 100644
index 00000000..e840a3b4
Binary files /dev/null and b/docs/images/xm-jg/xm-12-ddgl.png differ
diff --git a/docs/images/xm-jg/xm-13-xnfx.png b/docs/images/xm-jg/xm-13-xnfx.png
new file mode 100644
index 00000000..6ed2a4ae
Binary files /dev/null and b/docs/images/xm-jg/xm-13-xnfx.png differ
diff --git a/docs/images/xm-jg/xm-2-xtgk.png b/docs/images/xm-jg/xm-2-xtgk.png
new file mode 100644
index 00000000..78b79a76
Binary files /dev/null and b/docs/images/xm-jg/xm-2-xtgk.png differ
diff --git a/docs/images/xm-jg/xm-3-xttd.png b/docs/images/xm-jg/xm-3-xttd.png
new file mode 100644
index 00000000..9393bf33
Binary files /dev/null and b/docs/images/xm-jg/xm-3-xttd.png differ
diff --git a/docs/images/xm-jg/xm-4-xtgn.png b/docs/images/xm-jg/xm-4-xtgn.png
new file mode 100644
index 00000000..8480c3fb
Binary files /dev/null and b/docs/images/xm-jg/xm-4-xtgn.png differ
diff --git a/docs/images/xm-jg/xm-5-jsjg.png b/docs/images/xm-jg/xm-5-jsjg.png
new file mode 100644
index 00000000..e8b6c0be
Binary files /dev/null and b/docs/images/xm-jg/xm-5-jsjg.png differ
diff --git a/docs/images/xm-jg/xm-6-yyjg.png b/docs/images/xm-jg/xm-6-yyjg.png
new file mode 100644
index 00000000..20262a98
Binary files /dev/null and b/docs/images/xm-jg/xm-6-yyjg.png differ
diff --git a/docs/images/xm-jg/xm-7-xtzs.png b/docs/images/xm-jg/xm-7-xtzs.png
new file mode 100644
index 00000000..15aee278
Binary files /dev/null and b/docs/images/xm-jg/xm-7-xtzs.png differ
diff --git a/docs/images/xm-jg/xm-8-ztgl.png b/docs/images/xm-jg/xm-8-ztgl.png
new file mode 100644
index 00000000..23835158
Binary files /dev/null and b/docs/images/xm-jg/xm-8-ztgl.png differ
diff --git a/docs/images/xm-jg/xm-9-xqgl.png b/docs/images/xm-jg/xm-9-xqgl.png
new file mode 100644
index 00000000..58b47895
Binary files /dev/null and b/docs/images/xm-jg/xm-9-xqgl.png differ
diff --git a/docs/images/xm-price/module-price.png b/docs/images/xm-price/module-price.png
new file mode 100644
index 00000000..29958071
Binary files /dev/null and b/docs/images/xm-price/module-price.png differ
diff --git a/docs/images/xm-price/service-price.png b/docs/images/xm-price/service-price.png
new file mode 100644
index 00000000..574fd3d9
Binary files /dev/null and b/docs/images/xm-price/service-price.png differ
diff --git a/docs/images/xm-zs/xm-zs-1-xmlx.png b/docs/images/xm-zs/xm-zs-1-xmlx.png
new file mode 100644
index 00000000..9993eae0
Binary files /dev/null and b/docs/images/xm-zs/xm-zs-1-xmlx.png differ
diff --git a/docs/images/xm-zs/xm-zs-10-ddwh.png b/docs/images/xm-zs/xm-zs-10-ddwh.png
new file mode 100644
index 00000000..fc90b4e3
Binary files /dev/null and b/docs/images/xm-zs/xm-zs-10-ddwh.png differ
diff --git a/docs/images/xm-zs/xm-zs-11-csgl.png b/docs/images/xm-zs/xm-zs-11-csgl.png
new file mode 100644
index 00000000..0d8494b8
Binary files /dev/null and b/docs/images/xm-zs/xm-zs-11-csgl.png differ
diff --git a/docs/images/xm-zs/xm-zs-12-csbg.png b/docs/images/xm-zs/xm-zs-12-csbg.png
new file mode 100644
index 00000000..3107eff1
Binary files /dev/null and b/docs/images/xm-zs/xm-zs-12-csbg.png differ
diff --git a/docs/images/xm-zs/xm-zs-13-qxgl.png b/docs/images/xm-zs/xm-zs-13-qxgl.png
new file mode 100644
index 00000000..4032dfb4
Binary files /dev/null and b/docs/images/xm-zs/xm-zs-13-qxgl.png differ
diff --git a/docs/images/xm-zs/xm-zs-14-cwfy.png b/docs/images/xm-zs/xm-zs-14-cwfy.png
new file mode 100644
index 00000000..87d83d93
Binary files /dev/null and b/docs/images/xm-zs/xm-zs-14-cwfy.png differ
diff --git a/docs/images/xm-zs/xm-zs-15-jsc.png b/docs/images/xm-zs/xm-zs-15-jsc.png
new file mode 100644
index 00000000..173b502e
Binary files /dev/null and b/docs/images/xm-zs/xm-zs-15-jsc.png differ
diff --git a/docs/images/xm-zs/xm-zs-16-xnfx.png b/docs/images/xm-zs/xm-zs-16-xnfx.png
new file mode 100644
index 00000000..7a472838
Binary files /dev/null and b/docs/images/xm-zs/xm-zs-16-xnfx.png differ
diff --git a/docs/images/xm-zs/xm-zs-17-rjt.png b/docs/images/xm-zs/xm-zs-17-rjt.png
new file mode 100644
index 00000000..3b786da2
Binary files /dev/null and b/docs/images/xm-zs/xm-zs-17-rjt.png differ
diff --git a/docs/images/xm-zs/xm-zs-18-gzxfb.png b/docs/images/xm-zs/xm-zs-18-gzxfb.png
new file mode 100644
index 00000000..f555924b
Binary files /dev/null and b/docs/images/xm-zs/xm-zs-18-gzxfb.png differ
diff --git a/docs/images/xm-zs/xm-zs-19-rwnlfb.png b/docs/images/xm-zs/xm-zs-19-rwnlfb.png
new file mode 100644
index 00000000..b3c2af22
Binary files /dev/null and b/docs/images/xm-zs/xm-zs-19-rwnlfb.png differ
diff --git a/docs/images/xm-zs/xm-zs-2-xmzt.png b/docs/images/xm-zs/xm-zs-2-xmzt.png
new file mode 100644
index 00000000..c1abc6c1
Binary files /dev/null and b/docs/images/xm-zs/xm-zs-2-xmzt.png differ
diff --git a/docs/images/xm-zs/xm-zs-20-rwphb.png b/docs/images/xm-zs/xm-zs-20-rwphb.png
new file mode 100644
index 00000000..33884a50
Binary files /dev/null and b/docs/images/xm-zs/xm-zs-20-rwphb.png differ
diff --git a/docs/images/xm-zs/xm-zs-21-csylghfx.png b/docs/images/xm-zs/xm-zs-21-csylghfx.png
new file mode 100644
index 00000000..67d6d967
Binary files /dev/null and b/docs/images/xm-zs/xm-zs-21-csylghfx.png differ
diff --git a/docs/images/xm-zs/xm-zs-22-xcx.png b/docs/images/xm-zs/xm-zs-22-xcx.png
new file mode 100644
index 00000000..f6801025
Binary files /dev/null and b/docs/images/xm-zs/xm-zs-22-xcx.png differ
diff --git a/docs/images/xm-zs/xm-zs-23-spgl.png b/docs/images/xm-zs/xm-zs-23-spgl.png
new file mode 100644
index 00000000..285e99ea
Binary files /dev/null and b/docs/images/xm-zs/xm-zs-23-spgl.png differ
diff --git a/docs/images/xm-zs/xm-zs-24-csgl.png b/docs/images/xm-zs/xm-zs-24-csgl.png
new file mode 100644
index 00000000..9bcea802
Binary files /dev/null and b/docs/images/xm-zs/xm-zs-24-csgl.png differ
diff --git a/docs/images/xm-zs/xm-zs-3-zzjg.png b/docs/images/xm-zs/xm-zs-3-zzjg.png
new file mode 100644
index 00000000..5a8bd94f
Binary files /dev/null and b/docs/images/xm-zs/xm-zs-3-zzjg.png differ
diff --git a/docs/images/xm-zs/xm-zs-4-xmbg.png b/docs/images/xm-zs/xm-zs-4-xmbg.png
new file mode 100644
index 00000000..e8d3ee21
Binary files /dev/null and b/docs/images/xm-zs/xm-zs-4-xmbg.png differ
diff --git a/docs/images/xm-zs/xm-zs-5-xqgl.png b/docs/images/xm-zs/xm-zs-5-xqgl.png
new file mode 100644
index 00000000..781df5dc
Binary files /dev/null and b/docs/images/xm-zs/xm-zs-5-xqgl.png differ
diff --git a/docs/images/xm-zs/xm-zs-6-yhgs.png b/docs/images/xm-zs/xm-zs-6-yhgs.png
new file mode 100644
index 00000000..83747607
Binary files /dev/null and b/docs/images/xm-zs/xm-zs-6-yhgs.png differ
diff --git a/docs/images/xm-zs/xm-zs-7-xmjh.png b/docs/images/xm-zs/xm-zs-7-xmjh.png
new file mode 100644
index 00000000..212f00c3
Binary files /dev/null and b/docs/images/xm-zs/xm-zs-7-xmjh.png differ
diff --git a/docs/images/xm-zs/xm-zs-8-jhrw.png b/docs/images/xm-zs/xm-zs-8-jhrw.png
new file mode 100644
index 00000000..6b540d2e
Binary files /dev/null and b/docs/images/xm-zs/xm-zs-8-jhrw.png differ
diff --git a/docs/images/xm-zs/xm-zs-9-ddgl.png b/docs/images/xm-zs/xm-zs-9-ddgl.png
new file mode 100644
index 00000000..4745bdf4
Binary files /dev/null and b/docs/images/xm-zs/xm-zs-9-ddgl.png differ
diff --git a/src/api/mdp_pub/larc.js b/src/api/mdp_pub/larc.js
index 8570de59..4f548786 100644
--- a/src/api/mdp_pub/larc.js
+++ b/src/api/mdp_pub/larc.js
@@ -105,6 +105,8 @@ export const editCategory = params => { return axios.post(`/${arcBase}/mdp/arc/
//新增一条档案类目
export const addCategory = params => { return axios.post(`/${arcBase}/mdp/arc/pub/category/add`, params); }
+export const batchChangeParent= params => { return axios.post(`/${arcBase}/mdp/arc/pub/category/batchChangeParent`, params); }
+
//查询分类权限
export const listCategoryQx = params => { return axios.get(`/${arcBase}/mdp/arc/pub/categoryQx/list`, { params: params }); }
diff --git a/src/api/mdp_pub/mdp_api_ext.js b/src/api/mdp_pub/mdp_api_ext.js
index ee48726b..8b3ba2ea 100644
--- a/src/api/mdp_pub/mdp_api_ext.js
+++ b/src/api/mdp_pub/mdp_api_ext.js
@@ -65,6 +65,8 @@ addDept: params => { return axios.post(`/${sysBase}/mdp/sys/dept/add`, params )
editDept: params => { return axios.post(`/${sysBase}/mdp/sys/dept/edit`, params ); },
delDept: params => { return axios.post(`/${sysBase}/mdp/sys/dept/del`, params ); },
+batchChangeDeptParent: params => { return axios.post(`/${sysBase}/mdp/sys/dept/batchChangeParent`, params ); },
+
/**
* 角色列表
diff --git a/src/api/xm/core/xmFunc.js b/src/api/xm/core/xmFunc.js
index ef27d0b4..2873973f 100644
--- a/src/api/xm/core/xmFunc.js
+++ b/src/api/xm/core/xmFunc.js
@@ -27,6 +27,10 @@ export const editXmFunc = params => { return axios.post(`${base}/xm/core/xmFunc/
//新增一条功能模块表
export const addXmFunc = params => { return axios.post(`${base}/xm/core/xmFunc/add`, params); };
+
+//批量更新上级
+export const batchChangeParent = params => { return axios.post(`${base}/xm/core/xmFunc/batchChangeParent`, params); };
+
//批量修改某些字段
export const editSomeFieldsXmFunc = params => { return axios.post(`${base}/xm/core/xmFunc/editSomeFields`, params); };
diff --git a/src/api/xm/pro/xmBudgetNlabor.js b/src/api/xm/pro/xmBudgetNlabor.js
deleted file mode 100644
index b03244c3..00000000
--- a/src/api/xm/pro/xmBudgetNlabor.js
+++ /dev/null
@@ -1,37 +0,0 @@
-import axios from '@/config/maxios'
-
-
-import config from '@/api/mdp_pub/mdp_config'
-
-let base = config.getXmCtx();
-
-/**-------------------------与后端通讯接口------------------请写在下面-------------------------------------------- */
-/**
- * 项目人力成本预算
- *1 默认只开放普通查询,所有查询,只要上传 分页参数 {pageNum:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉,
- *2 查询、新增、修改的参数格式 params={id:'主键 主键',projectId:'项目编号',budgetAt:'预算金额',remark:'备注',subjectId:'预算科目',bizSdate:'费用归属周期开始日期',bizEdate:'费用归属周期结束日期',instId:'当前流程实例编号',bizFlowState:'当前流程状态0初始1审批中2审批通过3审批不通过4流程取消或者删除',costType:'成本类型0非人力1内部人力2外购人力',bizMonth:'费用归属月份yyyy-MM',subjectName:'科目名称',branchId:'项目归属企业编号'}
- **/
-
-//普通查询 条件之间and关系
-export const listXmBudgetNlabor = params => { return axios.get(`${base}/xm/core/xmBudgetNlabor/list`, { params: params }); };
-
-//删除一条项目人力成本预算 params={id:'主键 主键'}
-export const delXmBudgetNlabor = params => { return axios.post(`${base}/xm/core/xmBudgetNlabor/del`,params); };
-
-//批量删除项目人力成本预算 params=[{id:'主键 主键'}]
-export const batchDelXmBudgetNlabor = params => { return axios.post(`${base}/xm/core/xmBudgetNlabor/batchDel`, params); };
-
-//批量新增项目人力成本预算 params=[{id:'主键 主键'}]
-export const batchAddXmBudgetNlabor = params => { return axios.post(`${base}/xm/core/xmBudgetNlabor/batchAdd`, params); };
-
-//修改一条项目人力成本预算记录
-export const editXmBudgetNlabor = params => { return axios.post(`${base}/xm/core/xmBudgetNlabor/edit`, params); };
-
-//新增一条项目人力成本预算
-export const addXmBudgetNlabor = params => { return axios.post(`${base}/xm/core/xmBudgetNlabor/add`, params); };
-
-//批量修改某些字段
-export const editSomeFieldsXmBudgetNlabor = params => { return axios.post(`${base}/xm/core/xmBudgetNlabor/editSomeFields`, params); };
-
-
-export const listSumXmBudgetNlabor = params => { return axios.get(`${base}/xm/core/xmBudgetNlabor/listSum`, { params: params }); };
diff --git a/src/api/xm/pro/xmBudgetLabor.js b/src/api/xm/pro/xmBudgetRecord.js
similarity index 59%
rename from src/api/xm/pro/xmBudgetLabor.js
rename to src/api/xm/pro/xmBudgetRecord.js
index fda3b203..b0f51d1c 100644
--- a/src/api/xm/pro/xmBudgetLabor.js
+++ b/src/api/xm/pro/xmBudgetRecord.js
@@ -13,25 +13,26 @@ let base = config.getXmCtx();
**/
//普通查询 条件之间and关系
-export const listXmBudgetLabor = params => { return axios.get(`${base}/xm/core/xmBudgetLabor/list`, { params: params }); };
+export const listXmBudgetRecord = params => { return axios.get(`${base}/xm/core/xmBudgetRecord/list`, { params: params }); };
//删除一条项目人力成本预算 params={id:'主键 主键'}
-export const delXmBudgetLabor = params => { return axios.post(`${base}/xm/core/xmBudgetLabor/del`,params); };
+export const delXmBudgetRecord = params => { return axios.post(`${base}/xm/core/xmBudgetRecord/del`,params); };
//批量删除项目人力成本预算 params=[{id:'主键 主键'}]
-export const batchDelXmBudgetLabor = params => { return axios.post(`${base}/xm/core/xmBudgetLabor/batchDel`, params); };
+export const batchDelXmBudgetRecord = params => { return axios.post(`${base}/xm/core/xmBudgetRecord/batchDel`, params); };
//批量新增项目人力成本预算 params=[{id:'主键 主键'}]
-export const batchAddXmBudgetLabor = params => { return axios.post(`${base}/xm/core/xmBudgetLabor/batchAdd`, params); };
+export const batchAddXmBudgetRecord = params => { return axios.post(`${base}/xm/core/xmBudgetRecord/batchAdd`, params); };
//修改一条项目人力成本预算记录
-export const editXmBudgetLabor = params => { return axios.post(`${base}/xm/core/xmBudgetLabor/edit`, params); };
+export const editXmBudgetRecord = params => { return axios.post(`${base}/xm/core/xmBudgetRecord/edit`, params); };
//新增一条项目人力成本预算
-export const addXmBudgetLabor = params => { return axios.post(`${base}/xm/core/xmBudgetLabor/add`, params); };
+export const addXmBudgetRecord = params => { return axios.post(`${base}/xm/core/xmBudgetRecord/add`, params); };
//批量修改某些字段
-export const editSomeFieldsXmBudgetLabor = params => { return axios.post(`${base}/xm/core/xmBudgetLabor/editSomeFields`, params); };
+export const editSomeFieldsXmBudgetRecord = params => { return axios.post(`${base}/xm/core/xmBudgetRecord/editSomeFields`, params); };
-export const listSumXmBudgetLabor = params => { return axios.get(`${base}/xm/core/xmBudgetLabor/listSum`, { params: params }); };
-
\ No newline at end of file
+export const listSumXmBudgetRecord = params => { return axios.get(`${base}/xm/core/xmBudgetRecord/listSum`, { params: params }); };
+ //拆分一条项目人力成本预算
+export const splitXmBudgetRecord = params => { return axios.post(`${base}/xm/core/xmBudgetRecord/split`, params); };
diff --git a/src/api/xm/pro/xmCostNlabor.js b/src/api/xm/pro/xmCostRecord.js
similarity index 66%
rename from src/api/xm/pro/xmCostNlabor.js
rename to src/api/xm/pro/xmCostRecord.js
index 0004ff7f..d7dfbc77 100644
--- a/src/api/xm/pro/xmCostNlabor.js
+++ b/src/api/xm/pro/xmCostRecord.js
@@ -13,23 +13,23 @@ let base = config.getXmCtx();
**/
//普通查询 条件之间and关系
-export const listXmCostNlabor = params => { return axios.get(`${base}/xm/core/xmCostNlabor/list`, { params: params }); };
+export const listXmCostRecord = params => { return axios.get(`${base}/xm/core/xmCostRecord/list`, { params: params }); };
//删除一条项目实际人工成本费用 params={id:'主键 主键'}
-export const delXmCostNlabor = params => { return axios.post(`${base}/xm/core/xmCostNlabor/del`,params); };
+export const delXmCostRecord = params => { return axios.post(`${base}/xm/core/xmCostRecord/del`,params); };
//批量删除项目实际人工成本费用 params=[{id:'主键 主键'}]
-export const batchDelXmCostNlabor = params => { return axios.post(`${base}/xm/core/xmCostNlabor/batchDel`, params); };
+export const batchDelXmCostRecord = params => { return axios.post(`${base}/xm/core/xmCostRecord/batchDel`, params); };
//修改一条项目实际人工成本费用记录
-export const editXmCostNlabor = params => { return axios.post(`${base}/xm/core/xmCostNlabor/edit`, params); };
+export const editXmCostRecord = params => { return axios.post(`${base}/xm/core/xmCostRecord/edit`, params); };
//新增一条项目实际人工成本费用
-export const addXmCostNlabor = params => { return axios.post(`${base}/xm/core/xmCostNlabor/add`, params); };
+export const addXmCostRecord = params => { return axios.post(`${base}/xm/core/xmCostRecord/add`, params); };
//批量修改某些字段
-export const editSomeFieldsXmCostNlabor = params => { return axios.post(`${base}/xm/core/xmCostNlabor/editSomeFields`, params); };
+export const editSomeFieldsXmCostRecord = params => { return axios.post(`${base}/xm/core/xmCostRecord/editSomeFields`, params); };
//普通查询 条件之间and关系
-export const listSumXmCostNlabor = params => { return axios.get(`${base}/xm/core/xmCostNlabor/listSum`, { params: params }); };
+export const listSumXmCostRecord = params => { return axios.get(`${base}/xm/core/xmCostRecord/listSum`, { params: params }); };
diff --git a/src/components/mdp-ui-ext/index.js b/src/components/mdp-ui-ext/index.js
index 94b3b1f4..45d57caa 100644
--- a/src/components/mdp-ui-ext/index.js
+++ b/src/components/mdp-ui-ext/index.js
@@ -15,7 +15,8 @@ import MdpFormData from './mdp-expand/FormData.vue'
import MdpFormExpand from './mdp-expand/FormExpand.vue'
import MdpColumnExpand from './mdp-expand/ColumnExpand.vue'
import MdpFuncMenu from './mdp-func-menu/Index.vue'
-import MdpFocus from './mdp-focus/Index.vue'
+import MdpFocus from './mdp-focus/Index.vue'
+import MdpSelectBranch from './mdp-select-branch/Index.vue'
const compLists = {
install: function(Vue) {
@@ -38,6 +39,7 @@ const compLists = {
Vue.component('MdpColumnExpand', MdpColumnExpand)
Vue.component('MdpFuncMenu',MdpFuncMenu)
Vue.component('MdpFocus',MdpFocus)
+ Vue.component('MdpSelectBranch',MdpSelectBranch)
}
}
export default compLists
\ No newline at end of file
diff --git a/src/components/mdp-ui-ext/mdp-cate-tree/Index.vue b/src/components/mdp-ui-ext/mdp-cate-tree/Index.vue
index b34320a4..696c015f 100644
--- a/src/components/mdp-ui-ext/mdp-cate-tree/Index.vue
+++ b/src/components/mdp-ui-ext/mdp-cate-tree/Index.vue
@@ -1,235 +1,178 @@
-
-