diff --git a/code/g3soft-erp/server/src/main/resources/logback-spring.xml b/code/g3soft-erp/server/src/main/resources/logback-spring.xml index a54b8056..208c9875 100644 --- a/code/g3soft-erp/server/src/main/resources/logback-spring.xml +++ b/code/g3soft-erp/server/src/main/resources/logback-spring.xml @@ -17,9 +17,13 @@ + 若写成 %-40.40logger 会在它后面补 34 个空格,出现一大段无意义空白 + %logger{60}:60 足以完整显示当前全部 logger 全名(最长约 58); + 写小了会逐级缩写包名(如 {39} 会把 WorkflowExpirySweepService 压成 c.g.e.s.w.…), + 短名字如 cn.g3soft.erp.ErpApiApplication 不超阈值则原样输出, + 因此同一日志里会出现“缩写/全名”混排 --> + value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p){} %clr([%X{traceId:-}]){magenta} %clr([%X{orgId:-}/%X{userId:-}]){green} %clr(%X{method:-} %X{uri:-}){faint} %clr(%logger{60}){cyan}%clr(:){faint} %m%n%wEx"/> diff --git a/code/g3soft-erp/web/.bc-bg.png b/code/g3soft-erp/web/.bc-bg.png deleted file mode 100644 index 30329dd2..00000000 Binary files a/code/g3soft-erp/web/.bc-bg.png and /dev/null differ diff --git a/code/g3soft-erp/web/.bc-normal.png b/code/g3soft-erp/web/.bc-normal.png deleted file mode 100644 index 4109fc46..00000000 Binary files a/code/g3soft-erp/web/.bc-normal.png and /dev/null differ diff --git a/code/g3soft-erp/web/.bc.png b/code/g3soft-erp/web/.bc.png deleted file mode 100644 index e5d8a681..00000000 Binary files a/code/g3soft-erp/web/.bc.png and /dev/null differ diff --git a/code/g3soft-erp/web/.bc2.png b/code/g3soft-erp/web/.bc2.png deleted file mode 100644 index c462225d..00000000 Binary files a/code/g3soft-erp/web/.bc2.png and /dev/null differ diff --git a/code/g3soft-erp/web/.h-bg.png b/code/g3soft-erp/web/.h-bg.png deleted file mode 100644 index e7e3d234..00000000 Binary files a/code/g3soft-erp/web/.h-bg.png and /dev/null differ diff --git a/code/g3soft-erp/web/.h-normal.png b/code/g3soft-erp/web/.h-normal.png deleted file mode 100644 index 38aeec93..00000000 Binary files a/code/g3soft-erp/web/.h-normal.png and /dev/null differ diff --git a/code/g3soft-erp/web/src/layouts/SidebarMenuItem.vue b/code/g3soft-erp/web/src/layouts/SidebarMenuItem.vue index 079b1e54..32be930b 100644 --- a/code/g3soft-erp/web/src/layouts/SidebarMenuItem.vue +++ b/code/g3soft-erp/web/src/layouts/SidebarMenuItem.vue @@ -187,7 +187,10 @@ function onExpandLeave(el: Element): void { - + - {{ item.title }} + {{ item.title }} diff --git a/code/g3soft-erp/web/src/views/auth/Login.vue b/code/g3soft-erp/web/src/views/auth/Login.vue index 09d275c6..926f68cb 100644 --- a/code/g3soft-erp/web/src/views/auth/Login.vue +++ b/code/g3soft-erp/web/src/views/auth/Login.vue @@ -367,12 +367,13 @@ async function onSubmit(): Promise { + 占位文案不写「选填」:与机构码 / 账号保持一致,避免暗示密码可随手填。 + 注意密码【确实】不做前端必填校验(见 formRules 注释), + 所以这里只是文案统一,并未改变「空密码也能提交」的行为。 --> diff --git a/code/g3soft-erp/web/src/views/module/module-management/ModuleAutoCodePanel.vue b/code/g3soft-erp/web/src/views/module/module-management/ModuleAutoCodePanel.vue new file mode 100644 index 00000000..b785791d --- /dev/null +++ b/code/g3soft-erp/web/src/views/module/module-management/ModuleAutoCodePanel.vue @@ -0,0 +1,342 @@ + + + + + diff --git a/code/g3soft-erp/web/src/views/module/module-management/ModuleFieldsPanel.vue b/code/g3soft-erp/web/src/views/module/module-management/ModuleFieldsPanel.vue index df0df0fc..46628672 100644 --- a/code/g3soft-erp/web/src/views/module/module-management/ModuleFieldsPanel.vue +++ b/code/g3soft-erp/web/src/views/module/module-management/ModuleFieldsPanel.vue @@ -7,23 +7,20 @@ * 工具)与「同步字段」(describeApi + 合并计划 + 失效节点回收)随后续步骤接入, * 本步只做表格与列编辑。 * + * 「同步字段」按钮上提到了页面级的面板头(右下内容卡的右上操作区),与其它面板的动作 + * 放同一处,所以本面板不再自带工具条;真正的同步链路落地时由面板通过事件 / ref 提供动作。 + * * 列说明:字段名只读(b_field 即数据库列名,同步时对齐);字段名称 / 业务类型 / 启用 * 可编辑(启用列的编辑器写 1/0,与 b_canuse 口径一致);多语言键为只读展示 * (field.{模块编码}.{字段名} 的派生键物化随保存编排,不在加载时动草稿)。 */ -import { computed, ref } from 'vue' -import { RefreshCw } from '@lucide/vue' -import { G3Button, G3Message, G3Table } from '@g3soft/ui' +import { ref } from 'vue' +import { G3Table } from '@g3soft/ui' import type { G3TableColumn, TableRow } from '@g3soft/ui' -import type { ModuleFieldRow, ModuleNode } from './utils' +import type { ModuleFieldRow } from './utils' const fieldsModel = defineModel('fields', { default: () => [] }) -const props = defineProps<{ - /** 模块主表行(只读):「同步字段」按 b_view_table 是否存在决定可用性 */ - module?: ModuleNode | null -}>() - /** 业务类型候选(v2 的 s_field 只存业务元数据,不存物理结构) */ const FIELD_TYPES = [ { label: '输入框', value: 'input' }, @@ -58,25 +55,10 @@ const columns = ref[]>([ /** 当前高亮行(点行高亮,与原型口径一致) */ const activeKey = ref(null) - -/** 同步按钮只在配置了查询表/视图时出现(没有同步源) */ -const syncVisible = computed(() => Boolean(props.module?.b_view_table)) - -/** 同步字段:按数据库查询表/视图结构对齐字段定义(随后续步骤移植) */ -function onSync() { - G3Message.info('字段同步随后续步骤移植') -}