Explorar el Código

Merge remote-tracking branch 'origin/master'

zt hace 5 meses
padre
commit
5dcdec7db0
Se han modificado 29 ficheros con 1716 adiciones y 538 borrados
  1. 20 0
      src/static/utils/common.js
  2. 2 0
      src/views/buyingBack/buyingBackAdd.vue
  3. 2 0
      src/views/buyingMore/buyingMoreAdd.vue
  4. 23 75
      src/views/customerManagement/component/uploadCost.vue
  5. 21 2
      src/views/customerManagement/intentionalDeposit/addIntentionalDeposit.vue
  6. 19 18
      src/views/customerManagement/numberManagement/addCustomer.vue
  7. 6 6
      src/views/customerManagement/numberManagement/index.vue
  8. 10 5
      src/views/customerManagement/roomChose/addHouse.vue
  9. 2 0
      src/views/customerManagement/subscribe/addSubscribe.vue
  10. 2 2
      src/views/invoice/components/addInvoice.vue
  11. 3 4
      src/views/invoice/formalInvoiceManage.vue
  12. 18 252
      src/views/parkAssets/component/uploadCost.vue
  13. 2 0
      src/views/parkAssets/parkFloorDisc/index.vue
  14. 32 6
      src/views/parkAssets/parkRoom/index.vue
  15. 3 3
      src/views/receiveRefundsManagement/depositManagement/index.vue
  16. 3 3
      src/views/receiveRefundsManagement/intentionalDepositManagement/index.vue
  17. 11 9
      src/views/receiveRefundsManagement/intentionalDepositManagement/toDeposit.vue
  18. 2 0
      src/views/receiveRefundsManagement/maintenanceFundsManagement/addFunds.vue
  19. 2 0
      src/views/receiveRefundsManagement/paymentManagement/addPayment.vue
  20. 2 0
      src/views/receiveRefundsManagement/refundManagement/addRefund.vue
  21. 656 0
      src/views/reportForms/components/parkRoomIndexDetail.vue
  22. 379 0
      src/views/reportForms/components/parkRoomIndexEdit.vue
  23. 332 0
      src/views/reportForms/parkRoomArchives.vue
  24. 4 0
      src/views/signingManagement/contractManagement/contractAdd.vue
  25. 1 1
      src/views/transactionRecord/refundRecordIndex.vue
  26. 150 149
      src/views/workflow/components/myProcess/applyAgainPayment.vue
  27. 2 0
      src/views/workflow/components/myProcess/applyPayment.vue
  28. 2 0
      src/views/workflow/components/myProcess/applyPaymentConfirm.vue
  29. 5 3
      src/views/workflow/components/myProcess/applyPaymentDetail.vue

+ 20 - 0
src/static/utils/common.js

@@ -435,6 +435,26 @@ export default {
         const longitude1 = longitude0 + (D - (1 + 2 * T + C) * D * D * D / 6 + (5 - 2 * C + 28 * T - 3 * C * C + 8 * ee + 24 * T * T) * D * D * D * D * D / 120) / Math.cos(fai)
         const latitude1 = fai - (NN * Math.tan(fai) / R) * (D * D / 2 - (5 + 3 * T + 10 * C - 4 * C * C - 9 * ee) * D * D * D * D / 24 + (61 + 90 * T + 298 * C + 45 * T * T - 256 * ee - 3 * C * C) * D * D * D * D * D * D / 720)
         return { lng: longitude1 / iPI, lat: latitude1 / iPI }
+    },
+
+    beforeUploadJustWordExcel(file) {
+        const fileSuffix = file.name.substring(file.name.lastIndexOf('.') + 1)
+
+        const whiteList = ['pdf', 'doc', 'docx', 'xls', 'xlsx']
+
+        if (whiteList.indexOf(fileSuffix) === -1) {
+            this.$message.error('上传文件只能是 pdf、doc、docx、xls、xlsx格式')
+            return false
+        }
+
+        const isLt2M = file.size / 1024 / 1024 < 50
+
+        if (!isLt2M) {
+            this.$message.error('上传文件大小不能超过 5MB')
+            return false
+        }
     }
+
+
 }
 

+ 2 - 0
src/views/buyingBack/buyingBackAdd.vue

@@ -140,6 +140,8 @@
                     :before-remove="beforeRemove"
                     multiple
                     :file-list="fileList"
+                    :limit="6"
+                    :before-upload="$common.beforeUploadJustWordExcel"
                   >
                     <el-button v-if="!isView" size="small" type="primary">点击上传</el-button>
                     <div slot="file" slot-scope="{file}">

+ 2 - 0
src/views/buyingMore/buyingMoreAdd.vue

@@ -140,6 +140,8 @@
                     :before-remove="beforeRemove"
                     multiple
                     :file-list="fileList"
+                    :limit="6"
+                    :before-upload="$common.beforeUploadJustWordExcel"
                   >
                     <el-button v-if="!isView" size="small" type="primary">点击上传</el-button>
                     <div slot="file" slot-scope="{file}">

+ 23 - 75
src/views/customerManagement/component/uploadCost.vue

@@ -59,11 +59,11 @@
           :data="tableData"
           style="width: 100%;"
         >
-          <el-table-column align="center" label="小区-分期" prop="groupDiscName">
-            <template v-slot="scope">
-              <span>{{ scope.row.groupNameStr + '-' + scope.row.discNameStr }}</span>
-            </template>
-          </el-table-column>
+<!--          <el-table-column align="center" label="小区-分期" prop="groupDiscName">-->
+<!--            <template v-slot="scope">-->
+<!--              <span>{{ scope.row.groupNameStr + '-' + scope.row.discNameStr }}</span>-->
+<!--            </template>-->
+<!--          </el-table-column>-->
           <el-table-column align="center" label="批次号" prop="batchNumber">
             <template v-slot="scope">
               <span>{{ scope.row.batchNumberStr }}</span>
@@ -81,7 +81,7 @@
           </el-table-column>
           <el-table-column align="center" label="异常原因" prop="reason">
             <template v-slot="scope">
-              <span style="color: red">{{ scope.row.reason }}</span>
+              <span style="color: red">{{ scope.row.reasonStr }}</span>
             </template>
           </el-table-column>
         </el-table>
@@ -97,7 +97,7 @@
         >导入</el-button>
         <el-button
           v-if="isImport"
-          type="primary"
+          type="danger"
           :loading="excelFlag"
           @click="exportError()"
         >
@@ -218,74 +218,21 @@ export default {
                 _this.excelFlag = false
             })
         },
