移动端
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.
 
 

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