| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div v-for="(item,index) in editContractInfo.contractTypeSpecs"> |
| | | <div class="row" v-if="index % 3 == 0"> |
| | | <div class="col-sm-4"> |
| | |
| | | startTime: '', |
| | | endTime: '', |
| | | signingTime: '', |
| | | propertyCompany: '', |
| | | contractTerm: '', |
| | | isArchived: '', |
| | | contractReminderDate: '', |
| | | signatoryAddress: '', |
| | | contactEmail: '', |
| | | contactWechat: '', |
| | | remarks: '', |
| | | contractTypes: [], |
| | | contractTypeSpecs: [], |
| | | tempfile: '', |
| | |
| | | startTime: '', |
| | | endTime: '', |
| | | signingTime: '', |
| | | propertyCompany: '', |
| | | contractTerm: '', |
| | | isArchived: '', |
| | | contractReminderDate: '', |
| | | signatoryAddress: '', |
| | | contactEmail: '', |
| | | contactWechat: '', |
| | | remarks: '', |
| | | contractTypes: _contractTypes, |
| | | contractTypeSpecs: [], |
| | | tempfile: '', |
| | |
| | | <h5> |
| | | 广告合同汇总表 |
| | | </h5> |
| | | </div> |
| | | <!-- 分页组件 --> |
| | | <vc:create path="frame/pagination"></vc:create> |
| | | </div> |
| | | <div class="ibox-content"> |
| | | <!-- 广告合同查询条件区域 --> |
| | | <div class="row"> |
| | |
| | | <i class="fa fa-plus"></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> |
| | | 导入数据 |
| | |
| | | <th class="text-center">联系邮箱</th> |
| | | <th class="text-center">联系微信</th> |
| | | <th class="text-center">备注</th> |
| | | <th class="text-center">操作</th> |
| | | |
| | | </tr> |
| | | </thead> |
| | | <tbody> |
| | |
| | | <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(item)">编辑</button> |
| | | <button type="button" class="btn btn-xs btn-danger" |
| | | v-on:click="_openDeleteContractModel(item)">删除</button> |
| | | </td> |
| | | </tr> |
| | | <tr v-if="advertisementSummaryInfo.contracts.length == 0"> |
| | | <td colspan="21" style="text-align: center; color: #999;"> |
| | | <td colspan="20" style="text-align: center; color: #999;"> |
| | | 暂无数据 |
| | | </td> |
| | | </tr> |
| | | </tbody> |
| | | <tfoot> |
| | | <tr> |
| | | <td colspan="21"> |
| | | <td colspan="20"> |
| | | <ul class="pagination float-right"></ul> |
| | | </td> |
| | | </tr> |
| | |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | |
| | | <!-- 分页组件 --> |
| | | <vc:create path="frame/pagination"></vc:create> |
| | | |
| | | </div> |
| | |
| | | </div> |
| | | <div class="ibox-content"> |
| | | <div class="row"> |
| | | <div class="col-sm-2"> |
| | | <div class="col-sm-3"> |
| | | <div class="form-group"> |
| | | <label>年份:</label> |
| | | <input type="text" placeholder="yyyy/mm/日" |
| | | v-model="contractManageInfo.conditions.year" class=" form-control yearPicker"> |
| | | </div> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <div class="form-group"> |
| | | <label>小区:</label> |
| | | <select class="custom-select" v-model="contractManageInfo.conditions.communityId"> |
| | | <option selected value="">请选择小区</option> |
| | | <option :value="item.communityId" |
| | | v-for="(item,index) in contractManageInfo.communities"> |
| | | {{item.name}} |
| | | </option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <div class="form-group"> |
| | | <label>小区编码:</label> |
| | | <input type="text" placeholder="请输入" |
| | | v-model="contractManageInfo.conditions.communityCode" class=" form-control"> |
| | | </div> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <div class="form-group"> |
| | | <label>合同名称:</label> |
| | | <input type="text" :placeholder="vc.i18n('请输入合同名称','contractManage')" |
| | | v-model="contractManageInfo.conditions.contractNameLike" class=" form-control"> |
| | | </div> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <div class="col-sm-4"> |
| | | <div class="form-group"> |
| | | <label>合同编号:</label> |
| | | <input type="text" :placeholder="vc.i18n('请输入合同编号','contractManage')" |
| | | v-model="contractManageInfo.conditions.contractCodeLike" class=" form-control"> |
| | | </div> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <div class="col-sm-3"> |
| | | <div class="form-group"> |
| | | <label>合同类型:</label> |
| | | <select class="custom-select" v-model="contractManageInfo.conditions.contractType"> |
| | | <option selected value="">请选择合同类型</option> |
| | | <option :value="item.contractTypeId" |
| | |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="col-sm-12" style="margin-top: 10px;"> |
| | | <div class="col-sm-2"> |
| | | <button type="button" class="btn btn-primary btn-sm" v-on:click="_queryContractMethod()"> |
| | | <i class="fa fa-search"></i> |
| | | <span><vc:i18n name="查询" namespace="contractManage"></vc:i18n></span> |
| | |
| | | </div> |
| | | <vc:create path="admin/editContract"></vc:create> |
| | | <vc:create path="admin/deleteContract"></vc:create> |
| | | |
| | | <!-- 合同管理分成信息 --> |
| | | <vc:contractManagementShare></vc:contractManagementShare> |
| | | <vc:addContractManagementShare></vc:addContractManagementShare> |
| | | <vc:editContractManagementShare></vc:editContractManagementShare> |
| | | </div> |
| | |
| | | moreCondition: false, |
| | | contractId: '', |
| | | conditions: { |
| | | communityId: vc.getCurrentCommunity().communityId, |
| | | // communityId: vc.getCurrentCommunity().communityId, |
| | | contractNameLike: '', |
| | | contractCodeLike: '', |
| | | contractType: '', |
| | | partyBLike: '', |
| | | queryStartTime: '', |
| | | queryEndTime: '', |
| | | parentContractCodeLike: '', |
| | | year: '', |
| | | communityCode: '' |
| | | parentContractCodeLike: '' |
| | | }, |
| | | contractTypes: [], |
| | | communities: [] |
| | | } |
| | | }, |
| | | _initMethod: function () { |
| | |
| | | $that.contractManageInfo.conditions.queryEndTime = _value; |
| | | });*/ |
| | | $that._listContractTypes(); |
| | | $that._listCommunities(); |
| | | }, |
| | | _initEvent: function () { |
| | | vc.on('contractManage', 'listContract', function (_param) { |
| | |
| | | }, |
| | | methods: { |
| | | _initDateInfo: function () { |
| | | // 年份选择器 |
| | | $('.yearPicker').datetimepicker({ |
| | | language: 'zh-CN', |
| | | fontAwesome: 'fa', |
| | | format: 'yyyy-mm-dd', |
| | | initTime: true, |
| | | initialDate: new Date(), |
| | | autoClose: 1, |
| | | todayBtn: true, |
| | | startView: 2, |
| | | minView: 2 |
| | | }); |
| | | $('.yearPicker').datetimepicker() |
| | | .on('changeDate', function (ev) { |
| | | var value = $(".yearPicker").val(); |
| | | vc.component.contractManageInfo.conditions.year = value; |
| | | }); |
| | | |
| | | $('.queryStartTime').datetimepicker({ |
| | | language: 'zh-CN', |
| | | fontAwesome: 'fa', |
| | |
| | | } |
| | | }); |
| | | //防止多次点击时间插件失去焦点 |
| | | var inputs = document.getElementsByClassName(' form-control queryStartTime'); |
| | | if (inputs.length > 0) { |
| | | inputs[0].addEventListener('click', myfunc); |
| | | } |
| | | document.getElementsByClassName(' form-control queryStartTime')[0].addEventListener('click', myfunc) |
| | | |
| | | function myfunc(e) { |
| | | e.currentTarget.blur(); |
| | | } |
| | | |
| | | inputs = document.getElementsByClassName(" form-control queryEndTime"); |
| | | if (inputs.length > 0) { |
| | | inputs[0].addEventListener('click', myfunc); |
| | | } |
| | | |
| | | inputs = document.getElementsByClassName(" form-control yearPicker"); |
| | | if (inputs.length > 0) { |
| | | inputs[0].addEventListener('click', myfunc); |
| | | } |
| | | document.getElementsByClassName(" form-control queryEndTime")[0].addEventListener('click', myfunc) |
| | | |
| | | function myfunc(e) { |
| | | e.currentTarget.blur(); |
| | |
| | | param.params.contractCodeLike = param.params.contractCodeLike.trim(); |
| | | param.params.partyBLike = param.params.partyBLike.trim(); |
| | | param.params.parentContractCodeLike = param.params.parentContractCodeLike.trim(); |
| | | //确保communityId被正确传递 |
| | | param.params.communityId = vc.getCurrentCommunity().communityId; |
| | | //发送get请求 |
| | | vc.http.apiGet('/contract/queryContract', |
| | | param, |
| | | function (json, res) { |
| | | var _contractManageInfo = JSON.parse(json); |
| | | vc.component.contractManageInfo.total = _contractManageInfo.total; |
| | | vc.component.contractManageInfo.records = _contractManageInfo.records; |
| | | vc.component.contractManageInfo.contracts = _contractManageInfo.data; |
| | | var contracts = _contractManageInfo.data || []; |
| | | |
| | | // 适配API返回的数据结构 |
| | | var mappedContracts = contracts.map(function(item) { |
| | | // 从aContacts字段中提取经办人和联系电话 |
| | | var operator = ''; |
| | | var operatorLink = ''; |
| | | if (item.aContacts) { |
| | | var parts = item.aContacts.split(' '); |
| | | if (parts.length >= 2) { |
| | | operator = parts[0]; |
| | | operatorLink = parts[1]; |
| | | } else { |
| | | operator = item.aContacts; |
| | | } |
| | | } |
| | | |
| | | // 状态映射 |
| | | var stateName = ''; |
| | | switch (item.state) { |
| | | case '1': |
| | | stateName = '进行中'; |
| | | break; |
| | | case '2': |
| | | stateName = '已到期'; |
| | | break; |
| | | case '3': |
| | | stateName = '已终止'; |
| | | break; |
| | | default: |
| | | stateName = '未知'; |
| | | } |
| | | |
| | | return { |
| | | communityName: item.communityName || '未知小区', |
| | | contractName: item.contractName || '', |
| | | contractCode: item.contractCode || '', |
| | | parentContractCode: item.parentContractCode || '-', |
| | | contractTypeName: item.contractTypeName || '未知类型', |
| | | operator: operator, |
| | | operatorLink: operatorLink, |
| | | amount: item.amount || 0, |
| | | partyB: item.partyB || '', |
| | | bLink: item.bLink || '', |
| | | startTime: item.beginTime || '', |
| | | endTime: item.endTime || '', |
| | | createTime: item.createTime || item.beginTime || '', |
| | | stateName: stateName, |
| | | contractId: item.contractId || '', |
| | | contractType: item.contractType || '' |
| | | }; |
| | | }); |
| | | |
| | | // 修复分页数据 - API返回的records为0,使用data.length |
| | | var total = _contractManageInfo.total || 0; |
| | | var records = contracts.length || 0; |
| | | |
| | | vc.component.contractManageInfo.total = total; |
| | | vc.component.contractManageInfo.records = records; |
| | | vc.component.contractManageInfo.contracts = mappedContracts; |
| | | |
| | | vc.emit('pagination', 'init', { |
| | | total: vc.component.contractManageInfo.records, |
| | | dataCount: vc.component.contractManageInfo.total, |
| | | total: records, // 使用实际数据条数 |
| | | dataCount: total, |
| | | currentPage: _page |
| | | }); |
| | | }, |
| | |
| | | } |
| | | ); |
| | | }, |
| | | _listCommunities: function () { |
| | | try { |
| | | // 从localStorage获取小区列表 |
| | | var _communities = vc.getCommunitys(); |
| | | if (_communities && _communities.length > 0) { |
| | | $that.contractManageInfo.communities = _communities; |
| | | console.log('小区列表获取成功:', _communities); |
| | | } else { |
| | | // 如果没有小区列表,使用当前小区 |
| | | var _currentCommunity = vc.getCurrentCommunity(); |
| | | if (_currentCommunity) { |
| | | $that.contractManageInfo.communities = [_currentCommunity]; |
| | | console.log('使用当前小区:', _currentCommunity); |
| | | } else { |
| | | console.error('未找到小区数据'); |
| | | vc.toast('未找到小区数据'); |
| | | } |
| | | } |
| | | } catch (e) { |
| | | console.error('小区列表获取错误:', e); |
| | | vc.toast('获取小区列表失败:' + e.message); |
| | | } |
| | | }, |
| | | _openAddContractModal: function () { |
| | | vc.emit('addContract', 'openAddContractModal', {}); |
| | | }, |
| | |
| | | _openDeleteContractModel: function (_contract) { |
| | | vc.emit('deleteContract', 'openDeleteContractModal', _contract); |
| | | }, |
| | | // 打开添加合同管理分成信息模态框 |
| | | openAddContractManagementShareModal: function() { |
| | | vc.emit('addContractManagementShare', 'openAddContractManagementShareModal', {}); |
| | | }, |
| | | // 打开编辑合同管理分成信息模态框 |
| | | openEditContractManagementShareModal: function(_item) { |
| | | vc.emit('editContractManagementShare', 'openEditContractManagementShareModal', _item); |
| | | }, |
| | | // 跳转到合同管理分成信息页面 |
| | | goToContractManagementSharePage: function() { |
| | | vc.jumpToPage('/#/pages/contract/contractManagementShare'); |
| | | }, |
| | | //查询 |
| | | _queryContractMethod: function () { |
| | | vc.component._listContracts(DEFAULT_PAGE, DEFAULT_ROWS); |
| | | }, |
| | | //重置 |
| | | _resetContractMethod: function () { |
| | | vc.component.contractManageInfo.conditions.communityId = vc.getCurrentCommunity().communityId; |
| | | vc.component.contractManageInfo.conditions.year = ""; |
| | | vc.component.contractManageInfo.conditions.communityCode = ""; |
| | | // vc.component.contractManageInfo.conditions.communityId = vc.getCurrentCommunity().communityId; |
| | | vc.component.contractManageInfo.conditions.contractNameLike = ""; |
| | | // vc.component.contractManageInfo.conditions.contractCode = ""; |
| | | vc.component.contractManageInfo.conditions.contractType = ""; |
| New file |
| | |
| | | <div class="white-bg padding-lg padding-top border-radius"> |
| | | <div class="flex justify-between"> |
| | | <div class="text-title">合同信息</div> |
| | | <div> |
| | | <button type="button" class="btn btn-primary btn-sm" style="margin-left:10px" v-on:click="vc.goBack()"> |
| | | <i class="fa fa-close"></i>返回 |
| | | </button> |
| | | <button type="button" class="btn btn-primary btn-sm" v-on:click="_printContract()"> |
| | | <i class="fa fa-print"></i> |
| | | <vc:i18n name="打印"></vc:i18n> |
| | | </button> |
| | | </div> |
| | | </div> |
| | | <!-- 合同信息 --> |
| | | <div class="margin-top"> |
| | | <div class="row"> |
| | | <div class="col-sm-3"> |
| | | <div class="form-group"> |
| | | <label class="col-form-label"> |
| | | <span><vc:i18n name="合同名称" namespace="contractDetail"></vc:i18n></span>: |
| | | </label> |
| | | <label class="">{{contractDetailInfo.contractName}}</label> |
| | | </div> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <div class="form-group"> |
| | | <label class="col-form-label"> |
| | | <span><vc:i18n name="合同编号" namespace="contractDetail"></vc:i18n></span>: |
| | | </label> |
| | | <label class="">{{contractDetailInfo.contractCode}}</label> |
| | | </div> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <div class="form-group"> |
| | | <label class="col-form-label"> |
| | | <span><vc:i18n name="合同类型" namespace="contractDetail"></vc:i18n></span>: |
| | | </label> |
| | | <label class="">{{contractDetailInfo.contractTypeName}}</label> |
| | | </div> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <div class="form-group"> |
| | | <label class="col-form-label"> |
| | | <span><vc:i18n name="甲方" namespace="contractDetail"></vc:i18n></span>: |
| | | </label> |
| | | <label class="">{{contractDetailInfo.partyA}}</label> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="row"> |
| | | <div class="col-sm-3"> |
| | | <div class="form-group"> |
| | | <label class="col-form-label"> |
| | | <span><vc:i18n name="甲方联系人" namespace="contractDetail"></vc:i18n></span>: |
| | | </label> |
| | | <label class="">{{contractDetailInfo.aContacts}}</label> |
| | | </div> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <div class="form-group"> |
| | | <label class="col-form-label"> |
| | | <span><vc:i18n name="甲方联系电话" namespace="contractDetail"></vc:i18n></span>: |
| | | </label> |
| | | <label class="">{{contractDetailInfo.aLink}}</label> |
| | | </div> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <div class="form-group"> |
| | | <label class="col-form-label"> |
| | | <span><vc:i18n name="乙方" namespace="contractDetail"></vc:i18n></span>: |
| | | </label> |
| | | <label class="">{{contractDetailInfo.partyB}}</label> |
| | | </div> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <div class="form-group"> |
| | | <label class="col-form-label"> |
| | | <span><vc:i18n name="乙方联系人" namespace="contractDetail"></vc:i18n></span>: |
| | | </label> |
| | | <label class="">{{contractDetailInfo.bContacts}}</label> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="row"> |
| | | <div class="col-sm-3"> |
| | | <div class="form-group"> |
| | | <label class="col-form-label"> |
| | | <vc:i18n name="乙方联系电话:" namespace="contractDetail"></vc:i18n> |
| | | </label> |
| | | <label class="">{{contractDetailInfo.bLink}}</label> |
| | | </div> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <div class="form-group"> |
| | | <label class="col-form-label"> |
| | | <span><vc:i18n name="经办人" namespace="contractDetail"></vc:i18n></span>: |
| | | </label> |
| | | <label class="">{{contractDetailInfo.operator}}</label> |
| | | </div> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <div class="form-group"> |
| | | <label class="col-form-label"> |
| | | <span><vc:i18n name="联系电话" namespace="contractDetail"></vc:i18n></span>: |
| | | </label> |
| | | <label class="">{{contractDetailInfo.operatorLink}}</label> |
| | | </div> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <div class="form-group"> |
| | | <label class="col-form-label"> |
| | | <span><vc:i18n name="合同金额" namespace="contractDetail"></vc:i18n></span>: |
| | | </label> |
| | | <label class="">{{contractDetailInfo.amount}}</label> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="row"> |
| | | <div class="col-sm-3"> |
| | | <div class="form-group"> |
| | | <label class="col-form-label"> |
| | | <span><vc:i18n name="开始时间" namespace="contractDetail"></vc:i18n></span>: |
| | | </label> |
| | | <label class="">{{contractDetailInfo.startTime}}</label> |
| | | </div> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <div class="form-group"> |
| | | <label class="col-form-label"> |
| | | <span><vc:i18n name="结束时间" namespace="contractDetail"></vc:i18n></span>: |
| | | </label> |
| | | <label class="">{{contractDetailInfo.endTime}}</label> |
| | | </div> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <div class="form-group"> |
| | | <label class="col-form-label"> |
| | | <vc:i18n name="签订时间:" namespace="contractDetail"></vc:i18n> |
| | | </label> |
| | | <label class="">{{contractDetailInfo.signingTime}}</label> |
| | | </div> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <div class="form-group"> |
| | | <label class="col-form-label"> |
| | | <vc:i18n name="状态:" namespace="contractDetail"></vc:i18n> |
| | | </label> |
| | | <label class="">{{contractDetailInfo.stateName}}</label> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="row"> |
| | | <div class="col-sm-3" v-if="contractDetailInfo.contractParentId"> |
| | | <div class="form-group"> |
| | | <label class="col-form-label"> |
| | | <span><vc:i18n name="父合同" namespace="contractDetail"></vc:i18n></span>: |
| | | </label> |
| | | <label class=""> |
| | | {{contractDetailInfo.contractParentName}}({{contractDetailInfo.contractParentCode}}) |
| | | </label> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="vc-line-primary margin-top"></div> |
| | | <div class="margin-top-sm"> |
| | | <ul class="nav nav-tabs"> |
| | | <li class="nav-item"> |
| | | <a class="nav-link" v-bind:class="{active:contractDetailInfo._currentTab == 'contractDetailRoom'}" |
| | | v-on:click="changeTab('contractDetailRoom')"> |
| | | <vc:i18n name="房屋" namespace="contractDetail"></vc:i18n> |
| | | </a> |
| | | </li> |
| | | <li class="nav-item"> |
| | | <a class="nav-link" v-bind:class="{active:contractDetailInfo._currentTab == 'contractDetailFile'}" |
| | | v-on:click="changeTab('contractDetailFile')"> |
| | | <vc:i18n name="附件" namespace="contractDetail"></vc:i18n> |
| | | </a> |
| | | </li> |
| | | <li class="nav-item"> |
| | | <a class="nav-link" v-bind:class="{active:contractDetailInfo._currentTab == 'contractDetailFee'}" |
| | | v-on:click="changeTab('contractDetailFee')"> |
| | | <vc:i18n name="合同费用" namespace="contractDetail"></vc:i18n> |
| | | </a> |
| | | </li> |
| | | <li class="nav-item"> |
| | | <a class="nav-link" v-bind:class="{active:contractDetailInfo._currentTab == 'contractDetailHisFee'}" |
| | | v-on:click="changeTab('contractDetailHisFee')"> |
| | | <vc:i18n name="合同缴费记录" namespace="contractDetail"></vc:i18n> |
| | | </a> |
| | | </li> |
| | | <li class="nav-item"> |
| | | <a class="nav-link" v-bind:class="{active:contractDetailInfo._currentTab == 'ownerDetailRoomFee'}" |
| | | v-on:click="changeTab('ownerDetailRoomFee')"> |
| | | <vc:i18n name="房屋费用" namespace="contractDetail"></vc:i18n> |
| | | </a> |
| | | </li> |
| | | <li class="nav-item"> |
| | | <a class="nav-link" v-bind:class="{active:contractDetailInfo._currentTab == 'contractDetailHisRoomFee'}" |
| | | v-on:click="changeTab('contractDetailHisRoomFee')"> |
| | | <vc:i18n name="房屋缴费记录" namespace="contractDetail"></vc:i18n> |
| | | </a> |
| | | </li> |
| | | <li class="nav-item"> |
| | | <a class="nav-link" v-bind:class="{active:contractDetailInfo._currentTab == 'contractDetailOwner'}" |
| | | v-on:click="changeTab('contractDetailOwner')"> |
| | | <vc:i18n name="业主信息" namespace="contractDetail"></vc:i18n> |
| | | </a> |
| | | </li> |
| | | <li class="nav-item"> |
| | | <a class="nav-link" v-bind:class="{active:contractDetailInfo._currentTab == 'contractDetailChange'}" |
| | | v-on:click="changeTab('contractDetailChange')"> |
| | | <vc:i18n name="变更记录" namespace="contractDetail"></vc:i18n> |
| | | </a> |
| | | </li> |
| | | <li class="nav-item"> |
| | | <a class="nav-link" v-bind:class="{active:contractDetailInfo._currentTab == 'contractDetailFlow'}" |
| | | v-on:click="changeTab('contractDetailFlow')"> |
| | | <vc:i18n name="起草审批" namespace="contractDetail"></vc:i18n> |
| | | </a> |
| | | </li> |
| | | <li class="nav-item"> |
| | | <a class="nav-link" v-bind:class="{active:contractDetailInfo._currentTab == 'contractDetailSub'}" |
| | | v-on:click="changeTab('contractDetailSub')"> |
| | | <vc:i18n name="子合同" namespace="contractDetail"></vc:i18n> |
| | | </a> |
| | | </li> |
| | | <li class="nav-item"> |
| | | <a class="nav-link" v-bind:class="{active:contractDetailInfo._currentTab == 'contractDetailReceipt'}" |
| | | v-on:click="changeTab('contractDetailReceipt')"> |
| | | <vc:i18n name="补打收据" namespace="contractDetail"></vc:i18n> |
| | | </a> |
| | | </li> |
| | | </ul> |
| | | </div> |
| | | <div v-if="contractDetailInfo._currentTab == 'contractDetailRoom'"> |
| | | <vc:create path="contract/contractDetailRoom"></vc:create> |
| | | </div> |
| | | <div v-if="contractDetailInfo._currentTab == 'contractDetailFile'"> |
| | | <vc:create path="contract/contractDetailFile"></vc:create> |
| | | </div> |
| | | <div v-if="contractDetailInfo._currentTab == 'contractDetailFee'"> |
| | | <vc:create path="contract/contractDetailFee"></vc:create> |
| | | </div> |
| | | <div v-if="contractDetailInfo._currentTab == 'contractDetailHisFee'"> |
| | | <vc:create path="contract/contractDetailHisFee"></vc:create> |
| | | </div> |
| | | <div v-if="contractDetailInfo._currentTab == 'ownerDetailRoomFee'"> |
| | | <vc:create path="owner/ownerDetailRoomFee"></vc:create> |
| | | </div> |
| | | <div v-if="contractDetailInfo._currentTab == 'contractDetailHisRoomFee'"> |
| | | <vc:create path="contract/contractDetailHisRoomFee"></vc:create> |
| | | </div> |
| | | <div v-if="contractDetailInfo._currentTab == 'contractDetailChange'"> |
| | | <vc:create path="contract/contractDetailChange"></vc:create> |
| | | </div> |
| | | <div v-if="contractDetailInfo._currentTab == 'contractDetailFlow'"> |
| | | <vc:create path="contract/contractDetailFlow"></vc:create> |
| | | </div> |
| | | <div v-if="contractDetailInfo._currentTab == 'contractDetailSub'"> |
| | | <vc:create path="contract/contractDetailSub"></vc:create> |
| | | </div> |
| | | <div v-if="contractDetailInfo._currentTab == 'contractDetailOwner'"> |
| | | <vc:create path="contract/contractDetailOwner"></vc:create> |
| | | </div> |
| | | <div v-if="contractDetailInfo._currentTab == 'contractDetailReceipt'"> |
| | | <vc:create path="contract/contractDetailReceipt"></vc:create> |
| | | </div> |
| | | <vc:create path="property/deleteFee"></vc:create> |
| | | <vc:create path="property/editFee"></vc:create> |
| | | <vc:create path="property/contractCreateFeeAdd"></vc:create> |
| | | <vc:create path="property/finishFee"></vc:create> |
| | | </div> |
| New file |
| | |
| | | /** |
| | | 业主详情页面 |
| | | **/ |
| | | (function (vc) { |
| | | vc.extends({ |
| | | data: { |
| | | contractDetailInfo: { |
| | | contractId: '', |
| | | contractName: '', |
| | | contractCode: '', |
| | | contractType: '', |
| | | contractTypeName: '', |
| | | partyA: '', |
| | | partyB: '', |
| | | aContacts: '', |
| | | bContacts: '', |
| | | aLink: '', |
| | | bLink: '', |
| | | operator: '', |
| | | operatorLink: '', |
| | | amount: '', |
| | | startTime: '', |
| | | endTime: '', |
| | | signingTime: '', |
| | | param: '', |
| | | planType: '', |
| | | stateName: '', |
| | | contractParentId: '', |
| | | contractParentName: '', |
| | | contractParentCode: '', |
| | | objId: '', |
| | | files: [], |
| | | _currentTab: 'contractDetailRoom', |
| | | } |
| | | }, |
| | | _initMethod: function () { |
| | | $that.contractDetailInfo.contractId = vc.getParam('contractId'); |
| | | if (!vc.notNull($that.contractDetailInfo.contractId)) { |
| | | return; |
| | | } |
| | | let _currentTab = vc.getParam('currentTab'); |
| | | if (_currentTab) { |
| | | $that.contractDetailInfo._currentTab = _currentTab; |
| | | } |
| | | vc.component._loadContractInfo(); |
| | | $that.changeTab($that.contractDetailInfo._currentTab); |
| | | }, |
| | | _initEvent: function () { |
| | | vc.on('contractDetail', 'listContractData', function (_info) { |
| | | vc.component._loadContractInfo(); |
| | | $that.changeTab($that.contractDetailInfo._currentTab); |
| | | }); |
| | | }, |
| | | methods: { |
| | | _loadContractInfo: function () { |
| | | let param = { |
| | | params: { |
| | | page: 1, |
| | | row: 1, |
| | | contractId: $that.contractDetailInfo.contractId |
| | | } |
| | | }; |
| | | //发送get请求 |
| | | vc.http.apiGet('/contract/queryContract', |
| | | param, |
| | | function (json) { |
| | | let _contractApplyDetailInfo = JSON.parse(json); |
| | | let _contractApply = _contractApplyDetailInfo.data[0]; |
| | | vc.copyObject(_contractApply, $that.contractDetailInfo); |
| | | }, |
| | | function () { |
| | | console.log('请求失败处理'); |
| | | } |
| | | ); |
| | | }, |
| | | changeTab: function (_tab) { |
| | | $that.contractDetailInfo._currentTab = _tab; |
| | | vc.emit(_tab, 'switch', { |
| | | contractId: $that.contractDetailInfo.contractId, |
| | | contractName: $that.contractDetailInfo.name, |
| | | link: $that.contractDetailInfo.link, |
| | | ownerId: $that.contractDetailInfo.objId |
| | | }) |
| | | }, |
| | | _printContract: function () { |
| | | let _contract = $that.contractDetailInfo; |
| | | window.open("/print.html#/pages/admin/printContract?contractTypeId=" + _contract.contractType + "&contractId=" + _contract.contractId); |
| | | } |
| | | } |
| | | }); |
| | | })(window.vc); |
| | |
| | | param, |
| | | function (json, res) { |
| | | let _json = JSON.parse(json); |
| | | $that.listOwnerCarInfo.total = _json.total; |
| | | $that.listOwnerCarInfo.records = _json.records; |
| | | $that.listOwnerCarInfo.ownerCars = _json.data; |
| | | $that.dealCarAttr(_json.data); |
| | | let cars = _json.data || []; |
| | | |
| | | // 修复数据结构适配 |
| | | let mappedCars = cars.map(function(car) { |
| | | // 字段名转换和默认值处理 |
| | | return { |
| | | carId: car.carId || '', |
| | | carNum: car.carNum || '', |
| | | carTypeCd: car.carTypeCd || '', |
| | | carTypeCdName: car.carTypeCdName || '', |
| | | carTypeName: car.carTypeName || '', |
| | | carColor: car.carColor || '', |
| | | ownerId: car.ownerId || '', |
| | | ownerName: car.ownerName || '', |
| | | link: car.link || '', |
| | | roomName: car.roomName || '', |
| | | areaNum: car.areanum || car.areaNum || '', |
| | | num: car.num || '', |
| | | startTime: car.startTime || '', |
| | | endTime: car.endTime || '', |
| | | leaseType: car.leaseType || '', |
| | | leaseTypeName: car.leaseTypeName || '', |
| | | state: car.state || '', |
| | | memberCarCount: car.memberCarCount || 0, |
| | | iotStateName: car.iotStateName || '', |
| | | iotRemark: car.iotRemark || '', |
| | | remark: car.remark || '', |
| | | floorNum: car.floorNum || '', |
| | | unitNum: car.unitNum || '', |
| | | roomNum: car.roomNum || '', |
| | | firstPaymentDate: car.firstPaymentDate || '', |
| | | paymentDeadlineDate: car.paymentDeadlineDate || '', |
| | | unitPricePerMonth: car.unitPricePerMonth || '' |
| | | }; |
| | | }); |
| | | |
| | | // 修复分页数据 |
| | | let total = _json.total || 0; |
| | | let records = cars.length || 0; |
| | | |
| | | $that.listOwnerCarInfo.total = total; |
| | | $that.listOwnerCarInfo.records = records; |
| | | $that.listOwnerCarInfo.ownerCars = mappedCars; |
| | | $that.dealCarAttr(mappedCars); |
| | | |
| | | vc.emit('pagination', 'init', { |
| | | total: $that.listOwnerCarInfo.records, |
| | | dataCount: $that.listOwnerCarInfo.total, |
| | | total: records, // 使用实际数据条数 |
| | | dataCount: total, |
| | | currentPage: _page |
| | | }); |
| | | }, |