LAPTOP-FO2T5SIU\35838 5 months ago
parent
commit
6977f7578f

+ 270 - 0
src/views/reportForms/components/parkRoomIndexDetail.vue

@@ -0,0 +1,270 @@
+<template>
+  <div>
+    <el-row>
+      <el-tabs v-model="activeName" style="font-size: 16px" @tab-click="handleClick">
+        <el-tab-pane label="概览" name="概览">
+          <park-room-index-edit ref="parkRoomIndexEdit" />
+        </el-tab-pane>
+        <el-tab-pane label="认购" name="认购">
+          <el-row>
+            <el-col :span="24">
+              <el-table v-loading="tabLoading" :data="tableData" style="width: 100%" size="mini">
+                <el-table-column type="index" width="60" />
+                <el-table-column label="小区-分期" prop="groupDiscName" width="150" />
+                <el-table-column label="买受人" prop="buyerName" width="200" />
+                <el-table-column label="定金金额" prop="receivableMoney" width="100" />
+                <el-table-column label="定金流水号" prop="serialNumber" width="100" />
+                <el-table-column label="认购房屋" prop="houseName" />
+                <el-table-column label="状态" prop="statusStr" width="110" />
+                <el-table-column label="经办时间" prop="createdName" />
+                <el-table-column label="经办人" prop="createdAt" />
+                <el-table-column header-align="center" label="操作" width="180">
+                  <template scope="scope">
+                    <el-button size="mini" type="text" @click="depositView(scope.row)">查看</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+            </el-col>
+          </el-row>
+        </el-tab-pane>
+        <el-tab-pane label="签约" name="签约">
+          <el-row>
+            <el-col :span="24">
+              <el-table v-loading="tabLoading" :data="tableData" style="width: 100%" size="mini">
+                <el-table-column type="index" width="60" />
+                <el-table-column label="合同编号" prop="contractNumber" />
+                <el-table-column label="网签备案号" prop="recordNumber" />
+                <el-table-column label="买受人" prop="buyerName" width="200" />
+                <el-table-column label="房屋" prop="houseName" width="200" />
+                <el-table-column label="实测建筑面积(㎡)" prop="actualBuildArea" width="110" />
+                <el-table-column label="买卖单价(㎡)" prop="housePrice" />
+                <el-table-column label="买受人产权份额占比" prop="buyerProportionStr" />
+                <el-table-column label="付款方式" prop="paymentMethodStr" />
+                <el-table-column label="应收房款(元)" prop="buyerMoney" />
+                <el-table-column label="应收专项维修资金(元)" prop="maintenanceTotalPrice" />
+                <el-table-column label="合同状态" prop="contractStatusStr" width="110">
+                  <template scope="scope">
+                    <span
+                      :style="{'color':scope.row.contractStatusStr==='已退房'?'red':scope.row.contractStatusStr==='已签约'?'green':'gray'}"
+                    >
+                      {{ scope.row.contractStatusStr }}
+                    </span>
+                  </template>
+                </el-table-column>
+                <el-table-column label="签约日期" prop="signingDate" />
+                <el-table-column header-align="center" label="操作" width="180">
+                  <template scope="scope">
+                    <el-button size="mini" type="text" @click="contractView(scope.row)">查看</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+            </el-col>
+          </el-row>
+        </el-tab-pane>
+        <el-tab-pane label="收退款" name="收退款">
+          <el-row style="text-align: right">
+            <el-button size="small" class="ch-button-warning" @click="handleAddTax">
+              &nbsp;添加为税收核算载体
+            </el-button>
+            <el-button size="small" class="ch-button" @click="handleDeleteTax()">&nbsp;删除核算
+            </el-button>
+          </el-row>
+          <el-row>
+            <el-col :span="24">
+              <el-table ref="multipleTable" v-loading="buildDataFlag" :data="tableData" style="width: 100%" size="mini">
+                <el-table-column type="selection" width="55" />
+                <el-table-column type="index" label="序号" />
+                <el-table-column prop="buildName" label="楼栋号/地块号" />
+                <el-table-column prop="region" label="区域" />
+                <el-table-column prop="floor" label="楼层" />
+                <el-table-column prop="roomNo" label="房号" />
+                <el-table-column prop="size" label="面积" />
+                <el-table-column prop="businessType" label="关联方式" />
+                <el-table-column prop="isTax" label="是否为税收核算载体" />
+              </el-table>
+            </el-col>
+          </el-row>
+        </el-tab-pane>
+      </el-tabs>
+    </el-row>
+    <el-divider />
+    <el-row class="handle-box">
+      <el-col :span="24">
+        <span class="card_title">交易历史</span>
+      </el-col>
+    </el-row>
+
+    <!--定金查看-->
+    <el-dialog
+      :visible.sync="dialogDepositVisible"
+      :close-on-click-modal="false"
+      :close-on-press-escape="false"
+      title=""
+      width="90%"
+      top="20px"
+      class="statistic_base"
+      :append-to-body="true"
+      :modal-append-to-body="true"
+      custom-class="tagdialog"
+    >
+      <add-subscribe v-if="dialogDepositVisible" ref="addSubscribe" @cancel="cancel" />
+    </el-dialog>
+
+    <!--合同签约/修改-->
+    <el-dialog
+      :visible.sync="dialogContractVisible"
+      :close-on-click-modal="false"
+      :close-on-press-escape="false"
+      :title="dialogContractTitle"
+      width="90%"
+      top="20px"
+      class="statistic_base"
+      :append-to-body="true"
+      :modal-append-to-body="true"
+      custom-class="tagdialog"
+    >
+      <contract-add ref="contractAdd" @cancel="cancel" />
+    </el-dialog>
+
+  </div>
+</template>
+
+<script>
+import ParkRoomIndexEdit from '@/views/reportForms/components/parkRoomIndexEdit.vue'
+import Base from '@/views/base/base.vue'
+import BaseData from '@/views/base/baseData.vue'
+import ContractAdd from '@/views/signingManagement/contractManagement/contractAdd.vue'
+import AddSubscribe from '@/views/customerManagement/subscribe/addSubscribe.vue'
+
+export default {
+    name: 'ParkRoomIndexDetailVue',
+    components: { ContractAdd, ParkRoomIndexEdit, AddSubscribe },
+    mixins: [Base, BaseData],
+    data() {
+        return {
+            dc_key: ['DEPOSIT_STATUS', 'PAYMENT_METHODS', 'CONTRACT_STATUS'],
+            activeName: '概览',
+            houseId: '',
+            tableData: [],
+            tabLoading: false,
+            dialogDepositVisible: false,
+            dialogDepositTitle: '',
+            dialogContractVisible: false,
+            dialogContractTitle: ''
+
+        }
+    },
+    methods: {
+        initData(data) {
+            this.initDict(this.dc_key).then((res) => {
+                this.activeName = '概览'
+                this.houseId = data.id
+                if (data.activeName) {
+                    this.activeName = data.activeName
+                }
+                this.$nextTick(() => {
+                    this.$refs.parkRoomIndexEdit.initData(this.houseId)
+                })
+            })
+        },
+        handleClick(tab, event) {
+            this.tableData = []
+            if (tab.name === '概览') {
+                this.$nextTick(() => {
+                    this.$refs.parkRoomIndexEdit.initData(this.houseId)
+                })
+            } else if (tab.name === '认购') {
+                this.getDepositData()
+            } else if (tab.name === '签约') {
+                this.getContractData()
+            } else if (tab.name === '收退款') {
+
+            } else if (tab.name === '开票') {
+
+            }
+        },
+        getDepositData() {
+            const _this = this
+            _this.tabLoading = true
+            const postData = {
+                houseId: this.houseId
+            }
+            this.baseDepositRequest('roomSelectionListAll', postData).then((res) => {
+                if (res.data) {
+                    res.data.forEach(function(item) {
+                        const json = _this.getDepositItemJson(item)
+                        _this.tableData.push(json)
+                    })
+                }
+                _this.tabLoading = false
+            }).catch((e) => {
+                // console.log(e)
+            })
+        },
+        getContractData: function() {
+            const _this = this
+            _this.tabLoading = true
+            const postData = {
+                houseId: this.houseId
+            }
+            this.baseContractRequest('listAll', postData).then((res) => {
+                if (res.data) {
+                    res.data.forEach(function(item) {
+                        const json = _this.getContractItemJson(item)
+                        _this.tableData.push(json)
+                    })
+                }
+                _this.tabLoading = false
+            }).catch((e) => {
+                // console.log(e)
+            })
+        },
+
+        getDepositItemJson: function(item) {
+            item.houseName = item.buildName + '-' + item.roomNo
+            item.statusStr = this.dc_map.DEPOSIT_STATUS[item.status]
+            return item
+        },
+        getContractItemJson: function(item) {
+            if (item.buyerProportion) {
+                item.buyerProportionStr = item.buyerProportion + '%'
+            }
+            item.paymentMethodStr = this.dc_map.PAYMENT_METHODS[item.paymentMethod]
+            item.contractStatusStr = this.dc_map.CONTRACT_STATUS[item.contractStatus]
+            return item
+        },
+        depositView(val) {
+            this.dialogDepositVisible = true
+            this.dialogDepositTitle = '查看'
+            val.isView = true
+            // 新vue时调用的方法
+            this.$nextTick(() => {
+                this.$refs.addSubscribe.initData(val)
+            })
+        },
+        contractView(val) {
+            this.dialogContractVisible = true
+            this.dialogContractTitle = '查看'
+            val.isView = true
+            // 新vue时调用的方法
+            this.$nextTick(() => {
+                this.$refs.contractAdd.initData(val)
+            })
+        },
+        cancel: function() {
+            this.dialogContractVisible = false
+            this.dialogDepositVisible = false
+        },
+        baseDepositRequest(opUrl, postData) {
+            return this.$channel.globeRequest('RoomSelectionInfoController', opUrl, postData, 'project')
+        },
+        baseContractRequest(opUrl, postData) {
+            return this.$channel.globeRequest('ContractManageController', opUrl, postData, 'project')
+        }
+    }
+}
+</script>
+
+<style scoped lang="scss">
+
+</style>

