jialh
2025-09-05 41d89dcfe2b1bb32456a18f80286763091da4b2a
更新
2个文件已修改
3个文件已添加
187 ■■■■■ 已修改文件
public/components/property/importContract/importContract.html 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/components/property/importContract/importContract.js 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/import/批量起草合同模板.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
public/pages/admin/newContractManage/newContractManage.html 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/pages/admin/newContractManage/newContractManage.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/components/property/importContract/importContract.html
New file
@@ -0,0 +1,57 @@
<div id="importContractModel" 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="importContract"></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="importContract"></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">
                                    {{importContractInfo.excelTemplate==''?'必填,请选择数据文件':importContractInfo.excelTemplate.name}}
                                </label>
                            </div>
                        </div>
                    </div>
                    <div class="form-group row">
                        <label class="col-sm-2 col-form-label">
                            <span>
                                <vc:i18n name="下载模板" namespace="importContract"></vc:i18n>
                            </span>
                        </label>
                        <div class="col-sm-10">
                            è¯·å…ˆä¸‹è½½
                            <!-- <a href="javascript:void(0)" @click="_downloadImportFeeTemplate()"
                               >
                                    <vc:i18n name="导入模板" namespace="importContract"></vc:i18n>
                            </a> -->
                            <a href="/import/批量起草合同模板.xlsx" target="_blank">
                                <span><vc:i18n name="导入模板" namespace="importContract"></vc:i18n></span>
                            </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/importContract/importContract.js
New file
@@ -0,0 +1,119 @@
(function (vc) {
    vc.extends({
        data: {
            importContractInfo: {
                communityId: vc.getCurrentCommunity().communityId,
                excelTemplate: '',
                feeTypeCd: '',
                feeTypeCds: [],
                objType: '3333'
            }
        },
        _initMethod: function() {
            vc.getDict('pay_fee_config', "fee_type_cd", function(_data) {
                $that.importContractInfo.feeTypeCds = _data;
            });
        },
        _initEvent: function () {
            vc.on('importContract', 'openimportContractModal',
                function (_room) {
                    $('#importContractModel').modal('show');
                });
        },
        methods: {
            importContractValidate() {
                return vc.validate.validate({
                    importContractInfo: $that.importContractInfo
                }, {
                    'importContractInfo.communityId': [{
                        limit: "required",
                        param: "",
                        errInfo: "数据异常还没有入驻小区"
                    }],
                });
            },
            _importData: function() {
                if (!$that.importContractValidate()) {
                    vc.toast(vc.validate.errInfo);
                    return;
                }
                // å¯¼å…¥æ•°æ®
                if (!$that.checkFileType($that.importContractInfo.excelTemplate.name.split('.')[1])) {
                    vc.toast('不是有效的Excel格式');
                    return;
                }
                if (!$that.checkFileSize($that.importContractInfo.excelTemplate.size)) {
                    vc.toast('Excel文件大小不能超过20M');
                    return;
                }
                let param = new FormData();
                param.append("uploadFile", $that.importContractInfo.excelTemplate);
                param.append('communityId', vc.getCurrentCommunity().communityId);
                param.append('userId', vc.getData('/nav/getUserInfo').userId)
                param.append('importAdapt', "importContract");
                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("处理成功");
                            $('#importContractModel').modal('hide');
                            vc.jumpToPage('/#/pages/property/assetImportLogDetail?logId=' + _json.data.logId + '&logType=importContract');
                            return;
                        }
                        vc.toast(_json.msg, 10000);
                    },
                    function (errInfo, error) {
                        console.log('请求失败处理');
                        vc.toast(errInfo, 10000);
                    });
            },
            clearAddFeeConfigInfo: function() {
                var _feeTypeCds = $that.importContractInfo.feeTypeCds;
                $that.importContractInfo = {
                    communityId: vc.getCurrentCommunity().communityId,
                    excelTemplate: '',
                    feeTypeCd: '',
                    feeTypeCds: [],
                    objType: '3333'
                };
                $that.importContractInfo.feeTypeCds = _feeTypeCds;
            },
            _changeFeeTypeCd: function (_feeTypeCd) {
            },
            getExcelTemplate: function (e) {
                //console.log("getExcelTemplate å¼€å§‹è°ƒç”¨")
                $that.importContractInfo.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 = 20 * 1024 * 1024;
                if (fileSize > MAX_SIZE) {
                    return false;
                }
                return true;
            }
        }
    });
})(window.vc);
public/import/ÅúÁ¿Æð²ÝºÏͬģ°å.xlsx
Binary files differ
public/pages/admin/newContractManage/newContractManage.html
@@ -54,6 +54,9 @@
                        <span><vc:i18n name="起草合同信息" namespace="newContractManage"></vc:i18n></span>
                    </h5>
                    <div class="ibox-tools" style="top:10px;">
                        <button type="button" class="btn btn-primary btn-sm" v-on:click="_openContractImport()">
                            <i class="fa fa-plus"></i>批量导入
                        </button>
                        <button type="button" class="btn btn-primary btn-sm" v-on:click="_openAddContractModal()">
                            <i class="fa fa-plus"></i>起草
                        </button>
@@ -74,6 +77,9 @@
                            </th>
                            <th class="text-center">
                                <span><vc:i18n name="合同类型" namespace="newContractManage"></vc:i18n></span>
                            </th>
                            <th class="text-center">
                                <span><vc:i18n name="合同甲方" namespace="newContractManage"></vc:i18n></span>
                            </th>
                            <th class="text-center">
                                <span><vc:i18n name="经办人" namespace="newContractManage"></vc:i18n></span>
@@ -103,6 +109,7 @@
                                {{contract.parentContractCode?contract.parentContractCode:'-'}}
                            </td>
                            <td class="text-center">{{contract.contractTypeName}}</td>
                            <td class="text-center">{{contract.partyA}}</td>
                            <td class="text-center">{{contract.operator}}</td>
                            <td class="text-center">{{contract.amount.replace(/\B(?=(\d{3})+(?!\d))/g, ',')}}</td>
                            <td class="text-center">{{contract.startTime}}</td>
@@ -144,4 +151,5 @@
    </div>
    <vc:create path="admin/editContract"></vc:create>
    <vc:create path="admin/deleteContract"></vc:create>
    <vc:create path="property/importContract"></vc:create>
</div>
public/pages/admin/newContractManage/newContractManage.js
@@ -82,6 +82,9 @@
                    }
                );
            },
            _openContractImport: function () {
                vc.emit('importContract', 'openimportContractModal', {});
            },
            _openAddContractModal: function () {
                //vc.emit('addContract', 'openAddContractModal', {});
                vc.jumpToPage('/#/pages/admin/addContract')