├── src ├── views │ ├── infra │ │ ├── build │ │ │ ├── README.md │ │ │ ├── App.vue │ │ │ └── main.js │ │ ├── skywalking │ │ │ └── index.vue │ │ ├── server │ │ │ └── index.vue │ │ ├── swagger │ │ │ └── index.vue │ │ └── druid │ │ │ └── index.vue │ ├── mp │ │ └── menu │ │ │ └── assets │ │ │ ├── demo.png │ │ │ ├── logo.png │ │ │ ├── menu_foot.png │ │ │ ├── menu_head.png │ │ │ └── iphone_backImg.png │ ├── redirect.vue │ ├── components │ │ └── icons │ │ │ └── svg-icons.js │ ├── crm │ │ ├── statistics │ │ │ └── rank │ │ │ │ └── index.vue │ │ ├── product │ │ │ ├── index.vue │ │ │ └── category │ │ │ │ └── index.vue │ │ ├── backlog │ │ │ └── index.vue │ │ ├── clue │ │ │ └── index.vue │ │ ├── business │ │ │ ├── index.vue │ │ │ └── status │ │ │ │ └── index.vue │ │ ├── contact │ │ │ └── index.vue │ │ ├── contract │ │ │ ├── index.vue │ │ │ └── config │ │ │ │ └── index.vue │ │ ├── customer │ │ │ ├── index.vue │ │ │ ├── pool │ │ │ │ └── index.vue │ │ │ ├── poolConfig │ │ │ │ └── index.vue │ │ │ └── limitConfig │ │ │ │ └── index.vue │ │ └── receivable │ │ │ ├── index.vue │ │ │ └── plan │ │ │ └── index.vue │ ├── report │ │ ├── jmreport │ │ │ ├── bi.vue │ │ │ └── index.vue │ │ └── goview │ │ │ └── index.vue │ ├── bpm │ │ ├── category │ │ │ └── index.vue │ │ ├── task │ │ │ ├── manager │ │ │ │ └── index.vue │ │ │ └── copy │ │ │ │ └── index.vue │ │ ├── processExpression │ │ │ └── index.vue │ │ ├── processListener │ │ │ └── index.vue │ │ └── processInstance │ │ │ └── manager │ │ │ └── index.vue │ ├── ai │ │ ├── chat │ │ │ ├── index │ │ │ │ └── index.vue │ │ │ └── manager │ │ │ │ └── index.vue │ │ ├── image │ │ │ ├── index │ │ │ │ └── index.vue │ │ │ ├── square │ │ │ │ └── index.vue │ │ │ └── manager │ │ │ │ └── index.vue │ │ ├── model │ │ │ ├── apiKey │ │ │ │ └── index.vue │ │ │ ├── chatModel │ │ │ │ └── index.vue │ │ │ └── chatRole │ │ │ │ └── index.vue │ │ ├── music │ │ │ ├── index │ │ │ │ └── index.vue │ │ │ └── manager │ │ │ │ └── index.vue │ │ └── write │ │ │ ├── index │ │ │ └── index.vue │ │ │ └── manager │ │ │ └── index.vue │ ├── erp │ │ ├── home │ │ │ └── index.vue │ │ ├── sale │ │ │ ├── out │ │ │ │ └── index.vue │ │ │ ├── order │ │ │ │ └── index.vue │ │ │ ├── customer │ │ │ │ └── index.vue │ │ │ └── return │ │ │ │ └── index.vue │ │ ├── purchase │ │ │ ├── in │ │ │ │ └── index.vue │ │ │ ├── order │ │ │ │ └── index.vue │ │ │ ├── return │ │ │ │ └── index.vue │ │ │ └── supplier │ │ │ │ └── index.vue │ │ ├── stock │ │ │ ├── in │ │ │ │ └── index.vue │ │ │ ├── out │ │ │ │ └── index.vue │ │ │ ├── record │ │ │ │ └── index.vue │ │ │ ├── stock │ │ │ │ └── index.vue │ │ │ ├── warehouse │ │ │ │ └── index.vue │ │ │ ├── check │ │ │ │ └── index.vue │ │ │ └── move │ │ │ │ └── index.vue │ │ ├── product │ │ │ ├── unit │ │ │ │ └── index.vue │ │ │ ├── category │ │ │ │ └── index.vue │ │ │ └── product │ │ │ │ └── index.vue │ │ └── finance │ │ │ ├── account │ │ │ └── index.vue │ │ │ ├── payment │ │ │ └── index.vue │ │ │ └── receipt │ │ │ └── index.vue │ ├── mall │ │ ├── home │ │ │ └── index.vue │ │ ├── promotion │ │ │ ├── diy │ │ │ │ ├── page │ │ │ │ │ └── index.vue │ │ │ │ └── template │ │ │ │ │ └── index.vue │ │ │ ├── article │ │ │ │ ├── index.vue │ │ │ │ └── category │ │ │ │ │ └── index.vue │ │ │ ├── banner │ │ │ │ └── index.vue │ │ │ ├── bargain │ │ │ │ ├── record │ │ │ │ │ └── index.vue │ │ │ │ └── activity │ │ │ │ │ └── index.vue │ │ │ └── combination │ │ │ │ ├── record │ │ │ │ └── index.vue │ │ │ │ └── activity │ │ │ │ └── index.vue │ │ ├── product │ │ │ └── comment │ │ │ │ └── index.vue │ │ ├── statistics │ │ │ ├── trade │ │ │ │ └── index.vue │ │ │ ├── member │ │ │ │ └── index.vue │ │ │ └── product │ │ │ │ └── index.vue │ │ └── trade │ │ │ ├── brokerage │ │ │ ├── user │ │ │ │ └── index.vue │ │ │ ├── record │ │ │ │ └── index.vue │ │ │ └── withdraw │ │ │ │ └── index.vue │ │ │ ├── delivery │ │ │ ├── express │ │ │ │ └── index.vue │ │ │ ├── pickUpOrder │ │ │ │ └── index.vue │ │ │ ├── pickUpStore │ │ │ │ └── index.vue │ │ │ └── expressTemplate │ │ │ │ └── index.vue │ │ │ └── config │ │ │ └── index.vue │ ├── member │ │ ├── group │ │ │ └── index.vue │ │ ├── level │ │ │ └── index.vue │ │ ├── tag │ │ │ └── index.vue │ │ ├── user │ │ │ └── index.vue │ │ ├── config │ │ │ └── index.vue │ │ ├── point │ │ │ └── record │ │ │ │ └── index.vue │ │ └── signin │ │ │ ├── config │ │ │ └── index.vue │ │ │ └── record │ │ │ └── index.vue │ └── system │ │ └── social │ │ ├── client │ │ └── index.vue │ │ └── user │ │ └── index.vue ├── components │ ├── ParentView │ │ └── index.vue │ ├── tinymce │ │ ├── README.md │ │ ├── index.js │ │ ├── example │ │ │ └── Index.vue │ │ ├── config.js │ │ └── package.json │ ├── parser │ │ ├── index.js │ │ ├── README.md │ │ └── package.json │ ├── bpmnProcessDesigner │ │ ├── package │ │ │ ├── theme │ │ │ │ └── index.scss │ │ │ ├── designer │ │ │ │ ├── plugins │ │ │ │ │ ├── extension-moddle │ │ │ │ │ │ ├── camunda │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── activiti │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ └── flowable │ │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── content-pad │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── defaultEmpty.js │ │ │ │ │ └── palette │ │ │ │ │ │ └── index.js │ │ │ │ ├── index2.js │ │ │ │ └── index.js │ │ │ ├── penal │ │ │ │ └── index.js │ │ │ └── index.js │ │ └── src │ │ │ ├── modules │ │ │ ├── rules │ │ │ │ ├── index.js │ │ │ │ └── CustomRules.js │ │ │ └── custom-renderer │ │ │ │ ├── index.js │ │ │ │ └── CustomRenderer.js │ │ │ ├── highlight │ │ │ └── index.js │ │ │ └── utils │ │ │ └── index.js │ ├── render │ │ ├── slots │ │ │ ├── el-button.js │ │ │ ├── el-input.js │ │ │ ├── el-select.js │ │ │ ├── el-radio-group.js │ │ │ ├── el-checkbox-group.js │ │ │ └── el-upload.js │ │ └── package.json │ ├── IconSelect │ │ └── requireIcons.js │ ├── RuoYi │ │ ├── Doc │ │ │ └── index.vue │ │ └── Git │ │ │ └── index.vue │ ├── generator │ │ ├── ruleTrigger.js │ │ ├── css.js │ │ └── drawingDefalut.js │ ├── RADME.md │ ├── DocAlert │ │ └── index.vue │ ├── DictTag │ │ └── index.vue │ └── iFrame │ │ └── index.vue ├── assets │ ├── images │ │ ├── bg.png │ │ ├── icon.png │ │ ├── pic.png │ │ ├── default.jpg │ │ ├── profile.jpg │ │ ├── wechat.png │ │ ├── bg-mobile.png │ │ └── pay │ │ │ └── icon │ │ │ ├── alipay_pc.svg │ │ │ └── alipay_wap.svg │ ├── logo │ │ ├── logo.png │ │ └── login-logo.png │ ├── 401_images │ │ └── 401.gif │ ├── 404_images │ │ ├── 404.png │ │ └── 404_cloud.png │ ├── icons │ │ ├── svg │ │ │ ├── chart.svg │ │ │ ├── size.svg │ │ │ ├── slider.svg │ │ │ ├── link.svg │ │ │ ├── guide.svg │ │ │ ├── money.svg │ │ │ ├── email.svg │ │ │ ├── drag.svg │ │ │ ├── monitor.svg │ │ │ ├── switch.svg │ │ │ ├── documentation.svg │ │ │ ├── fullscreen.svg │ │ │ ├── druid.svg │ │ │ ├── lock.svg │ │ │ ├── user.svg │ │ │ ├── excel.svg │ │ │ ├── input.svg │ │ │ ├── row.svg │ │ │ ├── example.svg │ │ │ ├── textarea.svg │ │ │ ├── time.svg │ │ │ ├── star.svg │ │ │ ├── search.svg │ │ │ ├── table.svg │ │ │ ├── build.svg │ │ │ ├── education.svg │ │ │ ├── tab.svg │ │ │ ├── question.svg │ │ │ ├── radio.svg │ │ │ ├── message.svg │ │ │ ├── download.svg │ │ │ ├── theme.svg │ │ │ ├── select.svg │ │ │ ├── code.svg │ │ │ ├── peoples.svg │ │ │ ├── server.svg │ │ │ ├── checkbox.svg │ │ │ ├── edit.svg │ │ │ ├── nested.svg │ │ │ ├── pay.svg │ │ │ ├── percentSign.svg │ │ │ ├── phone.svg │ │ │ ├── rate.svg │ │ │ ├── tree-table.svg │ │ │ ├── post.svg │ │ │ ├── eye.svg │ │ │ ├── clipboard.svg │ │ │ ├── list.svg │ │ │ ├── github.svg │ │ │ ├── logininfor.svg │ │ │ ├── validCode.svg │ │ │ ├── icon.svg │ │ │ ├── password.svg │ │ │ ├── upload.svg │ │ │ └── international.svg │ │ ├── index.js │ │ └── svgo.yml │ └── styles │ │ ├── element-variables.scss │ │ └── transition.scss ├── utils │ ├── errorCode.js │ ├── pluginsConfig.js │ ├── loadTinymce.js │ ├── loadBeautifier.js │ ├── ase.js │ ├── formGenerator.js │ └── loadMonaco.js ├── api │ ├── infra │ │ ├── redis.js │ │ ├── apiAccessLog.js │ │ ├── jobLog.js │ │ └── apiErrorLog.js │ ├── bpm │ │ ├── activity.js │ │ ├── leave.js │ │ ├── taskAssignRule.js │ │ ├── definition.js │ │ ├── processInstance.js │ │ └── form.js │ ├── mall │ │ ├── product │ │ │ ├── sku.js │ │ │ └── category.js │ │ ├── trade │ │ │ ├── order.js │ │ │ └── afterSale.js │ │ └── promotion │ │ │ └── coupon.js │ ├── system │ │ ├── area.js │ │ ├── mail │ │ │ └── log.js │ │ ├── loginlog.js │ │ ├── oauth2 │ │ │ └── oauth2Token.js │ │ ├── operatelog.js │ │ ├── sms │ │ │ └── smsLog.js │ │ ├── socialUser.js │ │ └── permission.js │ ├── mp │ │ ├── message.js │ │ ├── material.js │ │ ├── menu.js │ │ ├── freePublish.js │ │ ├── mpuser.js │ │ ├── statistics.js │ │ ├── draft.js │ │ └── autoReply.js │ └── pay │ │ ├── notify.js │ │ ├── demo.js │ │ └── channel.js ├── layout │ └── components │ │ ├── index.js │ │ ├── IframeToggle │ │ └── index.vue │ │ └── Sidebar │ │ ├── FixiOSBug.js │ │ ├── Item.vue │ │ └── Link.vue ├── plugins │ └── index.js ├── store │ ├── index.js │ └── getters.js ├── tongji.js ├── App.vue ├── styles │ └── mixin.scss ├── directive │ ├── permission │ │ ├── hasRole.js │ │ └── hasPermi.js │ └── index.js └── settings.js ├── public ├── robots.txt ├── favicon.ico └── libs │ └── monaco-editor │ └── vs │ └── base │ └── browser │ └── ui │ └── codicons │ └── codicon │ └── codicon.ttf ├── .dockerignore ├── .image ├── 敏感词.jpg ├── 登录.jpg ├── 首页.jpg ├── 首页.png ├── MySQL.jpg ├── Redis.jpg ├── 个人中心.jpg ├── 代码生成.jpg ├── 令牌管理.jpg ├── 任务日志.jpg ├── 商户信息.jpg ├── 在线用户.jpg ├── 字典数据.jpg ├── 字典类型.jpg ├── 定时任务.jpg ├── 岗位管理.jpg ├── 应用管理.jpg ├── 操作日志.jpg ├── 支付订单.jpg ├── 数据库文档.jpg ├── 文件管理.jpg ├── 文件管理2.jpg ├── 文件配置.jpg ├── 日志中心.jpg ├── 流程表单.jpg ├── 生成效果.jpg ├── 用户分组.jpg ├── 用户管理.jpg ├── 登录日志.jpg ├── 短信日志.jpg ├── 短信模板.jpg ├── 短信渠道.jpg ├── 租户套餐.png ├── 租户管理.jpg ├── 系统接口.jpg ├── 菜单管理.jpg ├── 表单构建.jpg ├── 角色管理.jpg ├── 访问日志.jpg ├── 退款订单.jpg ├── 通知公告.jpg ├── 部门管理.jpg ├── 配置管理.jpg ├── 链路追踪.jpg ├── 错误日志.jpg ├── 错误码管理.jpg ├── Java监控.jpg ├── OA请假-列表.jpg ├── OA请假-发起.jpg ├── OA请假-详情.jpg ├── 任务列表-审批.jpg ├── 任务列表-已办.jpg ├── 任务列表-待办.jpg ├── 大屏设计器-列表.jpg ├── 大屏设计器-编辑.jpg ├── 大屏设计器-预览.jpg ├── 应用信息-列表.jpg ├── 应用信息-编辑.jpg ├── 我的流程-列表.jpg ├── 我的流程-发起.jpg ├── 我的流程-详情.jpg ├── 流程模型-列表.jpg ├── 流程模型-定义.jpg ├── 流程模型-设计.jpg ├── 报表设计器-图形报表.jpg ├── 报表设计器-打印设计.jpg ├── 报表设计器-数据报表.jpg ├── 工作流设计器-bpmn.jpg ├── 工作流设计器-simple.jpg ├── admin-uniapp │ ├── 01.png │ ├── 02.png │ ├── 03.png │ ├── 04.png │ ├── 05.png │ ├── 06.png │ ├── 07.png │ ├── 08.png │ └── 09.png └── common │ ├── ai-feature.png │ ├── ai-preview.gif │ ├── bpm-feature.png │ ├── crm-feature.png │ ├── erp-feature.png │ ├── project-vs.png │ ├── infra-feature.png │ ├── mall-feature.png │ ├── mall-preview.png │ ├── yudao-roadmap.png │ ├── system-feature.png │ ├── ruoyi-vue-pro-biz.png │ ├── ruoyi-vue-pro-architecture.png │ └── yudao-cloud-architecture.png ├── bin ├── build.bat ├── package.bat └── run-web.bat ├── .eslintignore ├── .npmrc ├── .gitignore ├── .env.dev ├── .editorconfig ├── .env.front ├── .env.static ├── .env.prod ├── .env.stage ├── babel.config.js ├── Dockerfile └── nginx.conf /src/views/infra/build/README.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: / -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | .dockerignore 2 | dist 3 | node_modules 4 | -------------------------------------------------------------------------------- /.image/敏感词.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/敏感词.jpg -------------------------------------------------------------------------------- /.image/登录.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/登录.jpg -------------------------------------------------------------------------------- /.image/首页.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/首页.jpg -------------------------------------------------------------------------------- /.image/首页.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/首页.png -------------------------------------------------------------------------------- /bin/build.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/bin/build.bat -------------------------------------------------------------------------------- /src/components/ParentView/index.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /src/components/tinymce/README.md: -------------------------------------------------------------------------------- 1 | ## 简介 2 | 富文本编辑器tinymce的一个vue版本封装。使用cdn动态脚本引入的方式加载。 3 | 4 | -------------------------------------------------------------------------------- /.image/MySQL.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/MySQL.jpg -------------------------------------------------------------------------------- /.image/Redis.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/Redis.jpg -------------------------------------------------------------------------------- /.image/个人中心.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/个人中心.jpg -------------------------------------------------------------------------------- /.image/代码生成.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/代码生成.jpg -------------------------------------------------------------------------------- /.image/令牌管理.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/令牌管理.jpg -------------------------------------------------------------------------------- /.image/任务日志.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/任务日志.jpg -------------------------------------------------------------------------------- /.image/商户信息.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/商户信息.jpg -------------------------------------------------------------------------------- /.image/在线用户.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/在线用户.jpg -------------------------------------------------------------------------------- /.image/字典数据.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/字典数据.jpg -------------------------------------------------------------------------------- /.image/字典类型.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/字典类型.jpg -------------------------------------------------------------------------------- /.image/定时任务.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/定时任务.jpg -------------------------------------------------------------------------------- /.image/岗位管理.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/岗位管理.jpg -------------------------------------------------------------------------------- /.image/应用管理.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/应用管理.jpg -------------------------------------------------------------------------------- /.image/操作日志.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/操作日志.jpg -------------------------------------------------------------------------------- /.image/支付订单.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/支付订单.jpg -------------------------------------------------------------------------------- /.image/数据库文档.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/数据库文档.jpg -------------------------------------------------------------------------------- /.image/文件管理.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/文件管理.jpg -------------------------------------------------------------------------------- /.image/文件管理2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/文件管理2.jpg -------------------------------------------------------------------------------- /.image/文件配置.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/文件配置.jpg -------------------------------------------------------------------------------- /.image/日志中心.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/日志中心.jpg -------------------------------------------------------------------------------- /.image/流程表单.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/流程表单.jpg -------------------------------------------------------------------------------- /.image/生成效果.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/生成效果.jpg -------------------------------------------------------------------------------- /.image/用户分组.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/用户分组.jpg -------------------------------------------------------------------------------- /.image/用户管理.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/用户管理.jpg -------------------------------------------------------------------------------- /.image/登录日志.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/登录日志.jpg -------------------------------------------------------------------------------- /.image/短信日志.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/短信日志.jpg -------------------------------------------------------------------------------- /.image/短信模板.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/短信模板.jpg -------------------------------------------------------------------------------- /.image/短信渠道.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/短信渠道.jpg -------------------------------------------------------------------------------- /.image/租户套餐.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/租户套餐.png -------------------------------------------------------------------------------- /.image/租户管理.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/租户管理.jpg -------------------------------------------------------------------------------- /.image/系统接口.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/系统接口.jpg -------------------------------------------------------------------------------- /.image/菜单管理.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/菜单管理.jpg -------------------------------------------------------------------------------- /.image/表单构建.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/表单构建.jpg -------------------------------------------------------------------------------- /.image/角色管理.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/角色管理.jpg -------------------------------------------------------------------------------- /.image/访问日志.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/访问日志.jpg -------------------------------------------------------------------------------- /.image/退款订单.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/退款订单.jpg -------------------------------------------------------------------------------- /.image/通知公告.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/通知公告.jpg -------------------------------------------------------------------------------- /.image/部门管理.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/部门管理.jpg -------------------------------------------------------------------------------- /.image/配置管理.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/配置管理.jpg -------------------------------------------------------------------------------- /.image/链路追踪.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/链路追踪.jpg -------------------------------------------------------------------------------- /.image/错误日志.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/错误日志.jpg -------------------------------------------------------------------------------- /.image/错误码管理.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/错误码管理.jpg -------------------------------------------------------------------------------- /bin/package.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/bin/package.bat -------------------------------------------------------------------------------- /bin/run-web.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/bin/run-web.bat -------------------------------------------------------------------------------- /src/components/parser/index.js: -------------------------------------------------------------------------------- 1 | import Parser from './Parser' 2 | 3 | export default Parser 4 | -------------------------------------------------------------------------------- /src/components/tinymce/index.js: -------------------------------------------------------------------------------- 1 | import Index from './index.vue' 2 | 3 | export default Index 4 | -------------------------------------------------------------------------------- /.image/Java监控.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/Java监控.jpg -------------------------------------------------------------------------------- /.image/OA请假-列表.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/OA请假-列表.jpg -------------------------------------------------------------------------------- /.image/OA请假-发起.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/OA请假-发起.jpg -------------------------------------------------------------------------------- /.image/OA请假-详情.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/OA请假-详情.jpg -------------------------------------------------------------------------------- /.image/任务列表-审批.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/任务列表-审批.jpg -------------------------------------------------------------------------------- /.image/任务列表-已办.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/任务列表-已办.jpg -------------------------------------------------------------------------------- /.image/任务列表-待办.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/任务列表-待办.jpg -------------------------------------------------------------------------------- /.image/大屏设计器-列表.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/大屏设计器-列表.jpg -------------------------------------------------------------------------------- /.image/大屏设计器-编辑.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/大屏设计器-编辑.jpg -------------------------------------------------------------------------------- /.image/大屏设计器-预览.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/大屏设计器-预览.jpg -------------------------------------------------------------------------------- /.image/应用信息-列表.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/应用信息-列表.jpg -------------------------------------------------------------------------------- /.image/应用信息-编辑.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/应用信息-编辑.jpg -------------------------------------------------------------------------------- /.image/我的流程-列表.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/我的流程-列表.jpg -------------------------------------------------------------------------------- /.image/我的流程-发起.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/我的流程-发起.jpg -------------------------------------------------------------------------------- /.image/我的流程-详情.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/我的流程-详情.jpg -------------------------------------------------------------------------------- /.image/流程模型-列表.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/流程模型-列表.jpg -------------------------------------------------------------------------------- /.image/流程模型-定义.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/流程模型-定义.jpg -------------------------------------------------------------------------------- /.image/流程模型-设计.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/流程模型-设计.jpg -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /.image/报表设计器-图形报表.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/报表设计器-图形报表.jpg -------------------------------------------------------------------------------- /.image/报表设计器-打印设计.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/报表设计器-打印设计.jpg -------------------------------------------------------------------------------- /.image/报表设计器-数据报表.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/报表设计器-数据报表.jpg -------------------------------------------------------------------------------- /.image/工作流设计器-bpmn.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/工作流设计器-bpmn.jpg -------------------------------------------------------------------------------- /.image/工作流设计器-simple.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/工作流设计器-simple.jpg -------------------------------------------------------------------------------- /src/assets/images/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/src/assets/images/bg.png -------------------------------------------------------------------------------- /src/assets/logo/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/src/assets/logo/logo.png -------------------------------------------------------------------------------- /.image/admin-uniapp/01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/admin-uniapp/01.png -------------------------------------------------------------------------------- /.image/admin-uniapp/02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/admin-uniapp/02.png -------------------------------------------------------------------------------- /.image/admin-uniapp/03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/admin-uniapp/03.png -------------------------------------------------------------------------------- /.image/admin-uniapp/04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/admin-uniapp/04.png -------------------------------------------------------------------------------- /.image/admin-uniapp/05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/admin-uniapp/05.png -------------------------------------------------------------------------------- /.image/admin-uniapp/06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/admin-uniapp/06.png -------------------------------------------------------------------------------- /.image/admin-uniapp/07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/admin-uniapp/07.png -------------------------------------------------------------------------------- /.image/admin-uniapp/08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/admin-uniapp/08.png -------------------------------------------------------------------------------- /.image/admin-uniapp/09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/admin-uniapp/09.png -------------------------------------------------------------------------------- /src/assets/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/src/assets/images/icon.png -------------------------------------------------------------------------------- /src/assets/images/pic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/src/assets/images/pic.png -------------------------------------------------------------------------------- /.image/common/ai-feature.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/common/ai-feature.png -------------------------------------------------------------------------------- /.image/common/ai-preview.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/common/ai-preview.gif -------------------------------------------------------------------------------- /.image/common/bpm-feature.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/common/bpm-feature.png -------------------------------------------------------------------------------- /.image/common/crm-feature.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/common/crm-feature.png -------------------------------------------------------------------------------- /.image/common/erp-feature.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/common/erp-feature.png -------------------------------------------------------------------------------- /.image/common/project-vs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/common/project-vs.png -------------------------------------------------------------------------------- /src/assets/401_images/401.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/src/assets/401_images/401.gif -------------------------------------------------------------------------------- /src/assets/404_images/404.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/src/assets/404_images/404.png -------------------------------------------------------------------------------- /src/assets/images/default.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/src/assets/images/default.jpg -------------------------------------------------------------------------------- /src/assets/images/profile.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/src/assets/images/profile.jpg -------------------------------------------------------------------------------- /src/assets/images/wechat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/src/assets/images/wechat.png -------------------------------------------------------------------------------- /.image/common/infra-feature.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/common/infra-feature.png -------------------------------------------------------------------------------- /.image/common/mall-feature.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/common/mall-feature.png -------------------------------------------------------------------------------- /.image/common/mall-preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/common/mall-preview.png -------------------------------------------------------------------------------- /.image/common/yudao-roadmap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/common/yudao-roadmap.png -------------------------------------------------------------------------------- /src/assets/images/bg-mobile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/src/assets/images/bg-mobile.png -------------------------------------------------------------------------------- /src/assets/logo/login-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/src/assets/logo/login-logo.png -------------------------------------------------------------------------------- /.image/common/system-feature.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/common/system-feature.png -------------------------------------------------------------------------------- /src/components/bpmnProcessDesigner/package/theme/index.scss: -------------------------------------------------------------------------------- 1 | @import "./process-designer.scss"; 2 | @import "./process-panel.scss"; -------------------------------------------------------------------------------- /src/views/mp/menu/assets/demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/src/views/mp/menu/assets/demo.png -------------------------------------------------------------------------------- /src/views/mp/menu/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/src/views/mp/menu/assets/logo.png -------------------------------------------------------------------------------- /.image/common/ruoyi-vue-pro-biz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/common/ruoyi-vue-pro-biz.png -------------------------------------------------------------------------------- /src/assets/404_images/404_cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/src/assets/404_images/404_cloud.png -------------------------------------------------------------------------------- /src/components/render/slots/el-button.js: -------------------------------------------------------------------------------- 1 | export default { 2 | default(h, conf, key) { 3 | return conf.__slot__[key] 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/views/mp/menu/assets/menu_foot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/src/views/mp/menu/assets/menu_foot.png -------------------------------------------------------------------------------- /src/views/mp/menu/assets/menu_head.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/src/views/mp/menu/assets/menu_head.png -------------------------------------------------------------------------------- /.image/common/ruoyi-vue-pro-architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/common/ruoyi-vue-pro-architecture.png -------------------------------------------------------------------------------- /.image/common/yudao-cloud-architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/.image/common/yudao-cloud-architecture.png -------------------------------------------------------------------------------- /src/views/mp/menu/assets/iphone_backImg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/src/views/mp/menu/assets/iphone_backImg.png -------------------------------------------------------------------------------- /src/utils/errorCode.js: -------------------------------------------------------------------------------- 1 | export default { 2 | '401': '认证失败,无法访问系统资源', 3 | '403': '当前操作没有权限', 4 | '404': '访问资源不存在', 5 | 'default': '系统未知错误,请反馈给管理员' 6 | } 7 | -------------------------------------------------------------------------------- /public/libs/monaco-editor/vs/base/browser/ui/codicons/codicon/codicon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yudaocode/yudao-ui-admin-vue2/HEAD/public/libs/monaco-editor/vs/base/browser/ui/codicons/codicon/codicon.ttf -------------------------------------------------------------------------------- /src/assets/icons/svg/chart.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/bpmnProcessDesigner/src/modules/rules/index.js: -------------------------------------------------------------------------------- 1 | import CustomRules from "./CustomRules"; 2 | 3 | export default { 4 | __init__: ["customRules"], 5 | customRules: ["type", CustomRules] 6 | }; 7 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | # 忽略build目录下类型为js的文件的语法检查 2 | build/*.js 3 | # 忽略src/assets目录下文件的语法检查 4 | src/assets 5 | # 忽略public目录下文件的语法检查 6 | public 7 | # 忽略当前目录下为js的文件的语法检查 8 | *.js 9 | # 忽略当前目录下为vue的文件的语法检查 10 | *.vue 11 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | phantomjs_cdnurl=http://cnpmjs.org/downloads 2 | chromedriver_cdnurl=http://cdn.npm.taobao.org/dist/chromedriver 3 | sass_binary_site=https://npm.taobao.org/mirrors/node-sass/ 4 | registry=https://registry.npmmirror.com 5 | -------------------------------------------------------------------------------- /src/api/infra/redis.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 查询缓存详细 4 | export function getCache() { 5 | return request({ 6 | url: '/infra/redis/get-monitor-info', 7 | method: 'get' 8 | }) 9 | } 10 | -------------------------------------------------------------------------------- /src/components/bpmnProcessDesigner/src/modules/custom-renderer/index.js: -------------------------------------------------------------------------------- 1 | import CustomRenderer from "./CustomRenderer"; 2 | 3 | export default { 4 | __init__: ["customRenderer"], 5 | customRenderer: ["type", CustomRenderer] 6 | }; 7 | -------------------------------------------------------------------------------- /src/api/bpm/activity.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getActivityList(query) { 4 | return request({ 5 | url: '/bpm/activity/list', 6 | method: 'get', 7 | params: query 8 | }) 9 | } 10 | -------------------------------------------------------------------------------- /src/assets/icons/svg/size.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/api/mall/product/sku.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 获得商品 SKU 选项的列表 4 | export function getSkuOptionList() { 5 | return request({ 6 | url: '/product/sku/get-option-list', 7 | method: 'get', 8 | }) 9 | } 10 | -------------------------------------------------------------------------------- /src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/camunda/index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | module.exports = { 4 | __init__: ["camundaModdleExtension"], 5 | camundaModdleExtension: ["type", require("./extension")] 6 | }; 7 | -------------------------------------------------------------------------------- /src/components/bpmnProcessDesigner/package/designer/plugins/content-pad/index.js: -------------------------------------------------------------------------------- 1 | import CustomContextPadProvider from "./contentPadProvider"; 2 | 3 | export default { 4 | __init__: ["contextPadProvider"], 5 | contextPadProvider: ["type", CustomContextPadProvider] 6 | }; 7 | -------------------------------------------------------------------------------- /src/components/bpmnProcessDesigner/package/penal/index.js: -------------------------------------------------------------------------------- 1 | import MyPropertiesPanel from "./PropertiesPanel.vue"; 2 | 3 | MyPropertiesPanel.install = function(Vue) { 4 | Vue.component(MyPropertiesPanel.name, MyPropertiesPanel); 5 | }; 6 | 7 | export default MyPropertiesPanel; 8 | -------------------------------------------------------------------------------- /src/assets/icons/svg/slider.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/render/slots/el-input.js: -------------------------------------------------------------------------------- 1 | export default { 2 | prepend(h, conf, key) { 3 | return 4 | }, 5 | append(h, conf, key) { 6 | return 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/components/bpmnProcessDesigner/package/designer/index2.js: -------------------------------------------------------------------------------- 1 | import MyProcessViewer from "./ProcessViewer.vue"; 2 | 3 | MyProcessViewer.install = function(Vue) { 4 | Vue.component(MyProcessViewer.name, MyProcessViewer); 5 | }; 6 | 7 | // 流程图的查看器,不可编辑 8 | export default MyProcessViewer; 9 | -------------------------------------------------------------------------------- /src/components/bpmnProcessDesigner/src/highlight/index.js: -------------------------------------------------------------------------------- 1 | const hljs = require("highlight.js/lib/core"); 2 | hljs.registerLanguage("xml", require("highlight.js/lib/languages/xml")); 3 | hljs.registerLanguage("json", require("highlight.js/lib/languages/json")); 4 | 5 | module.exports = hljs; 6 | -------------------------------------------------------------------------------- /src/components/bpmnProcessDesigner/package/designer/index.js: -------------------------------------------------------------------------------- 1 | import MyProcessDesigner from "./ProcessDesigner.vue"; 2 | 3 | MyProcessDesigner.install = function(Vue) { 4 | Vue.component(MyProcessDesigner.name, MyProcessDesigner); 5 | }; 6 | 7 | // 流程图的设计器,可编辑 8 | export default MyProcessDesigner; 9 | -------------------------------------------------------------------------------- /src/layout/components/index.js: -------------------------------------------------------------------------------- 1 | export { default as AppMain } from './AppMain' 2 | export { default as Navbar } from './Navbar' 3 | export { default as Settings } from './Settings' 4 | export { default as Sidebar } from './Sidebar/index.vue' 5 | export { default as TagsView } from './TagsView/index.vue' 6 | -------------------------------------------------------------------------------- /src/assets/icons/svg/link.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/bpmnProcessDesigner/src/utils/index.js: -------------------------------------------------------------------------------- 1 | export function debounce(fn, delay = 500) { 2 | let timer; 3 | return function(...args) { 4 | if (timer) { 5 | clearTimeout(timer); 6 | timer = null; 7 | } 8 | timer = setTimeout(fn.bind(this, ...args), delay); 9 | }; 10 | } 11 | -------------------------------------------------------------------------------- /src/components/render/slots/el-select.js: -------------------------------------------------------------------------------- 1 | export default { 2 | options(h, conf, key) { 3 | const list = [] 4 | conf.__slot__.options.forEach(item => { 5 | list.push() 6 | }) 7 | return list 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/views/redirect.vue: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /src/components/IconSelect/requireIcons.js: -------------------------------------------------------------------------------- 1 | 2 | const req = require.context('../../assets/icons/svg', false, /\.svg$/) 3 | const requireAll = requireContext => requireContext.keys() 4 | 5 | const re = /\.\/(.*)\.svg/ 6 | 7 | const icons = requireAll(req).map(i => { 8 | return i.match(re)[1] 9 | }) 10 | 11 | export default icons 12 | -------------------------------------------------------------------------------- /src/views/components/icons/svg-icons.js: -------------------------------------------------------------------------------- 1 | const req = require.context('../../../assets/icons/svg', false, /\.svg$/) 2 | const requireAll = requireContext => requireContext.keys() 3 | 4 | const re = /\.\/(.*)\.svg/ 5 | 6 | const svgIcons = requireAll(req).map(i => { 7 | return i.match(re)[1] 8 | }) 9 | 10 | export default svgIcons 11 | -------------------------------------------------------------------------------- /src/assets/icons/svg/guide.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import SvgIcon from '@/components/SvgIcon'// svg component 3 | 4 | // register globally 5 | Vue.component('svg-icon', SvgIcon) 6 | 7 | const req = require.context('./svg', false, /\.svg$/) 8 | const requireAll = requireContext => requireContext.keys().map(requireContext) 9 | requireAll(req) 10 | -------------------------------------------------------------------------------- /src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/activiti/index.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author igdianov 3 | * address https://github.com/igdianov/activiti-bpmn-moddle 4 | * */ 5 | 6 | module.exports = { 7 | __init__: ["ActivitiModdleExtension"], 8 | ActivitiModdleExtension: ["type", require("./activitiExtension")] 9 | }; 10 | -------------------------------------------------------------------------------- /src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/flowable/index.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author igdianov 3 | * address https://github.com/igdianov/activiti-bpmn-moddle 4 | * */ 5 | 6 | module.exports = { 7 | __init__: ["FlowableModdleExtension"], 8 | FlowableModdleExtension: ["type", require("./flowableExtension")] 9 | }; 10 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | dist/ 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | **/*.log 8 | 9 | tests/**/coverage/ 10 | tests/e2e/reports 11 | selenium-debug.log 12 | 13 | # Editor directories and files 14 | .idea 15 | .vscode 16 | *.suo 17 | *.ntvs* 18 | *.njsproj 19 | *.sln 20 | *.local 21 | 22 | package-lock.json 23 | -------------------------------------------------------------------------------- /src/assets/icons/svg/money.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/svg/email.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/svg/drag.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/svgo.yml: -------------------------------------------------------------------------------- 1 | # replace default config 2 | 3 | # multipass: true 4 | # full: true 5 | 6 | plugins: 7 | 8 | # - name 9 | # 10 | # or: 11 | # - name: false 12 | # - name: true 13 | # 14 | # or: 15 | # - name: 16 | # param1: 1 17 | # param2: 2 18 | 19 | - removeAttrs: 20 | attrs: 21 | - 'fill' 22 | - 'fill-rule' 23 | -------------------------------------------------------------------------------- /src/assets/icons/svg/monitor.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/api/system/area.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 获得地区树 4 | export function getAreaTree() { 5 | return request({ 6 | url: '/system/area/tree', 7 | method: 'get' 8 | }) 9 | } 10 | 11 | // 获得 IP 对应的地区名 12 | export function getAreaByIp(ip) { 13 | return request({ 14 | url: '/system/area/get-by-ip?ip=' + ip, 15 | method: 'get' 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /src/assets/icons/svg/switch.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/RuoYi/Doc/index.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 22 | -------------------------------------------------------------------------------- /src/api/system/mail/log.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 获得邮件日志 4 | export function getMailLog(id) { 5 | return request({ 6 | url: '/system/mail-log/get?id=' + id, 7 | method: 'get' 8 | }) 9 | } 10 | 11 | // 获得邮件日志分页 12 | export function getMailLogPage(query) { 13 | return request({ 14 | url: '/system/mail-log/page', 15 | method: 'get', 16 | params: query 17 | }) 18 | } 19 | -------------------------------------------------------------------------------- /src/api/mall/trade/order.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 获得交易订单分页 4 | export function getOrderPage(query) { 5 | return request({ 6 | url: '/trade/order/page', 7 | method: 'get', 8 | params: query 9 | }) 10 | } 11 | 12 | // 获得交易订单详情 13 | export function getOrderDetail(id) { 14 | return request({ 15 | url: '/trade/order/get-detail?id=' + id, 16 | method: 'get', 17 | }) 18 | } 19 | -------------------------------------------------------------------------------- /src/api/mp/message.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 获得公众号消息分页 4 | export function getMessagePage(query) { 5 | return request({ 6 | url: '/mp/message/page', 7 | method: 'get', 8 | params: query 9 | }) 10 | } 11 | 12 | // 给粉丝发送消息 13 | export function sendMessage(data) { 14 | return request({ 15 | url: '/mp/message/send', 16 | method: 'post', 17 | data: data 18 | }) 19 | } 20 | -------------------------------------------------------------------------------- /src/api/pay/notify.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 获得支付通知明细 4 | export function getNotifyTaskDetail(id) { 5 | return request({ 6 | url: '/pay/notify/get-detail?id=' + id, 7 | method: 'get' 8 | }) 9 | } 10 | 11 | // 获得支付通知分页 12 | export function getNotifyTaskPage(query) { 13 | return request({ 14 | url: '/pay/notify/page', 15 | method: 'get', 16 | params: query 17 | }) 18 | } 19 | -------------------------------------------------------------------------------- /src/components/RuoYi/Git/index.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 22 | -------------------------------------------------------------------------------- /src/api/mall/promotion/coupon.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 删除优惠劵 4 | export function deleteCoupon(id) { 5 | return request({ 6 | url: '/promotion/coupon/delete?id=' + id, 7 | method: 'delete' 8 | }) 9 | } 10 | 11 | // 获得优惠劵分页 12 | export function getCouponPage(query) { 13 | return request({ 14 | url: '/promotion/coupon/page', 15 | method: 'get', 16 | params: query 17 | }) 18 | } 19 | -------------------------------------------------------------------------------- /src/api/mall/trade/afterSale.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 获得交易售后 4 | export function getAfterSale(id) { 5 | return request({ 6 | url: '/trade/after-sale/get?id=' + id, 7 | method: 'get' 8 | }) 9 | } 10 | 11 | // 获得交易售后分页 12 | export function getAfterSalePage(query) { 13 | return request({ 14 | url: '/trade/after-sale/page', 15 | method: 'get', 16 | params: query 17 | }) 18 | } 19 | -------------------------------------------------------------------------------- /src/api/mp/material.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 获得公众号素材分页 4 | export function getMaterialPage(query) { 5 | return request({ 6 | url: '/mp/material/page', 7 | method: 'get', 8 | params: query 9 | }) 10 | } 11 | 12 | // 删除公众号永久素材 13 | export function deletePermanentMaterial(id) { 14 | return request({ 15 | url: '/mp/material/delete-permanent?id=' + id, 16 | method: 'delete' 17 | }) 18 | } 19 | -------------------------------------------------------------------------------- /src/assets/icons/svg/documentation.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/svg/fullscreen.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.env.dev: -------------------------------------------------------------------------------- 1 | # 开发环境配置 2 | ENV = 'development' 3 | 4 | # 页面标题 5 | VUE_APP_TITLE = 芋道管理系统 6 | 7 | # 芋道管理系统/开发环境 8 | VUE_APP_BASE_API = 'http://localhost:48080' 9 | 10 | # 路由懒加载 11 | VUE_CLI_BABEL_TRANSPILE_MODULES = true 12 | 13 | # 多租户的开关 14 | VUE_APP_TENANT_ENABLE = true 15 | 16 | # 验证码的开关 17 | VUE_APP_CAPTCHA_ENABLE = true 18 | 19 | # 文档的开关 20 | VUE_APP_DOC_ENABLE = true 21 | 22 | # 百度统计 23 | VUE_APP_BAIDU_CODE = fadc1bd5db1a1d6f581df60a1807f8ab 24 | -------------------------------------------------------------------------------- /src/components/generator/ruleTrigger.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 用于生成表单校验,指定正则规则的触发方式。 3 | * 未在此处声明无触发方式的组件将不生成rule!! 4 | */ 5 | export default { 6 | 'el-input': 'blur', 7 | 'el-input-number': 'blur', 8 | 'el-select': 'change', 9 | 'el-radio-group': 'change', 10 | 'el-checkbox-group': 'change', 11 | 'el-cascader': 'change', 12 | 'el-time-picker': 'change', 13 | 'el-date-picker': 'change', 14 | 'el-rate': 'change', 15 | tinymce: 'blur' 16 | } 17 | -------------------------------------------------------------------------------- /src/assets/icons/svg/druid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/svg/lock.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/svg/user.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/parser/README.md: -------------------------------------------------------------------------------- 1 | ## form-generator JSON 解析器 2 | >用于将form-generator导出的JSON解析成一个表单。 3 | 4 | ### 安装组件 5 | ``` 6 | npm i form-gen-parser 7 | ``` 8 | 或者 9 | ``` 10 | yarn add form-gen-parser 11 | ``` 12 | 13 | ### 使用示例 14 | > [查看在线示例](https://mrhj.gitee.io/form-generator/#/parser) 15 | 16 | 示例代码: 17 | > [src\components\parser\example\Index.vue](https://github.com/JakHuang/form-generator/blob/dev/src/components/parser/example/Index.vue) 18 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # 告诉EditorConfig插件,这是根文件,不用继续往上查找 2 | root = true 3 | 4 | # 匹配全部文件 5 | [*] 6 | # 设置字符集 7 | charset = utf-8 8 | # 缩进风格,可选space、tab 9 | indent_style = space 10 | # 缩进的空格数 11 | indent_size = 2 12 | # 结尾换行符,可选lf、cr、crlf 13 | end_of_line = lf 14 | # 在文件结尾插入新行 15 | insert_final_newline = true 16 | # 删除一行中的前后空格 17 | trim_trailing_whitespace = true 18 | 19 | # 匹配md结尾的文件 20 | [*.md] 21 | insert_final_newline = false 22 | trim_trailing_whitespace = false 23 | -------------------------------------------------------------------------------- /.env.front: -------------------------------------------------------------------------------- 1 | # 开发环境配置 2 | ENV = 'development' 3 | 4 | # 页面标题 5 | VUE_APP_TITLE = 芋道管理系统 6 | 7 | # 芋道管理系统/本地环境 8 | VUE_APP_BASE_API = 'http://api-dashboard.yudao.iocoder.cn' 9 | 10 | # 路由懒加载 11 | VUE_CLI_BABEL_TRANSPILE_MODULES = true 12 | 13 | # 多租户的开关 14 | VUE_APP_TENANT_ENABLE = true 15 | 16 | # 验证码的开关 17 | VUE_APP_CAPTCHA_ENABLE = true 18 | 19 | # 文档的开关 20 | VUE_APP_DOC_ENABLE = true 21 | 22 | # 百度统计 23 | VUE_APP_BAIDU_CODE = fadc1bd5db1a1d6f581df60a1807f8ab 24 | -------------------------------------------------------------------------------- /.env.static: -------------------------------------------------------------------------------- 1 | NODE_ENV = development 2 | 3 | # 测试环境配置 4 | ENV = 'staging' 5 | 6 | # 页面标题 7 | VUE_APP_TITLE = 芋道管理系统 8 | 9 | # 芋道管理系统/测试环境 10 | VUE_APP_BASE_API = 'http://127.0.0.1:48080' 11 | 12 | # 根据服务器或域名修改 13 | PUBLIC_PATH = '/' 14 | 15 | # 多租户的开关 16 | VUE_APP_TENANT_ENABLE = true 17 | 18 | # 验证码的开关 19 | VUE_APP_CAPTCHA_ENABLE = false 20 | 21 | # 文档的开关 22 | VUE_APP_DOC_ENABLE = true 23 | 24 | # 百度统计 25 | VUE_APP_BAIDU_CODE = fadc1bd5db1a1d6f581df60a1807f8ab 26 | -------------------------------------------------------------------------------- /src/api/system/loginlog.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 查询登录日志列表 4 | export function list(query) { 5 | return request({ 6 | url: '/system/login-log/page', 7 | method: 'get', 8 | params: query 9 | }) 10 | } 11 | 12 | // 导出登录日志 13 | export function exportLoginLog(query) { 14 | return request({ 15 | url: '/system/login-log/export-excel', 16 | method: 'get', 17 | params: query, 18 | responseType: 'blob' 19 | }) 20 | } 21 | -------------------------------------------------------------------------------- /src/assets/icons/svg/excel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/svg/input.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/bpmnProcessDesigner/src/modules/rules/CustomRules.js: -------------------------------------------------------------------------------- 1 | import BpmnRules from "bpmn-js/lib/features/rules/BpmnRules"; 2 | import inherits from "inherits"; 3 | 4 | export default function CustomRules(eventBus) { 5 | BpmnRules.call(this, eventBus); 6 | } 7 | 8 | inherits(CustomRules, BpmnRules); 9 | 10 | CustomRules.prototype.canDrop = function() { 11 | return false; 12 | }; 13 | 14 | CustomRules.prototype.canMove = function() { 15 | return false; 16 | }; 17 | -------------------------------------------------------------------------------- /src/api/system/oauth2/oauth2Token.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 获得访问令牌分页 4 | export function getAccessTokenPage(query) { 5 | return request({ 6 | url: '/system/oauth2-token/page', 7 | method: 'get', 8 | params: query 9 | }) 10 | } 11 | 12 | // 删除访问令牌 13 | export function deleteAccessToken(accessToken) { 14 | return request({ 15 | url: '/system/oauth2-token/delete?accessToken=' + accessToken, 16 | method: 'delete' 17 | }) 18 | } 19 | -------------------------------------------------------------------------------- /src/assets/icons/svg/row.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/render/slots/el-radio-group.js: -------------------------------------------------------------------------------- 1 | export default { 2 | options(h, conf, key) { 3 | const list = [] 4 | conf.__slot__.options.forEach(item => { 5 | if (conf.__config__.optionType === 'button') { 6 | list.push({item.label}) 7 | } else { 8 | list.push({item.label}) 9 | } 10 | }) 11 | return list 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/api/system/operatelog.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 查询操作日志列表 4 | export function listOperateLog(query) { 5 | return request({ 6 | url: '/system/operate-log/page', 7 | method: 'get', 8 | params: query 9 | }) 10 | } 11 | 12 | // 导出操作日志 13 | export function exportOperateLog(query) { 14 | return request({ 15 | url: '/system/operate-log/export-excel', 16 | method: 'get', 17 | params: query, 18 | responseType: 'blob' 19 | }) 20 | } 21 | -------------------------------------------------------------------------------- /src/api/system/sms/smsLog.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 获得短信日志分页 4 | export function getSmsLogPage(query) { 5 | return request({ 6 | url: '/system/sms-log/page', 7 | method: 'get', 8 | params: query 9 | }) 10 | } 11 | 12 | // 导出短信日志 Excel 13 | export function exportSmsLogExcel(query) { 14 | return request({ 15 | url: '/system/sms-log/export-excel', 16 | method: 'get', 17 | params: query, 18 | responseType: 'blob' 19 | }) 20 | } 21 | -------------------------------------------------------------------------------- /src/views/crm/statistics/rank/index.vue: -------------------------------------------------------------------------------- 1 | 12 | 14 | -------------------------------------------------------------------------------- /src/components/render/slots/el-checkbox-group.js: -------------------------------------------------------------------------------- 1 | export default { 2 | options(h, conf, key) { 3 | const list = [] 4 | conf.__slot__.options.forEach(item => { 5 | if (conf.__config__.optionType === 'button') { 6 | list.push({item.label}) 7 | } else { 8 | list.push({item.label}) 9 | } 10 | }) 11 | return list 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /.env.prod: -------------------------------------------------------------------------------- 1 | # 生产环境配置 2 | NODE_ENV = 'production' 3 | 4 | # 页面标题 5 | VUE_APP_TITLE = 芋道管理系统 6 | 7 | # 芋道管理系统/生产环境 8 | VUE_APP_BASE_API = '/prod-api' 9 | 10 | # 根据服务器或域名修改 11 | PUBLIC_PATH = 'http://my-pi.com:8888/yudao-admin/' 12 | # 二级部署路径 13 | VUE_APP_APP_NAME ='yudao-admin' 14 | 15 | # 多租户的开关 16 | VUE_APP_TENANT_ENABLE = true 17 | 18 | # 验证码的开关 19 | VUE_APP_CAPTCHA_ENABLE = true 20 | 21 | # 文档的开关 22 | VUE_APP_DOC_ENABLE = false 23 | 24 | # 百度统计 25 | VUE_APP_BAIDU_CODE = fadc1bd5db1a1d6f581df60a1807f8ab 26 | -------------------------------------------------------------------------------- /.env.stage: -------------------------------------------------------------------------------- 1 | NODE_ENV = production 2 | 3 | # 页面标题 4 | VUE_APP_TITLE = 芋道管理系统 5 | 6 | # 测试环境配置 7 | ENV = 'staging' 8 | 9 | # 芋道管理系统/测试环境 10 | VUE_APP_BASE_API = 'http://api-dashboard.yudao.iocoder.cn' 11 | 12 | # 静态资源地址 13 | PUBLIC_PATH = 'http://static.yudao.iocoder.cn/' 14 | 15 | # 多租户的开关 16 | VUE_APP_TENANT_ENABLE = true 17 | 18 | # 验证码的开关 19 | VUE_APP_CAPTCHA_ENABLE = true 20 | 21 | # 文档的开关 22 | VUE_APP_DOC_ENABLE = false 23 | 24 | # 百度统计 25 | VUE_APP_BAIDU_CODE = fadc1bd5db1a1d6f581df60a1807f8ab 26 | -------------------------------------------------------------------------------- /src/assets/icons/svg/example.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/plugins/index.js: -------------------------------------------------------------------------------- 1 | import tab from './tab' 2 | import auth from './auth' 3 | import cache from './cache' 4 | import modal from './modal' 5 | import download from './download' 6 | 7 | export default { 8 | install(Vue) { 9 | // 页签操作 10 | Vue.prototype.$tab = tab 11 | // 认证对象 12 | Vue.prototype.$auth = auth 13 | // 缓存对象 14 | Vue.prototype.$cache = cache 15 | // 模态框对象 16 | Vue.prototype.$modal = modal 17 | // 下载文件 18 | Vue.prototype.$download = download 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/api/infra/apiAccessLog.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 获得API 访问日志分页 4 | export function getApiAccessLogPage(query) { 5 | return request({ 6 | url: '/infra/api-access-log/page', 7 | method: 'get', 8 | params: query 9 | }) 10 | } 11 | 12 | // 导出API 访问日志 Excel 13 | export function exportApiAccessLogExcel(query) { 14 | return request({ 15 | url: '/infra/api-access-log/export-excel', 16 | method: 'get', 17 | params: query, 18 | responseType: 'blob' 19 | }) 20 | } 21 | -------------------------------------------------------------------------------- /src/assets/icons/svg/textarea.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | // https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app 4 | '@vue/cli-plugin-babel/preset' 5 | ], 6 | 'env': { 7 | 'development': { 8 | // babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require(). 9 | // This plugin can significantly increase the speed of hot updates, when you have a large number of pages. 10 | 'plugins': ['dynamic-import-node'] 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:16-alpine as build-stage 2 | 3 | WORKDIR /admim 4 | 5 | COPY .npmrc package.json yarn.lock ./ 6 | RUN --mount=type=cache,id=yarn-store,target=/root/.yarn-store \ 7 | yarn install --frozen-lockfile 8 | 9 | COPY . . 10 | ARG NODE_ENV="" 11 | RUN env ${NODE_ENV} yarn build:prod 12 | 13 | ## -- stage: dist => nginx -- 14 | FROM nginx:alpine 15 | 16 | ENV TZ=Asia/Shanghai 17 | 18 | COPY ./nginx.conf /etc/nginx/conf.d/default.conf 19 | COPY --from=build-stage /admim/dist /usr/share/nginx/html 20 | 21 | EXPOSE 80 22 | -------------------------------------------------------------------------------- /src/views/report/jmreport/bi.vue: -------------------------------------------------------------------------------- 1 | 7 | 20 | -------------------------------------------------------------------------------- /src/assets/icons/svg/time.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/views/report/jmreport/index.vue: -------------------------------------------------------------------------------- 1 | 7 | 20 | -------------------------------------------------------------------------------- /src/views/bpm/category/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/infra/build/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 23 | -------------------------------------------------------------------------------- /src/views/ai/chat/index/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/bpm/task/manager/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/erp/home/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/mall/home/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/ai/chat/manager/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/ai/image/index/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/ai/image/square/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/ai/model/apiKey/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/ai/music/index/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/ai/write/index/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/crm/product/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/erp/sale/out/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/infra/build/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import App from './App.vue' 3 | import router from '@/router' 4 | import '@/styles/index.scss' 5 | import '@/assets/icons' 6 | import axios from 'axios' 7 | import Tinymce from '@/components/tinymce/index.vue' 8 | 9 | Vue.component('tinymce', Tinymce) 10 | 11 | Vue.config.productionTip = false 12 | Vue.prototype.$axios = axios 13 | 14 | // add by 芋道源码:引用自 https://github.com/JakHuang/form-generator/tree/dev/src/views/index 15 | 16 | new Vue({ 17 | router, 18 | render: h => h(App) 19 | }).$mount('#app') 20 | -------------------------------------------------------------------------------- /src/views/member/group/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/member/level/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/member/tag/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/member/user/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/assets/icons/svg/star.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/views/ai/image/manager/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/ai/model/chatModel/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/ai/model/chatRole/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/ai/music/manager/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/ai/write/manager/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/crm/backlog/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/erp/sale/order/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/member/config/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/erp/purchase/in/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/erp/sale/customer/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/erp/sale/return/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/erp/stock/in/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/erp/stock/out/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/erp/stock/record/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/erp/stock/stock/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/bpm/processExpression/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/bpm/processListener/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/erp/product/unit/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/erp/stock/warehouse/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/member/point/record/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/member/signin/config/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/member/signin/record/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/api/bpm/leave.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 创建请假申请 4 | export function createLeave(data) { 5 | return request({ 6 | url: '/bpm/oa/leave/create', 7 | method: 'post', 8 | data: data 9 | }) 10 | } 11 | 12 | // 获得请假申请 13 | export function getLeave(id) { 14 | return request({ 15 | url: '/bpm/oa/leave/get?id=' + id, 16 | method: 'get' 17 | }) 18 | } 19 | 20 | // 获得请假申请分页 21 | export function getLeavePage(query) { 22 | return request({ 23 | url: '/bpm/oa/leave/page', 24 | method: 'get', 25 | params: query 26 | }) 27 | } 28 | -------------------------------------------------------------------------------- /src/views/bpm/processInstance/manager/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/crm/product/category/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/erp/product/category/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/erp/product/product/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/erp/purchase/order/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/erp/purchase/return/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/mall/promotion/diy/page/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/report/goview/index.vue: -------------------------------------------------------------------------------- 1 | 7 | 20 | -------------------------------------------------------------------------------- /src/views/erp/purchase/supplier/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/mall/product/comment/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/mall/promotion/diy/template/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/mall/statistics/trade/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/mall/promotion/article/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/mall/promotion/banner/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/mall/statistics/member/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/mall/statistics/product/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/mall/trade/brokerage/user/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/assets/icons/svg/search.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/svg/table.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Vuex from 'vuex' 3 | import app from './modules/app' 4 | import user from './modules/user' 5 | import tagsView from './modules/tagsView' 6 | import permission from './modules/permission' 7 | import settings from './modules/settings' 8 | import dict from './modules/dict' 9 | import getters from './getters' 10 | 11 | Vue.use(Vuex) 12 | 13 | const store = new Vuex.Store({ 14 | modules: { 15 | app, 16 | user, 17 | tagsView, 18 | permission, 19 | settings, 20 | dict 21 | }, 22 | getters 23 | }) 24 | 25 | export default store 26 | -------------------------------------------------------------------------------- /src/views/mall/trade/brokerage/record/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/system/social/client/index.vue: -------------------------------------------------------------------------------- 1 | 17 | 19 | -------------------------------------------------------------------------------- /src/views/system/social/user/index.vue: -------------------------------------------------------------------------------- 1 | 17 | 19 | -------------------------------------------------------------------------------- /src/components/bpmnProcessDesigner/package/index.js: -------------------------------------------------------------------------------- 1 | import MyProcessDesigner from "./designer"; 2 | import MyProcessPenal from "./penal"; 3 | import MyProcessViewer from './designer/index2'; 4 | 5 | const components = [MyProcessDesigner, MyProcessPenal, MyProcessViewer]; 6 | 7 | const install = function(Vue) { 8 | components.forEach(component => { 9 | Vue.component(component.name, component); 10 | }); 11 | }; 12 | 13 | if (typeof window !== "undefined" && window.Vue) { 14 | install(window.Vue); 15 | } 16 | 17 | export default { 18 | version: "0.0.1", 19 | install, 20 | ...components 21 | }; 22 | -------------------------------------------------------------------------------- /src/components/render/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "form-gen-render", 3 | "version": "1.0.4", 4 | "description": "表单核心render", 5 | "main": "lib/form-gen-render.umd.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/JakHuang/form-generator.git" 12 | }, 13 | "author": "jakhuang", 14 | "license": "MIT", 15 | "bugs": { 16 | "url": "https://github.com/JakHuang/form-generator/issues" 17 | }, 18 | "homepage": "https://github.com/JakHuang/form-generator#readme" 19 | } 20 | -------------------------------------------------------------------------------- /src/views/mall/promotion/bargain/record/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/mall/trade/brokerage/withdraw/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/mall/trade/delivery/express/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/api/bpm/taskAssignRule.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getTaskAssignRuleList(query) { 4 | return request({ 5 | url: '/bpm/task-assign-rule/list', 6 | method: 'get', 7 | params: query 8 | }) 9 | } 10 | 11 | export function createTaskAssignRule(data) { 12 | return request({ 13 | url: '/bpm/task-assign-rule/create', 14 | method: 'post', 15 | data: data 16 | }) 17 | } 18 | 19 | export function updateTaskAssignRule(data) { 20 | return request({ 21 | url: '/bpm/task-assign-rule/update', 22 | method: 'put', 23 | data: data 24 | }) 25 | } 26 | -------------------------------------------------------------------------------- /src/components/generator/css.js: -------------------------------------------------------------------------------- 1 | const styles = { 2 | 'el-rate': '.el-rate{display: inline-block; vertical-align: text-top;}', 3 | 'el-upload': '.el-upload__tip{line-height: 1.2;}' 4 | } 5 | 6 | function addCss(cssList, el) { 7 | const css = styles[el.__config__.tag] 8 | css && cssList.indexOf(css) === -1 && cssList.push(css) 9 | if (el.__config__.children) { 10 | el.__config__.children.forEach(el2 => addCss(cssList, el2)) 11 | } 12 | } 13 | 14 | export function makeUpCss(conf) { 15 | const cssList = [] 16 | conf.fields.forEach(el => addCss(cssList, el)) 17 | return cssList.join('\n') 18 | } 19 | -------------------------------------------------------------------------------- /src/views/bpm/task/copy/index.vue: -------------------------------------------------------------------------------- 1 | 17 | 19 | -------------------------------------------------------------------------------- /src/views/erp/stock/check/index.vue: -------------------------------------------------------------------------------- 1 | 17 | 19 | -------------------------------------------------------------------------------- /src/views/erp/stock/move/index.vue: -------------------------------------------------------------------------------- 1 | 17 | 19 | -------------------------------------------------------------------------------- /src/views/mall/promotion/article/category/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/mall/promotion/bargain/activity/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/tongji.js: -------------------------------------------------------------------------------- 1 | // Baidu 统计 integration 2 | import router from './router' 3 | 4 | window._hmt = window._hmt || []; // 用于 router push 5 | const HM_ID = process.env.VUE_APP_BAIDU_CODE || ''; // 有值的时候,才开启 6 | (function() { 7 | if (!HM_ID) { 8 | return; 9 | } 10 | const hm = document.createElement("script") 11 | hm.src = "https://hm.baidu.com/hm.js?" + HM_ID 12 | const s = document.getElementsByTagName("script")[0] 13 | s.parentNode.insertBefore(hm, s) 14 | })() 15 | 16 | router.afterEach(function (to) { 17 | if (!HM_ID) { 18 | return; 19 | } 20 | _hmt.push(['_trackPageview', to.fullPath]) 21 | }) 22 | -------------------------------------------------------------------------------- /src/views/mall/promotion/combination/record/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/mall/trade/delivery/pickUpOrder/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/mall/trade/delivery/pickUpStore/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/api/bpm/definition.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getProcessDefinitionPage(query) { 4 | return request({ 5 | url: '/bpm/process-definition/page', 6 | method: 'get', 7 | params: query 8 | }) 9 | } 10 | 11 | export function getProcessDefinitionList(query) { 12 | return request({ 13 | url: '/bpm/process-definition/list', 14 | method: 'get', 15 | params: query 16 | }) 17 | } 18 | 19 | export function getProcessDefinitionBpmnXML(id) { 20 | return request({ 21 | url: '/bpm/process-definition/get-bpmn-xml?id=' + id, 22 | method: 'get' 23 | }) 24 | } 25 | -------------------------------------------------------------------------------- /src/components/render/slots/el-upload.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'list-type': (h, conf, key) => { 3 | const list = [] 4 | const config = conf.__config__ 5 | if (conf['list-type'] === 'picture-card') { 6 | list.push() 7 | } else { 8 | list.push({config.buttonText}) 9 | } 10 | if (config.showTip) { 11 | list.push( 12 |
只能上传不超过 {config.fileSize}{config.sizeUnit} 的{conf.accept}文件
13 | ) 14 | } 15 | return list 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/views/mall/promotion/combination/activity/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/views/mall/trade/delivery/expressTemplate/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 16 | -------------------------------------------------------------------------------- /src/assets/icons/svg/build.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/views/erp/finance/account/index.vue: -------------------------------------------------------------------------------- 1 | 17 | 19 | -------------------------------------------------------------------------------- /src/views/erp/finance/payment/index.vue: -------------------------------------------------------------------------------- 1 | 17 | 19 | -------------------------------------------------------------------------------- /src/views/erp/finance/receipt/index.vue: -------------------------------------------------------------------------------- 1 | 17 | 19 | -------------------------------------------------------------------------------- /src/assets/icons/svg/education.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/tinymce/example/Index.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 39 | -------------------------------------------------------------------------------- /src/views/crm/clue/index.vue: -------------------------------------------------------------------------------- 1 | 15 | 17 | -------------------------------------------------------------------------------- /src/api/infra/jobLog.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 获得定时任务 4 | export function getJobLog(id) { 5 | return request({ 6 | url: '/infra/job-log/get?id=' + id, 7 | method: 'get' 8 | }) 9 | } 10 | 11 | // 获得定时任务分页 12 | export function getJobLogPage(query) { 13 | return request({ 14 | url: '/infra/job-log/page', 15 | method: 'get', 16 | params: query 17 | }) 18 | } 19 | 20 | // 导出定时任务 Excel 21 | export function exportJobLogExcel(query) { 22 | return request({ 23 | url: '/infra/job-log/export-excel', 24 | method: 'get', 25 | params: query, 26 | responseType: 'blob' 27 | }) 28 | } 29 | -------------------------------------------------------------------------------- /src/api/mp/menu.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 获得公众号菜单列表 4 | export function getMenuList(accountId) { 5 | return request({ 6 | url: '/mp/menu/list?accountId=' + accountId, 7 | method: 'get', 8 | }) 9 | } 10 | 11 | // 保存公众号菜单 12 | export function saveMenu(accountId, menus) { 13 | return request({ 14 | url: '/mp/menu/save', 15 | method: 'post', 16 | data: { 17 | accountId, 18 | menus 19 | } 20 | }) 21 | } 22 | 23 | // 删除公众号菜单 24 | export function deleteMenu(accountId) { 25 | return request({ 26 | url: '/mp/menu/delete?accountId=' + accountId, 27 | method: 'delete', 28 | }) 29 | } 30 | -------------------------------------------------------------------------------- /src/components/RADME.md: -------------------------------------------------------------------------------- 1 | ## form-generator 2 | 3 | github 地址:https://github.com/JakHuang/form-generator 4 | 5 | * generator 6 | * parser 7 | * render 8 | * tinymce 9 | 10 | ## bpmn-process-designer 11 | 12 | github 地址:https://github.com/miyuesc/bpmn-process-designer 13 | 14 | * bpmnProcessDesigner 15 | 16 | TODO 目前存在的问题,如果选择 activiti 类型时,因为不支持内置表单的设计,所以会报 Error: unknown type activiti:FormData 错误。具体可见 https://github.com/miyuesc/bpmn-process-designer/issues/16 。 17 | 18 | 另外几个流程设计器的选型: 19 | 20 | * https://gitee.com/jimlow/vue-bpmn 相比差一些,已经停止维护,不算推荐。 21 | * https://github.com/GoldSubmarine/workflow-bpmn-modeler 仅支持 flowable 流程引擎。如果只考虑 flowable 的话,也是非常不错的选择。 -------------------------------------------------------------------------------- /src/views/crm/business/index.vue: -------------------------------------------------------------------------------- 1 | 15 | 17 | -------------------------------------------------------------------------------- /src/views/crm/contact/index.vue: -------------------------------------------------------------------------------- 1 | 15 | 17 | -------------------------------------------------------------------------------- /src/views/crm/contract/index.vue: -------------------------------------------------------------------------------- 1 | 15 | 17 | -------------------------------------------------------------------------------- /src/views/crm/customer/index.vue: -------------------------------------------------------------------------------- 1 | 15 | 17 | -------------------------------------------------------------------------------- /src/assets/icons/svg/tab.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/views/crm/receivable/index.vue: -------------------------------------------------------------------------------- 1 | 15 | 17 | -------------------------------------------------------------------------------- /src/assets/icons/svg/question.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/views/crm/customer/pool/index.vue: -------------------------------------------------------------------------------- 1 | 15 | 17 | -------------------------------------------------------------------------------- /src/views/mall/trade/config/index.vue: -------------------------------------------------------------------------------- 1 | 15 | 17 | -------------------------------------------------------------------------------- /src/assets/icons/svg/radio.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/utils/pluginsConfig.js: -------------------------------------------------------------------------------- 1 | const CDN = 'https://lib.baomitu.com/' // CDN Homepage: https://cdn.baomitu.com/ 2 | const publicPath = process.env.BASE_URL 3 | 4 | function splicingPluginUrl(PluginName, version, fileName) { 5 | return `${CDN}${PluginName}/${version}/${fileName}` 6 | } 7 | 8 | export default { 9 | beautifierUrl: splicingPluginUrl('js-beautify', '1.13.5', 'beautifier.min.js'), 10 | // monacoEditorUrl: splicingPluginUrl('monaco-editor', '0.19.3', 'min/vs'), // 使用 monaco-editor CDN 链接 11 | monacoEditorUrl: `${publicPath}libs/monaco-editor/vs`, // 使用 monaco-editor 本地代码 12 | tinymceUrl: splicingPluginUrl('tinymce', '5.7.0', 'tinymce.min.js') 13 | } 14 | -------------------------------------------------------------------------------- /src/views/crm/business/status/index.vue: -------------------------------------------------------------------------------- 1 | 15 | 17 | -------------------------------------------------------------------------------- /src/views/crm/contract/config/index.vue: -------------------------------------------------------------------------------- 1 | 15 | 17 | -------------------------------------------------------------------------------- /src/views/crm/receivable/plan/index.vue: -------------------------------------------------------------------------------- 1 | 15 | 17 | -------------------------------------------------------------------------------- /src/layout/components/IframeToggle/index.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 25 | -------------------------------------------------------------------------------- /src/views/crm/customer/poolConfig/index.vue: -------------------------------------------------------------------------------- 1 | 15 | 17 | -------------------------------------------------------------------------------- /src/assets/icons/svg/message.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/views/crm/customer/limitConfig/index.vue: -------------------------------------------------------------------------------- 1 | 15 | 17 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 24 | 29 | -------------------------------------------------------------------------------- /src/components/bpmnProcessDesigner/src/modules/custom-renderer/CustomRenderer.js: -------------------------------------------------------------------------------- 1 | import BpmnRenderer from "bpmn-js/lib/draw/BpmnRenderer"; 2 | 3 | export default function CustomRenderer(config, eventBus, styles, pathMap, canvas, textRenderer) { 4 | BpmnRenderer.call(this, config, eventBus, styles, pathMap, canvas, textRenderer, 2000); 5 | 6 | this.handlers["label"] = function() { 7 | return null; 8 | }; 9 | } 10 | 11 | const F = function() {}; // 核心,利用空对象作为中介; 12 | F.prototype = BpmnRenderer.prototype; // 核心,将父类的原型赋值给空对象F; 13 | CustomRenderer.prototype = new F(); // 核心,将 F的实例赋值给子类; 14 | CustomRenderer.prototype.constructor = CustomRenderer; // 修复子类CustomRenderer的构造器指向,防止原型链的混乱; 15 | -------------------------------------------------------------------------------- /src/assets/icons/svg/download.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/svg/theme.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/layout/components/Sidebar/FixiOSBug.js: -------------------------------------------------------------------------------- 1 | export default { 2 | computed: { 3 | device() { 4 | return this.$store.state.app.device 5 | } 6 | }, 7 | mounted() { 8 | // In order to fix the click on menu on the ios device will trigger the mouseleave bug 9 | this.fixBugIniOS() 10 | }, 11 | methods: { 12 | fixBugIniOS() { 13 | const $subMenu = this.$refs.subMenu 14 | if ($subMenu) { 15 | const handleMouseleave = $subMenu.handleMouseleave 16 | $subMenu.handleMouseleave = (e) => { 17 | if (this.device === 'mobile') { 18 | return 19 | } 20 | handleMouseleave(e) 21 | } 22 | } 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/assets/icons/svg/select.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/tinymce/config.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable max-len */ 2 | 3 | export const plugins = [ 4 | 'advlist anchor autolink autosave code codesample directionality emoticons fullscreen hr image imagetools insertdatetime link lists media nonbreaking noneditable pagebreak paste preview print save searchreplace spellchecker tabfocus table template textpattern visualblocks visualchars wordcount' 5 | ] 6 | export const toolbar = [ 7 | 'code searchreplace bold italic underline strikethrough alignleft aligncenter alignright outdent indent blockquote removeformat subscript superscript codesample hr bullist numlist link image charmap preview anchor pagebreak insertdatetime media table emoticons forecolor backcolor fullscreen' 8 | ] 9 | -------------------------------------------------------------------------------- /src/api/mp/freePublish.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 获得公众号素材分页 4 | export function getFreePublishPage(query) { 5 | return request({ 6 | url: '/mp/free-publish/page', 7 | method: 'get', 8 | params: query 9 | }) 10 | } 11 | 12 | // 删除公众号素材 13 | export function deleteFreePublish(accountId, articleId) { 14 | return request({ 15 | url: '/mp/free-publish/delete?accountId=' + accountId + '&articleId=' + articleId, 16 | method: 'delete' 17 | }) 18 | } 19 | 20 | // 发布公众号素材 21 | export function submitFreePublish(accountId, mediaId) { 22 | return request({ 23 | url: '/mp/free-publish/submit?accountId=' + accountId + '&mediaId=' + mediaId, 24 | method: 'post' 25 | }) 26 | } 27 | -------------------------------------------------------------------------------- /src/assets/icons/svg/code.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/styles/mixin.scss: -------------------------------------------------------------------------------- 1 | @mixin action-bar { 2 | .action-bar { 3 | height: 33px; 4 | background: #f2fafb; 5 | padding: 0 15px; 6 | box-sizing: border-box; 7 | 8 | .bar-btn { 9 | display: inline-block; 10 | padding: 0 6px; 11 | line-height: 32px; 12 | color: #8285f5; 13 | cursor: pointer; 14 | font-size: 14px; 15 | user-select: none; 16 | & i { 17 | font-size: 20px; 18 | } 19 | &:hover { 20 | color: #4348d4; 21 | } 22 | } 23 | .bar-btn + .bar-btn { 24 | margin-left: 8px; 25 | } 26 | .delete-btn { 27 | color: #f56c6c; 28 | &:hover { 29 | color: #ea0b30; 30 | } 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /src/assets/icons/svg/peoples.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/api/mp/mpuser.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 更新公众号粉丝 4 | export function updateUser(data) { 5 | return request({ 6 | url: '/mp/user/update', 7 | method: 'put', 8 | data: data 9 | }) 10 | } 11 | 12 | // 获得公众号粉丝 13 | export function getUser(id) { 14 | return request({ 15 | url: '/mp/user/get?id=' + id, 16 | method: 'get' 17 | }) 18 | } 19 | 20 | // 获得公众号粉丝分页 21 | export function getUserPage(query) { 22 | return request({ 23 | url: '/mp/user/page', 24 | method: 'get', 25 | params: query 26 | }) 27 | } 28 | 29 | // 同步公众号粉丝 30 | export function syncUser(accountId) { 31 | return request({ 32 | url: '/mp/user/sync?accountId=' + accountId, 33 | method: 'post' 34 | }) 35 | } 36 | -------------------------------------------------------------------------------- /src/utils/loadTinymce.js: -------------------------------------------------------------------------------- 1 | import loadScript from './loadScript' 2 | import ELEMENT from 'element-ui' 3 | import pluginsConfig from './pluginsConfig' 4 | 5 | let tinymceObj 6 | 7 | export default function loadTinymce(cb) { 8 | const { tinymceUrl } = pluginsConfig 9 | 10 | if (tinymceObj) { 11 | cb(tinymceObj) 12 | return 13 | } 14 | 15 | const loading = ELEMENT.Loading.service({ 16 | fullscreen: true, 17 | lock: true, 18 | text: '富文本资源加载中...', 19 | spinner: 'el-icon-loading', 20 | background: 'rgba(255, 255, 255, 0.5)' 21 | }) 22 | 23 | loadScript(tinymceUrl, () => { 24 | loading.close() 25 | // eslint-disable-next-line no-undef 26 | tinymceObj = tinymce 27 | cb(tinymceObj) 28 | }) 29 | } 30 | -------------------------------------------------------------------------------- /src/assets/icons/svg/server.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/api/system/socialUser.js: -------------------------------------------------------------------------------- 1 | import request from "@/utils/request"; 2 | 3 | // 获取用户绑定的社交用户列表 4 | export function getBindSocialUserList() { 5 | return request({ 6 | url: '/system/social-user/get-bind-list', 7 | method: 'get' 8 | }) 9 | } 10 | 11 | // 社交绑定,使用 code 授权码 12 | export function socialBind(type, code, state) { 13 | return request({ 14 | url: '/system/social-user/bind', 15 | method: 'post', 16 | data: { 17 | type, 18 | code, 19 | state, 20 | } 21 | }) 22 | } 23 | 24 | // 取消社交绑定 25 | export function socialUnbind(type, openid) { 26 | return request({ 27 | url: '/system/social-user/unbind', 28 | method: 'delete', 29 | data: { 30 | type, 31 | openid 32 | } 33 | }) 34 | } 35 | -------------------------------------------------------------------------------- /src/assets/icons/svg/checkbox.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/api/infra/apiErrorLog.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 更新 API 错误日志的处理状态 4 | export function updateApiErrorLogProcess(id, processStatus) { 5 | return request({ 6 | url: '/infra/api-error-log/update-status?id=' + id + '&processStatus=' + processStatus, 7 | method: 'put', 8 | }) 9 | } 10 | 11 | // 获得API 错误日志分页 12 | export function getApiErrorLogPage(query) { 13 | return request({ 14 | url: '/infra/api-error-log/page', 15 | method: 'get', 16 | params: query 17 | }) 18 | } 19 | 20 | // 导出API 错误日志 Excel 21 | export function exportApiErrorLogExcel(query) { 22 | return request({ 23 | url: '/infra/api-error-log/export-excel', 24 | method: 'get', 25 | params: query, 26 | responseType: 'blob' 27 | }) 28 | } 29 | -------------------------------------------------------------------------------- /src/components/parser/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "form-gen-parser", 3 | "version": "1.0.3", 4 | "description": "表单json解析器", 5 | "main": "lib/form-gen-parser.umd.js", 6 | "directories": { 7 | "example": "example" 8 | }, 9 | "scripts": { 10 | "test": "echo \"Error: no test specified\" && exit 1" 11 | }, 12 | "repository": { 13 | "type": "git", 14 | "url": "git+https://github.com/JakHuang/form-generator.git" 15 | }, 16 | "dependencies": { 17 | "form-gen-render": "^1.0.0" 18 | }, 19 | "author": "jakHuang", 20 | "license": "MIT", 21 | "bugs": { 22 | "url": "https://github.com/JakHuang/form-generator/issues" 23 | }, 24 | "homepage": "https://github.com/JakHuang/form-generator/blob/dev/src/components/parser" 25 | } 26 | -------------------------------------------------------------------------------- /src/components/DocAlert/index.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 28 | 34 | -------------------------------------------------------------------------------- /src/utils/loadBeautifier.js: -------------------------------------------------------------------------------- 1 | import loadScript from './loadScript' 2 | import ELEMENT from 'element-ui' 3 | import pluginsConfig from './pluginsConfig' 4 | 5 | let beautifierObj 6 | 7 | export default function loadBeautifier(cb) { 8 | const { beautifierUrl } = pluginsConfig 9 | if (beautifierObj) { 10 | cb(beautifierObj) 11 | return 12 | } 13 | 14 | const loading = ELEMENT.Loading.service({ 15 | fullscreen: true, 16 | lock: true, 17 | text: '格式化资源加载中...', 18 | spinner: 'el-icon-loading', 19 | background: 'rgba(255, 255, 255, 0.5)' 20 | }) 21 | 22 | loadScript(beautifierUrl, () => { 23 | loading.close() 24 | // eslint-disable-next-line no-undef 25 | beautifierObj = beautifier 26 | cb(beautifierObj) 27 | }) 28 | } 29 | -------------------------------------------------------------------------------- /src/api/pay/demo.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 创建示例订单 4 | export function createDemoOrder(data) { 5 | return request({ 6 | url: '/pay/demo-order/create', 7 | method: 'post', 8 | data: data 9 | }) 10 | } 11 | 12 | // 获得示例订单 13 | export function getDemoOrder(id) { 14 | return request({ 15 | url: '/pay/demo-order/get?id=' + id, 16 | method: 'get' 17 | }) 18 | } 19 | 20 | // 获得示例订单分页 21 | export function getDemoOrderPage(query) { 22 | return request({ 23 | url: '/pay/demo-order/page', 24 | method: 'get', 25 | params: query 26 | }) 27 | } 28 | 29 | // 退款示例订单 30 | export function refundDemoOrder(id) { 31 | return request({ 32 | url: '/pay/demo-order/refund?id=' + id, 33 | method: 'put' 34 | }) 35 | } 36 | -------------------------------------------------------------------------------- /src/layout/components/Sidebar/Item.vue: -------------------------------------------------------------------------------- 1 | 34 | -------------------------------------------------------------------------------- /src/directive/permission/hasRole.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 角色权限处理 3 | * Copyright (c) 2019 ruoyi 4 | */ 5 | 6 | import store from '@/store' 7 | 8 | export default { 9 | inserted(el, binding, vnode) { 10 | const { value } = binding 11 | const super_admin = "admin"; 12 | const roles = store.getters && store.getters.roles // 用户拥有的角色标识的数组 13 | 14 | if (value && value instanceof Array && value.length > 0) { 15 | // 判断是否有角色 16 | const roleFlag = value 17 | const hasRole = roles.some(role => { 18 | return super_admin === role || roleFlag.includes(role) 19 | }) 20 | // 如果没有角色,则移除元素 21 | if (!hasRole) { 22 | el.parentNode && el.parentNode.removeChild(el) 23 | } 24 | } else { 25 | throw new Error(`请设置角色权限标签值"`) 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/assets/icons/svg/edit.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/utils/ase.js: -------------------------------------------------------------------------------- 1 | import CryptoJS from 'crypto-js' 2 | /** 3 | * @word 要加密的内容 4 | * @keyWord String 服务器随机返回的关键字 5 | */ 6 | export function aesEncrypt(word, keyWord = 'XwKsGlMcdPMEhR1B') { 7 | const key = CryptoJS.enc.Utf8.parse(keyWord) 8 | const secs = CryptoJS.enc.Utf8.parse(word) 9 | const encrypted = CryptoJS.AES.encrypt(secs, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }) 10 | return encrypted.toString() 11 | } 12 | 13 | /** 14 | * @word 要解密的内容 15 | * @keyWord String 服务器随机返回的关键字 16 | */ 17 | export function aesDecrypt(word, keyWord = 'XwKsGlMcdPMEhR1B') { 18 | const key = CryptoJS.enc.Utf8.parse(keyWord) 19 | const decrypt = CryptoJS.AES.decrypt(word, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }) 20 | return CryptoJS.enc.Utf8.stringify(decrypt).toString() 21 | } 22 | -------------------------------------------------------------------------------- /src/assets/icons/svg/nested.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/api/pay/channel.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 创建支付渠道 4 | export function createChannel(data) { 5 | return request({ 6 | url: '/pay/channel/create', 7 | method: 'post', 8 | data: data 9 | }) 10 | } 11 | 12 | 13 | // 更新支付渠道 14 | export function updateChannel(data) { 15 | return request({ 16 | url: '/pay/channel/update', 17 | method: 'put', 18 | data: data 19 | }) 20 | } 21 | 22 | // 删除支付渠道 23 | export function deleteChannel(id) { 24 | return request({ 25 | url: '/pay/channel/delete?id=' + id, 26 | method: 'delete' 27 | }) 28 | } 29 | 30 | // 获得支付渠道 31 | export function getChannel(appId, code) { 32 | return request({ 33 | url: '/pay/channel/get', 34 | method: 'get', 35 | params:{ 36 | appId, 37 | code 38 | }, 39 | }) 40 | } 41 | 42 | -------------------------------------------------------------------------------- /src/api/bpm/processInstance.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getMyProcessInstancePage(query) { 4 | return request({ 5 | url: '/bpm/process-instance/my-page', 6 | method: 'get', 7 | params: query 8 | }) 9 | } 10 | 11 | export function createProcessInstance(data) { 12 | return request({ 13 | url: '/bpm/process-instance/create', 14 | method: 'POST', 15 | data: data 16 | }) 17 | } 18 | 19 | export function cancelProcessInstance(id, reason) { 20 | return request({ 21 | url: '/bpm/process-instance/cancel', 22 | method: 'DELETE', 23 | data: { 24 | id, 25 | reason 26 | } 27 | }) 28 | } 29 | 30 | export function getProcessInstance(id) { 31 | return request({ 32 | url: '/bpm/process-instance/get?id=' + id, 33 | method: 'get', 34 | }) 35 | } 36 | -------------------------------------------------------------------------------- /src/assets/icons/svg/pay.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/tinymce/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "form-gen-tinymce", 3 | "version": "1.0.0", 4 | "description": "富文本编辑器tinymce的一个vue版本封装。使用cdn动态脚本引入的方式加载。", 5 | "main": "lib/form-gen-tinymce.umd.js", 6 | "directories": { 7 | "example": "example" 8 | }, 9 | "scripts": { 10 | "test": "echo \"Error: no test specified\" && exit 1" 11 | }, 12 | "repository": { 13 | "type": "git", 14 | "url": "git+https://github.com/JakHuang/form-generator.git" 15 | }, 16 | "keywords": [ 17 | "tinymce-vue" 18 | ], 19 | "dependencies": { 20 | "throttle-debounce": "^2.1.0" 21 | }, 22 | "author": "jakHuang", 23 | "license": "MIT", 24 | "bugs": { 25 | "url": "https://github.com/JakHuang/form-generator/issues" 26 | }, 27 | "homepage": "https://github.com/JakHuang/form-generator/blob/dev/src/components/tinymce" 28 | } 29 | -------------------------------------------------------------------------------- /src/views/infra/skywalking/index.vue: -------------------------------------------------------------------------------- 1 | 7 | 31 | -------------------------------------------------------------------------------- /src/api/mp/statistics.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 获取消息发送概况数据 4 | export function getUpstreamMessage(query) { 5 | return request({ 6 | url: '/mp/statistics/upstream-message', 7 | method: 'get', 8 | params: query 9 | }) 10 | } 11 | 12 | // 用户增减数据 13 | export function getUserSummary(query) { 14 | return request({ 15 | url: '/mp/statistics/user-summary', 16 | method: 'get', 17 | params: query 18 | }) 19 | } 20 | 21 | // 获得用户累计数据 22 | export function getUserCumulate(query) { 23 | return request({ 24 | url: '/mp/statistics/user-cumulate', 25 | method: 'get', 26 | params: query 27 | }) 28 | } 29 | 30 | // 获得接口分析数据 31 | export function getInterfaceSummary(query) { 32 | return request({ 33 | url: '/mp/statistics/interface-summary', 34 | method: 'get', 35 | params: query 36 | }) 37 | } 38 | -------------------------------------------------------------------------------- /src/assets/icons/svg/percentSign.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/svg/phone.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/directive/permission/hasPermi.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 操作权限处理 3 | * Copyright (c) 2019 ruoyi 4 | */ 5 | import store from '@/store' 6 | 7 | export default { 8 | inserted(el, binding, vnode) { 9 | const { value } = binding 10 | const all_permission = "*:*:*"; // 全部权限 11 | const permissions = store.getters && store.getters.permissions // 用户拥有的权限标识的数组 12 | 13 | if (value && value instanceof Array && value.length > 0) { 14 | // 判断是否有权限 15 | const permissionFlag = value 16 | const hasPermissions = permissions.some(permission => { 17 | return all_permission === permission || permissionFlag.includes(permission) 18 | }) 19 | // 如果没有权限,则移除元素 20 | if (!hasPermissions) { 21 | el.parentNode && el.parentNode.removeChild(el) 22 | } 23 | } else { 24 | throw new Error(`请设置操作权限标签值`) 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/views/infra/server/index.vue: -------------------------------------------------------------------------------- 1 | 7 | 31 | -------------------------------------------------------------------------------- /src/layout/components/Sidebar/Link.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 44 | -------------------------------------------------------------------------------- /src/components/DictTag/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 24 | 29 | -------------------------------------------------------------------------------- /src/components/iFrame/index.vue: -------------------------------------------------------------------------------- 1 |