【低代码v2.0,一句话即可生成整个系统】企业级AI低代码平台,一键生成前后端代码甚至整个系统。 AI Skills 一句话画流程、设计表单、生成报表、大屏。内置 AI应用平台涵盖:AI聊天、知识库、流程编排、MCP插件等,兼容主流大模型。引领AI低代码「Skills 生成 → 在线配置 → 代码生成 → 手工合并->AI修改」开发模式,解决 Java 项目 90% 重复工作,提高效率又不失灵活。
This report summarizes scanner evidence for jeecgboot/JeecgBoot, a Java project with 48,350 GitHub stars. SynthScan examined 570,993 lines of code across 3127 source files, recording 554 pattern matches distributed across 12 syntactic categories. The legacy adjusted pattern signal is 1.6 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 489 finding(s).
Are imports declared and package/API names verified? 57 finding(s).
Are wrappers, guards, and repeated structures necessary? 156 finding(s).
Which changes need focused human review? 554 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 554 distinct pattern matches across 12 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …oot-vue3/src/components/onlinePreview/open-jssdk.es.js | 1 | var e={658:function(e,t,n){function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e | CODE |
| CRITICAL | …cg/test/security/Issue9672_SsrfFileTypeFilterTest.java | 157 | org.junit.jupiter.api.Assumptions.assumeFalse(resolvable, | CODE |
| CRITICAL⚡ | …rc/main/java/org/jeecg/config/WebMvcConfiguration.java | 157 | javaTimeModule.addSerializer(LocalDateTime.class, new tools.jackson.databind.ext.javatime.ser.LocalDateTimeSerializer( | CODE |
| CRITICAL⚡ | …rc/main/java/org/jeecg/config/WebMvcConfiguration.java | 158 | javaTimeModule.addSerializer(LocalDate.class, new tools.jackson.databind.ext.javatime.ser.LocalDateSerializer(DATE_FOR | CODE |
| CRITICAL⚡ | …rc/main/java/org/jeecg/config/WebMvcConfiguration.java | 159 | javaTimeModule.addSerializer(LocalTime.class, new tools.jackson.databind.ext.javatime.ser.LocalTimeSerializer(TIME_FOR | CODE |
| CRITICAL⚡ | …c/main/java/org/jeecg/common/util/YouBianCodeUtil.java | 41 | // org.jeecgframework.core.util.LogUtil.info(after_code); | COMMENT |
| CRITICAL⚡ | …c/main/java/org/jeecg/common/util/YouBianCodeUtil.java | 42 | // org.jeecgframework.core.util.LogUtil.info(after_code_zimu); | COMMENT |
| CRITICAL⚡ | …c/main/java/org/jeecg/common/util/YouBianCodeUtil.java | 43 | // org.jeecgframework.core.util.LogUtil.info(after_code_num); | COMMENT |
| CRITICAL⚡ | …c/main/java/org/jeecg/common/util/YouBianCodeUtil.java | 172 | // // org.jeecgframework.core.util.LogUtil.info(getNextZiMu('C')); | COMMENT |
| CRITICAL⚡ | …c/main/java/org/jeecg/common/util/YouBianCodeUtil.java | 173 | // // org.jeecgframework.core.util.LogUtil.info(getNextNum(8)); | COMMENT |
| CRITICAL⚡ | …c/main/java/org/jeecg/common/util/YouBianCodeUtil.java | 174 | // // org.jeecgframework.core.util.LogUtil.info(cutYouBianCode("C99A01B01")[2]); | COMMENT |
| CRITICAL | …/resources/static/plugins/codemirror/lib/codemirror.js | 8787 | return this.cm.display.wrapper.ownerDocument.getSelection() | CODE |
| CRITICAL | …/static/adminlte/bower_components/jquery/jquery.min.js | 2 | !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):f | CODE |
| CRITICAL | …/static/adminlte/bower_components/ckeditor/ckeditor.js | 55 | {},g=a.split(/\s+/g);a=CKEDITOR.tools.style.parse._findColor(a);a.length&&(e.color=a[0]);CKEDITOR.tools.array.forEach(g, | CODE |
| CRITICAL | …/static/adminlte/bower_components/ckeditor/ckeditor.js | 356 | this.$.scrollTop;this.$.focus();this.$.scrollTop=b}else this.$.focus();else this.$.setActive()}catch(c){if(!CKEDITOR.env | CODE |
| CRITICAL | …/static/adminlte/bower_components/ckeditor/ckeditor.js | 521 | '"':"")+"\x3e"+d.call(this,b,c)+"\x3c/span\x3e"}]},CKEDITOR.dialog._.uiElementBuilders.hbox.build(b,e,a));return a.join( | CODE |
| CRITICAL | …/static/adminlte/bower_components/ckeditor/ckeditor.js | 539 | focus:function(){var a=this.selectParentTab();setTimeout(function(){var b=a.getInputElement();b&&b.$.focus()},0)},select | CODE |
| CRITICAL | …/static/adminlte/bower_components/ckeditor/ckeditor.js | 540 | getValue:function(){var a=CKEDITOR.ui.dialog.uiElement.prototype.getValue.call(this);if(this.bidi&&a){var b=this.getDire | CODE |
| CRITICAL | …/static/adminlte/bower_components/ckeditor/ckeditor.js | 580 | this._.tabBarMode&&(this._.tabBarMode=!1,this._.currentFocusIndex=-1,k(1)),a.data.preventDefault())},this);A=[];B=CKEDIT | CODE |
| CRITICAL | …/static/adminlte/bower_components/ckeditor/ckeditor.js | 590 | c.focus();setTimeout(function(){c.focusManager.unlock();CKEDITOR.env.iOS&&c.window.focus()},0)}delete this._.parentDialo | CODE |
| CRITICAL | …/static/adminlte/bower_components/ckeditor/ckeditor.js | 968 | (delete d.scaytDict,a.config.scayt_uiTabs[2]=0,CKEDITOR.plugins.scayt.alarmCompatibilityMessage());return d}});a.context | CODE |
| CRITICAL | …/static/adminlte/bower_components/ckeditor/ckeditor.js | 1165 | b.focusManager.focus(c)}function D(){CKEDITOR.env.gecko&&this.editor.unlockSelection();CKEDITOR.env.webkit||(this.editor | CODE |
| CRITICAL | …ecg/modules/airag/llm/document/TikaDocumentParser.java | 270 | try (org.apache.poi.hslf.usermodel.HSLFSlideShow ppt = new org.apache.poi.hslf.usermodel.HSLFSlideShow(inputStre | CODE |
| CRITICAL | …rces/static/bigscreen/template2/js/jquery-3.3.1.min.js | 2 | !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):f | CODE |
| CRITICAL | …ces/static/bigscreen/template1/js/jquery.easyui.min.js | 11213 | $.fn.datagrid.defaults.view.insertRow.call(this,_873,_874,row); | CODE |
| CRITICAL | …ces/static/bigscreen/template1/js/jquery.easyui.min.js | 11236 | $.fn.datagrid.defaults.view.updateRow.call(this,_87d,_87e,row); | CODE |
| CRITICAL | …ces/static/bigscreen/template1/js/jquery.easyui.min.js | 11247 | $.fn.datagrid.defaults.view.deleteRow.call(this,_880,_881); | CODE |
| CRITICAL | …/resources/static/bigscreen/template1/js/jquery.min.js | 4501 | m.each(m.expr.match.bool.source.match(/\w+/g), function(a, b) { | CODE |
| CRITICAL | …ava/org/jeecg/modules/airag/JeecgBizToolsProvider.java | 387 | org.jeecg.modules.system.entity.SysUserRole rel = new org.jeecg.modules.system.entity.SysUserRole(us | CODE |
| CRITICAL | …les/system/service/impl/ThirdAppFeishuServiceImpl.java | 844 | depart.setId(com.baomidou.mybatisplus.core.toolkit.IdWorker.getIdStr(depart)); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker-compose-cloud.yml | 141 | # jeecg-boot-rabbitmq: | COMMENT |
| LOW | jeecgboot-vue3/tests/test.spec.ts | 1 | // import { mount } from '@vue/test-utils'; | COMMENT |
| LOW | jeecgboot-vue3/src/settings/projectSetting.ts | 21 | // ! 改动后需要清空浏览器缓存 | COMMENT |
| LOW | jeecgboot-vue3/src/design/color.less | 21 | // fontSize: @fontSize; | COMMENT |
| LOW | jeecgboot-vue3/src/design/ant/btn.less | 1 | // button reset | COMMENT |
| LOW | jeecgboot-vue3/src/design/ant/btn.less | 21 | } | COMMENT |
| LOW | jeecgboot-vue3/src/design/ant/btn.less | 41 | // border-color: fade(@button-cancel-border-color, 40%) !important; | COMMENT |
| LOW | jeecgboot-vue3/src/design/ant/btn.less | 61 | // color: @button-cancel-hover-color; | COMMENT |
| LOW | jeecgboot-vue3/src/utils/tinymceGlobalShim.ts | 1 | // update-begin--author:copilot---date:20260711---for:【依赖升级排查】修复 Rolldown 严格 CJS 互操作导致 tinymce 全局未挂载 | COMMENT |
| LOW | jeecgboot-vue3/src/utils/index.ts | 781 | // 若写成裸 table/img 选择器,会污染页面上的 Ant Design Table 等其它表格样式。 | COMMENT |
| LOW | jeecgboot-vue3/src/utils/encryption/signMd5Utils.js | 121 | static getTimestamp() { | COMMENT |
| LOW | jeecgboot-vue3/src/utils/http/axios/index.ts | 261 | // See https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication#authentication_schemes | COMMENT |
| LOW | …cgboot-vue3/src/utils/factory/createAsyncComponent.tsx | 1 | import { | COMMENT |
| LOW | …ot-vue3/src/components/jeecg/JVxeTable/src/vxe.data.ts | 81 | // 校验规则 | COMMENT |
| LOW | …/components/jeecg/JVxeTable/src/types/JVxeComponent.ts | 21 | // 已实现:event.clearActived | COMMENT |
| LOW | …omponents/jeecg/JVxeTable/src/hooks/useColumnsCache.ts | 21 | const column = props.columns.find((item) => item.key === key); | COMMENT |
| LOW | …src/components/CodeEditor/src/codemirror/codeMirror.ts | 1 | import CodeMirror from 'codemirror'; | COMMENT |
| LOW | …/Form/src/jeecg/components/JEasyCron/EasyCronInner.vue | 181 | COMMENT | |
| LOW | …/Form/src/jeecg/components/JEasyCron/EasyCronInner.vue | 201 | // }) | COMMENT |
| LOW | …3/src/components/Form/src/container/JFormContainer.vue | 61 | } | COMMENT |
| LOW | …3/src/components/Form/src/container/JFormContainer.vue | 81 | // .jeecg-form-container-disabled :deep(.tox .tox-toolbar__group), | COMMENT |
| LOW | …nts/JVxeCustom/src/components/JVxeDepartSelectCell.vue | 101 | return { | COMMENT |
| LOW | …nts/JVxeCustom/src/components/JVxeDepartSelectCell.vue | 121 | // return true | COMMENT |
| LOW | …nts/JVxeCustom/src/components/JVxeDepartSelectCell.vue | 141 | // return false | COMMENT |
| LOW | …nts/JVxeCustom/src/components/JVxeDepartSelectCell.vue | 161 | // this.$refs.innerDepartSelectModal.show() | COMMENT |
| LOW | jeecgboot-vue3/src/components/Menu/src/types.ts | 1 | // import { ComputedRef } from 'vue'; | COMMENT |
| LOW | …3/src/components/Modal/src/hooks/useModalFullScreen.ts | 21 | COMMENT | |
| LOW | …src/layouts/default/header/components/notify/index.vue | 61 | // const count = computed(() => { | COMMENT |
| LOW | …src/layouts/default/header/components/notify/index.vue | 101 | COMMENT | |
| LOW | …3/src/layouts/default/header/components/notify/data.ts | 161 | // key: '3', | COMMENT |
| LOW | …3/src/layouts/default/header/components/notify/data.ts | 181 | // color: 'red', | COMMENT |
| LOW | …3/src/layouts/default/header/components/notify/data.ts | 201 | // color: 'blue', | COMMENT |
| LOW | jeecgboot-vue3/src/hooks/web/useDesign.ts | 1 | import { useAppProviderContext } from '/@/components/Application'; | COMMENT |
| LOW | jeecgboot-vue3/src/qiankun/state.ts | 1 | // /** | COMMENT |
| LOW | jeecgboot-vue3/src/qiankun/state.ts | 21 | // * 定义全局状态,并返回通信方法,在主应用使用,微应用通过 props 获取通信方法。 | COMMENT |
| LOW | jeecgboot-vue3/src/qiankun/apps.ts | 1 | // export const containerId = 'qiankun-content' | COMMENT |
| LOW | jeecgboot-vue3/src/qiankun/apps.ts | 21 | // _apps.push(obj); | COMMENT |
| LOW | jeecgboot-vue3/src/qiankun/route.ts | 1 | // import { router } from "@/router"; | COMMENT |
| LOW | jeecgboot-vue3/src/qiankun/route.ts | 21 | // if (registered) { | COMMENT |
| LOW | jeecgboot-vue3/src/qiankun/route.ts | 41 | // | COMMENT |
| LOW | jeecgboot-vue3/src/qiankun/index.ts | 1 | // /** | COMMENT |
| LOW | jeecgboot-vue3/src/qiankun/index.ts | 21 | // //主应用需要传递给微应用的数据。 | COMMENT |
| LOW | jeecgboot-vue3/src/qiankun/index.ts | 41 | // /** | COMMENT |
| LOW | jeecgboot-vue3/src/qiankun/index.ts | 61 | // return; | COMMENT |
| LOW | jeecgboot-vue3/src/qiankun/index.ts | 81 | // (mountApp) => { | COMMENT |
| LOW | jeecgboot-vue3/src/qiankun/index.ts | 101 | // runAfterFirstMounted(() => console.log('开启监控')); | COMMENT |
| LOW | jeecgboot-vue3/src/api/sys/user.ts | 21 | // 2、所有权限 | COMMENT |
| LOW | …-vue3/src/views/demo/jeecg/JVxeTableDemo/JVxeDemo1.vue | 341 | // props.columnIndex 当前列下标 | COMMENT |
| LOW | jeecgboot-vue3/src/views/demo/form/AdvancedForm.vue | 101 | // { | COMMENT |
| LOW | …cgboot-vue3/src/views/system/position/position.data.ts | 61 | // { | COMMENT |
| LOW | jeecgboot-vue3/src/views/system/menu/menu.data.ts | 201 | // validator: (_, value) => { | COMMENT |
| LOW | …oot-vue3/src/views/super/airag/aivideo/AiVideo.data.ts | 1 | import { FormSchema } from '@/components/Form'; | COMMENT |
| LOW | …/src/views/super/airag/wordtpl/EoaWordTemplate.data.ts | 21 | // { | COMMENT |
| LOW | …/src/views/super/airag/wordtpl/EoaWordTemplate.data.ts | 41 | // align: 'center', | COMMENT |
| LOW | …3/src/views/super/airag/aiprompts/AiragPrompts.data.ts | 21 | // title: '最近提交人', | COMMENT |
| LOW | …boot-vue3/src/views/super/online/cgform/cgform.data.ts | 221 | dbIsSync: '1' | COMMENT |
| LOW | …boot-vue3/src/views/super/online/cgform/cgform.data.ts | 241 | // dbIsNull: true | COMMENT |
| LOW | …uper/online/cgform/auto/comp/superquery/SuperQuery.vue | 461 | // update-end--author:liaozhiyang---date:20260813---for:【LHZP-442】当前组件没有等于条件,默认使用当前组件的第一个条件 | COMMENT |
| LOW | …iews/super/online/cgform/components/CgformHeadForm.vue | 281 | label: '附表', | COMMENT |
| LOW | …vue3/src/views/super/online/cgform/hooks/useSchemas.ts | 581 | 'right' | COMMENT |
| 267 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | jeecgboot-vue3/src/utils/common/compUtils.ts | 488 | export function replaceUserInfoByExpression(expression: string | any[]) { | CODE |
| LOW | jeecgboot-vue3/src/utils/common/compUtils.ts | 520 | export async function userExitChangeLoginTenantId(tenantId){ | CODE |
| LOW | jeecgboot-vue3/src/utils/common/compUtils.ts | 647 | export async function getDepartPathNameByOrgCode(orgCode, label, depId){ | CODE |
| LOW | jeecgboot-vue3/src/utils/common/compUtils.ts | 686 | export async function batchPreloadDepartPathNames(records: any[], fields: string[] = ['belongDepIds', 'departIds', 'main | CODE |
| LOW | jeecgboot-vue3/src/utils/common/vxeUtils.ts | 10 | export async function validateFormModelAndTables(validate, formData, cases, props, autoJumpTab?) { | CODE |
| LOW | …/components/jeecg/JVxeTable/src/utils/registerUtils.ts | 59 | export function registerASyncComponentReal(type: JVxeTypes, component) { | CODE |
| LOW | …mponents/jeecg/JVxeTable/src/hooks/useValidateRules.ts | 68 | function handlerConvertToValidator(event) { | CODE |
| LOW | …mponents/jeecg/JVxeTable/src/hooks/useValidateRules.ts | 89 | function emptySkipPatternValidator(regExp: RegExp) { | CODE |
| LOW | …src/components/jeecg/JVxeTable/src/hooks/useLinkage.ts | 111 | function autoSetLinkageOptionsByData(data, parent, config, level) { | CODE |
| LOW | …src/components/jeecg/JVxeTable/src/hooks/useLinkage.ts | 126 | function handleLinkageSelectChange(row, col, config, value) { | CODE |
| LOW | …ue3/src/components/Transition/src/CreateTransition.tsx | 41 | export function createJavascriptTransition(name: string, functions: Recordable, mode: Mode = 'in-out') { | CODE |
| LOW | …components/Form/src/jeecg/components/JSelectSingle.vue | 271 | function handleDropdownVisibleChange(open: boolean) { | CODE |
| LOW | …/components/Form/src/jeecg/components/JImportModal.vue | 143 | function handleChangeValidateStatus(checked) { | CODE |
| LOW | …ts/Form/src/jeecg/hooks/useSelectMultipleScrollLoad.ts | 129 | function handleDropdownVisibleChange(open: boolean) { | CODE |
| LOW | …vue3/src/components/Form/src/jeecg/hooks/useTreeBiz.ts | 412 | function setCompanyDepartCheckable(record) { | CODE |
| LOW | …components/JVxeCustom/src/components/JVxeImageCell.vue | 80 | function handleClickShowImageError() { | CODE |
| LOW | …ents/SimpleMenu/src/components/useSimpleMenuContext.ts | 12 | export function createSimpleRootMenuContext(context: SimpleRootMenuContextProps) { | CODE |
| LOW | …ot-vue3/src/components/Menu/src/useBasicMenuContext.ts | 10 | export function createBasicRootMenuContext(context: BasicRootMenuContextProps) { | CODE |
| LOW | jeecgboot-vue3/src/components/wordtpl/canvas-editor.js | 4663 | function convertTextAlignToRowFlex(node) { | CODE |
| LOW | jeecgboot-vue3/src/components/wordtpl/canvas-editor.js | 4682 | function convertRowFlexToTextAlign(rowFlex) { | CODE |
| LOW | jeecgboot-vue3/src/components/wordtpl/canvas-editor.js | 4685 | function convertRowFlexToJustifyContent(rowFlex) { | CODE |
| LOW | jeecgboot-vue3/src/components/wordtpl/canvas-editor.js | 4810 | function groupElementListByRowFlex(elementList) { | CODE |
| LOW | jeecgboot-vue3/src/components/wordtpl/canvas-editor.js | 5303 | function deleteSurroundElementList(elementList, pageNo) { | CODE |
| LOW | jeecgboot-vue3/src/components/wordtpl/canvas-editor.js | 5364 | function getIsClipboardContainFile(clipboardData) { | CODE |
| LOW | jeecgboot-vue3/src/components/wordtpl/DocDesign.vue | 649 | function setDropdownContentPosition(parentNode, dropdownNode) { | CODE |
| LOW | jeecgboot-vue3/src/components/wordtpl/DocDesign.ts | 319 | function addIntersectionPageNoListener(){ | CODE |
| LOW | jeecgboot-vue3/src/components/Upload/src/data.tsx | 125 | export function createPreviewActionColumn({ handleRemove, handleDownload }: { handleRemove: Fn; handleDownload: Fn }): B | CODE |
| LOW | jeecgboot-vue3/src/hooks/system/useJvxeMethods.ts | 114 | export function useValidateAntFormAndTable(activeKey, refMap) { | CODE |
| LOW | jeecgboot-vue3/src/logics/error-handle/index.ts | 111 | function registerPromiseErrorHandler() { | CODE |
| LOW | jeecgboot-vue3/src/logics/error-handle/index.ts | 133 | function registerResourceErrorHandler() { | CODE |
| LOW | jeecgboot-vue3/src/views/demo/feat/download/index.vue | 45 | function handleDownloadByOnlineUrl() { | CODE |
| LOW | jeecgboot-vue3/src/views/demo/vextable/data.ts | 99 | export function getOrderCustomerFormSchema(formData) { | CODE |
| LOW | jeecgboot-vue3/src/views/monitor/route/RouteModal.vue | 265 | function predicatesHandleMenuClick(e) { | CODE |
| LOW | …src/views/system/category/components/CategoryModal.vue | 96 | function getSameLevelExpandKeysByPid(arr) { | CODE |
| LOW | jeecgboot-vue3/src/views/sys/login/useLogin.ts | 134 | function createRegisterAccountRule(type) { | CODE |
| LOW | …ews/super/airag/aiapp/components/AiAppSettingModal.vue | 766 | function handleAddKnowledgeIdClick(type) { | CODE |
| LOW | …ews/super/airag/aiapp/components/AiAppSettingModal.vue | 1412 | function handleAiAppCommandUpdateOk(value) { | CODE |
| LOW | …ews/super/airag/aiapp/components/AiAppSettingModal.vue | 1700 | function handleShowToolProcessChange(checked){ | CODE |
| LOW | …s/super/airag/aimcp/components/PluginToolEditModal.vue | 259 | function validateResponseParamName(record: any) { | CODE |
| LOW | …s/super/airag/aimcp/components/PluginToolEditModal.vue | 323 | function handleDeleteResponseParam(index: number) { | CODE |
| LOW | …/super/online/graphreport/auto/hooks/useChartRender.ts | 285 | function normalizeExtendJsEventParams(params) { | CODE |
| LOW | …s/super/online/graphreport/router/graphreportRouter.ts | 4 | export function registerGraphreportRouter() { | CODE |
| LOW | …vue3/src/views/super/online/cgform/util/FieldDefVal.ts | 51 | export function initSubTableDefValueConfig(item, config) { | CODE |
| LOW | …vue3/src/views/super/online/cgform/util/FieldDefVal.ts | 187 | export function loadFieldDefValForSubTable({ subForms, subTable, row, action, getFormData }) { | CODE |
| LOW | …vue3/src/views/super/online/cgform/util/FieldDefVal.ts | 378 | async function executeFillRuleExpression(expression, origin, getFormData) { | CODE |
| LOW | …vue3/src/views/super/online/cgform/util/FieldDefVal.ts | 398 | export function handleFillRuleQueryString(expression: string) { | CODE |
| LOW | …vue3/src/views/super/online/cgform/util/FieldDefVal.ts | 426 | export function handleFillRuleWatchKeysMap(properties: Recordable[]) { | CODE |
| LOW | …/views/super/online/cgform/auto/comp/OnlinePopForm.vue | 471 | function getSubTableForeignKeyValue(key) { | CODE |
| LOW | …/views/super/online/cgform/auto/comp/OnlinePopForm.vue | 604 | async function triggerParentSubOnlChange(columnKey, value) { | CODE |
| LOW | …/views/super/online/cgform/auto/comp/OnlinePopForm.vue | 632 | function replayParentMainOnlChange() { | CODE |
| LOW | …ews/super/online/cgform/auto/comp/OnlineFormDetail.vue | 269 | function getSubTableForeignKeyValue(key) { | CODE |
| LOW | …src/views/super/online/cgform/auto/comp/OnlineForm.vue | 449 | function handleSubTableDefaultValue(sub, $event) { | CODE |
| LOW | …src/views/super/online/cgform/auto/comp/OnlineForm.vue | 1054 | function getSubTableForeignKeyValue(key) { | CODE |
| LOW | …/views/super/online/cgform/auto/comp/OnlineSubForm.vue | 283 | async function resetAndApplyDefaultValue() { | CODE |
| LOW | …/views/super/online/cgform/auto/comp/OnlineSubForm.vue | 283 | async function resetAndApplyDefaultValue() { | CODE |
| LOW | …r/online/cgform/auto/tab/modal/OnlineTabFormDetail.vue | 275 | function getSubTableForeignKeyValue(key) { | CODE |
| LOW | …s/super/online/cgform/auto/tab/modal/OnlineTabForm.vue | 346 | function handleSubTableDefaultValue(sub, $event) { | CODE |
| LOW | …s/super/online/cgform/auto/tab/modal/OnlineTabForm.vue | 711 | function getSubTableForeignKeyValue(key) { | CODE |
| LOW | …ine/cgform/auto/innerTable/OnlCgformInnerTableList.vue | 429 | function handleSuperQueryWithSubTable(params, matchType) { | CODE |
| LOW | …s/super/online/cgform/components/ExtendConfigModal.vue | 117 | async function onEnableMultiDataSourceChange(value) { | CODE |
| 88 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …mponents/jeecg/JVxeTable/src/hooks/useJVxeComponent.ts | 65 | cellProps['placeholder'] = replaceProps(col, col.placeholder); | CODE |
| LOW | jeecgboot-vue3/src/components/jeecg/JPrompt/JPrompt.vue | 9 | <Input ref="inputRef" v-model:value="model[field]" :placeholder="placeholder" @pressEnter="onSubmit" @inpu | CODE |
| LOW | …ot-vue3/src/components/jeecg/JTabsSelectUser/index.vue | 3 | <JSelectBiz @handleOpen="openSelect" allowClear :placeholder="placeholder" :loading="loadingEcho" v-bind="attrs" @ch | CODE |
| LOW | …rc/components/Form/src/jeecg/components/JRangeTime.vue | 2 | <a-time-range-picker v-model:value="rangeValue" @change="handleChange" :placeholder="placeholder" :valueFormat="form | CODE |
| LOW | …components/Form/src/jeecg/components/JSelectSingle.vue | 7 | :placeholder="placeholder" | CODE |
| LOW | …mponents/Form/src/jeecg/components/JSelectMultiple.vue | 9 | :placeholder="placeholder" | CODE |
| LOW | …e3/src/components/Form/src/jeecg/components/JPopup.vue | 5 | <a-input @click="handleOpen" :value="isQueryingShowText ? '加载中...' : (innerShowText || showText)" :placeholder="plac | CODE |
| LOW | …omponents/Form/src/jeecg/components/JDictSelectTag.vue | 35 | :placeholder="placeholder" | CODE |
| LOW | …c/components/Form/src/jeecg/components/JTreeSelect.vue | 9 | :placeholder="placeholder" | CODE |
| LOW | …components/Form/src/jeecg/components/JSearchSelect.vue | 11 | :placeholder="placeholder" | CODE |
| LOW | …components/Form/src/jeecg/components/JSearchSelect.vue | 34 | :placeholder="placeholder" | CODE |
| LOW | …mponents/Form/src/jeecg/components/JCategorySelect.vue | 10 | :placeholder="placeholder" | CODE |
| LOW | …rc/components/Form/src/jeecg/components/JRangeDate.vue | 2 | <a-range-picker v-model:value="rangeValue" @change="handleChange" :show-time="datetime" :placeholder="placeholder" : | CODE |
| LOW | …ents/Form/src/jeecg/components/JDatePickerMultiple.vue | 8 | :placeholder="placeholder" | CODE |
| LOW | …/Form/src/jeecg/components/JEasyCron/EasyCronInput.vue | 3 | <a-input :placeholder="placeholder" v-model:value="editCronValue" :disabled="disabled"> | CODE |
| LOW | …mponents/Form/src/jeecg/components/base/JSelectBiz.vue | 18 | :placeholder="placeholder" | CODE |
| LOW | jeecgboot-vue3/src/components/wordtpl/canvas-editor.js | 3740 | ControlComponent2["PLACEHOLDER"] = "placeholder"; | CODE |
| LOW | …ecgboot-vue3/src/views/super/airag/aiapp/chat/chat.vue | 157 | :placeholder="placeholder" | CODE |
| LOW | …/super/online/cgform/auto/comp/JOnlineSearchSelect.vue | 5 | :placeholder="placeholder" | CODE |
| LOW | …/super/online/cgform/auto/comp/OnlineSelectCascade.vue | 3 | <a-select show-search :filter-option="filterOption" :placeholder="placeholder" :value="selectedValue" @change="handleC | CODE |
| LOW | …wer_components/ckeditor/plugins/image/dialogs/image.js | 35 | D+'"\x3e\x3cimg id\x3d"'+C+'" alt\x3d"" /\x3e\x3c/a\x3e'+(d.config.image_previewText||"Lorem ipsum dolor sit amet, conse | CODE |
| LOW | …wer_components/ckeditor/plugins/image/dialogs/image.js | 35 | D+'"\x3e\x3cimg id\x3d"'+C+'" alt\x3d"" /\x3e\x3c/a\x3e'+(d.config.image_previewText||"Lorem ipsum dolor sit amet, conse | CODE |
| LOW | …tatic/adminlte/bower_components/select2/select2.min.js | 2 | !function(n){"function"==typeof define&&define.amd?define(["jquery"],n):"object"==typeof module&&module.exports?module.e | CODE |
| LOW | …ces/static/bigscreen/template1/js/jquery.easyui.min.js | 6753 | _4dd.attr("placeholder",opts.prompt); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | check_jeecgenv.py | 14 | except Exception as e: | CODE |
| LOW | …cg-boot-module/jeecg-boot-module-airag/doc/RAG/main.py | 130 | except Exception as e: | CODE |
| LOW | …cg-boot-module/jeecg-boot-module-airag/doc/RAG/main.py | 172 | except Exception as e: | CODE |
| LOW | …cg-boot-module/jeecg-boot-module-airag/doc/RAG/main.py | 207 | except Exception as e: | CODE |
| LOW | …cg-boot-module/jeecg-boot-module-airag/doc/RAG/main.py | 247 | except Exception as e: | CODE |
| LOW | …cg-boot-module/jeecg-boot-module-airag/doc/RAG/main.py | 297 | except Exception as e: | CODE |
| LOW | …cg-boot-module/jeecg-boot-module-airag/doc/RAG/main.py | 366 | except Exception as e: | CODE |
| LOW | …cg-boot-module/jeecg-boot-module-airag/doc/RAG/main.py | 421 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | jeecg-boot/UPGRADE-3.9.3.md | 200 | ### 4.2 AI RAG 模块:LangChain4j 1.12.2 → 1.17.2 | COMMENT |
| MEDIUM | jeecg-boot/CLAUDE.md | 51 | │ ├── jeecg-boot-module-airag # AI/RAG integration | CODE |
| MEDIUM | jeecg-boot/CLAUDE.md | 58 | ├── jeecg-boot-module-airag-flow # AI RAG flow | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …cg-boot-module/jeecg-boot-module-airag/doc/RAG/main.py | 112 | CODE | |
| LOW | …cg-boot-module/jeecg-boot-module-airag/doc/RAG/main.py | 145 | CODE | |
| LOW | …cg-boot-module/jeecg-boot-module-airag/doc/RAG/main.py | 179 | CODE | |
| LOW | …cg-boot-module/jeecg-boot-module-airag/doc/RAG/main.py | 213 | CODE | |
| LOW | …cg-boot-module/jeecg-boot-module-airag/doc/RAG/main.py | 254 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …test/java/org/jeecg/modules/zeroAttack/attackTest.java | 119 | // Step 1: 上传恶意 SVG(SvgSecurityFilter 修复不移除白名单,上传仍允许) | COMMENT |
| LOW⚡ | …test/java/org/jeecg/modules/zeroAttack/attackTest.java | 123 | // Step 2: 通过直连静态资源路径访问(漏洞路径) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …test/java/org/jeecg/modules/zeroAttack/attackTest.java | 119 | // Step 1: 上传恶意 SVG(SvgSecurityFilter 修复不移除白名单,上传仍允许) | COMMENT |
| LOW⚡ | …test/java/org/jeecg/modules/zeroAttack/attackTest.java | 123 | // Step 2: 通过直连静态资源路径访问(漏洞路径) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | check_jeecgenv.py | 1 | CODE | |
| LOW | check_jeecgenv.py | 4 | CODE | |
| LOW | check_jeecgenv.py | 5 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | jeecgboot-vue3/src/router/helper/menuHelper.ts | 45 | // This allows you to leverage the component nesting without having to use a nested URL. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …cg-boot-module/jeecg-boot-module-airag/doc/RAG/main.py | 112 | def handle_request(self, request: Dict[str, Any]) -> Dict[str, Any]: | CODE |