|
@@ -5,127 +5,140 @@
|
|
|
<el-col style="padding-bottom: 10px">
|
|
|
<el-card shadow="always" style="padding: 15px 5px 5px 15px">
|
|
|
<el-row>
|
|
|
- <el-col :span="5" class="col-txt">
|
|
|
- 合同编号:{{ form.contractNo }}
|
|
|
- </el-col>
|
|
|
- <el-col :span="3" class="col-txt"><span>合同原件</span></el-col>
|
|
|
- <el-col :span="3" class="col-input">
|
|
|
+ <el-col :span="5" class="col-txt"><span>网签备案号</span></el-col>
|
|
|
+ <el-col :span="18" class="col-input">
|
|
|
<el-form-item>
|
|
|
- <el-upload
|
|
|
- class="upload-demo"
|
|
|
- action="/server/wx/fileController/uploadImage"
|
|
|
- :http-request="uploadPhoto"
|
|
|
- :before-remove="beforeRemove"
|
|
|
- multiple
|
|
|
- :file-list="contractOriginalList"
|
|
|
- >
|
|
|
- <el-button size="small" type="primary">点击上传</el-button>
|
|
|
- <div slot="file" slot-scope="{file}">
|
|
|
- <a :href="file.url">{{ file.name }}</a>
|
|
|
- <span class="el-upload-list__item-actions">
|
|
|
- <i class="el-icon-delete" @click="handlePictureRemove(file,contractOriginalList)" />
|
|
|
- </span>
|
|
|
- </div>
|
|
|
- </el-upload>
|
|
|
+ <el-input v-model="form.recordNumber" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="3" class="col-txt"><span>其他附件</span></el-col>
|
|
|
- <el-col :span="3" class="col-input">
|
|
|
- <el-form-item>
|
|
|
- <el-upload
|
|
|
- class="upload-demo"
|
|
|
- action="/server/wx/fileController/uploadImage"
|
|
|
- :http-request="uploadContractOther"
|
|
|
- :before-remove="beforeRemove"
|
|
|
- multiple
|
|
|
- :file-list="contractOtherList"
|
|
|
- >
|
|
|
- <el-button size="small" type="primary">点击上传</el-button>
|
|
|
- <div slot="file" slot-scope="{file}">
|
|
|
- <a :href="file.url">{{ file.name }}</a>
|
|
|
- <span class="el-upload-list__item-actions">
|
|
|
- <i class="el-icon-delete" @click="handlePictureRemove(file,contractOtherList)" />
|
|
|
- </span>
|
|
|
- </div>
|
|
|
- </el-upload>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="5" class="col-txt"><span>*合同编号</span></el-col>
|
|
|
+ <el-col :span="18" class="col-input">
|
|
|
+ <el-form-item prop="contractNumber">
|
|
|
+ <el-input v-model="form.contractNumber" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="6" class="col-input">
|
|
|
- <!-- <el-button type="primary" style="float: right" :disabled="effectFlag" :loading="effectLoadingFlag" @click="takeEffect">合同生效</el-button>-->
|
|
|
- </el-col>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
- <el-col :span="5" class="col-txt"><span>合同类别</span></el-col>
|
|
|
+ <el-col :span="5" class="col-txt"><span>出卖人</span></el-col>
|
|
|
<el-col :span="18" class="col-input">
|
|
|
- <el-form-item prop="contractCategory">
|
|
|
- <el-select v-model="form.contractCategory" placeholder="请选择" :disabled="effectFlag">
|
|
|
- <el-option
|
|
|
- v-for="item in dc_data.CONTRACT_CATEGORY"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
- />
|
|
|
- </el-select>
|
|
|
+ <el-form-item>
|
|
|
+ <el-input v-model="form.seller" readonly />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
- <el-col :span="5" class="col-txt"><span>关联项目</span></el-col>
|
|
|
- <el-col :span="15" class="col-input">
|
|
|
+ <!-- 特殊表单 -->
|
|
|
+ <div v-for="(item, index) in form.dynamicItem" :key="index">
|
|
|
+ <el-row style="margin-top: 10px">
|
|
|
+ <el-col :span="2" class="col-txt"><span>购房人{{ index + 1 }}</span></el-col>
|
|
|
+ <el-col :span="4" class="col-input">
|
|
|
+ <el-form-item :prop="'dynamicItem.' + index + '.name'">
|
|
|
+ <el-input
|
|
|
+ v-model="item.name"
|
|
|
+ placeholder="请填写姓名"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="4" class="col-input">
|
|
|
+ <el-form-item :prop="'dynamicItem.' + index + '.identityCard'">
|
|
|
+ <el-input
|
|
|
+ v-model="item.identityCard"
|
|
|
+ placeholder="请填写身份证号"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="4" class="col-input">
|
|
|
+ <el-form-item :prop="'dynamicItem.' + index + '.phone'">
|
|
|
+ <el-input
|
|
|
+ v-model="item.phone"
|
|
|
+ placeholder="请填写手机号"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col v-if="index !== 0" :span="6" class="col-input">
|
|
|
+ <el-form-item :prop="'dynamicItem.' + index + '.relationship'">
|
|
|
+ <el-select
|
|
|
+ v-model="item.relationship"
|
|
|
+ placeholder="与1的关系"
|
|
|
+ filterable
|
|
|
+ :popper-append-to-body="false"
|
|
|
+ popper-class="statistic_base"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="relationship in dc_data.RELATIONSHIP"
|
|
|
+ :key="relationship.value"
|
|
|
+ :label="relationship.label"
|
|
|
+ :value="relationship.value"
|
|
|
+ :popper-append-to-body="false"
|
|
|
+ popper-class="statistic_base"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="2" class="col-input">
|
|
|
+ <el-button v-if="index !== 0" type="danger" size="mini" @click="deleteItem(item, index)">-</el-button>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="5" class="col-txt"><span>房屋</span></el-col>
|
|
|
+ <el-col :span="18" class="col-input">
|
|
|
<el-form-item>
|
|
|
- <el-input
|
|
|
- v-model="projectObject"
|
|
|
- placeholder="请选择项目"
|
|
|
- disabled
|
|
|
+ <el-cascader
|
|
|
+ v-model="form.houseIds"
|
|
|
+ :append-to-body="false"
|
|
|
+ :disabled="isView"
|
|
|
+ style="width: 100%;"
|
|
|
+ :options="TreeData"
|
|
|
+ @change="houseChange"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="4">
|
|
|
- <el-button style="margin-left: 10px" type="primary" :disabled="effectFlag" @click="saleSelect">选择项目</el-button>
|
|
|
- </el-col>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
- <el-col :span="5" class="col-txt"><span>甲方</span></el-col>
|
|
|
- <el-col :span="18" class="col-txt">
|
|
|
- <el-form-item prop="partyA">
|
|
|
- <el-select v-model="form.partyA" placeholder="请选择" :disabled="effectFlag">
|
|
|
- <el-option
|
|
|
- v-for="item in dc_data.PARTY_A"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
- />
|
|
|
- </el-select>
|
|
|
+ <el-col :span="5" class="col-txt"><span>*实测建筑面积</span></el-col>
|
|
|
+ <el-col :span="18" class="col-input">
|
|
|
+ <el-form-item prop="actualBuildArea">
|
|
|
+ <el-input v-model="form.actualBuildArea" readonly />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
- <el-col :span="5" class="col-txt"><span>*乙方/三方协议丙方</span></el-col>
|
|
|
- <el-col :span="15" class="col-input">
|
|
|
- <el-form-item prop="enterpriseObject">
|
|
|
- <el-autocomplete
|
|
|
- v-model="enterpriseObject"
|
|
|
- class="inline-input"
|
|
|
- :fetch-suggestions="querySearch"
|
|
|
- placeholder="请输入公司名称"
|
|
|
- style="width: 95%"
|
|
|
- :disabled="effectFlag"
|
|
|
- @select="enterpriseSelect"
|
|
|
- />
|
|
|
+ <el-col :span="5" class="col-txt"><span>套内建筑面积</span></el-col>
|
|
|
+ <el-col :span="18" class="col-input">
|
|
|
+ <el-form-item>
|
|
|
+ <el-input v-model="form.actualInternalArea" readonly />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="4">
|
|
|
- <el-button v-if="fromAddress != 'goToContract' " type="primary" :disabled="!isAdd" @click="openCompany()">去新增</el-button>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="5" class="col-txt"><span>分摊共有建筑</span></el-col>
|
|
|
+ <el-col :span="18" class="col-input">
|
|
|
+ <el-form-item>
|
|
|
+ <el-input v-model="form.actualShareArea" readonly />
|
|
|
+ </el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
- <el-col :span="5" class="col-txt"><span>三方协议乙方</span></el-col>
|
|
|
+ <el-col :span="5" class="col-txt"><span>房产测绘机构</span></el-col>
|
|
|
<el-col :span="18" class="col-input">
|
|
|
- <el-form-item prop="partyA">
|
|
|
- <el-select v-model="form.partyC" placeholder="请选择" :disabled="effectFlag">
|
|
|
+ <el-form-item>
|
|
|
+ <el-select
|
|
|
+ v-model="form.institution"
|
|
|
+ :popper-append-to-body="false"
|
|
|
+ popper-class="statistic_base"
|
|
|
+ placeholder=""
|
|
|
+ filterable
|
|
|
+ :disabled="isView"
|
|
|
+ >
|
|
|
<el-option
|
|
|
- v-for="item in dc_data.PARTY_C"
|
|
|
+ v-for="item in dc_data.MAPPING_INSTITUTION"
|
|
|
:key="item.value"
|
|
|
+ popper-class="statistic_base"
|
|
|
+ :popper-append-to-body="false"
|
|
|
:label="item.label"
|
|
|
:value="item.value"
|
|
|
/>
|
|
@@ -134,201 +147,120 @@
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
- <el-col :span="5" class="col-txt"><span>*合同日期起止</span></el-col>
|
|
|
- <el-col :span="7" class="col-input">
|
|
|
- <el-form-item prop="startDate">
|
|
|
+ <el-col :span="5" class="col-txt"><span>签约日期</span></el-col>
|
|
|
+ <el-col :span="18" class="col-input">
|
|
|
+ <el-form-item>
|
|
|
<el-date-picker
|
|
|
- v-model="form.startDate"
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
+ v-model="form.signingDate"
|
|
|
type="date"
|
|
|
- placeholder="选择日期"
|
|
|
- :disabled="effectFlag"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="1" class="col-txt"><span>~</span></el-col>
|
|
|
- <el-col :span="7" class="col-input">
|
|
|
- <el-form-item prop="endDate">
|
|
|
- <el-date-picker
|
|
|
- v-model="form.endDate"
|
|
|
+ placeholder="年月日"
|
|
|
value-format="yyyy-MM-dd"
|
|
|
- type="date"
|
|
|
- placeholder="选择日期"
|
|
|
- :picker-options="pickerOptions0"
|
|
|
- :disabled="effectFlag"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
- <el-col :span="5" class="col-txt"><span>*筹备期</span></el-col>
|
|
|
- <el-col :span="5" class="col-txt">
|
|
|
- <el-form-item prop="preparationPeriodType">
|
|
|
- <el-select v-model="form.preparationPeriodType" placeholder="请选择" :disabled="effectFlag">
|
|
|
- <el-option
|
|
|
- v-for="item in dc_data.PREPARATION_PERIOD_TYPE"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
- />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
+ <el-col :span="5" class="col-txt"><span>备注说明</span></el-col>
|
|
|
+ <el-col :span="18" class="col-input">
|
|
|
+ <el-input v-model="form.remark" type="textarea" maxlength="2000" show-word-limit :disabled="isView" />
|
|
|
</el-col>
|
|
|
- <el-col :span="13" class="col-txt">
|
|
|
- <el-form-item prop="preparationPeriod">
|
|
|
- <el-input
|
|
|
- v-model="form.preparationPeriod"
|
|
|
- :disabled="effectFlag"
|
|
|
- />
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-divider />
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="5" class="col-txt"><span style="font-weight: bold;font-size: large">房价款</span></el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="5" class="col-txt"><span>房屋买卖单价(元/㎡)</span></el-col>
|
|
|
+ <el-col :span="18" class="col-input">
|
|
|
+ <el-form-item>
|
|
|
+ <el-input v-model="form.housePrice" readonly />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
- <el-col :span="5" class="col-txt">
|
|
|
- <el-button size="small" type="primary" :disabled="effectFlag" @click="addItem">添加载体</el-button>
|
|
|
+ <el-col :span="5" class="col-txt"><span>总价款(元)</span></el-col>
|
|
|
+ <el-col :span="18" class="col-input">
|
|
|
+ <el-form-item>
|
|
|
+ <el-input v-model="form.totalPrice" />
|
|
|
+ </el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
- <!-- 特殊表单 -->
|
|
|
- <div v-for="(item, index) in form.dynamicItem" :key="index" style="border:1px solid #000;">
|
|
|
- <el-row>
|
|
|
- <el-col :span="5" class="col-txt"><span>*出租载体</span></el-col>
|
|
|
- <el-col :span="16" class="col-input">
|
|
|
- <el-form-item prop="'dynamicItem.' + index + '.estateBuildingRoomNoList'">
|
|
|
- <el-cascader
|
|
|
- v-model="item.estateBuildingRoomNoList"
|
|
|
- :disabled="effectFlag"
|
|
|
- class="full"
|
|
|
- :options="TreeData"
|
|
|
- @change="getArea(item,index)"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="2" class="col-input">
|
|
|
- <el-button v-if="index !== 0" type="danger" size="mini" :disabled="effectFlag" @click="deleteItem(item, index)">-</el-button>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-row>
|
|
|
- <el-col :span="5" class="col-txt"><span>*面积</span></el-col>
|
|
|
- <el-col :span="16" class="col-input">
|
|
|
- <el-form-item prop="'area.' + index + '.area'">
|
|
|
- <el-input
|
|
|
- v-model="item.area"
|
|
|
- :disabled="effectFlag"
|
|
|
- placeholder=""
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-row>
|
|
|
- <el-col :span="5" class="col-txt"><span>*租金单价</span></el-col>
|
|
|
- <el-col :span="5" class="col-txt">
|
|
|
- <el-form-item prop="'dynamicItem.' + index + '.priceType'">
|
|
|
- <el-select v-model="item.priceType" placeholder="请选择" :disabled="effectFlag">
|
|
|
- <el-option
|
|
|
- v-for="dc_item in dc_data.PRICE_TYPE"
|
|
|
- :key="dc_item.value"
|
|
|
- :label="dc_item.label"
|
|
|
- :value="dc_item.value"
|
|
|
- />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="6" class="col-input">
|
|
|
- <el-form-item prop="'dynamicItem.' + index + '.price'">
|
|
|
- <el-input
|
|
|
- v-model="item.price"
|
|
|
- :disabled="effectFlag"
|
|
|
- placeholder="请输入单价"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-row>
|
|
|
- <el-col :span="5" class="col-txt"><span>*月租金(元)</span></el-col>
|
|
|
- <el-col :span="16" class="col-input">
|
|
|
- <el-form-item prop="'dynamicItem.' + index + '.monthPrice'">
|
|
|
- <el-input
|
|
|
- v-model="item.monthPrice"
|
|
|
- :disabled="effectFlag"
|
|
|
- placeholder=""
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-row>
|
|
|
- <el-col :span="5" class="col-txt"><span>物业费单价(元/平方米/月)</span></el-col>
|
|
|
- <el-col :span="16" class="col-input">
|
|
|
- <el-form-item prop="'dynamicItem.' + index + '.propertyManagementFeePrice'">
|
|
|
- <el-input
|
|
|
- v-model="item.propertyManagementFeePrice"
|
|
|
- :disabled="effectFlag"
|
|
|
- placeholder="请输入"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-row>
|
|
|
- <el-col :span="5" class="col-txt"><span>月物业费(元)</span></el-col>
|
|
|
- <el-col :span="16" class="col-input">
|
|
|
- <el-form-item prop="'dynamicItem.' + index + '.monthlyPropertyManagementFee'">
|
|
|
- <el-input
|
|
|
- v-model="item.monthlyPropertyManagementFee"
|
|
|
- :disabled="effectFlag"
|
|
|
- placeholder="请输入"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-row>
|
|
|
- <el-col :span="5" class="col-txt"><span>*租期(月)</span></el-col>
|
|
|
- <el-col :span="16" class="col-input">
|
|
|
- <el-form-item prop="'dynamicItem.' + index + '.leaseCycle'">
|
|
|
- <el-input
|
|
|
- v-model="item.cycle"
|
|
|
- :disabled="effectFlag"
|
|
|
- placeholder="请输入"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </div>
|
|
|
<el-row>
|
|
|
- <el-col :span="5" class="col-txt"><span>*总租金金额(万元)</span></el-col>
|
|
|
+ <el-col :span="5" class="col-txt"><span>买受人产权份额占比为</span></el-col>
|
|
|
<el-col :span="18" class="col-input">
|
|
|
- <el-form-item prop="totalRent">
|
|
|
- <el-input v-model="form.totalRent" :disabled="effectFlag" />
|
|
|
+ <el-form-item>
|
|
|
+ <el-input v-model="form.buyerProportion" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
- <el-col :span="5" class="col-txt"><span>*第一期租金(元)</span></el-col>
|
|
|
+ <el-col :span="5" class="col-txt"><span>买受人出资金额(元)</span></el-col>
|
|
|
<el-col :span="18" class="col-input">
|
|
|
- <el-form-item prop="firstRent">
|
|
|
- <el-input v-model="form.firstRent" :disabled="effectFlag" />
|
|
|
+ <el-form-item>
|
|
|
+ <el-input v-model="form.buyerMoney" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
- <el-col :span="5" class="col-txt"><span>总物业费金额(万元)</span></el-col>
|
|
|
+ <el-col :span="5" class="col-txt"><span>付款方式</span></el-col>
|
|
|
<el-col :span="18" class="col-input">
|
|
|
- <el-form-item prop="totalPropertyCost">
|
|
|
- <el-input v-model="form.totalPropertyCost" :disabled="effectFlag" />
|
|
|
+ <el-form-item>
|
|
|
+ <el-select
|
|
|
+ v-model="form.paymentMethod"
|
|
|
+ placeholder="请选择"
|
|
|
+ size="small"
|
|
|
+ :disabled="isView"
|
|
|
+ :popper-append-to-body="false"
|
|
|
+ popper-class="statistic_base"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in dc_data.PAYMENT_METHOD"
|
|
|
+ :key="item.value"
|
|
|
+ :popper-append-to-body="false"
|
|
|
+ popper-class="statistic_base"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
- <el-col :span="5" class="col-txt"><span>第一期物业费(元)</span></el-col>
|
|
|
+ <el-col :span="5" class="col-txt"><span>首付比例</span></el-col>
|
|
|
<el-col :span="18" class="col-input">
|
|
|
- <el-form-item prop="firstPropertyManagementFee">
|
|
|
- <el-input v-model="form.firstPropertyManagementFee" :disabled="effectFlag" />
|
|
|
+ <el-form-item>
|
|
|
+ <el-select
|
|
|
+ v-model="form.downPaymentsProportion"
|
|
|
+ placeholder="请选择"
|
|
|
+ size="small"
|
|
|
+ :disabled="isView"
|
|
|
+ :popper-append-to-body="false"
|
|
|
+ popper-class="statistic_base"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in dc_data.DOWN_PAYMENT_PROPORTION"
|
|
|
+ :key="item.value"
|
|
|
+ :popper-append-to-body="false"
|
|
|
+ popper-class="statistic_base"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
- <el-col :span="5" class="col-txt"><span>*房屋保证金(元)</span></el-col>
|
|
|
+ <el-col :span="5" class="col-txt"><span>付款截止日</span></el-col>
|
|
|
<el-col :span="18" class="col-input">
|
|
|
- <el-form-item prop="bond">
|
|
|
- <el-input v-model="form.bond" :disabled="effectFlag" />
|
|
|
+ <el-form-item>
|
|
|
+ <el-date-picker
|
|
|
+ v-model="form.deadline"
|
|
|
+ type="date"
|
|
|
+ placeholder="年月日"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -336,62 +268,70 @@
|
|
|
<el-divider />
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
- <el-col :span="5" class="col-txt"><span style="font-weight: bold;font-size: large">*入驻款(元)</span></el-col>
|
|
|
+ <el-col :span="5" class="col-txt"><span style="font-weight: bold;font-size: large">专项维修资金</span></el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="5" class="col-txt"><span>住宅专项维修资金(元/㎡)</span></el-col>
|
|
|
<el-col :span="18" class="col-input">
|
|
|
- <el-form-item prop="settlementPayment">
|
|
|
- <el-input v-model="form.settlementPayment" :disabled="effectFlag" />
|
|
|
+ <el-form-item>
|
|
|
+ <el-date-picker
|
|
|
+ v-model="form.maintenanceFunds"
|
|
|
+ type="date"
|
|
|
+ placeholder="年月日"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
- <el-col :span="5" class="col-txt"><span>签约资料</span></el-col>
|
|
|
+ <el-col :span="5" class="col-txt"><span>总价款(元)</span></el-col>
|
|
|
<el-col :span="18" class="col-input">
|
|
|
+ <el-form-item>
|
|
|
+ <el-input v-model="form.maintenanceTotalPrice" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="5" class="col-txt"><span>合同原件</span></el-col>
|
|
|
+ <el-col :span="5" class="col-input">
|
|
|
<el-form-item>
|
|
|
<el-upload
|
|
|
class="upload-demo"
|
|
|
action="/server/wx/fileController/uploadImage"
|
|
|
- :http-request="uploadSigningMaterials"
|
|
|
+ :http-request="uploadPhoto"
|
|
|
:before-remove="beforeRemove"
|
|
|
multiple
|
|
|
- :file-list="signingMaterialsList"
|
|
|
- :disabled="effectFlag || isView"
|
|
|
+ :file-list="contractOriginalList"
|
|
|
>
|
|
|
<el-button size="small" type="primary">点击上传</el-button>
|
|
|
<div slot="file" slot-scope="{file}">
|
|
|
<a :href="file.url">{{ file.name }}</a>
|
|
|
<span class="el-upload-list__item-actions">
|
|
|
- <i class="el-icon-delete" @click="handlePictureRemove(file,signingMaterialsList)" />
|
|
|
+ <i class="el-icon-delete" @click="handlePictureRemove(file,contractOriginalList)" />
|
|
|
</span>
|
|
|
</div>
|
|
|
</el-upload>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- </el-row>
|
|
|
- <el-row v-if="retreatFlag">
|
|
|
- <el-col :span="5" class="col-txt"><span style="font-weight: bold;font-size: large">退租信息</span></el-col>
|
|
|
- <el-col :span="18" class="col-input" style="border:1px solid transparent;" />
|
|
|
- </el-row>
|
|
|
- <el-row v-if="retreatFlag">
|
|
|
- <el-col :span="5" class="col-txt"><span>退租时间</span></el-col>
|
|
|
- <el-col :span="18" class="col-input">
|
|
|
- <el-form-item prop="retreatDate">
|
|
|
- <el-input v-model="form.retreatDate" disabled/>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-row v-if="retreatFlag">
|
|
|
- <el-col :span="5" class="col-txt"><span>退租确认人</span></el-col>
|
|
|
- <el-col :span="18" class="col-input">
|
|
|
- <el-form-item prop="retreatDate">
|
|
|
- <el-input v-model="form.retreatConfirmName" disabled/>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-row v-if="retreatFlag">
|
|
|
- <el-col :span="5" class="col-txt"><span>退租说明</span></el-col>
|
|
|
- <el-col :span="18" class="col-input">
|
|
|
- <el-form-item prop="retreatRemark">
|
|
|
- <el-input v-model="form.retreatRemark" disabled/>
|
|
|
+ <el-col :span="5" class="col-txt"><span>其他附件</span></el-col>
|
|
|
+ <el-col :span="5" class="col-input">
|
|
|
+ <el-form-item>
|
|
|
+ <el-upload
|
|
|
+ class="upload-demo"
|
|
|
+ action="/server/wx/fileController/uploadImage"
|
|
|
+ :http-request="uploadContractOther"
|
|
|
+ :before-remove="beforeRemove"
|
|
|
+ multiple
|
|
|
+ :file-list="contractOtherList"
|
|
|
+ >
|
|
|
+ <el-button size="small" type="primary">点击上传</el-button>
|
|
|
+ <div slot="file" slot-scope="{file}">
|
|
|
+ <a :href="file.url">{{ file.name }}</a>
|
|
|
+ <span class="el-upload-list__item-actions">
|
|
|
+ <i class="el-icon-delete" @click="handlePictureRemove(file,contractOtherList)" />
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ </el-upload>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -400,8 +340,9 @@
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
<div slot="footer" style="text-align: right">
|
|
|
- <el-button @click="cancel()">取 消</el-button>
|
|
|
- <el-button v-if="!isView" type="primary" @click="confirmSubmit()">确 定</el-button>
|
|
|
+ <el-button @click="cancel()">关 闭</el-button>
|
|
|
+ <el-button type="primary" @click="confirmSubmit()">暂 存</el-button>
|
|
|
+ <el-button type="primary" @click="confirmSubmit()">签 约</el-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -410,23 +351,9 @@ import Base from '@/views/base/base'
|
|
|
import BaseData from '@/views/base/baseData'
|
|
|
import { upload } from '@/static/utils/channel'
|
|
|
|
|
|
-const checkNumber = (rule, value, callback) => {
|
|
|
- const numreg = /^[0-9][0-9]*(\.[0-9]{1,2})?$/
|
|
|
- if (!value && value != 0) {
|
|
|
- return callback(new Error('请输入二位小数或整数'))
|
|
|
- }
|
|
|
- if (numreg.test(value)) {
|
|
|
- callback()
|
|
|
- } else {
|
|
|
- callback(new Error('请输入二位小数或整数'))
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
export default {
|
|
|
name: 'ContractManage',
|
|
|
components: {
|
|
|
- SaleManagement,
|
|
|
- CompanyEdit
|
|
|
},
|
|
|
mixins: [Base, BaseData],
|
|
|
props: {
|
|
@@ -441,124 +368,36 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
data() {
|
|
|
- const validateEnterPrise = (rule, value, callback) => {
|
|
|
- if (!this.enterpriseObject) {
|
|
|
- callback(new Error('请选择乙方!'))
|
|
|
- } else {
|
|
|
- callback()
|
|
|
- }
|
|
|
- }
|
|
|
return {
|
|
|
- dc_key: ['CONTRACT_STATUS', 'PAYMENT_CYCLE', 'TEMPLATE_TYPE', 'SETTLE_IN_STATUS', 'BOND_STATUS',
|
|
|
- 'CONTRACT_TYPE', 'PARTY_C', 'PREPARATION_PERIOD_TYPE', 'PRICE_TYPE', 'CONTRACT_CATEGORY', 'PARTY_A'],
|
|
|
- enterpriseObject: '',
|
|
|
- enterpriseList: [],
|
|
|
- projectObject: '',
|
|
|
- projectList: [],
|
|
|
+ dc_key: ['CONTRACT_STATUS', 'MAPPING_INSTITUTION', 'PAYMENT_METHOD', 'DOWN_PAYMENT_PROPORTION'],
|
|
|
// 弹框相关
|
|
|
dialogVisible: false,
|
|
|
dialogTitle: '新增',
|
|
|
isAdd: true,
|
|
|
- form: this.initForm(),
|
|
|
- rules: {
|
|
|
- contractCategory: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '请选择合同类别',
|
|
|
- trigger: 'change'
|
|
|
- }
|
|
|
- ],
|
|
|
- enterpriseObject: [
|
|
|
- {
|
|
|
- validator: validateEnterPrise,
|
|
|
- message: '请选择乙方',
|
|
|
- trigger: 'change'
|
|
|
- }
|
|
|
- ],
|
|
|
- startDate: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '请选择开始日期',
|
|
|
- trigger: 'change'
|
|
|
- }
|
|
|
- ],
|
|
|
- endDate: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '请选择结束日期',
|
|
|
- trigger: 'change'
|
|
|
- }
|
|
|
- ],
|
|
|
- preparationPeriodType: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '请选择筹备期类型',
|
|
|
- trigger: 'blur'
|
|
|
- }
|
|
|
- ],
|
|
|
- preparationPeriod: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '请选择筹备期',
|
|
|
- trigger: 'blur'
|
|
|
- }
|
|
|
- ],
|
|
|
- totalRent: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- validator: checkNumber,
|
|
|
- trigger: 'blur'
|
|
|
- }
|
|
|
- ],
|
|
|
- firstRent: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '请输入第一期租金(元)',
|
|
|
- trigger: 'change'
|
|
|
- }
|
|
|
- ],
|
|
|
- // totalPropertyCost: [
|
|
|
- // {
|
|
|
- // required: true,
|
|
|
- // message: '请输入总物业费金额(万元)',
|
|
|
- // trigger: 'change'
|
|
|
- // }
|
|
|
- // ],
|
|
|
- // firstPropertyManagementFee: [
|
|
|
- // {
|
|
|
- // required: true,
|
|
|
- // message: '请输入第一期物业费(元)',
|
|
|
- // trigger: 'change'
|
|
|
- // }
|
|
|
- // ],
|
|
|
- bond: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '请输入房屋保证金(元)',
|
|
|
- trigger: 'change'
|
|
|
- }
|
|
|
- ],
|
|
|
- settlementPayment: [
|
|
|
+ form: {
|
|
|
+ dynamicItem: [
|
|
|
{
|
|
|
- required: true,
|
|
|
- message: '请输入房屋保证金(元)',
|
|
|
- trigger: 'change'
|
|
|
+ id: '',
|
|
|
+ customerManagementId: '',
|
|
|
+ name: '',
|
|
|
+ identityCard: '',
|
|
|
+ phone: '',
|
|
|
+ relationship: ''
|
|
|
}
|
|
|
]
|
|
|
},
|
|
|
+ rules: {
|
|
|
+ contractNumber: [{ required: true, trigger: 'blur', message: '请输入合同编号' }],
|
|
|
+ actualBuildArea: [{ required: true, trigger: 'blur', message: '实测建筑面积' }]
|
|
|
+ },
|
|
|
contractOriginalList: [],
|
|
|
contractOtherList: [],
|
|
|
signingMaterialsList: [],
|
|
|
contractId: '',
|
|
|
TreeData: [],
|
|
|
isView: false, // 查看按钮权限,
|
|
|
- dialogSaleVisible: false, // 项目列表
|
|
|
- dialogCompanyVisible: false,
|
|
|
- dialogCompanyTitle: '',
|
|
|
searchTreeData: [],
|
|
|
- excelFlag: false,
|
|
|
- effectFlag: false,
|
|
|
- retreatFlag: false
|
|
|
+ effectFlag: false
|
|
|
}
|
|
|
},
|
|
|
watch: {
|
|
@@ -566,7 +405,6 @@ export default {
|
|
|
},
|
|
|
mounted() {
|
|
|
this.findRoomTree()
|
|
|
- this.findBuildTree()
|
|
|
this.initDict(this.dc_key).then((res) => {
|
|
|
})
|
|
|
},
|
|
@@ -634,67 +472,6 @@ export default {
|
|
|
})
|
|
|
}
|
|
|
},
|
|
|
- addItem(length) {
|
|
|
- this.form.dynamicItem.push({
|
|
|
- estateBuildingRoomNoList: [],
|
|
|
- area: '',
|
|
|
- priceType: '',
|
|
|
- price: '',
|
|
|
- monthPrice: '',
|
|
|
- propertyManagementFeePrice: '',
|
|
|
- monthlyPropertyManagementFee: '',
|
|
|
- cycle: '',
|
|
|
- groupId: '',
|
|
|
- discId: '',
|
|
|
- buildId: '',
|
|
|
- houseId: ''
|
|
|
- })
|
|
|
- },
|
|
|
- // 删除方法
|
|
|
- deleteItem(item, index) {
|
|
|
- this.form.dynamicItem.splice(index, 1)
|
|
|
- },
|
|
|
- // 结束时间小于开始时间
|
|
|
- pickerOptions0: {
|
|
|
- disabledDate: (time) => {
|
|
|
- return time.getTime() > Date.now()
|
|
|
- }
|
|
|
- },
|
|
|
- querySearch(queryString, cb) {
|
|
|
- this.enterpriseList = []
|
|
|
- this.baseCompanyRequest('getAllBaseCompany', { name: queryString, limit: 20 }).then(res => {
|
|
|
- res.data.forEach(item => {
|
|
|
- this.enterpriseList.push({
|
|
|
- id: item.id,
|
|
|
- value: item.qymc,
|
|
|
- shxydm: item.shxydm
|
|
|
- })
|
|
|
- })
|
|
|
- const enterpriseList = this.enterpriseList
|
|
|
- const results = queryString
|
|
|
- ? enterpriseList.filter(this.createFilter(queryString))
|
|
|
- : enterpriseList
|
|
|
- // 调用 callback 返回建议列表的数据
|
|
|
- cb(results)
|
|
|
- })
|
|
|
- },
|
|
|
- createFilter(queryString) {
|
|
|
- return enterpriseObject => {
|
|
|
- return (
|
|
|
- enterpriseObject.value.toLowerCase().indexOf(queryString.toLowerCase()) !== -1
|
|
|
- )
|
|
|
- }
|
|
|
- },
|
|
|
- enterpriseSelect() {
|
|
|
- this.form.enterpriseName = this.enterpriseObject
|
|
|
- const obj = this.enterpriseList.find(item =>
|
|
|
- item.value === this.enterpriseObject
|
|
|
- )
|
|
|
- if (obj !== undefined) {
|
|
|
- this.form.enterpriseId = obj.id
|
|
|
- this.form.creditCode = obj.shxydm
|
|
|
- }
|
|
|
- },
|
|
|
findRoomTree: function() {
|
|
|
const _this = this
|
|
|
this.pubRequest('getTreeData4', '').then((res) => {
|
|
@@ -702,13 +479,6 @@ export default {
|
|
|
}).catch(() => {
|
|
|
})
|
|
|
},
|
|
|
- findBuildTree: function() {
|
|
|
- const _this = this
|
|
|
- this.pubRequest('getTreeData2', '').then((res) => {
|
|
|
- _this.searchTreeData = res.data.data
|
|
|
- }).catch(() => {
|
|
|
- })
|
|
|
- },
|
|
|
uploadPhoto: function(param) {
|
|
|
upload(param, true).then((res) => {
|
|
|
this.contractOriginalList.push(res)
|
|
@@ -719,11 +489,6 @@ export default {
|
|
|
this.contractOtherList.push(res)
|
|
|
})
|
|
|
},
|
|
|
- uploadSigningMaterials: function(param) {
|
|
|
- upload(param, true).then((res) => {
|
|
|
- this.signingMaterialsList.push(res)
|
|
|
- })
|
|
|
- },
|
|
|
initForm: function() {
|
|
|
return {
|
|
|
id: '',
|
|
@@ -876,24 +641,6 @@ export default {
|
|
|
cancel() {
|
|
|
this.$emit('contractAddClose')
|
|
|
},
|
|
|
- openCompany() {
|
|
|
- // this.$refs.company.setVisible(true)
|
|
|
- this.dialogCompanyVisible = true
|
|
|
- this.dialogCompanyTitle = '新增'
|
|
|
- this.$nextTick(() => {
|
|
|
- this.$refs.companyEdit.initData('', true, false)
|
|
|
- })
|
|
|
- },
|
|
|
- closeCompany(data) {
|
|
|
- console.log('执行关闭', data)
|
|
|
- this.dialogCompanyVisible = false
|
|
|
- if (data) {
|
|
|
- this.enterpriseObject = data.qymc
|
|
|
- this.form.enterpriseName = data.qymc
|
|
|
- this.form.creditCode = data.creditCode
|
|
|
- this.form.examineId = data.id
|
|
|
- }
|
|
|
- },
|
|
|
// 计算面积
|
|
|
getArea(val, index) {
|
|
|
console.log('val', val.estateBuildingRoomNoList)
|
|
@@ -908,50 +655,8 @@ export default {
|
|
|
})
|
|
|
}
|
|
|
},
|
|
|
- saleSelect() {
|
|
|
- this.dialogSaleVisible = true
|
|
|
- },
|
|
|
- saleConfirm(data) {
|
|
|
- const _this = this
|
|
|
- console.log('子页面传值==', data.selection)
|
|
|
- // 点击保存
|
|
|
- if (data.type === 'save') {
|
|
|
- this.form.projectId = data.selection[0].id
|
|
|
- this.form.projectName = data.selection[0].projectName
|
|
|
- this.projectObject = data.selection[0].projectName
|
|
|
- // 填充出租载体
|
|
|
- this.baseRoomRequest('getBySaleId', { id: this.form.projectId }).then(res => {
|
|
|
- const data = res.data
|
|
|
- _this.form.dynamicItem = data
|
|
|
- _this.form.dynamicItem.forEach((item) => {
|
|
|
- const groupId = item.groupId
|
|
|
- const discId = item.discId
|
|
|
- const buildId = item.buildId
|
|
|
- const id = item.id
|
|
|
- item.estateBuildingRoomNoList = []
|
|
|
- item.estateBuildingRoomNoList.push(groupId)
|
|
|
- item.estateBuildingRoomNoList.push(discId)
|
|
|
- item.estateBuildingRoomNoList.push(buildId)
|
|
|
- item.estateBuildingRoomNoList.push(id)
|
|
|
- item.area = item.size
|
|
|
- })
|
|
|
- _this.form.dynamicItem = _this.form.dynamicItem.map((item) => {
|
|
|
- const obj = {
|
|
|
- estateBuildingRoomNoList: item.estateBuildingRoomNoList,
|
|
|
- area: item.area
|
|
|
- }
|
|
|
- return obj
|
|
|
- })
|
|
|
- console.log('_this.form.dynamicItem', _this.form.dynamicItem)
|
|
|
- this.$forceUpdate()
|
|
|
- })
|
|
|
- // 填充签约资料
|
|
|
- this.baseProjectRequest('getById', { id: this.form.projectId }).then(res => {
|
|
|
- const data = res.data
|
|
|
- this.signingMaterialsList = data.successPictureAddress ? this.$common.castEval(data.successPictureAddress) : []
|
|
|
- })
|
|
|
- }
|
|
|
- this.dialogSaleVisible = false
|
|
|
+ houseChange() {
|
|
|
+
|
|
|
},
|
|
|
baseRequest(opUrl, postData) {
|
|
|
return this.$channel.globeRequest('ParkContractManageController', opUrl, postData, 'project')
|
|
@@ -959,20 +664,8 @@ export default {
|
|
|
pubRequest(opUrl, postData) {
|
|
|
return this.$channel.globeRequest('ParkInfoController', opUrl, postData, 'project')
|
|
|
},
|
|
|
- userMainExpandRequest(opUrl, postData) {
|
|
|
- return this.$channel.globeRequest('UserMainExpandController', opUrl, postData, 'project')
|
|
|
- },
|
|
|
- baseRentRequest(opUrl, postData) {
|
|
|
- return this.$channel.globeRequest('ContractRentController', opUrl, postData, 'project')
|
|
|
- },
|
|
|
baseRoomRequest(opUrl, postData) {
|
|
|
return this.$channel.globeRequest('ParkRoomController', opUrl, postData, 'project')
|
|
|
- },
|
|
|
- baseCompanyRequest(opUrl, postData) {
|
|
|
- return this.$channel.globeRequest('MnpCompanyController', opUrl, postData, 'project')
|
|
|
- },
|
|
|
- baseProjectRequest(opUrl, postData) {
|
|
|
- return this.$channel.globeRequest('SaleManagementController', opUrl, postData, 'project')
|
|
|
}
|
|
|
}
|
|
|
}
|