addpeople.vue 54 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992
  1. <template>
  2. <view class="vac-form">
  3. <!-- 展示内容 -->
  4. <view v-if="edidflag" class="boxa">
  5. <uni-forms :modelValue="formData" label-width="110" class="boxflex1">
  6. <!-- 基本信息 -->
  7. <uni-group title="基本信息" top="0">
  8. <uni-forms-item required label="身份证号">
  9. <view class="form_zhan" :class="formData.idCard?'':'nodata'">{{formData.idCard||'暂无信息'}}</view>
  10. </uni-forms-item>
  11. <uni-forms-item required label="姓名">
  12. <view class="form_zhan" :class="formData.userName?'':'nodata'">{{formData.userName||'暂无信息'}}
  13. </view>
  14. </uni-forms-item>
  15. <uni-forms-item label="年龄">
  16. <view class="form_zhan" :class="formData.age?'':'nodata'">{{formData.age||'暂无信息'}}</view>
  17. </uni-forms-item>
  18. <uni-forms-item label="性别">
  19. <view class="form_zhan" :class="formData.gender?'':'nodata'">{{formData.gender||'暂无信息'}}</view>
  20. </uni-forms-item>
  21. <uni-forms-item label="联系号码">
  22. <view class="form_zhan" :class="formData.phoneNum?'':'nodata'">{{formData.phoneNum||'暂无信息'}}
  23. </view>
  24. </uni-forms-item>
  25. <uni-forms-item label="人员分类">
  26. <view class="form_zhan" :class="keyIndustries?'':'nodata'">{{keyIndustries||'暂无信息'}}</view>
  27. </uni-forms-item>
  28. <!-- 人员类别 -->
  29. <uni-forms-item label="人员类别">
  30. <view class="keycatebox">
  31. <uni-data-checkbox multiple v-model="keyvalue" :localdata="keycategory" >
  32. </uni-data-checkbox>
  33. <view class="keycatebg"></view>
  34. </view>
  35. </uni-forms-item>
  36. </uni-group>
  37. <view>
  38. <view class="addtit">户籍信息</view>
  39. <view class="npd15">
  40. <uni-forms-item required label="户籍地址">
  41. <view class="form_zhan" :class="birAddress?'':'nodata'">{{birAddress||'暂无信息'}}</view>
  42. </uni-forms-item>
  43. <uni-forms-item label="详细地址" label-position="top">
  44. <view class="form_zhan form_right" :class="formData.nowIn?'':'nodata'">
  45. {{formData.nowIn||'暂无信息'}}
  46. </view>
  47. </uni-forms-item>
  48. </view>
  49. <!-- 居住地 -->
  50. <view>
  51. <!-- 新增的 -->
  52. <!-- 多个现居地 -->
  53. <view v-for="(item,idx) in placeList" :key="idx">
  54. <view class="npd15">
  55. <!-- 多个现居地 -->
  56. <uni-forms-item required label="现居地">
  57. <view class="form_zhan" v-if="item.province">
  58. {{item.province + (item.city?item.city : '') + (item.region?item.region:'')+ (item.town?item.town:'') + (item.village?item.village:'')+(item.gridName?item.gridName:'')+(item.villagerGroup?item.villagerGroup:'')}}
  59. </view>
  60. <view class="form_zhan nodata" v-else>暂无信息</view>
  61. </uni-forms-item>
  62. <uni-forms-item label="详细地址" label-position="top">
  63. <view class="form_zhan form_right" :class="item.nowIn?'':'nodata'">
  64. {{item.nowIn||'暂无信息'}}
  65. </view>
  66. </uni-forms-item>
  67. </view>
  68. <view class="nowadd">
  69. <view class="nowaddl" v-if="idx!=0">
  70. <image :src="ndelimg" class="nowaddlimg"></image>
  71. <view class="nowaddltit ea0">删除现居地</view>
  72. </view>
  73. <view style="flex:1"></view>
  74. <view class="nowaddl">
  75. <image :src="naddimg" class="nowaddlimg"></image>
  76. <view class="nowaddltit b0">新增现居地</view>
  77. </view>
  78. </view>
  79. </view>
  80. </view>
  81. <view class="npd15">
  82. <uni-forms-item label="户主">
  83. <view class="form_zhan" :class="formData.houseType?'':'nodata'">
  84. {{formData.houseType||'暂无信息'}}
  85. </view>
  86. </uni-forms-item>
  87. <uni-forms-item required label="户编号">
  88. <view class="form_zhan" :class="formData.code?'':'nodata'">{{formData.code||'暂无信息'}}</view>
  89. </uni-forms-item>
  90. <view class="add_tit">如果不知道户编号,请用户主身份证号(默认是户主身份证号)</view>
  91. <uni-forms-item label="与户主关系">
  92. <view class="form_zhan" :class="formData.yhzgx?'':'nodata'">{{formData.yhzgx||'暂无信息'}}
  93. </view>
  94. </uni-forms-item>
  95. <!-- 网格 -->
  96. <!-- <uni-forms-item label="网格">
  97. <view class="form_zhan" :class="gridadr?'':'nodata'">{{gridadr||'暂无信息'}}</view>
  98. </uni-forms-item> -->
  99. <!-- <uni-forms-item label="工作单位">
  100. <view class="form_zhan" :class="formData.workUnit?'':'nodata'">{{formData.workUnit||'暂无信息'}}
  101. </view>
  102. </uni-forms-item> -->
  103. <uni-forms-item label="备注" label-position="top">
  104. <view class="form_zhan form_right" :class="formData.remark?'':'nodata'">
  105. {{formData.remark||'暂无信息'}}
  106. </view>
  107. </uni-forms-item>
  108. </view>
  109. </view>
  110. <!-- 站位的 -->
  111. <!-- <view style="height: 260rpx;"></view> -->
  112. </uni-forms>
  113. <view class="addbox">
  114. <button class="submit_btn btnb margin0-auto" type="primary" @click="getUpdateFn">修改</button>
  115. <button class="margin0-auto submit_btn btnc" v-if="typesta == 'edit'&&isnrl!=1&&navidx==1"
  116. type="primary" @click="getDeletFn">变更</button>
  117. </view>
  118. </view>
  119. <!--修改内容 -->
  120. <view v-else class="boxa">
  121. <uni-forms :modelValue="formData" label-width="110" class="boxflex1">
  122. <!-- 基本信息 -->
  123. <uni-group title="基本信息" top="0">
  124. <uni-forms-item required label="身份证号">
  125. <image src="@/static/image/icon_xz_pz.png" @click="takePhoto"
  126. style="z-index: 100; width: 26px; height: 22px; position: absolute; right: 5px; top: 5px; ">
  127. </image>
  128. <uni-easyinput @blur="getIdcardInfo" :inputBorder="false" style="width: 80%; z-index: 80;"
  129. v-model="formData.idCard" placeholder="请输入身份证号码"></uni-easyinput>
  130. </uni-forms-item>
  131. <uni-forms-item required label="姓名">
  132. <uni-easyinput type="text" :inputBorder="false" v-model="formData.userName" placeholder="请输入姓名">
  133. </uni-easyinput>
  134. </uni-forms-item>
  135. <!-- <uni-forms-item required label="出生日期">
  136. <uni-easyinput :clearable="false" @focus="showDatePicker" type="text" :inputBorder="false" v-model="formData.birthday" placeholder="请选择出生日期"></uni-easyinput>
  137. </uni-forms-item> -->
  138. <uni-forms-item label="年龄">
  139. <uni-easyinput type="number" :inputBorder="false" v-model="formData.age" placeholder="请输入年龄">
  140. </uni-easyinput>
  141. </uni-forms-item>
  142. <uni-forms-item label="性别">
  143. <uni-data-checkbox v-model="formData.genderIndex" :localdata="sexRange"></uni-data-checkbox>
  144. </uni-forms-item>
  145. <uni-forms-item label="联系号码">
  146. <uni-easyinput type="text" :inputBorder="false" v-model="formData.phoneNum"
  147. placeholder="请输入联系号码"></uni-easyinput>
  148. </uni-forms-item>
  149. <uni-forms-item label="人员分类">
  150. <view @click="showPropleSelect" class="pick-line">
  151. <text v-if='keyIndustries'>{{keyIndustries}}</text>
  152. <text v-else style="color: grey;">请选择人员分类</text>
  153. </view>
  154. </uni-forms-item>
  155. <!-- 人员类别 -->
  156. <uni-forms-item label="人员类别">
  157. <uni-data-checkbox multiple v-model="keyvalue" :localdata="keycategory" @change="keychange">
  158. </uni-data-checkbox>
  159. </uni-forms-item>
  160. </uni-group>
  161. <view>
  162. <view class="addtit">户籍信息</view>
  163. <view class="npd15">
  164. <uni-forms-item required label="户籍地址">
  165. <view @click="showPicker('hj')" class="pick-line">
  166. <text v-if='birAddress'>{{birAddress}}</text>
  167. <text v-else style="color: grey;">请选择户籍地址</text>
  168. </view>
  169. </uni-forms-item>
  170. <uni-forms-item label="详细地址" label-position="top">
  171. <textarea placeholder="请输入详细地址...." v-model="formData.nowIn"
  172. style="width: 100%; background: #F2F2F2;height:112rpx;border-radius: 10rpx;" />
  173. </uni-forms-item>
  174. </view>
  175. <!-- 居住地 -->
  176. <view>
  177. <!-- 多个现居地 -->
  178. <!-- <view class="npd15">
  179. <uni-forms-item required label="现居地">
  180. <pick-regions class="pick-line" :defaultRegion="defaultRegion" @getRegion="regionPickerChange">
  181. <view>
  182. <text
  183. v-if='formData.province'>{{formData.province + formData.city + formData.region}}</text>
  184. <text v-else style="color: grey;">请选择省市区</text>
  185. </view>
  186. </pick-regions>
  187. </uni-forms-item>
  188. <uni-forms-item label="详细地址" label-position="top">
  189. <textarea placeholder="请输入详细地址...." v-model="formData.nowIn"
  190. style="width: 100%;background: #F2F2F2;height: 112rpx;border-radius: 10rpx; " />
  191. </uni-forms-item>
  192. </view>
  193. <view class="nowadd nowr" >
  194. <view class="nowaddl" @click="getAddFn">
  195. <image :src="naddimg" class="nowaddlimg"></image>
  196. <view class="nowaddltit b0">新增现居地</view>
  197. </view>
  198. </view> -->
  199. <!-- 新增的 -->
  200. <!-- 多个现居地 -->
  201. <view v-for="(item,idx) in placeList" :key="idx">
  202. <view class="npd15">
  203. <uni-forms-item required label="现居地">
  204. <view @click="showPicker('xj',idx)" class="pick-line">
  205. <text
  206. v-if='item.province'>{{item.province + (item.city?item.city : '') + (item.region?item.region:'')+ (item.town?item.town:'') + (item.village?item.village:'')+(item.gridName?item.gridName:'')+(item.villagerGroup?item.villagerGroup:'')}}</text>
  207. <text v-else style="color: grey;">请选择现居地址</text>
  208. </view>
  209. <!-- <pick-regions class="pick-line" :defaultRegion="defaultRegion" @getRegion="regionPickerChange(idx)">
  210. <view>
  211. <text
  212. v-if='item.province'>{{item.province + item.city + item.region}}</text>
  213. <text v-else style="color: grey;">请选择所在区域</text>
  214. </view>
  215. </pick-regions> -->
  216. </uni-forms-item>
  217. <uni-forms-item label="详细地址" label-position="top">
  218. <textarea placeholder="请输入详细地址...." v-model="item.nowIn"
  219. style="width: 100%;background: #F2F2F2;height: 112rpx;border-radius: 10rpx; " />
  220. </uni-forms-item>
  221. </view>
  222. <view class="nowadd">
  223. <view class="nowaddl" @click="getDelFn(idx)" v-if="idx!=0">
  224. <image :src="ndelimg" class="nowaddlimg"></image>
  225. <view class="nowaddltit ea0">删除现居地</view>
  226. </view>
  227. <view style="flex:1"></view>
  228. <view class="nowaddl" @click="getAddFn">
  229. <image :src="naddimg" class="nowaddlimg"></image>
  230. <view class="nowaddltit b0">新增现居地</view>
  231. </view>
  232. </view>
  233. </view>
  234. </view>
  235. <view class="npd15">
  236. <uni-forms-item label="户主">
  237. <uni-data-checkbox v-model="formData.houseTypeValue" @change="changeCode()"
  238. :localdata="isUPN">
  239. </uni-data-checkbox>
  240. </uni-forms-item>
  241. <uni-forms-item required label="户编号">
  242. <!-- disabled -->
  243. <uni-easyinput :inputBorder="false" type="text" v-model="formData.code"
  244. placeholder="请输入户编号">
  245. </uni-easyinput>
  246. </uni-forms-item>
  247. <view class="add_tit">如果不知道户编号,请用户主身份证号(默认是户主身份证号)</view>
  248. <!-- 户主关系 -->
  249. <uni-forms-item required label="与户主关系">
  250. <view @click="showYhzgxSelect" class="pick-line">
  251. <text v-if='formData.yhzgx'>{{formData.yhzgx}}</text>
  252. <text v-else style="color: grey;">请选择与户主关系</text>
  253. </view>
  254. </uni-forms-item>
  255. <!-- 网格 -->
  256. <!-- <uni-forms-item label="网格">
  257. <view @click="showGridSelect" class="pick-line">
  258. <text v-if='gridadr'>{{gridadr}}</text>
  259. <text v-else style="color: grey;">请选择网格</text>
  260. </view>
  261. </uni-forms-item> -->
  262. <!-- <uni-forms-item label="工作单位">
  263. <uni-easyinput type="text" :inputBorder="false" v-model="formData.workUnit"
  264. placeholder="请输入工作单位"></uni-easyinput>
  265. </uni-forms-item> -->
  266. <uni-forms-item label="备注" label-position="top">
  267. <textarea placeholder="请输入备注信息...." v-model="formData.remark"
  268. style="width: 100%;background: #F2F2F2;height: 160rpx;border-radius: 10rpx;" />
  269. </uni-forms-item>
  270. </view>
  271. </view>
  272. <!-- <view style="height:196rpx;"></view> -->
  273. </uni-forms>
  274. <view class="addbox">
  275. <button class="submit_btn btna" type="primary" v-if="typesta == 'edit'&&isnrl!=1"
  276. @click="getSureFn">修改并确认</button>
  277. <button class="submit_btn" type="primary" @click="$noMultipleClicks(submit)">提交</button>
  278. <view class="addbox_txt" @click="checkSelect">
  279. <image :src="selectimg" class="addbox_txta" v-if="selectfalg"></image>
  280. <image :src="noselectimg" class="addbox_txta" v-else></image>
  281. <view class="addbox_txta1">勾选即表示同意<text class="addbox_txt2">《用户服务协议》</text>及<text
  282. class="addbox_txt2">《隐私政策》</text></view>
  283. </view>
  284. </view>
  285. </view>
  286. <!-- 删除弹窗 -->
  287. <view class="bgbox" v-if="delfalg"></view>
  288. <view class="delbox" v-if="delfalg">
  289. <view class="deltit">变更原因</view>
  290. <image :src="delimg" class="del_img" @click="getClose"></image>
  291. <view class="del_list">
  292. <block v-for="(ite,idx) in deletelist" :key="idx">
  293. <view class="del_lista" :class="delvalue==ite.value?'act':''" @click="getDeltab(ite.value)"
  294. v-if="ite.value!=1">{{ite.label}}</view>
  295. </block>
  296. </view>
  297. <view class="del_btn" @click="deletSure">确认</view>
  298. </view>
  299. <!-- 时间选择器-->
  300. <dataTimePicke ref="setpicker" type="date" toolBarTitle="请选择出生日期"></dataTimePicke>
  301. <!-- 人员分类 -->
  302. <selectPicker ref="peopleselet" :list="peopleclass" title="选择人员分类" @vacChange="peopleChange"></selectPicker>
  303. <!-- 户主关系 -->
  304. <!-- 人员分类 -->
  305. <selectPicker ref="yhzgxselet" :list="yhzgxclass" title="选择与户主关系" @vacChange="yhzgxChange"></selectPicker>
  306. <!-- 户籍地选择 -->
  307. <selectMuPicker ref="birselet" model="muitl-column-auto" :list="birthplace" title="选择户籍地"
  308. @vacChange="birRegion"></selectMuPicker>
  309. <areaP ref="area"></areaP>
  310. <!-- 户籍地选择 -->
  311. <selectMorePicker ref="picker" :title="auiPicker.title" :layer="auiPicker.layer" :titflag='auiPicker.titflag'
  312. :data="auiPicker.data" @callback="pickerCallback"></selectMorePicker>
  313. <!-- 网格选择 -->
  314. <selectGridPicker ref="gridpicke" :title="gridPicker.title" :layer="gridPicker.layer"
  315. :titflag='gridPicker.titflag' :data="gridPicker.data" @callback="gridCallback">
  316. </selectGridPicker>
  317. </view>
  318. </template>
  319. <script>
  320. import selectMuPicker from '@/_components/picker/selectMutilPicker.vue'
  321. import selectMorePicker from '@/_components/picker/selectMorePicker.vue'
  322. import selectGridPicker from '@/_components/picker/selectGridPicker.vue'
  323. import selectPicker from '@/_components/picker/selectPicker.vue'
  324. import dataTimePicke from '@/_components/picker/dataTimePicke.vue'
  325. import areaP from '@/_components/picker/areaP.vue'
  326. import senSetPicker from '@/_components/picker/dateTimePicker.vue'
  327. import hUploadImage from '@/_components/hUploadImage.vue'
  328. import hostUrl from "@/util/url";
  329. import hModal from '@/_components/hModal.vue'
  330. import pickRegions from '@/components/pick-regions/pick-regions.vue' //地址弹窗
  331. import uniPopup from '@/components/uni-popup/uni-popup.vue'
  332. import uniPopupDialog from '@/components/uni-popup/uni-popup-dialog.vue'
  333. let {
  334. host,
  335. imgDomain
  336. } = hostUrl
  337. export default {
  338. components: {
  339. uniPopup,
  340. uniPopupDialog,
  341. pickRegions,
  342. senSetPicker,
  343. hUploadImage,
  344. selectPicker,
  345. hModal,
  346. selectMuPicker,
  347. dataTimePicke,
  348. areaP,
  349. selectMorePicker,
  350. selectGridPicker
  351. },
  352. data() {
  353. return {
  354. delimg: require("@/static/image/del.png"),
  355. naddimg: require("@/static/image/nowadd.png"),
  356. ndelimg: require("@/static/image/nowdel.png"),
  357. selectimg: require("@/static/image/select.png"),
  358. noselectimg: require("@/static/image/noselect.png"),
  359. placeList: [{
  360. "deptId": 0, //所选居住地最后一级的id
  361. "provinceId": 0, //居住地的省份
  362. "province": "", //居住地的省份
  363. "cityId": 0, //居住地的城市
  364. "city": "", //居住地的城市
  365. "regionId": 0, //居住地的区
  366. "region": "", //居住地的区
  367. "townId": 0, //居住地的镇
  368. "town": "", //居住地的镇
  369. "villageId": 0, //居住地的村
  370. "village": "", //居住地的村
  371. "nowIn": "", //居住地的详细地址
  372. }],
  373. selectfalg: true,
  374. delfalg: false,
  375. birAddress: '',
  376. jiciOption: [], // 剂次选项
  377. curItem: {},
  378. curIndex: 0,
  379. noClick: true, // $noMultipleClicks变量
  380. defaultRegion: ['安徽省', '安庆市', '潜山市'], // 初始值必须为空,否则更换默认值时不能生效
  381. searchRegion: [],
  382. formData: {
  383. "id": '',
  384. 'villageTowns': '',
  385. 'village': '',
  386. 'birthday': '',
  387. 'age': '',
  388. 'code': '',
  389. 'villagerGroup': '',
  390. 'houseTypeValue': 1,
  391. 'houseType': '',
  392. "yhzgx": "", //与户主关系必填
  393. // 'domicile': '',
  394. 'province': '', //户籍地的省份
  395. 'city': '',
  396. 'region': '',
  397. 'userName': '',
  398. 'genderIndex': 0,
  399. 'idCard': '',
  400. 'phoneNum': '',
  401. 'nowIn': '', //户籍地的详细地址
  402. "remark": "",
  403. "czrkJzdzList": [], //详细地址
  404. "deptId": 0, //所选户籍地最后一级的id
  405. "workUnit": "", //工作单位
  406. 'queryType': '', //新增类型
  407. 'keyCategory':'',//人员类别
  408. },
  409. areaList: [],
  410. inputValue: '',
  411. shixian: false,
  412. imageValue: {},
  413. sexRange: [{
  414. "value": 0,
  415. "text": "男"
  416. }, {
  417. "value": 1,
  418. "text": "女"
  419. }], // 性别
  420. isUPN: [{
  421. "value": 0,
  422. "text": "是"
  423. }, {
  424. "value": 1,
  425. "text": "否"
  426. }], // 是否户主
  427. vaccination: [{
  428. "value": 0,
  429. "text": "是"
  430. }, {
  431. "value": 1,
  432. "text": "否"
  433. }], // 是否接种
  434. birthplace: [], // 户籍地
  435. delvalue: '', //删除原因
  436. peopleclass: [], //人员分类,
  437. keyIndustries: '',
  438. deletelist: [], //删除字典
  439. edidflag: false,
  440. codefalg: false, //
  441. yhzgxclass: [], //户主关系
  442. yhzgx: '',
  443. auiPicker: {
  444. title: '选择区域',
  445. layer: null,
  446. titflag: false,
  447. data: []
  448. },
  449. gridPicker: {
  450. title: '选择区域',
  451. layer: null,
  452. titflag: false,
  453. data: []
  454. },
  455. showtype: '',
  456. showidx: 0,
  457. peoplelist: [],
  458. typesta: '', //判断新增还是修改,
  459. gridadr: '', //网格显示,
  460. familyflag: false, //是否是家庭成员
  461. code: '', //户编号,
  462. optiontype: '',
  463. isnrl: 0,
  464. navidx: 1,
  465. keycategory:[],
  466. keyvalue:[],
  467. }
  468. },
  469. methods: {
  470. // 新增
  471. getAddFn() {
  472. var obj = {
  473. "deptId": 0, //所选居住地最后一级的id
  474. "provinceId": 0, //居住地的省份
  475. "province": "", //居住地的省份
  476. "cityId": 0, //居住地的城市
  477. "city": "", //居住地的城市
  478. "regionId": 0, //居住地的区
  479. "region": "", //居住地的区
  480. "townId": 0, //居住地的镇
  481. "town": "", //居住地的镇
  482. "villageId": 0, //居住地的村
  483. "village": "", //居住地的村
  484. 'gridId':0,//居住地的片区
  485. 'gridName':'',
  486. 'villagerGroupId':0,//居住地的组
  487. 'villagerGroup':'',
  488. "nowIn": "", //居住地的详细地址
  489. }
  490. this.placeList.push(obj)
  491. },
  492. // 户籍选择
  493. //显示picker多级联动弹窗
  494. showPicker(e, idx) {
  495. // var num=0;
  496. // if(this.showtype==e){
  497. // if(idx&&(this.showidx!=idx)){
  498. // num=1
  499. // }else{
  500. // this.showidx=idx||0
  501. // }
  502. // }else{
  503. // this.showtype=e;//户籍还是什么
  504. // this.showidx=idx||0;
  505. // num=1
  506. // }
  507. this.showtype = e; //户籍还是什么
  508. this.showidx = idx || 0;
  509. this.$refs.picker.open(1).then(function() {
  510. });
  511. },
  512. //picker多级联动回调
  513. pickerCallback(e) {
  514. const that = this;
  515. let result = '';
  516. if (that.showtype == 'hj') {
  517. // 置空
  518. that.formData.provinceId = null;
  519. that.formData.province = null;
  520. that.formData.cityId = null;
  521. that.formData.city = null;
  522. that.formData.regionId = null;
  523. that.formData.region = null;
  524. that.formData.villageTownsId = null;
  525. that.formData.villageTowns = null;
  526. that.formData.villageId = null;
  527. that.formData.village = null;
  528. that.formData.gridId = null;
  529. that.formData.gridName = null;
  530. that.formData.villagerGroupId = null;
  531. that.formData.villagerGroup = null;
  532. e.data.forEach(function(item, index) {
  533. if (index == 0) {
  534. result += item.name;
  535. } else {
  536. result += '/' + item.name;
  537. }
  538. switch (index) {
  539. case 0:
  540. that.formData.provinceId = e.data[0].areaid;
  541. that.formData.province = e.data[0].name;
  542. break;
  543. case 1:
  544. that.formData.cityId = e.data[1].areaid;
  545. that.formData.city = e.data[1].name;
  546. break;
  547. case 2:
  548. that.formData.regionId = e.data[2].areaid;
  549. that.formData.region = e.data[2].name;
  550. break;
  551. case 3:
  552. that.formData.villageTownsId = e.data[3].areaid;
  553. that.formData.villageTowns = e.data[3].name;
  554. break;
  555. case 4:
  556. that.formData.villageId = e.data[4].areaid;
  557. that.formData.village = e.data[4].name;
  558. break;
  559. case 5:
  560. that.formData.gridId = e.data[5].areaid;
  561. that.formData.gridName = e.data[5].name;
  562. break;
  563. case 6:
  564. that.formData.villagerGroupId = e.data[6].areaid;
  565. that.formData.villagerGroup = e.data[6].name;
  566. break;
  567. default:
  568. break;
  569. }
  570. });
  571. that.formData.deptId = e.data[e.data.length - 1].areaid
  572. that.birAddress = result;
  573. } else {
  574. var idx = that.showidx;
  575. var params = {}
  576. e.data.forEach(function(item, index) {
  577. switch (index) {
  578. case 0:
  579. params.provinceId = e.data[0].areaid;
  580. params.province = e.data[0].name;
  581. break;
  582. case 1:
  583. params.cityId = e.data[1].areaid;
  584. params.city = e.data[1].name;
  585. break;
  586. case 2:
  587. params.regionId = e.data[2].areaid;
  588. params.region = e.data[2].name;
  589. break;
  590. case 3:
  591. params.townId = e.data[3].areaid;
  592. params.town = e.data[3].name;
  593. break;
  594. case 4:
  595. params.villageId = e.data[4].areaid;
  596. params.village = e.data[4].name;
  597. break;
  598. case 5:
  599. params.gridId = e.data[5].areaid;
  600. params.gridName = e.data[5].name;
  601. break;
  602. case 6:
  603. params.villagerGroupId = e.data[6].areaid;
  604. params.villagerGroup = e.data[6].name;
  605. break;
  606. default:
  607. break;
  608. }
  609. });
  610. that.$nextTick(function() {
  611. params.nowIn = this.placeList[idx].nowIn
  612. params.deptId = e.data[e.data.length - 1].areaid
  613. that.placeList.splice(idx, 1, params)
  614. })
  615. }
  616. },
  617. //网格回调
  618. gridCallback(e) {
  619. var that = this;
  620. var result = ''
  621. e.data.forEach(function(item, index) {
  622. if (index == 0) {
  623. result += item.name;
  624. } else {
  625. result += '/' + item.name;
  626. }
  627. })
  628. that.gridadr = result;
  629. that.formData.gridId = e.data[e.data.length - 1].pid
  630. },
  631. getDelFn(idx) {
  632. var that = this;
  633. uni.showModal({
  634. title: '提示',
  635. content: "是否确认删除",
  636. success: function(res) {
  637. if (res.confirm) {
  638. that.placeList.splice(idx, 1)
  639. // console.log('用户点击确定');
  640. } else if (res.cancel) {
  641. // console.log('用户点击取消');
  642. }
  643. }
  644. });
  645. },
  646. getClose() {
  647. this.delfalg = false
  648. },
  649. changeCode() {
  650. if (this.formData.houseTypeValue == 0) {
  651. // if (this.familyflag) {
  652. // this.formData.code = this.formData.idCard;
  653. // return
  654. // }
  655. if (!this.formData.code) {
  656. this.formData.code = this.formData.idCard
  657. }
  658. }
  659. },
  660. takePhoto() {
  661. console.log('---------')
  662. var that = this
  663. uni.chooseImage({
  664. count: 1,
  665. sourceType: 'camera',
  666. success(res) {
  667. var file = res.tempFilePaths[0]
  668. that.ocrParse(file)
  669. }
  670. })
  671. },
  672. ocrParse(filePath) {
  673. var url = host + '/boman-file/ocrIdCard'
  674. var token = uni.getStorageSync('token')
  675. // var token = "df057579-73c8-4bdd-8312-f64db8efd699"
  676. uni.showLoading()
  677. uni.uploadFile({
  678. url: url,
  679. filePath: filePath,
  680. name: 'file',
  681. header: {
  682. // 'Content-type': 'multipart/form-data',
  683. 'Authorization': token
  684. },
  685. success: res => {
  686. uni.hideLoading()
  687. // console.log(JSON.stringify(res))
  688. var data = JSON.parse(res.data)
  689. this.formData.idCard = data.data.id
  690. this.formData.userName = data.data.name
  691. this.formData.age = this.getAge(data.data.birth)
  692. this.formData.gender = data.data.gender
  693. if (this.formData.gender == '男') {
  694. this.formData.genderIndex = 0
  695. } else {
  696. this.formData.genderIndex = 1
  697. }
  698. },
  699. fail: err => {
  700. uni.hideLoading();
  701. // console.log(JSON.stringify(err))
  702. uni.showToast({
  703. title: err.errMsg,
  704. icon: "none"
  705. })
  706. }
  707. })
  708. },
  709. checkSelect() {
  710. this.selectfalg = !this.selectfalg
  711. },
  712. getSureFn() {
  713. if (!this.formData.idCard) {
  714. uni.showToast({
  715. title: '请输入身份证号码',
  716. icon: "none"
  717. })
  718. return
  719. }
  720. let _IDRe18 =
  721. /^([1-6][1-9]|50)\d{4}(18|19|20)\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
  722. let _IDre15 = /^([1-6][1-9]|50)\d{4}\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}$/
  723. // 验证护照号
  724. let _IDreh1 = /^[a-zA-Z]{5,17}$/;
  725. let _IDreh2 = /^[a-zA-Z0-9]{5,17}$/;
  726. /** 港澳通行证验证 */
  727. let _IDreh3 = /^[HMhm]{1}([0-9]{10}|[0-9]{8})$/;
  728. /** 台湾通行证验证 */
  729. let _IDreh4 = /^[0-9]{8}$/;
  730. let _IDreh5 = /^[0-9]{10}$/;
  731. // 校验身份证:
  732. if (_IDRe18.test(this.formData.idCard) || _IDre15.test(this.formData.idCard) || _IDreh1.test(this.formData
  733. .idCard) || _IDreh2.test(this.formData.idCard) || _IDreh3.test(this.formData.idCard) || _IDreh4
  734. .test(this.formData.idCard) || _IDreh5.test(this.formData.idCard)) {
  735. // 校验身份证:
  736. // if( _IDRe18.test( this.formData.idCard ) || _IDre15.test( this.formData.idCard ) ) {
  737. } else {
  738. uni.showToast({
  739. title: '请输入正确的身份证号',
  740. icon: 'none'
  741. })
  742. return
  743. }
  744. // let reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
  745. // if (reg.test(this.formData.idCard)) {
  746. // // 获取身份证信息
  747. // } else {
  748. // }
  749. if (!this.formData.userName) {
  750. uni.showToast({
  751. title: '请输入姓名',
  752. icon: "none"
  753. })
  754. return
  755. }
  756. // // 验证手机号
  757. // let reg = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/
  758. // // 座机号
  759. // let reg1=/^(0\d{2,3})-?(\d{7,8})$/
  760. // if (this.formData.phoneNum && !reg.test(this.formData.phoneNum)&&!reg1.test(this.formData.phoneNum)) {
  761. // uni.showToast({
  762. // title: '请输入正确的联系方式',
  763. // icon: "none"
  764. // })
  765. // return
  766. // }
  767. if (!this.birAddress) {
  768. uni.showToast({
  769. title: '请选择户籍地址',
  770. icon: "none"
  771. })
  772. return
  773. }
  774. if (this.formData.houseTypeValue == 0) {
  775. this.formData.houseType = '是'
  776. //户主
  777. } else {
  778. this.formData.houseType = '否'
  779. }
  780. if (this.formData.genderIndex == 0) {
  781. this.formData.gender = '男'
  782. } else {
  783. this.formData.gender = '女'
  784. }
  785. //人员类别
  786. if(this.keyvalue.length){
  787. var keyArr=this.keycategory;
  788. var newKey=[];
  789. this.keyvalue.forEach((item,idx)=>{
  790. newKey[idx]=keyArr[item].text
  791. })
  792. this.formData.keyCategory=newKey.join(',')
  793. }
  794. this.$nextTick(function(){
  795. //
  796. var newArr = []
  797. this.placeList.forEach((item, idx) => {
  798. if (item.nowIn || item.province) {
  799. newArr.push(item)
  800. }
  801. })
  802. if (newArr.length < 1) {
  803. uni.showToast({
  804. title: '请填写现居住地',
  805. icon: "none"
  806. })
  807. return
  808. } else {
  809. this.formData.czrkJzdzList = JSON.parse(JSON.stringify(newArr))
  810. }
  811. if (!this.formData.code) {
  812. uni.showToast({
  813. title: '请输入户编号',
  814. icon: "none"
  815. })
  816. return
  817. }
  818. if (!this.formData.yhzgx) {
  819. uni.showToast({
  820. title: '请选择与户主关系',
  821. icon: "none"
  822. })
  823. return
  824. }
  825. if (!this.selectfalg) {
  826. uni.showToast({
  827. title: '请勾选同意下方协议',
  828. icon: "none"
  829. })
  830. return
  831. }
  832. var tempArr = []
  833. // console.log(JSON.stringify(this.formData))
  834. var form = JSON.parse(JSON.stringify(this.formData))
  835. form.isConfirm = 'Y'
  836. this.$http.post('boman-web-core/core/czrk/editCzrk', form).then(res => {
  837. if (res.code == 200) {
  838. uni.navigateTo({
  839. url: '/add/pages/addvacfrom/submit'
  840. })
  841. } else {
  842. uni.showToast({
  843. title: res.msg,
  844. icon: "none"
  845. })
  846. }
  847. })
  848. })
  849. },
  850. submit() {
  851. if (!this.formData.idCard) {
  852. uni.showToast({
  853. title: '请输入身份证号码',
  854. icon: "none"
  855. })
  856. return
  857. }
  858. let _IDRe18 =
  859. /^([1-6][1-9]|50)\d{4}(18|19|20)\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
  860. let _IDre15 = /^([1-6][1-9]|50)\d{4}\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}$/
  861. // 验证护照号
  862. let _IDreh1 = /^[a-zA-Z]{5,17}$/;
  863. let _IDreh2 = /^[a-zA-Z0-9]{5,17}$/;
  864. /** 港澳通行证验证 */
  865. let _IDreh3 = /^[HMhm]{1}([0-9]{10}|[0-9]{8})$/;
  866. /** 台湾通行证验证 */
  867. let _IDreh4 = /^[0-9]{8}$/;
  868. let _IDreh5 = /^[0-9]{10}$/;
  869. // 校验身份证:
  870. if (_IDRe18.test(this.formData.idCard) || _IDre15.test(this.formData.idCard) || _IDreh1.test(this.formData
  871. .idCard) || _IDreh2.test(this.formData.idCard) || _IDreh3.test(this.formData.idCard) || _IDreh4
  872. .test(this.formData.idCard) || _IDreh5.test(this.formData.idCard)) {
  873. } else {
  874. uni.showToast({
  875. title: '请输入正确的身份证号',
  876. icon: 'none'
  877. })
  878. return
  879. }
  880. // let reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
  881. // if (reg.test(this.formData.idCard)) {
  882. // // 获取身份证信息
  883. // } else {
  884. // }
  885. if (!this.formData.userName) {
  886. uni.showToast({
  887. title: '请输入姓名',
  888. icon: "none"
  889. })
  890. return
  891. }
  892. // 验证手机号
  893. // let reg = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/
  894. // let reg1=/^(0\d{2,3})-?(\d{7,8})$/
  895. // if (this.formData.phoneNum && !reg.test(this.formData.phoneNum)&&!reg1.test(this.formData.phoneNum)) {
  896. // uni.showToast({
  897. // title: '请输入正确的联系方式',
  898. // icon: "none"
  899. // })
  900. // return
  901. // }
  902. if (!this.birAddress) {
  903. uni.showToast({
  904. title: '请选择户籍地址',
  905. icon: "none"
  906. })
  907. return
  908. }
  909. if (this.formData.houseTypeValue == 0) {
  910. this.formData.houseType = '是'
  911. //户主
  912. } else {
  913. this.formData.houseType = '否'
  914. }
  915. if (this.formData.genderIndex == 0) {
  916. this.formData.gender = '男'
  917. } else {
  918. this.formData.gender = '女'
  919. }
  920. //人员类别
  921. if(this.keyvalue.length){
  922. var keyArr=this.keycategory;
  923. var newKey=[];
  924. this.keyvalue.forEach((item,idx)=>{
  925. newKey[idx]=keyArr[item].text
  926. })
  927. this.formData.keyCategory=newKey.join(',')
  928. }
  929. this.$nextTick(function(){
  930. //
  931. var newArr = []
  932. this.placeList.forEach((item, idx) => {
  933. if (item.nowIn || item.province) {
  934. newArr.push(item)
  935. }
  936. })
  937. if (newArr.length < 1) {
  938. uni.showToast({
  939. title: '请填写现居住地',
  940. icon: "none"
  941. })
  942. return
  943. } else {
  944. this.formData.czrkJzdzList = JSON.parse(JSON.stringify(newArr))
  945. }
  946. if (!this.formData.code) {
  947. uni.showToast({
  948. title: '请输入户编号',
  949. icon: "none"
  950. })
  951. return
  952. }
  953. if (!this.formData.yhzgx) {
  954. uni.showToast({
  955. title: '请选择与户主关系',
  956. icon: "none"
  957. })
  958. return
  959. }
  960. if (!this.selectfalg) {
  961. uni.showToast({
  962. title: '请勾选同意下方协议',
  963. icon: "none"
  964. })
  965. return
  966. }
  967. var tempArr = []
  968. // console.log(JSON.stringify(this.formData))
  969. var form = JSON.parse(JSON.stringify(this.formData))
  970. form.isConfirm = 'Y'
  971. if (this.typesta == 'edit') {
  972. // 修改
  973. if (this.isnrl == 1) {
  974. // 未认领
  975. this.$http.post('boman-web-core/core/ryrl/editRlry', form).then(res => {
  976. if (res.code == 200) {
  977. uni.navigateTo({
  978. url: '/add/pages/addvacfrom/submit'
  979. })
  980. } else {
  981. uni.showToast({
  982. title: res.msg,
  983. icon: "none"
  984. })
  985. }
  986. })
  987. } else {
  988. this.$http.post('boman-web-core/core/czrk/editCzrk', form).then(res => {
  989. if (res.code == 200) {
  990. uni.navigateTo({
  991. url: '/add/pages/addvacfrom/submit'
  992. })
  993. } else {
  994. uni.showToast({
  995. title: res.msg,
  996. icon: "none"
  997. })
  998. }
  999. })
  1000. }
  1001. } else {
  1002. // 新增
  1003. this.$http.post('boman-web-core/core/czrk/addCzrk', form).then(res => {
  1004. if (res.code == 200) {
  1005. uni.navigateTo({
  1006. url: '/add/pages/addvacfrom/submit'
  1007. })
  1008. // uni.showToast({
  1009. // title: '提交成功',
  1010. // icon: "none"
  1011. // })
  1012. // setTimeout(function() {
  1013. // uni.navigateBack()
  1014. // }, 1000)
  1015. } else {
  1016. uni.showToast({
  1017. title: res.msg,
  1018. icon: "none"
  1019. })
  1020. }
  1021. })
  1022. }
  1023. })
  1024. },
  1025. // 修改
  1026. getUpdateFn() {
  1027. this.edidflag = false
  1028. },
  1029. //删除
  1030. getDeletFn() {
  1031. this.delfalg = true;
  1032. },
  1033. deletSure() {
  1034. var that = this;
  1035. if (!this.delvalue) {
  1036. uni.showToast({
  1037. title: "请选择变更原因",
  1038. icon: 'none'
  1039. })
  1040. return
  1041. }
  1042. var params = {
  1043. id: this.formData.id,
  1044. status: this.delvalue
  1045. }
  1046. this.$http.post('boman-web-core/core/czrk/changeCzrk', params).then(res => {
  1047. if (res.code == 200) {
  1048. uni.showToast({
  1049. title: '变更成功',
  1050. icon: "none"
  1051. })
  1052. setTimeout(function() {
  1053. // 让上个页面进行刷新
  1054. uni.$emit('refreshData');
  1055. uni.navigateBack()
  1056. }, 1000)
  1057. } else {
  1058. this.delfalg = false;
  1059. uni.showToast({
  1060. title: res.msg,
  1061. icon: "none"
  1062. })
  1063. }
  1064. })
  1065. },
  1066. delete() {
  1067. // this.$http.post('boman-web-core/core/ryrl/editRlry', this.formData).then(res=>{
  1068. // if(res.code == 200 ) {
  1069. // uni.showToast({
  1070. // title: '提交成功',
  1071. // icon: "none"
  1072. // })
  1073. // setTimeout(function() {
  1074. // uni.navigateBack()
  1075. // }, 1000)
  1076. // }
  1077. // })
  1078. },
  1079. regionPickerChange(region) {
  1080. this.searchRegion = region
  1081. // console.log(this.searchRegion, 'searchRegion')
  1082. var codeArray = this.searchRegion.map(item => item ? item.code : undefined)
  1083. var nameArray = this.searchRegion.map(item => item ? item.name : undefined)
  1084. this.formData.province = nameArray[0]
  1085. this.formData.city = nameArray[1]
  1086. this.formData.region = nameArray[2]
  1087. },
  1088. /* 获取户籍地 */
  1089. getBirthplace() {
  1090. this.$http.post('boman-system/chinaArea/treeSelect', {
  1091. pid: 0
  1092. }).then(res => {
  1093. this.auiPicker.data = res.data
  1094. })
  1095. },
  1096. /* 初始化 */
  1097. init() {
  1098. // 人员分类
  1099. this.getPeopleClass();
  1100. //地址列表
  1101. this.getBirthplace();
  1102. //删除原因
  1103. this.getDelectList();
  1104. this.gethouseTypeList();
  1105. //网格
  1106. // this.getGridplace();
  1107. // 人员类别
  1108. this.getKeyCateFn();
  1109. },
  1110. // 回显数据字典
  1111. selectDictLabel(datas, value) {
  1112. var actions = [];
  1113. Object.keys(datas).some((key) => {
  1114. if (datas[key].dictValue == ('' + value)) {
  1115. actions.push(datas[key].dictLabel);
  1116. return true;
  1117. }
  1118. })
  1119. return actions.join('');
  1120. },
  1121. // 回显多条数据
  1122. selectMoreDictLabel(datas, value) {
  1123. var actions = [];
  1124. value.forEach((item,idx)=>{
  1125. Object.keys(datas).some((key) => {
  1126. if (datas[key].dictLabel == ('' + item)) {
  1127. actions.push(datas[key].dictValue);
  1128. return true;
  1129. }
  1130. })
  1131. })
  1132. return actions;
  1133. },
  1134. getDetail() {
  1135. this.$http.get('boman-web-core/core/czrk/getById/' + this.formData.id).then(res => {
  1136. if (res.code == 200) {
  1137. this.init()
  1138. this.formData = res.data;
  1139. this.gridadr = res.data.gridName;
  1140. if (this.formData.houseType == '是') {
  1141. this.formData.houseTypeValue = 0
  1142. } else {
  1143. this.formData.houseTypeValue = 1;
  1144. this.formData.houseType = '否'
  1145. }
  1146. if (this.formData.gender == '男') {
  1147. this.formData.genderIndex = 0
  1148. } else {
  1149. this.formData.genderIndex = 1
  1150. }
  1151. if (this.formData.czrkJzdzList && this.formData.czrkJzdzList.length) {
  1152. this.placeList = JSON.parse(JSON.stringify(this.formData.czrkJzdzList))
  1153. }
  1154. // 疫苗
  1155. // if (this.formData.isVaccination == '是') {
  1156. // this.formData.isVaccinationValue = 0
  1157. // } else {
  1158. // this.formData.isVaccinationValue = 1
  1159. // }
  1160. this.birAddress = ''
  1161. if (this.formData.province) {
  1162. this.birAddress += this.formData.province
  1163. }
  1164. if (this.formData.city) {
  1165. this.birAddress += this.formData.city
  1166. }
  1167. if (this.formData.region) {
  1168. this.birAddress += this.formData.region
  1169. }
  1170. if (this.formData.villageTowns) {
  1171. this.birAddress += this.formData.villageTowns
  1172. }
  1173. if (this.formData.village) {
  1174. this.birAddress += this.formData.village
  1175. }
  1176. if (this.formData.gridName) {
  1177. this.birAddress += this.formData.gridName
  1178. }
  1179. if (this.formData.villagerGroup) {
  1180. this.birAddress += this.formData.villagerGroup
  1181. }
  1182. }
  1183. })
  1184. },
  1185. getDelectList() {
  1186. // 删除显示
  1187. var that = this;
  1188. this.$http.get('system/dict/data/type/person_type').then(res => {
  1189. if (res.code == 200) {
  1190. // this.delvalue = res.data[0].dictValue
  1191. this.deletelist = res.data.map(v => {
  1192. return {
  1193. label: v.dictLabel,
  1194. value: v.dictValue
  1195. }
  1196. })
  1197. }
  1198. })
  1199. },
  1200. getDeltab(e) {
  1201. this.delvalue = e;
  1202. },
  1203. //gethouseTypeList
  1204. //与户主关系
  1205. gethouseTypeList() {
  1206. //户主关系
  1207. var that = this;
  1208. this.$http.get('boman-system/dict/data/type/yuhuzhuguanxi').then(res => {
  1209. if (res.code == 200) {
  1210. if (that.formData.yhzgx) {
  1211. // that.yhzgx = that.selectDictLabel(res.data, that.formData.yhzgx)
  1212. }
  1213. this.yhzgxclass = res.data.map(v => {
  1214. return {
  1215. label: v.dictLabel,
  1216. value: v.dictValue
  1217. }
  1218. })
  1219. }
  1220. })
  1221. },
  1222. showYhzgxSelect() {
  1223. this.$refs.yhzgxselet.show()
  1224. },
  1225. yhzgxChange(e) {
  1226. var label = e[0].label;
  1227. // this.yhzgx = e[0].label;
  1228. // this.formData.yhzgx = e[0].value;
  1229. this.formData.yhzgx = label;
  1230. },
  1231. getGridplace() {
  1232. var that = this
  1233. this.$http.post('boman-web-core/gridInfo/treeSelect', {
  1234. pid: 0
  1235. }).then(res => {
  1236. that.gridPicker.data = res.data.data || res.data
  1237. })
  1238. },
  1239. // 网格
  1240. showGridSelect() {
  1241. this.$refs.gridpicke.open().then(function() {
  1242. });
  1243. },
  1244. // 人员类别
  1245. getKeyCateFn() {
  1246. var that = this;
  1247. this.$http.get('system/dict/data/type/key_category').then(res => {
  1248. if (res.code == 200) {
  1249. if (that.formData.keyCategory) {
  1250. var newKeyArr=that.formData.keyCategory.split(',')
  1251. that.keyvalue = that.selectMoreDictLabel(res.data, newKeyArr)
  1252. }
  1253. this.keycategory = res.data.map(v => {
  1254. return {
  1255. text: v.dictLabel,
  1256. value: v.dictValue
  1257. }
  1258. })
  1259. }
  1260. })
  1261. },
  1262. keychange(e){
  1263. console.log(this.keyvalue)
  1264. // this.keyvalue=
  1265. console.log(e)
  1266. },
  1267. // 人员分类
  1268. getPeopleClass() {
  1269. var that = this;
  1270. this.$http.get('system/dict/data/type/renyuanfenlei').then(res => {
  1271. if (res.code == 200) {
  1272. if (that.formData.keyIndustries) {
  1273. that.keyIndustries = that.selectDictLabel(res.data, that.formData.keyIndustries)
  1274. }
  1275. that.peoplelist = res.data;
  1276. this.peopleclass = res.data.map(v => {
  1277. return {
  1278. label: v.dictLabel,
  1279. value: v.dictValue
  1280. }
  1281. })
  1282. }
  1283. })
  1284. },
  1285. // 显示人员分类
  1286. showPropleSelect() {
  1287. // if (this.formData.id != undefined && this.formData.id != "") {
  1288. // return
  1289. // }
  1290. // this.curIndex = index
  1291. this.$refs.peopleselet.show()
  1292. },
  1293. peopleChange(e) {
  1294. var label = e[0].label;
  1295. this.keyIndustries = e[0].label;
  1296. this.formData.keyIndustries = e[0].value;
  1297. },
  1298. /* 上传后端获取身份证信息 */
  1299. getIdcardInfo(val) {
  1300. var that = this;
  1301. if (this.formData == undefined) {
  1302. return
  1303. }
  1304. if (this.formData.idCard == undefined || this.formData.idCard == '') {
  1305. return
  1306. }
  1307. // 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X
  1308. let _IDRe18 =
  1309. /^([1-6][1-9]|50)\d{4}(18|19|20)\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
  1310. let _IDre15 = /^([1-6][1-9]|50)\d{4}\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}$/
  1311. // 校验身份证:
  1312. if (_IDRe18.test(this.formData.idCard) || _IDre15.test(this.formData.idCard)) {
  1313. // 获取身份证信息
  1314. var idCard = this.formData.idCard
  1315. this.$http.post('boman-web-core/core/czrk/findHjInfo', {
  1316. idCard: this.formData.idCard
  1317. }).then(res => {
  1318. if (res.code == 200) {
  1319. this.formData = res.data
  1320. this.formData.idCard = idCard;
  1321. if (res.data.houseType != '是' && this.familyflag) {
  1322. this.formData.code = this.code
  1323. this.formData.houseTypeValue = 1;
  1324. this.formData.houseType = '否';
  1325. }
  1326. if (res.data.houseType != '是' && this.optiontype == 'house') {
  1327. this.formData.houseTypeValue = 0;
  1328. this.formData.houseType = '是';
  1329. }
  1330. if (this.formData.houseTypeValue == 0 && !this.formData.code) {
  1331. this.formData.code = this.formData.idCard
  1332. }
  1333. // for(var i in res.data){
  1334. // if(res.data[i]!=null){
  1335. // this.formData[i]=res.data[i]
  1336. // }
  1337. // }
  1338. // this.formData.userName = res.data.userName
  1339. // this.formData.age = res.data.age
  1340. // this.formData.gender = res.data.gender
  1341. // this.formData.phoneNum = res.data.phoneNum
  1342. // this.formData.keyIndustries = res.data.keyIndustries
  1343. // this.formData.province = res.data.province
  1344. // this.formData.city = res.data.city
  1345. // this.formData.region = res.data.region
  1346. // this.formData.villageTowns = res.data.villageTowns
  1347. // this.formData.village = res.data.village
  1348. // this.formData.villagerGroup = res.data.villagerGroup
  1349. // this.formData.nowIn = res.data.nowIn
  1350. // this.formData.houseType = res.data.houseType
  1351. // this.formData.code = res.data.code
  1352. // this.formData.yhzgx = res.data.yhzgx
  1353. this.birAddress = ''
  1354. if (this.formData.province) {
  1355. this.birAddress += this.formData.province
  1356. }
  1357. if (this.formData.city) {
  1358. this.birAddress += this.formData.city
  1359. }
  1360. if (this.formData.region) {
  1361. this.birAddress += this.formData.region
  1362. }
  1363. if (this.formData.villageTowns) {
  1364. this.birAddress += this.formData.villageTowns
  1365. }
  1366. if (this.formData.village) {
  1367. this.birAddress += this.formData.village
  1368. }
  1369. if (this.formData.villagerGroup) {
  1370. this.birAddress += this.formData.villagerGroup
  1371. }
  1372. if (this.formData.gender == '男') {
  1373. this.formData.genderIndex = 0
  1374. } else {
  1375. this.formData.genderIndex = 1
  1376. }
  1377. if (that.formData.keyIndustries) {
  1378. that.keyIndustries = that.selectDictLabel(that.peoplelist, that.formData
  1379. .keyIndustries)
  1380. } else {
  1381. that.keyIndustries = ''
  1382. }
  1383. if (this.formData.houseType == '是') {
  1384. this.formData.houseTypeValue = 0
  1385. } else {
  1386. this.formData.houseTypeValue = 1;
  1387. this.formData.houseType = '否'
  1388. }
  1389. if (this.formData.czrkJzdzList && this.formData.czrkJzdzList.length) {
  1390. this.placeList = JSON.parse(JSON.stringify(this.formData.czrkJzdzList))
  1391. } else {
  1392. this.placeList = [];
  1393. this.getAddFn()
  1394. }
  1395. }
  1396. })
  1397. } else {
  1398. // 判断是不是护照号
  1399. // 验证护照号
  1400. let _IDreh1 = /^[a-zA-Z]{5,17}$/;
  1401. let _IDreh2 = /^[a-zA-Z0-9]{5,17}$/;
  1402. /** 港澳通行证验证 */
  1403. let _IDreh3 = /^[HMhm]{1}([0-9]{10}|[0-9]{8})$/;
  1404. /** 台湾通行证验证 */
  1405. let _IDreh4 = /^[0-9]{8}$/;
  1406. let _IDreh5 = /^[0-9]{10}$/;
  1407. // 校验身份证:
  1408. if (_IDreh1.test(this.formData.idCard) || _IDreh2.test(this.formData.idCard) || _IDreh3.test(this
  1409. .formData.idCard) || _IDreh4.test(this.formData.idCard) || _IDreh5.test(this.formData
  1410. .idCard)) {
  1411. } else {
  1412. uni.showToast({
  1413. title: '请输入正确的身份证号',
  1414. icon: 'none'
  1415. })
  1416. }
  1417. }
  1418. // let reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
  1419. // if (reg.test(this.formData.idCard)) {
  1420. // } else {
  1421. // uni.showToast({
  1422. // title: '请输入正确的身份证号',
  1423. // icon: 'none'
  1424. // })
  1425. // }
  1426. // this.$http.post('boman-web-core/core/info/findHjInfo', {
  1427. // idCard: this.formData.idCard
  1428. // }).then(res => {
  1429. // if (res.code == 200) {
  1430. // this.formData.userName = res.data.userName
  1431. // this.formData.age = res.data.age
  1432. // this.formData.gender = res.data.gender
  1433. // if (this.formData.gender == '男') {
  1434. // this.formData.genderIndex = 0
  1435. // } else {
  1436. // this.formData.genderIndex = 1
  1437. // }
  1438. // }
  1439. // })
  1440. },
  1441. /* 户籍地选择组件 */
  1442. showbirPicker() {
  1443. this.$refs.birselet.show()
  1444. },
  1445. /* 成功选择户籍 */
  1446. birRegion(e) {
  1447. console.log('---------' + JSON.stringify(e))
  1448. this.formData.villageTowns = e[1].label
  1449. this.formData.village = e[2].label
  1450. this.formData.villagerGroup = e[3].label
  1451. this.birAddress = this.formData.villageTowns + this.formData.village + this.formData.villagerGroup
  1452. },
  1453. /* 出生日期组件 */
  1454. showDatePicker() {
  1455. this.$refs.setpicker.show();
  1456. },
  1457. getAge(strAge) {
  1458. var birArr = strAge.split("-");
  1459. var birYear = birArr[0];
  1460. var birMonth = birArr[1];
  1461. var birDay = birArr[2];
  1462. d = new Date();
  1463. var nowYear = d.getFullYear();
  1464. var nowMonth = d.getMonth() + 1; //记得加1
  1465. var nowDay = d.getDate();
  1466. var returnAge;
  1467. if (birArr == null) {
  1468. return false
  1469. };
  1470. var d = new Date(birYear, birMonth - 1, birDay);
  1471. if (d.getFullYear() == birYear && (d.getMonth() + 1) == birMonth && d.getDate() == birDay) {
  1472. if (nowYear == birYear) {
  1473. returnAge = 0; //
  1474. } else {
  1475. var ageDiff = nowYear - birYear; //
  1476. if (ageDiff > 0) {
  1477. if (nowMonth == birMonth) {
  1478. var dayDiff = nowDay - birDay; //
  1479. if (dayDiff < 0) {
  1480. returnAge = ageDiff - 1;
  1481. } else {
  1482. returnAge = ageDiff;
  1483. }
  1484. } else {
  1485. var monthDiff = nowMonth - birMonth; //
  1486. if (monthDiff < 0) {
  1487. returnAge = ageDiff - 1;
  1488. } else {
  1489. returnAge = ageDiff;
  1490. }
  1491. }
  1492. } else {
  1493. return "出生日期晚于今天,数据有误"; //返回-1 表示出生日期输入错误 晚于今天
  1494. }
  1495. }
  1496. return returnAge;
  1497. } else {
  1498. return ("输入的日期格式错误!");
  1499. }
  1500. }
  1501. },
  1502. onLoad(option) {
  1503. // console.log('onLoad')
  1504. if (option.code) {
  1505. // 添加家庭成员
  1506. this.formData.code = option.code;
  1507. this.formData.houseTypeValue = 1;
  1508. this.formData.houseType = '否';
  1509. this.code = option.code
  1510. this.familyflag = true;
  1511. this.edidflag = false;
  1512. this.typesta = 'add'
  1513. uni.setNavigationBarTitle({
  1514. title: '新增'
  1515. })
  1516. this.init()
  1517. } else if (option.id) {
  1518. //修改
  1519. this.formData.id = option.id;
  1520. this.edidflag = true;
  1521. this.typesta = 'edit'
  1522. this.isnrl = option.isnrl;
  1523. this.navidx = option.navidx
  1524. // 禁止所以的操作
  1525. uni.setNavigationBarTitle({
  1526. title: '修改'
  1527. })
  1528. this.getDetail()
  1529. } else {
  1530. this.edidflag = false;
  1531. this.typesta = 'add'
  1532. uni.setNavigationBarTitle({
  1533. title: '新增'
  1534. })
  1535. this.init();
  1536. if (option.type == 'house') {
  1537. // 新增户主
  1538. this.formData.houseTypeValue = 0;
  1539. this.formData.houseType = '是';
  1540. this.optiontype = option.type
  1541. // 是户主
  1542. return
  1543. }
  1544. uni.showModal({
  1545. title: '提示',
  1546. content: "此页面最好新增户主,如若不知户编号,想新增家庭成员,请到人员信息户籍列表,根据户主身份证查询,再点击查看添加家庭成员",
  1547. success: function(res) {
  1548. if (res.confirm) {} else if (res.cancel) {
  1549. }
  1550. }
  1551. })
  1552. }
  1553. },
  1554. mounted() {
  1555. // if (this.formData.id) { // “编辑”模式下,先获取详情,再获取选项列表
  1556. // this.getDetail()
  1557. // } else { // “新增”模式下,获取选项列表
  1558. // this.init()
  1559. // }
  1560. }
  1561. }
  1562. </script>
  1563. <style>
  1564. .vac-form textarea {
  1565. display: block;
  1566. padding: 16rpx 36rpx;
  1567. font-size: 28rpx;
  1568. box-sizing: border-box;
  1569. }
  1570. </style>
  1571. <style scoped lang="scss">
  1572. .keycatebox{position: relative;
  1573. .keycatebg{position: absolute;left: 0;top: 0;bottom: 0;right: 0;z-index: 1;}
  1574. }
  1575. // 新修改的
  1576. .add_tit {
  1577. font-size: 22rpx;
  1578. color: #f00;
  1579. margin-bottom: 16rpx;
  1580. }
  1581. .npd15 {
  1582. padding: 15px;
  1583. background-color: #FFFFFF;
  1584. }
  1585. .addtit {
  1586. /* #ifndef APP-NVUE */
  1587. display: flex;
  1588. /* #endif */
  1589. flex-direction: row;
  1590. align-items: center;
  1591. padding-left: 15px;
  1592. height: 40px;
  1593. background-color: $uni-bg-color-grey;
  1594. font-weight: normal;
  1595. color: $uni-text-color;
  1596. }
  1597. .nowadd {
  1598. display: flex;
  1599. align-items: center;
  1600. background: #F2F2F2;
  1601. padding: 0px 15px;
  1602. justify-content: space-between;
  1603. height: 84rpx;
  1604. &.nowr {
  1605. justify-content: flex-end;
  1606. }
  1607. .nowaddl {
  1608. display: flex;
  1609. align-items: center;
  1610. .nowaddlimg {
  1611. width: 32rpx;
  1612. height: 32rpx;
  1613. margin-right: 16rpx;
  1614. }
  1615. .nowaddltit {
  1616. font-size: 28rpx;
  1617. &.ea0 {
  1618. color: #EA0606;
  1619. }
  1620. &.b0 {
  1621. color: #00B034;
  1622. }
  1623. }
  1624. }
  1625. }
  1626. .boxa {
  1627. display: flex;
  1628. flex-direction: column;
  1629. height: 100vh;
  1630. }
  1631. .boxflex1 {
  1632. flex: 1;
  1633. overflow-y: auto;
  1634. }
  1635. .addbox {
  1636. padding: 20rpx 34rpx;
  1637. z-index: 1;
  1638. background: #ffffff;
  1639. box-shadow: 0 14rpx 40rpx 12rpx rgba(218, 218, 218, 1);
  1640. flex: 0 0 auto;
  1641. }
  1642. .submit_btn {
  1643. width: 100%;
  1644. height: 96rpx;
  1645. background: linear-gradient(-90deg, #3C6AF8, #5E8AC6);
  1646. box-shadow: 2rpx 2rpx 6rpx 0px rgba(184,187,194,0.1500);
  1647. border-radius: 48rpx;
  1648. font-size: 34rpx;
  1649. }
  1650. .btna {
  1651. border: 1px solid #3C6AF8;
  1652. background: #ffffff;
  1653. color: #3C6AF8;
  1654. margin-bottom: 20rpx;
  1655. }
  1656. .btnb {
  1657. }
  1658. .btnc {
  1659. margin-top: 20rpx;
  1660. border:2rpx solid #DF0024;
  1661. color: #DF0024;
  1662. background: #ffffff;
  1663. }
  1664. // .submit_btns {
  1665. // width: 684rpx;
  1666. // height: 98rpx;
  1667. // border-radius: 6rpx;
  1668. // font-size: 34rpx;
  1669. // }
  1670. .bgbox {
  1671. position: fixed;
  1672. left: 0;
  1673. right: 0;
  1674. top: 0;
  1675. bottom: 0;
  1676. background: rgba(0, 0, 0, 0.2);
  1677. z-index: 3;
  1678. }
  1679. .delbox {
  1680. width: 580rpx;
  1681. background: #FFFFFF;
  1682. border-radius: 14px;
  1683. position: fixed;
  1684. top: 50%;
  1685. left: 80rpx;
  1686. right: 80rpx;
  1687. padding: 48rpx 34rpx 72rpx;
  1688. box-sizing: border-box;
  1689. z-index: 5;
  1690. margin-top: -210rpx;
  1691. .deltit {
  1692. font-size: 28rpx;
  1693. font-weight: bold;
  1694. color: #343434;
  1695. text-align: center;
  1696. line-height: 40rpx;
  1697. }
  1698. .del_img {
  1699. width: 34rpx;
  1700. height: 34rpx;
  1701. position: absolute;
  1702. right: 34rpx;
  1703. top: 44rpx;
  1704. }
  1705. .del_btn {
  1706. width: 100%;
  1707. height: 76rpx; background: linear-gradient(-90deg, #3C6AF8, #5E8AC6);
  1708. border-radius: 6rpx;
  1709. font-size: 28rpx;
  1710. font-weight: bold;
  1711. color: #FFFFFF;
  1712. text-align: center;
  1713. line-height: 76rpx;
  1714. }
  1715. .del_list {
  1716. display: flex;
  1717. padding: 60rpx 0 40rpx;
  1718. flex-wrap: wrap;
  1719. .del_lista {
  1720. width: 116rpx;
  1721. height: 64rpx;
  1722. background: #CACACA;
  1723. border-radius: 32rpx;
  1724. font-size: 26rpx;
  1725. font-weight: 500;
  1726. color: #FFFFFF;
  1727. text-align: center;
  1728. line-height: 64rpx;
  1729. margin: 0 10rpx 20rpx 0;
  1730. &.act {
  1731. background-color: #019FE8;
  1732. }
  1733. }
  1734. }
  1735. }
  1736. .form_zhan {
  1737. flex: 1;
  1738. width: 100%;
  1739. display: flex;
  1740. box-sizing: border-box;
  1741. min-height: 72rpx;
  1742. flex-direction: row;
  1743. align-items: center;
  1744. font-size: 28rpx;
  1745. color: #343434;
  1746. &.nodata {
  1747. color: #999999;
  1748. }
  1749. &.form_right {
  1750. background-color: rgb(242, 242, 242);
  1751. height: 120rpx;
  1752. padding: 10rpx;
  1753. align-items: flex-start;
  1754. }
  1755. }
  1756. .pick-line {
  1757. width: 100%;
  1758. height: 100%;
  1759. display: flex;
  1760. flex-direction: row;
  1761. align-items: center;
  1762. padding-left: 20rpx;
  1763. }
  1764. .from_image {
  1765. width: 30rpx;
  1766. height: 30rpx;
  1767. }
  1768. .delPop {
  1769. z-index: 2;
  1770. top: -10rpx;
  1771. right: -10rpx;
  1772. .circleRed {
  1773. width: 40rpx;
  1774. height: 40rpx;
  1775. background-color: red;
  1776. border-radius: 50%;
  1777. &::after,
  1778. &::before {
  1779. content: '';
  1780. width: 25rpx;
  1781. height: 5rpx;
  1782. position: absolute;
  1783. background-color: white;
  1784. top: 50%;
  1785. left: 50%;
  1786. // transform-origin:center;
  1787. }
  1788. &::after {
  1789. transform: translate(-50%, -50%) rotate(45deg);
  1790. }
  1791. &::before {
  1792. transform: translate(-50%, -50%) rotate(-45deg);
  1793. }
  1794. }
  1795. }
  1796. .img-add {
  1797. width: 120rpx;
  1798. height: 120rpx;
  1799. margin: 10rpx 3% 10rpx 0;
  1800. border-radius: 10rpx;
  1801. overflow: hidden;
  1802. background-color: #f7f7f7;
  1803. display: flex;
  1804. flex-direction: column;
  1805. justify-content: center;
  1806. .add {
  1807. padding-top: 0rpx;
  1808. display: flex;
  1809. flex-direction: column;
  1810. align-items: center;
  1811. image {}
  1812. .font {
  1813. color: #8a8a8a;
  1814. font-size: 26rpx;
  1815. }
  1816. }
  1817. }
  1818. .addbox_txt {
  1819. display: flex;
  1820. align-items: center;
  1821. justify-content: center;
  1822. margin-top: 24rpx;
  1823. .addbox_txta {
  1824. width: 28rpx;
  1825. height: 28rpx;
  1826. margin-right: 14rpx;
  1827. }
  1828. .addbox_txta1 {
  1829. font-size: 24rpx;
  1830. color: #666666;
  1831. .addbox_txt2 {
  1832. color: #3C6AF8;
  1833. }
  1834. }
  1835. }
  1836. </style>