移动端
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 

766 řádky
35 KiB

  1. <template>
  2. <div class="app-container">
  3. <van-nav-bar
  4. title="公示信息"
  5. left-arrow
  6. fixed
  7. placeholder
  8. @click-left="$router.back(-1)"
  9. />
  10. <van-steps :active="active" active-color="#38f">
  11. <van-step>申请</van-step>
  12. <van-step>开工</van-step>
  13. <van-step>验收</van-step>
  14. </van-steps>
  15. <p class="topTit">农村宅基地和建房(规划许可)申请表</p>
  16. <div class="main">
  17. <van-form>
  18. <div v-if="applicationDetail.tHouseApplyProposer">
  19. <p class="main_title">申请用户信息</p>
  20. <div class="main_box">
  21. <van-field :readonly="auditStatus" :rules="[{ required: true }]" required v-model="applicationDetail.tHouseApplyProposer.memberName" label="姓名" placeholder="姓名" input-align="right"/>
  22. <van-field
  23. readonly
  24. clickable
  25. v-model="sexValue"
  26. label="性别"
  27. placeholder="选择性别"
  28. @click=" auditStatus==true ? '' : showSex = true"
  29. input-align="right"
  30. :rules="[{ required: true }]" required
  31. />
  32. <van-popup v-model="showSex" position="bottom">
  33. <van-picker
  34. show-toolbar
  35. :columns="userSex"
  36. @confirm="onConfirmSex"
  37. @cancel="showSex = false"
  38. :readonly="auditStatus"
  39. />
  40. </van-popup>
  41. <van-field :readonly="auditStatus" :rules="[{ required: true }]" required v-model="applicationDetail.tHouseApplyProposer.age" label="年龄" placeholder="年龄" input-align="right"/>
  42. <van-field :readonly="auditStatus" :rules="[{ required: true }]" required v-model="applicationDetail.tHouseApplyProposer.phone" label="联系电话" placeholder="联系电话" input-align="right"/>
  43. <van-field :readonly="auditStatus" :rules="[{ required: true }]" required v-model="applicationDetail.tHouseApplyProposer.idcard" label="身份证号" placeholder="身份证号" input-align="right"/>
  44. <van-field :readonly="auditStatus" :rules="[{ required: true }]" required v-model="applicationDetail.tHouseApplyProposer.householdRegister" label="户口所在地" placeholder="户口所在地" input-align="right"/>
  45. <van-field :readonly="auditStatus" :rules="[{ required: true }]" required v-model="applicationDetail.tHouseApplyProposer.familyAddress" label="家庭住址" placeholder="家庭住址" input-align="right"/>
  46. <van-field :readonly="auditStatus" :rules="[{ required: true }]" required v-model="applicationDetail.tHouseApplyProposer.members" label="家庭人口数" placeholder="家庭人口数" input-align="right"/>
  47. <van-cell title="是否已有宅基地">
  48. <template #right-icon>
  49. {{applicationDetail.tHouseApplyProposer.existHomestead=='Y'?'是':'否'}}
  50. </template>
  51. </van-cell>
  52. </div>
  53. </div>
  54. <div v-if="applicationDetail.tHouseApplyFamilyMembers && applicationDetail.tHouseApplyFamilyMembers!=''">
  55. <p class="main_title">家庭成员信息<van-button icon="plus" size="mini" type="info" native-type="button" class="addFamily" @click="addFamily" v-if="!auditStatus" /></p>
  56. <van-collapse v-model="activeNames" v-if="auditStatus">
  57. <van-collapse-item class="collapse" v-for="(item , index) in applicationDetail.tHouseApplyFamilyMembers" :key="index" :name="index+1">
  58. <template #title>
  59. <van-row>
  60. <van-col span="8">{{item.memberName}}</van-col>
  61. <van-col span="8">{{item.age}}</van-col>
  62. <van-col span="8">{{item.familyStatusName}}</van-col>
  63. </van-row>
  64. </template>
  65. <van-field :readonly="auditStatus" v-model="item.memberName" label="姓名" placeholder="姓名" input-align="right"/>
  66. <van-field :readonly="auditStatus" v-model="item.age" label="年龄" placeholder="年龄" input-align="right"/>
  67. <van-field :readonly="auditStatus" v-model="item.familyStatusName" label="与户主关系" placeholder="与户主关系" input-align="right"/>
  68. <van-field :readonly="auditStatus" v-model="item.idcard" label="身份证号" placeholder="身份证号" input-align="right"/>
  69. <van-field :readonly="auditStatus" v-model="item.householdRegister" label="户口所在地" placeholder="户口所在地" input-align="right"/>
  70. </van-collapse-item>
  71. </van-collapse>
  72. <div class="familyList" v-if="!auditStatus" v-for="(item , index) in applicationDetail.tHouseApplyFamilyMembers" :key="index">
  73. <div class="main_box" style="margin-bottom: 20px">
  74. <van-button icon="minus" size="mini" type="danger" class="deleteFamily" native-type="button" v-if="index!=0" @click="deleteFamily(index)" />
  75. <van-field v-model="item.memberName" label="姓名" placeholder="姓名" input-align="right"/>
  76. <van-field v-model="item.age" label="年龄" placeholder="年龄" input-align="right"/>
  77. <van-field v-model="item.familyStatusName" label="与户主关系" placeholder="与户主关系" input-align="right"/>
  78. <van-field v-model="item.idcard" label="身份证号" placeholder="身份证号" input-align="right"/>
  79. <van-field v-model="item.householdRegister" label="户口所在地" placeholder="户口所在地" input-align="right"/>
  80. </div>
  81. </div>
  82. <!-- <div class=" familyList">-->
  83. <!-- <van-button icon="minus" size="mini" type="danger" class="deleteFamily" />-->
  84. <!-- <div class="main_box">-->
  85. <!-- <van-field label="姓名" placeholder="姓名" input-align="right"/>-->
  86. <!-- <van-field label="年龄" placeholder="年龄" input-align="right"/>-->
  87. <!-- <van-field label="与户主关系" placeholder="与户主关系" input-align="right"/>-->
  88. <!-- <van-field label="身份证号" placeholder="身份证号" input-align="right"/>-->
  89. <!-- <van-field label="户口所在地" placeholder="户口所在地" input-align="right"/>-->
  90. <!-- </div>-->
  91. <!-- </div>-->
  92. </div>
  93. <div v-if="CurrentSituation">
  94. <p class="main_title">现宅基地及农房状况</p>
  95. <div class="main_box">
  96. <van-field :rules="[{ required: true }]" required :readonly="auditStatus" v-model="applicationDetail.tHouseApplyCurrentSituation.landArea" label="宅基地面积" placeholder="宅基地面积" input-align="right"/>
  97. <van-field :rules="[{ required: true }]" required :readonly="auditStatus" v-model="applicationDetail.tHouseApplyCurrentSituation.landPerArea" label="人均宅基地面积" placeholder="人均宅基地面积㎡" input-align="right" label-width="auto"/>
  98. <van-field :rules="[{ required: true }]" required :readonly="auditStatus" v-model="applicationDetail.tHouseApplyCurrentSituation.landCertificateNo" label="不动产单元号" placeholder="不动产单元号" input-align="right"/>
  99. <van-field :rules="[{ required: true }]" required :readonly="auditStatus" v-model="applicationDetail.tHouseApplyCurrentSituation.buildingArea" label="建筑面积" placeholder="建筑面积㎡" input-align="right"/>
  100. <van-field :rules="[{ required: true }]" required :readonly="auditStatus" v-model="applicationDetail.tHouseApplyCurrentSituation.buildingPerArea" label="人均建筑面积" placeholder="人均建筑面积㎡" input-align="right"/>
  101. <van-field :rules="[{ required: true }]" required :readonly="auditStatus" v-model="applicationDetail.tHouseApplyCurrentSituation.houseCertificateNo" label="农民房屋幢号" placeholder="户口所在地" input-align="right"/>
  102. <van-field
  103. readonly
  104. clickable
  105. :value="landIsposalValue"
  106. label="处置情况"
  107. placeholder="选择宅基地处置情况"
  108. @click=" auditStatus==true ? '' : showLandIsposal = true"
  109. input-align="right"
  110. :readonly="auditStatus"
  111. :rules="[{ required: true }]" required
  112. />
  113. <van-popup v-model="showLandIsposal" position="bottom">
  114. <van-picker
  115. show-toolbar
  116. :columns="landIsposal"
  117. @confirm="onConfirmLandIsposal"
  118. @cancel="showLandIsposal = false"
  119. :readonly="auditStatus"
  120. />
  121. </van-popup>
  122. <!-- <van-field-->
  123. <!-- readonly-->
  124. <!-- clickable-->
  125. <!-- name="picker"-->
  126. <!-- :value="applicationDetail.tHouseApplyCurrentSituation.buildingType"-->
  127. <!-- label="建房类型"-->
  128. <!-- placeholder="选择建房类型"-->
  129. <!-- @click="showBuildingType = true"-->
  130. <!-- input-align="right"-->
  131. <!-- right-icon="arrow-down"-->
  132. <!-- />-->
  133. <!-- <van-popup v-model="showBuildingType" position="bottom">-->
  134. <!-- <van-picker-->
  135. <!-- show-toolbar-->
  136. <!-- :columns="buildingType"-->
  137. <!-- @confirm="onConfirmBuildingType"-->
  138. <!-- @cancel="showBuildingType = false"-->
  139. <!-- />-->
  140. <!-- </van-popup>-->
  141. </div>
  142. </div>
  143. <div v-if="applicationDetail.tHouseApplyProposedSituation">
  144. <p class="main_title">拟申请宅基地及建房情况</p>
  145. <div class="main_box">
  146. <van-field :rules="[{ required: true }]" required :readonly="auditStatus" v-model="applicationDetail.tHouseApplyProposedSituation.location" label="拟建位置" placeholder="拟建位置" input-align="right"/>
  147. <van-field :rules="[{ required: true }]" required :readonly="auditStatus" v-model="applicationDetail.tHouseApplyProposedSituation.landArea" label="宅基地面积" placeholder="宅基地面积" input-align="right"/>
  148. <van-field :rules="[{ required: true }]" required :readonly="auditStatus" v-model="applicationDetail.tHouseApplyProposedSituation.east" label="东至" placeholder="东至" input-align="right"/>
  149. <van-field :rules="[{ required: true }]" required :readonly="auditStatus" v-model="applicationDetail.tHouseApplyProposedSituation.west" label="西至" placeholder="西至" input-align="right"/>
  150. <van-field :rules="[{ required: true }]" required :readonly="auditStatus" v-model="applicationDetail.tHouseApplyProposedSituation.south" label="南至" placeholder="南至" input-align="right"/>
  151. <van-field :rules="[{ required: true }]" required :readonly="auditStatus" v-model="applicationDetail.tHouseApplyProposedSituation.north" label="北至" placeholder="北至" input-align="right"/>
  152. <van-field :rules="[{ required: true }]" required :readonly="auditStatus" v-model="applicationDetail.tHouseApplyProposedSituation.buildingArea" label="建筑面积" placeholder="建筑面积" input-align="right"/>
  153. <van-field :rules="[{ required: true }]" required :readonly="auditStatus" v-model="applicationDetail.tHouseApplyProposedSituation.buildingFloors" label="建筑层数" placeholder="建筑层数" input-align="right"/>
  154. <van-field :rules="[{ required: true }]" required :readonly="auditStatus" v-model="applicationDetail.tHouseApplyProposedSituation.buildingHight" label="建筑高度" placeholder="建筑高度" input-align="right"/>
  155. <van-cell title="是否征求相邻权利人意见">
  156. <template #right-icon>
  157. {{applicationDetail.tHouseApplyProposedSituation.isAdvice=='Y'?'是':'否'}}
  158. </template>
  159. </van-cell>
  160. <van-field
  161. readonly
  162. clickable
  163. v-model="housingStructureValue"
  164. label="房屋构造"
  165. placeholder="选择房屋构造"
  166. @click=" auditStatus==true ? '' : showHousingStructure = true"
  167. input-align="right"
  168. :rules="[{ required: true }]" required
  169. />
  170. <van-popup v-model="showHousingStructure" position="bottom">
  171. <van-picker
  172. show-toolbar
  173. :columns="housingStructure"
  174. @confirm="onConfirmHousingStructure"
  175. @cancel="showHousingStructure = false"
  176. :readonly="auditStatus"
  177. />
  178. </van-popup>
  179. <van-field
  180. readonly
  181. clickable
  182. :value="buildingTypeValue"
  183. label="建房类型"
  184. placeholder="选择建房类型"
  185. @click=" auditStatus==true ? '' : showBuildingType = true"
  186. input-align="right"
  187. :rules="[{ required: true }]" required
  188. />
  189. <van-popup v-model="showBuildingType" position="bottom">
  190. <van-picker
  191. show-toolbar
  192. :columns="buildingType"
  193. @confirm="onConfirmBuildingType"
  194. @cancel="showBuildingType = false"
  195. />
  196. </van-popup>
  197. <van-cell title="设计图纸">
  198. <template #right-icon>
  199. <van-radio-group :disabled="auditStatus" @change="designPaperChange" v-model="applicationDetail.tHouseApplyProposedSituation.designPaper" direction="horizontal">
  200. <van-radio name="1">委托设计</van-radio>
  201. <van-radio name="2">选通用图</van-radio>
  202. </van-radio-group>
  203. </template>
  204. </van-cell>
  205. <van-field
  206. readonly
  207. clickable
  208. :value="houseTypeValue"
  209. placeholder="选择户型图"
  210. @click=" auditStatus==true ? '' : showHouseType = true"
  211. input-align="right"
  212. right-icon="arrow-down"
  213. v-if="showHouse"
  214. :rules="[{ required: true }]" required
  215. />
  216. <van-popup v-model="showHouseType" position="bottom">
  217. <van-picker
  218. show-toolbar
  219. :columns="houseType"
  220. @confirm="onConfirmHouseType"
  221. @cancel="showHouseType = false"
  222. />
  223. </van-popup>
  224. </div>
  225. </div>
  226. <div v-if="applicationDetail.tHouseApplyProposer">
  227. <p class="main_title">申请理由</p>
  228. <div class="main_box">
  229. <van-field
  230. rows="3"
  231. autosize
  232. type="textarea"
  233. placeholder="申请理由"
  234. input-align="left"
  235. v-model="applicationDetail.tHouseApplyProposer.applyReasion"
  236. :readonly="auditStatus"
  237. :rules="[{ required: true }]" required
  238. />
  239. <van-row>
  240. <van-col span="12"><van-field :readonly="auditStatus" v-model="applicationDetail.tHouseApplyProposer.memberName" label="申请人" placeholder="申请人" input-align="left" label-width="auto"/></van-col>
  241. <van-col span="12">
  242. <van-field :rules="[{ required: true }]" required :readonly="auditStatus" clickable v-model="applicationDetail.tHouseApplyProposer.applyTime" label-width="auto" placeholder="选择日期" @click="showApplyTime = true">
  243. <template #label>
  244. <van-icon name="notes-o" size="20"/>
  245. </template>
  246. </van-field>
  247. <van-calendar v-model="showApplyTime" :readonly="auditStatus" @confirm="onConfirmApplyTime" />
  248. <!-- <van-field :readonly="auditStatus" v-model="applicationDetail.tHouseApplyProposer.applyTime == '' ? nowTime : applicationDetail.tHouseApplyProposer.applyTime" label-width="auto">-->
  249. <!-- <template #label>-->
  250. <!-- <van-icon name="notes-o" size="20"/>-->
  251. <!-- </template>-->
  252. <!-- </van-field>-->
  253. </van-col>
  254. </van-row>
  255. </div>
  256. </div>
  257. <div v-if="applicationDetail.tHouseApplyStart" >
  258. <p class="topTit">宅基地开工</p>
  259. <div class="main_box action-box">
  260. <van-cell title="计划开工时间">
  261. <template #right-icon>
  262. <van-radio-group v-model="radio" direction="horizontal">
  263. <van-field readonly clickable style="padding: 0" v-model="applicationDetail.tHouseApplyStart.startDate" label-width="auto" placeholder="选择日期">
  264. <template #label>
  265. <van-icon name="notes-o" size="20"/>
  266. </template>
  267. </van-field>
  268. </van-radio-group>
  269. </template>
  270. </van-cell>
  271. <van-cell title="计划竣工时间">
  272. <template #right-icon>
  273. <van-radio-group v-model="radio" direction="horizontal">
  274. <van-field readonly clickable style="padding: 0" v-model="applicationDetail.tHouseApplyStart.endDate" label-width="auto" placeholder="选择日期">
  275. <template #label>
  276. <van-icon name="notes-o" size="20"/>
  277. </template>
  278. </van-field>
  279. </van-radio-group>
  280. </template>
  281. </van-cell>
  282. </div>
  283. </div>
  284. <div v-if="applicationDetail.tHouseApplyEnd">
  285. <p class="topTit">宅基地验收申请</p>
  286. <div class="main_box check-box">
  287. <van-field v-model="applicationDetail.tHouseApplyEnd.memberName" label="申请户主姓名" placeholder="申请户主姓名" input-align="right" label-width="auto"/>
  288. <van-field v-model="applicationDetail.tHouseApplyEnd.idcard" label="身份证号" placeholder="身份证号" input-align="right" label-width="auto"/>
  289. <van-field v-model="applicationDetail.tHouseApplyEnd.location" label="用地建房位置" placeholder="用地建房位置" input-align="right" label-width="auto"/>
  290. <van-field v-model="applicationDetail.tHouseApplyEnd.licenseKey" label="乡村建设规划许可证号" placeholder="乡村建设规划许可证号" input-align="right" label-width="auto"/>
  291. <van-field v-model="applicationDetail.tHouseApplyEnd.approvalNumber" label="农村宅基地批准书号" placeholder="农村宅基地批准书号" input-align="right" label-width="auto"/>
  292. <van-field v-model="applicationDetail.tHouseApplyEnd.startDate" label="开工日期" readonly clickable input-align="right" label-width="auto" placeholder="选择开工日期" @click="showCalendar = true"></van-field>
  293. <van-calendar />
  294. <van-field v-model="applicationDetail.tHouseApplyEnd.endDate" label="竣工日期" readonly clickable input-align="right" label-width="auto" placeholder="选择竣工日期" @click="showCalendar = true"></van-field>
  295. <van-calendar />
  296. <van-field v-model="applicationDetail.tHouseApplyEnd.houseCertificateNo" label="权属证书号(不动产)" placeholder="权属证书号(不动产)" input-align="right" label-width="auto"/>
  297. <van-field v-model="applicationDetail.tHouseApplyEnd.landCertificateNo" label="权属证书号(宅基地)" placeholder="权属证书号(宅基地)" input-align="right" label-width="auto"/>
  298. <van-field v-model="applicationDetail.tHouseApplyEnd.buildingHight" label="批建高度" placeholder="建筑高度" input-align="right" label-width="auto"/>
  299. <van-field v-model="applicationDetail.tHouseApplyEnd.buildingFloors" label="批建层数" placeholder="批建层数" input-align="right" label-width="auto"/>
  300. <van-field v-model="applicationDetail.tHouseApplyEnd.actualBuildingHight" label="竣工高度" placeholder="竣工高度" input-align="right" label-width="auto"/>
  301. <van-field v-model="applicationDetail.tHouseApplyEnd.actualBuildingFloors" label="竣工层数" placeholder="竣工层数" input-align="right" label-width="auto"/>
  302. <van-field v-model="applicationDetail.tHouseApplyEnd.buildingArea" label="建筑面积" placeholder="建筑面积" input-align="right" label-width="auto"/>
  303. <van-field v-model="applicationDetail.tHouseApplyEnd.designPaper" label="建筑风貌" placeholder="建筑风貌" input-align="right" label-width="auto"/>
  304. <van-cell title="旧宅基地退还情况">
  305. <template #right-icon>
  306. <van-radio-group v-model="applicationDetail.tHouseApplyEnd.oldHouseStatus" direction="horizontal">
  307. <van-radio name="0">是</van-radio>
  308. <van-radio name="1">否</van-radio>
  309. </van-radio-group>
  310. </template>
  311. </van-cell>
  312. <van-field label="备注" placeholder="" input-align="right"/>
  313. </div>
  314. </div>
  315. <div v-if="applicationDetail.tHouseApplyEnd" style="margin: 16px;">
  316. <van-row>
  317. <van-col span="12" align="center">
  318. <van-button type="info" native-type="submit" class="submitButton">保存</van-button>
  319. </van-col>
  320. <van-col span="12" align="center">
  321. <van-button type="info" native-type="submit" class="submitButton">保存并提交</van-button>
  322. </van-col>
  323. </van-row>
  324. <div class="clear"></div>
  325. </div>
  326. </van-form>
  327. </div>
  328. </div>
  329. </template>
  330. <script>
  331. import { allInformationAnnounce , treeSingleProcessView , attachmentFind , saveHouseBaseInfo , houseList , attach , removeFile , saveHouseBaseInfoThenSubmit} from "@/api/onlineHome/homestead/application";
  332. export default {
  333. name: "applicationForm",
  334. data() {
  335. return {
  336. active: 0,
  337. nowTime: '',//当前日期
  338. fileList: [],
  339. fileList2: [],
  340. radio:'1',
  341. value: '',
  342. columns: ['杭州', '宁波', '温州', '嘉兴', '湖州'],
  343. showPicker: false,
  344. showBuildingType: false,
  345. showLandIsposal: false,
  346. showHousingStructure: false,
  347. showStartDate: false,
  348. showEndDate: false,
  349. showApplyTime:false,
  350. showHouseType:false,
  351. showHouse:false,
  352. showSex:false,
  353. id:'',
  354. applicationDetail:[],
  355. //建房类型字典
  356. buildingType:[],
  357. //性别字典
  358. userSex:[],
  359. //处置情况字典
  360. landIsposal:[],
  361. //房屋构造字典
  362. housingStructure:[],
  363. //户型
  364. houseType:[],
  365. //请求参数
  366. parameter:{
  367. businessType: "house",
  368. houseApplyStatus: '',
  369. processKey: "baseApply",
  370. tableName: "t_house_apply_proposer"
  371. },
  372. //文件配置
  373. fileArray:[],
  374. //获取上传附件
  375. params:{
  376. tableId: '',
  377. tableName: "t_house_apply_proposer",
  378. fileType: ''
  379. },
  380. auditStatus:false,
  381. activeNames:['1'],
  382. housingStructureValue:'',//当前显示房屋构造
  383. buildingTypeValue:'',//当前显示建房类型
  384. landIsposalValue:'',//当前显示处置情况
  385. houseTypeValue:'',//当前显示户型
  386. sexValue:'',//当前显示性别
  387. CurrentSituation:false,
  388. };
  389. },
  390. created() {
  391. this.id = this.$route.query.id;
  392. this.type = this.$route.query.type;
  393. this.getDetail();
  394. },
  395. methods: {
  396. goFlow(){
  397. window.location='flowChart?id='+this.id;
  398. },
  399. //更新文件回显
  400. afterRead(file) {
  401. this.$forceUpdate();
  402. },
  403. //删除图片
  404. deleteFile(elIndex){
  405. if(elIndex.id != ''){
  406. removeFile(elIndex.id).then(response => {});
  407. }
  408. this.$forceUpdate();
  409. return (file, name) => {
  410. let fileIndex = name.index
  411. this.fileList[elIndex].splice(fileIndex, 1)
  412. this.upLoadList[elIndex].splice(fileIndex, 1)
  413. }
  414. },
  415. //获取数据集合
  416. getDetail(){
  417. allInformationAnnounce(this.id).then(response => {
  418. //性别字典查询
  419. this.houseGetDicts("sys_user_sex").then((res) => {
  420. res.data.map(item => {
  421. this.userSex.push({ value:item.dictValue, text: item.dictLabel});
  422. });
  423. this.sexValue = this.selectDictLabel(res.data, response.data.tHouseApplyProposer.sex);
  424. });
  425. //建房类型字典查询
  426. this.houseGetDicts("building_type").then((res) => {
  427. res.data.map(item => {
  428. this.buildingType.push({ value:item.dictValue, text: item.dictLabel});
  429. });
  430. this.buildingTypeValue = this.selectDictLabel(res.data, response.data.tHouseApplyProposedSituation.buildingType);
  431. });
  432. //房屋构造字典查询
  433. this.houseGetDicts("housing_structure").then((res) => {
  434. res.data.map(item => {
  435. this.housingStructure.push({ value:item.dictValue, text: item.dictLabel});
  436. });
  437. this.housingStructureValue = this.selectDictLabel(res.data, response.data.tHouseApplyProposedSituation.housingStructure);
  438. });
  439. //处置情况字典查询
  440. if(response.data.tHouseApplyProposer.existHomestead == 'Y'){
  441. this.CurrentSituation = true ;
  442. this.houseGetDicts("land_isposal").then((res) => {
  443. res.data.map(item => {
  444. this.landIsposal.push({ value:item.dictValue, text: item.dictLabel});
  445. });
  446. this.landIsposalValue= this.selectDictLabel(res.data, response.data.tHouseApplyCurrentSituation.landIsposal);
  447. });
  448. }
  449. //户型图查询
  450. houseList().then(res => {
  451. res.rows.map(item => {
  452. this.houseType.push({ value:item.id, text: item.name});
  453. });
  454. if(response.data.tHouseApplyProposedSituation.houseTypeId != null){
  455. for (let i = 0 ; i < res.rows.length ; i++){
  456. if (res.rows[i].id = response.data.tHouseApplyProposedSituation.houseTypeId){
  457. this.houseTypeValue = res.rows[i].name
  458. }
  459. }
  460. this.showHouse = true;
  461. }
  462. });
  463. this.applicationDetail = response.data;
  464. this.parameter.houseApplyStatus = response.data.tHouseApplyProposer.houseApplyStatus;
  465. let currentProcessKey = response.data.currentProcessKey;
  466. this.auditStatus = response.data.tHouseApplyProposer.auditStatus != 0;
  467. //判断当前审核进行到哪一步
  468. if (currentProcessKey == 'baseApply'){
  469. this.active = 0;
  470. }
  471. if (currentProcessKey == 'landscope'){
  472. this.active = 1;
  473. }
  474. if (currentProcessKey == 'accepting'){
  475. this.active = 2;
  476. }
  477. //获取上传文件列表
  478. treeSingleProcessView(this.parameter).then(res => {
  479. this.fileArray = res.rows
  480. this.params.tableId = this.id;
  481. for (let i = 0 ; i < res.rows.length ; i++){
  482. this.params.fileType = res.rows[i].fileType;
  483. this.fileArray[i].findList = [];
  484. //获取文件集合
  485. attachmentFind(this.params).then(res2 => {
  486. for (let j = 0 ; j < res2.data.length ; j++){
  487. this.fileArray[i].findList[j] = {url:'http://192.168.31.239:8080'+ res2.data[j].fileUrl, isImage: true , id:res2.data[j].id} ;
  488. this.$forceUpdate();
  489. }
  490. });
  491. }
  492. });
  493. });
  494. },
  495. onConfirmApplyTime(date) {
  496. this.applicationDetail.tHouseApplyProposer.applyTime = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;
  497. this.showApplyTime = false;
  498. },
  499. //基地开工时间
  500. onConfirmStartDate(date) {
  501. this.applicationDetail.tHouseApplyStart.startDate = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;
  502. this.showStartDate = false;
  503. },
  504. //基地竣工时间
  505. onConfirmEndDate(date) {
  506. this.applicationDetail.tHouseApplyStart.endDate = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;
  507. this.showEndDate = false;
  508. },
  509. //选择建房类型
  510. onConfirmBuildingType(data){
  511. this.buildingTypeValue = data.text;
  512. this.applicationDetail.tHouseApplyProposedSituation.buildingType = data.value;
  513. this.showBuildingType = false;
  514. },
  515. //选择宅基地处置情况
  516. onConfirmLandIsposal(data){
  517. this.landIsposalValue = data.text;
  518. this.applicationDetail.tHouseApplyCurrentSituation.landIsposal = data.value;
  519. this.showLandIsposal = false;
  520. },
  521. //选择房屋构造
  522. onConfirmHousingStructure(data){
  523. this.housingStructureValue = data.text;
  524. this.applicationDetail.tHouseApplyProposedSituation.housingStructure = data.value;
  525. this.showHousingStructure = false;
  526. },
  527. //选择户型
  528. onConfirmHouseType(data){
  529. this.houseTypeValue = data.text;
  530. this.applicationDetail.tHouseApplyProposedSituation.houseTypeId = data.value;
  531. this.showHouseType = false;
  532. },
  533. //选择性别
  534. onConfirmSex(data){
  535. this.sexValue = data.text;
  536. this.applicationDetail.tHouseApplyProposer.sex = data.value;
  537. this.showSex = false;
  538. },
  539. //添加家庭成员
  540. addFamily(){
  541. this.applicationDetail.tHouseApplyFamilyMembers.push({
  542. applyProposerId:this.applicationDetail.tHouseApplyFamilyMembers[0].applyProposerId,
  543. memberName:'',
  544. age:'',
  545. familyStatusName:'',
  546. idcard :'',
  547. householdRegister:'',
  548. });
  549. },
  550. //删除家庭成员
  551. deleteFamily(index){
  552. this.applicationDetail.tHouseApplyFamilyMembers.splice(index,1)
  553. },
  554. //是否有宅基地选项改变
  555. existHomesteadChange(name){
  556. if (name == 'Y'){
  557. if (this.applicationDetail.tHouseApplyCurrentSituation == null){
  558. //现宅基地情况
  559. this.applicationDetail.tHouseApplyCurrentSituation = {
  560. //宅基地面积
  561. landArea: '',
  562. //人均宅基地面积
  563. landPerArea: '',
  564. //不动产单元号
  565. landCertificateNo: '',
  566. //农民房屋幢号
  567. houseCertificateNo: '',
  568. //建筑面积
  569. buildingArea: '',
  570. //人均建筑面积
  571. buildingPerArea: '',
  572. //现宅基地处置情况 字典 land_isposal
  573. landIsposal: ""
  574. };
  575. this.CurrentSituation = true ;
  576. //处置情况字典查询
  577. this.houseGetDicts("land_isposal").then((res) => {
  578. res.data.map(item => {
  579. this.landIsposal.push({ value:item.dictValue, text: item.dictLabel});
  580. });
  581. this.landIsposalValue= this.selectDictLabel(res.data, this.applicationDetail.tHouseApplyCurrentSituation.landIsposal);
  582. });
  583. }
  584. this.CurrentSituation = true;
  585. }else{
  586. this.CurrentSituation = false;
  587. }
  588. },
  589. //图纸选择改变
  590. designPaperChange(name){
  591. if(name == 2){
  592. this.showHouse = true;
  593. }else{
  594. this.showHouse = false;
  595. }
  596. },
  597. base64toFile(dataurl, filename = "file") {
  598. let arr = dataurl.split(",");
  599. let mime = arr[0].match(/:(.*?);/)[1];
  600. let suffix = mime.split("/")[1];
  601. let bstr = atob(arr[1]);
  602. let n = bstr.length;
  603. let u8arr = new Uint8Array(n);
  604. while (n--) {
  605. u8arr[n] = bstr.charCodeAt(n);
  606. }
  607. return new File([u8arr], `${filename}.${suffix}`, {
  608. type: mime,
  609. });
  610. },
  611. //申请提交
  612. onSubmit(type){
  613. var that = this;
  614. let form = {};
  615. form.fileList=[];
  616. this.fileList.tableId = this.id;
  617. for (let i = 0 ; i < this.fileArray.length ; i++){
  618. if (this.fileArray[i].findList == null || this.fileArray[i].findList == undefined || this.fileArray[i].findList == ''){
  619. continue
  620. }
  621. for (let j = 0 ; j < this.fileArray[i].findList.length ; j++){
  622. const params = new FormData()
  623. params.append('tableId', this.id)
  624. params.append('tableName', 't_house_apply_proposer')
  625. params.append('bizPath', 't_house_apply_proposer')
  626. params.append('fileType', this.fileArray[i].fileType)
  627. if (this.fileArray[i].findList[j].url){
  628. continue;
  629. }
  630. params.append('file', this.base64toFile(this.fileArray[i].findList[j].content))
  631. attach(params).then(res => {
  632. form.fileList.push(res.id);
  633. });
  634. }
  635. }
  636. form.tHouseApplyProposer=this.applicationDetail.tHouseApplyProposer;
  637. form.tHouseApplyFamilyMembers=this.applicationDetail.tHouseApplyFamilyMembers;
  638. form.tHouseApproveVillageOptions=this.applicationDetail.tHouseApproveVillageOptions;
  639. form.tHouseApplyCurrentSituation=this.applicationDetail.tHouseApplyCurrentSituation;
  640. form.tHouseApplyProposedSituation=this.applicationDetail.tHouseApplyProposedSituation;
  641. setTimeout(function(){
  642. if (type == 'keep'){
  643. saveHouseBaseInfo(form).then(res => {
  644. if(res.code = 200){
  645. that.$toast.success('保存成功');
  646. }
  647. });
  648. }
  649. if (type == 'submit'){
  650. saveHouseBaseInfoThenSubmit(form).then(res => {
  651. if(res.code = 200){
  652. that.$toast.success('提交成功');
  653. }
  654. });
  655. }
  656. },1000)
  657. },
  658. },
  659. }
  660. </script>
  661. <style scoped lang="scss">
  662. .app-container {
  663. padding-bottom: 5%;
  664. }
  665. .van-steps{
  666. padding: 2% 6% 0;
  667. }
  668. .topTit{
  669. margin-top: 0.4rem;
  670. font-size: 0.45rem;
  671. background-color: #1D6FE9;
  672. color: #FFFFFF;
  673. line-height: 58px;
  674. text-align: center;
  675. padding: 15px 0;
  676. box-shadow: 0px 3px 6px 0px rgba(15,67,145,0.40);
  677. }
  678. .main_title{
  679. font-size: 0.4rem;
  680. color: #1D6FE9;
  681. margin: 0.2rem 6%;
  682. position: relative;
  683. }
  684. .main_box{
  685. width: 96%;
  686. margin: 0 auto;
  687. border-radius: 6px;
  688. box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16);
  689. overflow: hidden;
  690. background-color: #FFF;
  691. }
  692. .collapse{
  693. width: 96%;
  694. margin: 0 auto;
  695. border-radius: 6px;
  696. box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16);
  697. overflow: hidden;
  698. margin-bottom: 15px;
  699. }
  700. /deep/.van-radio--horizontal{
  701. margin-left: 20px;
  702. margin-right: 0;
  703. }
  704. .file-box{
  705. padding: 2% 5% 0;
  706. }
  707. .submitButton{
  708. width: 80%;
  709. margin: 0 auto;
  710. background-color: #1D6FE9;
  711. border-radius: 14px;
  712. }
  713. .timeTit{
  714. text-align: center;
  715. font-size: 16px;
  716. line-height: 27px;
  717. }
  718. .action-box{
  719. padding: 15px 0!important;
  720. margin-top: 0.4rem;
  721. }
  722. .check-box{
  723. margin-top: 0.4rem;
  724. }
  725. .addFamily{
  726. position: absolute;
  727. top: -2px;
  728. right: 0;
  729. border-radius: 50%;
  730. }
  731. .deleteFamily{
  732. position: absolute;
  733. top: -0.3rem;
  734. right: 6%;
  735. z-index: 9;
  736. border-radius: 50%;
  737. }
  738. .familyList{
  739. margin-top: 0.4rem;
  740. position: relative;
  741. }
  742. .noModify{
  743. .topTit{
  744. background-color:#ABABAB ;
  745. box-shadow: 0px 3px 6px 0px rgba(171,171,171,0.40);
  746. }
  747. .van-cell__title{
  748. color: #B4B0B0;
  749. }
  750. }
  751. </style>