zhangjq
2026-01-30 50f30a5b51a1940185985ba0cb899fdd9527676c
Zjq页面bu,
1个文件已删除
8个文件已修改
533 ■■■■ 已修改文件
public/import/Z二导入房屋模板.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
public/import/~$白单流水 导入新模板.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
public/pages/admin/advertisementSummary/advertisementSummary.html 245 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/pages/admin/advertisementSummary/advertisementSummary.js 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/pages/property/meterWaterManage/meterWaterManage.html 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/pages/property/oldRoomFeeImport/oldRoomFeeImport.html 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/pages/property/phoneMeterManage/phoneMeterManage.html 192 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/pages/property/phoneMeterManage/phoneMeterManage.js 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/pages/property/room/room.js 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/import/Z¶þµ¼Èë·¿ÎÝÄ£°å.xlsx
Binary files differ
public/import/~$°×µ¥Á÷Ë® µ¼ÈëÐÂÄ£°å.xlsx
Binary files differ
public/pages/admin/advertisementSummary/advertisementSummary.html
@@ -1,4 +1,5 @@
<div class="white-bg padding-lg">
    <!-- å¹¿å‘ŠåˆåŒæ±‡æ€»è¡¨åŒºåŸŸ -->
    <div class="margin-top">
        <div class="ibox">
            <div class="ibox-title">
@@ -7,7 +8,7 @@
                </h5>
            </div>
            <div class="ibox-content">
                <!-- æŸ¥è¯¢æ¡ä»¶åŒºåŸŸ -->
                <!-- å¹¿å‘ŠåˆåŒæŸ¥è¯¢æ¡ä»¶åŒºåŸŸ -->
                <div class="row">
                    <div class="col-sm-12">
                        <div class="ibox">
@@ -43,9 +44,8 @@
                                            <select class="form-control" id="contractType" 
                                                    v-model="advertisementSummaryInfo.conditions.contractType">
                                                <option value="">全部</option>
                                                <option v-for="(item, index) in advertisementSummaryInfo.contractTypes" :key="index"
                                                        v-bind:value="item.contractType">
                                                    {{item.contractTypeName}}
                                                <option v-for="(item, index) in advertisementSummaryInfo.contractTypes" :key="index" :value="item.code">
                                                    {{item.name}}
                                                </option>
                                            </select>
                                        </div>
@@ -56,10 +56,10 @@
                                            <select class="form-control" id="state" 
                                                    v-model="advertisementSummaryInfo.conditions.state">
                                                <option value="">全部</option>
                                                <option value="1000">草稿</option>
                                                <option value="2000">生效</option>
                                                <option value="3000">过期</option>
                                                <option value="4000">终止</option>
                                                <option value="10000">全部</option>
                                                <option value="10010">未到期</option>
                                                <option value="10020">已到期</option>
                                                <option value="10030">已终止</option>
                                            </select>
                                        </div>
                                    </div>
@@ -78,13 +78,13 @@
                                            <i class="fa fa-plus"></i>
                                            æ·»åŠ åˆåŒ
                                        </button>
                                        <button type="button" class="btn btn-primary" v-on:click="_openImportContractModal()">
                                            <i class="fa fa-upload"></i>
                                            å¯¼å…¥æ•°æ®
                                        </button>
                                        <button type="button" class="btn btn-primary" v-on:click="_exportContractData()" style="margin-left: 10px;">
                                            <i class="fa fa-download"></i>
                                            å¯¼å‡º
                                            å¯¼å‡ºæ•°æ®
                                        </button>
                                        <button type="button" class="btn btn-primary" v-on:click="_openImportContractModal()" style="margin-left: 10px;">
                                            <i class="fa fa-upload"></i>
                                            å¯¼å…¥æ•°æ®
                                        </button>
                                    </div>
                                </div>
@@ -93,7 +93,7 @@
                    </div>
                </div>
                
                <!-- æ•°æ®è¡¨æ ¼åŒºåŸŸ -->
                <!-- å¹¿å‘ŠåˆåŒæ•°æ®è¡¨æ ¼åŒºåŸŸ -->
                <div class="row">
                    <div class="col-sm-12">
                        <table class="footable table table-stripped toggle-arrow-tiny" data-page-size="15">
