jialh
2025-07-23 d2b95bb1e4d23127f20bd1d5171782e0a36f5afd
更新
2个文件已修改
4个文件已添加
548 ■■■■■ 已修改文件
public/components/property/importOldRoomFee/importOldRoomFee.html 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/components/property/importOldRoomFee/importOldRoomFee.js 153 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/pages/property/addRoomView/addRoomView.html 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/pages/property/addRoomView/addRoomView.js 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/pages/property/oldRoomFeeImport/oldRoomFeeImport.html 175 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/pages/property/oldRoomFeeImport/oldRoomFeeImport.js 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/components/property/importOldRoomFee/importOldRoomFee.html
New file
@@ -0,0 +1,87 @@
<div id="importOldRoomFeeModel" class="modal fade" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-body">
                <h3 class="m-t-none m-b ">
                    <vc:i18n name="归档费用导入" namespace="importOldRoomFee"></vc:i18n>
                </h3>
                <div class="ibox-content">
                    <!-- <div class="form-group row">
                        <label class="col-sm-2 col-form-label">
                            <span>
                                <vc:i18n name="费用类型" namespace="importOldRoomFee"></vc:i18n>
                            </span>
                        </label>
                        <div class="col-sm-10">
                            <select class="custom-select" v-model="importOldRoomFeeInfo.feeTypeCd"
                                @change="_changeFeeTypeCd(importOldRoomFeeInfo.feeTypeCd)">
                                <option selected disabled value="">{{vc.i18n('必填,请选择费用类型','importOldRoomFee')}}</option>
                                <option v-for="(item,index) in importOldRoomFeeInfo.feeTypeCds" :key="index"
                                    v-bind:value="item.statusCd">
                                    {{item.name}}
                                </option>
                            </select>
                        </div>
                    </div>
                    <div class="form-group row">
                        <label class="col-sm-2 col-form-label">
                            <span>
                                <vc:i18n name="费用对象" namespace="importOldRoomFee"></vc:i18n>
                            </span>
                        </label>
                        <div class="col-sm-10">
                            <select class="custom-select" v-model="importOldRoomFeeInfo.objType">
                                <option selected disabled value="">{{vc.i18n('必填,请选择费用对象','importOldRoomFee')}}</option>
                                <option value="3333">{{vc.i18n('房屋','importOldRoomFee')}}</option>
                                <option value="6666">{{vc.i18n('车位车辆','importOldRoomFee')}}</option>
                            </select>
                        </div>
                    </div> -->
                    <div class="form-group row">
                        <label class="col-sm-2 col-form-label">
                            <span>
                                <vc:i18n name="选择文件" namespace="importOldRoomFee"></vc:i18n>
                            </span>
                        </label>
                        <div class="col-sm-10">
                            <div class="custom-file">
                                <input id="excelTemplate" ref="excelTemplate" type="file"
                                    class="custom-file-input form-control" name="excelTemplate"
                                    v-on:change="getExcelTemplate($event)" accept=".xls,.xlsx">
                                <label for="excelTemplate" class="custom-file-label">
                                    {{importOldRoomFeeInfo.excelTemplate==''?'必填,请选择数据文件':importOldRoomFeeInfo.excelTemplate.name}}
                                </label>
                            </div>
                        </div>
                    </div>
                    <div class="form-group row">
                        <label class="col-sm-2 col-form-label">
                            <span>
                                <vc:i18n name="下载模板" namespace="importOldRoomFee"></vc:i18n>
                            </span>
                        </label>
                        <div class="col-sm-10">
                            请先下载
                            <a href="javascript:void(0)" @click="_downloadImportFeeTemplate()"
                               >
                                    <vc:i18n name="导入模板" namespace="importOldRoomFee"></vc:i18n>
                            </a>
                            准备数据后,上传导入
                        </div>
                    </div>
                    <div class="ibox-content">
                        <button class="btn btn-primary float-right" type="button" v-on:click="_importData()">
                            <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>
