移动端
Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.

1132 righe
49 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. <template #right>
  11. <van-icon name="../../../static/images/icon/icon_flow.png" size="20" @click="goFlow"/>
  12. </template>
  13. </van-nav-bar>
  14. <van-steps :active="active" active-color="#38f">
  15. <van-step>申请</van-step>
  16. <van-step>开工</van-step>
  17. <van-step>验收</van-step>
  18. </van-steps>
  19. <p class="topTit">农村宅基地和建房(规划许可)申请表</p>
  20. <div class="main">
  21. <van-form>
  22. <div v-if="applicationDetail.tHouseApplyProposer">
  23. <p class="main_title">申请用户信息</p>
  24. <div class="main_box">
  25. <van-field :readonly="auditStatus" :rules="[{ required: true }]" required v-model="applicationDetail.tHouseApplyProposer.memberName" label="姓名" placeholder="姓名" input-align="right"/>
  26. <van-field
  27. readonly
  28. clickable
  29. v-model="sexValue"
  30. label="性别"
  31. placeholder="选择性别"
  32. @click=" auditStatus==true ? '' : showSex = true"
  33. input-align="right"
  34. right-icon="arrow-down"
  35. :rules="[{ required: true }]" required
  36. />
  37. <van-popup v-model="showSex" position="bottom">
  38. <van-picker
  39. show-toolbar
  40. :columns="userSex"
  41. @confirm="onConfirmSex"
  42. @cancel="showSex = false"
  43. :readonly="auditStatus"
  44. />
  45. </van-popup>
  46. <van-field :readonly="auditStatus" :rules="[{ required: true }]" required v-model="applicationDetail.tHouseApplyProposer.age" label="年龄" placeholder="年龄" input-align="right"/>
  47. <van-field :readonly="auditStatus" :rules="[{ required: true }]" required v-model="applicationDetail.tHouseApplyProposer.phone" label="联系电话" placeholder="联系电话" input-align="right"/>
  48. <van-field :readonly="auditStatus" :rules="[{ required: true }]" required v-model="applicationDetail.tHouseApplyProposer.idcard" label="身份证号" placeholder="身份证号" input-align="right"/>
  49. <van-field :readonly="auditStatus" :rules="[{ required: true }]" required v-model="applicationDetail.tHouseApplyProposer.householdRegister" label="户口所在地" placeholder="户口所在地" input-align="right"/>
  50. <van-field :readonly="auditStatus" :rules="[{ required: true }]" required v-model="applicationDetail.tHouseApplyProposer.familyAddress" label="家庭住址" placeholder="家庭住址" input-align="right"/>
  51. <van-field :readonly="auditStatus" :rules="[{ required: true }]" required v-model="applicationDetail.tHouseApplyProposer.members" label="家庭人口数" placeholder="家庭人口数" input-align="right"/>
  52. <van-cell title="是否已有宅基地">
  53. <template #right-icon>
  54. <van-radio-group :disabled="auditStatus" @change="existHomesteadChange" v-model="applicationDetail.tHouseApplyProposer.existHomestead" direction="horizontal">
  55. <van-radio name="Y">是</van-radio>
  56. <van-radio name="N">否</van-radio>
  57. </van-radio-group>
  58. </template>
  59. </van-cell>
  60. </div>
  61. </div>
  62. <div v-if="applicationDetail.tHouseApplyFamilyMembers && applicationDetail.tHouseApplyFamilyMembers!=''">
  63. <p class="main_title">家庭成员信息<van-button icon="plus" size="mini" type="info" native-type="button" class="addFamily" @click="addFamily" v-if="!auditStatus" /></p>
  64. <van-collapse v-model="activeNames" v-if="auditStatus">
  65. <van-collapse-item class="collapse" v-for="(item , index) in applicationDetail.tHouseApplyFamilyMembers" :key="index" :name="index+1">
  66. <template #title>
  67. <van-row>
  68. <van-col span="8">{{item.memberName}}</van-col>
  69. <van-col span="8">{{item.age}}</van-col>
  70. <van-col span="8">{{item.familyStatusName}}</van-col>
  71. </van-row>
  72. </template>
  73. <van-field :readonly="auditStatus" v-model="item.memberName" label="姓名" placeholder="姓名" input-align="right"/>
  74. <van-field :readonly="auditStatus" v-model="item.age" label="年龄" placeholder="年龄" input-align="right"/>
  75. <van-field :readonly="auditStatus" v-model="item.familyStatusName" label="与户主关系" placeholder="与户主关系" input-align="right"/>
  76. <van-field :readonly="auditStatus" v-model="item.idcard" label="身份证号" placeholder="身份证号" input-align="right"/>
  77. <van-field :readonly="auditStatus" v-model="item.householdRegister" label="户口所在地" placeholder="户口所在地" input-align="right"/>
  78. </van-collapse-item>
  79. </van-collapse>
  80. <div class="familyList" v-if="!auditStatus" v-for="(item , index) in applicationDetail.tHouseApplyFamilyMembers" :key="index">
  81. <div class="main_box" style="margin-bottom: 20px">
  82. <van-button icon="minus" size="mini" type="danger" class="deleteFamily" native-type="button" v-if="index!=0" @click="deleteFamily(index)" />
  83. <van-field v-model="item.memberName" label="姓名" placeholder="姓名" input-align="right"/>
  84. <van-field v-model="item.age" label="年龄" placeholder="年龄" input-align="right"/>
  85. <van-field v-model="item.familyStatusName" label="与户主关系" placeholder="与户主关系" input-align="right"/>
  86. <van-field v-model="item.idcard" label="身份证号" placeholder="身份证号" input-align="right"/>
  87. <van-field v-model="item.householdRegister" label="户口所在地" placeholder="户口所在地" input-align="right"/>
  88. </div>
  89. </div>
  90. <!-- <div class=" familyList">-->
  91. <!-- <van-button icon="minus" size="mini" type="danger" class="deleteFamily" />-->
  92. <!-- <div class="main_box">-->
  93. <!-- <van-field label="姓名" placeholder="姓名" input-align="right"/>-->
  94. <!-- <van-field label="年龄" placeholder="年龄" input-align="right"/>-->
  95. <!-- <van-field label="与户主关系" placeholder="与户主关系" input-align="right"/>-->
  96. <!-- <van-field label="身份证号" placeholder="身份证号" input-align="right"/>-->
  97. <!-- <van-field label="户口所在地" placeholder="户口所在地" input-align="right"/>-->
  98. <!-- </div>-->
  99. <!-- </div>-->
  100. </div>
  101. <div v-if="CurrentSituation">
  102. <p class="main_title">现宅基地及农房状况</p>
  103. <div class="main_box">
  104. <van-field :rules="[{ required: true }]" required :readonly="auditStatus" v-model="applicationDetail.tHouseApplyCurrentSituation.landArea" label="宅基地面积" placeholder="宅基地面积" input-align="right"/>
  105. <van-field :rules="[{ required: true }]" required :readonly="auditStatus" v-model="applicationDetail.tHouseApplyCurrentSituation.landPerArea" label="人均宅基地面积" placeholder="人均宅基地面积㎡" input-align="right" label-width="auto"/>
  106. <van-field :rules="[{ required: true }]" required :readonly="auditStatus" v-model="applicationDetail.tHouseApplyCurrentSituation.landCertificateNo" label="不动产单元号" placeholder="不动产单元号" input-align="right"/>
  107. <van-field :rules="[{ required: true }]" required :readonly="auditStatus" v-model="applicationDetail.tHouseApplyCurrentSituation.buildingArea" label="建筑面积" placeholder="建筑面积㎡" input-align="right"/>
  108. <van-field :rules="[{ required: true }]" required :readonly="auditStatus" v-model="applicationDetail.tHouseApplyCurrentSituation.buildingPerArea" label="人均建筑面积" placeholder="人均建筑面积㎡" input-align="right"/>
  109. <van-field :rules="[{ required: true }]" required :readonly="auditStatus" v-model="applicationDetail.tHouseApplyCurrentSituation.houseCertificateNo" label="农民房屋幢号" placeholder="户口所在地" input-align="right"/>
  110. <van-field
  111. readonly
  112. clickable
  113. :value="landIsposalValue"
  114. label="处置情况"
  115. placeholder="选择宅基地处置情况"
  116. @click=" auditStatus==true ? '' : showLandIsposal = true"
  117. input-align="right"
  118. right-icon="arrow-down"
  119. :readonly="auditStatus"
  120. :rules="[{ required: true }]" required
  121. />
  122. <van-popup v-model="showLandIsposal" position="bottom">
  123. <van-picker
  124. show-toolbar
  125. :columns="landIsposal"
  126. @confirm="onConfirmLandIsposal"
  127. @cancel="showLandIsposal = false"
  128. :readonly="auditStatus"
  129. />
  130. </van-popup>
  131. <!-- <van-field-->
  132. <!-- readonly-->
  133. <!-- clickable-->
  134. <!-- name="picker"-->
  135. <!-- :value="applicationDetail.tHouseApplyCurrentSituation.buildingType"-->
  136. <!-- label="建房类型"-->
  137. <!-- placeholder="选择建房类型"-->
  138. <!-- @click="showBuildingType = true"-->
  139. <!-- input-align="right"-->
  140. <!-- right-icon="arrow-down"-->
  141. <!-- />-->
  142. <!-- <van-popup v-model="showBuildingType" position="bottom">-->
  143. <!-- <van-picker-->
  144. <!-- show-toolbar-->
  145. <!-- :columns="buildingType"-->
  146. <!-- @confirm="onConfirmBuildingType"-->
  147. <!-- @cancel="showBuildingType = false"-->
  148. <!-- />-->
  149. <!-- </van-popup>-->
  150. </div>
  151. </div>
  152. <div v-if="applicationDetail.tHouseApplyProposedSituation">
  153. <p class="main_title">拟申请宅基地及建房情况</p>
  154. <div class="main_box">
  155. <van-field :rules="[{ required: true }]" required :readonly="auditStatus" v-model="applicationDetail.tHouseApplyProposedSituation.location" label="拟建位置" placeholder="拟建位置" input-align="right"/>
  156. <van-field :rules="[{ required: true }]" required :readonly="auditStatus" v-model="applicationDetail.tHouseApplyProposedSituation.landArea" label="宅基地面积" placeholder="宅基地面积" input-align="right"/>
  157. <van-field :rules="[{ required: true }]" required :readonly="auditStatus" v-model="applicationDetail.tHouseApplyProposedSituation.east" label="东至" placeholder="东至" input-align="right"/>
  158. <van-field :rules="[{ required: true }]" required :readonly="auditStatus" v-model="applicationDetail.tHouseApplyProposedSituation.west" label="西至" placeholder="西至" input-align="right"/>
  159. <van-field :rules="[{ required: true }]" required :readonly="auditStatus" v-model="applicationDetail.tHouseApplyProposedSituation.south" label="南至" placeholder="南至" input-align="right"/>
  160. <van-field :rules="[{ required: true }]" required :readonly="auditStatus" v-model="applicationDetail.tHouseApplyProposedSituation.north" label="北至" placeholder="北至" input-align="right"/>
  161. <van-field :rules="[{ required: true }]" required :readonly="auditStatus" v-model="applicationDetail.tHouseApplyProposedSituation.buildingArea" label="建筑面积" placeholder="建筑面积" input-align="right"/>
  162. <van-field :rules="[{ required: true }]" required :readonly="auditStatus" v-model="applicationDetail.tHouseApplyProposedSituation.buildingFloors" label="建筑层数" placeholder="建筑层数" input-align="right"/>
  163. <van-field :rules="[{ required: true }]" required :readonly="auditStatus" v-model="applicationDetail.tHouseApplyProposedSituation.buildingHight" label="建筑高度" placeholder="建筑高度" input-align="right"/>
  164. <van-cell title="是否征求相邻权利人意见">
  165. <template #right-icon>
  166. <van-radio-group :disabled="auditStatus" v-model="applicationDetail.tHouseApplyProposedSituation.isAdvice" direction="horizontal">
  167. <van-radio name="1">是</van-radio>
  168. <van-radio name="2">否</van-radio>
  169. </van-radio-group>
  170. </template>
  171. </van-cell>
  172. <van-field
  173. readonly
  174. clickable
  175. v-model="housingStructureValue"
  176. label="房屋构造"
  177. placeholder="选择房屋构造"
  178. @click=" auditStatus==true ? '' : showHousingStructure = true"
  179. input-align="right"
  180. right-icon="arrow-down"
  181. :rules="[{ required: true }]" required
  182. />
  183. <van-popup v-model="showHousingStructure" position="bottom">
  184. <van-picker
  185. show-toolbar
  186. :columns="housingStructure"
  187. @confirm="onConfirmHousingStructure"
  188. @cancel="showHousingStructure = false"
  189. :readonly="auditStatus"
  190. />
  191. </van-popup>
  192. <van-field
  193. readonly
  194. clickable
  195. :value="buildingTypeValue"
  196. label="建房类型"
  197. placeholder="选择建房类型"
  198. @click=" auditStatus==true ? '' : showBuildingType = true"
  199. input-align="right"
  200. right-icon="arrow-down"
  201. :rules="[{ required: true }]" required
  202. />
  203. <van-popup v-model="showBuildingType" position="bottom">
  204. <van-picker
  205. show-toolbar
  206. :columns="buildingType"
  207. @confirm="onConfirmBuildingType"
  208. @cancel="showBuildingType = false"
  209. />
  210. </van-popup>
  211. <van-cell title="设计图纸">
  212. <template #right-icon>
  213. <van-radio-group :disabled="auditStatus" @change="designPaperChange" v-model="applicationDetail.tHouseApplyProposedSituation.designPaper" direction="horizontal">
  214. <van-radio name="1">委托设计</van-radio>
  215. <van-radio name="2">选通用图</van-radio>
  216. </van-radio-group>
  217. </template>
  218. </van-cell>
  219. <van-field
  220. readonly
  221. clickable
  222. :value="houseTypeValue"
  223. placeholder="选择户型图"
  224. @click=" auditStatus==true ? '' : showHouseType = true"
  225. input-align="right"
  226. right-icon="arrow-down"
  227. v-if="showHouse"
  228. :rules="[{ required: true }]" required
  229. />
  230. <van-popup v-model="showHouseType" position="bottom">
  231. <van-picker
  232. show-toolbar
  233. :columns="houseType"
  234. @confirm="onConfirmHouseType"
  235. @cancel="showHouseType = false"
  236. />
  237. </van-popup>
  238. </div>
  239. <div class="mapBox">
  240. <div id="mapWrap" style="height: 200px;"></div>
  241. <div class="mapBox_button" v-if="auditStatus == false">
  242. <van-button id="drawPolygon" native-type="button" icon="../../../static/images/icon/icon_ht.png" type="default" block round size="small"></van-button>
  243. <van-button id="drawRemove" native-type="button" icon="cross" type="default" block round size="small" style="margin-top: 0.2rem"></van-button>
  244. </div>
  245. </div>
  246. </div>
  247. <div v-if="applicationDetail.tHouseApplyProposer">
  248. <p class="main_title">申请理由</p>
  249. <div class="main_box">
  250. <van-field
  251. rows="3"
  252. autosize
  253. type="textarea"
  254. placeholder="申请理由"
  255. input-align="left"
  256. v-model="applicationDetail.tHouseApplyProposer.applyReasion"
  257. :readonly="auditStatus"
  258. :rules="[{ required: true }]" required
  259. />
  260. <van-row>
  261. <van-col span="12"><van-field :readonly="auditStatus" v-model="applicationDetail.tHouseApplyProposer.memberName" label="申请人" placeholder="申请人" input-align="left" label-width="auto"/></van-col>
  262. <van-col span="12">
  263. <van-field :rules="[{ required: true }]" required :readonly="auditStatus" clickable v-model="applicationDetail.tHouseApplyProposer.applyTime" label-width="auto" placeholder="选择日期" @click="showApplyTime = true">
  264. <template #label>
  265. <van-icon name="notes-o" size="20"/>
  266. </template>
  267. </van-field>
  268. <van-calendar v-model="showApplyTime" :readonly="auditStatus" @confirm="onConfirmApplyTime" />
  269. <!-- <van-field :readonly="auditStatus" v-model="applicationDetail.tHouseApplyProposer.applyTime == '' ? nowTime : applicationDetail.tHouseApplyProposer.applyTime" label-width="auto">-->
  270. <!-- <template #label>-->
  271. <!-- <van-icon name="notes-o" size="20"/>-->
  272. <!-- </template>-->
  273. <!-- </van-field>-->
  274. </van-col>
  275. </van-row>
  276. </div>
  277. </div>
  278. <div v-if="item.findList" v-for="(item , index) in fileArray" :key="index">
  279. <p class="main_title">{{item.fileTypeName}}</p><!-- 未对接 -->
  280. <div class="main_box file-box">
  281. <!-- <van-uploader v-if="item.findList" v-model="item.findList" multiple />-->
  282. <van-uploader :after-read="afterRead" :before-delete="deleteFile" v-model="item.findList" multiple />
  283. </div>
  284. </div>
  285. <!-- <p class="main_title">宅基地使用承诺书</p>&lt;!&ndash; 未对接 &ndash;&gt;-->
  286. <!-- <div class="main_box file-box">-->
  287. <!-- <van-uploader v-model="fileList2" multiple class="aaa" />-->
  288. <!-- </div>-->
  289. <div v-if="applicationDetail.tHouseApplyProposer && auditStatus == false" style="margin: 16px;">
  290. <van-row>
  291. <van-col span="12" align="center">
  292. <van-button type="info" native-type="submit" class="submitButton" @click="onSubmit('keep')">保存</van-button>
  293. </van-col>
  294. <van-col span="12" align="center">
  295. <van-button type="info" native-type="submit" class="submitButton" @click="onSubmit('submit')">保存并提交</van-button>
  296. </van-col>
  297. </van-row>
  298. <div class="clear"></div>
  299. </div>
  300. <div v-if="false" :class="active==1?'':'noModify'" >
  301. <p class="topTit">宅基地开工</p>
  302. <div class="main_box action-box">
  303. <van-cell title="计划开工时间">
  304. <template #right-icon>
  305. <van-radio-group v-model="radio" direction="horizontal">
  306. <van-field readonly clickable style="padding: 0" v-model="applicationDetail.tHouseApplyStart.startDate" label-width="auto" placeholder="选择日期" @click="showStartDate = true">
  307. <template #label>
  308. <van-icon name="notes-o" size="20"/>
  309. </template>
  310. </van-field>
  311. <van-calendar v-model="showStartDate" @confirm="onConfirmStartDate" />
  312. </van-radio-group>
  313. </template>
  314. </van-cell>
  315. <van-cell title="计划竣工时间">
  316. <template #right-icon>
  317. <van-radio-group v-model="radio" direction="horizontal">
  318. <van-field readonly clickable style="padding: 0" v-model="applicationDetail.tHouseApplyStart.endDate" label-width="auto" placeholder="选择日期" @click="showEndDate = true">
  319. <template #label>
  320. <van-icon name="notes-o" size="20"/>
  321. </template>
  322. </van-field>
  323. <van-calendar v-model="showEndDate" @confirm="onConfirmEndDate" />
  324. </van-radio-group>
  325. </template>
  326. </van-cell>
  327. </div>
  328. </div>
  329. <!--applicationDetail.tHouseApplyStart-->
  330. <div v-if="false" style="margin: 16px;">
  331. <van-row>
  332. <van-col span="12" align="center">
  333. <van-button type="info" native-type="submit" class="submitButton">保存</van-button>
  334. </van-col>
  335. <van-col span="12" align="center">
  336. <van-button type="info" native-type="submit" class="submitButton">保存并提交</van-button>
  337. </van-col>
  338. </van-row>
  339. <div class="clear"></div>
  340. </div>
  341. <div v-if="false" :class="active==2?'':'noModify'">
  342. <p class="topTit">宅基地验收申请</p>
  343. <div class="main_box check-box">
  344. <van-field v-model="applicationDetail.tHouseApplyEnd.memberName" label="申请户主姓名" placeholder="申请户主姓名" input-align="right" label-width="auto"/>
  345. <van-field v-model="applicationDetail.tHouseApplyEnd.idcard" label="身份证号" placeholder="身份证号" input-align="right" label-width="auto"/>
  346. <van-field v-model="applicationDetail.tHouseApplyEnd.location" label="用地建房位置" placeholder="用地建房位置" input-align="right" label-width="auto"/>
  347. <van-field v-model="applicationDetail.tHouseApplyEnd.licenseKey" label="乡村建设规划许可证号" placeholder="乡村建设规划许可证号" input-align="right" label-width="auto"/>
  348. <van-field v-model="applicationDetail.tHouseApplyEnd.approvalNumber" label="农村宅基地批准书号" placeholder="农村宅基地批准书号" input-align="right" label-width="auto"/>
  349. <van-field v-model="applicationDetail.tHouseApplyEnd.startDate" label="开工日期" readonly clickable input-align="right" label-width="auto" placeholder="选择开工日期" @click="showCalendar = true"></van-field>
  350. <van-calendar />
  351. <van-field v-model="applicationDetail.tHouseApplyEnd.endDate" label="竣工日期" readonly clickable input-align="right" label-width="auto" placeholder="选择竣工日期" @click="showCalendar = true"></van-field>
  352. <van-calendar />
  353. <van-field v-model="applicationDetail.tHouseApplyEnd.houseCertificateNo" label="权属证书号(不动产)" placeholder="权属证书号(不动产)" input-align="right" label-width="auto"/>
  354. <van-field v-model="applicationDetail.tHouseApplyEnd.landCertificateNo" label="权属证书号(宅基地)" placeholder="权属证书号(宅基地)" input-align="right" label-width="auto"/>
  355. <van-field v-model="applicationDetail.tHouseApplyEnd.buildingHight" label="批建高度" placeholder="建筑高度" input-align="right" label-width="auto"/>
  356. <van-field v-model="applicationDetail.tHouseApplyEnd.buildingFloors" label="批建层数" placeholder="批建层数" input-align="right" label-width="auto"/>
  357. <van-field v-model="applicationDetail.tHouseApplyEnd.actualBuildingHight" label="竣工高度" placeholder="竣工高度" input-align="right" label-width="auto"/>
  358. <van-field v-model="applicationDetail.tHouseApplyEnd.actualBuildingFloors" label="竣工层数" placeholder="竣工层数" input-align="right" label-width="auto"/>
  359. <van-field v-model="applicationDetail.tHouseApplyEnd.buildingArea" label="建筑面积" placeholder="建筑面积" input-align="right" label-width="auto"/>
  360. <van-field v-model="applicationDetail.tHouseApplyEnd.designPaper" label="建筑风貌" placeholder="建筑风貌" input-align="right" label-width="auto"/>
  361. <van-cell title="旧宅基地退还情况">
  362. <template #right-icon>
  363. <van-radio-group v-model="applicationDetail.tHouseApplyEnd.oldHouseStatus" direction="horizontal">
  364. <van-radio name="0">是</van-radio>
  365. <van-radio name="1">否</van-radio>
  366. </van-radio-group>
  367. </template>
  368. </van-cell>
  369. <van-field label="备注" placeholder="" input-align="right"/>
  370. </div>
  371. </div>
  372. <!--applicationDetail.tHouseApplyEnd-->
  373. <div v-if="false" style="margin: 16px;">
  374. <van-row>
  375. <van-col span="12" align="center">
  376. <van-button type="info" native-type="submit" class="submitButton">保存</van-button>
  377. </van-col>
  378. <van-col span="12" align="center">
  379. <van-button type="info" native-type="submit" class="submitButton">保存并提交</van-button>
  380. </van-col>
  381. </van-row>
  382. <div class="clear"></div>
  383. </div>
  384. </van-form>
  385. </div>
  386. </div>
  387. </template>
  388. <script>
  389. import { allInformation , treeSingleProcessView , attachmentFind , saveHouseBaseInfo , houseList , attach , removeFile , saveHouseBaseInfoThenSubmit} from "@/api/onlineHome/homestead/application";
  390. import $ from "jquery";
  391. export default {
  392. name: "applicationForm",
  393. data() {
  394. return {
  395. active: 0,
  396. nowTime: '',//当前日期
  397. fileList: [],
  398. fileList2: [],
  399. radio:'1',
  400. value: '',
  401. columns: ['杭州', '宁波', '温州', '嘉兴', '湖州'],
  402. showPicker: false,
  403. showBuildingType: false,
  404. showLandIsposal: false,
  405. showHousingStructure: false,
  406. showStartDate: false,
  407. showEndDate: false,
  408. showApplyTime:false,
  409. showHouseType:false,
  410. showHouse:false,
  411. showSex:false,
  412. id:'',
  413. applicationDetail:[],
  414. //建房类型字典
  415. buildingType:[],
  416. //性别字典
  417. userSex:[],
  418. //处置情况字典
  419. landIsposal:[],
  420. //房屋构造字典
  421. housingStructure:[],
  422. //户型
  423. houseType:[],
  424. //请求参数
  425. parameter:{
  426. businessType: "house",
  427. houseApplyStatus: '',
  428. processKey: "baseApply",
  429. tableName: "t_house_apply_proposer"
  430. },
  431. //文件配置
  432. fileArray:[],
  433. //获取上传附件
  434. params:{
  435. tableId: '',
  436. tableName: "t_house_apply_proposer",
  437. fileType: ''
  438. },
  439. auditStatus:false,
  440. activeNames:['1'],
  441. housingStructureValue:'',//当前显示房屋构造
  442. buildingTypeValue:'',//当前显示建房类型
  443. landIsposalValue:'',//当前显示处置情况
  444. houseTypeValue:'',//当前显示户型
  445. sexValue:'',//当前显示性别
  446. CurrentSituation:false,
  447. };
  448. },
  449. created() {
  450. this.id = this.$route.query.id;
  451. this.type = this.$route.query.type;
  452. this.getDetail();
  453. },
  454. methods: {
  455. goFlow(){
  456. window.location='flowChart?id='+this.id;
  457. },
  458. //更新文件回显
  459. afterRead(file) {
  460. this.$forceUpdate();
  461. },
  462. //删除图片
  463. deleteFile(elIndex){
  464. if(elIndex.id != ''){
  465. removeFile(elIndex.id).then(response => {});
  466. }
  467. this.$forceUpdate();
  468. return (file, name) => {
  469. let fileIndex = name.index
  470. this.fileList[elIndex].splice(fileIndex, 1)
  471. this.upLoadList[elIndex].splice(fileIndex, 1)
  472. }
  473. },
  474. //获取数据集合
  475. getDetail(){
  476. allInformation(this.id).then(response => {
  477. //性别字典查询
  478. this.houseGetDicts("sys_user_sex").then((res) => {
  479. res.data.map(item => {
  480. this.userSex.push({ value:item.dictValue, text: item.dictLabel});
  481. });
  482. this.sexValue = this.selectDictLabel(res.data, response.data.tHouseApplyProposer.sex);
  483. });
  484. //建房类型字典查询
  485. this.houseGetDicts("building_type").then((res) => {
  486. res.data.map(item => {
  487. this.buildingType.push({ value:item.dictValue, text: item.dictLabel});
  488. });
  489. this.buildingTypeValue = this.selectDictLabel(res.data, response.data.tHouseApplyProposedSituation.buildingType);
  490. });
  491. //房屋构造字典查询
  492. this.houseGetDicts("housing_structure").then((res) => {
  493. res.data.map(item => {
  494. this.housingStructure.push({ value:item.dictValue, text: item.dictLabel});
  495. });
  496. this.housingStructureValue = this.selectDictLabel(res.data, response.data.tHouseApplyProposedSituation.housingStructure);
  497. });
  498. //处置情况字典查询
  499. if(response.data.tHouseApplyProposer.existHomestead == 'Y'){
  500. this.CurrentSituation = true ;
  501. this.houseGetDicts("land_isposal").then((res) => {
  502. res.data.map(item => {
  503. this.landIsposal.push({ value:item.dictValue, text: item.dictLabel});
  504. });
  505. this.landIsposalValue= this.selectDictLabel(res.data, response.data.tHouseApplyCurrentSituation.landIsposal);
  506. });
  507. }
  508. //户型图查询
  509. houseList().then(res => {
  510. res.rows.map(item => {
  511. this.houseType.push({ value:item.id, text: item.name});
  512. });
  513. if(response.data.tHouseApplyProposedSituation.houseTypeId != null){
  514. for (let i = 0 ; i < res.rows.length ; i++){
  515. if (res.rows[i].id = response.data.tHouseApplyProposedSituation.houseTypeId){
  516. this.houseTypeValue = res.rows[i].name
  517. }
  518. }
  519. this.showHouse = true;
  520. }
  521. });
  522. console.log(response.data.tHouseApplyProposer.auditStatus != 0)
  523. this.applicationDetail = response.data;
  524. this.parameter.houseApplyStatus = response.data.tHouseApplyProposer.houseApplyStatus;
  525. let currentProcessKey = response.data.currentProcessKey;
  526. this.auditStatus = response.data.tHouseApplyProposer.auditStatus != 0;
  527. //判断当前审核进行到哪一步
  528. if (currentProcessKey == 'baseApply'){
  529. this.active = 0;
  530. }
  531. if (currentProcessKey == 'landscope'){
  532. this.active = 1;
  533. }
  534. if (currentProcessKey == 'accepting'){
  535. this.active = 2;
  536. }
  537. //获取上传文件列表
  538. treeSingleProcessView(this.parameter).then(res => {
  539. this.fileArray = res.rows
  540. this.params.tableId = this.id;
  541. for (let i = 0 ; i < res.rows.length ; i++){
  542. this.params.fileType = res.rows[i].fileType;
  543. this.fileArray[i].findList = [];
  544. //获取文件集合
  545. attachmentFind(this.params).then(res2 => {
  546. for (let j = 0 ; j < res2.data.length ; j++){
  547. this.fileArray[i].findList[j] = {url: process.env.VUE_APP_BASE_ROUTING_URL + res2.data[j].fileUrl, isImage: true , id:res2.data[j].id} ;
  548. this.$forceUpdate();
  549. console.log(this.fileArray[i].findList[j])
  550. }
  551. });
  552. }
  553. });
  554. var that = this ;
  555. setTimeout(function(){
  556. that.pointDarw();
  557. },2000)
  558. });
  559. },
  560. onConfirmApplyTime(date) {
  561. this.applicationDetail.tHouseApplyProposer.applyTime = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;
  562. this.showApplyTime = false;
  563. },
  564. //基地开工时间
  565. onConfirmStartDate(date) {
  566. this.applicationDetail.tHouseApplyStart.startDate = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;
  567. this.showStartDate = false;
  568. },
  569. //基地竣工时间
  570. onConfirmEndDate(date) {
  571. this.applicationDetail.tHouseApplyStart.endDate = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;
  572. this.showEndDate = false;
  573. },
  574. //选择建房类型
  575. onConfirmBuildingType(data){
  576. this.buildingTypeValue = data.text;
  577. this.applicationDetail.tHouseApplyProposedSituation.buildingType = data.value;
  578. this.showBuildingType = false;
  579. },
  580. //选择宅基地处置情况
  581. onConfirmLandIsposal(data){
  582. this.landIsposalValue = data.text;
  583. this.applicationDetail.tHouseApplyCurrentSituation.landIsposal = data.value;
  584. this.showLandIsposal = false;
  585. },
  586. //选择房屋构造
  587. onConfirmHousingStructure(data){
  588. this.housingStructureValue = data.text;
  589. this.applicationDetail.tHouseApplyProposedSituation.housingStructure = data.value;
  590. this.showHousingStructure = false;
  591. },
  592. //选择户型
  593. onConfirmHouseType(data){
  594. this.houseTypeValue = data.text;
  595. this.applicationDetail.tHouseApplyProposedSituation.houseTypeId = data.value;
  596. this.showHouseType = false;
  597. },
  598. //选择性别
  599. onConfirmSex(data){
  600. this.sexValue = data.text;
  601. this.applicationDetail.tHouseApplyProposer.sex = data.value;
  602. this.showSex = false;
  603. },
  604. //添加家庭成员
  605. addFamily(){
  606. this.applicationDetail.tHouseApplyFamilyMembers.push({
  607. applyProposerId:this.applicationDetail.tHouseApplyFamilyMembers[0].applyProposerId,
  608. memberName:'',
  609. age:'',
  610. familyStatusName:'',
  611. idcard :'',
  612. householdRegister:'',
  613. });
  614. },
  615. //删除家庭成员
  616. deleteFamily(index){
  617. this.applicationDetail.tHouseApplyFamilyMembers.splice(index,1)
  618. },
  619. //是否有宅基地选项改变
  620. existHomesteadChange(name){
  621. if (name == 'Y'){
  622. if (this.applicationDetail.tHouseApplyCurrentSituation == null){
  623. //现宅基地情况
  624. this.applicationDetail.tHouseApplyCurrentSituation = {
  625. //宅基地面积
  626. landArea: '',
  627. //人均宅基地面积
  628. landPerArea: '',
  629. //不动产单元号
  630. landCertificateNo: '',
  631. //农民房屋幢号
  632. houseCertificateNo: '',
  633. //建筑面积
  634. buildingArea: '',
  635. //人均建筑面积
  636. buildingPerArea: '',
  637. //现宅基地处置情况 字典 land_isposal
  638. landIsposal: ""
  639. };
  640. this.CurrentSituation = true ;
  641. //处置情况字典查询
  642. this.houseGetDicts("land_isposal").then((res) => {
  643. res.data.map(item => {
  644. this.landIsposal.push({ value:item.dictValue, text: item.dictLabel});
  645. });
  646. this.landIsposalValue= this.selectDictLabel(res.data, this.applicationDetail.tHouseApplyCurrentSituation.landIsposal);
  647. });
  648. }
  649. this.CurrentSituation = true;
  650. }else{
  651. this.CurrentSituation = false;
  652. }
  653. },
  654. //图纸选择改变
  655. designPaperChange(name){
  656. if(name == 2){
  657. this.showHouse = true;
  658. }else{
  659. this.showHouse = false;
  660. }
  661. },
  662. base64toFile(dataurl, filename = "file") {
  663. let arr = dataurl.split(",");
  664. let mime = arr[0].match(/:(.*?);/)[1];
  665. let suffix = mime.split("/")[1];
  666. let bstr = atob(arr[1]);
  667. let n = bstr.length;
  668. let u8arr = new Uint8Array(n);
  669. while (n--) {
  670. u8arr[n] = bstr.charCodeAt(n);
  671. }
  672. return new File([u8arr], `${filename}.${suffix}`, {
  673. type: mime,
  674. });
  675. },
  676. //申请提交
  677. onSubmit(type){
  678. var that = this;
  679. let form = {};
  680. form.fileList=[];
  681. this.fileList.tableId = this.id;
  682. if (this.drawInsert != null) {
  683. this.applicationDetail.tHouseApplyProposedSituation.theGeom = JSON.stringify(this.drawInsert);
  684. }
  685. for (let i = 0 ; i < this.fileArray.length ; i++){
  686. if (this.fileArray[i].findList == null || this.fileArray[i].findList == undefined || this.fileArray[i].findList == ''){
  687. continue
  688. }
  689. for (let j = 0 ; j < this.fileArray[i].findList.length ; j++){
  690. const params = new FormData()
  691. params.append('tableId', this.id)
  692. params.append('tableName', 't_house_apply_proposer')
  693. params.append('bizPath', 't_house_apply_proposer')
  694. params.append('fileType', this.fileArray[i].fileType)
  695. if (this.fileArray[i].findList[j].url){
  696. continue;
  697. }
  698. params.append('file', this.base64toFile(this.fileArray[i].findList[j].content))
  699. attach(params).then(res => {
  700. form.fileList.push(res.id);
  701. });
  702. }
  703. }
  704. form.tHouseApplyProposer=this.applicationDetail.tHouseApplyProposer;
  705. form.tHouseApplyFamilyMembers=this.applicationDetail.tHouseApplyFamilyMembers;
  706. form.tHouseApproveVillageOptions=this.applicationDetail.tHouseApproveVillageOptions;
  707. form.tHouseApplyCurrentSituation=this.applicationDetail.tHouseApplyCurrentSituation;
  708. form.tHouseApplyProposedSituation=this.applicationDetail.tHouseApplyProposedSituation;
  709. setTimeout(function(){
  710. if (type == 'keep'){
  711. saveHouseBaseInfo(form).then(res => {
  712. if(res.code = 200){
  713. that.$toast.success('保存成功');
  714. }
  715. });
  716. }
  717. if (type == 'submit'){
  718. saveHouseBaseInfoThenSubmit(form).then(res => {
  719. if(res.code = 200){
  720. that.$toast.success('提交成功');
  721. that.getDetail();
  722. }
  723. });
  724. }
  725. },1000)
  726. },
  727. pointDarw() {
  728. //地图只加载一次
  729. this.landOpen = false;
  730. //加载地图编辑
  731. var that = this;
  732. var map;
  733. //var hc_land;
  734. var draw; // global so we can remove it later
  735. var vector_drawing;
  736. var minMapZoom;
  737. var maxMapZoom;
  738. var zoomLook;
  739. if (this.formEditor) {
  740. zoomLook = 18
  741. minMapZoom = 18
  742. maxMapZoom = 18
  743. } else {
  744. zoomLook = 16.9
  745. minMapZoom = 16
  746. maxMapZoom = 18.9
  747. }
  748. if (this.applicationDetail.tHouseApplyProposedSituation.theGeom != null && this.applicationDetail.tHouseApplyProposedSituation.theGeom != ""
  749. && this.applicationDetail.tHouseApplyProposedSituation.theGeom != undefined) {
  750. this.startDarw = true;
  751. this.openDarw = false;
  752. } else {
  753. this.startDarw = false;
  754. this.openDarw = true;
  755. }
  756. if (this.startDarw) {
  757. document.getElementById("mapWrap").innerHTML = '';
  758. var hc_land;
  759. var draw; // global so we can remove it later
  760. var vector_drawing;
  761. var projection = new ol.proj.Projection({
  762. //地图投影类型
  763. code: "EPSG:3857",
  764. units: "degrees",
  765. //extent:extent
  766. });
  767. var aerial = new ol.layer.Tile({
  768. source: new ol.source.XYZ({
  769. url: "http://t0.tianditu.gov.cn/img_w/wmts?" +
  770. "SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles" +
  771. "&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=c78ca1c13e82e1cdd64ef9d8cdbbb237",
  772. }),
  773. isGroup: true,
  774. name: "卫星影像图",
  775. });
  776. var yingxzi = new ol.layer.Tile({
  777. source: new ol.source.XYZ({
  778. url: "https://t0.tianditu.gov.cn/DataServer?T=cia_w&x={x}&y={y}&l={z}&tk=c78ca1c13e82e1cdd64ef9d8cdbbb237",
  779. }),
  780. isGroup: true,
  781. name: "天地图文字标注--卫星影像图",
  782. });
  783. //加载地图
  784. map = new ol.Map({
  785. // interactions: ol.interaction.DragPan({
  786. // onFocusOnly: false
  787. // }),
  788. controls: ol.control.defaults({attribution: false, zoom: false, rotate: false}).extend([]), //隐藏放大缩小按钮
  789. layers: [aerial, yingxzi],
  790. projection: projection,
  791. target: "mapWrap",
  792. view: new ol.View({
  793. //center: ol.proj.fromLonLat([115.452752, 31.789033]),
  794. zoom: zoomLook,
  795. minZoom: minMapZoom, //地图缩小限制
  796. maxZoom: maxMapZoom, //地图放大限制
  797. }),
  798. });
  799. if (this.formEditor) {
  800. let pan = getPan();
  801. //false:当前地图不可拖动。true:可拖动
  802. pan.setActive(false);
  803. function getPan() {
  804. let pan = '';
  805. map.getInteractions().forEach(function (element, index, array) {
  806. if (element instanceof ol.interaction.DragPan) {
  807. pan = element;
  808. }
  809. })
  810. return pan;
  811. }
  812. }
  813. //图层查询定位开始 ---------start
  814. hc_land = new ol.layer.Vector({
  815. title: "add Layer",
  816. source: new ol.source.Vector({
  817. projection: projection,
  818. features: new ol.format.GeoJSON().readFeatures("{\n" +
  819. " \"type\": \"Feature\",\n" +
  820. " \"geometry\":" + this.applicationDetail.tHouseApplyProposedSituation.theGeom + "}"),
  821. }),
  822. style: new ol.style.Style({
  823. fill: new ol.style.Fill({
  824. //矢量图层填充颜色,以及透明度
  825. color: "rgba(204, 255, 204,0.3)",
  826. }),
  827. stroke: new ol.style.Stroke({
  828. //边界样式
  829. color: "#47c68f",
  830. width: 3,
  831. }),
  832. }),
  833. });
  834. map.addLayer(hc_land);
  835. var maxXMap = hc_land.values_.source.featuresRtree_.rbush_.data.maxX;
  836. var maxYMap = hc_land.values_.source.featuresRtree_.rbush_.data.maxY;
  837. var minXMap = hc_land.values_.source.featuresRtree_.rbush_.data.minX;
  838. var minYMap = hc_land.values_.source.featuresRtree_.rbush_.data.minY;
  839. //定位查询位置
  840. var center = ol.extent.getCenter([maxXMap, maxYMap, minXMap, minYMap]); //获取边界区域的中心位置
  841. map.getView().animate({
  842. // 只设置需要的属性即可
  843. center: center, // 中心点
  844. zoom: 17.9, // 缩放级别
  845. rotation: undefined, // 缩放完成view视图旋转弧度
  846. duration: 1000, // 缩放持续时间,默认不需要设置
  847. });
  848. //图层查询定位结束 ---------end
  849. //开始绘制地图
  850. $("#drawPolygon").click(function () {
  851. map.removeLayer(hc_land);
  852. map.removeLayer(vector_drawing);
  853. that.drawInsert = null;
  854. map.removeInteraction(draw);
  855. var source = new ol.source.Vector({wrapX: false});
  856. vector_drawing = new ol.layer.Vector({
  857. source: source,
  858. });
  859. map.addLayer(vector_drawing);
  860. var typeSelect = "Polygon";
  861. function addInteraction() {
  862. var value = typeSelect;
  863. draw = new ol.interaction.Draw({
  864. source: source,
  865. type: typeSelect
  866. });
  867. draw.on('drawend', function (evt) {
  868. console.log(that.drawInsert);
  869. if(that.drawInsert != null){
  870. $("#drawRemove").trigger('click');
  871. }
  872. var feature = evt.feature;
  873. var geometry = feature.getGeometry();
  874. var coordinate = geometry.getCoordinates();
  875. that.drawInsert = coordinate;
  876. map.removeInteraction(draw);
  877. });
  878. map.addInteraction(draw);
  879. }
  880. addInteraction();
  881. });
  882. //清除画图鼠标点击事件
  883. $("#drawRemove").click(function () {
  884. that.drawInsert = null;
  885. map.addLayer(hc_land);
  886. map.removeInteraction(draw);
  887. map.removeLayer(vector_drawing);
  888. });
  889. }
  890. if (this.openDarw) {
  891. document.getElementById("mapWrap").innerHTML = '';
  892. var projection = new ol.proj.Projection({
  893. //地图投影类型
  894. code: "EPSG:3857",
  895. units: "degrees",
  896. //extent:extent
  897. });
  898. var aerial = new ol.layer.Tile({
  899. source: new ol.source.XYZ({
  900. url: "http://t0.tianditu.gov.cn/img_w/wmts?" +
  901. "SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles" +
  902. "&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=c78ca1c13e82e1cdd64ef9d8cdbbb237",
  903. }),
  904. isGroup: true,
  905. name: "卫星影像图",
  906. });
  907. var yingxzi = new ol.layer.Tile({
  908. source: new ol.source.XYZ({
  909. url: "https://t0.tianditu.gov.cn/DataServer?T=cia_w&x={x}&y={y}&l={z}&tk=c78ca1c13e82e1cdd64ef9d8cdbbb237",
  910. }),
  911. isGroup: true,
  912. name: "天地图文字标注--卫星影像图",
  913. });
  914. //获取坐标是否存在
  915. var Zb;
  916. if (this.tGeoOrganizationLng != null && this.tGeoOrganizationLat != null) {
  917. Zb = [this.tGeoOrganizationLng, this.tGeoOrganizationLat]
  918. } else {
  919. Zb = [115.452752, 31.789033];
  920. }
  921. //加载地图
  922. map = new ol.Map({
  923. controls: ol.control.defaults({attribution: false, zoom: false, rotate: false}).extend([]), //隐藏放大缩小按钮
  924. layers: [aerial, yingxzi],
  925. projection: projection,
  926. logo: 'false',
  927. target: "mapWrap",
  928. view: new ol.View({
  929. center: ol.proj.fromLonLat(Zb),
  930. //center: ol.proj.fromLonLat([115.452752, 31.789033]),
  931. zoom: 16.9,
  932. minZoom: minMapZoom, //地图缩小限制
  933. maxZoom: maxMapZoom, //地图放大限制
  934. }),
  935. });
  936. //图层查询定位结束 ---------end
  937. //开始绘制地图
  938. $("#drawPolygon").click(function () {
  939. //map.removeLayer(hc_land);
  940. map.removeLayer(vector_drawing);
  941. that.drawInsert = null;
  942. map.removeInteraction(draw);
  943. var source = new ol.source.Vector({wrapX: false});
  944. vector_drawing = new ol.layer.Vector({
  945. source: source,
  946. });
  947. map.addLayer(vector_drawing);
  948. var typeSelect = "Polygon";
  949. function addInteraction() {
  950. var value = typeSelect;
  951. draw = new ol.interaction.Draw({
  952. source: source,
  953. type: typeSelect
  954. });
  955. draw.on('drawend', function (evt) {
  956. console.log(that.drawInsert);
  957. if(that.drawInsert != null){
  958. $("#drawRemove").trigger('click');
  959. }
  960. var feature = evt.feature;
  961. var geometry = feature.getGeometry();
  962. var coordinate = geometry.getCoordinates();
  963. that.drawInsert = coordinate;
  964. map.removeInteraction(draw);
  965. });
  966. map.addInteraction(draw);
  967. }
  968. addInteraction();
  969. });
  970. //清除画图鼠标点击事件
  971. $("#drawRemove").click(function () {
  972. that.drawInsert = null;
  973. map.removeInteraction(draw);
  974. map.removeLayer(vector_drawing);
  975. });
  976. }
  977. },
  978. },
  979. }
  980. </script>
  981. <style scoped lang="scss">
  982. .app-container {
  983. padding-bottom: 5%;
  984. }
  985. .examine_box{
  986. background-color: #1D6FE9!important;
  987. padding: 0.18rem!important;
  988. padding-left: 0!important;
  989. border-radius: 0.15rem!important;
  990. margin-top: 0.3rem!important;
  991. }
  992. .examine_box .van-col:first-child{
  993. color: #FFF!important;
  994. font-size: 0.45rem!important;
  995. text-align: center!important;
  996. }
  997. .examine_box .van-col:last-child{
  998. background-color: #FFF!important;
  999. border-radius: 0.15rem!important;
  1000. overflow: hidden!important;
  1001. .van-radio-group--horizontal{
  1002. padding: 0.2rem 0;
  1003. border-bottom: 1px solid #eee;
  1004. }
  1005. }
  1006. #mapWrap{
  1007. width: 96%;
  1008. margin: 0 auto;
  1009. border-bottom-left-radius: 12px;
  1010. border-bottom-right-radius: 12px;
  1011. overflow: hidden;
  1012. }
  1013. .mapBox{
  1014. position: relative;
  1015. .mapBox_button{
  1016. position: absolute;
  1017. top: 0.2rem;
  1018. right: 2%;
  1019. }
  1020. }
  1021. .van-steps{
  1022. padding: 2% 6% 0;
  1023. }
  1024. .topTit{
  1025. margin-top: 0.4rem;
  1026. font-size: 0.45rem;
  1027. background-color: #1D6FE9;
  1028. color: #FFFFFF;
  1029. line-height: 58px;
  1030. text-align: center;
  1031. padding: 15px 0;
  1032. box-shadow: 0px 3px 6px 0px rgba(15,67,145,0.40);
  1033. }
  1034. .main_title{
  1035. font-size: 0.4rem;
  1036. color: #1D6FE9;
  1037. margin: 0.2rem 6%;
  1038. position: relative;
  1039. }
  1040. .main_box{
  1041. width: 96%;
  1042. margin: 0 auto;
  1043. border-radius: 6px;
  1044. box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16);
  1045. overflow: hidden;
  1046. background-color: #FFF;
  1047. }
  1048. .collapse{
  1049. width: 96%;
  1050. margin: 0 auto;
  1051. border-radius: 6px;
  1052. box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16);
  1053. overflow: hidden;
  1054. margin-bottom: 15px;
  1055. }
  1056. /deep/.van-radio--horizontal{
  1057. margin-left: 20px;
  1058. margin-right: 0;
  1059. }
  1060. .file-box{
  1061. padding: 2% 5% 0;
  1062. }
  1063. .submitButton{
  1064. width: 80%;
  1065. margin: 0 auto;
  1066. background-color: #1D6FE9;
  1067. border-radius: 14px;
  1068. }
  1069. .timeTit{
  1070. text-align: center;
  1071. font-size: 16px;
  1072. line-height: 27px;
  1073. }
  1074. .action-box{
  1075. padding: 15px 0!important;
  1076. margin-top: 0.4rem;
  1077. }
  1078. .check-box{
  1079. margin-top: 0.4rem;
  1080. }
  1081. .addFamily{
  1082. position: absolute;
  1083. top: -2px;
  1084. right: 0;
  1085. border-radius: 50%;
  1086. }
  1087. .deleteFamily{
  1088. position: absolute;
  1089. top: -0.3rem;
  1090. right: 6%;
  1091. z-index: 9;
  1092. border-radius: 50%;
  1093. }
  1094. .familyList{
  1095. margin-top: 0.4rem;
  1096. position: relative;
  1097. }
  1098. .noModify{
  1099. .topTit{
  1100. background-color:#ABABAB ;
  1101. box-shadow: 0px 3px 6px 0px rgba(171,171,171,0.40);
  1102. }
  1103. .van-cell__title{
  1104. color: #B4B0B0;
  1105. }
  1106. }
  1107. </style>