@@ -101,20 +101,20 @@
                                <tr>
                                    <th class="text-center">序号</th>
                                    <th class="text-center">物业公司</th>
                                    <th class="text-center">项目名称{物业名称}</th>
                                    <th class="text-center">合同状态{合同情况 åˆåŒåˆ°æœŸ/进行中/终止合同}</th>
                                    <th class="text-center">项目名称</th>
                                    <th class="text-center">合同状态</th>
                                    <th class="text-center">合同开始日期</th>
                                    <th class="text-center">合同结束日期</th>
                                    <th class="text-center">签订时间</th>
                                    <th class="text-center">合同年限</th>
                                    <th class="text-center">合同编号</th>
                                    <th class="text-center">是否存档</th>
                                    <th class="text-center">合同类型(二方/三方)</th>
                                    <th class="text-center">合同类型</th>
                                    <th class="text-center">补充协议有无</th>
                                    <th class="text-center">合同提醒日(提前3个月)</th>
                                    <th class="text-center">签约方{广告公司/签约方}</th>
                                    <th class="text-center">合同提醒日</th>
                                    <th class="text-center">签约方</th>
                                    <th class="text-center">签约方地址</th>
                                    <th class="text-center">签约方联系人{广告公司联系人}</th>
                                    <th class="text-center">签约方联系人</th>
                                    <th class="text-center">联系电话</th>
                                    <th class="text-center">联系邮箱</th>
                                    <th class="text-center">联系微信</th>
