20260511214503
This commit is contained in:
1 parent
364d29dbaa
commit
e98740192d
9 files changed
+2451
-875
No files matched your search
@@ -0,0 +1,162 @@
|
||||
# Feegrid 模块重构计划
|
||||
|
||||
## 1. 修改内容
|
||||
|
||||
### 1.1 JS 文件修改
|
||||
|
||||
| 修改项 | 原内容 | 新内容 | 说明 |
|
||||
|--------|--------|--------|------|
|
||||
| 函数名 | `createFeegridManager` | `createDataGridManager` | 更通用 |
|
||||
| callbacks 配置 | `callbacks: { onLoadSuccess, onAfterEdit, onSelectionChange }` | 直接展开 `onLoadSuccess, onAfterEdit, onSelectionChange` | 简化配置 |
|
||||
| pagerId 配置 | `pagerId: 'subgridPager'` | 移除 | 自动创建,无需配置 |
|
||||
| 全部选中/反选 | JSP 中有 wrapper 函数 | JS 中自动管理按钮文字 | 进一步解耦 |
|
||||
|
||||
### 1.2 JSP 文件修改
|
||||
|
||||
| 修改项 | 说明 |
|
||||
|--------|------|
|
||||
| 删除 `subgridPager` div | 由 JS 自动创建 |
|
||||
| 简化 `toggleSelectAll` 函数 | 直接调用 JS 方法 |
|
||||
| 变量名可保持或改为更通用的名字 | 可选 |
|
||||
|
||||
---
|
||||
|
||||
## 2. 重构后的 API
|
||||
|
||||
```js
|
||||
// 之前
|
||||
var feeGrid = createFeegridManager({
|
||||
gridId: 'feegrid',
|
||||
pagerId: 'subgridPager',
|
||||
keyField: 'subid',
|
||||
pageSize: 50,
|
||||
viewName: subviewtable,
|
||||
callbacks: {
|
||||
onLoadSuccess: function(rows) { calcw_selfee(); },
|
||||
onAfterEdit: function(rowIndex, row, changes) { calcw_fee(); },
|
||||
onSelectionChange: function() { calcw_selfee(); }
|
||||
}
|
||||
});
|
||||
|
||||
// 之后
|
||||
var gridManager = createDataGridManager({
|
||||
gridId: 'feegrid',
|
||||
keyField: 'subid',
|
||||
pageSize: 50,
|
||||
viewName: subviewtable,
|
||||
searchUrl: 'jsp/searchdatapagenew.jsp',
|
||||
orderField: 'father ASC, mx_xh ASC, b_id ASC',
|
||||
onLoadSuccess: function(rows) { calcw_selfee(); },
|
||||
onAfterEdit: function(rowIndex, row, changes) { calcw_fee(); },
|
||||
onSelectionChange: function() { calcw_selfee(); }
|
||||
});
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. JSP 中需要修改的部分
|
||||
|
||||
### 3.1 删除的分页器 HTML(自动创建)
|
||||
```html
|
||||
<!-- 删除这行 -->
|
||||
<div id="subgridPager" class="easyui-pagination" style="margin: 6px 0px;background:#efefef;border:1px solid #ccc;"></div>
|
||||
```
|
||||
|
||||
### 3.2 简化的 `toggleSelectAll` 函数
|
||||
```js
|
||||
// 之前:复杂的判断逻辑
|
||||
function toggleSelectAll() {
|
||||
if (feeGridManager.getDraftManager().isAllChecked()) {
|
||||
feeGridManager.toggleSelectAll();
|
||||
$('#btn_select_all').val('全部选中');
|
||||
} else {
|
||||
feeGridManager.toggleSelectAll();
|
||||
$('#btn_select_all').val('全部反选');
|
||||
}
|
||||
}
|
||||
|
||||
// 之后:直接调用
|
||||
function toggleSelectAll() {
|
||||
gridManager.toggleSelectAll();
|
||||
}
|
||||
```
|
||||
|
||||
### 3.3 更新的初始化代码
|
||||
```js
|
||||
// 之前
|
||||
feeGridManager = createFeegridManager({
|
||||
gridId: 'feegrid',
|
||||
pagerId: 'subgridPager',
|
||||
keyField: 'subid',
|
||||
pageSize: 50,
|
||||
viewName: subviewtable,
|
||||
callbacks: {
|
||||
onLoadSuccess: function(rows) { calcw_selfee(); },
|
||||
onAfterEdit: function(rowIndex, row, changes) { calcw_fee(); },
|
||||
onSelectionChange: function() { calcw_selfee(); }
|
||||
}
|
||||
});
|
||||
|
||||
// 之后
|
||||
gridManager = createDataGridManager({
|
||||
gridId: 'feegrid',
|
||||
keyField: 'subid',
|
||||
pageSize: 50,
|
||||
viewName: subviewtable,
|
||||
orderField: 'father ASC, mx_xh ASC, b_id ASC',
|
||||
onLoadSuccess: function(rows) { calcw_selfee(); },
|
||||
onAfterEdit: function(rowIndex, row, changes) { calcw_fee(); },
|
||||
onSelectionChange: function() { calcw_selfee(); }
|
||||
});
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 检查 JSP 中未使用的代码
|
||||
|
||||
| 函数/变量 | 状态 | 说明 |
|
||||
|-----------|------|------|
|
||||
| `subdata_zdfees` | 未使用 | 可以删除 |
|
||||
| `feegridjson` | 未使用 | 可以删除 |
|
||||
| `loaddata_subdata_zdfees` | 未使用 | 可以删除 |
|
||||
| `loaddata_detail` | 部分使用 | 在 `newSKData`/`newIVData` 的 onClose 中调用 |
|
||||
| `removeit_all` | 注释掉 | 已废弃 |
|
||||
| `getSelections` | 未使用 | 可以删除 |
|
||||
|
||||
---
|
||||
|
||||
## 5. searchCondition 功能
|
||||
|
||||
代码中已有 `searchCondition` 配置项和 `setSearchCondition` 方法,JSP 中通过 `setMasterId` 设置主表ID后,会自动生成 `mx_zdorderid='xxx'` 的查询条件。
|
||||
|
||||
如需自定义查询条件,可使用:
|
||||
```js
|
||||
gridManager.setSearchCondition("mx_dw_id='xxx'");
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. 实施步骤
|
||||
|
||||
1. 修改 `feegrid-manager.js`:
|
||||
- 重命名函数为 `createDataGridManager`
|
||||
- 移除 `callbacks` 包装,直接展开回调配置
|
||||
- 移除 `pagerId` 配置
|
||||
- 完善 `toggleSelectAll` 自动管理按钮文字
|
||||
- 更新默认值配置
|
||||
|
||||
2. 修改 `editorder_s_cw.jsp`:
|
||||
- 删除 `subgridPager` div
|
||||
- 简化 `toggleSelectAll` 函数
|
||||
- 更新初始化代码
|
||||
- 删除未使用的变量和函数
|
||||
- 变量名改为更通用的 `gridManager`
|
||||
|
||||
---
|
||||
|
||||
## 7. 预期结果
|
||||
|
||||
- **API 简化**:从 `createFeegridManager({ callbacks: {...} })` 变为 `createDataGridManager({ onLoadSuccess, onAfterEdit, onSelectionChange })`
|
||||
- **配置减少**:移除 `pagerId`,无需在 HTML 中定义分页器
|
||||
- **代码清理**:删除未使用的函数和变量
|
||||
- **更好的复用性**:通用名称可在其他页面直接使用
|
||||
Reference in new issue
Block a user