瀏覽代碼

feat(s0): align cost-center list/form fields with legacy layout

成本中心页字段对齐旧系统显示:列表列改为 序号# / 成本中心 / 成本中心描述 / 责任人 / 开始生效日期;
责任人=Ufld1(实测样本 Ufld1 值与旧系统责任人列一致,如 8010704090→国内市场部-运营管理),
故 自定义字段1→责任人;说明→成本中心描述;生效时间→开始生效日期(日期粒度,list/表单均按日显示)。
表单标签同步;开始生效日期改 date 选择器(日期回显 slice 到日,保存 YYYY-MM-DD,后端 datetime 存 00:00:00 无损)。
纯前端文案/展示,不改后端/表结构/存储。

bump version Web 2.4.288
YY968XX 1 周之前
父節點
當前提交
e2a978f762
共有 2 個文件被更改,包括 16 次插入11 次删除
  1. 1 1
      Web/package.json
  2. 15 10
      Web/src/views/aidop/s0/warehouse/CostCenterList.vue

+ 1 - 1
Web/package.json

@@ -1,7 +1,7 @@
 {
 	"name": "admin.net",
 	"type": "module",
-	"version": "2.4.287",
+	"version": "2.4.288",
 	"packageManager": "pnpm@10.32.1",
 	"lastBuildTime": "2026.03.15",
 	"description": "Admin.NET 站在巨人肩膀上的 .NET 通用权限开发框架",

+ 15 - 10
Web/src/views/aidop/s0/warehouse/CostCenterList.vue

@@ -2,7 +2,7 @@
 	<AidopDemoShell :title="pageTitle" subtitle="S0 / 仓储建模 / 成本中心">
 		<el-form :inline="true" :model="query" class="mb12" @submit.prevent>
 			<el-form-item label="关键字">
-				<el-input v-model="query.keyword" placeholder="成本中心编码/说明" clearable style="width: 220px" />
+				<el-input v-model="query.keyword" placeholder="成本中心/描述" clearable style="width: 220px" />
 			</el-form-item>
 			<el-form-item>
 				<el-button type="primary" @click="loadList">查询</el-button>
@@ -12,10 +12,13 @@
 		</el-form>
 
 		<el-table :data="rows" v-loading="loading" border stripe style="width: 100%" max-height="calc(100vh - 260px)">
-			<el-table-column prop="costCtr" label="成本中心编码" width="160" show-overflow-tooltip />
-			<el-table-column prop="descr" label="说明" min-width="200" show-overflow-tooltip />
-			<el-table-column prop="ufld1" label="自定义字段1" width="140" show-overflow-tooltip />
-			<el-table-column prop="effTime" label="生效时间" width="160" show-overflow-tooltip />
+			<el-table-column type="index" label="#" width="60" align="center" />
+			<el-table-column prop="costCtr" label="成本中心" width="160" show-overflow-tooltip />
+			<el-table-column prop="descr" label="成本中心描述" min-width="200" show-overflow-tooltip />
+			<el-table-column prop="ufld1" label="责任人" min-width="160" show-overflow-tooltip />
+			<el-table-column label="开始生效日期" width="150" show-overflow-tooltip>
+				<template #default="{ row }">{{ fmtDate(row.effTime) }}</template>
+			</el-table-column>
 			<el-table-column label="操作" width="160" fixed="right" align="center">
 				<template #default="{ row }">
 					<el-button link type="primary" @click="openEdit(row)">编辑</el-button>
@@ -42,10 +45,10 @@
 						<el-option v-for="item in formFactoryOptions" :key="item.id" :label="item.name || item.code || `${item.id}`" :value="item.id" />
 					</el-select>
 				</el-form-item>
-				<el-form-item label="成本中心编码" prop="costCtr"><el-input v-model="form.costCtr" :disabled="!!editingId" /></el-form-item>
-				<el-form-item label="说明"><el-input v-model="form.descr" /></el-form-item>
-				<el-form-item label="自定义字段1"><el-input v-model="form.ufld1" /></el-form-item>
-				<el-form-item label="生效时间"><el-date-picker v-model="form.effTime" type="datetime" value-format="YYYY-MM-DDTHH:mm:ss" style="width: 100%" /></el-form-item>
+				<el-form-item label="成本中心" prop="costCtr"><el-input v-model="form.costCtr" :disabled="!!editingId" /></el-form-item>
+				<el-form-item label="成本中心描述"><el-input v-model="form.descr" /></el-form-item>
+				<el-form-item label="责任人"><el-input v-model="form.ufld1" /></el-form-item>
+				<el-form-item label="开始生效日期"><el-date-picker v-model="form.effTime" type="date" value-format="YYYY-MM-DD" style="width: 100%" /></el-form-item>
 				<el-form-item v-if="false" label="域编码"><el-input v-model="form.domainCode" /></el-form-item>
 			</el-form>
 			<template #footer>
@@ -66,6 +69,8 @@ import { loadOrgList, type OrgOption } from '../api/s0SalesApi';
 
 const route = useRoute();
 const pageTitle = computed(() => (route.meta?.title as string) || '成本中心');
+// 开始生效日期仅显示/编辑到日(后端 datetime 取日期段)
+function fmtDate(v?: string | null): string { return v ? v.slice(0, 10) : ''; }
 const query = reactive({ keyword: '', domainCode: '', page: 1, pageSize: 20 });
 const loading = ref(false);
 const rows = ref<S0CostCtrRow[]>([]);
@@ -119,7 +124,7 @@ function resetForm() { editingId.value = null; Object.assign(form, { companyRefI
 function openCreate() { resetForm(); dialogTitle.value = '新增成本中心'; dialogVisible.value = true; }
 function openEdit(row: S0CostCtrRow) {
 	resetForm(); editingId.value = row.id; dialogTitle.value = `编辑成本中心 ${row.costCtr}`;
-	Object.assign(form, { companyRefId: row.companyRefId, factoryRefId: row.factoryRefId, domainCode: row.domainCode ?? '', costCtr: row.costCtr, descr: row.descr ?? '', ufld1: row.ufld1 ?? '', effTime: row.effTime ?? null });
+	Object.assign(form, { companyRefId: row.companyRefId, factoryRefId: row.factoryRefId, domainCode: row.domainCode ?? '', costCtr: row.costCtr, descr: row.descr ?? '', ufld1: row.ufld1 ?? '', effTime: row.effTime ? row.effTime.slice(0, 10) : null });
 	dialogVisible.value = true;
 }
 async function submitForm() {