@@ -123,124 +123,48 @@
                                </tr>
                            </thead>
                            <tbody>
                                <tr v-for="(contract, index) in advertisementSummaryInfo.contracts" :key="contract.contractId">
                                <tr v-for="(item, index) in advertisementSummaryInfo.contracts" :key="item.id">
                                    <td class="text-center">{{index + 1}}</td>
                                    <td class="text-center">{{contract.propertyCompany || '-'}}</td>
                                    <td class="text-center">{{contract.projectName || '-'}}</td>
                                    <td class="text-center">
                                        <span v-if="contract.state === '1000'" class="label label-info">草稿</span>
                                        <span v-else-if="contract.state === '2000'" class="label label-success">进行中</span>
                                        <span v-else-if="contract.state === '3000'" class="label label-warning">合同到期</span>
                                        <span v-else-if="contract.state === '4000'" class="label label-danger">终止合同</span>
                                        <span v-else class="label label-default">未知</span>
                                    </td>
                                    <td class="text-center">{{contract.startDate || '-'}}</td>
                                    <td class="text-center">{{contract.endDate || '-'}}</td>
                                    <td class="text-center">{{contract.signDate || '-'}}</td>
                                    <td class="text-center">{{contract.contractYears || contract.contractTerm || '-'}}</td>
                                    <td class="text-center">{{contract.contractCode || '-'}}</td>
                                    <td class="text-center">
                                        <span v-if="contract.isArchived === '0'" class="label label-info">未存档</span>
                                        <span v-else-if="contract.isArchived === '1'" class="label label-success">已存档</span>
                                        <span v-else class="label label-default">未知</span>
                                    </td>
                                    <td class="text-center">{{contract.contractType || '-'}}</td>
                                    <td class="text-center">{{contract.hasSupplementalAgreement || '-'}}</td>
                                    <td class="text-center">{{contract.reminderDate || contract.contractReminderDate || '-'}}</td>
                                    <td class="text-center">{{contract.signingParty || '-'}}</td>
                                    <td class="text-center">{{contract.signingPartyAddress || '-'}}</td>
                                    <td class="text-center">{{contract.signingPartyContact || '-'}}</td>
                                    <td class="text-center">{{contract.contactPhone || '-'}}</td>
                                    <td class="text-center">{{contract.contactEmail || '-'}}</td>
                                    <td class="text-center">{{contract.contactWechat || '-'}}</td>
                                    <td class="text-center">{{contract.remark || '-'}}</td>
                                    <td class="text-center">{{item.propertyCompany || '-'}}</td>
                                    <td class="text-center">{{item.projectName || '-'}}</td>
                                    <td class="text-center">{{item.stateName || '-'}}</td>
                                    <td class="text-center">{{item.startDate || '-'}}</td>
                                    <td class="text-center">{{item.endDate || '-'}}</td>
                                    <td class="text-center">{{item.signDate || '-'}}</td>
                                    <td class="text-center">{{item.contractYears || item.contractTerm || '-'}}</td>
                                    <td class="text-center">{{item.contractCode || '-'}}</td>
                                    <td class="text-center">{{item.isArchived || '-'}}</td>
                                    <td class="text-center">{{item.contractType || '-'}}</td>
                                    <td class="text-center">{{item.hasSupplementalAgreement || '-'}}</td>
                                    <td class="text-center">{{item.reminderDate || item.contractReminderDate || '-'}}</td>
                                    <td class="text-center">{{item.signingParty || '-'}}</td>
                                    <td class="text-center">{{item.signingPartyAddress || '-'}}</td>
                                    <td class="text-center">{{item.signingPartyContact || '-'}}</td>
                                    <td class="text-center">{{item.contactPhone || '-'}}</td>
                                    <td class="text-center">{{item.contactEmail || '-'}}</td>
                                    <td class="text-center">{{item.contactWechat || '-'}}</td>
                                    <td class="text-center">{{item.remark || '-'}}</td>
                                    <td class="text-center">
                                        <button type="button" class="btn btn-xs btn-info" 
                                                v-on:click="_openEditContractModel(contract)">编辑</button>
                                                v-on:click="_openEditContractModel(item)">编辑</button>
                                        <button type="button" class="btn btn-xs btn-danger" 
                                                v-on:click="_openDeleteContractModel(contract)">删除</button>
                                                v-on:click="_openDeleteContractModel(item)">删除</button>
                                    </td>
                                </tr>
                                <tr v-if="advertisementSummaryInfo.contracts.length == 0">
                                    <td colspan="22" style="text-align: center; color: #999;">
                                    <td colspan="21" style="text-align: center; color: #999;">
                                        æš‚无数据
                                    </td>
                                </tr>
                            </tbody>
                            <tfoot>
                                <tr>
                                    <td colspan="22">
                                    <td colspan="21">
                                        <ul class="pagination float-right"></ul>
                                    </td>
                                </tr>
                            </tfoot>
                        </table>
                        <!-- åˆ†é¡µåŒºåŸŸ -->
                        <div class="row margin-top-xs">
                            <div class="col-sm-12 float-right">
                                <vc:create path="frame/pagination"></vc:create>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <!-- å¹¿å‘ŠåˆåŒå¯¼å…¥å¼¹çª— -->
    <div class="modal fade" id="importContractModel" tabindex="-1" role="dialog" aria-labelledby="importContractModelLabel" aria-hidden="true">
        <div class="modal-dialog modal-lg" role="document">
            <div class="modal-content">
                <div class="modal-body">
                    <h3 class="m-t-none m-b">
                        å¹¿å‘ŠåˆåŒæ•°æ®å¯¼å…¥
                    </h3>
                    <div class="ibox-content">
                        <div>
                            <div class="form-group row">
                                <label class="col-sm-2 col-form-label">选择文件</label>
                                <div class="col-sm-10">
                                    <div class="input-group">
                                        <input type="text" class="form-control"
                                               :value="advertisementSummaryInfo.importExcelFile==''?'必填,请选择数据文件':advertisementSummaryInfo.importExcelFile.name"
                                               readonly>
                                        <div class="input-group-append">
                                            <button class="btn btn-outline-secondary" type="button"
                                                    onclick="document.getElementById('importExcelFile').click()">
                                                æ–‡ä»¶
                                            </button>
                                        </div>
                                        <input id="importExcelFile" ref="importExcelFile" type="file"
                                               class="form-control d-none" name="importExcelFile"
                                               v-on:change="_getExcelTemplate($event)" accept=".xls,.xlsx">
                                    </div>
                                </div>
                            </div>
                            <div class="form-group row">
                                <label class="col-sm-2 col-form-label">下载模板</label>
                                <div class="col-sm-10">
                                    è¯·å…ˆä¸‹è½½
                                    <a href="javascript:void(0)" @click="_exportContractTemplate()">
                                        å¹¿å‘ŠåˆåŒå¯¼å…¥æ¨¡æ¿
                                    </a>
                                    å‡†å¤‡æ•°æ®åŽï¼Œä¸Šä¼ å¯¼å…¥
                                    <div class="mt-2 text-muted">
                                        <small>
                                            æç¤ºï¼šæ¨¡æ¿åŒ…含 "广告合同汇总表" sheet,请在对应sheet中填写数据
                                        </small>
                                    </div>
                                </div>
                            </div>
                            <div class="ibox-content">
                                <button class="btn btn-primary float-right" type="button" v-on:click="_importContractData()">
                                    <i class="fa fa-check"></i>&nbsp;导入
                                </button>
                                <button type="button" class="btn btn-warning float-right" style="margin-right:20px;" data-dismiss="modal">
                                    <i class="fa fa-close"></i>&nbsp;取消
                                </button>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