</div>
public/components/property/importOldRoomFee/importOldRoomFee.js
New file
@@ -0,0 +1,153 @@
(function (vc) {
    vc.extends({
        data: {
            importOldRoomFeeInfo: {
                communityId: vc.getCurrentCommunity().communityId,
                excelTemplate: '',
                feeTypeCd: '',
                feeTypeCds: [],
                objType: '3333'
            }
        },
        _initMethod: function() {
            vc.getDict('pay_fee_config', "fee_type_cd", function(_data) {
                $that.importOldRoomFeeInfo.feeTypeCds = _data;
            });
        },
        _initEvent: function () {
            vc.on('importOldRoomFee', 'openimportOldRoomFeeModal',
                function (_room) {
                    $('#importOldRoomFeeModel').modal('show');
                });
        },
        methods: {
            importOldRoomFeeValidate() {
                return vc.validate.validate({
                    importOldRoomFeeInfo: $that.importOldRoomFeeInfo
                }, {
                    'importOldRoomFeeInfo.communityId': [{
                        limit: "required",
                        param: "",
                        errInfo: "数据异常还没有入驻小区"
                    }],
                    // 'importOldRoomFeeInfo.feeTypeCd': [{
                    //     limit: "required",
                    //     param: "",
                    //     errInfo: "费用类型不能为空"
                    // }],
                    // 'importOldRoomFeeInfo.excelTemplate': [{
                    //     limit: "required",
                    //     param: "",
                    //     errInfo: "文件不能为空"
                    // }]
                });
            },
            _importData: function() {
                if (!$that.importOldRoomFeeValidate()) {
                    vc.toast(vc.validate.errInfo);
                    return;
                }
                // 导入数据
                if (!$that.checkFileType($that.importOldRoomFeeInfo.excelTemplate.name.split('.')[1])) {
                    vc.toast('不是有效的Excel格式');
                    return;
                }
                if (!$that.checkFileSize($that.importOldRoomFeeInfo.excelTemplate.size)) {
                    vc.toast('Excel文件大小不能超过2M');
                    return;
                }
                let param = new FormData();
                param.append("uploadFile", $that.importOldRoomFeeInfo.excelTemplate);
                param.append('communityId', $that.importOldRoomFeeInfo.communityId);
                param.append('feeTypeCd', $that.importOldRoomFeeInfo.feeTypeCd);
                param.append('objType', $that.importOldRoomFeeInfo.objType);
                param.append('importAdapt', "importPropertyWhiteListfFlow");
                vc.http.upload(
                    'assetImport',
                    'importData',
                    param, {
                        emulateJSON: true,
                        //添加请求头
                        headers: {
                            "Content-Type": "multipart/form-data"
                        }
                    },
                    function (json, res) {
                        //vm.menus = vm.refreshMenuActive(JSON.parse(json),0);
                        let _json = JSON.parse(json);
                        if (_json.code == 0) {
                            //关闭model
                            vc.toast("处理成功");
                            $('#importOldRoomFeeModel').modal('hide');
                            vc.jumpToPage('/#/pages/property/assetImportLogDetail?logId=' + _json.data.logId + '&logType=importOldRoomFee');
                            return;
                        }
                        vc.toast(_json.msg, 10000);
                    },
                    function (errInfo, error) {
                        console.log('请求失败处理');
                        vc.toast(errInfo, 10000);
                    });
            },
            _downloadImportFeeTemplate: function () {
                $('#importOldRoomFeeModel').modal('hide');
                let param = {
                    params: {
                        communityId:vc.getCurrentCommunity().communityId,
                        objType:$that.importOldRoomFeeInfo.objType,
                        pagePath:'exportFeeImportTemplate'
                    }
                };
                //发送get请求
                vc.http.apiGet('/export.exportData', param,
                    function (json, res) {
                        let _json = JSON.parse(json);
                        vc.toast(_json.msg);
                        if (_json.code == 0) {
                            vc.jumpToPage('/#/pages/property/downloadTempFile?tab=下载中心')
                        }
                    },
                    function (errInfo, error) {
                        console.log('请求失败处理');
                    });
            },
            clearAddFeeConfigInfo: function() {
                var _feeTypeCds = $that.importOldRoomFeeInfo.feeTypeCds;
                $that.importOldRoomFeeInfo = {
                    communityId: vc.getCurrentCommunity().communityId,
                    excelTemplate: '',
                    feeTypeCd: '',
                    feeTypeCds: [],
                    objType: '3333'
                };
                $that.importOldRoomFeeInfo.feeTypeCds = _feeTypeCds;
            },
            _changeFeeTypeCd: function (_feeTypeCd) {
            },
            getExcelTemplate: function (e) {
                //console.log("getExcelTemplate 开始调用")
                $that.importOldRoomFeeInfo.excelTemplate = e.target.files[0];
            },
            checkFileType: function (fileType) {
                const acceptTypes = ['xlsx'];
                for (var i = 0; i < acceptTypes.length; i++) {
                    if (fileType === acceptTypes[i]) {
                        return true;
                    }
                }
                return false;
            },
            checkFileSize: function (fileSize) {
                //2M
                const MAX_SIZE = 2 * 1024 * 1024;
                if (fileSize > MAX_SIZE) {
                    return false;
                }
                return true;
            }
        }
    });
})(window.vc);
public/pages/property/addRoomView/addRoomView.html
@@ -38,6 +38,22 @@
                </div>
                <div class="form-group row">
                    <label class="col-sm-2 col-form-label text-right">
                        <vc:i18n name="门室号" namespace="addRoomView"></vc:i18n>
                    </label>
                    <div class="col-sm-4">
                        <input v-model="addRoomViewInfo.doorRoomNum" type="text"
                            :placeholder="vc.i18n('必填,请填写房屋编号','addRoomView')" class="form-control">
                    </div>
                    <label class="col-sm-2 col-form-label text-right">
                        <vc:i18n name="物业类型" namespace="addRoomView"></vc:i18n>
                    </label>
                    <div class="col-sm-4">
                        <input v-model="addRoomViewInfo.propertyType" type="text"
                            :placeholder="vc.i18n('必填,请填写房屋楼层','addRoomView')" class="form-control">
                    </div>
                </div>
                <div class="form-group row">
                    <label class="col-sm-2 col-form-label text-right">
                        <vc:i18n name="房屋编号" namespace="addRoomView"></vc:i18n>
                    </label>
                    <div class="col-sm-4">
