移动端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

nmfwAdd.vue 32 KiB

2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
2 jaren geleden
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998
  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. >
  9. <template #left>
  10. <van-icon name="arrow-left" size="18" color="#fff" />
  11. </template>
  12. <template #title>
  13. <p style="color:#fff">入户调查</p>
  14. </template>
  15. </van-nav-bar>
  16. </div>
  17. <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">
  18. <van-row>
  19. <van-col span="4" :offset="1" style="text-align:center;" @click="$router.push({path:'/homesteadSurvey/add'})">
  20. <van-icon :name="require('../../assets/images/housesteadSurvey/zjd'+(active==1?'A':'D')+'.png')" size="1rem" style="margin-top:0px;"/>
  21. <p :style="{color:(active==1?'rgb(34, 183, 242)':'#000')}">宅基地</p>
  22. </van-col>
  23. <van-col span="2">
  24. <div style="border-top: 2px dashed #b5b4b4;margin-top: 20px;"></div>
  25. </van-col>
  26. <van-col span="4" style="text-align:center;" @click="$router.push({path:'/homesteadSurvey/add2'})" >
  27. <van-icon :name="require('../../assets/images/housesteadSurvey/nhxx'+(active==2?'A':'D')+'.png')" size="1rem" style="margin-top:0px;"/>
  28. <p :style="{color:(active==2?'rgb(34, 183, 242)':'#000')}">农户</p>
  29. </van-col>
  30. <van-col span="2">
  31. <div style="border-top: 2px dashed #b5b4b4;margin-top: 20px;"></div>
  32. </van-col>
  33. <van-col span="4" style="text-align:center;" @click="$router.push({path:'/homesteadSurvey/add3'})" >
  34. <van-icon :name="require('../../assets/images/housesteadSurvey/fwxx'+(active==3?'A':'D')+'.png')" size="1rem" style="margin-top:0px;"/>
  35. <p :style="{color:(active==3?'rgb(34, 183, 242)':'#000')}">房屋</p>
  36. </van-col>
  37. <van-col span="2">
  38. <div style="border-top: 2px dashed #b5b4b4;margin-top: 20px;"></div>
  39. </van-col>
  40. <van-col span="4" style="text-align:center;" @click="$router.push({path:'/homesteadSurvey/add4'})">
  41. <van-icon :name="require('../../assets/images/housesteadSurvey/fsss'+(active==4?'A':'D')+'.png')" size="1rem" style="margin-top:0px;"/>
  42. <p :style="{color:(active==4?'rgb(34, 183, 242)':'#000')}">附属物</p>
  43. </van-col>
  44. </van-row>
  45. </div>
  46. </van-sticky>
  47. <van-form ref = "form" label-width="auto">
  48. <div style="margin:1.6rem auto;background: #ffffff;width: 95%;box-shadow: 0px 3px 5px 0px rgba(0,0,0,0.16);border-radius:15px;padding-top: 20px;">
  49. <p class="title" style="position:relative;padding-left:10px;line-height:20px;font-size: 16px;margin-left: 3%;margin-bottom: 5px;">农民房屋信息</p>
  50. <!--<van-field
  51. v-model="form.deptId"
  52. name="行政区划名称"
  53. label="行政区划名称"
  54. placeholder="行政区划名称"
  55. :rules="[{ required: true, message: '' }]"
  56. />-->
  57. <p class="title" style="position:relative;padding-left:10px;line-height:20px;font-size: 16px;margin-left: 3%;margin-bottom: 5px;">基本信息</p>
  58. <van-field
  59. input-align="right"
  60. v-model="form.nmfwzh"
  61. name="房屋幢号"
  62. label="房屋幢号"
  63. placeholder="房屋幢号"
  64. maxlength="50"
  65. autocomplete="off"
  66. :rules="[{ required: true }]"
  67. required
  68. />
  69. <van-field
  70. readonly
  71. clickable
  72. :rules="[{ required: true }]"
  73. required
  74. label="农户代码"
  75. placeholder="请选择"
  76. v-model="form.nhdm"
  77. @click="shownhdm = true"
  78. input-align="right"
  79. right-icon="arrow-down"
  80. />
  81. <van-popup v-model="shownhdm" position="bottom">
  82. <van-search v-model="nhdmSearch" placeholder="请输入搜索关键词" @input="onSearch"/>
  83. <van-picker
  84. show-toolbar
  85. :columns="newList"
  86. value-key="shyqrdbxm"
  87. @confirm="shyqrdmxmChange"
  88. @cancel="shownhdm = false"
  89. />
  90. </van-popup>
  91. <van-field
  92. input-align="right"
  93. v-model="form.sjcs"
  94. name="实际层数"
  95. label="实际层数"
  96. placeholder="实际层数"
  97. maxlength="50"
  98. autocomplete="off"
  99. type="number"
  100. />
  101. <van-field
  102. input-align="right"
  103. v-model="form.hh"
  104. name="户号"
  105. label="户号"
  106. placeholder="户号"
  107. maxlength="50"
  108. autocomplete="off"
  109. />
  110. <field-select
  111. v-model="form.hx"
  112. label="户型"
  113. value-key="dictLabel"
  114. data-key="dictValue"
  115. placeholder="请选择户型"
  116. remote-url="/open/zdzh/list/nmfwhx"
  117. :on-remote-response="'data'"
  118. />
  119. <field-select
  120. v-model="form.hxjg"
  121. label="户型结构"
  122. value-key="dictLabel"
  123. data-key="dictValue"
  124. placeholder="请选择户型结构"
  125. remote-url="/open/zdzh/list/nmfwhxjg"
  126. :on-remote-response="'data'"
  127. />
  128. <van-field
  129. v-model="form.nmfwmj"
  130. label="房屋面积(m²)"
  131. placeholder="请输入房屋面积"
  132. input-align="right"
  133. label-width="auto"
  134. :rules="[{ required: true }]"
  135. required
  136. type="number"/>
  137. <van-field
  138. v-model="form.fjzdmj"
  139. label="房基占地面积(m²)"
  140. placeholder="请输入房基占地面积"
  141. input-align="right"
  142. label-width="auto"
  143. type="number"/>
  144. <van-field
  145. v-model="form.jzmj"
  146. label="建筑面积(m²)"
  147. placeholder="请输入建筑面积"
  148. input-align="right"
  149. label-width="auto"
  150. type="number"/>
  151. <field-select
  152. v-model="form.fwlx"
  153. label="房屋类型"
  154. value-key="dictLabel"
  155. data-key="dictValue"
  156. placeholder="请选择房屋类型"
  157. remote-url="/open/zdzh/list/fwlx"
  158. :on-remote-response="'data'"
  159. />
  160. <field-select
  161. v-model="form.fwxz"
  162. label="房屋性质"
  163. value-key="dictLabel"
  164. data-key="dictValue"
  165. placeholder="请选择房屋性质"
  166. remote-url="/open/zdzh/list/fwxz"
  167. :on-remote-response="'data'"
  168. />
  169. <field-select
  170. v-model="form.fwjg"
  171. label="房屋结构"
  172. value-key="dictLabel"
  173. data-key="dictValue"
  174. placeholder="请选择房屋结构"
  175. remote-url="/open/zdzh/list/housing_structure"
  176. :on-remote-response="'data'"
  177. />
  178. <van-field
  179. input-align="right"
  180. v-model="form.zl"
  181. name="坐落"
  182. label="坐落"
  183. placeholder="坐落"
  184. maxlength="50"
  185. autocomplete="off"
  186. :rules="[{ required: true }]"
  187. required
  188. />
  189. <field-select
  190. v-model="form.sjly"
  191. label="数据来源"
  192. value-key="dictLabel"
  193. data-key="dictValue"
  194. placeholder="请选择数据来源"
  195. remote-url="/open/zdzh/list/sjly"
  196. :on-remote-response="'data'"
  197. />
  198. <van-field
  199. input-align="right"
  200. v-model="form.bz"
  201. name="备注"
  202. label="备注"
  203. placeholder="备注"
  204. maxlength="50"
  205. autocomplete="off"
  206. />
  207. <p class="title" style="position:relative;padding-left:10px;line-height:20px;font-size: 16px;margin-left: 3%;margin-bottom: 5px;">不动产信息</p>
  208. <van-field
  209. input-align="right"
  210. v-model="form.bdcdyh"
  211. name="不动产单元号"
  212. label="不动产单元号"
  213. placeholder="不动产单元号"
  214. maxlength="50"
  215. autocomplete="off"
  216. />
  217. <van-field
  218. input-align="right"
  219. v-model="form.fwbm"
  220. name="房屋编码"
  221. label="房屋编码"
  222. placeholder="房屋编码"
  223. maxlength="50"
  224. autocomplete="off"
  225. />
  226. <van-field
  227. input-align="right"
  228. v-model="form.zrzh"
  229. name="自然幢号"
  230. label="自然幢号"
  231. placeholder="自然幢号"
  232. maxlength="50"
  233. autocomplete="off"
  234. />
  235. <van-field
  236. input-align="right"
  237. v-model="form.ch"
  238. name="层号"
  239. label="层号"
  240. placeholder="层号"
  241. maxlength="50"
  242. autocomplete="off"
  243. />
  244. <van-field
  245. input-align="right"
  246. v-model="form.sjc"
  247. name="实际层"
  248. label="实际层"
  249. placeholder="实际层"
  250. maxlength="50"
  251. autocomplete="off"
  252. type="number"
  253. />
  254. <van-field
  255. input-align="right"
  256. v-model="form.myc"
  257. name="名义层"
  258. label="名义层"
  259. placeholder="名义层"
  260. maxlength="50"
  261. autocomplete="off"
  262. type="number"
  263. />
  264. <p class="title" style="position:relative;padding-left:10px;line-height:20px;font-size: 16px;margin-left: 3%;margin-bottom: 5px;">证书信息</p>
  265. <FieldRadio
  266. v-model="form.sffz"
  267. label="是否发证"
  268. value-key="dictLabel"
  269. data-key="dictValue"
  270. remote-url="/open/zdzh/list/house_yes_no"
  271. @change="onSffzChanged"
  272. :on-remote-response="'data'"
  273. />
  274. <van-field
  275. v-if="showFzxx"
  276. input-align="right"
  277. v-model="form.zsh"
  278. name="证书号"
  279. label="证书号"
  280. placeholder="证书号"
  281. maxlength="150"
  282. required
  283. :rules="[{ required: true, message: '' }]"
  284. />
  285. <van-field
  286. v-if="showFzxx"
  287. input-align="right"
  288. v-model="form.djjg"
  289. name="登记机构"
  290. label="登记机构"
  291. placeholder="登记机构"
  292. maxlength="50"
  293. autocomplete="off"
  294. required
  295. :rules="[{ required: true, message: '' }]"
  296. />
  297. <van-field
  298. v-if="showFzxx"
  299. autocomplete="off"
  300. input-align="right"
  301. v-model="form.djsj"
  302. name="登记时间"
  303. label="登记时间"
  304. placeholder="登记时间"
  305. required
  306. :rules="[{ required: true, message: '' }]"
  307. readonly
  308. @click="showDjsj = true"
  309. />
  310. <van-popup v-model:show="showDjsj" position="bottom">
  311. <van-datetime-picker
  312. :value="new Date"
  313. type="date"
  314. title="选择年月日"
  315. @confirm="onConfirmDjsj"
  316. @cancel="showDjsj = false"
  317. />
  318. </van-popup>
  319. <FieldRadio
  320. v-model="form.sfjf"
  321. label="是否纠纷"
  322. value-key="dictLabel"
  323. data-key="dictValue"
  324. remote-url="/open/zdzh/list/house_yes_no"
  325. :on-remote-response="'data'"
  326. />
  327. <FieldRadio
  328. v-model="form.sfcf"
  329. label="是否查封"
  330. value-key="dictLabel"
  331. data-key="dictValue"
  332. remote-url="/open/zdzh/list/house_yes_no"
  333. :on-remote-response="'data'"
  334. @change="onSfcfChanged"
  335. />
  336. <van-field
  337. v-if="showCfxx"
  338. autocomplete="off"
  339. input-align="right"
  340. v-model="form.cfqssj"
  341. name="查封起始时间"
  342. label="查封起始时间"
  343. placeholder="查封起始时间"
  344. required
  345. :rules="[{ required: true, message: '' }]"
  346. readonly
  347. @click="showCfqssj = true"
  348. />
  349. <van-popup v-model:show="showCfqssj" position="bottom">
  350. <van-datetime-picker
  351. :value="new Date"
  352. type="date"
  353. title="选择年月日"
  354. @confirm="onConfirmCfqssj"
  355. @cancel="showCfqssj = false"
  356. />
  357. </van-popup>
  358. <van-field
  359. v-if="showCfxx"
  360. autocomplete="off"
  361. input-align="right"
  362. v-model="form.cfjssj"
  363. name="查封结束时间"
  364. label="查封结束时间"
  365. placeholder="查封结束时间"
  366. required
  367. :rules="[{ required: true, message: '' }]"
  368. readonly
  369. @click="showCfjssj = true"
  370. />
  371. <van-popup v-model:show="showCfjssj" position="bottom">
  372. <van-datetime-picker
  373. :value="new Date"
  374. type="date"
  375. title="选择年月日"
  376. @confirm="onConfirmCfjssj"
  377. @cancel="showCfjssj = false"
  378. />
  379. </van-popup>
  380. <p class="title" style="position:relative;padding-left:10px;line-height:20px;font-size: 16px;margin-left: 3%;margin-bottom: 5px;">利用情况</p>
  381. <field-select
  382. v-model="form.lyzk"
  383. label="房屋利用状况"
  384. value-key="dictLabel"
  385. data-key="dictValue"
  386. placeholder="请选择房屋利用状况"
  387. remote-url="/open/zdzh/list/nmfwlyzk"
  388. @change="onFwlyzkChanged"
  389. :on-remote-response="'data'"
  390. />
  391. <field-select
  392. v-if="showPhxx"
  393. v-model="form.phlyms"
  394. label="盘活利用模式"
  395. value-key="dictLabel"
  396. data-key="dictValue"
  397. placeholder="请选择盘活利用模式"
  398. remote-url="/open/zdzh/list/phlyms"
  399. :on-remote-response="'data'"
  400. required
  401. :rules="[{ required: true, message: '' }]"
  402. />
  403. <van-field
  404. v-if="showPhxx"
  405. input-align="right"
  406. v-model="form.nsy"
  407. name="年收益(元)"
  408. label="年收益(元)"
  409. placeholder="年收益"
  410. maxlength="50"
  411. autocomplete="off"
  412. type="number"
  413. required
  414. :rules="[{ required: true, message: '' }]"
  415. />
  416. <van-field
  417. v-if="showXzxx"
  418. input-align="right"
  419. v-model="form.fwxzyy"
  420. name="房屋闲置原因"
  421. label="房屋闲置原因"
  422. placeholder="房屋闲置原因"
  423. maxlength="50"
  424. autocomplete="off"
  425. required
  426. :rules="[{ required: true, message: '' }]"
  427. />
  428. <van-field
  429. v-if="showXzxx"
  430. autocomplete="off"
  431. input-align="right"
  432. v-model="form.fwxzkqsj"
  433. name="房屋闲置起始时间"
  434. label="房屋闲置起始时间"
  435. placeholder="房屋闲置起始时间"
  436. required
  437. :rules="[{ required: true, message: '' }]"
  438. readonly
  439. @click="showFwxzqssj = true"
  440. />
  441. <van-popup v-model:show="showFwxzqssj" position="bottom">
  442. <van-datetime-picker
  443. :value="new Date"
  444. type="date"
  445. title="选择年月日"
  446. @confirm="onConfirmFwxzqssj"
  447. @cancel="showFwxzqssj = false"
  448. />
  449. </van-popup>
  450. <p class="title" style="position:relative;padding-left:10px;line-height:20px;font-size: 16px;margin-left: 3%;margin-bottom: 5px;">抵押情况</p>
  451. <FieldRadio
  452. v-model="form.sfdy"
  453. label="是否抵押"
  454. value-key="dictLabel"
  455. data-key="dictValue"
  456. remote-url="/open/zdzh/list/house_yes_no"
  457. :on-remote-response="'data'"
  458. @change="onSfdyChanged"
  459. />
  460. <van-field
  461. v-if="showDyxx"
  462. input-align="right"
  463. v-model="form.dyqlr"
  464. name="抵押权利人"
  465. label="抵押权利人"
  466. placeholder="抵押权利人"
  467. maxlength="50"
  468. autocomplete="off"
  469. required
  470. :rules="[{ required: true, message: '' }]"
  471. />
  472. <van-field
  473. v-if="showDyxx"
  474. input-align="right"
  475. v-model="form.dyje"
  476. name="抵押金额"
  477. label="抵押金额"
  478. placeholder="抵押金额"
  479. maxlength="50"
  480. autocomplete="off"
  481. type="number"
  482. required
  483. :rules="[{ required: true, message: '' }]"
  484. />
  485. <van-field
  486. v-if="showDyxx"
  487. autocomplete="off"
  488. input-align="right"
  489. v-model="form.zwlxsjStart"
  490. name="债务履行开始时间"
  491. label="债务履行开始时间"
  492. placeholder="债务履行开始时间"
  493. required
  494. :rules="[{ required: true, message: '' }]"
  495. readonly
  496. @click="showZwlvqssj = true"
  497. />
  498. <van-popup v-model:show="showZwlvqssj" position="bottom">
  499. <van-datetime-picker
  500. :value="new Date"
  501. type="date"
  502. title="选择年月日"
  503. @confirm="onConfirmZwlvqssj"
  504. @cancel="showZwlvqssj = false"
  505. />
  506. </van-popup>
  507. <van-field
  508. v-if="showDyxx"
  509. autocomplete="off"
  510. input-align="right"
  511. v-model="form.zwlxsjEnd"
  512. name="债务履行结束时间"
  513. label="债务履行结束时间"
  514. placeholder="债务履行结束时间"
  515. required
  516. :rules="[{ required: true, message: '' }]"
  517. readonly
  518. @click="showZwlvjssj = true"
  519. />
  520. <van-popup v-model:show="showZwlvjssj" position="bottom">
  521. <van-datetime-picker
  522. :value="new Date"
  523. type="date"
  524. title="选择年月日"
  525. @confirm="onConfirmZwlvjssj"
  526. @cancel="showZwlvjssj = false"
  527. />
  528. </van-popup>
  529. <p class="title" style="position:relative;padding-left:10px;line-height:20px;font-size: 16px;margin-left: 3%;margin-bottom: 5px;">其他信息</p>
  530. <van-field
  531. input-align="right"
  532. v-model="form.jznd"
  533. name="建筑年代"
  534. label="建筑年代"
  535. placeholder="建筑年代"
  536. maxlength="50"
  537. autocomplete="off"
  538. />
  539. <field-select
  540. v-model="form.fwaqxjddj"
  541. label="房屋安全性鉴定等级"
  542. value-key="dictLabel"
  543. data-key="dictValue"
  544. placeholder="请选择房屋安全性鉴定等级"
  545. remote-url="/open/zdzh/list/fwaqxjddj"
  546. :on-remote-response="'data'"
  547. />
  548. <field-select
  549. v-model="form.fwzt"
  550. label="房屋状态"
  551. value-key="dictLabel"
  552. data-key="dictValue"
  553. placeholder="请选择房房屋状态"
  554. remote-url="/open/zdzh/list/fwzt"
  555. :on-remote-response="'data'"
  556. />
  557. <field-select
  558. v-model="form.fwyt"
  559. label="房屋用途"
  560. value-key="dictLabel"
  561. data-key="dictValue"
  562. placeholder="请选择房房屋状态"
  563. remote-url="/open/zdzh/list/fwyt"
  564. :on-remote-response="'data'"
  565. />
  566. <FieldRadio
  567. v-model="form.sfytrgy"
  568. label="与其他人共有"
  569. value-key="dictLabel"
  570. data-key="dictValue"
  571. remote-url="/open/zdzh/list/house_yes_no"
  572. :on-remote-response="'data'"
  573. />
  574. </div>
  575. <div style="margin: 16px;display: flex;justify-content: space-around;">
  576. <van-button v-if="permission == 'true'" round color="#22B7F2" style="width:45%" @click="submitzjd">保存</van-button>
  577. <van-button plain color="#22B7F2" style="width:45%" round type="info" @click="cancel">取消</van-button>
  578. </div>
  579. <div style="height: 50px;"></div>
  580. </van-form>
  581. </div>
  582. </template>
  583. <script>
  584. import {listZjdzd,getZjdzd,updateZjdzd,addZjdzd,uploadFile,getQueryLand,submitOnly} from "@/api/homesteadSurvey/zjdzd";
  585. import FieldSelect from "@/components/form/FieldSelect";
  586. import FieldRadio from "@/components/form/FieldRadio";
  587. import CommonMap from "@/components/house/CommonMap";
  588. import {getShyqrs} from "@/api/homesteadSurvey/shyqr";
  589. import {addNh, delNh, exportNh, getNh, listNh, updateNh,setNhInfo} from "@/api/homesteadSurvey/nh";
  590. import {listNmfw,addNmfw,updateNmfw,delNmfw} from "@/api/homesteadSurvey/nmfw";
  591. import { Notify, Dialog, Toast } from 'vant';
  592. import axios from "axios";
  593. export default {
  594. components: {FieldSelect, FieldRadio,CommonMap},
  595. name: "zrzAdd",
  596. data() {
  597. return {
  598. active:3,
  599. // 使用权人列表
  600. permission:false,
  601. shownhdm:false,
  602. showDjsj:false,
  603. syqrlist:[
  604. {
  605. shyqrdbxm :'测试测试',
  606. shyqrdbzjhm :'12324648564',
  607. nhdm :'777888999',
  608. }
  609. ],
  610. showDyxx:false,
  611. showFzxx:false,
  612. showCfxx:false,
  613. showCfqssj:false,
  614. showCfjssj:false,
  615. showZwlvqssj:false,
  616. showZwlvjssj:false,
  617. showXzxx:false,
  618. showPhxx:false,
  619. zjdzdxxItem:{},
  620. // 地图绘制
  621. drawInsert: null,
  622. nhdmSearch:null,
  623. showDropList:false,
  624. showFwxzqssj:false,
  625. nhdmDictionaries:[],
  626. newList:[],
  627. // 当前位置信息
  628. tGeoOrganizationLat: null,
  629. tGeoOrganizationLng: null,
  630. minDate: new Date(),
  631. maxDate: new Date(2025, 10, 1),
  632. showZgqrzrq:false,
  633. form:{}
  634. };
  635. },
  636. created(){
  637. let data = this.$route.query;
  638. this.form = data;
  639. this.permission = localStorage.getItem("executePermission");
  640. this.zjdzdxxItem = JSON.parse(localStorage.getItem("zjdzdxxItem"));
  641. if(this.form.id == null){
  642. this.$set(this.form, 'hx', "03");
  643. this.$set(this.form, 'hxjg', "01");
  644. this.$set(this.form, 'fwlx', "01");
  645. this.$set(this.form, 'fwxz', "10");
  646. this.$set(this.form, 'fwjg', "02");
  647. this.$set(this.form, 'sjly', "04");
  648. this.$set(this.form, 'sffz', "0");
  649. this.$set(this.form, 'sfjf', "0");
  650. this.$set(this.form, 'sfcf', "0");
  651. this.$set(this.form, 'lyzk', "11");
  652. this.$set(this.form, 'sfdy', "0");
  653. this.$set(this.form, 'fwaqxjddj', "01");
  654. this.$set(this.form, 'fwzt', "01");
  655. this.$set(this.form, 'fwyt', "10");
  656. this.$set(this.form, 'sfytrgy', "0");
  657. this.$set(this.form, 'sjcs', 1);
  658. }else{
  659. if(this.form.sffz === "1"){
  660. this.showFzxx = true;
  661. }else{
  662. this.showWbzyy = true;
  663. }
  664. if(this.form.sfcf === "1"){
  665. this.showCfxx = true;
  666. }
  667. if(this.form.sfdy === "1"){
  668. this.showDyxx = true;
  669. }
  670. if(this.form.jznd != null){
  671. this.form.jznd = this.form.jznd.substr(0,10);
  672. }
  673. if(this.form.lyzk === "30"){
  674. this.showXzxx = true;
  675. this.showPhxx = false;
  676. }else if(this.form.lyzk === "11"){
  677. this.showXzxx = false;
  678. this.showPhxx = false;
  679. }else{
  680. this.showPhxx = true;
  681. this.showXzxx = false;
  682. }
  683. }
  684. this.getList();
  685. },
  686. mounted(){
  687. },
  688. methods: {
  689. getList(){
  690. getShyqrs({zjddm:this.form.zjddm}).then(response => {
  691. this.nhdmDictionaries = response.rows.map(function(item){
  692. item.shyqrdbxm = item.shyqrdbxm + item.nhdm;
  693. return {
  694. shyqrdbxm:item.shyqrdbxm,
  695. nhdm:item.nhdm,
  696. };
  697. });
  698. this.newList = this.nhdmDictionaries;
  699. });
  700. },
  701. submitzjd(){
  702. this.$refs.form.validate().then(() => {
  703. if(this.form.id == null){
  704. addNmfw(this.form).then(response => {
  705. let _this =this
  706. this.$toast({
  707. icon: 'success', // 找到自己需要的图标
  708. message: '保存成功',
  709. duration:"1000",
  710. onClose:function(){
  711. _this.$router.push({path:'/homesteadSurvey/nmfwList',query: {nmfwzh:_this.form.nmfwzh}});
  712. }
  713. })
  714. })
  715. }else{
  716. updateNmfw(this.form).then(response => {
  717. let _this =this
  718. this.$toast({
  719. icon: 'success', // 找到自己需要的图标
  720. message: '保存成功',
  721. duration:"1000",
  722. onClose:function(){
  723. _this.$router.push({path:'/homesteadSurvey/nmfwList',query: {nmfwzh:_this.form.nmfwzh}});
  724. }
  725. })
  726. });
  727. }
  728. }).catch((e) => {
  729. Dialog({ type: 'danger', message: '请填写完整的表单项' });
  730. });
  731. },
  732. /**是否发证*/
  733. onSffzChanged(val){
  734. if(val === '1'){
  735. this.showFzxx = true;
  736. this.$set(this.form, 'zsh', this.zjdzdxxItem.zsh);
  737. }else{
  738. this.showFzxx = false;
  739. this.$set(this.form, 'zsh', null);
  740. this.$set(this.form, 'djjg', null);
  741. this.$set(this.form, 'djsj', null);
  742. }
  743. },
  744. /**是否查封*/
  745. onSfcfChanged(val){
  746. if(val === '1'){
  747. this.showCfxx = true;
  748. }else{
  749. this.showCfxx = false;
  750. this.$set(this.form, 'cfqssj', null);
  751. this.$set(this.form, 'cfjssj', null);
  752. }
  753. },
  754. /**是否抵押*/
  755. onSfdyChanged(val){
  756. if(val === '1'){
  757. this.showDyxx = true;
  758. }else{
  759. this.showDyxx = false;
  760. this.$set(this.form, 'dyqlr', null);
  761. this.$set(this.form, 'dyje', null);
  762. this.$set(this.form, 'zwlxsjStart', null);
  763. this.$set(this.form, 'zwlxsjEnd', null);
  764. }
  765. },
  766. onConfirmDjsj(data){
  767. this.form.djsj = this.getNowFormatDate(data).substr(0,10);
  768. this.showDjsj = false;
  769. },
  770. onConfirmCfqssj(data){
  771. this.form.cfqssj = this.getNowFormatDate(data).substr(0,10);
  772. this.showCfqssj = false;
  773. },
  774. onConfirmCfjssj(data){
  775. this.form.cfjssj = this.getNowFormatDate(data).substr(0,10);
  776. this.showCfjssj = false;
  777. },
  778. onConfirmZwlvqssj(data){
  779. this.form.zwlxsjStart = this.getNowFormatDate(data).substr(0,10);
  780. this.showZwlvqssj = false;
  781. },
  782. onConfirmZwlvjssj(data){
  783. this.form.zwlxsjEnd = this.getNowFormatDate(data).substr(0,10);
  784. this.showZwlvjssj = false;
  785. },
  786. onSearch(val) {
  787. console.info(val);
  788. if(this.nhdmDictionaries.length>0){
  789. this.newList = []
  790. for(let j = 0 ;j<this.nhdmDictionaries.length;j++){
  791. if(this.nhdmDictionaries[j].shyqrdbxm.indexOf(val)>-1){
  792. this.newList.push(this.nhdmDictionaries[j]);
  793. }
  794. }
  795. }
  796. if(val==""){
  797. this.getList()
  798. }
  799. },
  800. onFwlyzkChanged(val){
  801. console.info(val.dictValue);
  802. if(val.dictValue === "30"){
  803. this.showXzxx = true;
  804. this.showPhxx = false;
  805. }else if(val.dictValue === "11"){
  806. this.showXzxx = false;
  807. this.showPhxx = false;
  808. }else{
  809. if(val.dictValue !== undefined)
  810. this.showPhxx = true;
  811. this.showXzxx = false;
  812. }
  813. },
  814. onConfirmFwxzqssj(data){
  815. this.form.fwxzkqsj = this.getNowFormatDate(data).substr(0,10);
  816. this.showFwxzqssj = false;
  817. },
  818. /** 模糊查询人员信息 */
  819. remoteTransfereeMethod(query) {
  820. if (query !== "") {
  821. console.info(this.form.zjddm);
  822. getShyqrs({zjddm:this.form.zjddm,shyqrdbxm:query,}).then((response) => {
  823. if (response.code == 200) {
  824. if(response.rows.length === 0){
  825. this.form.nhdm = null;
  826. }
  827. this.nhdmDictionaries = response.rows.map(function (item) {
  828. return {
  829. shyqrdbxm:item.shyqrdbxm,
  830. nhdm:item.nhdm
  831. }
  832. })
  833. //设置模糊查询的下拉框和滚动条
  834. if (this.nhdmDictionaries.length > 0) {
  835. this.showDropList = true; // div显示会阻挡下边的选择框和输入框,showDropList控制下拉框是否显示
  836. //设置模糊查询的和滚动条
  837. this.$nextTick(() => {
  838. if (this.nhdmDictionaries.length > 4) {
  839. let height = document.getElementById("vanCell").offsetHeight * 4;
  840. document.getElementById("dropList").style.height = height + "px";
  841. document.getElementById("dropList").style.overflow = "scroll";
  842. } else {
  843. document.getElementById("dropList").style.height = "";
  844. document.getElementById("dropList").style.overflow = "visible";
  845. }
  846. });
  847. } else {
  848. this.showDropList = false;
  849. }
  850. }
  851. });
  852. } else {
  853. this.nhdmDictionaries = [];
  854. this.showDropList = false;
  855. }
  856. },
  857. shyqrdmxmChange(val){
  858. this.$set(this.form, "nhdm", val.nhdm);
  859. this.shownhdm = false;
  860. },
  861. // 绘制申请地图
  862. pointDarw(data) {
  863. this.$nextTick(() => {
  864. let map = this.$refs.pointDarwMap;
  865. if(data === null)
  866. data = this.form.theGeomJson;
  867. this.setMapData(map, data);
  868. });
  869. },
  870. // 通用设置地图数据函数
  871. setMapData(map, data) {
  872. //console.log(map, data ? true : false);
  873. if(!map) return;
  874. if(data)
  875. {
  876. map.setLayer('pointDarwLayer', data);
  877. }
  878. else {
  879. this.getLandCoord((lng, lat) => {
  880. map.setCoord(this.tGeoOrganizationLng, this.tGeoOrganizationLat);
  881. });
  882. }
  883. },
  884. // 当地图绘制完成时
  885. onMapDrawFinished(data) {
  886. console.info(data);
  887. this.drawInsert = data;
  888. this.form.theGeomJson = JSON.stringify(this.drawInsert);
  889. },
  890. // 当申请地图被重置时
  891. onMapDrawReseted() {
  892. this.drawInsert = null;
  893. if(this.form.theGeomJson)
  894. {
  895. let lastData = JSON.parse(this.form.theGeomJson);
  896. if(lastData.hasOwnProperty('coordinates')) // 从后台获取的
  897. this.drawInsert = lastData.coordinates;
  898. }
  899. },
  900. cancel(){
  901. this.$router.push({path:'/homesteadSurvey/nmfwList',query: {nmfwzh:this.form.nmfwzh}});
  902. },
  903. // 获取登录人位置坐标
  904. getLandCoord(func) {
  905. if (func
  906. && this.tGeoOrganizationLng !== null && this.tGeoOrganizationLng !== ''
  907. && this.tGeoOrganizationLat !== null && this.tGeoOrganizationLat !== '') {
  908. this.$nextTick(() => {
  909. func(this.tGeoOrganizationLng, this.tGeoOrganizationLat);
  910. })
  911. }
  912. else {
  913. console.info(this.deptId);
  914. getQueryLand(this.deptId).then((response) => {
  915. if (response.code == 200) {
  916. let InsertCode = response.data;
  917. this.form.orgCode = InsertCode.orgCode;
  918. this.tGeoOrganizationLat = InsertCode.lat;
  919. this.tGeoOrganizationLng = InsertCode.lng;
  920. if(func)
  921. {
  922. func(this.tGeoOrganizationLng, this.tGeoOrganizationLat);
  923. }
  924. }
  925. });
  926. }
  927. },
  928. guidProduct(){
  929. return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
  930. var r = Math.random() * 16 | 0,
  931. v = c == 'x' ? r : (r & 0x3 | 0x8);
  932. return v.toString(16);
  933. });
  934. },
  935. /** 查找地图中定位点 */
  936. MapTag: function (data) {
  937. this.$refs[this.zjdProductResh].drawingPaceCountryDarw();
  938. },
  939. onConfirmZgqrzrq(data){
  940. this.form.jgrq = this.getNowFormatDate(data).substr(0,10);
  941. this.showZgqrzrq = false;
  942. },
  943. goBack(){
  944. if(this.ztMap && this.enterMap ==1){
  945. if(this.form.id == null){
  946. this.backMap.backMapZjdAData.theGeom= "";
  947. }else{
  948. this.backMap.backMapZjdAData = this.form;
  949. }
  950. this.$cookies.set("search",this.backMap);
  951. } else {
  952. this.$cookies.set("search","");
  953. }
  954. this.$router.push({name: this.$router.back(-1)});
  955. // }
  956. },
  957. }
  958. }
  959. </script>
  960. <style scoped>
  961. >>> .bannerBg{
  962. width: 100%;
  963. color:#fff;
  964. padding:10px;
  965. background: linear-gradient(134deg,#7ac943 1%, #22b7f2);
  966. }
  967. >>> .van-hairline--bottom::after {
  968. border-bottom-width: 0;
  969. }
  970. >>> .title:before
  971. {
  972. content:"";
  973. width: 6px;
  974. height: 20PX;
  975. background: #7ac943;
  976. border-radius: 3px;
  977. position:absolute;
  978. left:0;
  979. bottom:0;
  980. }
  981. >>> .delete-button {
  982. height: 100%;
  983. }
  984. >>> .van-swipe-cell__wrapper{
  985. margin-right:-3px;
  986. }
  987. >>> .label-class .van-collapse-item__title--expanded{
  988. font-weight: bold;
  989. }
  990. </style>