+ 379 - 0
src/views/reportForms/components/parkRoomIndexEdit.vue

@@ -0,0 +1,379 @@
+<template>
+  <div>
+    <el-form ref="houseForm" :model="houseForm" style="width: 100%;padding: 5px">
+      <el-row>
+        <el-col style="padding-bottom: 10px">
+          <el-card shadow="always" style="padding-top: 10px">
+            <el-row>
+              <el-col :span="3" class="col-txt"><span><span class="red-asterisk">*</span>父级</span></el-col>
+              <el-col :span="21" class="col-input">
+                <el-form-item prop="findids">
+                  <el-cascader
+                    v-model="houseForm.findids"
+                    :append-to-body="false"
+                    :disabled="isView"
+                    style="width: 100%;"
+                    :options="options"
+                    clearable
+                  />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="3" class="col-txt"><span><span class="red-asterisk">*</span>户室号</span></el-col>
+              <el-col :span="9" class="col-input">
+                <el-form-item prop="roomNo">
+                  <el-input v-model="houseForm.roomNo" :disabled="isView" />
+                </el-form-item>
+              </el-col>
+              <el-col :span="3" class="col-txt"><span><span class="red-asterisk">*</span>所在层</span></el-col>
+              <el-col :span="9" class="col-input">
+                <el-form-item prop="floor">
+                  <el-input v-model="houseForm.floor" :disabled="isView" />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="3" class="col-txt"><span>预测套内面积(㎡)</span></el-col>
+              <el-col :span="9" class="col-input">
+                <el-form-item>
+                  <el-input v-model="houseForm.predictionInternalArea" :disabled="isView" type="number" />
+                </el-form-item>
+              </el-col>
+
+              <el-col :span="3" class="col-txt"><span>预测分摊面积(㎡)</span></el-col>
+              <el-col :span="9" class="col-input">
+                <el-form-item>
+                  <el-input v-model="houseForm.predictionShareArea" :disabled="isView" type="number" />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="3" class="col-txt"><span>预测建筑面积(㎡)</span></el-col>
+              <el-col :span="9" class="col-input">
+                <el-form-item>
+                  <el-input v-model="houseForm.predictionBuildArea" :disabled="isView" type="number" />
+                </el-form-item>
+              </el-col>
+              <el-col :span="3" class="col-txt"><span>预测土地面积(㎡)</span></el-col>
+              <el-col :span="9" class="col-input">
+                <el-form-item>
+                  <el-input v-model="houseForm.predictionLandArea" :disabled="isView" type="number" />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="3" class="col-txt"><span><span class="red-asterisk">*</span>实测套内面积(㎡)</span></el-col>
+              <el-col :span="9" class="col-input">
+                <el-form-item prop="actualInternalArea">
+                  <el-input v-model="houseForm.actualInternalArea" :disabled="isView" type="number" />
+                </el-form-item>
+              </el-col>
+              <el-col :span="3" class="col-txt"><span><span class="red-asterisk">*</span>实测分摊面积(㎡)</span></el-col>
+              <el-col :span="9" class="col-input">
+                <el-form-item prop="actualShareArea">
+                  <el-input v-model="houseForm.actualShareArea" :disabled="isView" type="number" />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="3" class="col-txt"><span><span class="red-asterisk">*</span>实测建筑面积(㎡)</span></el-col>
+              <el-col :span="9" class="col-input">
+                <el-form-item prop="actualBuildArea">
+                  <el-input v-model="houseForm.actualBuildArea" :disabled="isView" type="number" />
+                </el-form-item>
+              </el-col>
+              <el-col :span="3" class="col-txt"><span>实测土地面积(㎡)</span></el-col>
+              <el-col :span="9" class="col-input">
+                <el-form-item>
+                  <el-input v-model="houseForm.actualLandArea" :disabled="isView" type="number" />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="3" class="col-txt"><span><span class="red-asterisk">*</span>用途:</span></el-col>
+              <el-col :span="9" class="col-input">
+                <el-form-item prop="roomUse">
+                  <el-select
+                    v-model="houseForm.roomUse"
+                    placeholder=""
+                    filterable
+                    clearable
+                    :disabled="isView"
+                  >
+                    <el-option
+                      v-for="item in dc_data.HOUSE_USAGE"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    />
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :span="3" class="col-txt"><span>房屋代码</span></el-col>
+              <el-col :span="9" class="col-input">
+                <el-form-item>
+                  <el-input v-model="houseForm.roomNumber" :disabled="isView" />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="3" class="col-txt"><span>装修情况:</span></el-col>
+              <el-col :span="9" class="col-input">
+                <el-form-item>
+                  <el-select
+                    v-model="houseForm.decorationSituation"
+                    placeholder=""
+                    filterable
+                    clearable
+                    :disabled="isView"
+                  >
+                    <el-option
+                      v-for="item in dc_data.DECORATION_SITUATION"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    />
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :span="3" class="col-txt"><span>2.2米以上面积</span></el-col>
+              <el-col :span="9" class="col-input">
+                <el-form-item>
+                  <el-input v-model="houseForm.twoPointTwo" :disabled="isView" />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="3" class="col-txt"><span>户型</span></el-col>
+              <el-col :span="9" class="col-input">
+                <el-form-item>
+                  <el-select
+                    v-model="houseForm.houseTypeId"
+                    placeholder=""
+                    filterable
+                    clearable
+                    disabled
+                  >
+                    <el-option
+                      v-for="item in houseTypeOption"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    />
+                  </el-select>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="3" class="col-txt"><span>户型图:</span></el-col>
+              <el-col v-if="fileList.length>0" :span="20" class="col-input">
+                <el-form-item>
+                  <el-upload
+                    ref="upload"
+                    action
+                    accept="image/png,image/gif,image/jpg,image/jpeg"
+                    list-type="picture-card"
+                    :file-list="fileList"
+                    :limit="9"
+                    :http-request="uploadHouseTypePicture"
+                    :on-preview="handlePictureCardPreview"
+                    :on-remove="handleRemove"
+                    :on-exceed="handleExceed"
+                    disabled
+                  >
+                    <!--                      <i class="el-icon-plus" />-->
+                    <div slot="tip" class="el-upload__tip">
+                      只能上传jpg/png文件,限制上传9张
+                    </div>
+                  </el-upload>
+                </el-form-item>
+              </el-col>
+              <el-col v-else :span="9" class="col-input">
+                <el-form-item>
+                  <span>未上传</span>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="3" class="col-txt"><span>备注:</span></el-col>
+              <el-col :span="21" class="col-input">
+                <el-form-item>
+                  <el-input v-model="houseForm.remark" type="textarea" maxlength="2000" show-word-limit :disabled="isView" />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="3" class="col-txt"><span><span><span class="red-asterisk">*</span>可售状态:</span></span></el-col>
+              <el-col :span="21" class="col-input">
+                <el-form-item prop="saleStatus">
+                  <el-select
+                    v-model="houseForm.saleStatus"
+                    placeholder="请选择"
+                    :disabled="isView"
+                    clearable
+                  >
+                    <el-option
+                      v-for="item in dc_data.SALE_STATUS"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    />
+                  </el-select>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-card>
+        </el-col>
+      </el-row>
+    </el-form>
+  </div>
+
+</template>
+
+<script>
+import Base from '@/views/base/base'
+import BaseData from '@/views/base/baseData'
+import { upload } from '@/static/utils/channel'
+import constant from '@/static/utils/constant'
+
+export default {
+    name: 'ParkRoomIndexEdit',
+    mixins: [Base, BaseData],
+    data() {
+        return {
+            houseForm: {},
+            dc_key: ['HOUSE_USAGE', 'DECORATION_SITUATION', 'SALE_STATUS', 'SOLD_STATUS'],
+            isView: true,
+            options: [],
+            fileList: [],
+            // 图片预览及其他
+            dialogImageUrl: '',
+            dialogImageVisible: false,
+            houseTypeOption: []
+        }
+    },
+    methods: {
+        initData(data) {
+            this.houseForm.id = data
+            this.getTreeSelectData()
+            this.initDict(this.dc_key).then(res => {
+                this.getById()
+            })
+        },
+        getById() {
+            const _this = this
+            if (_this.houseForm.id) {
+                const postData = {
+                    id: _this.houseForm.id
+                }
+                this.baseRequest('getById', postData)
+                    .then(res => {
+                        if (res.data) {
+                            _this.houseForm = Object.assign({}, _this.houseForm, res.data)
+                            if (res.data.roomUse) {
+                                _this.houseForm.roomUse = res.data.roomUse + ''
+                            }
+                            if (res.data.decorationSituation) {
+                                _this.houseForm.decorationSituation = res.data.decorationSituation + ''
+                            }
+                            if (res.data.houseTypeId) {
+                                _this.houseForm.houseTypeId = res.data.houseTypeId + ''
+                            }
+                            if (res.data.saleStatus) {
+                                _this.houseForm.saleStatus = res.data.saleStatus + ''
+                            }
+
+                            // 回显户型
+                            _this.houseTypeOption = []
+                            _this.baseHouseTypeRequest('listAll', { discId: _this.houseForm.discId }).then(res => {
+                                if (res.data) {
+                                    res.data.forEach(item => {
+                                        _this.houseTypeOption.push({
+                                            label: item.name + ',建筑面积' + item.buildArea + ',使用面积' + item.useArea,
+                                            value: item.id,
+                                            files: item.fileList
+                                        })
+                                    })
+                                    // 回显户型图片
+                                    const obj = _this.houseTypeOption.find(item =>
+                                        item.value === _this.houseForm.houseTypeId
+                                    )
+                                    if (obj !== undefined) {
+                                        this.fileList = []
+                                        const files = JSON.parse(obj.files)
+                                        files.forEach(v => {
+                                            if (v) {
+                                                this.fileList.push({
+                                                    url: constant.BASE_URI + '/FileController/download/' + v.data,
+                                                    id: v.data
+                                                })
+                                            }
+                                        })
+                                    } else {
+                                        _this.houseForm.houseTypeId = ''
+                                    }
+                                }
+                            })
+                            // 填充父级
+                            this.houseForm.findids = []
+                            if (undefined != this.houseForm.groupId && this.houseForm.groupId != null &&
+                                this.houseForm.groupId != '') {
+                                this.houseForm.findids[0] = this.houseForm.groupId
+                                if (undefined != this.houseForm.discId && this.houseForm.discId != null &&
+                                    this.houseForm.discId != '') {
+                                    this.houseForm.findids[1] = this.houseForm.discId
+                                    if (undefined != this.houseForm.buildId && this.houseForm.buildId != null &&
+                                        this.houseForm.buildId != '') {
+                                        this.houseForm.findids[2] = this.houseForm.buildId
+                                    }
+                                }
+                            }
+                        }
+                    })
+                    .catch(() => {})
+            }
+        },
+        getTreeSelectData: function() {
+            this.baseInfoRequest('getTreeData2', {}).then((res) => {
+                this.options = res.data.data
+            }).catch(() => {
+            })
+        },
+        // 上传相关,包括图片、文件
+        handlePictureCardPreview: function(file) {
+            this.handlePicturePreview(file.url)
+        },
+        handlePicturePreview: function(url) {
+            this.dialogImageUrl = url
+            this.dialogImageVisible = true
+        },
+        uploadHouseTypePicture: function(param) {
+            upload(param, true).then((res) => {
+                this.fileList.push(res)
+            })
+        },
+        handleExceed: function() {
+            this.$message.info('超过文件个数限制')
+        },
+        handleRemove: function(item) {
+            const id = item.id
+            const idx = this.fileList.findIndex(item => item.id === id)
+            this.fileList.splice(idx, 1)
+        },
+        baseRequest: function(opUrl, postData) {
+            return this.$channel.baseRequest('ParkRoomController', opUrl, postData, 'User')
+        },
+        baseHouseTypeRequest: function(opUrl, postData) {
+            return this.$channel.baseRequest('HouseTypeController', opUrl, postData, 'Post')
+        },
+        baseInfoRequest: function(opUrl, postData) {
+            return this.$channel.baseRequest('ParkInfoController', opUrl, postData, 'User')
+        }
+    }
+}
+</script>
+
+<style scoped lang="scss">
+
+</style>