-        s2ab(s) {
-            var cuf
-            var i
-            if (typeof ArrayBuffer !== 'undefined') {
-                cuf = new ArrayBuffer(s.length)
-                var view = new Uint8Array(cuf)
-                for (i = 0; i !== s.length; i++) {
-                    view[i] = s.charCodeAt(i) & 0xFF
-                }
-                return cuf
-            } else {
-                cuf = new Array(s.length)
-                for (i = 0; i !== s.length; ++i) {
-                    cuf[i] = s.charCodeAt(i) & 0xFF
-                }
-                return cuf
-            }
-        },
         downloadTemplate() {
-            const outData = []
-            const title = []
-            title.push('小区名称')
-            title.push('分期名称')
-            title.push('选房日')
-            title.push('批次号')
-            title.push('选房号')
-            title.push('姓名')
-            title.push('身份证号')
-            title.push('手机号')
-            title.push('关系')
-            title.push('顺序号')
-            outData.push(title)
-            const outSize = []
-            title.forEach(item => {
-                if (item.length > 4) {
-                    outSize.push({
-                        wch: 30
-                    })
-                } else {
-                    outSize.push({
-                        wch: 15
-                    })
-                }
+            axios({
+                headers: {
+                    'MVVM-Key': String(new Date().getTime()),
+                    xx: 'anything'
+                },
+                method: 'post',
+                url: constant.BASE_URI + '/CustomerManagementController/downLoadTemplate',
+                responseType: 'blob',
+                data: this.tableData
+            }).then(res => {
+                this.downloadExcel(res.data, '选房客户导入模板.xlsx')
+            }).catch((err) => {
+                console.log(err)
             })
-            const fileName = '导入模版'
-            const ws = XLSX.utils.aoa_to_sheet(outData)
-            ws['!cols'] = outSize
-            ws['!rows'] = []
-            const wb = XLSX.utils.book_new()
-            XLSX.utils.book_append_sheet(wb, ws, fileName)
-            const tmpDown = new Blob([
-                this.s2ab(
-                    XLSXStyle.write(wb, {
-                        bookType: 'xlsx',
-                        bookSST: true,
-                        type: 'binary',
-                        cellStyles: true
-                    })
-                )
-            ])
-            const elink = document.createElement('a')
-            elink.download = decodeURIComponent(fileName + '.xlsx')
-            elink.style.display = 'none'
-            elink.href = URL.createObjectURL(tmpDown)
-            document.body.appendChild(elink)
-            elink.click()
-            URL.revokeObjectURL(elink.href) // 释放URL 对象
-            document.body.removeChild(elink)
         },
         handleClose() {
             this.dialogVisible = false
@@ -306,11 +253,12 @@ export default {
             document.body.removeChild(elink)
         },
         getItemJson(item) {
-            item.groupNameStr = item.groupName.replace('{', '').replace('}', '')
-            item.discNameStr = item.discName ? item.discName.replace('{', '').replace('}', '') : ''
+            // item.groupNameStr = item.groupName.replace('{', '').replace('}', '')
+            // item.discNameStr = item.discName ? item.discName.replace('{', '').replace('}', '') : ''
             item.batchNumberStr = item.batchNumber ? item.batchNumber.replace('{', '').replace('}', '') : ''
             item.roomSelectionNumberStr = item.roomSelectionNumber ? item.roomSelectionNumber.replace('{', '').replace('}', '') : ''
             item.buyerNameStr = item.buyerName ? item.buyerName.replace('{', '').replace('}', '') : ''
+            item.reasonStr = item.reason ? item.reason.replace('{', '').replace('}', '') : ''
             return item
         }
     }

+ 21 - 2
src/views/customerManagement/intentionalDeposit/addIntentionalDeposit.vue

@@ -33,7 +33,7 @@
         <el-col style="padding-bottom: 10px">
           <span class="card_title">意向金信息</span>
           <el-card shadow="always" style="padding: 15px 5px 5px 15px">
-            <el-row>
+            <el-row v-if="form.serialNumber">
               <el-col :span="3" class="col-txt"><span>意向金编号:</span></el-col>
               <el-col :span="3" class="col-txt"><span>{{ serialNumber }}</span></el-col>
             </el-row>
@@ -129,6 +129,8 @@
                     :before-remove="beforeRemove"
                     multiple
                     :file-list="fileList"
+                    :limit="6"
+                    :before-upload="$common.beforeUploadJustWordExcel"
                   >
                     <el-button size="small" type="primary">点击上传</el-button>
                     <div slot="file" slot-scope="{file}" style="overflow:hidden;white-space: nowrap;text-overflow:ellipsis">
@@ -238,7 +240,7 @@ export default {
                     this.dateStr = this.form.createdAt
                     this.username = this.form.createdName
                 } else {
-                    this.getSerialNumber(val)
+                    // this.getSerialNumber(val)
                     this.getFQById(val)
                 }
             })
@@ -341,6 +343,23 @@ export default {
             }).catch((err) => {
             })
         },
+        // beforeUpload(file) {
+        //     const fileSuffix = file.name.substring(file.name.lastIndexOf('.') + 1)
+        //
+        //     const whiteList = ['pdf', 'doc', 'docx', 'xls', 'xlsx']
+        //
+        //     if (whiteList.indexOf(fileSuffix) === -1) {
+        //         this.$message.error('上传文件只能是 pdf、doc、docx、xls、xlsx格式')
+        //         return false
+        //     }
+        //
+        //     const isLt2M = file.size / 1024 / 1024 < 50
+        //
+        //     if (!isLt2M) {
+        //         this.$message.error('上传文件大小不能超过 5MB')
+        //         return false
+        //     }
+        // },
         baseRequest(opUrl, postData) {
             return this.$channel.globeRequest('IntentionalDepositController', opUrl, postData, 'project')
         },

+ 19 - 18
src/views/customerManagement/numberManagement/addCustomer.vue

@@ -6,7 +6,7 @@
           <span class="card_title">基本信息</span>
           <el-card shadow="always" style="padding: 15px 5px 5px 15px">
             <el-row>
-              <el-col :span="3" class="col-txt"><span><span class="red-asterisk">*</span>小区-分期</span></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="findids">
                   <el-cascader
@@ -17,6 +17,7 @@
                     :options="options"
                     clearable
                     @change="handleChange"
+                    disabled
                   />
                 </el-form-item>
               </el-col>
@@ -162,7 +163,7 @@ export default {
                 ]
             },
             rules: {
-                findids: [{ required: true, message: '请选择小区-分期', trigger: 'change' }],
+                // findids: [{ required: true, message: '请选择小区-分期', trigger: 'change' }],
                 roomSelectionDate: [{ required: true, message: '请输入选房日', trigger: 'change' }],
                 batchNumber: [{ required: true, message: '请输入批次号', trigger: 'blur' }],
                 roomSelectionNumber: [{ required: true, message: '请输入选房号', trigger: 'blur' }],
@@ -218,20 +219,20 @@ export default {
         },
         confirmSubmit: function() {
             const _this = this
-            if (!_this.form.findids[0]) {
-                this.$message({
-                    message: '请选择小区',
-                    type: 'warning'
-                })
-                return
-            }
-            if (!_this.form.findids[1]) {
-                this.$message({
-                    message: '请选择分期',
-                    type: 'warning'
-                })
-                return
-            }
+            // if (!_this.form.findids[0]) {
+            //     this.$message({
+            //         message: '请选择小区',
+            //         type: 'warning'
+            //     })
+            //     return
+            // }
+            // if (!_this.form.findids[1]) {
+            //     this.$message({
+            //         message: '请选择分期',
+            //         type: 'warning'
+            //     })
+            //     return
+            // }
             this.$refs.form.validate(valid => {
                 if (valid) {
                     _this.addLoading = true
@@ -240,8 +241,8 @@ export default {
                         soaUrl = 'edit'
                     }
                     const extraData = {
-                        groupId: _this.form.findids[0],
-                        discId: _this.form.findids[1],
+                        // groupId: _this.form.findids[0],
+                        // discId: _this.form.findids[1],
                         buyerJson: JSON.stringify(_this.form.dynamicItem)
                     }
                     const postData = Object.assign({}, _this.form, extraData)

+ 6 - 6
src/views/customerManagement/numberManagement/index.vue

@@ -58,7 +58,7 @@
       <el-col :span="24" style="margin-top: 20px">
         <el-button size="small" class="ch-button" style="float: right; margin-top: 4px" @click="downLoad"><i class="el-icon-menu" />&nbsp;选房通知单</el-button>
         <el-button size="small" class="ch-button-danger" style="float: right; margin-top: 4px;margin-right: 10px;" @click="handleDelete"><i class="el-icon-menu" />&nbsp;删除</el-button>
-        <el-button disabled size="small" class="ch-button-export" style="float: right;margin-top: 4px" @click="batchImport()"><i class="el-icon-menu" />&nbsp;批量导入</el-button>
+        <el-button size="small" class="ch-button-export" style="float: right;margin-top: 4px" @click="batchImport()"><i class="el-icon-menu" />&nbsp;批量导入</el-button>
         <el-button size="small" class="ch-button-add" style="float: right; margin-right: 10px; margin-top: 4px" @click="handleAdd()"><i class="el-icon-menu" />&nbsp;新增</el-button>
         <el-button size="small" class="ch-button" style="float: right; margin-top: 4px" @click="handleSearch()"><i class="el-icon-menu" />&nbsp;查询</el-button>
         <el-button size="small" class="ch-button-warning" style="float: right;margin-top: 4px" @click="handleReset()"><i class="el-icon-menu" />&nbsp;重置</el-button>
@@ -83,13 +83,13 @@
             width="55"
           />
           <el-table-column type="index" label="序号" width="60" />
-          <el-table-column label="小区-分期" prop="groupDiscName" width="180" />
           <el-table-column label="批次号" prop="batchNumber" />
           <el-table-column label="选房号" prop="roomSelectionNumber" />
           <el-table-column label="买受人" prop="buyerName" width="300" />
           <el-table-column label="选房日期" prop="roomSelectionDate" width="180" />
           <el-table-column label="购房状态" prop="statusStr" />
-          <el-table-column label="意向金状态" prop="intentionalDepositStatusStr" />
+          <el-table-column label="意向金状态" prop="intentionalDepositStatusStr" width="130"/>
+          <el-table-column label="小区-分期" prop="groupDiscName" width="180" />
           <el-table-column label="意向房屋" prop="houseName" width="180" />
           <el-table-column label="操作" width="600">
             <template scope="scope">
@@ -503,9 +503,9 @@ export default {
                         }
                         this.groupOption.push(obj)
                     })
-                    if (firstLoad) {
-                        this.checkedBox(this.groupOption[1].value)
-                    }
+                    // if (firstLoad) {
+                    //     this.checkedBox(this.groupOption[1].value)
+                    // }
                 }
             })
         },