@@ -327,10 +251,6 @@
                                            <i class="fa fa-plus"></i>
                                            æ·»åŠ å¹¿å‘ŠåˆåŒä¿¡æ¯
                                        </button>
                                        <button type="button" class="btn btn-primary" v-on:click="_queryAdContractInfoStatistics()" style="margin-left: 10px;">
                                            <i class="fa fa-bar-chart"></i>
                                            ç»Ÿè®¡
                                        </button>
                                    </div>
                                </div>
                            </div>
@@ -381,17 +301,7 @@
                            <tfoot>
                                <tr>
                                    <td colspan="9">
                                        <ul class="pagination float-right">
                                            <li class="page-item" :class="{disabled: adContractInfo.page <= 1}">
                                                <a class="page-link" @click="_changeAdContractPage(adContractInfo.page - 1)">上一页</a>
                                            </li>
                                            <li class="page-item active">
                                                <a class="page-link">{{adContractInfo.page}}</a>
                                            </li>
                                            <li class="page-item" :class="{disabled: adContractInfo.page >= Math.ceil(adContractInfo.total / adContractInfo.row)}">
                                                <a class="page-link" @click="_changeAdContractPage(adContractInfo.page + 1)">下一页</a>
                                            </li>
                                        </ul>
                                        <ul class="pagination float-right"></ul>
                                    </td>
                                </tr>
                            </tfoot>
@@ -493,51 +403,56 @@
        </div>
    </div>
    
    <!-- å¹¿å‘ŠåˆåŒä¿¡æ¯ç»Ÿè®¡å¼¹çª— -->
    <div class="modal fade" id="adContractInfoStatisticsModal" tabindex="-1" role="dialog" aria-labelledby="adContractInfoStatisticsModalLabel" aria-hidden="true">
        <div class="modal-dialog" role="document">
    <!-- å¹¿å‘ŠåˆåŒå¯¼å…¥å¼¹çª— -->
    <div class="modal fade" id="importContractModel" tabindex="-1" role="dialog" aria-labelledby="importContractModelLabel" aria-hidden="true">
        <div class="modal-dialog modal-lg" role="document">
            <div class="modal-content">
                <div class="modal-body">
                    <h3 class="m-t-none m-b">
                        å¹¿å‘ŠåˆåŒä¿¡æ¯ç»Ÿè®¡
                        å¹¿å‘ŠåˆåŒæ•°æ®å¯¼å…¥
                    </h3>
                    <div class="ibox-content">
                        <div>
                            <div class="form-group row">
                                <label class="col-sm-2 col-form-label">总记录数</label>
                                <label class="col-sm-2 col-form-label">选择文件</label>
                                <div class="col-sm-10">
                                    <input type="text" class="form-control"
                                           :value="adContractInfo.statistics.totalCount"
                                           readonly>
                                </div>
                            </div>
                            <div class="form-group row">
                                <label class="col-sm-2 col-form-label">广告类型统计</label>
                                <div class="col-sm-10">
                                    <div v-for="(count, type) in adContractInfo.statistics.adTypeCount" :key="type" class="mb-2">
                                        <label>{{type}}: </label>
                                        <span>{{count}}条</span>
                                    </div>
                                    <div v-if="Object.keys(adContractInfo.statistics.adTypeCount).length === 0" class="text-muted">
                                        æš‚无数据
                                    <div class="input-group">
                                        <input type="text" class="form-control"
                                               :value="advertisementSummaryInfo.importExcelFile==''?'必填,请选择数据文件':advertisementSummaryInfo.importExcelFile.name"
                                               readonly>
                                        <div class="input-group-append">
                                            <button class="btn btn-outline-secondary" type="button"
                                                    onclick="document.getElementById('importExcelFile').click()">
                                                æ–‡ä»¶
                                            </button>
                                        </div>
                                        <input id="importExcelFile" ref="importExcelFile" type="file"
                                               class="form-control d-none" name="importExcelFile"
                                               v-on:change="_getExcelTemplate($event)" accept=".xls,.xlsx">
                                    </div>
                                </div>
                            </div>
                            <div class="form-group row">
                                <label class="col-sm-2 col-form-label">广告子类型统计</label>
                                <label class="col-sm-2 col-form-label">下载模板</label>
                                <div class="col-sm-10">
                                    <div v-for="(count, type) in adContractInfo.statistics.subTypeCount" :key="type" class="mb-2">
                                        <label>{{type}}: </label>
                                        <span>{{count}}条</span>
                                    </div>
                                    <div v-if="Object.keys(adContractInfo.statistics.subTypeCount).length === 0" class="text-muted">
                                        æš‚无数据
                                    è¯·å…ˆä¸‹è½½
                                    <a href="javascript:void(0)" @click="_exportContractTemplate()">
                                        å¹¿å‘ŠåˆåŒå¯¼å…¥æ¨¡æ¿
                                    </a>
                                    å‡†å¤‡æ•°æ®åŽï¼Œä¸Šä¼ å¯¼å…¥
                                    <div class="mt-2 text-muted">
                                        <small>
                                            æç¤ºï¼šæ¨¡æ¿åŒ…含 "广告合同汇总表" sheet,请在对应sheet中填写数据
                                        </small>
                                    </div>
                                </div>
                            </div>
                            <div class="ibox-content">
                                <button type="button" class="btn btn-primary float-right" data-dismiss="modal">
                                    <i class="fa fa-close"></i>&nbsp;关闭
                                <button class="btn btn-primary float-right" type="button" v-on:click="_importContractData()">
                                    <i class="fa fa-check"></i>&nbsp;导入
                                </button>
                                <button type="button" class="btn btn-warning float-right" style="margin-right:20px;" data-dismiss="modal">
                                    <i class="fa fa-close"></i>&nbsp;取消
                                </button>
                            </div>
                        </div>