+ 332 - 0
src/views/reportForms/parkRoomArchives.vue

@@ -0,0 +1,332 @@
+<template>
+  <div>
+    <el-row class="handle-box" style="margin-bottom: 10px">
+      <el-col :span="2">
+        <div style="text-align: center"><span>楼盘</span></div>
+      </el-col>
+      <el-col :span="4">
+        <el-select
+          v-model="search.groupId"
+          style="width: 100%"
+          clearable
+          filterable
+          :popper-append-to-body="false"
+          popper-class="statistic_base"
+          @change="handleSearch"
+        >
+          <el-option
+            v-for="item in groupOption"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+            :popper-append-to-body="false"
+            popper-class="statistic_base"
+          />
+        </el-select>
+      </el-col>
+      <el-col :span="2">
+        <div style="text-align: center"><span>分期</span></div>
+      </el-col>
+      <el-col :span="4">
+        <el-select
+          v-model="search.discId"
+          style="width: 100%"
+          clearable
+          filterable
+          :popper-append-to-body="false"
+          popper-class="statistic_base"
+          @change="handleSearch"
+        >
+          <el-option
+            v-for="item in discOption"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+            :popper-append-to-body="false"
+            popper-class="statistic_base"
+          />
+        </el-select>
+      </el-col>
+      <el-col :span="2">
+        <div style="text-align: center"><span>单元/楼栋</span></div>
+      </el-col>
+      <el-col :span="4">
+        <el-select
+          v-model="search.buildId"
+          style="width: 100%"
+          clearable
+          filterable
+          :popper-append-to-body="false"
+          popper-class="statistic_base"
+          @change="handleSearch"
+        >
+          <el-option
+            v-for="item in buildOption"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+            :popper-append-to-body="false"
+            popper-class="statistic_base"
+          />
+        </el-select>
+      </el-col>
+      <el-col :span="2">
+        <div style="text-align: center"><span>关键字</span></div>
+      </el-col>
+      <el-col :span="4">
+        <el-input v-model="search.roomNo" />
+      </el-col>
+    </el-row>
+    <el-row class="handle-box" style="margin-bottom: 10px">
+      <el-col :span="24" style="margin-top: 20px">
+        <el-button class="ch-button-warning" size="small" style="float: right" @click="handleReset()"><i class="el-icon-search" />&nbsp;重置</el-button>
+        <el-button class="ch-button" size="small" style="float: right" @click="handleSearch()"><i class="el-icon-search" />&nbsp;查询</el-button>
+      </el-col>
+    </el-row>
+    <el-row class="handle-box">
+      <el-col :span="24">
+        <el-table v-loading="loading" :data="AllData" row-class-name="g_table_row" stripe>
+          <el-table-column label="序号" type="index" width="60" />
+          <el-table-column label="楼盘" prop="groupName" />
+          <el-table-column label="分期" prop="discName" />
+          <el-table-column label="单元/楼栋号" prop="buildName" />
+          <el-table-column label="户室号" prop="roomNo" />
+          <el-table-column label="套内面积(㎡)" prop="actualInternalArea" />
+          <el-table-column label="建筑面积(㎡)" prop="actualBuildArea" />
+          <el-table-column label="装修情况" prop="decorationSituationStr" />
+          <el-table-column label="交易次数" prop="transactionCount" />
+          <el-table-column header-align="center" label="操作" width="180">
+            <template scope="scope">
+              <el-button size="mini" type="text" @click="handleView(scope.row)">详情档案</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+        <div class="table-page">
+          <el-pagination
+            :current-page.sync="currentPage"
+            :page-sizes="[10, 20, 50, 100]"
+            :page-size="pageSize"
+            background
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="allpage"
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+          />
+        </div>
+      </el-col>
+    </el-row>
+
+    <!-- 详情页面 -->
+    <el-dialog
+      :title="'详情'"
+      :visible.sync="dialogVisible"
+      width="75%"
+      top="50px"
+      :close-on-press-escape="false"
+      :close-on-click-modal="false"
+      append-to-body
+    >
+      <park-room-index-detail
+        v-if="dialogVisible"
+        ref="parkRoomIndexDetail"
+      />
+    </el-dialog>
+
+  </div>
+</template>
+<script>
+import Base from '@/views/base/base'
+import BaseData from '@/views/base/baseData'
+import ParkRoomIndexDetail from '@/views/reportForms/components/parkRoomIndexDetail.vue'
+
+export default {
+    name: 'ParkRoomArchives',
+    components: { ParkRoomIndexDetail },
+    mixins: [Base, BaseData],
+    data() {
+        return {
+            dc_key: ['DECORATION_SITUATION'],
+            // 列表相关
+            search: {
+            },
+            AllData: [],
+            loading: false,
+            // 弹框相关
+            dialogVisible: false,
+            rules: {},
+            form: {},
+            dialogTitle: '新增',
+            groupOption: [],
+            discOption: [],
+            buildOption: []
+        }
+    },
+    mounted() {
+        this.getGroupOption()
+        this.getDiscOption()
+        this.getBuildOption()
+        this.initDict(this.dc_key).then((res) => {
+            this.getData()
+        })
+    },
+    methods: {
+
+        getData: function() {
+            const _this = this
+            _this.loading = true
+            _this.AllData = []
+
+            this.search.pageNum = this.currentPage
+            this.search.pageSize = this.pageSize
+            this.baseRequest('reportList', this.search).then((res) => {
+                if (res.data.rows) {
+                    res.data.rows.forEach(function(item) {
+                        const json = _this.getItemJson(item)
+                        _this.AllData.push(json)
+                    })
+                    _this.allpage = res.data.total
+                }
+                _this.loading = false
+            }).catch((e) => {
+                // console.log(e)
+            })
+            // this.initOutData()
+        },
+        handleSearch: function() {
+            this.getData()
+        },
+        handleReset: function() {
+            for (const i in this.search) {
+                if (i !== 'pageNum' && i !== 'pageSize') {
+                    this.search[i] = ''
+                }
+            }
+            this.handleSearch()
+        },
+        getItemJson: function(item) {
+            item.decorationSituationStr = this.dc_map.DECORATION_SITUATION[item.decorationSituation]
+            return item
+        },
+        cancel: function() {
+            this.dialogVisible = false
+        },
+        handleView(val) {
+            val.activeName = '概览'
+            this.dialogVisible = true
+            this.$nextTick(() => {
+                this.$refs.parkRoomIndexDetail.initData(val)
+            })
+        },
+        confirmSubmit: function() {
+            const _this = this
+
+            this.$refs.form.validate(valid => {
+                if (valid) {
+                    let soaUrl = 'edit'
+                    const extraData = {}
+                    const postData = Object.assign({}, _this.form, extraData)
+
+                    if (!this.form.id) {
+                        soaUrl = 'add'
+                    }
+                    this.opRecord(postData, soaUrl)
+                } else {
+                    // console.log('error submit!!')
+                    return false
+                }
+            })
+        },
+        getGroupOption() {
+            this.baseGroupRequest('listAll', {}).then((res) => {
+                const data = res.data
+                this.groupOption = []
+                data.forEach(item => {
+                    const obj = {
+                        value: item.groupId,
+                        label: item.groupName,
+                        key: item.groupId
+                    }
+                    this.groupOption.push(obj)
+                })
+            })
+        },
+        getDiscOption() {
+            this.baseDiscRequest('listAll', {}).then((res) => {
+                const data = res.data
+                this.discOption = []
+                data.forEach(item => {
+                    const obj = {
+                        value: item.id,
+                        label: item.name,
+                        key: item.id
+                    }
+                    this.discOption.push(obj)
+                })
+            })
+        },
+        getBuildOption() {
+            this.baseBuildRequest('listAll', {}).then((res) => {
+                const data = res.data
+                this.buildOption = []
+                data.forEach(item => {
+                    const obj = {
+                        value: item.id,
+                        label: item.buildNum,
+                        key: item.id
+                    }
+                    this.buildOption.push(obj)
+                })
+            })
+        },
+        baseRequest(opUrl, postData) {
+            return this.$channel.globeRequest('ParkRoomController', opUrl, postData, 'project')
+        },
+        baseGroupRequest(opUrl, postData) {
+            return this.$channel.globeRequest('ParkInfoController', opUrl, postData, 'project')
+        },
+        baseDiscRequest(opUrl, postData) {
+            return this.$channel.globeRequest('ParkFloorDiscController', opUrl, postData, 'project')
+        },
+        baseBuildRequest(opUrl, postData) {
+            return this.$channel.globeRequest('MnpBuildingController', opUrl, postData, 'project')
+        }
+    }
+}
+</script>
+
+<style scoped>
+.zt_css{
+    overflow:  hidden;
+    white-space: nowrap;
+    text-overflow:ellipsis;
+}
+.ch-input .el-input__inner {
+    border-color: #32323A;
+}
+.ch-input-size {
+    width: 150px;
+}
+.ch-button {
+    border-color: #32323A;
+    background-color: #32323A;
+    color: #fff;
+}
+.ch-button-warning {
+    margin-left: 10px;
+    border-color: #E6A23C;
+    background-color: #E6A23C;
+    color: #fff;
+}
+.ch-button-export {
+    margin-left: 10px;
+    border-color: #98CC1F;
+    background-color: #98CC1F;
+    color: #fff;
+}
+/deep/.el-dialog__header {
+    padding: 10px 20px;
+}
+/deep/.el-dialog__body {
+    padding: 10px 20px;
+}
+</style>