+ 10 - 5
src/views/customerManagement/roomChose/addHouse.vue

@@ -156,20 +156,20 @@ export default {
     },
     methods: {
         initData(data) {
-            console.log('data', data)
+            // console.log('data', data)
             this.getByCustomerManagementId(data.customerManagementId)
             this.initDict(this.dc_key).then(res => {
                 this.customerManagementId = data.customerManagementId
-                this.groupId = data.groupId
-                this.discId = data.discId
+                // this.groupId = data.groupId
+                // this.discId = data.discId
                 this.getData(data)
             })
         },
         handleAdd() {
             this.dialogRoomVisible = true
             const data = {
-                level: 2,
-                nodeId: this.discId
+                // level: 2,
+                // nodeId: this.discId
             }
             // 新vue时调用的方法
             this.$nextTick(() => {
@@ -235,6 +235,11 @@ export default {
                         type: 'success'
                     })
                     this.cancel()
+                } else {
+                    this.$message({
+                        message: res.data.msg,
+                        type: 'error'
+                    })
                 }
             }).catch((err) => {
                 this.$message({

+ 2 - 0
src/views/customerManagement/subscribe/addSubscribe.vue

@@ -101,6 +101,8 @@
                     :before-remove="beforeRemove"
                     multiple
                     :file-list="fileList"
+                    :limit="6"
+                    :before-upload="$common.beforeUploadJustWordExcel"
                   >
                     <el-button size="small" type="primary">点击上传</el-button>
                     <div slot="file" slot-scope="{file}" style="overflow:hidden;white-space: nowrap;text-overflow:ellipsis">

+ 2 - 2
src/views/invoice/components/addInvoice.vue

@@ -113,7 +113,7 @@
                   <!--                      :value="item.value"-->
                   <!--                    />-->
                   <!--                  </el-select>-->
-                  <el-input v-model="form.invoiceTax" readonly />
+                  <el-input v-model="form.invoiceTax" />
                 </el-form-item>
               </el-col>
             </el-row>
@@ -207,7 +207,7 @@ export default {
             this.baseRequest('getBankTaxRateByFloor_2', data).then(res => {
                 if (res.data) {
                     this.form.invoiceSellerBank = res.data.invoiceSellerBank
-                    this.form.invoiceTax = res.data.invoiceTax
+                    this.form.invoiceTax = res.data.invoiceTax == null ? '0' : res.data.invoiceTax
                 }
             })
         },

+ 3 - 4
src/views/invoice/formalInvoiceManage.vue

@@ -17,7 +17,7 @@
         <span>推送状态</span>
       </el-col>
       <el-col :span="4" class="col-input">
-        <el-select v-model="search.sendStatus" style="width: 100%" placeholder="请选择" >
+        <el-select v-model="search.sendStatus" style="width: 100%" placeholder="请选择">
           <el-option
             v-for="item in dc_data.SEND_STATUS"
             :key="item.value"
@@ -34,7 +34,6 @@
           v-model="search.invoiceStatus"
           style="width: 100%"
           filterable
-
         >
           <el-option
             v-for="item in dc_data.INVOICE_STATUS"
@@ -125,8 +124,8 @@
           <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="receivableMoney" />
-          <el-table-column label="已收(元)" prop="receivedMoney" />
+          <el-table-column label="应收(元)" prop="receivableMoney" width="100" />
+          <el-table-column label="已收(元)" prop="receivedMoney" width="100" />
           <el-table-column label="收款状态" prop="collectionStatusStr" width="110">
             <template scope="scope">
               <span

+ 18 - 252
src/views/parkAssets/component/uploadCost.vue

@@ -455,72 +455,6 @@ export default {
             }
         },
         downloadGroupTemplate() {
-            // const outData = []
-            // const title = []
-            // title.push('楼盘/小区名称')
-            // title.push('性质')
-            // title.push('预销售许可证编号')
-            // title.push('开发公司')
-            // title.push('总建筑面积(㎡)')
-            // title.push('总用地面积(㎡)')
-            // title.push('立项批文')
-            // title.push('工程规划许可证')
-            // title.push('施工许可证')
-            // title.push('土地证号')
-            // title.push('用地许可证号')
-            // title.push('容积率')
-            // title.push('绿化率')
-            // title.push('标准单价')
-            // title.push('超标单价')
-            // title.push('楼盘面积测绘状态')
-            // title.push('楼盘销售状态')
-            // title.push('行政区划')
-            // title.push('详细地址')
-            // title.push('备注')
-            //
-            // outData.push(title)
-            // const outSize = []
-            // title.forEach(item => {
-            //     if (item.length > 4) {
-            //         outSize.push({
-            //             wch: 30
-            //         })
-            //     } else {
-            //         outSize.push({
-            //             wch: 15
-            //         })
-            //     }
-            // })
-            // let fileName = '模板'
-            // if (this.importTitle.includes('批量导入')) {
-            //     fileName = '楼盘导入模版'
-            // }
-            // // if (this.importTitle.includes('批量更新')) {
-            // //     fileName = '更新模板'
-            // // }
-            // const ws = XLSX.utils.aoa_to_sheet(outData)
-            // ws['!cols'] = outSize
-            // ws['!rows'] = []
-            // const wb = XLSX.utils.book_new()
-            // XLSX.utils.book_append_sheet(wb, ws, fileName)
-            // const tmpDown = new Blob([
-            //     this.s2ab(
-            //         XLSXStyle.write(wb, {
-            //             bookType: 'xlsx',
-            //             bookSST: true,
-            //             type: 'binary',
-            //             cellStyles: true
-            //         })
-            //     )
-            // ])
-            // const elink = document.createElement('a')
-            // elink.download = decodeURIComponent(fileName + '.xlsx')
-            // elink.style.display = 'none'
-            // elink.href = URL.createObjectURL(tmpDown)
-            // document.body.appendChild(elink)
-            // elink.click()
-            // URL.revokeObjectURL(elink.href) // 释放URL 对象
-            // document.body.removeChild(elink)
             axios({
                 headers: {
                     'MVVM-Key': String(new Date().getTime()),
@@ -537,59 +471,6 @@ export default {
             })
         },
         downloadFQTemplate() {
-            // const outData = []
-            // const title = []
-            // title.push('楼盘/小区名称')
-            // title.push('分期名称')
-            // title.push('房屋买卖单价(元/㎡)')
-            // title.push('物业费单价(元/㎡)')
-            // title.push('住宅专项维修资金(元/㎡)')
-            // title.push('认购金(元)')
-            // title.push('共持比例')
-            // title.push('支付方式')
-            // outData.push(title)
-            // const outSize = []
-            // title.forEach(item => {
-            //     if (item.length > 4) {
-            //         outSize.push({
-            //             wch: 30
-            //         })
-            //     } else {
-            //         outSize.push({
-            //             wch: 15
-            //         })
-            //     }
-            // })
-            // let fileName = '模板'
-            // if (this.importTitle.includes('批量导入')) {
-            //     fileName = '楼盘分期导入'
-            // }
-            // // if (this.importTitle === '批量更新') {
-            // //     fileName = '更新模板'
-            // // }
-            // const ws = XLSX.utils.aoa_to_sheet(outData)
-            // ws['!cols'] = outSize
-            // ws['!rows'] = []
-            // const wb = XLSX.utils.book_new()
-            // XLSX.utils.book_append_sheet(wb, ws, fileName)
-            // const tmpDown = new Blob([
-            //     this.s2ab(
-            //         XLSXStyle.write(wb, {
-            //             bookType: 'xlsx',
-            //             bookSST: true,
-            //             type: 'binary',
-            //             cellStyles: true
-            //         })
-            //     )
-            // ])
-            // const elink = document.createElement('a')
-            // elink.download = decodeURIComponent(fileName + '.xlsx')
-            // elink.style.display = 'none'
-            // elink.href = URL.createObjectURL(tmpDown)
-            // document.body.appendChild(elink)
-            // elink.click()
-            // URL.revokeObjectURL(elink.href) // 释放URL 对象
-            // document.body.removeChild(elink)
             axios({
                 headers: {
                     'MVVM-Key': String(new Date().getTime()),
@@ -606,71 +487,6 @@ export default {
             })
         },
         downloadBuildTemplate() {
-            // const outData = []
-            // const title = []
-            // title.push('楼盘/小区名称')
-            // title.push('分期名称')
-            // title.push('单元/楼栋号')
-            // title.push('施工号')
-            // title.push('总面积(㎡)')
-            // title.push('住宅面积(㎡)')
-            // title.push('非住宅面积(㎡)')
-            // title.push('占地面积(㎡)')
-            // title.push('地下面积(㎡)')
-            // title.push('房号')
-            // title.push('套数')
-            // title.push('总层数')
-            // title.push('地上层数')
-            // title.push('地下层数')
-            // title.push('结构')
-            // title.push('行政区划')
-            // title.push('地号')
-            // title.push('备注')
-            // title.push('标准价格参考层及差价系数备注说明')
-            //
-            // outData.push(title)
-            // const outSize = []
-            // title.forEach(item => {
-            //     if (item.length > 4) {
-            //         outSize.push({
-            //             wch: 30
-            //         })
-            //     } else {
-            //         outSize.push({
-            //             wch: 15
-            //         })
-            //     }
-            // })
-            // let fileName = '模板'
-            // if (this.importTitle.includes('批量导入')) {
-            //     fileName = '楼栋管理模板'
-            // }
-            // // if (this.importTitle === '批量更新') {
-            // //     fileName = '更新模板'
-            // // }
-            // const ws = XLSX.utils.aoa_to_sheet(outData)
-            // ws['!cols'] = outSize
-            // ws['!rows'] = []
-            // const wb = XLSX.utils.book_new()
-            // XLSX.utils.book_append_sheet(wb, ws, fileName)
-            // const tmpDown = new Blob([
-            //     this.s2ab(
-            //         XLSXStyle.write(wb, {
-            //             bookType: 'xlsx',
-            //             bookSST: true,
-            //             type: 'binary',
-            //             cellStyles: true
-            //         })
-            //     )
-            // ])
-            // const elink = document.createElement('a')
-            // elink.download = decodeURIComponent(fileName + '.xlsx')
-            // elink.style.display = 'none'
-            // elink.href = URL.createObjectURL(tmpDown)
-            // document.body.appendChild(elink)
-            // elink.click()
-            // URL.revokeObjectURL(elink.href) // 释放URL 对象
-            // document.body.removeChild(elink)
             axios({
                 headers: {
                     'MVVM-Key': String(new Date().getTime()),
@@ -687,71 +503,20 @@ export default {
             })
         },
         downloadRoomTemplate() {
-            const outData = []
-            const title = []
-            title.push('楼盘/小区名称')
-            title.push('分期名称')
-            title.push('单元/楼栋号')
-            title.push('户室号')
-            title.push('所在层')
-            title.push('预测套内面积')
-            title.push('预测分摊面积')
-            title.push('预测建筑面积')
-            title.push('预测土地面积')
-            title.push('实测套内面积')
-            title.push('实测分摊面积')
-            title.push('实测建筑面积')
-            title.push('实测土地面积')
-            title.push('用途')
-            title.push('户编号')
-            title.push('装修情况')
-            title.push('2.2M以')
-            title.push('户型')
-            title.push('备注')
-            title.push('可售状态')
-            outData.push(title)
-            const outSize = []
-            title.forEach(item => {
-                if (item.length > 4) {
-                    outSize.push({
-                        wch: 30
-                    })
-                } else {
-                    outSize.push({
-                        wch: 15
-                    })
-                }
+            axios({
+                headers: {
+                    'MVVM-Key': String(new Date().getTime()),
+                    xx: 'anything'
+                },
+                method: 'post',
+                url: constant.BASE_URI + '/ParkRoomController/downLoadTemplate',
+                responseType: 'blob',
+                data: this.tableData
+            }).then(res => {
+                this.downloadExcel(res.data, '房间导入模板.xlsx')
+            }).catch((err) => {
+                console.log(err)
             })
-            let fileName = '模板'
-            if (this.importTitle.includes('批量导入')) {
-                fileName = '房间管理导入'
-            }
-            // if (this.importTitle === '批量更新') {
-            //     fileName = '更新模板'
-            // }
-            const ws = XLSX.utils.aoa_to_sheet(outData)
-            ws['!cols'] = outSize
-            ws['!rows'] = []
-            const wb = XLSX.utils.book_new()
-            XLSX.utils.book_append_sheet(wb, ws, fileName)
-            const tmpDown = new Blob([
-                this.s2ab(
-                    XLSXStyle.write(wb, {
-                        bookType: 'xlsx',
-                        bookSST: true,
-                        type: 'binary',
-                        cellStyles: true
-                    })
-                )
-            ])
-            const elink = document.createElement('a')
-            elink.download = decodeURIComponent(fileName + '.xlsx')
-            elink.style.display = 'none'
-            elink.href = URL.createObjectURL(tmpDown)
-            document.body.appendChild(elink)
-            elink.click()
-            URL.revokeObjectURL(elink.href) // 释放URL 对象
-            document.body.removeChild(elink)
         },
         handleClose() {
             this.dialogVisible = false
@@ -772,10 +537,11 @@ export default {
             document.body.removeChild(elink)
         },
         getItemJson(item) {
-            item.groupNameStr = item.groupName.replace('{', '').replace('}', '')
-            item.discNameStr = item.discName ? item.discName.replace('{', '').replace('}', '') : ''
-            item.buildNumStr = item.buildNum ? item.buildNum.replace('{', '').replace('}', '') : ''
-            item.roomNoStr = item.roomNo ? item.roomNo.replace('{', '').replace('}', '') : ''
+            item.groupNameStr = item.groupName ? item.groupName.replace('{', '')
+                .replace('}', '').replace('null', '') : ''
+            item.discNameStr = item.discName ? item.discName.replace('{', '').replace('}', '').replace('null', '') : ''
+            item.buildNumStr = item.buildNum ? item.buildNum.replace('{', '').replace('}', '').replace('null', '') : ''
+            item.roomNoStr = item.roomNo ? item.roomNo.replace('{', '').replace('}', '').replace('null', '') : ''
             return item
         }
     }

+ 2 - 0
src/views/parkAssets/parkFloorDisc/index.vue

@@ -473,6 +473,8 @@
                           :before-remove="beforeRemove"
                           multiple
                           :file-list="item.fileList"
+                          :limit="6"
+                          :before-upload="beforeLogoUploadJustImage"
                         >
                           <el-button size="small" type="primary">点击上传</el-button>
                           <div slot="file" slot-scope="{file}" class="file-row">

+ 32 - 6
src/views/parkAssets/parkRoom/index.vue

@@ -150,6 +150,7 @@
               <el-table-column label="户室号" prop="roomNo" />
               <el-table-column label="套内面积(㎡)" prop="actualInternalArea" />
               <el-table-column label="建筑面积(㎡)" prop="actualBuildArea" />
+              <el-table-column label="性质" prop="natureStr" />
               <el-table-column label="用途" prop="roomUseStr" />
               <el-table-column label="装修情况" prop="decorationSituationStr" />
               <el-table-column label="可售状态" prop="saleStatusStr" />
@@ -304,7 +305,7 @@
                     </el-select>
                   </el-form-item>
                 </el-col>
-                <el-col :span="3" class="col-txt"><span>户编号</span></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" />
@@ -358,6 +359,25 @@
                     </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 prop="roomUse">
+                    <el-select
+                      v-model="houseForm.nature"
+                      placeholder=""
+                      filterable
+                      clearable
+                      :disabled="isView"
+                    >
+                      <el-option
+                        v-for="item in dc_data.GROUP_NATURE"
+                        :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>
@@ -398,13 +418,12 @@
                 </el-col>
               </el-row>
               <el-row>
-                <el-col :span="3" class="col-txt"><span>可售状态:</span></el-col>
+                <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>
+                  <el-form-item prop="saleStatus">
                     <el-select
                       v-model="houseForm.saleStatus"
                       placeholder="请选择"
-                      size="small"
                       :disabled="isView"
                       clearable
                     >
@@ -464,7 +483,7 @@ export default {
     mixins: [Base, BaseData, BaseDept],
     data() {
         return {
-            dc_key: ['HOUSE_USAGE', 'DECORATION_SITUATION', 'SALE_STATUS', 'SOLD_STATUS'],
+            dc_key: ['HOUSE_USAGE', 'DECORATION_SITUATION', 'SALE_STATUS', 'SOLD_STATUS', 'GROUP_NATURE'],
             // 查询参数
             queryParam: {
                 nodeId: '',
@@ -493,8 +512,9 @@ export default {
                 actualShareArea: [{ required: true, trigger: 'blur', message: '请输入实测分摊面积' }],
                 actualBuildArea: [{ required: true, trigger: 'blur', message: '请输入实测建筑面积' }],
                 // actualLandArea: [{ required: true, trigger: 'blur', message: '请输入实测土地面积' }],
-                roomUse: [{ required: true, trigger: 'blur', message: '请输入用途' }]
+                roomUse: [{ required: true, trigger: 'change', message: '请选择用途' }],
                 // roomNumber: [{ required: true, trigger: 'blur', message: '请输入户编号' }]
+                saleStatus: [{ required: true, trigger: 'change', message: '请选择可售状态' }]
             },
 
             roomId: '',
@@ -622,6 +642,8 @@ export default {
             this.dialogVisible = true
             this.fileList = []
             this.houseTypeOption = []
+            // 可售状态 默认为正常
+            this.$set(this.houseForm, 'saleStatus', '1')
             this.dialogTitle = '新增房间'
         },
         handleEdit: function(val) {
@@ -705,6 +727,8 @@ export default {
         },
 
         getItemJson: function(item) {
+            // 性质
+            item.natureStr = this.dc_map.GROUP_NATURE[item.nature]
             // 用途
             item.roomUseStr = this.dc_map.HOUSE_USAGE[item.roomUse]
             // 装修情况
@@ -797,6 +821,8 @@ export default {
                         }
                     })
                     .catch(() => {})
+            } else {
+
             }
         },
         // 上传相关,包括图片、文件

+ 3 - 3
src/views/receiveRefundsManagement/depositManagement/index.vue

@@ -38,10 +38,10 @@
           :header-cell-style="{background:'#f2f2f2'}"
         >
           <el-table-column type="index" width="60" />
-          <el-table-column label="小区-分期" prop="groupDiscName" />
+          <el-table-column label="小区-分期" prop="groupDiscName" width="150"/>
           <el-table-column label="买受人" prop="buyerName" width="200" />
-          <el-table-column label="定金金额" prop="receivableMoney" width="200" />
-          <el-table-column label="定金流水号" prop="serialNumber" />
+          <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" />

+ 3 - 3
src/views/receiveRefundsManagement/intentionalDepositManagement/index.vue

@@ -22,10 +22,10 @@
           :header-cell-style="{background:'#f2f2f2'}"
         >
           <el-table-column type="index" width="60" />
-          <el-table-column label="小区-分期" prop="groupDiscName" />
-          <el-table-column label="意向金流水号" prop="serialNumber" />
+          <el-table-column label="小区-分期" prop="groupDiscName" width="150" />
+          <el-table-column label="意向金流水号" prop="serialNumber" width="150" />
           <el-table-column label="买受人" prop="buyerName" width="200" />
-          <el-table-column label="意向金金额" prop="receivedAmount" width="200" />
+          <el-table-column label="意向金金额" prop="receivedAmount" width="150" />
           <el-table-column label="状态" prop="statusStr" width="110" />
           <el-table-column label="定金编号" prop="depositSerialNumber" />
           <el-table-column label="认购房屋" prop="houseName" />

+ 11 - 9
src/views/receiveRefundsManagement/intentionalDepositManagement/toDeposit.vue

@@ -26,12 +26,12 @@
                   <el-input v-model="form.serialNumber" />
                 </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="form.depositSerialNumber" />
-                </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="form.depositSerialNumber" />-->
+<!--                </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>
@@ -65,6 +65,8 @@
                     :before-remove="beforeRemove"
                     multiple
                     :file-list="fileList"
+                    :limit="6"
+                    :before-upload="beforeLogoUploadJustImage"
                   >
                     <el-button v-if="!isView" size="small" type="primary">点击上传</el-button>
                     <div slot="file" slot-scope="{file}" style="overflow:hidden;white-space: nowrap;text-overflow:ellipsis">
@@ -175,9 +177,9 @@ export default {
                 if (res.data.handleDate) {
                     this.dateStr = res.data.handleDate
                 }
-                if (!this.form.depositSerialNumber) {
-                    this.getDepositSerialNumber(data)
-                }
+                // if (!this.form.depositSerialNumber) {
+                //     this.getDepositSerialNumber(data)
+                // }
             })
         },
         getDepositSerialNumber(val) {

+ 2 - 0
src/views/receiveRefundsManagement/maintenanceFundsManagement/addFunds.vue

@@ -95,6 +95,8 @@
                     :before-remove="beforeRemove"
                     multiple
                     :file-list="fileList"
+                    :limit="6"
+                    :before-upload="beforeLogoUploadJustImage"
                   >
                     <el-button v-if="!isView" size="small" type="primary">点击上传</el-button>
                     <div slot="file" slot-scope="{file}" style="overflow:hidden;white-space: nowrap;text-overflow:ellipsis">

+ 2 - 0
src/views/receiveRefundsManagement/paymentManagement/addPayment.vue

@@ -120,6 +120,8 @@
                     :before-remove="beforeRemove"
                     multiple
                     :file-list="fileList"
+                    :limit="6"
+                    :before-upload="beforeLogoUploadJustImage"
                   >
                     <el-button v-if="!isView" size="small" type="primary">点击上传</el-button>
                     <div slot="file" slot-scope="{file}" style="overflow:hidden;white-space: nowrap;text-overflow:ellipsis">

+ 2 - 0
src/views/receiveRefundsManagement/refundManagement/addRefund.vue

@@ -185,6 +185,8 @@
                     :before-remove="beforeRemove"
                     multiple
                     :file-list="fileList"
+                    :limit="6"
+                    :before-upload="beforeLogoUploadJustImage"
                   >
                     <el-button v-if="!isView" size="small" type="primary">点击上传</el-button>
                     <div slot="file" slot-scope="{file}" style="overflow:hidden;white-space: nowrap;text-overflow:ellipsis">

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

@@ -0,0 +1,656 @@
+<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>
+            <el-col :span="24">
+              <el-table ref="multipleTable" v-loading="tabLoading" :data="tableData" style="width: 100%" size="mini">
+                <el-table-column label="合同编号" prop="contractNumber" />
+                <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="buyerProportion" />
+                <el-table-column label="付款方式" prop="paymentMethodStr" />
+                <el-table-column label="应收房款(元)" prop="buyerMoney" />
+                <el-table-column label="已收房款(元)" prop="receivedMoney" />
+                <el-table-column label="尚欠房款(元)" prop="arrears" />
+                <el-table-column label="收款状态" prop="collectionStatusStr" width="110">
+                  <template scope="scope">
+                    <span
+                      :style="{'color':scope.row.collectionStatusStr==='已退款'?'red':scope.row.collectionStatusStr==='完全收款'?'green':'gray'}"
+                    >
+                      {{ scope.row.collectionStatusStr }}
+                    </span>
+                  </template>
+                </el-table-column>
+                <el-table-column header-align="center" label="操作" width="200">
+                  <template scope="scope">
+                    <el-button size="mini" type="text" @click="payLogView(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 ref="multipleTable" 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="buyerName" width="200" />
+                <el-table-column label="房屋" prop="houseName" width="200" />
+                <el-table-column label="实测建筑面积(㎡)" prop="actualBuildArea" width="110" />
+                <el-table-column label="专项维修资金单价(元/㎡)" prop="maintenanceFunds" />
+                <el-table-column label="应收专项维修资金(元)" prop="maintenanceTotalPrice" />
+                <el-table-column label="已收专项维修资金(元)" prop="receivedMoney" />
+                <el-table-column label="收款状态" prop="fundCollectionStatusStr" width="110">
+                  <template scope="scope">
+                    <span
+                      :style="{'color':scope.row.fundCollectionStatusStr==='已退款'?'red':scope.row.fundCollectionStatusStr==='已收款'?'green':'gray'}"
+                    >
+                      {{ scope.row.fundCollectionStatusStr }}
+                    </span>
+                  </template>
+                </el-table-column>
+                <el-table-column header-align="center" label="操作" width="180">
+                  <template scope="scope">
+                    <el-button size="mini" type="text" @click="fundView(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 ref="multipleTable" 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="applicant" width="200" />
+                <el-table-column label="买受人" prop="buyerName" width="200" />
+                <el-table-column label="房屋" prop="houseName" width="200" />
+                <el-table-column label="退房原因" prop="reasonStr" width="110" />
+                <el-table-column label="应退(元)" prop="refundAmount" />
+                <el-table-column label="实退(元)" prop="actualRefundAmount" />
+                <el-table-column label="扣除" prop="deductible" />
+                <el-table-column label="关联审批单号" prop="approvalNumber" />
+                <el-table-column header-align="center" label="操作" width="200">
+                  <template scope="scope">
+                    <el-button size="mini" type="text" @click="refundView(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 ref="multipleTable" 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="receivableMoney" width="100" />
+                <el-table-column label="已收(元)" prop="receivedMoney" width="100" />
+                <el-table-column label="收款状态" prop="collectionStatusStr" width="110">
+                  <template scope="scope">
+                    <span
+                      :style="{'color':scope.row.collectionStatusStr==='已退款'?'red':scope.row.collectionStatusStr==='完全收款'?'green':'gray'}"
+                    >
+                      {{ scope.row.collectionStatusStr }}
+                    </span>
+                  </template>
+                </el-table-column>
+                <el-table-column label="推送状态" prop="sendStatusStr">
+                  <template scope="scope">
+                    <span
+                      style="color: green"
+                    >
+                      {{ scope.row.sendStatusStr }}
+                    </span>
+                  </template>
+                </el-table-column>
+                <el-table-column label="开票状态" prop="invoiceStatusStr">
+                  <template scope="scope">
+                    <span
+                      :style="{'color':scope.row.invoiceStatusStr==='已红冲'?'red':scope.row.invoiceStatusStr==='待开票'?'green':'gray'}"
+                    >
+                      {{ scope.row.invoiceStatusStr }}
+                    </span>
+                  </template>
+                </el-table-column>
+                <el-table-column header-align="center" label="操作" width="180">
+                  <template scope="scope">
+                    <el-button size="mini" type="text" @click="invoiceView(scope.row)">查看</el-button>
+                  </template>
+                </el-table-column>
+              </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>
+
+    <!-- 预收款登记 -->
+    <el-dialog
+      :visible.sync="dialogPayLogVisible"
+      :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"
+    >
+      <payment-registration v-if="dialogPayLogVisible" ref="paymentRegistration" @cancel="cancel" />
+    </el-dialog>
+
+    <!-- 收款登记 -->
+    <el-dialog
+      :visible.sync="dialogFundVisible"
+      :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-funds v-if="dialogFundVisible" ref="addFunds" @cancel="cancel" />
+    </el-dialog>
+
+    <!-- 预收款登记 -->
+    <el-dialog
+      :visible.sync="dialogRefundVisible"
+      :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-refund v-if="dialogRefundVisible" ref="addRefund" @cancel="cancel" />
+    </el-dialog>
+
+    <!--正式开票-->
+    <el-dialog
+      :visible.sync="dialogFormalInvoiceVisible"
+      :close-on-click-modal="false"
+      :close-on-press-escape="false"
+      :title="dialogTitle"
+      width="90%"
+      top="20px"
+      class="statistic_base"
+      :append-to-body="true"
+      :modal-append-to-body="true"
+      custom-class="tagdialog"
+    >
+      <formal-invoice-manage-edit v-if="dialogFormalInvoiceVisible" ref="editInvoice" @cancel="cancel" />
+    </el-dialog>
+
+    <!--新增预收款发票-->
+    <el-dialog
+      :visible.sync="dialogInvoiceVisible"
+      :close-on-click-modal="false"
+      :close-on-press-escape="false"
+      :title="dialogTitle"
+      width="90%"
+      top="20px"
+      class="statistic_base"
+      :append-to-body="true"
+      :modal-append-to-body="true"
+      custom-class="tagdialog"
+    >
+      <add-invoice v-if="dialogInvoiceVisible" ref="addInvoice" @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'
+import PaymentRegistration from '@/views/receiveRefundsManagement/paymentManagement/paymentRegistration.vue'
+import AddFunds from '@/views/receiveRefundsManagement/maintenanceFundsManagement/addFunds.vue'
+import AddRefund from '@/views/receiveRefundsManagement/refundManagement/addRefund.vue'
+import FormalInvoiceManageEdit from '@/views/invoice/components/formalInvoiceManageEdit.vue'
+import AddInvoice from '@/views/invoice/components/addInvoice.vue'
+
+export default {
+    name: 'ParkRoomIndexDetailVue',
+    components: { ContractAdd, ParkRoomIndexEdit, AddSubscribe, PaymentRegistration, AddFunds, AddRefund,
+        FormalInvoiceManageEdit, AddInvoice },
+    mixins: [Base, BaseData],
+    data() {
+        return {
+            dc_key: ['DEPOSIT_STATUS', 'PAYMENT_METHODS', 'CONTRACT_STATUS', 'HOUSE_PAYMENT_STATUS',
+                'MAINTENANCE_FUNDS_STATUS', 'CHECK_OUT_REASON', 'INVOICE_STATUS', 'SEND_STATUS'],
+            activeName: '概览',
+            houseId: '',
+            tableData: [],
+            tabLoading: false,
+            dialogTitle: '',
+            dialogDepositVisible: false,
+            dialogDepositTitle: '',
+            dialogContractVisible: false,
+            dialogContractTitle: '',
+            dialogPayLogVisible: false,
+            dialogFundVisible: false,
+            dialogRefundVisible: false,
+            dialogInvoiceVisible: false,
+            dialogFormalInvoiceVisible: false
+
+        }
+    },
+    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)
+                })
+                this.getHistoryData()
+            })
+        },
+        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 === '房款') {
+                this.getPaymentData()
+            } else if (tab.name === '专项维修资金') {
+                this.getFundData()
+            } else if (tab.name === '退房退款') {
+                this.getRefundData()
+            } else if (tab.name === '开票') {
+                this.getInvoiceData()
+            }
+        },
+        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)
+            })
+        },
+        getPaymentData: function() {
+            const _this = this
+            _this.tabLoading = true
+            const postData = {
+                houseId: this.houseId
+            }
+            this.basePaymentRequest('listAll', postData).then((res) => {
+                if (res.data) {
+                    res.data.forEach(function(item) {
+                        const json = _this.getPaymentItemJson(item)
+                        _this.tableData.push(json)
+                    })
+                }
+                _this.tabLoading = false
+            }).catch((e) => {
+                // console.log(e)
+            })
+        },
+        getFundData: function() {
+            const _this = this
+            _this.tabLoading = true
+            const postData = {
+                houseId: this.houseId
+            }
+            this.baseFundRequest('listAll', postData).then((res) => {
+                if (res.data) {
+                    res.data.forEach(function(item) {
+                        const json = _this.getFundItemJson(item)
+                        _this.tableData.push(json)
+                    })
+                }
+                _this.tabLoading = false
+            }).catch((e) => {
+                // console.log(e)
+            })
+        },
+        getRefundData() {
+            const _this = this
+            _this.tabLoading = true
+            const postData = {
+                houseId: this.houseId
+            }
+            this.baseRefundRequest('listAll', postData).then((res) => {
+                if (res.data) {
+                    res.data.forEach(function(item) {
+                        const json = _this.getRefundItemJson(item)
+                        _this.tableData.push(json)
+                    })
+                }
+                _this.tabLoading = false
+            }).catch((e) => {
+                // console.log(e)
+            })
+        },
+        getInvoiceData: function() {
+            const _this = this
+            _this.tabLoading = true
+            const postData = {
+                houseId: this.houseId
+            }
+            this.baseInvoiceRequest('listAll', postData).then((res) => {
+                if (res.data) {
+                    res.data.forEach(function(item) {
+                        const json = _this.getInvoiceItemJson(item)
+                        _this.tableData.push(json)
+                    })
+                }
+                _this.tabLoading = false
+            }).catch((e) => {
+                // console.log(e)
+            })
+        },
+        getHistoryData: function() {
+            const _this = this
+            const postData = {
+                houseId: this.houseId
+            }
+            this.baseRequest('roomHistory', postData).then((res) => {
+               console.log(res.data)
+            }).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
+        },
+        getPaymentItemJson: function(item) {
+            item.paymentMethodStr = this.dc_map.PAYMENT_METHODS[item.paymentMethod]
+            item.collectionStatusStr = this.dc_map.HOUSE_PAYMENT_STATUS[item.collectionStatus]
+            return item
+        },
+        getFundItemJson: function(item) {
+            item.fundCollectionStatusStr = this.dc_map.MAINTENANCE_FUNDS_STATUS[item.fundCollectionStatus]
+            return item
+        },
+        getRefundItemJson: function(item) {
+            item.reasonStr = this.dc_map.CHECK_OUT_REASON[item.reason]
+            return item
+        },
+        getInvoiceItemJson: function(item) {
+            if (item.type == '1') {
+                item.invoiceStatusStr = this.dc_map.INVOICE_STATUS[item.invoiceStatus]
+                item.sendStatusStr = this.dc_map.SEND_STATUS[item.sendStatus]
+                item.collectionStatusStr = this.dc_map.HOUSE_PAYMENT_STATUS[item.collectionStatus]
+            }
+            if (item.type == '2') {
+                item.invoiceStatusStr = this.dc_map.INVOICE_STATUS[item.invoiceStatus]
+                item.sendStatusStr = this.dc_map.SEND_STATUS[item.sendStatus]
+                if (item.paymentType === '1') {
+                    item.collectionStatusStr = this.dc_map.HOUSE_PAYMENT_STATUS[item.collectionStatus]
+                }
+                if (item.paymentType === '2') {
+                    item.collectionStatusStr = this.dc_map.MAINTENANCE_FUNDS_STATUS[item.fundCollectionStatus]
+                }
+                item.paymentTypeStr = item.paymentType === '1' ? '房款' : '专项维修资金'
+            }
+            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)
+            })
+        },
+        payLogView(val) {
+            this.dialogPayLogVisible = true
+            val.isView = true
+            // 新vue时调用的方法
+            this.$nextTick(() => {
+                this.$refs.paymentRegistration.initData(val)
+            })
+        },
+        fundView(val) {
+            this.dialogFundVisible = true
+            val.isView = true
+            // 新vue时调用的方法
+            this.$nextTick(() => {
+                this.$refs.addFunds.initData(val)
+            })
+        },
+        refundView(val) {
+            this.dialogRefundVisible = true
+            val.isView = true
+            // 新vue时调用的方法
+            this.$nextTick(() => {
+                this.$refs.addRefund.initData(val)
+            })
+        },
+        invoiceView(val) {
+            // 预收款发票
+            if (val.type == '1') {
+                this.dialogInvoiceVisible = true
+                this.dialogTitle = ''
+                val.isView = true
+                // 新vue时调用的方法
+                this.$nextTick(() => {
+                    this.$refs.addInvoice.initData(val)
+                })
+            }
+            // 正式发票
+            if (val.type == '2') {
+                this.dialogFormalInvoiceVisible = true
+                this.dialogTitle = ''
+                val.isView = true
+                // 新vue时调用的方法
+                this.$nextTick(() => {
+                    this.$refs.editInvoice.initData(val)
+                })
+            }
+        },
+        cancel: function() {
+            this.dialogContractVisible = false
+            this.dialogDepositVisible = false
+            this.dialogPayLogVisible = false
+            this.dialogFundVisible = false
+            this.dialogRefundVisible = false
+            this.dialogInvoiceVisible = false
+            this.dialogFormalInvoiceVisible = false
+        },
+        baseRequest(opUrl, postData) {
+            return this.$channel.globeRequest('ParkRoomController', opUrl, postData, 'project')
+        },
+        baseDepositRequest(opUrl, postData) {
+            return this.$channel.globeRequest('RoomSelectionInfoController', opUrl, postData, 'project')
+        },
+        baseContractRequest(opUrl, postData) {
+            return this.$channel.globeRequest('ContractManageController', opUrl, postData, 'project')
+        },
+        basePaymentRequest(opUrl, postData) {
+            return this.$channel.globeRequest('PayLogController', opUrl, postData, 'project')
+        },
+        baseFundRequest(opUrl, postData) {
+            return this.$channel.globeRequest('MaintenanceFundsManagementController', opUrl, postData, 'project')
+        },
+        baseRefundRequest(opUrl, postData) {
+            return this.$channel.globeRequest('RefundManageController', opUrl, postData, 'project')
+        },
+        baseInvoiceRequest(opUrl, postData) {
+            return this.$channel.globeRequest('InvoiceManageController', 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>

+ 4 - 0
src/views/signingManagement/contractManagement/contractAdd.vue

@@ -306,6 +306,8 @@
                     :before-remove="beforeRemove"
                     multiple
                     :file-list="contractOriginalList"
+                    :limit="6"
+                    :before-upload="$common.beforeUploadJustWordExcel"
                   >
                     <el-button v-if="!isView" size="small" type="primary">点击上传</el-button>
                     <div slot="file" slot-scope="{file}">
@@ -327,6 +329,8 @@
                     :before-remove="beforeRemove"
                     multiple
                     :file-list="contractOtherList"
+                    :limit="6"
+                    :before-upload="$common.beforeUploadJustWordExcel"
                   >
                     <el-button v-if="!isView" size="small" type="primary">点击上传</el-button>
                     <div slot="file" slot-scope="{file}">

+ 1 - 1
src/views/transactionRecord/refundRecordIndex.vue

@@ -273,7 +273,7 @@ export default {
                 })
                 const OutSize = [{ wch: 15 }, { wch: 15 }, { wch: 15 }, { wch: 15 }, { wch: 15 }, { wch: 15 }, { wch: 15 },
                     { wch: 15 }, { wch: 15 }, { wch: 15 }, { wch: 15 }]
-                const fileName = '款记录导出 ' + new Date().Format('yyyyMMddhhmm')
+                const fileName = '退款记录导出 ' + new Date().Format('yyyyMMddhhmm')
                 this.$outputXlsxFile(this.OutData, OutSize, fileName)
             })
         },

