parkRoomIndexDetail.vue 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728
  1. <template>
  2. <div>
  3. <el-row>
  4. <el-tabs v-model="activeName" style="font-size: 16px" @tab-click="handleClick">
  5. <el-tab-pane label="概览" name="概览">
  6. <park-room-index-edit ref="parkRoomIndexEdit" />
  7. </el-tab-pane>
  8. <el-tab-pane label="认购" name="认购">
  9. <el-row>
  10. <el-col :span="24">
  11. <el-table v-loading="tabLoading" :data="tableData" style="width: 100%" size="mini">
  12. <el-table-column type="index" width="60" />
  13. <el-table-column label="小区-分期" prop="groupDiscName" width="150" />
  14. <el-table-column label="买受人" prop="buyerName" width="200" />
  15. <el-table-column label="定金金额" prop="receivableMoney" width="100" />
  16. <el-table-column label="定金流水号" prop="serialNumber" width="100" />
  17. <el-table-column label="认购房屋" prop="houseName" />
  18. <el-table-column label="状态" prop="statusStr" width="110" />
  19. <el-table-column label="经办时间" prop="createdName" />
  20. <el-table-column label="经办人" prop="createdAt" />
  21. <el-table-column header-align="center" label="操作" width="180">
  22. <template scope="scope">
  23. <el-button size="mini" type="text" @click="depositView(scope.row)">查看</el-button>
  24. </template>
  25. </el-table-column>
  26. </el-table>
  27. </el-col>
  28. </el-row>
  29. </el-tab-pane>
  30. <el-tab-pane label="签约" name="签约">
  31. <el-row>
  32. <el-col :span="24">
  33. <el-table v-loading="tabLoading" :data="tableData" style="width: 100%" size="mini">
  34. <el-table-column type="index" width="60" />
  35. <el-table-column label="合同编号" prop="contractNumber" />
  36. <el-table-column label="网签备案号" prop="recordNumber" />
  37. <el-table-column label="买受人" prop="buyerName" width="200" />
  38. <el-table-column label="房屋" prop="houseName" width="200" />
  39. <el-table-column label="实测建筑面积(㎡)" prop="actualBuildArea" width="110" />
  40. <el-table-column label="买卖单价(㎡)" prop="housePrice" />
  41. <el-table-column label="买受人产权份额占比" prop="buyerProportionStr" />
  42. <el-table-column label="付款方式" prop="paymentMethodStr" />
  43. <el-table-column label="应收房款(元)" prop="buyerMoney" />
  44. <el-table-column label="应收专项维修资金(元)" prop="maintenanceTotalPrice" />
  45. <el-table-column label="合同状态" prop="contractStatusStr" width="110">
  46. <template scope="scope">
  47. <span
  48. :style="{'color':scope.row.contractStatusStr==='已退房'?'red':scope.row.contractStatusStr==='已签约'?'green':'gray'}"
  49. >
  50. {{ scope.row.contractStatusStr }}
  51. </span>
  52. </template>
  53. </el-table-column>
  54. <el-table-column label="签约日期" prop="signingDate" />
  55. <el-table-column header-align="center" label="操作" width="180">
  56. <template scope="scope">
  57. <el-button size="mini" type="text" @click="contractView(scope.row)">查看</el-button>
  58. </template>
  59. </el-table-column>
  60. </el-table>
  61. </el-col>
  62. </el-row>
  63. </el-tab-pane>
  64. <el-tab-pane label="房款" name="房款">
  65. <el-row>
  66. <el-col :span="24">
  67. <el-table ref="multipleTable" v-loading="tabLoading" :data="tableData" style="width: 100%" size="mini">
  68. <el-table-column label="合同编号" prop="contractNumber" />
  69. <el-table-column label="买受人" prop="buyerName" width="200" />
  70. <el-table-column label="房屋" prop="houseName" width="200" />
  71. <el-table-column label="实测建筑面积(㎡)" prop="actualBuildArea" width="110" />
  72. <el-table-column label="买卖单价(㎡)" prop="housePrice" />
  73. <el-table-column label="买受人产权份额占比" prop="buyerProportion" />
  74. <el-table-column label="付款方式" prop="paymentMethodStr" />
  75. <el-table-column label="应收房款(元)" prop="buyerMoney" />
  76. <el-table-column label="已收房款(元)" prop="receivedMoney" />
  77. <el-table-column label="尚欠房款(元)" prop="arrears" />
  78. <el-table-column label="收款状态" prop="collectionStatusStr" width="110">
  79. <template scope="scope">
  80. <span
  81. :style="{'color':scope.row.collectionStatusStr==='已退款'?'red':scope.row.collectionStatusStr==='完全收款'?'green':'gray'}"
  82. >
  83. {{ scope.row.collectionStatusStr }}
  84. </span>
  85. </template>
  86. </el-table-column>
  87. <el-table-column header-align="center" label="操作" width="200">
  88. <template scope="scope">
  89. <el-button size="mini" type="text" @click="payLogView(scope.row)">查看</el-button>
  90. </template>
  91. </el-table-column>
  92. </el-table>
  93. </el-col>
  94. </el-row>
  95. </el-tab-pane>
  96. <el-tab-pane label="专项维修资金" name="专项维修资金">
  97. <el-row>
  98. <el-col :span="24">
  99. <el-table ref="multipleTable" v-loading="tabLoading" :data="tableData" style="width: 100%" size="mini">
  100. <el-table-column type="index" width="60" />
  101. <el-table-column label="合同编号" prop="contractNumber" />
  102. <el-table-column label="买受人" prop="buyerName" width="200" />
  103. <el-table-column label="房屋" prop="houseName" width="200" />
  104. <el-table-column label="实测建筑面积(㎡)" prop="actualBuildArea" width="110" />
  105. <el-table-column label="专项维修资金单价(元/㎡)" prop="maintenanceFunds" />
  106. <el-table-column label="应收专项维修资金(元)" prop="maintenanceTotalPrice" />
  107. <el-table-column label="已收专项维修资金(元)" prop="receivedMoney" />
  108. <el-table-column label="收款状态" prop="fundCollectionStatusStr" width="110">
  109. <template scope="scope">
  110. <span
  111. :style="{'color':scope.row.fundCollectionStatusStr==='已退款'?'red':scope.row.fundCollectionStatusStr==='已收款'?'green':'gray'}"
  112. >
  113. {{ scope.row.fundCollectionStatusStr }}
  114. </span>
  115. </template>
  116. </el-table-column>
  117. <el-table-column header-align="center" label="操作" width="180">
  118. <template scope="scope">
  119. <el-button size="mini" type="text" @click="fundView(scope.row)">查看</el-button>
  120. </template>
  121. </el-table-column>
  122. </el-table>
  123. </el-col>
  124. </el-row>
  125. </el-tab-pane>
  126. <el-tab-pane label="退房退款" name="退房退款">
  127. <el-row>
  128. <el-col :span="24">
  129. <el-table ref="multipleTable" v-loading="tabLoading" :data="tableData" style="width: 100%" size="mini">
  130. <el-table-column type="index" width="60" />
  131. <el-table-column label="合同编号" prop="contractNumber" />
  132. <el-table-column label="申请人" prop="applicant" width="200" />
  133. <el-table-column label="买受人" prop="buyerName" width="200" />
  134. <el-table-column label="房屋" prop="houseName" width="200" />
  135. <el-table-column label="退房原因" prop="reasonStr" width="110" />
  136. <el-table-column label="应退(元)" prop="refundAmount" />
  137. <el-table-column label="实退(元)" prop="actualRefundAmount" />
  138. <el-table-column label="扣除" prop="deductible" />
  139. <el-table-column label="关联审批单号" prop="approvalNumber" />
  140. <el-table-column header-align="center" label="操作" width="200">
  141. <template scope="scope">
  142. <el-button size="mini" type="text" @click="refundView(scope.row)">查看</el-button>
  143. </template>
  144. </el-table-column>
  145. </el-table>
  146. </el-col>
  147. </el-row>
  148. </el-tab-pane>
  149. <el-tab-pane label="开票" name="开票">
  150. <el-row>
  151. <el-col :span="24">
  152. <el-table ref="multipleTable" v-loading="tabLoading" :data="tableData" style="width: 100%" size="mini">
  153. <el-table-column type="index" width="60" />
  154. <el-table-column label="合同编号" prop="contractNumber" />
  155. <el-table-column label="网签备案号" prop="recordNumber" />
  156. <el-table-column label="买受人" prop="buyerName" width="200" />
  157. <el-table-column label="房屋" prop="houseName" width="200" />
  158. <el-table-column label="应收(元)" prop="receivableMoney" width="100" />
  159. <el-table-column label="已收(元)" prop="receivedMoney" width="100" />
  160. <el-table-column label="收款状态" prop="collectionStatusStr" width="110">
  161. <template scope="scope">
  162. <span
  163. :style="{'color':scope.row.collectionStatusStr==='已退款'?'red':scope.row.collectionStatusStr==='完全收款'?'green':'gray'}"
  164. >
  165. {{ scope.row.collectionStatusStr }}
  166. </span>
  167. </template>
  168. </el-table-column>
  169. <el-table-column label="推送状态" prop="sendStatusStr">
  170. <template scope="scope">
  171. <span
  172. style="color: green"
  173. >
  174. {{ scope.row.sendStatusStr }}
  175. </span>
  176. </template>
  177. </el-table-column>
  178. <el-table-column label="开票状态" prop="invoiceStatusStr">
  179. <template scope="scope">
  180. <span
  181. :style="{'color':scope.row.invoiceStatusStr==='已红冲'?'red':scope.row.invoiceStatusStr==='待开票'?'green':'gray'}"
  182. >
  183. {{ scope.row.invoiceStatusStr }}
  184. </span>
  185. </template>
  186. </el-table-column>
  187. <el-table-column header-align="center" label="操作" width="180">
  188. <template scope="scope">
  189. <el-button size="mini" type="text" @click="invoiceView(scope.row)">查看</el-button>
  190. </template>
  191. </el-table-column>
  192. </el-table>
  193. </el-col>
  194. </el-row>
  195. </el-tab-pane>
  196. </el-tabs>
  197. </el-row>
  198. <el-divider />
  199. <el-row>
  200. <el-col :span="24">
  201. <span class="card_title">交易历史</span>
  202. <el-steps class="mysteps" direction="vertical" :active="roomHistory.length" >
  203. <el-step v-for="(item,index) in roomHistory" :title="item.buyerName+' '+item.startDate+' ~ '+item.endDate">
  204. <template slot="description">
  205. <div class="roomHistory-box">
  206. <div v-for="(node,index) in item.parkRoomNodes" class="nodeBox-item">
  207. <div :class="node.nodeName=='退房'?'end':'nodeName'">
  208. {{ node.nodeName }}
  209. </div>
  210. <div v-if="index+1!=item.parkRoomNodes.length" style="margin-right: 20px">
  211. <i class="el-icon-right" style="color: #0D2F76" size="48px"></i>
  212. </div>
  213. </div>
  214. </div>
  215. </template>
  216. </el-step>
  217. </el-steps>
  218. </el-col>
  219. </el-row>
  220. <!--定金查看-->
  221. <el-dialog
  222. :visible.sync="dialogDepositVisible"
  223. :close-on-click-modal="false"
  224. :close-on-press-escape="false"
  225. title=""
  226. width="90%"
  227. top="20px"
  228. class="statistic_base"
  229. :append-to-body="true"
  230. :modal-append-to-body="true"
  231. custom-class="tagdialog"
  232. >
  233. <add-subscribe v-if="dialogDepositVisible" ref="addSubscribe" @cancel="cancel" />
  234. </el-dialog>
  235. <!--合同签约/修改-->
  236. <el-dialog
  237. :visible.sync="dialogContractVisible"
  238. :close-on-click-modal="false"
  239. :close-on-press-escape="false"
  240. :title="dialogContractTitle"
  241. width="90%"
  242. top="20px"
  243. class="statistic_base"
  244. :append-to-body="true"
  245. :modal-append-to-body="true"
  246. custom-class="tagdialog"
  247. >
  248. <contract-add ref="contractAdd" @cancel="cancel" />
  249. </el-dialog>
  250. <!-- 预收款登记 -->
  251. <el-dialog
  252. :visible.sync="dialogPayLogVisible"
  253. :close-on-click-modal="false"
  254. :close-on-press-escape="false"
  255. title=""
  256. width="90%"
  257. top="20px"
  258. class="statistic_base"
  259. :append-to-body="true"
  260. :modal-append-to-body="true"
  261. custom-class="tagdialog"
  262. >
  263. <payment-registration v-if="dialogPayLogVisible" ref="paymentRegistration" @cancel="cancel" />
  264. </el-dialog>
  265. <!-- 收款登记 -->
  266. <el-dialog
  267. :visible.sync="dialogFundVisible"
  268. :close-on-click-modal="false"
  269. :close-on-press-escape="false"
  270. title=""
  271. width="90%"
  272. top="20px"
  273. class="statistic_base"
  274. :append-to-body="true"
  275. :modal-append-to-body="true"
  276. custom-class="tagdialog"
  277. >
  278. <add-funds v-if="dialogFundVisible" ref="addFunds" @cancel="cancel" />
  279. </el-dialog>
  280. <!-- 预收款登记 -->
  281. <el-dialog
  282. :visible.sync="dialogRefundVisible"
  283. :close-on-click-modal="false"
  284. :close-on-press-escape="false"
  285. title=""
  286. width="90%"
  287. top="20px"
  288. class="statistic_base"
  289. :append-to-body="true"
  290. :modal-append-to-body="true"
  291. custom-class="tagdialog"
  292. >
  293. <add-refund v-if="dialogRefundVisible" ref="addRefund" @cancel="cancel" />
  294. </el-dialog>
  295. <!--正式开票-->
  296. <el-dialog
  297. :visible.sync="dialogFormalInvoiceVisible"
  298. :close-on-click-modal="false"
  299. :close-on-press-escape="false"
  300. :title="dialogTitle"
  301. width="90%"
  302. top="20px"
  303. class="statistic_base"
  304. :append-to-body="true"
  305. :modal-append-to-body="true"
  306. custom-class="tagdialog"
  307. >
  308. <formal-invoice-manage-edit v-if="dialogFormalInvoiceVisible" ref="editInvoice" @cancel="cancel" />
  309. </el-dialog>
  310. <!--新增预收款发票-->
  311. <el-dialog
  312. :visible.sync="dialogInvoiceVisible"
  313. :close-on-click-modal="false"
  314. :close-on-press-escape="false"
  315. :title="dialogTitle"
  316. width="90%"
  317. top="20px"
  318. class="statistic_base"
  319. :append-to-body="true"
  320. :modal-append-to-body="true"
  321. custom-class="tagdialog"
  322. >
  323. <add-invoice v-if="dialogInvoiceVisible" ref="addInvoice" @cancel="cancel" />
  324. </el-dialog>
  325. </div>
  326. </template>
  327. <script>
  328. import ParkRoomIndexEdit from '@/views/reportForms/components/parkRoomIndexEdit.vue'
  329. import Base from '@/views/base/base.vue'
  330. import BaseData from '@/views/base/baseData.vue'
  331. import ContractAdd from '@/views/signingManagement/contractManagement/contractAdd.vue'
  332. import AddSubscribe from '@/views/customerManagement/subscribe/addSubscribe.vue'
  333. import PaymentRegistration from '@/views/receiveRefundsManagement/paymentManagement/paymentRegistration.vue'
  334. import AddFunds from '@/views/receiveRefundsManagement/maintenanceFundsManagement/addFunds.vue'
  335. import AddRefund from '@/views/receiveRefundsManagement/refundManagement/addRefund.vue'
  336. import FormalInvoiceManageEdit from '@/views/invoice/components/formalInvoiceManageEdit.vue'
  337. import AddInvoice from '@/views/invoice/components/addInvoice.vue'
  338. export default {
  339. name: 'ParkRoomIndexDetailVue',
  340. components: { ContractAdd, ParkRoomIndexEdit, AddSubscribe, PaymentRegistration, AddFunds, AddRefund,
  341. FormalInvoiceManageEdit, AddInvoice },
  342. mixins: [Base, BaseData],
  343. data() {
  344. return {
  345. dc_key: ['DEPOSIT_STATUS', 'PAYMENT_METHODS', 'CONTRACT_STATUS', 'HOUSE_PAYMENT_STATUS',
  346. 'MAINTENANCE_FUNDS_STATUS', 'CHECK_OUT_REASON', 'INVOICE_STATUS', 'SEND_STATUS'],
  347. activeName: '概览',
  348. roomHistory: [],
  349. houseId: '',
  350. tableData: [],
  351. tabLoading: false,
  352. dialogTitle: '',
  353. dialogDepositVisible: false,
  354. dialogDepositTitle: '',
  355. dialogContractVisible: false,
  356. dialogContractTitle: '',
  357. dialogPayLogVisible: false,
  358. dialogFundVisible: false,
  359. dialogRefundVisible: false,
  360. dialogInvoiceVisible: false,
  361. dialogFormalInvoiceVisible: false
  362. }
  363. },
  364. methods: {
  365. initData(data) {
  366. this.initDict(this.dc_key).then((res) => {
  367. this.activeName = '概览'
  368. this.houseId = data.id
  369. if (data.activeName) {
  370. this.activeName = data.activeName
  371. }
  372. this.$nextTick(() => {
  373. this.$refs.parkRoomIndexEdit.initData(this.houseId)
  374. })
  375. this.getHistoryData()
  376. })
  377. },
  378. handleClick(tab, event) {
  379. this.tableData = []
  380. if (tab.name === '概览') {
  381. this.$nextTick(() => {
  382. this.$refs.parkRoomIndexEdit.initData(this.houseId)
  383. })
  384. } else if (tab.name === '认购') {
  385. this.getDepositData()
  386. } else if (tab.name === '签约') {
  387. this.getContractData()
  388. } else if (tab.name === '房款') {
  389. this.getPaymentData()
  390. } else if (tab.name === '专项维修资金') {
  391. this.getFundData()
  392. } else if (tab.name === '退房退款') {
  393. this.getRefundData()
  394. } else if (tab.name === '开票') {
  395. this.getInvoiceData()
  396. }
  397. },
  398. getDepositData() {
  399. const _this = this
  400. _this.tabLoading = true
  401. const postData = {
  402. houseId: this.houseId
  403. }
  404. this.baseDepositRequest('roomSelectionListAll', postData).then((res) => {
  405. if (res.data) {
  406. res.data.forEach(function(item) {
  407. const json = _this.getDepositItemJson(item)
  408. _this.tableData.push(json)
  409. })
  410. }
  411. _this.tabLoading = false
  412. }).catch((e) => {
  413. // console.log(e)
  414. })
  415. },
  416. getContractData: function() {
  417. const _this = this
  418. _this.tabLoading = true
  419. const postData = {
  420. houseId: this.houseId
  421. }
  422. this.baseContractRequest('listAll', postData).then((res) => {
  423. if (res.data) {
  424. res.data.forEach(function(item) {
  425. const json = _this.getContractItemJson(item)
  426. _this.tableData.push(json)
  427. })
  428. }
  429. _this.tabLoading = false
  430. }).catch((e) => {
  431. // console.log(e)
  432. })
  433. },
  434. getPaymentData: function() {
  435. const _this = this
  436. _this.tabLoading = true
  437. const postData = {
  438. payType: '1',
  439. houseId: this.houseId
  440. }
  441. this.basePaymentRequest('listAll', postData).then((res) => {
  442. if (res.data) {
  443. res.data.forEach(function(item) {
  444. const json = _this.getPaymentItemJson(item)
  445. _this.tableData.push(json)
  446. })
  447. }
  448. _this.tabLoading = false
  449. }).catch((e) => {
  450. // console.log(e)
  451. })
  452. },
  453. getFundData: function() {
  454. const _this = this
  455. _this.tabLoading = true
  456. const postData = {
  457. houseId: this.houseId
  458. }
  459. this.baseFundRequest('listAll', postData).then((res) => {
  460. if (res.data) {
  461. res.data.forEach(function(item) {
  462. const json = _this.getFundItemJson(item)
  463. _this.tableData.push(json)
  464. })
  465. }
  466. _this.tabLoading = false
  467. }).catch((e) => {
  468. // console.log(e)
  469. })
  470. },
  471. getRefundData() {
  472. const _this = this
  473. _this.tabLoading = true
  474. const postData = {
  475. houseId: this.houseId
  476. }
  477. this.baseRefundRequest('listAll', postData).then((res) => {
  478. if (res.data) {
  479. res.data.forEach(function(item) {
  480. const json = _this.getRefundItemJson(item)
  481. _this.tableData.push(json)
  482. })
  483. }
  484. _this.tabLoading = false
  485. }).catch((e) => {
  486. // console.log(e)
  487. })
  488. },
  489. getInvoiceData: function() {
  490. const _this = this
  491. _this.tabLoading = true
  492. const postData = {
  493. houseId: this.houseId
  494. }
  495. this.baseInvoiceRequest('listAll', postData).then((res) => {
  496. if (res.data) {
  497. res.data.forEach(function(item) {
  498. const json = _this.getInvoiceItemJson(item)
  499. _this.tableData.push(json)
  500. })
  501. }
  502. _this.tabLoading = false
  503. }).catch((e) => {
  504. // console.log(e)
  505. })
  506. },
  507. getHistoryData: function() {
  508. const _this = this
  509. const postData = {
  510. houseId: this.houseId
  511. }
  512. this.baseRequest('roomHistory', postData).then((res) => {
  513. console.log(res.data)
  514. const roomHistory = []
  515. for (const key in res.data) {
  516. console.log(res.data[key])
  517. roomHistory.push(res.data[key])
  518. }
  519. this.roomHistory = roomHistory
  520. }).catch((e) => {
  521. // console.log(e)
  522. })
  523. },
  524. getDepositItemJson: function(item) {
  525. item.houseName = item.buildName + '-' + item.roomNo
  526. item.statusStr = this.dc_map.DEPOSIT_STATUS[item.status]
  527. return item
  528. },
  529. getContractItemJson: function(item) {
  530. if (item.buyerProportion) {
  531. item.buyerProportionStr = item.buyerProportion + '%'
  532. }
  533. item.paymentMethodStr = this.dc_map.PAYMENT_METHODS[item.paymentMethod]
  534. item.contractStatusStr = this.dc_map.CONTRACT_STATUS[item.contractStatus]
  535. return item
  536. },
  537. getPaymentItemJson: function(item) {
  538. item.paymentMethodStr = this.dc_map.PAYMENT_METHODS[item.paymentMethod]
  539. item.collectionStatusStr = this.dc_map.HOUSE_PAYMENT_STATUS[item.collectionStatus]
  540. return item
  541. },
  542. getFundItemJson: function(item) {
  543. item.fundCollectionStatusStr = this.dc_map.MAINTENANCE_FUNDS_STATUS[item.fundCollectionStatus]
  544. return item
  545. },
  546. getRefundItemJson: function(item) {
  547. item.reasonStr = this.dc_map.CHECK_OUT_REASON[item.reason]
  548. return item
  549. },
  550. getInvoiceItemJson: function(item) {
  551. if (item.type == '1') {
  552. item.invoiceStatusStr = this.dc_map.INVOICE_STATUS[item.invoiceStatus]
  553. item.sendStatusStr = this.dc_map.SEND_STATUS[item.sendStatus]
  554. item.collectionStatusStr = this.dc_map.HOUSE_PAYMENT_STATUS[item.collectionStatus]
  555. }
  556. if (item.type == '2') {
  557. item.invoiceStatusStr = this.dc_map.INVOICE_STATUS[item.invoiceStatus]
  558. item.sendStatusStr = this.dc_map.SEND_STATUS[item.sendStatus]
  559. if (item.paymentType === '1') {
  560. item.collectionStatusStr = this.dc_map.HOUSE_PAYMENT_STATUS[item.collectionStatus]
  561. }
  562. if (item.paymentType === '2') {
  563. item.collectionStatusStr = this.dc_map.MAINTENANCE_FUNDS_STATUS[item.fundCollectionStatus]
  564. }
  565. item.paymentTypeStr = item.paymentType === '1' ? '房款' : '专项维修资金'
  566. }
  567. return item
  568. },
  569. depositView(val) {
  570. this.dialogDepositVisible = true
  571. this.dialogDepositTitle = '查看'
  572. val.isView = true
  573. // 新vue时调用的方法
  574. this.$nextTick(() => {
  575. this.$refs.addSubscribe.initData(val)
  576. })
  577. },
  578. contractView(val) {
  579. this.dialogContractVisible = true
  580. this.dialogContractTitle = '查看'
  581. val.isView = true
  582. // 新vue时调用的方法
  583. this.$nextTick(() => {
  584. this.$refs.contractAdd.initData(val)
  585. })
  586. },
  587. payLogView(val) {
  588. this.dialogPayLogVisible = true
  589. val.isView = true
  590. // 新vue时调用的方法
  591. this.$nextTick(() => {
  592. this.$refs.paymentRegistration.initData(val)
  593. })
  594. },
  595. fundView(val) {
  596. this.dialogFundVisible = true
  597. val.isView = true
  598. // 新vue时调用的方法
  599. this.$nextTick(() => {
  600. this.$refs.addFunds.initData(val)
  601. })
  602. },
  603. refundView(val) {
  604. this.dialogRefundVisible = true
  605. val.isView = true
  606. // 新vue时调用的方法
  607. this.$nextTick(() => {
  608. this.$refs.addRefund.initData(val)
  609. })
  610. },
  611. invoiceView(val) {
  612. // 预收款发票
  613. if (val.type == '1') {
  614. this.dialogInvoiceVisible = true
  615. this.dialogTitle = ''
  616. val.isView = true
  617. // 新vue时调用的方法
  618. this.$nextTick(() => {
  619. this.$refs.addInvoice.initData(val)
  620. })
  621. }
  622. // 正式发票
  623. if (val.type == '2') {
  624. this.dialogFormalInvoiceVisible = true
  625. this.dialogTitle = ''
  626. val.isView = true
  627. // 新vue时调用的方法
  628. this.$nextTick(() => {
  629. this.$refs.editInvoice.initData(val)
  630. })
  631. }
  632. },
  633. cancel: function() {
  634. this.dialogContractVisible = false
  635. this.dialogDepositVisible = false
  636. this.dialogPayLogVisible = false
  637. this.dialogFundVisible = false
  638. this.dialogRefundVisible = false
  639. this.dialogInvoiceVisible = false
  640. this.dialogFormalInvoiceVisible = false
  641. },
  642. baseRequest(opUrl, postData) {
  643. return this.$channel.globeRequest('ParkRoomController', opUrl, postData, 'project')
  644. },
  645. baseDepositRequest(opUrl, postData) {
  646. return this.$channel.globeRequest('RoomSelectionInfoController', opUrl, postData, 'project')
  647. },
  648. baseContractRequest(opUrl, postData) {
  649. return this.$channel.globeRequest('ContractManageController', opUrl, postData, 'project')
  650. },
  651. basePaymentRequest(opUrl, postData) {
  652. return this.$channel.globeRequest('PayLogController', opUrl, postData, 'project')
  653. },
  654. baseFundRequest(opUrl, postData) {
  655. return this.$channel.globeRequest('MaintenanceFundsManagementController', opUrl, postData, 'project')
  656. },
  657. baseRefundRequest(opUrl, postData) {
  658. return this.$channel.globeRequest('RefundManageController', opUrl, postData, 'project')
  659. },
  660. baseInvoiceRequest(opUrl, postData) {
  661. return this.$channel.globeRequest('InvoiceManageController', opUrl, postData, 'project')
  662. }
  663. }
  664. }
  665. </script>
  666. <style lang="scss">
  667. .mysteps{
  668. .is-finish{
  669. color: #0D2F76;
  670. border-color: #0D2F76;
  671. }
  672. .is-text{
  673. border-color: #0D2F76;
  674. }
  675. }
  676. .roomHistory-box{
  677. display: flex;
  678. .nodeBox-item{
  679. display: flex;
  680. align-items: center;
  681. }
  682. .end{
  683. margin-top: 20px;
  684. margin-bottom: 20px;
  685. height: 40px;
  686. width: 120px;
  687. background: #676767;
  688. text-align: center;
  689. color: white;
  690. display: flex;
  691. justify-content: center;
  692. align-items: center;
  693. margin-right: 20px;
  694. border-radius: 50%;
  695. }
  696. .nodeName{
  697. margin-top: 20px;
  698. margin-bottom: 20px;
  699. height: 40px;
  700. width: 120px;
  701. background: #0D2F76;
  702. text-align: center;
  703. color: white;
  704. display: flex;
  705. justify-content: center;
  706. align-items: center;
  707. margin-right: 20px;
  708. }
  709. }
  710. </style>