houseCertificate.vue 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570
  1. <template>
  2. <div>
  3. <y-detail-page-layout @save="handleCreate" :edit-status="editStatus">
  4. <el-form ref="houseCertificateForm" :model="certificate" :rules="rules">
  5. <div class="createMajor-main-container">
  6. <div class="postInfo-container">
  7. <el-row class="row-style">
  8. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  9. <el-form-item
  10. label="是否提供原件:"
  11. prop="haveOrigin"
  12. label-width="140px"
  13. class="postInfo-container-item"
  14. >
  15. <el-radio-group v-model="certificate.haveOrigin" size="small">
  16. <el-radio border :label="false">否</el-radio>
  17. <el-radio border :label="true">是</el-radio>
  18. </el-radio-group>
  19. </el-form-item>
  20. </el-col>
  21. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  22. <el-form-item
  23. label="房产证号:"
  24. prop="houseCertificateNo"
  25. label-width="140px"
  26. class="postInfo-container-item"
  27. >
  28. <el-input v-model="certificate.houseCertificateNo" class="filter-item" />
  29. </el-form-item>
  30. </el-col>
  31. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  32. <el-form-item
  33. label="丘(地)号/档案保管号/业务件号:"
  34. prop="businessNo"
  35. label-width="250px"
  36. class="postInfo-container-item"
  37. >
  38. <el-input v-model="certificate.businessNo" class="filter-item" />
  39. </el-form-item>
  40. </el-col>
  41. </el-row>
  42. <el-row class="row-style">
  43. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  44. <el-form-item
  45. label="房屋所有权人:"
  46. prop="ownerName"
  47. label-width="140px"
  48. class="postInfo-container-item"
  49. :rules="{required: true, message: '房屋所有权人不能为空', trigger: 'blur'}"
  50. >
  51. <el-input v-model="certificate.ownerName" class="filter-item" />
  52. </el-form-item>
  53. </el-col>
  54. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  55. <el-form-item
  56. label="共有情况:"
  57. prop="ownRight"
  58. label-width="140px"
  59. class="postInfo-container-item"
  60. >
  61. <el-input v-model="certificate.ownRight" class="filter-item" />
  62. </el-form-item>
  63. </el-col>
  64. </el-row>
  65. <el-row class="row-style">
  66. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  67. <el-form-item
  68. label="委托人1:"
  69. prop="bailor1"
  70. label-width="140px"
  71. class="postInfo-container-item"
  72. >
  73. <el-input v-model="certificate.bailor1" class="filter-item" />
  74. </el-form-item>
  75. </el-col>
  76. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  77. <el-form-item
  78. label="委托人1电话:"
  79. prop="bailor1Tel"
  80. label-width="140px"
  81. class="postInfo-container-item"
  82. >
  83. <el-input v-model="certificate.bailor1Tel" class="filter-item" />
  84. </el-form-item>
  85. </el-col>
  86. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  87. <el-form-item
  88. label="委托人1身份证号码:"
  89. prop="bailor1IdNo"
  90. label-width="180px"
  91. class="postInfo-container-item"
  92. >
  93. <el-input v-model="certificate.bailor1IdNo" class="filter-item" />
  94. </el-form-item>
  95. </el-col>
  96. </el-row>
  97. <el-row class="row-style">
  98. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  99. <el-form-item
  100. label="委托人2:"
  101. prop="bailor2"
  102. label-width="140px"
  103. class="postInfo-container-item"
  104. >
  105. <el-input v-model="certificate.bailor2" class="filter-item" />
  106. </el-form-item>
  107. </el-col>
  108. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  109. <el-form-item
  110. label="委托人2电话:"
  111. prop="bailor2Tel"
  112. label-width="140px"
  113. class="postInfo-container-item"
  114. >
  115. <el-input v-model="certificate.bailor2Tel" class="filter-item" />
  116. </el-form-item>
  117. </el-col>
  118. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  119. <el-form-item
  120. label="委托人2身份证号码:"
  121. prop="bailor2IdNo"
  122. label-width="180px"
  123. class="postInfo-container-item"
  124. >
  125. <el-input v-model="certificate.bailor2IdNo" class="filter-item" />
  126. </el-form-item>
  127. </el-col>
  128. </el-row>
  129. <el-row class="row-style">
  130. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  131. <el-form-item
  132. label="坐落:"
  133. prop="location"
  134. label-width="140px"
  135. class="postInfo-container-item"
  136. :rules="{required: true, message: '坐落不能为空', trigger: 'blur'}"
  137. >
  138. <el-input v-model="certificate.location" class="filter-item" />
  139. </el-form-item>
  140. </el-col>
  141. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  142. <el-form-item
  143. label="实勘地址:"
  144. prop="sceneAddress"
  145. label-width="140px"
  146. class="postInfo-container-item"
  147. >
  148. <el-input v-model="certificate.sceneAddress" class="filter-item" />
  149. </el-form-item>
  150. </el-col>
  151. </el-row>
  152. <el-row class="row-style">
  153. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  154. <el-form-item
  155. label="地址是否一致:"
  156. prop="isSameAddress"
  157. label-width="140px"
  158. class="postInfo-container-item"
  159. >
  160. <el-radio-group v-model="certificate.isSameAddress" size="small">
  161. <el-radio border :label="false">否</el-radio>
  162. <el-radio border :label="true">是</el-radio>
  163. </el-radio-group>
  164. </el-form-item>
  165. </el-col>
  166. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  167. <el-form-item
  168. label="地址证明:"
  169. prop="addressProve"
  170. label-width="140px"
  171. class="postInfo-container-item"
  172. >
  173. <el-radio-group v-model="certificate.addressProve" size="small">
  174. <el-radio border :label="false">否</el-radio>
  175. <el-radio border :label="true">是</el-radio>
  176. </el-radio-group>
  177. </el-form-item>
  178. </el-col>
  179. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  180. <el-form-item
  181. label="登记日期:"
  182. prop="registerDate"
  183. label-width="140px"
  184. type="date"
  185. value-format="yyyy-MM-dd"
  186. class="postInfo-container-item"
  187. >
  188. <el-date-picker
  189. v-model="certificate.registerDate"
  190. type="date"
  191. placeholder="选择日期">
  192. </el-date-picker>
  193. </el-form-item>
  194. </el-col>
  195. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  196. <el-form-item
  197. label="规划用途:"
  198. prop="useTo"
  199. label-width="140px"
  200. class="postInfo-container-item"
  201. :rules="{required: true, message: '规划用途不能为空', trigger: 'blur'}"
  202. >
  203. <el-input v-model="certificate.useTo" class="filter-item" />
  204. </el-form-item>
  205. </el-col>
  206. </el-row>
  207. <el-row class="row-style">
  208. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  209. <el-form-item
  210. label="总层数:"
  211. prop="allFloor"
  212. label-width="140px"
  213. class="postInfo-container-item"
  214. >
  215. <el-input v-model="certificate.allFloor" class="filter-item" />
  216. </el-form-item>
  217. </el-col>
  218. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  219. <el-form-item
  220. label="结构:"
  221. prop="structure"
  222. label-width="140px"
  223. class="postInfo-container-item"
  224. >
  225. <el-input v-model="certificate.structure" class="filter-item" />
  226. </el-form-item>
  227. </el-col>
  228. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  229. <el-form-item
  230. label="建筑面积(㎡):"
  231. prop="allAcreage"
  232. label-width="140px"
  233. class="postInfo-container-item"
  234. >
  235. <el-input v-model="certificate.allAcreage" class="filter-item" />
  236. </el-form-item>
  237. </el-col>
  238. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  239. <el-form-item
  240. label="套内面积(㎡):"
  241. prop="inAcreage"
  242. label-width="140px"
  243. class="postInfo-container-item"
  244. >
  245. <el-input v-model="certificate.inAcreage" class="filter-item" />
  246. </el-form-item>
  247. </el-col>
  248. </el-row>
  249. <el-row class="row-style">
  250. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  251. <el-form-item
  252. label="共有人:"
  253. prop="otherOwner"
  254. label-width="140px"
  255. class="postInfo-container-item"
  256. >
  257. <el-input v-model="certificate.otherOwner" class="filter-item" />
  258. </el-form-item>
  259. </el-col>
  260. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  261. <el-form-item
  262. label="共有证号:"
  263. prop="otherOwnerNo"
  264. label-width="140px"
  265. class="postInfo-container-item"
  266. >
  267. <el-input v-model="certificate.otherOwnerNo" class="filter-item" />
  268. </el-form-item>
  269. </el-col>
  270. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  271. <el-form-item
  272. label="土地使用权获得方式:"
  273. prop="landRightOwnType"
  274. label-width="180px"
  275. class="postInfo-container-item"
  276. >
  277. <el-input v-model="certificate.landRightOwnType" class="filter-item" />
  278. </el-form-item>
  279. </el-col>
  280. </el-row>
  281. <el-row class="row-style">
  282. <el-col :xs="24" :sm="12" :lg="24" :span="6">
  283. <el-form-item
  284. label="附记:"
  285. prop="attachmentInfo"
  286. label-width="140px"
  287. class="postInfo-container-item"
  288. >
  289. <el-input type="textarea" v-model="certificate.attachmentInfo" class="filter-item" />
  290. </el-form-item>
  291. </el-col>
  292. </el-row>
  293. <el-row class="row-style">
  294. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  295. <el-form-item
  296. label="是否设置抵押权:"
  297. prop="isPledge"
  298. label-width="140px"
  299. class="postInfo-container-item"
  300. >
  301. <el-select v-model="certificate.isPledge" placeholder="请选择" style="width:255px">
  302. <el-option label="否" value="否">否</el-option>
  303. <el-option label="向同一抵押权人申请续期贷款" value="向同一抵押权人申请续期贷款">向同一抵押权人申请续期贷款</el-option>
  304. <el-option label="向新抵押权人申请贷款" value="向新抵押权人申请贷款">向新抵押权人申请贷款</el-option>
  305. </el-select>
  306. </el-form-item>
  307. </el-col>
  308. <el-col :xs="24" :sm="12" :lg="6" :span="6" v-show="certificate.isPledge==='SAME' || certificate.isPledge==='DIFFERENT'">
  309. <el-form-item
  310. label="抵押权人:"
  311. prop="pledgePerson"
  312. label-width="140px"
  313. class="postInfo-container-item"
  314. >
  315. <el-input v-model="certificate.pledgePerson" class="filter-item" />
  316. </el-form-item>
  317. </el-col>
  318. <el-col :xs="24" :sm="12" :lg="6" :span="6" v-show="certificate.isPledge==='DIFFERENT'">
  319. <el-form-item
  320. label="新抵押权人:"
  321. prop="otherPledgePerson"
  322. label-width="140px"
  323. class="postInfo-container-item"
  324. >
  325. <el-input v-model="certificate.otherPledgePerson" class="filter-item" />
  326. </el-form-item>
  327. </el-col>
  328. </el-row>
  329. <el-row class="row-style">
  330. <el-col :xs="24" :sm="12" :lg="8" :span="6">
  331. <el-form-item
  332. label="已抵押担保的债券数额(万元):"
  333. prop="ensureDebiAmount"
  334. label-width="280px"
  335. class="postInfo-container-item"
  336. >
  337. <el-input v-model="certificate.ensureDebiAmount" class="filter-item" />
  338. </el-form-item>
  339. </el-col>
  340. <el-col :xs="24" :sm="12" :lg="8" :span="6">
  341. <el-form-item
  342. label="拖欠的建设工程价款(万元) :"
  343. prop="defaultDebiAmount"
  344. label-width="250px"
  345. class="postInfo-container-item"
  346. >
  347. <el-input v-model="certificate.defaultDebiAmount" class="filter-item" />
  348. </el-form-item>
  349. </el-col>
  350. <el-col :xs="24" :sm="12" :lg="8" :span="6">
  351. <el-form-item
  352. label="其他法定优先受偿款(万元):"
  353. prop="otherDebiAmount"
  354. label-width="250px"
  355. class="postInfo-container-item"
  356. >
  357. <el-input v-model="certificate.otherDebiAmount" class="filter-item" />
  358. </el-form-item>
  359. </el-col>
  360. </el-row>
  361. <el-row class="row-style">
  362. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  363. <el-form-item
  364. label="农商行项目:"
  365. prop="isNoneShangCase"
  366. label-width="140px"
  367. class="postInfo-container-item"
  368. >
  369. <el-radio-group v-model="certificate.isNoneShangCase" size="small">
  370. <el-radio border :label="false">否</el-radio>
  371. <el-radio border :label="true">是</el-radio>
  372. </el-radio-group>
  373. </el-form-item>
  374. </el-col>
  375. <el-col :xs="24" :sm="12" :lg="8" :span="6">
  376. <el-form-item
  377. label="农行西区支行项目:"
  378. prop="isNoneWestCase"
  379. label-width="160px"
  380. class="postInfo-container-item"
  381. >
  382. <el-radio-group v-model="certificate.isNoneWestCase" size="small">
  383. <el-radio border :label="false">否</el-radio>
  384. <el-radio border :label="true">是</el-radio>
  385. </el-radio-group>
  386. </el-form-item>
  387. </el-col>
  388. </el-row>
  389. </div>
  390. </div>
  391. </el-form>
  392. </y-detail-page-layout>
  393. </div>
  394. </template>
  395. <script>
  396. import YDetailPageLayout from '@/components/YDetailPageLayout/index_detail'
  397. import {isNumber,phoneNumber,postiveInteger,isIdNumber} from '@/utils/validate'
  398. export default {
  399. name: "houseCertificate",
  400. components: {
  401. YDetailPageLayout
  402. },
  403. props: {
  404. id:{
  405. type:Number,
  406. required:false,
  407. default:null
  408. },
  409. houseCertificateObject:{
  410. type:Object,
  411. },
  412. linkAttributes:{
  413. type:Object,
  414. default:null
  415. },
  416. editStatus:{
  417. type:Boolean,
  418. default:false
  419. },
  420. },
  421. watch:{
  422. id:function(value){
  423. this.certificate.id = value;
  424. },
  425. houseCertificateObject:function(value){
  426. if (value){
  427. this.certificate = value;
  428. }
  429. },
  430. linkAttributes:{
  431. handler(nv,ov){
  432. if (this.houseCertificateObject==null){
  433. this.certificate.location = nv.location;
  434. this.certificate.sceneAddress = nv.location;
  435. this.certificate.bailor1 = nv.bailor1;
  436. this.certificate.bailor1Tel = nv.bailor1Tel;
  437. this.certificate.bailor2 = nv.bailor2;
  438. this.certificate.bailor2Tel = nv.bailor2Tel;
  439. this.certificate.allAcreage = nv.acreage;
  440. this.certificate.allFloor = nv.allFloor;
  441. this.certificate.ownerName = nv.ownerName;
  442. this.converteUseTo(nv.purpose);
  443. }
  444. },
  445. deep:true
  446. }
  447. },
  448. computed: {
  449. },
  450. created(){
  451. },
  452. data() {
  453. return {
  454. name:"houseCertificate",
  455. rules:{
  456. bailor1Tel:[{validator:phoneNumber,trigger:'blur'}],
  457. bailor2Tel:[{validator:phoneNumber,trigger:'blur'}],
  458. bailor1IdNo:[{validator:isIdNumber,trigger:'blur'}],
  459. bailor2IdNo:[{validator:isIdNumber,trigger:'blur'}],
  460. allFloor:[{validator:postiveInteger,trigger:'blur'}],
  461. allAcreage:[{required: true, message: '建筑面积不能为空', trigger: 'blur'},{validator:isNumber,trigger:'blur'}],
  462. inAcreage:[{validator:isNumber,trigger:'blur'}],
  463. ensureDebiAmount:[{validator:isNumber,trigger:'blur'}],
  464. defaultDebiAmount:[{validator:isNumber,trigger:'blur'}],
  465. otherDebiAmount:[{validator:isNumber,trigger:'blur'}]
  466. },
  467. certificate:{
  468. id:null,
  469. haveOrigin:false,
  470. houseCertificateNo:null,
  471. businessNo:null,
  472. ownerName:null,
  473. ownRight:null,
  474. bailor1:null,
  475. bailor1Tel:null,
  476. bailor1IdNo:null,
  477. bailor2:null,
  478. bailor2Tel:null,
  479. bailor2IdNo:null,
  480. location:null,
  481. sceneAddress:null,
  482. isSameAddress:true,
  483. addressProve:false,
  484. registerDate:null,
  485. useTo:"",
  486. allFloor:null,
  487. structure:null,
  488. allAcreage:null,
  489. inAcreage:null,
  490. otherOwner:null,
  491. otherOwnerNo:null,
  492. landRightOwnType:null,
  493. isPledge:"否",
  494. pledgePerson:null,
  495. otherPledgePerson:null,
  496. ensureDebiAmount:null,
  497. defaultDebiAmount:null,
  498. otherDebiAmount:null,
  499. isNoneShangCase:false,
  500. isNoneWestCase:false
  501. }
  502. }
  503. },
  504. methods: {
  505. handleCreate(){
  506. if (this.certificate.id){
  507. this.$refs.houseCertificateForm.validate(valid=>{
  508. if (valid){
  509. this.$api.personalTarget.updateHouseCer(this.certificate).then(res=>{
  510. if (res.code === 200 && res.data){
  511. this.$notify({
  512. title: '房产证信息保存成功',
  513. type: 'success',
  514. duration: 2000
  515. });
  516. }else{
  517. this.$notify({
  518. title: '房产证信息保存失败',
  519. type: 'error',
  520. duration: 2000
  521. });
  522. }
  523. })
  524. }
  525. })
  526. }
  527. },
  528. converteUseTo(arr){
  529. if (arr){
  530. this.certificate.useTo = "";
  531. arr.forEach(element => {
  532. if (element==='OFFICE'){
  533. this.certificate.useTo += '办公 '
  534. }
  535. if (element==='HOUSE'){
  536. this.certificate.useTo += '住宅 '
  537. }
  538. if (element==='BUSINESS'){
  539. this.certificate.useTo += '商业 '
  540. }
  541. if (element==='INDUSTRIAL'){
  542. this.certificate.useTo += '工业 '
  543. }
  544. if (element==='OTHER'){
  545. this.certificate.useTo += '其他 '
  546. }
  547. });;
  548. }
  549. }
  550. }
  551. }
  552. </script>
  553. <style scoped lang="css">
  554. .row-style{
  555. margin-left:40px;
  556. margin-right:1%;
  557. }
  558. </style>