+ 150 - 149
src/views/workflow/components/myProcess/applyAgainPayment.vue

@@ -12,157 +12,159 @@
     :modal-append-to-body="true"
     custom-class="tagdialog"
   >
-      <div class="tabsdom">
-          <el-tabs v-model="activeName" @tab-click="handleClick">
-              <el-tab-pane label="付款申请" name="first">
-
-                  <el-row type="flex" justify="end">
-                      <el-col :span="3" class="col-txt"><span>流程编号:</span></el-col>
-                      <el-col :span="6" class="col-input"><span style="font-size: 14px">{{ formData.flowNum }}</span></el-col>
-                  </el-row>
-                  <el-form
-                      ref="elForm"
-                      :model="formData"
-                      :rules="rules"
-                      label-width="150px"
-                  >
-
-                      <el-card shadow="always" style="padding: 15px 5px 5px 15px">
-                          <el-row :gutter="15">
-                              <el-col :span="24">
-                                  <el-form-item label="标题" prop="title">
-                                      <el-input v-model="formData.title" placeholder="付款领用单-年月日" readonly/>
-                                  </el-form-item>
-                              </el-col>
-                              <el-col :span="12">
-                                  <el-form-item label="创建人">
-                                      <el-input v-model="userinfo.truename" placeholder="创建人" readonly />
-                                  </el-form-item>
-                              </el-col>
-                              <el-col :span="12">
-                                  <el-form-item label="创建部门">
-                                      <el-input v-model="userinfo.deptName" placeholder="创建部门" readonly />
-                                  </el-form-item>
-                              </el-col>
-                              <el-col :span="24">
-                                  <el-form-item label="是否为无合同付款">
-                                      <el-select
-                                          v-model="formData.isNoContract"
-                                          clearable
-                                          filterable
-                                          placeholder="是否为无合同付款"
-                                          style="width: 100%"
-                                          :popper-append-to-body="false"
-                                          popper-class="statistic_base"
-                                      >
-                                          <el-option
-                                              v-for="item in dc_data.ANSWER_NEED"
-                                              :key="item.value"
-                                              :label="item.label"
-                                              :value="item.value"
-                                              :popper-append-to-body="false"
-                                              popper-class="statistic_base"
-                                          />
-                                      </el-select>
-                                  </el-form-item>
-                              </el-col>
-                              <el-col :span="24">
-                                  <el-form-item label="付款单位">
-                                      <el-input v-model="formData.payerName" placeholder="请填写" />
-                                  </el-form-item>
-                              </el-col>
-                              <el-col :span="24">
-                                  <el-form-item label="收款单位">
-                                      <el-input v-model="formData.payeeName" placeholder="请填写" />
-                                  </el-form-item>
-                              </el-col>
-                              <el-col :span="24">
-                                  <el-form-item label="资金用途">
-                                      <el-input v-model="formData.moneyPurpose" placeholder="请填写" />
-                                  </el-form-item>
-                              </el-col>
-                              <el-col :span="24">
-                                  <el-form-item label="合同总价">
-                                      <el-input v-model="formData.contractPrice" oninput="value=value.replace(/[^\d.]/g,'')" placeholder="请填写" />
-                                  </el-form-item>
-                              </el-col>
-
-                              <el-col :span="24">
-                                  <el-form-item label="付款说明">
-                                      <el-input
-                                          v-model="formData.payRemark"
-                                          :autosize="{minRows: 4, maxRows: 4}"
-                                          :style="{width: '100%'}"
-                                          placeholder="请填写"
-                                          type="textarea"
-                                          maxlength="2000"
-                                          show-word-limit
-                                      />
-                                  </el-form-item>
-                              </el-col>
-                              <el-col :span="24">
-                                  <el-form-item label="累计付款">
-                                      <el-input v-model="formData.havePayMoney" oninput="value=value.replace(/[^\d.]/g,'')" placeholder="请填写" />
-                                  </el-form-item>
-                              </el-col>
-                              <el-col :span="12">
-                                  <el-form-item label="申请金额(小写)" prop="applyPayMoney">
-                                      <el-input v-model="formData.applyPayMoney" oninput="value=value.replace(/[^\d.]/g,'')" placeholder="请填写" @change="swapper(formData.applyPayMoney)" />
-                                  </el-form-item>
-                              </el-col>
-                              <el-col :span="12">
-                                  <el-form-item label="申请金额(大写)" prop="applyPayMoneyUppercase">
-                                      <el-input v-model="formData.applyPayMoneyUppercase" placeholder="请填写" />
-                                  </el-form-item>
-                              </el-col>
-                              <!--                  <el-col :span="24">formData.applyPayMoneyUppercase={{formData.applyPayMoneyUppercase}}</el-col>-->
-
-                              <el-col :span="7">
-                                  <el-form-item label="相关附件">
-                                      <el-upload
-                                          :action="$constant.BASE_URI+'/FileController/upload'"
-                                          :file-list="formData.fileUrlList"
-                                          :http-request="uploadFile"
-                                          class="upload-demo"
-                                          multiple
-                                      >
-                                          <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">
+    <div class="tabsdom">
+      <el-tabs v-model="activeName" @tab-click="handleClick">
+        <el-tab-pane label="付款申请" name="first">
+
+          <el-row type="flex" justify="end">
+            <el-col :span="3" class="col-txt"><span>流程编号:</span></el-col>
+            <el-col :span="6" class="col-input"><span style="font-size: 14px">{{ formData.flowNum }}</span></el-col>
+          </el-row>
+          <el-form
+            ref="elForm"
+            :model="formData"
+            :rules="rules"
+            label-width="150px"
+          >
+
+            <el-card shadow="always" style="padding: 15px 5px 5px 15px">
+              <el-row :gutter="15">
+                <el-col :span="24">
+                  <el-form-item label="标题" prop="title">
+                    <el-input v-model="formData.title" placeholder="付款领用单-年月日" readonly />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="创建人">
+                    <el-input v-model="userinfo.truename" placeholder="创建人" readonly />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="创建部门">
+                    <el-input v-model="userinfo.deptName" placeholder="创建部门" readonly />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="24">
+                  <el-form-item label="是否为无合同付款">
+                    <el-select
+                      v-model="formData.isNoContract"
+                      clearable
+                      filterable
+                      placeholder="是否为无合同付款"
+                      style="width: 100%"
+                      :popper-append-to-body="false"
+                      popper-class="statistic_base"
+                    >
+                      <el-option
+                        v-for="item in dc_data.ANSWER_NEED"
+                        :key="item.value"
+                        :label="item.label"
+                        :value="item.value"
+                        :popper-append-to-body="false"
+                        popper-class="statistic_base"
+                      />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="24">
+                  <el-form-item label="付款单位">
+                    <el-input v-model="formData.payerName" placeholder="请填写" />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="24">
+                  <el-form-item label="收款单位">
+                    <el-input v-model="formData.payeeName" placeholder="请填写" />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="24">
+                  <el-form-item label="资金用途">
+                    <el-input v-model="formData.moneyPurpose" placeholder="请填写" />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="24">
+                  <el-form-item label="合同总价">
+                    <el-input v-model="formData.contractPrice" oninput="value=value.replace(/[^\d.]/g,'')" placeholder="请填写" />
+                  </el-form-item>
+                </el-col>
+
+                <el-col :span="24">
+                  <el-form-item label="付款说明">
+                    <el-input
+                      v-model="formData.payRemark"
+                      :autosize="{minRows: 4, maxRows: 4}"
+                      :style="{width: '100%'}"
+                      placeholder="请填写"
+                      type="textarea"
+                      maxlength="2000"
+                      show-word-limit
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="24">
+                  <el-form-item label="累计付款">
+                    <el-input v-model="formData.havePayMoney" oninput="value=value.replace(/[^\d.]/g,'')" placeholder="请填写" />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="申请金额(小写)" prop="applyPayMoney">
+                    <el-input v-model="formData.applyPayMoney" oninput="value=value.replace(/[^\d.]/g,'')" placeholder="请填写" @change="swapper(formData.applyPayMoney)" />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="申请金额(大写)" prop="applyPayMoneyUppercase">
+                    <el-input v-model="formData.applyPayMoneyUppercase" placeholder="请填写" />
+                  </el-form-item>
+                </el-col>
+                <!--                  <el-col :span="24">formData.applyPayMoneyUppercase={{formData.applyPayMoneyUppercase}}</el-col>-->
+
+                <el-col :span="7">
+                  <el-form-item label="相关附件">
+                    <el-upload
+                      :action="$constant.BASE_URI+'/FileController/upload'"
+                      :file-list="formData.fileUrlList"
+                      :http-request="uploadFile"
+                      class="upload-demo"
+                      multiple
+                      :limit="6"
+                      :before-upload="$common.beforeUploadJustWordExcel"
+                    >
+                      <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,formData.fileUrlList)" />
                         </span>
