移动端
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 

1094 Zeilen
37 KiB

  1. <template>
  2. <div class="app-container">
  3. <van-sticky style="position:relative;">
  4. <div class="bannerBg">
  5. <van-nav-bar
  6. style="background:transparent;border-bottom-width:0;margin-bottom:.5rem;"
  7. @click-left="goBack()"
  8. right-text ="首页"
  9. @click-right="goRightBack()"
  10. >
  11. <template #left>
  12. <van-icon name="arrow-left" size="18" color="#fff" />
  13. </template>
  14. <template #title>
  15. <p style="color:#fff">入户调查</p>
  16. </template>
  17. </van-nav-bar>
  18. </div>
  19. <div style="width:95%;left:2.5%;position:absolute;background:#fff;border-radius:15px;box-shadow: 0px 3px 5px 0px rgba(0,0,0,0.16);padding: .3rem;top:1.2rem">
  20. <van-row>
  21. <van-col span="4" :offset="1" style="text-align:center;" @click="$router.push({path:'/homesteadSurvey/add'})">
  22. <van-icon :name="require('../../assets/images/housesteadSurvey/zjd'+(active==1?'A':'D')+'.png')" size="1rem" style="margin-top:0px;"/>
  23. <p :style="{color:(active==1?'rgb(34, 183, 242)':'#000')}">宅基地</p>
  24. </van-col>
  25. <van-col span="2">
  26. <div style="border-top: 2px dashed #b5b4b4;margin-top: 20px;"></div>
  27. </van-col>
  28. <van-col span="4" style="text-align:center;" @click="checkTz('/homesteadSurvey/add2')" >
  29. <van-icon :name="require('../../assets/images/housesteadSurvey/nhxx'+(active==2?'A':'D')+'.png')" size="1rem" style="margin-top:0px;"/>
  30. <p :style="{color:(active==2?'rgb(34, 183, 242)':'#000')}">使用权人</p>
  31. </van-col>
  32. <van-col span="2">
  33. <div style="border-top: 2px dashed #b5b4b4;margin-top: 20px;"></div>
  34. </van-col>
  35. <van-col span="4" style="text-align:center;" @click="checkTz('/homesteadSurvey/add3')" >
  36. <van-icon :name="require('../../assets/images/housesteadSurvey/fwxx'+(active==3?'A':'D')+'.png')" size="1rem" style="margin-top:0px;"/>
  37. <p :style="{color:(active==3?'rgb(34, 183, 242)':'#000')}">房屋</p>
  38. </van-col>
  39. <van-col span="2">
  40. <div style="border-top: 2px dashed #b5b4b4;margin-top: 20px;"></div>
  41. </van-col>
  42. <van-col span="4" style="text-align:center;" @click="checkTz('/homesteadSurvey/add4')">
  43. <van-icon :name="require('../../assets/images/housesteadSurvey/fsss'+(active==4?'A':'D')+'.png')" size="1rem" style="margin-top:0px;"/>
  44. <p :style="{color:(active==4?'rgb(34, 183, 242)':'#000')}">附属物</p>
  45. </van-col>
  46. </van-row>
  47. </div>
  48. </van-sticky>
  49. <van-form ref="form" style="margin-top: 1.4rem;">
  50. <div style="margin:30px auto;background: #ffffff;width: 95%;box-shadow: 0px 3px 5px 0px rgba(0,0,0,0.16);border-radius:15px;padding-top: 20px;">
  51. <p class="title" style="position:relative;padding-left:10px;line-height:20px;font-size: 16px;margin-left: 3%;margin-bottom: 5px;">空间信息</p>
  52. <!--<van-field
  53. v-model="form.deptId"
  54. name="行政区划名称"
  55. label="行政区划名称"
  56. placeholder="行政区划名称"
  57. :rules="[{ required: true, message: '' }]"
  58. />-->
  59. <van-field
  60. autocomplete="off"
  61. input-align="right"
  62. v-model="form.suyqrdm"
  63. name="所有权人代码"
  64. label="所有权人代码"
  65. placeholder="所有权人代码"
  66. readonly
  67. />
  68. <van-field
  69. autocomplete="off"
  70. v-model="form.zldwdm"
  71. name="坐落单位代码"
  72. label="坐落单位代码"
  73. placeholder="坐落单位代码"
  74. input-align="right"
  75. required
  76. :rules="[{ required: true}]"
  77. />
  78. <van-field
  79. autocomplete="off"
  80. input-align="right"
  81. v-model="form.zddm"
  82. name="宗地代码"
  83. label="宗地代码"
  84. placeholder="宗地代码"
  85. />
  86. <van-field
  87. autocomplete="off"
  88. input-align="right"
  89. v-model="form.bdcdyh"
  90. name="不动产单元号"
  91. label="不动产单元号"
  92. placeholder="不动产单元号"
  93. />
  94. <van-field
  95. autocomplete="off"
  96. input-align="right"
  97. v-model="form.zl"
  98. name="坐落"
  99. label="坐落"
  100. placeholder="坐落"
  101. required
  102. :rules="[{ required: true }]"
  103. />
  104. <van-field
  105. autocomplete="off"
  106. input-align="right"
  107. v-model="form.zdmj"
  108. type="number"
  109. name="宗地面积(㎡)"
  110. label="宗地面积(㎡)"
  111. placeholder="宗地面积(㎡)"
  112. maxlength="15"
  113. required
  114. :rules="[{ required: true }]"
  115. />
  116. <field-select
  117. v-model="form.yt"
  118. label="用途"
  119. value-key="dictLabel"
  120. data-key="dictValue"
  121. placeholder="选择用途"
  122. remote-url="/open/zdzh/list/land_use"
  123. :on-remote-response="'data'"
  124. required
  125. :rules="[{ required: true }]"
  126. />
  127. <field-select
  128. v-model="form.dj"
  129. label="等级"
  130. value-key="dictLabel"
  131. data-key="dictValue"
  132. placeholder="选择等级"
  133. remote-url="/open/zdzh/list/tddj"
  134. :on-remote-response="'data'"
  135. />
  136. <van-field
  137. autocomplete="off"
  138. input-align="right"
  139. v-model="form.jg"
  140. name="价格(万元)"
  141. label="价格(万元)"
  142. placeholder="价格(万元)"
  143. type="number"
  144. maxlength="15"
  145. />
  146. <field-select
  147. v-model="form.qllx"
  148. label="权利类型"
  149. value-key="dictLabel"
  150. data-key="dictValue"
  151. placeholder="选择权利类型"
  152. remote-url="/open/zdzh/list/rights_type"
  153. :on-remote-response="'data'"
  154. />
  155. <field-select
  156. v-model="form.qlxz"
  157. label="权利性质"
  158. value-key="dictLabel"
  159. data-key="dictValue"
  160. placeholder="选择权利性质"
  161. remote-url="/open/zdzh/list/rights_nature"
  162. :on-remote-response="'data'"
  163. />
  164. <field-select
  165. v-model="form.qlsdfs"
  166. label="权利设定方式"
  167. value-key="dictLabel"
  168. data-key="dictValue"
  169. placeholder="选择权利设定方式"
  170. remote-url="/open/zdzh/list/right_setting_mode"
  171. :on-remote-response="'data'"
  172. />
  173. <van-field
  174. autocomplete="off"
  175. input-align="right"
  176. v-model="form.rjl"
  177. name="容积率"
  178. label="容积率"
  179. placeholder="容积率"
  180. />
  181. <van-field
  182. autocomplete="off"
  183. input-align="right"
  184. v-model="form.jzmd"
  185. name="建筑密度"
  186. label="建筑密度"
  187. placeholder="填写0~1小数"
  188. :rules="[{ validator, message: '请填写0~1小数,保留两位小数' }]"
  189. type="number"
  190. />
  191. <van-field
  192. autocomplete="off"
  193. input-align="right"
  194. v-model="form.jzxg"
  195. name="建筑限高"
  196. label="建筑限高(米)"
  197. placeholder="建筑限高"
  198. type="number"
  199. maxlength="15"
  200. />
  201. <van-field
  202. autocomplete="off"
  203. input-align="right"
  204. v-model="form.zdszd"
  205. name="宗地四至-东"
  206. label="宗地四至-东"
  207. placeholder="宗地四至-东"
  208. maxlength="150"
  209. required
  210. :rules="[{ required: true, message: '' }]"
  211. />
  212. <van-field
  213. autocomplete="off"
  214. input-align="right"
  215. v-model="form.zdszn"
  216. name="宗地四至-南"
  217. label="宗地四至-南"
  218. placeholder="宗地四至-南"
  219. maxlength="150"
  220. required
  221. :rules="[{ required: true, message: '' }]"
  222. />
  223. <van-field
  224. input-align="right"
  225. v-model="form.zdszx"
  226. name="宗地四至-西"
  227. label="宗地四至-西"
  228. placeholder="宗地四至-西"
  229. maxlength="150"
  230. required
  231. :rules="[{ required: true, message: '' }]"
  232. />
  233. <van-field
  234. autocomplete="off"
  235. input-align="right"
  236. v-model="form.zdszb"
  237. name="宗地四至-北"
  238. label="宗地四至-北"
  239. placeholder="宗地四至-北"
  240. maxlength="150"
  241. required
  242. :rules="[{ required: true}]"
  243. />
  244. <van-field
  245. autocomplete="off"
  246. input-align="right"
  247. v-model="form.tfh"
  248. name="图幅号"
  249. label="图幅号"
  250. placeholder="图幅号"
  251. />
  252. <van-field
  253. autocomplete="off"
  254. input-align="right"
  255. v-model="form.djh"
  256. name="地籍号"
  257. label="地籍号"
  258. placeholder="地籍号"
  259. />
  260. <van-field
  261. autocomplete="off"
  262. input-align="right"
  263. v-model="form.bz"
  264. name="备注"
  265. label="备注"
  266. placeholder="备注"
  267. />
  268. <field-select
  269. v-model="form.sjly"
  270. label="数据来源"
  271. value-key="dictLabel"
  272. data-key="dictValue"
  273. placeholder="选择数据来源"
  274. remote-url="/open/zdzh/list/sjly"
  275. :on-remote-response="'data'"
  276. required
  277. :rules="[{ required: true}]"
  278. />
  279. <p class="title" style="position:relative;padding-left:10px;line-height:20px;font-size: 16px;margin-left: 3%;margin-bottom: 5px;">属性信息</p>
  280. <field-select
  281. v-model="form.zjdqdfs"
  282. label="取得方式"
  283. value-key="dictLabel"
  284. data-key="dictValue"
  285. placeholder="选择取得方式"
  286. remote-url="/open/zdzh/list/acquisition_method"
  287. :on-remote-response="'data'"
  288. />
  289. <van-field
  290. autocomplete="off"
  291. input-align="right"
  292. v-model="form.zjdqdsj"
  293. name="取得时间"
  294. label="取得时间"
  295. placeholder="取得时间"
  296. readonly
  297. @click="showZjdqdsj = true"
  298. />
  299. <van-popup v-model:show="showZjdqdsj" position="bottom">
  300. <van-datetime-picker
  301. :value="new Date"
  302. type="date"
  303. @confirm="onConfirmzjdqdsj"
  304. @cancel="showZjdqdsj = false"
  305. />
  306. </van-popup>
  307. <van-field
  308. autocomplete="off"
  309. input-align="right"
  310. v-model="form.zjdpzmj"
  311. type="number"
  312. name="批准面积(㎡)"
  313. label="批准面积(㎡)"
  314. placeholder="批准面积(㎡)"
  315. maxlength="15"
  316. />
  317. <FieldRadio
  318. v-model="form.sfcz"
  319. label="是否超占"
  320. value-key="dictLabel"
  321. data-key="dictValue"
  322. remote-url="/open/zdzh/list/house_yes_no"
  323. :on-remote-response="'data'"
  324. @change="onSfczChanged"
  325. />
  326. <van-field
  327. v-if="showCzmj"
  328. autocomplete="off"
  329. input-align="right"
  330. v-model="form.czmj"
  331. type="number"
  332. name="超占面积(㎡)"
  333. label="超占面积(㎡)"
  334. placeholder="超占面积(㎡)"
  335. maxlength="15"
  336. required
  337. :rules="[{ required: true, message: '' }]"
  338. />
  339. <FieldRadio
  340. v-model="form.sffz"
  341. label="是否发证"
  342. value-key="dictLabel"
  343. data-key="dictValue"
  344. remote-url="/open/zdzh/list/house_yes_no"
  345. :on-remote-response="'data'"
  346. @change="onSffzChanged"
  347. />
  348. <van-field
  349. v-if="showFzxx"
  350. input-align="right"
  351. v-model="form.zsh"
  352. name="证书号"
  353. label="证书号"
  354. placeholder="证书号"
  355. maxlength="150"
  356. required
  357. :rules="[{ required: true, message: '' }]"
  358. />
  359. <van-field
  360. v-if="showFzxx"
  361. autocomplete="off"
  362. input-align="right"
  363. v-model="form.zsmj"
  364. type="number"
  365. name="证书面积(㎡)"
  366. label="证书面积(㎡)"
  367. placeholder="证书面积(㎡)"
  368. maxlength="15"
  369. required
  370. :rules="[{ required: true, message: '' }]"
  371. />
  372. <van-field
  373. v-if="showFzxx"
  374. input-align="right"
  375. v-model="form.fzdw"
  376. name="发证单位"
  377. label="发证单位"
  378. placeholder="发证单位"
  379. maxlength="150"
  380. required
  381. :rules="[{ required: true, message: '' }]"
  382. />
  383. <van-field
  384. v-if="showWbzyy"
  385. input-align="right"
  386. v-model="form.wbzyy"
  387. name="未办证原因"
  388. label="未办证原因"
  389. placeholder="未办证原因"
  390. maxlength="150"
  391. required
  392. :rules="[{ required: true, message: '' }]"
  393. />
  394. <field-select
  395. v-model="form.houseOwnership"
  396. label="权利归属"
  397. value-key="dictLabel"
  398. data-key="dictValue"
  399. placeholder="选择权利归属"
  400. remote-url="/open/zdzh/list/house_ownership"
  401. :on-remote-response="'data'"
  402. />
  403. <field-select
  404. v-model="form.landStatus"
  405. label="使用状态"
  406. value-key="dictLabel"
  407. data-key="dictValue"
  408. placeholder="选择使用状态"
  409. remote-url="/open/zdzh/list/land_status"
  410. :on-remote-response="'data'"
  411. required
  412. :rules="[{ required: true}]"
  413. />
  414. <field-select
  415. v-model="form.zjdlyzk"
  416. label="利用状况"
  417. value-key="dictLabel"
  418. data-key="dictValue"
  419. placeholder="选择利用状况"
  420. remote-url="/open/zdzh/list/zjdlyzk"
  421. :on-remote-response="'data'"
  422. @change="onZjdlyzkChanged"
  423. required
  424. :rules="[{ required: true}]"
  425. />
  426. <van-field
  427. v-if="showXzyy"
  428. input-align="right"
  429. v-model="form.zjdxzyy"
  430. name="闲置原因"
  431. label="闲置原因"
  432. placeholder="闲置原因"
  433. maxlength="150"
  434. required
  435. :rules="[{ required: true, message: '' }]"
  436. />
  437. <van-field
  438. v-if="showXzyy"
  439. autocomplete="off"
  440. input-align="right"
  441. v-model="form.zjdxzqssj"
  442. name="闲置起始时间"
  443. label="闲置起始时间"
  444. placeholder="闲置起始时间"
  445. required
  446. :rules="[{ required: true, message: '' }]"
  447. readonly
  448. @click="showXzqssj = true"
  449. />
  450. <van-popup v-model:show="showXzqssj" position="bottom">
  451. <van-datetime-picker
  452. :value="new Date"
  453. type="date"
  454. @confirm="onConfirmxzqssj"
  455. @cancel="showXzqssj = false"
  456. :min-date="minDate"
  457. :max-date="maxDate"
  458. />
  459. </van-popup>
  460. <field-select
  461. v-model="form.landPhms"
  462. label="盘活利用模式"
  463. value-key="dictLabel"
  464. data-key="dictValue"
  465. placeholder="选择盘活利用模式"
  466. remote-url="/open/zdzh/list/phlyms"
  467. :on-remote-response="'data'"
  468. />
  469. <van-field
  470. autocomplete="off"
  471. input-align="right"
  472. v-model="form.nsy"
  473. type="number"
  474. name="年收益(元)"
  475. label="年收益(元)"
  476. placeholder="年收益(元)"
  477. maxlength="15"
  478. />
  479. <van-row type="flex" justify="space-between" align="center">
  480. <van-col span="6"><div style="color: #646566;font-size: 0.373333rem;text-indent:17%;">宗地图</div></van-col>
  481. <van-col span="6">
  482. <MultiImageUploadComp :value="form.zdt" :uploadDisabled="showUpload" @fileUpdate="fileUpdateZdt"/>
  483. </van-col>
  484. </van-row>
  485. <!-- <van-collapse v-model="activeZjd">-->
  486. <!-- <van-collapse-item title="利用状况" name="1" class="label-class">-->
  487. <!-- <van-field-->
  488. <!-- autocomplete="off"-->
  489. <!-- input-align="right"-->
  490. <!-- v-model="form.lyzkName"-->
  491. <!-- name="当前利用状况"-->
  492. <!-- label="当前利用状况"-->
  493. <!-- placeholder="当前利用状况"-->
  494. <!-- readonly-->
  495. <!-- @click="showlyzk = true"-->
  496. <!-- />-->
  497. <!-- <van-field-->
  498. <!-- v-model="form.lyzk"-->
  499. <!-- style="display:none"-->
  500. <!-- />-->
  501. <!-- <van-field-->
  502. <!-- autocomplete="off"-->
  503. <!-- input-align="right"-->
  504. <!-- v-model="form.zjdxzyy"-->
  505. <!-- name="闲置原因"-->
  506. <!-- label="闲置原因"-->
  507. <!-- placeholder="宅基地闲置原因"-->
  508. <!-- maxlength="200"-->
  509. <!-- />-->
  510. <!-- <van-field-->
  511. <!-- autocomplete="off"-->
  512. <!-- input-align="right"-->
  513. <!-- v-model="form.xzkssj"-->
  514. <!-- name="闲置开始时间"-->
  515. <!-- label="闲置开始时间"-->
  516. <!-- placeholder="闲置开始时间"-->
  517. <!-- readonly-->
  518. <!-- @click="showPickerxzkssj = true"-->
  519. <!-- />-->
  520. <!-- <van-popup v-model:show="showPickerxzkssj" position="bottom">-->
  521. <!-- <van-datetime-picker-->
  522. <!-- type="date"-->
  523. <!-- @confirm="onConfirmxzkssj"-->
  524. <!-- @cancel="showPickerxzkssj = false"-->
  525. <!-- :min-date="minDate"-->
  526. <!-- :max-date="maxDate"-->
  527. <!-- />-->
  528. <!-- </van-popup>-->
  529. <!-- <van-field name="radio" label="流转意向" input-align="right" autocomplete="off">-->
  530. <!-- <template #input>-->
  531. <!-- <van-radio-group v-model="form.lzyx" direction="horizontal">-->
  532. <!-- <van-radio name="1">有</van-radio>-->
  533. <!-- <van-radio name="0">无</van-radio>-->
  534. <!-- </van-radio-group>-->
  535. <!-- </template>-->
  536. <!-- </van-field>-->
  537. <!-- <van-field name="radio" label="有偿退出意向" input-align="right" autocomplete="off">-->
  538. <!-- <template #input>-->
  539. <!-- <van-radio-group v-model="form.yctcyx" direction="horizontal">-->
  540. <!-- <van-radio name="1">有</van-radio>-->
  541. <!-- <van-radio name="0">无</van-radio>-->
  542. <!-- </van-radio-group>-->
  543. <!-- </template>-->
  544. <!-- </van-field>-->
  545. <!-- </van-collapse-item>-->
  546. <!-- <van-collapse-item title="其他信息" name="2" class="label-class">-->
  547. <!-- <van-field-->
  548. <!-- autocomplete="off"-->
  549. <!-- input-align="right"-->
  550. <!-- v-model="form.djName"-->
  551. <!-- name="等级"-->
  552. <!-- label="等级"-->
  553. <!-- placeholder="等级"-->
  554. <!-- @click="showdj = true"-->
  555. <!-- />-->
  556. <!-- <van-field-->
  557. <!-- autocomplete="off"-->
  558. <!-- v-model="form.dj"-->
  559. <!-- style="display:none"-->
  560. <!-- />-->
  561. <!-- <van-field-->
  562. <!-- autocomplete="off"-->
  563. <!-- input-align="right"-->
  564. <!-- v-model="form.jg"-->
  565. <!-- name="价格(万元)"-->
  566. <!-- label="价格(万元)"-->
  567. <!-- placeholder="价格(万元)"-->
  568. <!-- maxlength="15"-->
  569. <!-- type="number"-->
  570. <!-- />-->
  571. <!-- <van-field-->
  572. <!-- autocomplete="off"-->
  573. <!-- input-align="right"-->
  574. <!-- v-model="form.ytmc"-->
  575. <!-- name="用途"-->
  576. <!-- label="用途"-->
  577. <!-- placeholder="用途"-->
  578. <!-- readonly-->
  579. <!-- @click="showyt = true"-->
  580. <!-- required-->
  581. <!-- :rules="[{ required: true, message: '用途不能为空' }]"-->
  582. <!-- />-->
  583. <!-- <van-field-->
  584. <!-- v-model="form.yt"-->
  585. <!-- style="display:none"-->
  586. <!-- autocomplete="off"-->
  587. <!-- />-->
  588. <!-- <van-field-->
  589. <!-- autocomplete="off"-->
  590. <!-- input-align="right"-->
  591. <!-- v-model="form.qllxName"-->
  592. <!-- name="权利类型"-->
  593. <!-- label="权利类型"-->
  594. <!-- placeholder="权利类型"-->
  595. <!-- readonly-->
  596. <!-- @click="showqllx = true"-->
  597. <!-- />-->
  598. <!-- <van-field-->
  599. <!-- autocomplete="off"-->
  600. <!-- v-model="form.qllx"-->
  601. <!-- style="display:none"-->
  602. <!-- />-->
  603. <!-- <van-field-->
  604. <!-- autocomplete="off"-->
  605. <!-- input-align="right"-->
  606. <!-- v-model="form.qlxzName"-->
  607. <!-- name="权利性质"-->
  608. <!-- label="权利性质"-->
  609. <!-- placeholder="权利性质"-->
  610. <!-- readonly-->
  611. <!-- @click="showqlxz = true"-->
  612. <!-- />-->
  613. <!-- <van-field-->
  614. <!-- autocomplete="off"-->
  615. <!-- v-model="form.qlxz"-->
  616. <!-- style="display:none"-->
  617. <!-- />-->
  618. <!-- <van-field-->
  619. <!-- autocomplete="off"-->
  620. <!-- input-align="right"-->
  621. <!-- v-model="form.qlsdfsName"-->
  622. <!-- name="权利设定方式"-->
  623. <!-- label="权利设定方式"-->
  624. <!-- placeholder="权利设定方式"-->
  625. <!-- readonly-->
  626. <!-- @click="showqlsdfs = true"-->
  627. <!-- />-->
  628. <!-- <van-field-->
  629. <!-- autocomplete="off"-->
  630. <!-- v-model="form.qlsdfs"-->
  631. <!-- style="display:none"-->
  632. <!-- />-->
  633. <!-- <van-field-->
  634. <!-- autocomplete="off"-->
  635. <!-- input-align="right"-->
  636. <!-- v-model="form.rjl"-->
  637. <!-- name="容积率"-->
  638. <!-- label="容积率"-->
  639. <!-- placeholder="容积率"-->
  640. <!-- />-->
  641. <!-- <van-field-->
  642. <!-- input-align="right"-->
  643. <!-- v-model="form.jzmd"-->
  644. <!-- name="validator"-->
  645. <!-- label="建筑密度"-->
  646. <!-- placeholder="填写0~1小数"-->
  647. <!-- :rules="[{ validator, message: '请填写0~1小数,保留两位小数' }]"-->
  648. <!-- type="number"-->
  649. <!-- />-->
  650. <!-- <van-field-->
  651. <!-- autocomplete="off"-->
  652. <!-- input-align="right"-->
  653. <!-- v-model="form.jzxg"-->
  654. <!-- name="建筑限高(m)"-->
  655. <!-- label="建筑限高(m)"-->
  656. <!-- placeholder="填写000.00~999.99小数"-->
  657. <!-- :rules="[{ validator:validator1, message: '请填写000.00~999.99小数,保留两位小数' }]"-->
  658. <!-- type="number"-->
  659. <!-- />-->
  660. <!-- <van-field-->
  661. <!-- autocomplete="off"-->
  662. <!-- input-align="right"-->
  663. <!-- v-model="form.zdt"-->
  664. <!-- name="宗地图"-->
  665. <!-- label="宗地图"-->
  666. <!-- placeholder="宗地图"-->
  667. <!-- maxlength="200"-->
  668. <!-- />-->
  669. <!-- <van-field-->
  670. <!-- autocomplete="off"-->
  671. <!-- input-align="right"-->
  672. <!-- v-model="form.tfh"-->
  673. <!-- name="图幅号"-->
  674. <!-- label="图幅号"-->
  675. <!-- placeholder="图幅号"-->
  676. <!-- maxlength="50"-->
  677. <!-- />-->
  678. <!-- <van-field-->
  679. <!-- autocomplete="off"-->
  680. <!-- input-align="right"-->
  681. <!-- v-model="form.djh"-->
  682. <!-- name="地籍号"-->
  683. <!-- label="地籍号"-->
  684. <!-- placeholder="自动生成"-->
  685. <!-- disabled-->
  686. <!-- v-show="false"-->
  687. <!-- />-->
  688. <!-- <van-field name="radio" label="被惩处经历" input-align="right" autocomplete="off">-->
  689. <!-- <template #input>-->
  690. <!-- <van-radio-group v-model="form.bccjl" direction="horizontal">-->
  691. <!-- <van-radio name="1">有</van-radio>-->
  692. <!-- <van-radio name="0">无</van-radio>-->
  693. <!-- </van-radio-group>-->
  694. <!-- </template>-->
  695. <!-- </van-field>-->
  696. <!-- <van-field-->
  697. <!-- autocomplete="off"-->
  698. <!-- v-if="form.bccjl==1"-->
  699. <!-- input-align="right"-->
  700. <!-- v-model="form.bccbz"-->
  701. <!-- name="被惩处备注"-->
  702. <!-- label="被惩处备注"-->
  703. <!-- placeholder="被惩处备注"-->
  704. <!-- maxlength="200"-->
  705. <!-- />-->
  706. <!-- <van-field name="radio" label="宅基地取得方式" input-align="right" autocomplete="off">-->
  707. <!-- <template #input>-->
  708. <!-- <van-radio-group v-model="form.zjdqdfs" direction="horizontal">-->
  709. <!-- <van-radio v-for="dict in zjdqdfsOptions" :key="dict.dictValue" :name="dict.dictValue">{{dict.dictLabel}}</van-radio>-->
  710. <!-- </van-radio-group>-->
  711. <!-- </template>-->
  712. <!-- </van-field>-->
  713. <!-- </van-collapse-item>-->
  714. <!-- </van-collapse>-->
  715. <!-- <van-field-->
  716. <!-- autocomplete="off"-->
  717. <!-- v-model="form.sjlyName"-->
  718. <!-- name="数据来源"-->
  719. <!-- label="数据来源"-->
  720. <!-- placeholder="数据来源"-->
  721. <!-- input-align="right"-->
  722. <!-- readonly-->
  723. <!-- @click="showsjly = true"-->
  724. <!-- />-->
  725. <!-- <van-field-->
  726. <!-- autocomplete="off"-->
  727. <!-- v-model="form.sjly"-->
  728. <!-- style="display:none"-->
  729. <!-- />-->
  730. <!-- <van-field-->
  731. <!-- autocomplete="off"-->
  732. <!-- input-align="right"-->
  733. <!-- v-model="form.bz"-->
  734. <!-- name="备注"-->
  735. <!-- label="备注"-->
  736. <!-- placeholder="备注"-->
  737. <!-- maxlength="200"-->
  738. <!-- />-->
  739. <!-- <van-field name="uploader" label="现场照片" autocomplete="off">-->
  740. <!-- <template #input>-->
  741. <!-- <van-uploader v-model="fileListzjd" :after-read="beforeReadzjd" multiple @delete="deleteFilezjd" :max-count="20" accept="image/*"></van-uploader>-->
  742. <!-- </template>-->
  743. <!-- </van-field>-->
  744. <common-map ref="pointDarwMap" style="height:200px;"
  745. :allowDraw="true"
  746. @drawReseted="onMapDrawReseted"
  747. @drawFinished="onMapDrawFinished"
  748. >
  749. </common-map>
  750. </div>
  751. <div style="margin: 16px;display: flex;justify-content: space-around;">
  752. <van-button v-if="permission == 'true'" round color="#22B7F2" style="width:45%" @click="submitzjd">保存</van-button>
  753. </div>
  754. <div style="height: 50px;"></div>
  755. </van-form>
  756. </div>
  757. </template>
  758. <script>
  759. import {getZjdzd,updateZjdzd,addZjdzd,getQueryLand} from "@/api/homesteadSurvey/zjdzd";
  760. import {attach} from "@/api/sunVillage_info/homestead/application";
  761. import FieldSelect from "@/components/form/FieldSelect";
  762. import FieldRadio from "@/components/form/FieldRadio";
  763. import CommonMap from "@/components/house/CommonMap";
  764. import {listSuyqr} from "@/api/homesteadSurvey/suyqr";
  765. import MultiImageUploadComp from "@/components/house/MultiImageUploadComp"
  766. import { Notify, Dialog, Toast } from 'vant';
  767. import axios from "axios";
  768. export default {
  769. name: "homesteadAdd",
  770. components: { CommonMap,FieldSelect, FieldRadio,MultiImageUploadComp},
  771. data() {
  772. return {
  773. active:1,
  774. // 使用权人列表
  775. suyqrList:[],
  776. // 地图绘制
  777. drawInsert: null,
  778. permission:false,
  779. // 当前位置信息
  780. tGeoOrganizationLat: null,
  781. tGeoOrganizationLng: null,
  782. showZjdqdsj:false,
  783. showCzmj:false,
  784. showFzxx:false,
  785. showWbzyy:false,
  786. showXzyy:false,
  787. showXzqssj:false,
  788. showUpload:false,
  789. minDate: new Date(1900,0,1),
  790. maxDate: new Date(2025, 10, 1),
  791. form:{}
  792. };
  793. },
  794. created(){
  795. this.form = JSON.parse(localStorage.getItem("zjdzdxxItem"));
  796. this.permission = localStorage.getItem("executePermission");
  797. if(this.form.sfcz === "1"){
  798. this.showCzmj = true;
  799. }
  800. if(this.form.sffz === "1"){
  801. this.showFzxx = true;
  802. }else{
  803. this.showWbzyy = true;
  804. }
  805. if(this.form.zjdlyzk !== "1"){
  806. this.showXzyy = true;
  807. }
  808. listSuyqr({}).then((response) => {
  809. this.suyqrList = response.rows;
  810. });
  811. this.$nextTick(() => {
  812. this.pointDarw(null);
  813. // this.pointDarwNature(null);
  814. this.$refs.pointDarwMap && this.$refs.pointDarwMap.update();
  815. })
  816. },
  817. mounted(){
  818. },
  819. watch:{
  820. "form.zjdpzmj":function (newVal,oldVal){
  821. if(newVal < 0){
  822. this.form.zjdpzmj = "";
  823. return false;
  824. }
  825. if(newVal === "" && oldVal && oldVal.toString().indexOf(".") > 0){
  826. this.form.zjdpzmj = oldVal;
  827. return false;
  828. }
  829. if(newVal){
  830. newVal = newVal.toString();
  831. let pointIndex = newVal.indexOf(".");
  832. if(pointIndex > 0 && newVal.length - pointIndex > 3){
  833. this.form.zjdpzmj = oldVal;
  834. return true;
  835. }
  836. }
  837. }
  838. },
  839. methods: {
  840. submitzjd(){
  841. this.$refs.form.validate().then(() => {
  842. if(this.form.theGeomJson == null){
  843. Dialog({ type: 'danger', message: '请在地图上标注宅基地所在位置!' });
  844. return;
  845. }
  846. this.permission = "false";
  847. if(this.form.id == null){
  848. let surveyItem = JSON.parse(localStorage.getItem("surveyItem"));
  849. if(this.form.theGeomJson instanceof Array){
  850. this.$set(this.form, 'theGeomJson', JSON.stringify( this.form.theGeomJson));
  851. }else if(typeof this.form.theGeomJson === 'string'){
  852. let theGeometry = JSON.parse( this.form.theGeomJson);
  853. if(theGeometry.hasOwnProperty('coordinates')) // 从后台获取的
  854. this.$set(this.form, 'theGeomJson', JSON.stringify(theGeometry.coordinates));
  855. }
  856. this.$set(this.form, 'surveyId', surveyItem.id)
  857. addZjdzd(this.form).then(response => {
  858. let _this =this;
  859. getZjdzd(response.data).then((res) => {
  860. console.info(res.data);
  861. localStorage.setItem("zjdzdxxItem",JSON.stringify(res.data));
  862. this.$toast({
  863. icon: 'success', // 找到自己需要的图标
  864. message: '保存成功',
  865. duration:"1000",
  866. onClose:function(){
  867. _this.$router.push({path:'/homesteadSurvey/add2'});
  868. }
  869. })
  870. })
  871. });
  872. }else{
  873. updateZjdzd(this.form).then(response => {
  874. let _this =this;
  875. getZjdzd(this.form.id).then((res) => {
  876. localStorage.setItem("zjdzdxxItem",JSON.stringify(res.data));
  877. this.$toast({
  878. icon: 'success', // 找到自己需要的图标
  879. message: '保存成功',
  880. duration:"1000",
  881. onClose:function(){
  882. _this.$router.push({path:'/homesteadSurvey/add2'});
  883. }
  884. })
  885. })
  886. });
  887. }
  888. }).catch((e) => {
  889. Dialog({ type: 'danger', message: '请填写完整的表单项' });
  890. });
  891. },
  892. validator(val){
  893. if(val>1||val<0||val.length>4){
  894. return false
  895. }else{
  896. return true
  897. }
  898. },
  899. guidProduct(){
  900. return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
  901. var r = Math.random() * 16 | 0,
  902. v = c == 'x' ? r : (r & 0x3 | 0x8);
  903. return v.toString(16);
  904. });
  905. },
  906. /** 查找地图中定位点 */
  907. MapTag: function (data) {
  908. this.$refs[this.zjdProductResh].drawingPaceCountryDarw();
  909. },
  910. onConfirmzjdqdsj(data){
  911. this.form.zjdqdsj = this.getNowFormatDate(data).substr(0,10);
  912. this.showZjdqdsj = false;
  913. },
  914. onConfirmxzqssj(data){
  915. this.form.zjdxzqssj = this.getNowFormatDate(data).substr(0,10);
  916. this.showXzqssj = false;
  917. },
  918. /**是否超占处理*/
  919. onSfczChanged(val){
  920. if(val === '1'){
  921. this.showCzmj = true;
  922. }else{
  923. this.showCzmj = false;
  924. }
  925. },
  926. /**是否发证*/
  927. onSffzChanged(val){
  928. if(val === '1'){
  929. this.showFzxx = true;
  930. this.showWbzyy = false;
  931. }else{
  932. this.showFzxx = false;
  933. this.showWbzyy = true;
  934. }
  935. },
  936. checkTz(val){
  937. console.info(val)
  938. if(this.form.zjddm == null){
  939. Dialog({ type: 'danger', message: '请生成宅基地信息!' });
  940. }else if(this.form.theGeomJson == null){
  941. Dialog({ type: 'danger', message: '请在地图上标注宅基地所在位置!' });
  942. }else{
  943. this.$router.push({path:val});
  944. }
  945. },
  946. fileUpdateZdt(val){
  947. const params = new FormData();
  948. params.append("tableId", this.form.id);
  949. params.append("tableName", "t_homestead_zjdzdxx");
  950. params.append("bizPath", "upload");
  951. params.append("fileType", "10");
  952. params.append('file', val.file);
  953. console.info( val);
  954. this.$set(this.form, 'zdt',val);
  955. },
  956. /**宅基地利用状态处理*/
  957. onZjdlyzkChanged(val){
  958. console.info(val);
  959. if(val.dictValue === '1'){
  960. this.showXzyy = false;
  961. }else{
  962. this.showXzyy = true;
  963. }
  964. },
  965. // 绘制申请地图
  966. pointDarw(data) {
  967. this.$nextTick(() => {
  968. let map = this.$refs.pointDarwMap;
  969. console.info(this.form.theGeomJson);
  970. if(data == null)
  971. data = this.form.theGeomJson;
  972. this.setMapData(map, data);
  973. });
  974. },
  975. // 通用设置地图数据函数
  976. setMapData(map, data) {
  977. //console.log(map, data ? true : false);
  978. if(!map) return;
  979. if(data)
  980. {
  981. map.addLayerNew('pointDarwLayer',data,"zjdzdxx",this.form.surveyStatus);
  982. }
  983. else {
  984. this.getLandCoord((lng, lat) => {
  985. map.setCoord(this.tGeoOrganizationLng, this.tGeoOrganizationLat);
  986. });
  987. }
  988. },
  989. // 当地图绘制完成时
  990. onMapDrawFinished(data) {
  991. console.info(JSON.stringify(data));
  992. this.drawInsert = data;
  993. this.form.theGeomJson = JSON.stringify(this.drawInsert);
  994. },
  995. // 获取登录人位置坐标
  996. getLandCoord(func) {
  997. if (func
  998. && this.tGeoOrganizationLng !== null && this.tGeoOrganizationLng !== ''
  999. && this.tGeoOrganizationLat !== null && this.tGeoOrganizationLat !== '') {
  1000. this.$nextTick(() => {
  1001. func(this.tGeoOrganizationLng, this.tGeoOrganizationLat);
  1002. })
  1003. }
  1004. else {
  1005. getQueryLand(this.deptId).then((response) => {
  1006. if (response.code == 200) {
  1007. let InsertCode = response.data;
  1008. this.form.orgCode = InsertCode.orgCode;
  1009. this.tGeoOrganizationLat = InsertCode.lat;
  1010. this.tGeoOrganizationLng = InsertCode.lng;
  1011. if(func)
  1012. {
  1013. func(this.tGeoOrganizationLng, this.tGeoOrganizationLat);
  1014. }
  1015. }
  1016. });
  1017. }
  1018. },
  1019. // 当申请地图被重置时
  1020. onMapDrawReseted() {
  1021. this.drawInsert = null;
  1022. if(this.form.theGeomJson)
  1023. {
  1024. let lastData = JSON.parse(this.form.theGeomJson);
  1025. if(lastData.hasOwnProperty('coordinates')) // 从后台获取的
  1026. this.drawInsert = lastData.coordinates;
  1027. }
  1028. },
  1029. goBack(){
  1030. if(this.ztMap && this.enterMap ==1){
  1031. if(this.form.id == null){
  1032. this.backMap.backMapZjdAData.theGeom= "";
  1033. }else{
  1034. this.backMap.backMapZjdAData = this.form;
  1035. }
  1036. this.$cookies.set("search",this.backMap);
  1037. } else {
  1038. this.$cookies.set("search","");
  1039. }
  1040. this.$router.push({name: this.$router.back(-1)});
  1041. // }
  1042. },
  1043. goRightBack(){
  1044. this.$router.push({path:'/homesteadSurvey/list'});
  1045. }
  1046. }
  1047. }
  1048. </script>
  1049. <style scoped>
  1050. >>> .bannerBg{
  1051. width: 100%;
  1052. color:#fff;
  1053. padding:10px;
  1054. background: linear-gradient(134deg,#7ac943 1%, #22b7f2);
  1055. }
  1056. >>> .van-hairline--bottom::after {
  1057. border-bottom-width: 0;
  1058. }
  1059. >>> .title:before
  1060. {
  1061. content:"";
  1062. width: 6px;
  1063. height: 20PX;
  1064. background: #7ac943;
  1065. border-radius: 3px;
  1066. position:absolute;
  1067. left:0;
  1068. bottom:0;
  1069. }
  1070. /deep/ .van-nav-bar__text {
  1071. color: #fff;
  1072. }
  1073. >>> .delete-button {
  1074. height: 100%;
  1075. }
  1076. >>> .van-swipe-cell__wrapper{
  1077. margin-right:-3px;
  1078. }
  1079. >>> .label-class .van-collapse-item__title--expanded{
  1080. font-weight: bold;
  1081. }
  1082. </style>