移动端
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 

881 行
35 KiB

  1. <template>
  2. <div class="app-container">
  3. <!-- <van-nav-bar-->
  4. <!-- left-arrow-->
  5. <!-- fixed-->
  6. <!-- placeholder-->
  7. <!-- @click-left="$router.back(-1)"-->
  8. <!-- >-->
  9. <!-- <template #title>-->
  10. <!-- <p style="font-weight: bold;">有偿退出</p>-->
  11. <!-- </template>-->
  12. <!-- </van-nav-bar>-->
  13. <div class="header_main">
  14. 有偿退出
  15. <div class="return_btn" @click="onClickLeft"></div>
  16. <!-- <div class="add_btn" @click="goAdd"></div>-->
  17. </div>
  18. <div class="main_box">
  19. <!-- <van-field v-model="circulation.sqrxm" label="申请人姓名" placeholder="申请人姓名" input-align="right" label-width="auto" :rules="[{ required: true }]" required/>-->
  20. <van-field readonly v-model="circulation.sqrxm" label="申请人姓名" placeholder="申请人姓名" input-align="right" label-width="auto" :rules="[{ required: true }]" required @input="remoteTransfereeMethod" />
  21. <div id="dropList" v-show="showDropList" style="width: 92vw; position: absolute; z-index: 99; left: 50%; margin-left: -46vw; border: 1px solid #E2E0E0;" >
  22. <van-cell id="vanCell" v-for="(item, index) in getObligeeOptions" :key="index" @click="shyqrdmxmChange(item)" style="position: relative; z-index: 999;">
  23. {{item.sqrxm}}
  24. </van-cell>
  25. </div>
  26. <!-- <van-field-->
  27. <!-- readonly-->
  28. <!-- clickable-->
  29. <!-- v-model="circulation.zjddm"-->
  30. <!-- label="宅基地代码"-->
  31. <!-- placeholder="请选择"-->
  32. <!-- @click="remoteProposerMethod"-->
  33. <!-- input-align="right"-->
  34. <!-- right-icon="arrow-down" :rules="[{ required: true }]" required-->
  35. <!-- />-->
  36. <!-- <van-popup v-model="showzjddm" position="bottom">-->
  37. <!-- <van-picker-->
  38. <!-- show-toolbar-->
  39. <!-- :columns="zjdDictionaries"-->
  40. <!-- value-key="zjddm"-->
  41. <!-- @confirm="onConfirmZjddm"-->
  42. <!-- @cancel="showzjddm = false"-->
  43. <!-- />-->
  44. <!-- </van-popup>-->
  45. <van-field
  46. readonly
  47. v-model="circulation.zjddm"
  48. label="宅基地代码"
  49. input-align="right"
  50. >
  51. <template #button>
  52. <van-icon name="../../../static/images/22.png" color="#539FFD" size="20" @click="mapLook"/>
  53. </template>
  54. </van-field>
  55. <field-select
  56. readonly
  57. v-model="circulation.xb"
  58. label="性別"
  59. value-key="dictLabel"
  60. data-key="dictValue"
  61. placeholder="选择现状"
  62. :rules="[{ required: true }]"
  63. required
  64. remote-url="/system/dict/data/type/sys_user_sex"
  65. :on-remote-response="'data'"
  66. />
  67. <van-field readonly v-model="circulation.sqrzjhm" label="申请人证件号码" placeholder="申请人证件号码" input-align="right" label-width="auto" :rules="[{ required: true }]" required/>
  68. <van-field readonly v-model="circulation.lxdh" label="联系电话" placeholder="联系电话" input-align="right" label-width="auto" :rules="[{ required: true }]" required/>
  69. <field-select
  70. readonly
  71. v-model="circulation.gyqk"
  72. label="共有情况"
  73. value-key="dictLabel"
  74. data-key="dictValue"
  75. placeholder="选择共有情况"
  76. :rules="[{ required: true }]"
  77. required
  78. remote-url="/system/dict/data/type/house_yes_no"
  79. :on-remote-response="'data'"
  80. />
  81. <van-field readonly v-model="circulation.hkszd" label="户口所在地" placeholder="户口所在地" input-align="right" label-width="auto" :rules="[{ required: true }]" required/>
  82. </div>
  83. <div v-if="circulation.jtcyqkList">
  84. <p class="main_title">家庭成员情况</p>
  85. <div >
  86. <van-tabs v-if="circulation.jtcyqkList && circulation.jtcyqkList.length > 0" v-model="familyMembersActive" ref="memberTabs">
  87. <van-tab :title="(index + 1) + '. ' + item.xm" v-for="(item , index) in circulation.jtcyqkList" :key="index" swipeable>
  88. <div class="familyList">
  89. <div class="main_box" style="margin-bottom: 20px">
  90. <!-- <van-button icon="minus" size="mini" type="danger" class="deleteFamily" native-type="button" v-if="index!=0" @click="deleteFamily(index)" />-->
  91. <van-field readonly required v-model="item.xm" label="姓名" placeholder="姓名" input-align="right" :rules="[{ required: true }]"/>
  92. <van-field readonly required v-model="item.nl" label="年龄" placeholder="年龄" input-align="right" :rules="[{ required: true }]"/>
  93. <field-select
  94. v-model="item.yhzgx"
  95. readonly
  96. label="与户主关系"
  97. value-key="dictLabel"
  98. data-key="dictValue"
  99. placeholder="选择与户主关系"
  100. :rules="[{ required: true }]"
  101. required
  102. remote-url="/system/dict/data/type/family_status"
  103. :on-remote-response="'data'"
  104. />
  105. <van-field readonly required v-model="item.sfzh" label="身份证号" placeholder="身份证号" input-align="right" :rules="[{pattern: /^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/}]" @input="updateMemberInfo(index)"/>
  106. <van-field readonly required v-model="item.hkszd" label="户口所在地" placeholder="户口所在地" input-align="right" :rules="[{ required: true }]"/>
  107. </div>
  108. </div>
  109. </van-tab>
  110. </van-tabs>
  111. </div>
  112. </div>
  113. <div v-if="circulation.gyrqkList">
  114. <p class="main_title">共有人情况</p>
  115. <div >
  116. <van-tabs v-if="circulation.gyrqkList && circulation.gyrqkList.length > 0" v-model="familyMembersActive" ref="memberTabs">
  117. <van-tab :title="(index + 1) + '. ' + item.xm" v-for="(item , index) in circulation.gyrqkList" :key="index" swipeable>
  118. <div class="familyList">
  119. <div class="main_box" style="margin-bottom: 20px">
  120. <!-- <van-button icon="minus" size="mini" type="danger" class="deleteFamily" native-type="button" v-if="index!=0" @click="deleteFamily(index)" />-->
  121. <van-field readonly required v-model="item.xm" label="姓名" placeholder="姓名" input-align="right" :rules="[{ required: true }]"/>
  122. <van-field readonly required v-model="item.nl" label="年龄" placeholder="年龄" input-align="right" :rules="[{ required: true }]"/>
  123. <field-select
  124. v-model="item.yhzgx"
  125. label="与户主关系"
  126. value-key="dictLabel"
  127. data-key="dictValue"
  128. placeholder="选择与户主关系"
  129. :rules="[{ required: true }]"
  130. required
  131. readonly
  132. remote-url="/system/dict/data/type/family_status"
  133. :on-remote-response="'data'"
  134. />
  135. <van-field readonly required v-model="item.sfzh" label="身份证号" placeholder="身份证号" input-align="right" :rules="[{pattern: /^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/}]" @input="updateMemberInfo(index)"/>
  136. <van-field readonly required v-model="item.hkszd" label="户口所在地" placeholder="户口所在地" input-align="right" :rules="[{ required: true }]"/>
  137. </div>
  138. </div>
  139. </van-tab>
  140. </van-tabs>
  141. </div>
  142. </div>
  143. <p class="main_title">拟申请退出宅基地-面积</p>
  144. <van-field readonly v-model="circulation.tcmj" label="面积(㎡)" placeholder="请输入面积㎡" input-align="right" label-width="auto" :rules="[{ required: true }]" required type="number"/>
  145. <field-select
  146. readonly
  147. v-model="circulation.xz"
  148. label="现状"
  149. value-key="dictLabel"
  150. data-key="dictValue"
  151. placeholder="选择现状"
  152. :rules="[{ required: true }]"
  153. required
  154. remote-url="/system/dict/data/type/dsxz"
  155. :on-remote-response="'data'"
  156. />
  157. <p class="main_title">拟申请退出宅基地-四至</p>
  158. <van-field readonly v-model="circulation.zjdszd" label="东至" placeholder="东至" input-align="right" label-width="auto" :rules="[{ required: true }]" required/>
  159. <van-field readonly v-model="circulation.zjdszn" label="南至" placeholder="南至" input-align="right" label-width="auto" :rules="[{ required: true }]" required/>
  160. <van-field readonly v-model="circulation.zjdszx" label="西至" placeholder="西至" input-align="right" label-width="auto" :rules="[{ required: true }]" required/>
  161. <van-field readonly v-model="circulation.zjdszb" label="北至" placeholder="北至" input-align="right" label-width="auto" :rules="[{ required: true }]" required/>
  162. <p class="main_title">拟申请退出宅基地情况-地类</p>
  163. <field-select
  164. readonly
  165. v-model="circulation.dldm"
  166. label="地类"
  167. value-key="dictLabel"
  168. data-key="dictValue"
  169. placeholder="选择现状"
  170. :rules="[{ required: true }]"
  171. required
  172. remote-url="/system/dict/data/type/geographic_type"
  173. :on-remote-response="'data'"
  174. />
  175. <p class="main_title">退出宅基地情况</p>
  176. <van-field readonly v-model="circulation.tcmj" label="退出面积(㎡)" placeholder="请输入退出面积㎡" input-align="right" label-width="auto" :rules="[{ required: true }]" required type="number"/>
  177. <van-field readonly v-model="circulation.jzmj" label="建筑面积(㎡)" placeholder="请输入建筑面积㎡" input-align="right" label-width="auto" :rules="[{ required: true }]" required type="number"/>
  178. <div class="main_box">
  179. <van-field
  180. readonly
  181. clickable
  182. v-model="tcqllx"
  183. label="退出权利类型"
  184. placeholder="请选择退出权利类型"
  185. input-align="right"
  186. right-icon="arrow-down"
  187. label-width="auto" :rules="[{ required: true }]" required
  188. />
  189. <van-popup v-model="showtcqllx" position="bottom">
  190. <van-picker
  191. show-toolbar
  192. :columns="tcqllxDictionaries"
  193. @cancel="showtcqllx = false"
  194. />
  195. </van-popup>
  196. <!--<van-field
  197. readonly
  198. clickable
  199. v-model="tclx"
  200. label="退出类型"
  201. placeholder="请选择退出类型"
  202. @click="showtclx = true"
  203. input-align="right"
  204. right-icon="arrow-down"
  205. label-width="auto" :rules="[{ required: true }]" required
  206. />
  207. <van-popup v-model="showtclx" position="bottom">
  208. <van-picker
  209. show-toolbar
  210. :columns="tclxDictionaries"
  211. @confirm="onConfirmTclx"
  212. @cancel="showtclx = false"
  213. />
  214. </van-popup>-->
  215. <van-field
  216. readonly
  217. clickable
  218. v-model="tcfs"
  219. label="退出方式"
  220. placeholder="请选择退出方式"
  221. input-align="right"
  222. right-icon="arrow-down"
  223. label-width="auto" :rules="[{ required: true }]" required
  224. />
  225. <van-popup v-model="showtcfs" position="bottom">
  226. <van-picker
  227. show-toolbar
  228. :columns="tcfsDictionaries"
  229. @cancel="showtcfs = false"
  230. />
  231. </van-popup>
  232. <van-field v-model="circulation.tcqszsh" label="权属证书号" placeholder="请输入权属证书号" input-align="right" label-width="auto" />
  233. </div>
  234. <p class="main_title">现居住情况</p>
  235. <van-field readonly v-model="circulation.xjzmj" label="建筑面积(㎡)" placeholder="请输入建筑面积㎡" input-align="right" label-width="auto" :rules="[{ required: true }]" required type="number"/>
  236. <van-field readonly v-model="circulation.xqszsh" label="权属证书号" placeholder="请输入权属证书号" input-align="right" label-width="auto" />
  237. <van-field readonly v-model="circulation.xjzdd" label="居住地点" placeholder="请输入居住地点" input-align="right" label-width="auto" />
  238. <p class="main_title">补偿信息</p>
  239. <van-field readonly v-model="circulation.bcje" label="宅基地补偿" placeholder="宅基地补偿" input-align="right" label-width="auto" type="number"/>
  240. <van-field readonly v-model="circulation.dmfzwbc" label="地面附着物补偿" placeholder="地面附着物补偿" input-align="right" label-width="auto" type="number"/>
  241. <field-select
  242. readonly
  243. v-model="circulation.yctcfs"
  244. label="退出类型"
  245. value-key="dictLabel"
  246. data-key="dictValue"
  247. placeholder="选择退出类型"
  248. remote-url="/system/dict/data/type/yctcfs"
  249. :on-remote-response="'data'"
  250. />
  251. <field-select
  252. readonly
  253. v-model="circulation.bcfs"
  254. label="补偿方式"
  255. value-key="dictLabel"
  256. data-key="dictValue"
  257. placeholder="选择退出类型"
  258. remote-url="/system/dict/data/type/bcfs"
  259. :on-remote-response="'data'"
  260. />
  261. <field-date-picker
  262. readonly
  263. v-model="circulation.bcsj"
  264. label="补偿时间"
  265. placeholder="选择日期"
  266. formatter="yyyy-MM-dd"
  267. />
  268. <p class="main_title">其他</p>
  269. <van-field readonly v-model="circulation.sqly" label="申请理由" placeholder="请输入申请理由" input-align="right" label-width="auto"/>
  270. <field-date-picker
  271. readonly
  272. v-model="circulation.sqrq"
  273. label="申请日期"
  274. placeholder="选择日期"
  275. :rules="[{ required: true }]"
  276. formatter="yyyy-MM-dd"
  277. required
  278. />
  279. <van-field readonly v-model="circulation.jbrxm" label="经办人姓名" placeholder="请输入经办人姓名" input-align="right" label-width="auto"/>
  280. <field-date-picker
  281. readonly
  282. v-model="circulation.pzrq"
  283. label="批准日期"
  284. placeholder="选择日期"
  285. :rules="[{ required: true }]"
  286. formatter="yyyy-MM-dd"
  287. required
  288. />
  289. <field-date-picker
  290. v-model="circulation.barq"
  291. label="备案日期"
  292. placeholder="选择日期"
  293. :rules="[{ required: true }]"
  294. formatter="yyyy-MM-dd"
  295. required
  296. />
  297. <van-dialog v-model="mapShow" show-cancel-button>
  298. <MapGisObtainTc ref="zjdProductResh" :shqrxm="circulation.sqrxm" :landStatus="landStatus" :deptId="circulation.deptId" @closeMoule="closeMoule"></MapGisObtainTc>
  299. </van-dialog>
  300. <!-- 3组附件 -->
  301. <van-popup
  302. v-model="attachmentVisible"
  303. closeable
  304. position="top"
  305. :style="{ height: '61.8%' }"
  306. :close-on-click-overlay="proposerStatus == 1"
  307. :lazy-render="false"
  308. >
  309. <van-tabs type="card" style="padding-top: 1.35rem;" color="#1D6FE9" :lazy-render="false" v-model="attachmentActive" ref="attachmentDialog">
  310. <van-tab title="退出附件" key="0">
  311. <home-apply-upload-comp
  312. :business-type="houseApplyUploadComp.businessType"
  313. :house-apply-status="houseApplyUploadComp.homeApplyStatus"
  314. :process-key="houseApplyUploadComp.processKey"
  315. :proposer-id="houseApplyUploadComp.proposerId"
  316. :table-name="houseApplyUploadComp.tableName"
  317. :readonly="houseApplyUploadComp.readonly"
  318. :userName="houseApplyUploadComp.createBy"
  319. :full="houseApplyUploadComp.full"
  320. >
  321. </home-apply-upload-comp>
  322. </van-tab>
  323. </van-tabs>
  324. </van-popup>
  325. <!-- 审批 -->
  326. <div class="main_box examine_box" v-if="showCjt">
  327. <van-row type="flex" justify="space-between" align="center">
  328. <van-col span="5">村集体<br/>经济组<br/>织或村<br/>民委员<br/>会意见</van-col>
  329. <van-col span="19">
  330. <van-field required :readonly="approval.type !== 'todo' || !cjtspOperation" v-model="circulation.cjzzscyj" rows="2" autosize type="textarea" placeholder="审核意见"/>
  331. <van-cell title="负责人:" :rules="[{ required: true }]">
  332. <van-image
  333. v-if="circulation.cjzzscr !='' && circulation.cjzzscr !=null && circulation.cjzzscr.endsWith('png')"
  334. width="100"
  335. height="50"
  336. :src="$store.getters.baseRoutingUrl+circulation.cjzzscr"
  337. ></van-image>
  338. <div v-if="circulation.cjzzscr !='' && circulation.cjzzscr !=null && !circulation.cjzzscr.endsWith('png')">{{circulation.cjzzscr}}</div>
  339. </van-cell>
  340. <field-date-picker
  341. v-model="circulation.cjzzscsj"
  342. label="审批日期"
  343. placeholder="选择日期"
  344. :readonly="approval.type !== 'todo' || !cjtspOperation"
  345. :rules="[{ required: true }]"
  346. formatter="yyyy-MM-dd"
  347. required
  348. />
  349. </van-col>
  350. </van-row>
  351. </div>
  352. <div class="main_box examine_box" v-if="showZjsp">
  353. <van-row type="flex" justify="space-between" align="center">
  354. <van-col span="5">镇级人<br/>民镇府<br/>意见</van-col>
  355. <van-col span="19">
  356. <van-field required :readonly="approval.type !== 'todo'" v-model="circulation.xzzfshpzyj" rows="2" autosize type="textarea" placeholder="审核意见"/>
  357. <van-cell title="负责人:" :rules="[{ required: true }]">
  358. <van-image
  359. v-if="circulation.xzzfshpzrxm !='' && circulation.xzzfshpzrxm !=null && circulation.xzzfshpzrxm.endsWith('png')"
  360. width="100"
  361. height="50"
  362. :src="$store.getters.baseRoutingUrl+circulation.xzzfshpzrxm"
  363. ></van-image>
  364. <div v-if="circulation.xzzfshpzrxm !='' && circulation.xzzfshpzrxm !=null && !circulation.xzzfshpzrxm.endsWith('png')">{{circulation.xzzfshpzrxm}}</div>
  365. </van-cell>
  366. <field-date-picker
  367. v-model="circulation.xzzfshpzsj"
  368. label="审批日期"
  369. placeholder="选择日期"
  370. :rules="[{ required: true }]"
  371. :readonly="approval.type !== 'todo'"
  372. formatter="yyyy-MM-dd"
  373. required
  374. />
  375. </van-col>
  376. </van-row>
  377. </div>
  378. <div class="clear"></div>
  379. <van-goods-action style="z-index: 999;">
  380. <van-goods-action-icon icon="label-o" text="附件" @click="openAttachment" color="#1D6FE9" />
  381. <van-goods-action-button type="info" text="同意" v-if="approval.type == 'todo'" @click="complete(true)" />
  382. <van-goods-action-button type="danger" text="驳回" v-if="approval.type == 'todo'" @click="complete(false)"/>
  383. </van-goods-action>
  384. </div>
  385. </template>
  386. <script>
  387. import { getZyyctc,getShyqrs,zyyctcEdit,zyyctcApply,getByLyZjddm,listHomesteadnmfw} from "@/api/sunVillage_info/homestead/paidExit";
  388. import HomeApplyUploadComp from "@/components/home/HomeApplyUploadComp";
  389. import FieldSelect from "@/components/form/FieldSelect";
  390. import FieldDatePicker from "@/components/form/FieldDatePicker";
  391. import {formatDate} from "element-ui/src/utils/date-util.js";
  392. import { } from "@/api/onlineHome/homestead/paidExit";
  393. import {Notify} from "vant";
  394. import MapGisObtainTc from "@/components/Map/MapGisObtainTc";
  395. import request from '@/utils/request';
  396. const PROPOSER_VIEW = 1;
  397. // 工作流名称
  398. const PROPOSER_STAGE_BASE_APPLY_ACTIVITY = 'home_usetc';
  399. // 附件表名
  400. const PROPOSER_STAGE_BASE_APPLY_TABLE = 't_homeuse_zyyctc';
  401. // 其他
  402. const PROPOSER_MODULE = 'home';
  403. export default {
  404. name: "paidExitDetail",
  405. components: { MapGisObtainTc,FieldSelect,FieldDatePicker,HomeApplyUploadComp },
  406. data() {
  407. return {
  408. tcqllxDictionaries:[],//退出权利类型
  409. tclxDictionaries:[],//退出类型
  410. tcfsDictionaries:[],//退出方式
  411. xbDictionaries:[],//申请人证件类型
  412. zjlxDictionaries:[],
  413. bcfsDictionaries:[],//补偿方式
  414. zjdDictionaries:[],//宅基地代码
  415. getObligeeOptions:[],//下拉框列表
  416. tcqllx:'',
  417. tclx:'',
  418. tcfs:'',
  419. xb:'',
  420. bcfs:'',
  421. zjddm:'',
  422. landStatus:"1",
  423. nickName:this.$route.query.nickName,
  424. electronicSignature:this.$route.query.electronicSignature,
  425. showtcqllx: false,
  426. showtclx: false,
  427. showtcfs: false,
  428. showxb: false,
  429. showbcfs: false,
  430. showzjddm: false,
  431. showZjsp: false,
  432. showCjt:false,
  433. cjtspOperation:false,
  434. showDropList: false,//是否显示下拉框
  435. mapShow: false,
  436. attachmentVisible:false,
  437. // 家庭成员tab
  438. familyMembersActive: 0,
  439. active: 0,
  440. // 表单意图
  441. proposerStatus: PROPOSER_VIEW,
  442. circulation:{},
  443. // 当前附件tab
  444. attachmentActive: 0,
  445. // 申请附件树
  446. houseApplyUploadComp: {
  447. businessType: PROPOSER_MODULE,
  448. proposerId: this.$route.query.id,
  449. homeApplyStatus: "11",
  450. processKey: PROPOSER_STAGE_BASE_APPLY_ACTIVITY,
  451. tableName: PROPOSER_STAGE_BASE_APPLY_TABLE,
  452. attachmentList: [],
  453. readonly: true,
  454. full: false,
  455. },
  456. approval: {
  457. taskId: null,
  458. instanceId: null,
  459. type: null,
  460. id: null,
  461. comment: '',
  462. },
  463. };
  464. },
  465. created() {
  466. this.approval.id = this.$route.query.id;
  467. this.approval.instanceId = this.$route.query.instanceId;
  468. this.approval.type = this.$route.query.type;
  469. this.approval.taskId = this.$route.query.taskId;
  470. this.getDetail();
  471. },
  472. methods: {
  473. // 获取日期, yyyy-MM-dd
  474. getDate(d) {
  475. return formatDate(d ? d : new Date(), 'yyyy-MM-dd');
  476. },
  477. getDetail(){
  478. getZyyctc(this.$route.query.id).then(response => {
  479. this.circulation = response.data;
  480. if(this.circulation.jtcyqkList != null){
  481. for(let i = 0; i < this.circulation.jtcyqkList.length; i++)
  482. {
  483. this.updateMemberInfo(i);
  484. }
  485. }
  486. if(this.circulation.gyrqkList != null){
  487. for(let i = 0; i < this.circulation.gyrqkList.length; i++)
  488. {
  489. this.updateMemberInfoGy(i);
  490. }
  491. }
  492. if(this.approval.type === "todo"){
  493. if(response.data.auditStatus === "1" || response.data.auditStatus === "2"){
  494. if(this.electronicSignature != null){
  495. this.$set(this.circulation, "cjzzscr", this.electronicSignature);
  496. }else{
  497. this.$set(this.circulation, "cjzzscr", this.nickName);
  498. }
  499. let handlerTime = this.getDate();
  500. this.$set(this.circulation, "cjzzscsj", handlerTime);
  501. this.cjtspOperation = true;
  502. this.showCjt = true;
  503. }else if(response.data.auditStatus === "3"){
  504. this.showZjsp = true;
  505. this.showCjt = true;
  506. if(this.electronicSignature != null){
  507. this.zzfdzqmShow = true;
  508. this.$set(this.circulation, "xzzfshpzrxm", this.electronicSignature);
  509. }else{
  510. this.$set(this.circulation, "xzzfshpzrxm", this.nickName);
  511. }
  512. let handlerTime = this.getDate();
  513. this.$set(this.circulation, "xzzfshpzsj", handlerTime);
  514. }
  515. }else{
  516. if(response.data.auditStatus === "4" ){
  517. this.showCjt = true;
  518. this.showZjsp = true;
  519. }else if(response.data.auditStatus === "0" || response.data.auditStatus === "1"){
  520. this.showCjt = false;
  521. }else{
  522. this.showCjt = true;
  523. }
  524. }
  525. //退出权利类型
  526. this.houseGetDicts("tcqllx").then((res) => {
  527. for (var i = 0; i < res.data.length; i++) {
  528. this.tcqllxDictionaries.push({text: res.data[i].dictLabel, value: res.data[i].dictValue});
  529. }
  530. this.tcqllx = this.selectDictLabel(res.data, response.data.tcqllx);
  531. });
  532. //退出方式
  533. this.houseGetDicts("tcfs").then((res) => {
  534. for (var i = 0; i < res.data.length; i++) {
  535. this.tcfsDictionaries.push({text: res.data[i].dictLabel, value: res.data[i].dictValue});
  536. }
  537. this.tcfs = this.selectDictLabel(res.data, response.data.tcfs);
  538. });
  539. //审核状态
  540. this.houseGetDicts("audit_status").then((res) => {
  541. this.circulation.auditStatus = this.selectDictLabel(res.data, response.data.auditStatus);
  542. });
  543. });
  544. },
  545. parseIDCard(idcard) {
  546. if(!idcard)
  547. return false;
  548. if(idcard.length !== 18)
  549. return false;
  550. if(!/^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/.test(idcard))
  551. return false;
  552. let sex = (parseInt(idcard.substr(16, 1)) % 2) ^ 1;
  553. let now = new Date().getFullYear();
  554. let y = parseInt(idcard.substr(6, 4));
  555. let age = Math.max(now - y, 0);
  556. return [sex, age];
  557. },
  558. updateMemberInfo(index) {
  559. let res = this.parseIDCard(this.circulation.jtcyqkList[index].sfzh);
  560. if(res)
  561. {
  562. this.$set(this.circulation.jtcyqkList[index], 'nl', res[1]);
  563. }
  564. },
  565. updateMemberInfoGy(index) {
  566. let res = this.parseIDCard(this.circulation.gyrqkList[index].sfzh);
  567. if(res)
  568. {
  569. this.$set(this.circulation.gyrqkList[index], 'nl', res[1]);
  570. }
  571. },
  572. remoteProposerMethod() {
  573. this.showzjddm = true;
  574. this.zjdDictionaries = [];
  575. if (this.circulation.sqrxm) {
  576. getShyqrs({shyqrdbxm:this.circulation.sqrxm}).then(response => {
  577. this.zjdDictionaries = response.data.map(item => {
  578. return {
  579. zjddm: item.zjddm,
  580. shyqrdbxm: item.shyqrdbxm,
  581. shyqrdbzjlx: item.shyqrdbzjlx,
  582. shyqrdbzjhm: item.shyqrdbzjhm
  583. }
  584. });
  585. });
  586. } else {
  587. this.zjdDictionaries = [];
  588. }
  589. },
  590. /** 模糊查询人员信息 */
  591. remoteTransfereeMethod(query) {
  592. if (query !== "") {
  593. getShyqrs({shyqrdbxm:query,status:1}).then((response) => {
  594. if (response.code == 200) {
  595. this.getObligeeOptions = response.rows.map(function (item) {
  596. return {
  597. sqrxm:item.shyqrdbxm,
  598. sqrxb:item.xb,
  599. sqrzjhm:item.shyqrdbzjhm,
  600. sqrzjlx:item.shyqrdbzjlx,
  601. sqrdh:item.dh,
  602. gyfs:item.gyfs,
  603. dz:item.dz,
  604. deptId:item.deptId,
  605. deptName:item.deptName,
  606. }
  607. })
  608. //设置模糊查询的下拉框和滚动条
  609. if (this.getObligeeOptions.length > 0) {
  610. this.showDropList = true; // div显示会阻挡下边的选择框和输入框,showDropList控制下拉框是否显示
  611. //设置模糊查询的和滚动条
  612. this.$nextTick(() => {
  613. if (this.getObligeeOptions.length > 4) {
  614. let height = document.getElementById("vanCell").offsetHeight * 4;
  615. document.getElementById("dropList").style.height = height + "px";
  616. document.getElementById("dropList").style.overflow = "scroll";
  617. } else {
  618. document.getElementById("dropList").style.height = "";
  619. document.getElementById("dropList").style.overflow = "visible";
  620. }
  621. });
  622. } else {
  623. this.showDropList = false;
  624. }
  625. }
  626. });
  627. } else {
  628. this.getObligeeOptions = [];
  629. this.showDropList = false;
  630. }
  631. },
  632. shyqrdmxmChange(val){
  633. console.info(val);
  634. this.$set(this.circulation, "sqrxm", val.sqrxm);
  635. this.$set(this.circulation, "deptId", val.deptId);
  636. this.$set(this.circulation, "deptName", val.deptId);
  637. this.$set(this.circulation, "sqrzjhm", val.sqrzjhm);
  638. this.$set(this.circulation, "sqrzjlx", val.sqrzjlx);
  639. this.$set(this.circulation, "gyqk", val.gyfs);
  640. this.$set(this.circulation, "xb", val.sqrxb);
  641. this.$set(this.circulation, "lxdh", val.sqrdh);
  642. this.$set(this.circulation, "hkszd", val.dz);
  643. this.getObligeeOptions=[];
  644. this.showDropList = false;
  645. },
  646. /** 查找地图中宅基地 */
  647. closeMoule: function (data) {
  648. this.circulation.zjddm = data;
  649. let _this = this;
  650. let handlerTime = this.getDate();
  651. this.$set(this.circulation, "sqrq", handlerTime);
  652. this.$set(this.circulation, "pzrq", handlerTime);
  653. this.$set(this.circulation, "barq", handlerTime);
  654. getByLyZjddm(data).then((response) => {
  655. this.$set(this.circulation, "ntcmj", response.data.zdmj);
  656. this.$set(this.circulation, "tcmj", response.data.zdmj);
  657. this.$set(this.circulation, "zjdszd", response.data.zdszd);
  658. this.$set(this.circulation, "zjdszn", response.data.zdszn);
  659. this.$set(this.circulation, "zjdszx", response.data.zdszx);
  660. this.$set(this.circulation, "zjdszb", response.data.zdszb);
  661. this.$set(this.circulation, "theGeomJson", response.data.theGeomJson);
  662. this.$set(this.circulation, "tcqszsh", response.data.zsh);
  663. listHomesteadnmfw({zjddm: data}).then((response) => {
  664. response.rows.map(function(item){
  665. _this.$set(_this.circulation, "jzmj", Number(_this.circulation.jzmj) + Number(item.jzmj));
  666. _this.$set(_this.circulation, "xjzmj", Number(_this.circulation.xjzmj) + Number(item.jzmj));
  667. });
  668. });
  669. // const baseImgUrl = this.$store.getters.baseRoutingUrl;
  670. if(response.rows[0].zdt != null && response.rows[0].zdt !== ""){
  671. this.$set(this.form, "xzzp", response.rows[0].zdt);
  672. }
  673. });
  674. },
  675. mapLook(){
  676. this.mapShow = true;
  677. setTimeout(() => {
  678. this.$refs.zjdProductResh.drawingLyPaceCountryDarw();
  679. },1000);
  680. },
  681. // 打开附件树
  682. openAttachment() {
  683. this.attachmentVisible = true;
  684. if(this.attachmentActive == this.active)
  685. this.$nextTick(() => {
  686. this.$refs.attachmentDialog.scrollTo(this.active);
  687. });
  688. },
  689. complete(pass) {
  690. if(this.circulation.auditStatus === "1" || this.circulation.auditStatus === "2"){
  691. this.approval.comment = this.circulation.cjzzscyj;
  692. }else{
  693. this.approval.comment = this.circulation.xzzfshpzyj;
  694. }
  695. if(!this.approval.taskId || !this.approval.instanceId || this.approval.type !== 'todo')
  696. {
  697. console.error("无效操作");
  698. return false;
  699. }
  700. if(!this.approval.comment)
  701. {
  702. this.notify("请填写审批意见", 'danger');
  703. return false;
  704. }
  705. /*let data = {
  706. taskId: this.approval.taskId,
  707. instanceId: this.approval.instanceId,
  708. variables: JSON.stringify({
  709. pass: pass ? "true" : "false",
  710. comment: this.approval.comment ? this.approval.comment : (pass ? '同意' : '驳回'),
  711. }),
  712. };
  713. request({
  714. url: "/activiti/process/complete",
  715. method: "post",
  716. params: data,
  717. }).then((response) => {
  718. this.notify("操作成功", 'success');
  719. this.$router.back();
  720. }).catch(e => {
  721. this.notify("操作失败!", 'danger');
  722. });*/
  723. if (pass) {
  724. let data = {
  725. taskId: this.approval.taskId,
  726. instanceId: this.approval.instanceId,
  727. variables: JSON.stringify({
  728. pass: "true",
  729. comment: this.approval.comment ? this.approval.comment : "同意",
  730. }),
  731. };
  732. zyyctcEdit(this.circulation).then(response => {
  733. request({
  734. url: "/activiti/process/complete",
  735. method: "post",
  736. params: data,
  737. }).then((response) => {
  738. this.notify("操作成功", 'success');
  739. this.$router.back();
  740. }).catch(e => {
  741. this.notify("操作失败!", 'danger');
  742. });
  743. });
  744. } else {
  745. let _this = this;
  746. _this.$dialog.confirm({
  747. message: '是否确认驳回此条申请',
  748. }).then(() => {
  749. let data = {
  750. taskId: _this.approval.taskId,
  751. instanceId: _this.approval.instanceId,
  752. variables: JSON.stringify({
  753. pass: "false",
  754. comment: _this.approval.comment ? _this.approval.comment : "驳回",
  755. }),
  756. };
  757. zyyctcEdit(this.circulation).then(response => {
  758. request({
  759. url: "/activiti/process/complete",
  760. method: "post",
  761. params: data,
  762. }).then((response) => {
  763. _this.notify("操作成功", 'success');
  764. _this.$router.back();
  765. }).catch(e => {
  766. _this.notify("操作失败!", 'danger');
  767. });
  768. });
  769. });
  770. }
  771. return true;
  772. },
  773. notify(message, type) {
  774. Notify.clear();
  775. Notify({ type: type || 'primary', message: message });
  776. },
  777. },
  778. }
  779. </script>
  780. <style scoped lang="scss">
  781. .app-container {
  782. padding-bottom: 2%;
  783. .header_main{
  784. height: 116px;
  785. background: url('../../../assets/images/sunVillage_info/list_head_green.png') no-repeat;
  786. background-size: 100% 100%;
  787. position: fixed;
  788. top: 0;
  789. left: 0;
  790. width: 100%;
  791. font-size: 36px;
  792. line-height: 116px;
  793. text-align: center;
  794. color: #fff;
  795. position: relative;
  796. margin-bottom: 2%;
  797. .return_btn{
  798. width: 24px;
  799. height: 43.2px;
  800. background: url('../../../assets/images/sunVillage_info/list_icon_5.png') center center no-repeat;
  801. background-size: 20px 36px;
  802. position: absolute;
  803. left: 38px;
  804. top: 36px;
  805. }
  806. .add_btn{
  807. width: 56.4px;
  808. height: 40.8px;
  809. background: url('../../../assets/images/sunVillage_info/list_icon_9.png') center center no-repeat;
  810. background-size: 47px 34px;
  811. position: absolute;
  812. right: 38px;
  813. top: 36px;
  814. }
  815. }
  816. }
  817. .main_title{
  818. font-size: 0.4rem;
  819. color: #1D6FE9;
  820. margin: 0.2rem 6%;
  821. position: relative;
  822. }
  823. .main_box{
  824. width: 96%;
  825. margin: 0 auto;
  826. border-radius: 6px;
  827. box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16);
  828. overflow: hidden;
  829. background-color: #FFF;
  830. }
  831. .submitButton{
  832. width: 80%;
  833. margin: 0 auto;
  834. background-color: #1D6FE9;
  835. }
  836. .clear{
  837. height: 80px;
  838. }
  839. .examine_box{
  840. background-color: #1D6FE9!important;
  841. padding: 0.18rem!important;
  842. padding-left: 0!important;
  843. border-radius: 0.15rem!important;
  844. margin-top: 0.3rem!important;
  845. .van-col:first-child{
  846. color: #FFF!important;
  847. font-size: 0.45rem!important;
  848. text-align: center!important;
  849. }
  850. .van-col:last-child{
  851. background-color: #FFF!important;
  852. border-radius: 0.15rem!important;
  853. overflow: hidden!important;
  854. .van-radio-group--horizontal{
  855. padding: 0.2rem 0;
  856. border-bottom: 1px solid #eee;
  857. }
  858. }
  859. }
  860. </style>