houseCertificate.vue 24 KB

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