zhangjq
2026-01-27 6f51f667ae7b13dca029045c221d0b1722cf98df
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
/**
 入驻小区
 **/
(function (vc) {
    var DEFAULT_PAGE = 1;
    var DEFAULT_ROWS = 10;
    vc.extends({
        data: {
            assetImportLogInfo: {
                logs: [],
                total: 0,
                records: 1,
                moreCondition: false,
                carNum: ''
            }
        },
        _initMethod: function () {
            // 标记组件未销毁
            this._isDestroyed = false;
            console.log('导入日志列表页面初始化,开始加载数据');
            // 直接调用数据加载方法,不等待mounted
            this._listAssetImportLogs(DEFAULT_PAGE, DEFAULT_ROWS);
        },
        _initEvent: function () {
            var $this = this;
            
            // 监听全局的assetImportLog事件
            vc.on('assetImportLog', 'listAssetImportLog', function (_param) {
                // 检查组件是否已销毁
                if (!$this._isDestroyed) {
                    $this._listAssetImportLogs(DEFAULT_PAGE, DEFAULT_ROWS);
                }
            });
            
            // 监听分页事件
            vc.on('pagination', 'page_event', function (_currentPage) {
                // 检查组件是否已销毁
                if (!$this._isDestroyed) {
                    $this._listAssetImportLogs(_currentPage, DEFAULT_ROWS);
                }
            });
        },
        _destroyedMethod: function () {
            console.log('导入日志列表页面已销毁,清理资源');
            // 标记组件已销毁,用于异步回调中检查
            this._isDestroyed = true;
        },
        methods: {
            _listAssetImportLogs: function (_page, _rows) {
                console.log('调用_listAssetImportLogs方法,页码:', _page, '行数:', _rows);
                var $this = this;
                
                try {
                    // 确保communityId正确获取
                    var currentCommunity = vc.getCurrentCommunity();
                    console.log('获取到的currentCommunity:', currentCommunity);
                    
                    var communityId = currentCommunity ? currentCommunity.communityId : '';
                    console.log('获取到的communityId:', communityId);
                    
                    if (!communityId) {
                        console.error('无法获取communityId');
                        return;
                    }
                    
                    var param = {
                        params: {
                            page: _page,
                            row: _rows,
                            communityId: communityId
                        }
                    };
                    
                    console.log('发送请求的参数:', param);
                    
                    //发送get请求
                    vc.http.apiGet('/assetImportLog/queryAssetImportLog',
                        param,
                        function (json, res) {
                            console.log('收到请求响应:', json, res);
                            
                            try {
                                // 检查组件是否已销毁
                                if ($this._isDestroyed) {
                                    console.log('组件已销毁,跳过数据处理');
                                    return;
                                }
                                
                                let _assetImportLogInfo = JSON.parse(json);
                                console.log('解析后的数据:', _assetImportLogInfo);
                                
                                // 验证数据格式,确保所有必要字段存在
                                if (_assetImportLogInfo && _assetImportLogInfo.code == 0) {
                                    // 为组件数据添加默认值,防止出现undefined错误
                                    $this.assetImportLogInfo.total = _assetImportLogInfo.total || 0;
                                    $this.assetImportLogInfo.records = _assetImportLogInfo.records || 0;
                                    $this.assetImportLogInfo.logs = _assetImportLogInfo.data || [];
                                    
                                    console.log('设置组件数据:', $this.assetImportLogInfo);
                                    
                                    // 初始化分页组件
                                    vc.emit('pagination', 'init', {
                                        total: $this.assetImportLogInfo.records,
                                        dataCount: $this.assetImportLogInfo.total,
                                        currentPage: _page
                                    });
                                } else {
                                    // 数据格式不符合预期,显示友好错误信息
                                    console.warn('导入日志数据格式不符合预期:', _assetImportLogInfo);
                                    vc.toast('查询导入日志失败: ' + (_assetImportLogInfo.msg || '未知错误'));
                                    // 重置数据,避免显示旧数据
                                    $this.assetImportLogInfo.total = 0;
                                    $this.assetImportLogInfo.records = 0;
                                    $this.assetImportLogInfo.logs = [];
                                    
                                    // 重置分页组件
                                    vc.emit('pagination', 'init', {
                                        total: 0,
                                        dataCount: 0,
                                        currentPage: _page
                                    });
                                }
                            } catch (e) {
                                // 解析失败,显示友好错误信息
                                console.error('解析导入日志失败:', e, json);
                                vc.toast('解析导入日志失败: ' + e.message);
                                // 重置数据,避免显示旧数据
                                $this.assetImportLogInfo.total = 0;
                                $this.assetImportLogInfo.records = 0;
                                $this.assetImportLogInfo.logs = [];
                                
                                // 重置分页组件
                                vc.emit('pagination', 'init', {
                                    total: 0,
                                    dataCount: 0,
                                    currentPage: _page
                                });
                            }
                        },
                        function (errInfo, error) {
                            // 检查组件是否已销毁
                            if ($this._isDestroyed) {
                                console.log('组件已销毁,跳过错误处理');
                                return;
                            }
                            
                            // 详细记录错误信息,便于调试
                            console.error('请求导入日志失败:', errInfo, error);
                            
                            // 显示友好的错误信息
                            let errorMsg = '查询导入日志失败: ';
                            if (errInfo && errInfo.includes('Read timed out')) {
                                errorMsg += '请求超时,请稍后重试';
                            } else if (errInfo && errInfo.includes('I/O error')) {
                                errorMsg += '网络异常,请检查网络连接';
                            } else {
                                errorMsg += (errInfo || '未知错误');
                            }
                            
                            vc.toast(errorMsg);
                            // 重置数据,避免显示旧数据
                            $this.assetImportLogInfo.total = 0;
                            $this.assetImportLogInfo.records = 0;
                            $this.assetImportLogInfo.logs = [];
                            
                            // 重置分页组件
                            vc.emit('pagination', 'init', {
                                total: 0,
                                dataCount: 0,
                                currentPage: _page
                            });
                        }
                    );
                } catch (e) {
                    console.error('调用_listAssetImportLogs方法失败:', e);
                }
            },
            _queryData: function () {
                this._listAssetImportLogs(DEFAULT_PAGE, DEFAULT_ROWS);
            },
            _openDetail: function (_log) {
                vc.jumpToPage('/#/pages/property/assetImportLogDetail?logId=' + _log.logId + "&logType=" + _log.logType);
            }
        }
    });
})(window.vc);