@@ -546,4 +461,8 @@
            </div>
        </div>
    </div>
</div>
public/pages/admin/advertisementSummary/advertisementSummary.js
@@ -359,7 +359,7 @@
                    facilityLocation: that.adContractInfo.conditions.facilityLocation
                };
                
                vc.http.apiGet('/app/adContractInfo/queryAdContractInfo', {
                vc.http.apiGet('/adContractInfo/queryAdContractInfo', {
                    params: params
                }, function(json, res) {
                    var _json = JSON.parse(json);
@@ -381,7 +381,7 @@
                    id: id
                };
                
                vc.http.apiGet('/app/adContractInfo/getAdContractInfoById', {
                vc.http.apiGet('/adContractInfo/getAdContractInfoById', {
                    params: params
                }, function(json, res) {
                    var _json = JSON.parse(json);
@@ -403,7 +403,7 @@
                    contractId: contractId
                };
                
                vc.http.apiGet('/app/adContractInfo/getAdContractInfoByContractId', {
                vc.http.apiGet('/adContractInfo/getAdContractInfoByContractId', {
                    params: params
                }, function(json, res) {
                    var _json = JSON.parse(json);
@@ -428,7 +428,7 @@
                    subType: that.adContractInfo.conditions.subType
                };
                
                vc.http.apiGet('/app/adContractInfo/queryAdContractInfoStatistics', {
                vc.http.apiGet('/adContractInfo/queryAdContractInfoStatistics', {
                    params: params
                }, function(json, res) {
                    var _json = JSON.parse(json);
@@ -457,7 +457,7 @@
                    return;
                }
                
                var url = that.adContractInfo.isEdit ? '/app/adContractInfo/updateAdContractInfo' : '/app/adContractInfo/saveAdContractInfo';
                var url = that.adContractInfo.isEdit ? '/adContractInfo/updateAdContractInfo' : '/adContractInfo/saveAdContractInfo';
                
                vc.http.apiPost(url, JSON.stringify(formData), {
                    headers: {
@@ -481,21 +481,21 @@
            _deleteAdContractInfo: function(id) {
                var that = this;
                if (confirm('确定要删除这条广告合同信息吗?')) {
                    vc.http.apiPost('/app/adContractInfo/deleteAdContractInfo', JSON.stringify({id: id}), {
                        headers: {
                            'Content-Type': 'application/json'
                        }
                    }, function(json, res) {
                        var _json = JSON.parse(json);
                        if (_json.code === '0000') {
                            vc.toast(_json.msg || '删除成功');
                            that._queryAdContractInfo();
                        } else {
                            vc.toast(_json.msg || '删除失败');
                        }
                    }, function(errInfo, error) {
                        vc.toast('删除失败,请检查网络连接');
                    });
                    vc.http.apiPost('/adContractInfo/deleteAdContractInfo', JSON.stringify({id: id}), {
                    headers: {
                        'Content-Type': 'application/json'
                    }
                }, function(json, res) {
                    var _json = JSON.parse(json);
                    if (_json.code === '0000') {
                        vc.toast(_json.msg || '删除成功');
                        that._queryAdContractInfo();
                    } else {
                        vc.toast(_json.msg || '删除失败');
                    }
                }, function(errInfo, error) {
                    vc.toast('删除失败,请检查网络连接');
                });
                }
            },
            
@@ -544,6 +544,21 @@
                this._queryAdContractInfo();
            },
            
            // èŽ·å–é¡µç èŒƒå›´
            _getPageRange: function() {
                var totalPages = Math.ceil(this.adContractInfo.total / this.adContractInfo.row);
                var currentPage = this.adContractInfo.page;
                var pageRange = [];
                var startPage = Math.max(1, currentPage - 2);
                var endPage = Math.min(totalPages, startPage + 4);
                for (var i = startPage; i <= endPage; i++) {
                    pageRange.push(i);
                }
                return pageRange;
            },
            // æ‰“开添加弹窗
            _openAddAdContractModal: function() {
                this.adContractInfo.formData = {
public/pages/property/meterWaterManage/meterWaterManage.html
@@ -76,10 +76,10 @@
                        </button> -->
                    </div>
                </div>
                <div class="ibox-content">
                    <table class="footable table table-stripped toggle-arrow-tiny" data-page-size="15">
                <div class="ibox-content" style="overflow-x: auto;">
                    <table class="table table-stripped" data-page-size="15" style="min-width: 2000px;">
                        <thead>
                            <tr>
                            <tr style="white-space: nowrap;">
                                <th class="text-center">
                                    <vc:i18n name="表ID" namespace="meterWaterManage"></vc:i18n>
                                </th>
@@ -158,7 +158,7 @@
                            </tr>
                        </thead>
                        <tbody>
                            <tr v-for="meterWater in meterWaterManageInfo.meterWaters">
                            <tr v-for="meterWater in meterWaterManageInfo.meterWaters" style="white-space: nowrap;">
                                <td class="text-center">{{meterWater.waterId}}</td>
                                <td class="text-center">{{meterWater.meterTypeName}}</td>
                                <td class="text-center">{{meterWater.objName}}</td>
public/pages/property/oldRoomFeeImport/oldRoomFeeImport.html
@@ -80,9 +80,9 @@
                            <th class="text-center">
                                <vc:i18n name="业主地址" namespace="oldRoomFeeImport"></vc:i18n>
                            </th>
                           th class="text-center">
    <vc:i18n name="业主地址" namespace="oldRoomFeeImport"></vc:i18n>
</th>
                            <th class="text-center">
                                <vc:i18n name="业主地址" namespace="oldRoomFeeImport"></vc:i18n>
                            </th>
<!-- åœ°å€ç›¸å…³å­—段(移到这里) -->
<th class="text-center">
    <vc:i18n name="弄号" namespace="oldRoomFeeImport"></vc:i18n>
public/pages/property/phoneMeterManage/phoneMeterManage.html
@@ -1,9 +1,9 @@
<div>
    <div class="row">
        <div class="col-md-2 " style="padding-right:0px;height: 95%; overflow-x: hidden; overflow-y: scroll;">
    <div class="flex justify-start">
        <div style="padding-right:0px;width: 200px; height: 95%; overflow-x: hidden; overflow-y: scroll;" class="room-floor-unit-tree">
            <vc:create path="property/roomTreeDiv" callBackListener="phoneMeterManage"></vc:create>
        </div>
        <div class="col-md-10 margin-top-xs padding-l-0">
        <div class="margin-top-xs margin-left-sm" style="flex-grow: 1;">
            <div class="ibox ">
                <div class="ibox-title">
                    <h5>
@@ -59,98 +59,100 @@
                    </div>
                </div>
                <div class="ibox-content">
                    <table class="footable table table-stripped toggle-arrow-tiny" data-page-size="15">
                        <thead>
                            <tr>
                                <th class="text-center">
                                    åˆ†è´¦åºå·
                                </th>
                                <th class="text-center">
                                    è®¾å¤‡å·
                                </th>
                                <th class="text-center">
                                    æ”¶æ¬¾æ–¹
                                </th>
                                <th class="text-center">
                                    æˆ·å
                                </th>
                                <th class="text-center">
                                    ç»åŠžäºº
                                </th>
                                <th class="text-center">
                                    æ˜¯å¦è¿‡æˆ·ï¼ˆæ˜¯/否)
                                </th>
                                <th class="text-center">
                                    è¿‡æˆ·åŽå…¬å¸åç§°
                                </th>
                                <th class="text-center">
                                    è¿‡æˆ·æ—¥æœŸ
                                </th>
                                <th class="text-center">
                                    è·¯
                                </th>
                                <th class="text-center">
                                    å¼„
                                </th>
                                <th class="text-center">
                                    é—¨
                                </th>
                                <th class="text-center">
                                    å®¤
                                </th>
                                <th class="text-center">
                                    åœ°å€
                                </th>
                                <th class="text-center">
                                    <vc:i18n name="操作" namespace="phoneMeterManage"></vc:i18n>
                                </th>
                            </tr>
                        </thead>
                        <tbody>
<tr v-for="phoneBillFlow in phoneMeterManageInfo.phoneBillFlows">
                                 <!-- åˆ†è´¦åºå· -->
                                 <td class="text-center">{{phoneBillFlow.profitShareSerial || '-'}}</td>
                                 <!-- è®¾å¤‡å· -->
                                 <td class="text-center">{{phoneBillFlow.deviceNumber || '-'}}</td>
                                 <!-- æ”¶æ¬¾æ–¹ -->
                                 <td class="text-center">{{phoneBillFlow.payee || '-'}}</td>
                                 <!-- æˆ·å -->
                                 <td class="text-center">{{phoneBillFlow.accountName || '-'}}</td>
                                 <!-- ç»åŠžäºº -->
                                 <td class="text-center">{{phoneBillFlow.handler || '-'}}</td>
                                 <!-- æ˜¯å¦è¿‡æˆ· -->
                                 <td class="text-center">{{phoneBillFlow.isTransferred || '-'}}</td>
                                 <!-- è¿‡æˆ·åŽå…¬å¸åç§° -->
                                 <td class="text-center">{{phoneBillFlow.companyNameAfterTransfer || '-'}}</td>
                                 <!-- è¿‡æˆ·æ—¥æœŸ -->
                                 <td class="text-center">{{phoneBillFlow.transferDate || '-'}}</td>
                                 <!-- è·¯ -->
                                 <td class="text-center">{{phoneBillFlow.roadName || '-'}}</td>
                                 <!-- å¼„ -->
                                 <td class="text-center">{{phoneBillFlow.floorNum || '-'}}</td>
                                 <!-- é—¨ -->
                                 <td class="text-center">{{phoneBillFlow.unitNum || '-'}}</td>
                                 <!-- å®¤ -->
                                 <td class="text-center">{{phoneBillFlow.roomNum || '-'}}</td>
                                 <!-- åœ°å€ -->
                                 <td class="text-center">{{phoneBillFlow.address || '-'}}</td>
                                <td class="text-center">
                                    <div class="btn-group">
                                        <button class="btn-white btn btn-xs"
                                            @click="_openEditPhoneBillFlowModel(phoneBillFlow)">
                                            <vc:i18n name="修改" namespace="phoneMeterManage"></vc:i18n>
                                        </button>
                                    </div>
                                    <div class="btn-group">
                                        <button class="btn-white btn btn-xs"
                                            @click="_openDeletePhoneBillFlowModel(phoneBillFlow)">
                                            <vc:i18n name="删除" namespace="phoneMeterManage"></vc:i18n>
                                        </button>
                                    </div>
                                </td>
                            </tr>
                        </tbody>
                    </table>
                    <div class="hc-table-div" :style="{'width':_computeTableDivWidth()}">
                        <table class="table table-stripped table-condensed" data-page-size="15">
                            <thead>
                                <tr>
                                    <th class="text-center">
                                        åˆ†è´¦åºå·
                                    </th>
                                    <th class="text-center">
                                        è®¾å¤‡å·
                                    </th>
                                    <th class="text-center">
                                        æ”¶æ¬¾æ–¹
                                    </th>
                                    <th class="text-center">
                                        æˆ·å
                                    </th>
                                    <th class="text-center">
                                        ç»åŠžäºº
                                    </th>
                                    <th class="text-center">
                                        æ˜¯å¦è¿‡æˆ·ï¼ˆæ˜¯/否)
                                    </th>
                                    <th class="text-center">
                                        è¿‡æˆ·åŽå…¬å¸åç§°
                                    </th>
                                    <th class="text-center">
                                        è¿‡æˆ·æ—¥æœŸ
                                    </th>
                                    <th class="text-center">
                                        è·¯
                                    </th>
                                    <th class="text-center">
                                        å¼„
                                    </th>
                                    <th class="text-center">
                                        é—¨
                                    </th>
                                    <th class="text-center">
                                        å®¤
                                    </th>
                                    <th class="text-center">
                                        åœ°å€
                                    </th>
                                    <th class="text-center">
                                        <vc:i18n name="操作" namespace="phoneMeterManage"></vc:i18n>
                                    </th>
                                </tr>
                            </thead>
                            <tbody>
        <tr v-for="phoneBillFlow in phoneMeterManageInfo.phoneBillFlows">
                                     <!-- åˆ†è´¦åºå· -->
                                     <td class="text-center">{{phoneBillFlow.profitShareSerial || '-'}}</td>
                                     <!-- è®¾å¤‡å· -->
                                     <td class="text-center">{{phoneBillFlow.deviceNumber || '-'}}</td>
                                     <!-- æ”¶æ¬¾æ–¹ -->
                                     <td class="text-center">{{phoneBillFlow.payee || '-'}}</td>
                                     <!-- æˆ·å -->
                                     <td class="text-center">{{phoneBillFlow.accountName || '-'}}</td>
                                     <!-- ç»åŠžäºº -->
                                     <td class="text-center">{{phoneBillFlow.handler || '-'}}</td>
                                     <!-- æ˜¯å¦è¿‡æˆ· -->
                                     <td class="text-center">{{phoneBillFlow.isTransferred || '-'}}</td>
                                     <!-- è¿‡æˆ·åŽå…¬å¸åç§° -->
                                     <td class="text-center">{{phoneBillFlow.companyNameAfterTransfer || '-'}}</td>
                                     <!-- è¿‡æˆ·æ—¥æœŸ -->
                                     <td class="text-center">{{phoneBillFlow.transferDate || '-'}}</td>
                                     <!-- è·¯ -->
                                     <td class="text-center">{{phoneBillFlow.roadName || '-'}}</td>
                                     <!-- å¼„ -->
                                     <td class="text-center">{{phoneBillFlow.floorNum || '-'}}</td>
                                     <!-- é—¨ -->
                                     <td class="text-center">{{phoneBillFlow.unitNum || '-'}}</td>
                                     <!-- å®¤ -->
                                     <td class="text-center">{{phoneBillFlow.roomNum || '-'}}</td>
                                     <!-- åœ°å€ -->
                                     <td class="text-center">{{phoneBillFlow.address || '-'}}</td>
                                    <td class="text-center">
                                        <div class="btn-group">
                                            <button class="btn-white btn btn-xs"
                                                @click="_openEditPhoneBillFlowModel(phoneBillFlow)">
                                                <vc:i18n name="修改" namespace="phoneMeterManage"></vc:i18n>
                                            </button>
                                        </div>
                                        <div class="btn-group">
                                            <button class="btn-white btn btn-xs"
                                                @click="_openDeletePhoneBillFlowModel(phoneBillFlow)">
                                                <vc:i18n name="删除" namespace="phoneMeterManage"></vc:i18n>
                                            </button>
                                        </div>
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <!-- åˆ†é¡µ -->
                    <vc:create path="frame/pagination"></vc:create>
                </div>
public/pages/property/phoneMeterManage/phoneMeterManage.js
@@ -225,6 +225,21 @@
                        roomName: $that.phoneMeterManageInfo.conditions.roomNum
                    });
                }, 1500)
            },
            /**
             * è®¡ç®—表格容器宽度
             * åŠŸèƒ½ï¼šæ ¹æ®å·¦ä¾§æ ‘å®½åº¦åŠ¨æ€è®¡ç®—è¡¨æ ¼å®¹å™¨å®½åº¦
             * @returns {string} è¡¨æ ¼å®¹å™¨å®½åº¦
             */
            _computeTableDivWidth: function () {
                let treeWidth = 200;
                try {
                    treeWidth = document.getElementsByClassName('room-floor-unit-tree')[0].offsetWidth;
                } catch (e) {
                    // å¿½ç•¥é”™è¯¯ï¼Œä½¿ç”¨é»˜è®¤å€¼
                }
                let mainWidth = document.body.offsetWidth - treeWidth - 50;
                return mainWidth + 'px';
            }
        }
    });
public/pages/property/room/room.js
@@ -125,8 +125,16 @@
                        var listRoomData = JSON.parse(json);
                        $that.roomInfo.total = listRoomData.total;
                        $that.roomInfo.records = listRoomData.records;
                        $that.roomInfo.rooms = listRoomData.rooms;
                        $that.dealRoomAttr(listRoomData.rooms);
                        // é€‚配不同环境的数据结构
                        if (listRoomData.rows && listRoomData.rows.length > 0) {
                            $that.roomInfo.rooms = listRoomData.rows;
                            $that.dealRoomAttr(listRoomData.rows);
                        } else if (listRoomData.rooms && listRoomData.rooms.length > 0) {
                            $that.roomInfo.rooms = listRoomData.rooms;
                            $that.dealRoomAttr(listRoomData.rooms);
                        } else {
                            $that.roomInfo.rooms = [];
                        }
                        vc.emit('pagination', 'init', {
                            total: $that.roomInfo.records,
                            dataCount: $that.roomInfo.total,