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

преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870
  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="/open/zdzh/list/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="/open/zdzh/list/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="/open/zdzh/list/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="/open/zdzh/list/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="/open/zdzh/list/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="/open/zdzh/list/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.bcfs"
  244. label="补偿方式"
  245. value-key="dictLabel"
  246. data-key="dictValue"
  247. placeholder="选择退出类型"
  248. remote-url="/open/zdzh/list/bcfs"
  249. :on-remote-response="'data'"
  250. />
  251. <field-date-picker
  252. readonly
  253. v-model="circulation.bcsj"
  254. label="补偿时间"
  255. placeholder="选择日期"
  256. formatter="yyyy-MM-dd"
  257. />
  258. <p class="main_title">其他</p>
  259. <van-field readonly v-model="circulation.sqly" label="申请理由" placeholder="请输入申请理由" input-align="right" label-width="auto"/>
  260. <field-date-picker
  261. readonly
  262. v-model="circulation.sqrq"
  263. label="申请日期"
  264. placeholder="选择日期"
  265. :rules="[{ required: true }]"
  266. formatter="yyyy-MM-dd"
  267. required
  268. />
  269. <van-field readonly v-model="circulation.jbrxm" label="经办人姓名" placeholder="请输入经办人姓名" input-align="right" label-width="auto"/>
  270. <field-date-picker
  271. readonly
  272. v-model="circulation.pzrq"
  273. label="批准日期"
  274. placeholder="选择日期"
  275. :rules="[{ required: true }]"
  276. formatter="yyyy-MM-dd"
  277. required
  278. />
  279. <field-date-picker
  280. v-model="circulation.barq"
  281. label="备案日期"
  282. placeholder="选择日期"
  283. :rules="[{ required: true }]"
  284. formatter="yyyy-MM-dd"
  285. required
  286. />
  287. <van-dialog v-model="mapShow" show-cancel-button>
  288. <MapGisObtainTc ref="zjdProductResh" :shqrxm="circulation.sqrxm" :landStatus="landStatus" :deptId="circulation.deptId" @closeMoule="closeMoule"></MapGisObtainTc>
  289. </van-dialog>
  290. <!-- 3组附件 -->
  291. <van-popup
  292. v-model="attachmentVisible"
  293. closeable
  294. position="top"
  295. :style="{ height: '61.8%' }"
  296. :close-on-click-overlay="proposerStatus == 1"
  297. :lazy-render="false"
  298. >
  299. <van-tabs type="card" style="padding-top: 1.35rem;" color="#1D6FE9" :lazy-render="false" v-model="attachmentActive" ref="attachmentDialog">
  300. <van-tab title="退出附件" key="0">
  301. <home-apply-upload-comp
  302. :business-type="houseApplyUploadComp.businessType"
  303. :house-apply-status="houseApplyUploadComp.homeApplyStatus"
  304. :process-key="houseApplyUploadComp.processKey"
  305. :proposer-id="houseApplyUploadComp.proposerId"
  306. :table-name="houseApplyUploadComp.tableName"
  307. :readonly="houseApplyUploadComp.readonly"
  308. :userName="houseApplyUploadComp.createBy"
  309. :full="houseApplyUploadComp.full"
  310. >
  311. </home-apply-upload-comp>
  312. </van-tab>
  313. </van-tabs>
  314. </van-popup>
  315. <!-- 审批 -->
  316. <div class="main_box examine_box" v-if="showCjt">
  317. <van-row type="flex" justify="space-between" align="center">
  318. <van-col span="5">村集体<br/>经济组<br/>织或村<br/>民委员<br/>会意见</van-col>
  319. <van-col span="19">
  320. <van-field required :readonly="approval.type !== 'todo' || !cjtspOperation" v-model="circulation.cjzzscyj" rows="2" autosize type="textarea" placeholder="审核意见"/>
  321. <van-cell title="负责人:" :rules="[{ required: true }]">
  322. <van-image
  323. v-if="circulation.cjzzscr !='' && circulation.cjzzscr !=null && circulation.cjzzscr.endsWith('png')"
  324. width="100"
  325. height="50"
  326. :src="$store.getters.baseRoutingUrl+circulation.cjzzscr"
  327. ></van-image>
  328. <div v-if="circulation.cjzzscr !='' && circulation.cjzzscr !=null && !circulation.cjzzscr.endsWith('png')">{{circulation.cjzzscr}}</div>
  329. </van-cell>
  330. <field-date-picker
  331. v-model="circulation.cjzzscsj"
  332. label="审批日期"
  333. placeholder="选择日期"
  334. :readonly="approval.type !== 'todo' || !cjtspOperation"
  335. :rules="[{ required: true }]"
  336. formatter="yyyy-MM-dd"
  337. required
  338. />
  339. </van-col>
  340. </van-row>
  341. </div>
  342. <div class="main_box examine_box" v-if="showZjsp">
  343. <van-row type="flex" justify="space-between" align="center">
  344. <van-col span="5">镇级人<br/>民镇府<br/>意见</van-col>
  345. <van-col span="19">
  346. <van-field required :readonly="approval.type !== 'todo'" v-model="circulation.xzzfshpzyj" rows="2" autosize type="textarea" placeholder="审核意见"/>
  347. <van-cell title="负责人:" :rules="[{ required: true }]">
  348. <van-image
  349. v-if="circulation.xzzfshpzrxm !='' && circulation.xzzfshpzrxm !=null && circulation.xzzfshpzrxm.endsWith('png')"
  350. width="100"
  351. height="50"
  352. :src="$store.getters.baseRoutingUrl+circulation.xzzfshpzrxm"
  353. ></van-image>
  354. <div v-if="circulation.xzzfshpzrxm !='' && circulation.xzzfshpzrxm !=null && !circulation.xzzfshpzrxm.endsWith('png')">{{circulation.xzzfshpzrxm}}</div>
  355. </van-cell>
  356. <field-date-picker
  357. v-model="circulation.xzzfshpzsj"
  358. label="审批日期"
  359. placeholder="选择日期"
  360. :rules="[{ required: true }]"
  361. :readonly="approval.type !== 'todo'"
  362. formatter="yyyy-MM-dd"
  363. required
  364. />
  365. </van-col>
  366. </van-row>
  367. </div>
  368. <div class="clear"></div>
  369. <van-goods-action style="z-index: 999;">
  370. <van-goods-action-icon icon="label-o" text="附件" @click="openAttachment" color="#1D6FE9" />
  371. <van-goods-action-button type="info" text="同意" v-if="approval.type == 'todo'" @click="complete(true)" />
  372. <van-goods-action-button type="danger" text="驳回" v-if="approval.type == 'todo'" @click="complete(false)"/>
  373. </van-goods-action>
  374. </div>
  375. </template>
  376. <script>
  377. import { getZyyctc,getShyqrs,zyyctcEdit,zyyctcApply,getByLyZjddm,listHomesteadnmfw} from "@/api/sunVillage_info/homestead/paidExit";
  378. import HomeApplyUploadComp from "@/components/home/HomeApplyUploadCompTc";
  379. import FieldSelect from "@/components/form/FieldSelect";
  380. import FieldDatePicker from "@/components/form/FieldDatePicker";
  381. import {formatDate} from "element-ui/src/utils/date-util.js";
  382. import { } from "@/api/onlineHome/homestead/paidExit";
  383. import {Notify} from "vant";
  384. import MapGisObtainTc from "@/components/Map/MapGisObtainTc";
  385. import request from '@/utils/request';
  386. const PROPOSER_VIEW = 1;
  387. // 工作流名称
  388. const PROPOSER_STAGE_BASE_APPLY_ACTIVITY = 'home_usetc';
  389. // 附件表名
  390. const PROPOSER_STAGE_BASE_APPLY_TABLE = 't_homeuse_zyyctc';
  391. // 其他
  392. const PROPOSER_MODULE = 'home';
  393. export default {
  394. name: "paidExitDetail",
  395. components: { MapGisObtainTc,FieldSelect,FieldDatePicker,HomeApplyUploadComp },
  396. data() {
  397. return {
  398. tcqllxDictionaries:[],//退出权利类型
  399. tclxDictionaries:[],//退出类型
  400. tcfsDictionaries:[],//退出方式
  401. xbDictionaries:[],//申请人证件类型
  402. zjlxDictionaries:[],
  403. bcfsDictionaries:[],//补偿方式
  404. zjdDictionaries:[],//宅基地代码
  405. getObligeeOptions:[],//下拉框列表
  406. tcqllx:'',
  407. tclx:'',
  408. tcfs:'',
  409. xb:'',
  410. bcfs:'',
  411. zjddm:'',
  412. landStatus:"1",
  413. nickName:this.$route.query.nickName,
  414. electronicSignature:this.$route.query.electronicSignature,
  415. showtcqllx: false,
  416. showtclx: false,
  417. showtcfs: false,
  418. showxb: false,
  419. showbcfs: false,
  420. showzjddm: false,
  421. showZjsp: false,
  422. showCjt:false,
  423. cjtspOperation:false,
  424. showDropList: false,//是否显示下拉框
  425. mapShow: false,
  426. attachmentVisible:false,
  427. // 家庭成员tab
  428. familyMembersActive: 0,
  429. active: 0,
  430. // 表单意图
  431. proposerStatus: PROPOSER_VIEW,
  432. circulation:{},
  433. // 当前附件tab
  434. attachmentActive: 0,
  435. // 申请附件树
  436. houseApplyUploadComp: {
  437. businessType: PROPOSER_MODULE,
  438. proposerId: this.$route.query.id,
  439. homeApplyStatus: "11",
  440. processKey: PROPOSER_STAGE_BASE_APPLY_ACTIVITY,
  441. tableName: PROPOSER_STAGE_BASE_APPLY_TABLE,
  442. attachmentList: [],
  443. readonly: true,
  444. full: false,
  445. },
  446. approval: {
  447. taskId: null,
  448. instanceId: null,
  449. type: null,
  450. id: null,
  451. comment: '',
  452. },
  453. };
  454. },
  455. created() {
  456. this.approval.id = this.$route.query.id;
  457. this.approval.instanceId = this.$route.query.instanceId;
  458. this.approval.type = this.$route.query.type;
  459. this.approval.taskId = this.$route.query.taskId;
  460. this.getDetail();
  461. },
  462. methods: {
  463. // 获取日期, yyyy-MM-dd
  464. getDate(d) {
  465. return formatDate(d ? d : new Date(), 'yyyy-MM-dd');
  466. },
  467. getDetail(){
  468. getZyyctc(this.$route.query.id).then(response => {
  469. this.circulation = response.data;
  470. if(this.circulation.jtcyqkList != null){
  471. for(let i = 0; i < this.circulation.jtcyqkList.length; i++)
  472. {
  473. this.updateMemberInfo(i);
  474. }
  475. }
  476. if(this.circulation.gyrqkList != null){
  477. for(let i = 0; i < this.circulation.gyrqkList.length; i++)
  478. {
  479. this.updateMemberInfoGy(i);
  480. }
  481. }
  482. if(this.approval.type === "todo"){
  483. if(response.data.auditStatus === "1" || response.data.auditStatus === "2"){
  484. if(this.electronicSignature != null){
  485. this.$set(this.circulation, "cjzzscr", this.electronicSignature);
  486. }else{
  487. this.$set(this.circulation, "cjzzscr", this.nickName);
  488. }
  489. let handlerTime = this.getDate();
  490. this.$set(this.circulation, "cjzzscsj", handlerTime);
  491. this.cjtspOperation = true;
  492. this.showCjt = true;
  493. }else if(response.data.auditStatus === "3"){
  494. this.showZjsp = true;
  495. this.showCjt = true;
  496. if(this.electronicSignature != null){
  497. this.zzfdzqmShow = true;
  498. this.$set(this.circulation, "xzzfshpzrxm", this.electronicSignature);
  499. }else{
  500. this.$set(this.circulation, "xzzfshpzrxm", this.nickName);
  501. }
  502. let handlerTime = this.getDate();
  503. this.$set(this.circulation, "xzzfshpzsj", handlerTime);
  504. }
  505. }else{
  506. if(response.data.auditStatus === "4" ){
  507. this.showCjt = true;
  508. this.showZjsp = true;
  509. }else if(response.data.auditStatus === "0" || response.data.auditStatus === "1"){
  510. this.showCjt = false;
  511. }else{
  512. this.showCjt = true;
  513. }
  514. }
  515. //退出权利类型
  516. this.houseGetDicts("tcqllx").then((res) => {
  517. for (var i = 0; i < res.data.length; i++) {
  518. this.tcqllxDictionaries.push({text: res.data[i].dictLabel, value: res.data[i].dictValue});
  519. }
  520. this.tcqllx = this.selectDictLabel(res.data, response.data.tcqllx);
  521. });
  522. //退出方式
  523. this.houseGetDicts("tcfs").then((res) => {
  524. for (var i = 0; i < res.data.length; i++) {
  525. this.tcfsDictionaries.push({text: res.data[i].dictLabel, value: res.data[i].dictValue});
  526. }
  527. this.tcfs = this.selectDictLabel(res.data, response.data.tcfs);
  528. });
  529. //审核状态
  530. this.houseGetDicts("audit_status").then((res) => {
  531. this.circulation.auditStatus = this.selectDictLabel(res.data, response.data.auditStatus);
  532. });
  533. });
  534. },
  535. parseIDCard(idcard) {
  536. if(!idcard)
  537. return false;
  538. if(idcard.length !== 18)
  539. return false;
  540. 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))
  541. return false;
  542. let sex = (parseInt(idcard.substr(16, 1)) % 2) ^ 1;
  543. let now = new Date().getFullYear();
  544. let y = parseInt(idcard.substr(6, 4));
  545. let age = Math.max(now - y, 0);
  546. return [sex, age];
  547. },
  548. updateMemberInfo(index) {
  549. let res = this.parseIDCard(this.circulation.jtcyqkList[index].sfzh);
  550. if(res)
  551. {
  552. this.$set(this.circulation.jtcyqkList[index], 'nl', res[1]);
  553. }
  554. },
  555. updateMemberInfoGy(index) {
  556. let res = this.parseIDCard(this.circulation.gyrqkList[index].sfzh);
  557. if(res)
  558. {
  559. this.$set(this.circulation.gyrqkList[index], 'nl', res[1]);
  560. }
  561. },
  562. remoteProposerMethod() {
  563. this.showzjddm = true;
  564. this.zjdDictionaries = [];
  565. if (this.circulation.sqrxm) {
  566. getShyqrs({shyqrdbxm:this.circulation.sqrxm}).then(response => {
  567. this.zjdDictionaries = response.data.map(item => {
  568. return {
  569. zjddm: item.zjddm,
  570. shyqrdbxm: item.shyqrdbxm,
  571. shyqrdbzjlx: item.shyqrdbzjlx,
  572. shyqrdbzjhm: item.shyqrdbzjhm
  573. }
  574. });
  575. });
  576. } else {
  577. this.zjdDictionaries = [];
  578. }
  579. },
  580. /** 模糊查询人员信息 */
  581. remoteTransfereeMethod(query) {
  582. if (query !== "") {
  583. getShyqrs({shyqrdbxm:query,status:1}).then((response) => {
  584. if (response.code == 200) {
  585. this.getObligeeOptions = response.rows.map(function (item) {
  586. return {
  587. sqrxm:item.shyqrdbxm,
  588. sqrxb:item.xb,
  589. sqrzjhm:item.shyqrdbzjhm,
  590. sqrzjlx:item.shyqrdbzjlx,
  591. sqrdh:item.dh,
  592. gyfs:item.gyfs,
  593. dz:item.dz,
  594. deptId:item.deptId,
  595. deptName:item.deptName,
  596. }
  597. })
  598. //设置模糊查询的下拉框和滚动条
  599. if (this.getObligeeOptions.length > 0) {
  600. this.showDropList = true; // div显示会阻挡下边的选择框和输入框,showDropList控制下拉框是否显示
  601. //设置模糊查询的和滚动条
  602. this.$nextTick(() => {
  603. if (this.getObligeeOptions.length > 4) {
  604. let height = document.getElementById("vanCell").offsetHeight * 4;
  605. document.getElementById("dropList").style.height = height + "px";
  606. document.getElementById("dropList").style.overflow = "scroll";
  607. } else {
  608. document.getElementById("dropList").style.height = "";
  609. document.getElementById("dropList").style.overflow = "visible";
  610. }
  611. });
  612. } else {
  613. this.showDropList = false;
  614. }
  615. }
  616. });
  617. } else {
  618. this.getObligeeOptions = [];
  619. this.showDropList = false;
  620. }
  621. },
  622. shyqrdmxmChange(val){
  623. console.info(val);
  624. this.$set(this.circulation, "sqrxm", val.sqrxm);
  625. this.$set(this.circulation, "deptId", val.deptId);
  626. this.$set(this.circulation, "deptName", val.deptId);
  627. this.$set(this.circulation, "sqrzjhm", val.sqrzjhm);
  628. this.$set(this.circulation, "sqrzjlx", val.sqrzjlx);
  629. this.$set(this.circulation, "gyqk", val.gyfs);
  630. this.$set(this.circulation, "xb", val.sqrxb);
  631. this.$set(this.circulation, "lxdh", val.sqrdh);
  632. this.$set(this.circulation, "hkszd", val.dz);
  633. this.getObligeeOptions=[];
  634. this.showDropList = false;
  635. },
  636. /** 查找地图中宅基地 */
  637. closeMoule: function (data) {
  638. this.circulation.zjddm = data;
  639. let _this = this;
  640. let handlerTime = this.getDate();
  641. this.$set(this.circulation, "sqrq", handlerTime);
  642. this.$set(this.circulation, "pzrq", handlerTime);
  643. this.$set(this.circulation, "barq", handlerTime);
  644. getByLyZjddm(data).then((response) => {
  645. this.$set(this.circulation, "ntcmj", response.data.zdmj);
  646. this.$set(this.circulation, "tcmj", response.data.zdmj);
  647. this.$set(this.circulation, "zjdszd", response.data.zdszd);
  648. this.$set(this.circulation, "zjdszn", response.data.zdszn);
  649. this.$set(this.circulation, "zjdszx", response.data.zdszx);
  650. this.$set(this.circulation, "zjdszb", response.data.zdszb);
  651. this.$set(this.circulation, "theGeomJson", response.data.theGeomJson);
  652. this.$set(this.circulation, "tcqszsh", response.data.zsh);
  653. listHomesteadnmfw({zjddm: data}).then((response) => {
  654. response.rows.map(function(item){
  655. _this.$set(_this.circulation, "jzmj", Number(_this.circulation.jzmj) + Number(item.jzmj));
  656. _this.$set(_this.circulation, "xjzmj", Number(_this.circulation.xjzmj) + Number(item.jzmj));
  657. });
  658. });
  659. // const baseImgUrl = this.$store.getters.baseRoutingUrl;
  660. if(response.rows[0].zdt != null && response.rows[0].zdt !== ""){
  661. this.$set(this.form, "xzzp", response.rows[0].zdt);
  662. }
  663. });
  664. },
  665. mapLook(){
  666. this.mapShow = true;
  667. setTimeout(() => {
  668. this.$refs.zjdProductResh.drawingLyPaceCountryDarw();
  669. },1000);
  670. },
  671. // 打开附件树
  672. openAttachment() {
  673. this.attachmentVisible = true;
  674. if(this.attachmentActive == this.active)
  675. this.$nextTick(() => {
  676. this.$refs.attachmentDialog.scrollTo(this.active);
  677. });
  678. },
  679. complete(pass) {
  680. if(this.circulation.auditStatus === "1" || this.circulation.auditStatus === "2"){
  681. this.approval.comment = this.circulation.cjzzscyj;
  682. }else{
  683. this.approval.comment = this.circulation.xzzfshpzyj;
  684. }
  685. if(!this.approval.taskId || !this.approval.instanceId || this.approval.type !== 'todo')
  686. {
  687. console.error("无效操作");
  688. return false;
  689. }
  690. if(!this.approval.comment)
  691. {
  692. this.notify("请填写审批意见", 'danger');
  693. return false;
  694. }
  695. /*let data = {
  696. taskId: this.approval.taskId,
  697. instanceId: this.approval.instanceId,
  698. variables: JSON.stringify({
  699. pass: pass ? "true" : "false",
  700. comment: this.approval.comment ? this.approval.comment : (pass ? '同意' : '驳回'),
  701. }),
  702. };
  703. request({
  704. url: "/activiti/process/complete",
  705. method: "post",
  706. params: data,
  707. }).then((response) => {
  708. this.notify("操作成功", 'success');
  709. this.$router.back();
  710. }).catch(e => {
  711. this.notify("操作失败!", 'danger');
  712. });*/
  713. if (pass) {
  714. let data = {
  715. taskId: this.approval.taskId,
  716. instanceId: this.approval.instanceId,
  717. variables: JSON.stringify({
  718. pass: "true",
  719. comment: this.approval.comment ? this.approval.comment : "同意",
  720. }),
  721. };
  722. zyyctcEdit(this.circulation).then(response => {
  723. request({
  724. url: "/activiti/process/complete",
  725. method: "post",
  726. params: data,
  727. }).then((response) => {
  728. this.notify("操作成功", 'success');
  729. this.$router.back();
  730. }).catch(e => {
  731. this.notify("操作失败!", 'danger');
  732. });
  733. });
  734. } else {
  735. let _this = this;
  736. _this.$dialog.confirm({
  737. message: '是否确认驳回此条申请',
  738. }).then(() => {
  739. let data = {
  740. taskId: _this.approval.taskId,
  741. instanceId: _this.approval.instanceId,
  742. variables: JSON.stringify({
  743. pass: "false",
  744. comment: _this.approval.comment ? _this.approval.comment : "驳回",
  745. }),
  746. };
  747. zyyctcEdit(this.circulation).then(response => {
  748. request({
  749. url: "/activiti/process/complete",
  750. method: "post",
  751. params: data,
  752. }).then((response) => {
  753. _this.notify("操作成功", 'success');
  754. _this.$router.back();
  755. }).catch(e => {
  756. _this.notify("操作失败!", 'danger');
  757. });
  758. });
  759. });
  760. }
  761. return true;
  762. },
  763. notify(message, type) {
  764. Notify.clear();
  765. Notify({ type: type || 'primary', message: message });
  766. },
  767. },
  768. }
  769. </script>
  770. <style scoped lang="scss">
  771. .app-container {
  772. padding-bottom: 2%;
  773. .header_main{
  774. height: 116px;
  775. background: url('../../../../assets/images/sunVillage_info/list_head_green.png') no-repeat;
  776. background-size: 100% 100%;
  777. position: fixed;
  778. top: 0;
  779. left: 0;
  780. width: 100%;
  781. font-size: 36px;
  782. line-height: 116px;
  783. text-align: center;
  784. color: #fff;
  785. position: relative;
  786. margin-bottom: 2%;
  787. .return_btn{
  788. width: 24px;
  789. height: 43.2px;
  790. background: url('../../../../assets/images/sunVillage_info/list_icon_5.png') center center no-repeat;
  791. background-size: 20px 36px;
  792. position: absolute;
  793. left: 38px;
  794. top: 36px;
  795. }
  796. .add_btn{
  797. width: 56.4px;
  798. height: 40.8px;
  799. background: url('../../../../assets/images/sunVillage_info/list_icon_9.png') center center no-repeat;
  800. background-size: 47px 34px;
  801. position: absolute;
  802. right: 38px;
  803. top: 36px;
  804. }
  805. }
  806. }
  807. .main_title{
  808. font-size: 0.4rem;
  809. color: #1D6FE9;
  810. margin: 0.2rem 6%;
  811. position: relative;
  812. }
  813. .main_box{
  814. width: 96%;
  815. margin: 0 auto;
  816. border-radius: 6px;
  817. box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16);
  818. overflow: hidden;
  819. background-color: #FFF;
  820. }
  821. .submitButton{
  822. width: 80%;
  823. margin: 0 auto;
  824. background-color: #1D6FE9;
  825. }
  826. .clear{
  827. height: 80px;
  828. }
  829. .examine_box{
  830. background-color: #1D6FE9!important;
  831. padding: 0.18rem!important;
  832. padding-left: 0!important;
  833. border-radius: 0.15rem!important;
  834. margin-top: 0.3rem!important;
  835. .van-col:first-child{
  836. color: #FFF!important;
  837. font-size: 0.45rem!important;
  838. text-align: center!important;
  839. }
  840. .van-col:last-child{
  841. background-color: #FFF!important;
  842. border-radius: 0.15rem!important;
  843. overflow: hidden!important;
  844. .van-radio-group--horizontal{
  845. padding: 0.2rem 0;
  846. border-bottom: 1px solid #eee;
  847. }
  848. }
  849. }
  850. </style>