zhangjiaqing
2026-03-18 98a06f19fa5fdc4c6da17292e362819b3c5a75ff
费用明细表修复详情修复编辑页面
3个文件已修改
124 ■■■■ 已修改文件
public/pages/property/costDetail/costDetail.js 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/pages/property/costDetail/detail/detail.js 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/pages/property/costDetail/edit/edit.js 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/pages/property/costDetail/costDetail.js
@@ -83,7 +83,7 @@
                }
                
                // 如果还是没有小区列表,通过API获取
                if (!communityInfos || communityInfos.length <= 3) {
                if (!communityInfos || !Array.isArray(communityInfos) || communityInfos.length <= 3) {
                    console.log('小区列表不完整,通过API获取');
                    let param = {
                        params: {
@@ -638,12 +638,18 @@
                vc.jumpToPage('/#/pages/property/costDetail/add');
            },
            _viewCostDetail: function (_item) {
                // 存储当前记录到localStorage
                localStorage.setItem('costDetailCurrentItem', JSON.stringify(_item._originalData));
                vc.jumpToPage('/#/pages/property/costDetail/detail?costDetailId=' + _item.costDetailId);
            },
            _viewMore: function (_item) {
                // 存储当前记录到localStorage
                localStorage.setItem('costDetailCurrentItem', JSON.stringify(_item._originalData));
                vc.jumpToPage('/#/pages/property/costDetail/more?costDetailId=' + _item.costDetailId);
            },
            _editCostDetail: function (_item) {
                // 存储当前记录到localStorage
                localStorage.setItem('costDetailCurrentItem', JSON.stringify(_item._originalData));
                vc.jumpToPage('/#/pages/property/costDetail/edit?costDetailId=' + _item.costDetailId);
            },
            _deleteCostDetail: function (_item) {
public/pages/property/costDetail/detail/detail.js
@@ -31,6 +31,21 @@
            var costDetailId = vc.getParam('costDetailId');
            if (costDetailId) {
                $that.costDetailInfo.costDetailId = costDetailId;
                // 尝试从localStorage获取数据
                try {
                    var storedItem = localStorage.getItem('costDetailCurrentItem');
                    if (storedItem) {
                        var item = JSON.parse(storedItem);
                        console.log('从localStorage获取到数据:', item);
                        $that._fillDetailData(item);
                        return; // 直接使用本地存储的数据,不再请求API
                    }
                } catch (e) {
                    console.error('读取localStorage失败:', e);
                }
                // 如果localStorage中没有数据,再通过API请求
                $that._loadCostDetail();
            } else {
                vc.toast('缺少费用明细ID');
@@ -44,7 +59,7 @@
        methods: {
            _loadCostDetail: function () {
                var params = {
                    communityName: vc.getCurrentCommunity().name,
                    id: $that.costDetailInfo.costDetailId,
                    page: 1,
                    row: 1000
                };
@@ -63,18 +78,31 @@
                            console.log('API返回数据:', _json);
                            if (_json.code === 0 && _json.data) {
                                var records = Array.isArray(_json.data) ? _json.data : [];
                                console.log('查询到记录数:', records.length);
                                var foundItem = null;
                                var targetId = String($that.costDetailInfo.costDetailId);
                                for (var i = 0; i < records.length; i++) {
                                    var recordId = String(records[i].id);
                                    console.log('比较ID: 目标=' + targetId + ', 记录=' + recordId);
                                    if (recordId === targetId || records[i].id == $that.costDetailInfo.costDetailId) {
                                        foundItem = records[i];
                                // 检查返回的是单个对象还是数组
                                if (Array.isArray(_json.data)) {
                                    var records = _json.data;
                                    console.log('查询到记录数:', records.length);
                                    for (var i = 0; i < records.length; i++) {
                                        var recordId = String(records[i].id);
                                        console.log('比较ID: 目标=' + targetId + ', 记录=' + recordId);
                                        if (recordId === targetId || records[i].id == $that.costDetailInfo.costDetailId) {
                                            foundItem = records[i];
                                            console.log('找到匹配记录:', foundItem);
                                            break;
                                        }
                                    }
                                } else {
                                    // 后端直接返回单个对象
                                    var singleItem = _json.data;
                                    console.log('后端返回单个对象:', singleItem);
                                    var recordId = String(singleItem.id);
                                    if (recordId === targetId || singleItem.id == $that.costDetailInfo.costDetailId) {
                                        foundItem = singleItem;
                                        console.log('找到匹配记录:', foundItem);
                                        break;
                                    }
                                }
@@ -84,16 +112,14 @@
                                } else {
                                    console.error('未找到匹配的记录,目标ID:', $that.costDetailInfo.costDetailId);
                                    vc.toast('未找到该费用明细,ID: ' + $that.costDetailInfo.costDetailId);
                                    setTimeout(function () {
                                        vc.goBack();
                                    }, 1500);
                                    // 不直接返回上一页,而是显示错误信息并提供返回按钮
                                    // 这样用户可以清楚地看到错误原因,而不是被强制退出
                                }
                            } else {
                                console.error('API返回错误:', _json);
                                vc.toast(_json.msg || '未找到该费用明细');
                                setTimeout(function () {
                                    vc.goBack();
                                }, 1500);
                                // 不直接返回上一页,而是显示错误信息并提供返回按钮
                                // 这样用户可以清楚地看到错误原因,而不是被强制退出
                            }
                        } catch (e) {
                            console.error('数据解析失败:', e);
public/pages/property/costDetail/edit/edit.js
@@ -175,6 +175,21 @@
            var costDetailId = vc.getParam('costDetailId');
            if (costDetailId) {
                $that.costDetailInfo.costDetailId = costDetailId;
                // 尝试从localStorage获取数据
                try {
                    var storedItem = localStorage.getItem('costDetailCurrentItem');
                    if (storedItem) {
                        var item = JSON.parse(storedItem);
                        console.log('从localStorage获取到数据:', item);
                        $that._fillFormData(item);
                        return; // 直接使用本地存储的数据,不再请求API
                    }
                } catch (e) {
                    console.error('读取localStorage失败:', e);
                }
                // 如果localStorage中没有数据,再通过API请求
                $that._loadCostDetail();
            } else {
                vc.toast('缺少费用明细ID');
@@ -228,7 +243,7 @@
            },
            _loadCostDetail: function () {
                var params = {
                    communityName: vc.getCurrentCommunity().name,
                    id: $that.costDetailInfo.costDetailId,
                    page: 1,
                    row: 1000
                };
@@ -247,18 +262,31 @@
                            console.log('API返回数据:', _json);
                            if (_json.code === 0 && _json.data) {
                                var records = Array.isArray(_json.data) ? _json.data : [];
                                console.log('查询到记录数:', records.length);
                                var foundItem = null;
                                var targetId = String($that.costDetailInfo.costDetailId);
                                for (var i = 0; i < records.length; i++) {
                                    var recordId = String(records[i].id);
                                    console.log('比较ID: 目标=' + targetId + ', 记录=' + recordId);
                                    if (recordId === targetId || records[i].id == $that.costDetailInfo.costDetailId) {
                                        foundItem = records[i];
                                // 检查返回的是单个对象还是数组
                                if (Array.isArray(_json.data)) {
                                    var records = _json.data;
                                    console.log('查询到记录数:', records.length);
                                    for (var i = 0; i < records.length; i++) {
                                        var recordId = String(records[i].id);
                                        console.log('比较ID: 目标=' + targetId + ', 记录=' + recordId);
                                        if (recordId === targetId || records[i].id == $that.costDetailInfo.costDetailId) {
                                            foundItem = records[i];
                                            console.log('找到匹配记录:', foundItem);
                                            break;
                                        }
                                    }
                                } else {
                                    // 后端直接返回单个对象
                                    var singleItem = _json.data;
                                    console.log('后端返回单个对象:', singleItem);
                                    var recordId = String(singleItem.id);
                                    if (recordId === targetId || singleItem.id == $that.costDetailInfo.costDetailId) {
                                        foundItem = singleItem;
                                        console.log('找到匹配记录:', foundItem);
                                        break;
                                    }
                                }
@@ -268,16 +296,12 @@
                                } else {
                                    console.error('未找到匹配的记录,目标ID:', $that.costDetailInfo.costDetailId);
                                    vc.toast('未找到该费用明细,ID: ' + $that.costDetailInfo.costDetailId);
                                    setTimeout(function () {
                                        vc.goBack();
                                    }, 1500);
                                    // 不直接返回上一页,而是显示错误信息并提供返回按钮
                                }
                            } else {
                                console.error('API返回错误:', _json);
                                vc.toast('未找到该费用明细');
                                setTimeout(function () {
                                    vc.goBack();
                                }, 1500);
                                vc.toast(_json.msg || '未找到该费用明细');
                                // 不直接返回上一页,而是显示错误信息并提供返回按钮
                            }
                        } catch (e) {
                            console.error('数据解析失败:', e);