-                                          </div>
-                                      </el-upload>
-
-                                  </el-form-item>
-                              </el-col>
-                              <el-col :span="17" />
-                          </el-row>
-                      </el-card>
-
-                  </el-form>
-
-              </el-tab-pane>
-              <el-tab-pane label="流程图  " name="second">
-                  <div style="width: 100%">
-                      <el-row>
-                          <el-col :span="24">
-                              <div class="node_info">
-                                  <div>节点说明:</div>
-                                  <div v-for="item in nodeColor" class="dis_flex">
-                                      <div class="node_class" :style="{backgroundColor: item.nodeback}" />
-                                      {{ item.name }}
-
-                                  </div>
-                              </div>
-                              <div v-show="true" id="containeraddwork" style="width: 100%" />
-                          </el-col>
-                      </el-row>
+                      </div>
+                    </el-upload>
+
+                  </el-form-item>
+                </el-col>
+                <el-col :span="17" />
+              </el-row>
+            </el-card>
+
+          </el-form>
+
+        </el-tab-pane>
+        <el-tab-pane label="流程图  " name="second">
+          <div style="width: 100%">
+            <el-row>
+              <el-col :span="24">
+                <div class="node_info">
+                  <div>节点说明:</div>
+                  <div v-for="item in nodeColor" class="dis_flex">
+                    <div class="node_class" :style="{backgroundColor: item.nodeback}" />
+                    {{ item.name }}
+
                   </div>