@@ -145,6 +161,22 @@
                    </div>
                </div>
                <div class="form-group row">
                    <label class="col-sm-2 col-form-label text-right">
                        <vc:i18n name="产权地址" namespace="addRoomView"></vc:i18n>
                    </label>
                    <div class="col-sm-4">
                        <input v-model="addRoomViewInfo.propertyAddress" type="text"
                            :placeholder="vc.i18n('必填,请填写产权地址','addRoomView')" class="form-control">
                    </div>
                    <label class="col-sm-2 col-form-label text-right">
                        <vc:i18n name="房产信息(房产证号)" namespace="addRoomView"></vc:i18n>
                    </label>
                    <div class="col-sm-4">
                        <input v-model="addRoomViewInfo.houseCertificateNo" type="text"
                            :placeholder="vc.i18n('必填,请填写房产信息(房产证号)','addRoomView')" class="form-control">
                    </div>
                </div>
                <div class="form-group row">
                    <label class="col-sm-2 col-form-label  text-right">
                        <span>
                            <vc:i18n name="备注" namespace="addRoomView"></vc:i18n>
public/pages/property/addRoomView/addRoomView.js
@@ -22,7 +22,9 @@
                attrs: [],
                roomSubTypes: [],
                floors: [],
                units: []
                units: [],
                doorRoomNum: '',
                propertyType: ''
            }
        },
        _initMethod: function () {
public/pages/property/oldRoomFeeImport/oldRoomFeeImport.html
New file
@@ -0,0 +1,175 @@
<div class=" animated fadeInRight ecommerce">
    <div class="ibox ">
        <div class="ibox-title">
            <h5>
                <vc:i18n name="查询条件" namespace="oldRoomFeeImport"></vc:i18n>
            </h5>
            <div class="ibox-tools" style="top:10px;"></div>
        </div>
        <div class="ibox-content">
            <div class="row">
                <div class="col-sm-2">
                    <select class="custom-select" v-model="oldRoomFeeImport.conditions.feeTypeCd">
                        <option selected value="">{{vc.i18n('必填,请选择费用类型','oldRoomFeeImport')}}</option>
                        <option v-for="(item,index) in oldRoomFeeImport.feeTypeCds" :key="index"
                            v-bind:value="item.statusCd" v-if="item.statusCd !='888800010008'">
                            {{item.name}}
                        </option>
                    </select>
                </div>
                <div class="col-sm-2">
                    <div class="form-group">
                        <input type="text" :placeholder="vc.i18n('请输入收费内容','oldRoomFeeImport')"
                            v-model="oldRoomFeeImport.conditions.importFeeId" class=" form-control">
                    </div>
                </div>
                <div class="col-sm-2">
                    <div class="form-group">
                        <input type="text" :placeholder="vc.i18n('请输入归属年份','oldRoomFeeImport')"
                            v-model="oldRoomFeeImport.conditions.attributionYear" class=" form-control">
                    </div>
                </div>
                <div class="col-sm-2">
                    <button type="button" class="btn btn-primary btn-sm" v-on:click="_queryImportFeeMethod()">
                        <vc:i18n name="查询" namespace="oldRoomFeeImport"></vc:i18n>
                    </button>
                </div>
            </div>
        </div>
    </div>
    <div class="ibox">
        <div class="ibox-title">
            <h5>
                <vc:i18n name="费用导入" namespace="oldRoomFeeImport"></vc:i18n>
            </h5>
            <div class="ibox-tools" style="top:10px;">
                <button type="button" class="btn btn-primary btn-sm" style="margin-left:10px"
                    v-on:click="_openOldRoomFeeImport(null,true)">
                    <vc:i18n name="费用导入" namespace="oldRoomFeeImport"></vc:i18n>
                </button>
            </div>
        </div>
        <div class="ibox-content">
            <div class="hc-table-div" :style="{'width':_computeTableDivWidth()}">
                <table class="footable table table-stripped toggle-arrow-tiny" data-page-size="15">
                    <thead>
                        <tr>
                            <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>
                            </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>
                            </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>
                            </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>
                            </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>
                            </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>
                            </th>
                            <th class="text-center">
                                <vc:i18n name="车牌号" namespace="oldRoomFeeImport"></vc:i18n>
                            </th>
                            <th class="text-center">
                                <vc:i18n name="22项分类" 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>
                        </tr>
                    </thead>
                    <tbody>
                        <tr v-for="fee in oldRoomFeeImport.improtFees">
                            <td class="text-center">{{ fee.chargeTime || '-' }}</td>
                            <td class="text-center">{{ fee.invoiceReceiptNo || '-' }}</td>
                            <td class="text-center">{{ fee.roomId || '-' }}</td>
                            <td class="text-center">{{ fee.propertyAddress || '-' }}</td>
                            <td class="text-center">{{ fee.doorRoomNum || '-' }}</td>
                            <td class="text-center">{{ fee.secondaryFeeTypeCd || '-' }}</td>
                            <td class="text-center">{{ fee.chargeAmount || '-' }}</td>
                            <td class="text-center">{{ fee.charger || '-' }}</td> <!-- 收费人 -->
                            <td class="text-center">{{ fee.bankDepositDate || '-' }}</td> <!-- 银行解款日期 -->
                            <td class="text-center">{{ fee.bankDepositor || '-' }}</td> <!-- 银行解款人 -->
                            <td class="text-center">{{ fee.splitBankDepositAmount || '-' }}</td> <!-- 拆分后银行解款金额 -->
                            <td class="text-center">{{ fee.bankDepositAmount || '-' }}</td> <!-- 银行解款金额 -->
                            <td class="text-center">{{ fee.checkAmount || '-' }}</td> <!-- 核对金额 -->
                            <td class="text-center">{{ fee.whiteListArchiveNo || '-' }}</td> <!-- 白单存档编号 -->
                            <td class="text-center">{{ fee.sheetCount || '-' }}</td> <!-- 张数 -->
                            <td class="text-center">{{ fee.financialReceiver || '-' }}</td> <!-- 财务收账人 -->
                            <td class="text-center">{{ fee.inputTime || '-' }}</td> <!-- 输入时间 -->
                            <td class="text-center">{{ fee.inputPerson || '-' }}</td> <!-- 输入人员 -->
                            <td class="text-center">{{ fee.orderNo || '-' }}</td> <!-- 单号 -->
                            <td class="text-center">{{ fee.licensePlate || '-' }}</td> <!-- 车牌号 -->
                            <td class="text-center">{{ fee.category22 || '-' }}</td> <!-- 22 项分类 -->
                            <td class="text-center">{{ fee.chargeStart || '-' }}</td> <!-- 收费起 -->
                            <td class="text-center">{{ fee.chargeEnd || '-' }}</td> <!-- 收费止 -->
                        </tr>
                    </tbody>
                </table>
            </div>
            <!-- 分页 -->
            <div class="row margin-top-xs">
                <div class="col-sm-7">
                    <div>该表数据不能随意变更,该数据为历史存档数据导入入口,仅支持査询和批量导入,不支持增删改</div>
                </div>
                <div class="col-sm-5 float-right">
                    <vc:create path="frame/pagination"></vc:create>
                </div>
            </div>
            <!-- <vc:create path="frame/pagination"></vc:create> -->
        </div>
    </div>
</div>
<vc:create path="property/importOldRoomFee"></vc:create>
</div>
public/pages/property/oldRoomFeeImport/oldRoomFeeImport.js
New file
@@ -0,0 +1,97 @@
/**
 入驻小区
 **/
 (function (vc) {
    var DEFAULT_PAGE = 1;
    var DEFAULT_ROWS = 10;
    vc.extends({
        data: {
            oldRoomFeeImport: {
                improtFees: [],
                feeTypeCds: [],
                total: 0,
                records: 1,
                moreCondition: false,
                title: '',
                conditions: {
                    importFeeId: '',
                    feeTypeCd: '',
                    attributionYear: ''
                }
            }
        },
        _initMethod: function () {
            vc.getDict('pay_fee_config', "fee_type_cd", function (_data) {
                vc.component.oldRoomFeeImport.feeTypeCds = _data;
            });
            $that._listImportFees(DEFAULT_PAGE, DEFAULT_ROWS);
        },
        _initEvent: function () {
            vc.on('oldRoomFeeImport', 'listFee', function (_param) {
                vc.component._listImportFees(DEFAULT_PAGE, DEFAULT_ROWS);
            });
            vc.on('pagination', 'page_event', function (_currentPage) {
                vc.component._listImportFees(_currentPage, DEFAULT_ROWS);
            });
        },
        methods: {
            _computeTableDivWidth: function () {
                let mainWidth = document.getElementsByTagName('body')[0].clientWidth - document.getElementById('menu-nav').offsetWidth;
                // let treeWidth = document.getElementsByClassName('room-floor-unit-tree')[0].offsetWidth;
                mainWidth = mainWidth - 20 - 15 - 20;
                //document.getElementsByClassName('hc-table-div')[0].style.width=mainWidth+'px';
                return mainWidth + 'px';
            },
            _listImportFees: function (_page, _rows) {
                vc.component.oldRoomFeeImport.conditions.page = _page;
                vc.component.oldRoomFeeImport.conditions.row = _rows;
                vc.component.oldRoomFeeImport.conditions.communityId = vc.getCurrentCommunity().communityId;
                var param = {
                    params: vc.component.oldRoomFeeImport.conditions
                };
                param.params.importFeeId = param.params.importFeeId.trim();
                //发送get请求
                vc.http.apiGet('/importFee/queryImportFee',
                    param,
                    function (json, res) {
                        var _oldRoomFeeImport = JSON.parse(json);
                        vc.component.oldRoomFeeImport.total = _oldRoomFeeImport.total;
                        vc.component.oldRoomFeeImport.records = _oldRoomFeeImport.records;
                        vc.component.oldRoomFeeImport.improtFees = _oldRoomFeeImport.data;
                        vc.emit('pagination', 'init', {
                            total: vc.component.oldRoomFeeImport.records,
                            dataCount: vc.component.oldRoomFeeImport.total,
                            currentPage: _page
                        });
                    },
                    function (errInfo, error) {
                        console.log('请求失败处理');
                    }
                );
            },
            //查询
            _queryImportFeeMethod: function () {
                vc.component._listImportFees(DEFAULT_PAGE, DEFAULT_ROWS);
            },
            //重置
            _resetImportFeeMethod: function () {
                vc.component.oldRoomFeeImport.conditions.importFeeId = "";
                vc.component.oldRoomFeeImport.conditions.feeTypeCd = "";
                vc.component._listImportFees(DEFAULT_PAGE, DEFAULT_ROWS);
            },
            _openOldRoomFeeImport: function () {
                vc.emit('importOldRoomFee', 'openimportOldRoomFeeModal', {});
            },
            _moreCondition: function () {
                if (vc.component.oldRoomFeeImport.moreCondition) {
                    vc.component.oldRoomFeeImport.moreCondition = false;
                } else {
                    vc.component.oldRoomFeeImport.moreCondition = true;
                }
            },
            _openFeeSharing: function () {
                vc.emit('feeSharing', 'openFeeSharingModal', {});
            }
        }
    });
})(window.vc);