-              </el-tab-pane>
-          </el-tabs>
-      </div>
+                </div>
+                <div v-show="true" id="containeraddwork" style="width: 100%" />
+              </el-col>
+            </el-row>
+          </div>
+        </el-tab-pane>
+      </el-tabs>
+    </div>
     <div slot="footer">
       <el-button @click="dialogVisible=false">取消</el-button>
 
@@ -383,7 +385,6 @@ export default {
             this.$refs['elForm'].validate(async valid => {
                 if (!valid) return
 
-
                 if (this.formData.fileUrlList.length > 0) {
                     this.formData.fileDataIds = this.formData.fileUrlList.map((e) => {
                         return e.data

+ 2 - 0
src/views/workflow/components/myProcess/applyPayment.vue

@@ -128,6 +128,8 @@
                       :http-request="uploadFile"
                       class="upload-demo"
                       multiple
+                      :limit="6"
+                      :before-upload="$common.beforeUploadJustWordExcel"
                     >
                       <el-button size="small" type="primary">上传附件</el-button>
                       <div slot="file" slot-scope="{file}">

+ 2 - 0
src/views/workflow/components/myProcess/applyPaymentConfirm.vue

@@ -124,6 +124,8 @@
                       :http-request="uploadFile"
                       class="upload-demo"
                       multiple
+                      :limit="6"
+                      :before-upload="$common.beforeUploadJustWordExcel"
                     >
                       <el-button size="small" type="primary">上传附件</el-button>
                       <div slot="file" slot-scope="{file}">

+ 5 - 3
src/views/workflow/components/myProcess/applyPaymentDetail.vue

@@ -31,7 +31,7 @@
               <el-row :gutter="15">
                 <el-col :span="24">
                   <el-form-item label="标题" prop="title">
-                    <el-input v-model="formData.title" placeholder="付款领用单-年月日" readonly/>
+                    <el-input v-model="formData.title" placeholder="付款领用单-年月日" readonly />
                   </el-form-item>
                 </el-col>
                 <el-col :span="12">
@@ -120,12 +120,14 @@
                 <el-col :span="24">
                   <el-form-item label="相关附件">
                     <el-upload
-                        :disabled="true"
+                      :disabled="true"
                       :action="$constant.BASE_URI+'/FileController/upload'"
                       :file-list="formData.fileUrlList"
                       :http-request="uploadFile"
                       class="upload-demo"
                       multiple
+                      :limit="6"
+                      :before-upload="$common.beforeUploadJustWordExcel"
                     >
                       <el-button size="small" type="primary">上传附件</el-button>
                       <div slot="file" slot-scope="{file}">
@@ -185,7 +187,7 @@
 
         </el-tab-pane>
         <el-tab-pane label="流程图" name="second">
-          <payment-canvas ref="PaymentCanvas" id="paymanetDetail"/>
+          <payment-canvas id="paymanetDetail" ref="PaymentCanvas" />
         </el-tab-pane>
       </el-tabs>
     </div>