registration.vue 61 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723
  1. <template>
  2. <div :spinning="addIng">
  3. <!-- <div slot="title">
  4. <span style="float: left;position: relative;top: 4px">入网信息登记</span>
  5. </div>-->
  6. <!-- 步骤条-->
  7. <a-card style="margin-bottom:10px">
  8. <!-- v-model:current="current"-->
  9. <a-steps :current="current" size="default">
  10. <a-step v-for="item in steps" :key="item.title" :title="item.title"/>
  11. </a-steps>
  12. </a-card>
  13. <!--身份信息-->
  14. <a-card style="margin-bottom:10px" v-if="current==0">
  15. <div>
  16. <a-form-model
  17. ref="form"
  18. :label-col="labelCol"
  19. :wrapper-col="wrapperCol"
  20. :model="model"
  21. :rules="rules"
  22. >
  23. <div>
  24. <a-button type="link" @click="keyupInfoSelect()">身份证件号码检索</a-button>
  25. <a-row>
  26. <a-col :span="6">
  27. <a-form-model-item label="身份证件号码" prop="cardNo"v-bind="labelCol2">
  28. <a-radio-group v-model="model.cardNo" button-style="solid" slot-scope="text, record">
  29. <a-input v-model="model.cardNo" placeholder="请输入身份证件号码" @keyup="keyupInfo()" ></a-input>
  30. </a-radio-group>
  31. </a-form-model-item>
  32. </a-col>
  33. <a-col :span="6">
  34. <a-form-model-item label="身份证姓名" v-bind="labelCol2" prop="" >
  35. <a-radio-group v-model="model.cardName" button-style="solid" >
  36. <a-input v-model="model.cardName" placeholder="身份证姓名" :rules="rules.cardName" ></a-input>
  37. </a-radio-group>
  38. </a-form-model-item>
  39. </a-col>
  40. <!-- <a-col :span="8" >-->
  41. <!-- <a-form-item label="证件期限(开始日期)" v-bind="labelCol2" prop="cardStartTime">-->
  42. <!-- <j-date :show-time="true" prop="cardStartTime" date-format="YYYY-MM-DD" placeholder="请选择开始时间" class="query-group-cust" v-model="model.cardStartTime"></j-date>-->
  43. <!-- </a-form-item>-->
  44. <!-- </a-col>-->
  45. <a-col :span="12" >
  46. <a-form-item label="身份证证件有效期" v-bind="labelCol2">
  47. <j-date :show-time="true" date-format="YYYY-MM-DD" placeholder="请选择开始时间" class="query-group-cust" v-model="model.cardStartTime"></j-date>
  48. <span class="query-group-split-cust"></span>
  49. <j-date :show-time="true" date-format="YYYY-MM-DD" placeholder="请选择结束时间" class="query-group-cust" v-model="model.cardEndTime"></j-date>
  50. </a-form-item>
  51. </a-col>
  52. </a-row>
  53. </div>
  54. </a-form-model>
  55. </div>
  56. </a-card>
  57. <!-- 入网信息登记表单-->
  58. <a-card style="margin-bottom:10px" v-if="current==0">
  59. <div>
  60. <a-form-model
  61. ref="form"
  62. :label-col="labelCol"
  63. :wrapper-col="wrapperCol"
  64. :model="model"
  65. :rules="rules"
  66. >
  67. <div>
  68. <!-- <a-divider orientation="left">填写营业厅入网提示卡-->
  69. <!-- </a-divider>-->
  70. <a-row>
  71. <a-col :span="7">
  72. <a-form-model-item label="拨测联系电话" prop="userOpenState" v-bind="labelCol2">
  73. <a-radio-group v-model="model.phone" button-style="solid">
  74. <a-input v-model="model.phone" placeholder="请输入拨测联系电话"></a-input>
  75. </a-radio-group>
  76. </a-form-model-item>
  77. </a-col>
  78. <a-col :span="7">
  79. <a-form-model-item label="联电归属地" prop="userOpenState" v-bind="labelCol2">
  80. <a-radio-group v-model="model.address" button-style="solid">
  81. <a-input v-model="model.address" placeholder="请输入联电归属地"></a-input>
  82. </a-radio-group>
  83. </a-form-model-item>
  84. </a-col>
  85. <!-- <a-col :span="8">-->
  86. <!-- <a-form-model-item label="现用号码使用年限" prop="userOpenState" v-bind="labelCol2">-->
  87. <!-- <a-radio-group v-model="model.useLife" button-style="solid">-->
  88. <!-- <a-input v-model="model.useLife" placeholder="请输入使用年限"></a-input>-->
  89. <!-- </a-radio-group>-->
  90. <!-- </a-form-model-item>-->
  91. <!-- </a-col>-->
  92. <!-- <a-col :span="8">-->
  93. <!-- <a-form-model-item label="运营商类型" prop="userOpenState" v-bind="labelCol2">-->
  94. <!-- <a-radio-group v-model="model.phonePurpose" button-style="solid">-->
  95. <!-- <a-input v-model="model.phonePurpose" placeholder="请输入运营商类型"></a-input>-->
  96. <!-- </a-radio-group>-->
  97. <!-- </a-form-model-item>-->
  98. <!-- </a-col>-->
  99. <a-col :span="10">
  100. <a-form-model-item label="运营商类型" prop="userOpenState" v-bind="labelCol2">
  101. <a-radio-group v-model="model.operatorType" button-style="solid">
  102. <a-radio value="1">移动</a-radio><span v-if="this.model.yidong>5 " style="color: red">[{{ this.model.yidong }}]</span><span v-if="this.model.yidong<5 " style="color: green">[{{ this.model.yidong }}]</span>
  103. <a-radio value="2">联通</a-radio><span v-if="this.model.liantong>5 "style="color: red">[{{ this.model.liantong }}]</span><span v-if="this.model.liantong<5 "style="color: green">[{{ this.model.liantong }}]</span>
  104. <a-radio value="3">电信</a-radio><span v-if="this.model.dianxin>5 "style="color: red">[{{ this.model.dianxin }}]</span><span v-if="this.model.dianxin<5 "style="color: green">[{{ this.model.dianxin }}]</span>
  105. <a-radio value="4">其他</a-radio><span v-if="this.model.qita>5 "style="color: red">[{{ this.model.qita }}]</span><span v-if="this.model.qita<5 " style="color: green">[{{ this.model.qita }}]</span>
  106. </a-radio-group>
  107. </a-form-model-item>
  108. </a-col>
  109. </a-row>
  110. <a-row>
  111. <a-col :span="7">
  112. <a-form-model-item label="新办号码用途" prop="userOpenState" v-bind="labelCol2">
  113. <a-radio-group v-model="model.phonePurpose" button-style="solid">
  114. <a-input v-model="model.phonePurpose" placeholder="请输入用途"></a-input>
  115. </a-radio-group>
  116. </a-form-model-item>
  117. </a-col>
  118. <a-col :span="7">
  119. <a-form-model-item label="客户所属行业" prop="userOpenState" v-bind="addressCol">
  120. <a-radio-group v-model="model.industry" button-style="solid">
  121. <a-input v-model="model.industry" placeholder="客户所属行业"></a-input>
  122. </a-radio-group>
  123. </a-form-model-item>
  124. </a-col>
  125. <a-col :span="8">
  126. <a-form-model-item label="客户现用号码" prop="userOpenState" :labelCol="{ span:9 }" :wrapperCol="{ span: 15 }">
  127. <a-radio-group v-model="model.operator" button-style="solid">
  128. <a-radio value="1">本地运营商</a-radio>
  129. <a-radio value="2">异地运营商</a-radio>
  130. </a-radio-group>
  131. </a-form-model-item>
  132. </a-col>
  133. </a-row>
  134. <a-row>
  135. </a-row>
  136. <a-row>
  137. <a-col :span="15">
  138. <a-form-model-item label="拨测结果" prop="userOpenState" :labelCol="{ span: 3 }" :wrapperCol="{ span: 15 }">
  139. <a-radio-group v-model="model.calltestResults" button-style="solid">
  140. <a-radio value="1">关机</a-radio>
  141. <a-radio value="2">未接通</a-radio>
  142. <a-radio value="3">可接通不知晓入网事宜</a-radio>
  143. <a-radio value="4">可接通认可办理</a-radio>
  144. </a-radio-group>
  145. <a-button type="link" style="color: red" v-if="this.model.calltestResults==='1' ">拨测号码关机!</a-button>
  146. </a-form-model-item>
  147. </a-col>
  148. </a-row>
  149. </div>
  150. </a-form-model>
  151. </div>
  152. </a-card>
  153. <a-card style="margin-bottom:10px" v-if="current==1">
  154. <div>
  155. <a-form-model
  156. ref="form"
  157. :label-col="labelCol"
  158. :wrapper-col="wrapperCol"
  159. :model="model"
  160. :rules="rules"
  161. >
  162. <div style="">
  163. <a-list size="large" bordered>
  164. <template>
  165. <a-list-item>
  166. <a-col :span="12" >
  167. <a-form-model-item label="1、客户名下无电信号码" prop="userOpenState" v-bind="labelCol1Pro1A3">
  168. <a-radio-group v-model="model.isDxNumber" button-style="solid">
  169. <a-radio :value="1">是</a-radio>
  170. <a-radio :value="2">否</a-radio>
  171. </a-radio-group>
  172. </a-form-model-item>
  173. </a-col>
  174. <a-col :span="12">
  175. <a-form-model-item label="备注" prop="userOpenState" v-bind="labelCol1Pro">
  176. <a-textarea
  177. v-model="model.isDxNumberNote"
  178. placeholder="请输入排查结果备注信息"
  179. />
  180. </a-form-model-item>
  181. </a-col>
  182. </a-list-item>
  183. <a-list-item>
  184. <a-col :span="12">
  185. <a-form-model-item label="2、申请号码办理征信类、融合宽带业务" prop="userOpenState" v-bind="labelCol1ProMax2A7">
  186. <a-radio-group v-model="model.isBroadband" button-style="solid">
  187. <a-radio :value="1">是</a-radio>
  188. <a-radio :value="2">否</a-radio>
  189. </a-radio-group>
  190. </a-form-model-item>
  191. </a-col>
  192. <a-col :span="12">
  193. <a-form-model-item label="备注" prop="userOpenState" v-bind="labelCol1Pro">
  194. <a-textarea
  195. v-model="model.isBroadbandNote"
  196. placeholder="请输入排查结果备注信息"
  197. />
  198. </a-form-model-item>
  199. </a-col>
  200. </a-list-item>
  201. <a-list-item>
  202. <a-col :span="12">
  203. <a-form-model-item label="3、 申请号码使用用途异常" prop="userOpenState" v-bind="labelCol1ProA3">
  204. <a-radio-group v-model="model.isUseTo" button-style="solid">
  205. <a-radio :value="1">是</a-radio>
  206. <a-radio :value="2">否</a-radio>
  207. </a-radio-group>
  208. </a-form-model-item>
  209. </a-col>
  210. <a-col :span="12">
  211. <a-form-model-item label="备注" prop="userOpenState" v-bind="labelCol1Pro">
  212. <a-textarea
  213. v-model="model.isUseToNote"
  214. placeholder="请输入排查结果备注信息"
  215. />
  216. </a-form-model-item>
  217. </a-col>
  218. </a-list-item>
  219. <a-list-item>
  220. <a-col :span="12">
  221. <a-form-model-item label="4、客户名下号码存在异常高频率充值、退费" prop="userOpenState" v-bind="labelCol1ProMax4A8">
  222. <a-radio-group v-model="model.isRefund" button-style="solid">
  223. <a-radio :value="1">是</a-radio>
  224. <a-radio :value="2">否</a-radio>
  225. </a-radio-group>
  226. </a-form-model-item>
  227. </a-col>
  228. <a-col :span="12">
  229. <a-form-model-item label="备注" prop="userOpenState" v-bind="labelCol1Pro">
  230. <a-textarea
  231. v-model="model.isRefundNote"
  232. placeholder="请输入排查结果备注信息"
  233. />
  234. </a-form-model-item>
  235. </a-col>
  236. </a-list-item>
  237. <a-list-item>
  238. <a-col :span="12">
  239. <a-form-model-item label="5、客户名下已有号码(含已注销号码)存在各类关停" prop="userOpenState" v-bind="labelCol1ProMax5A6">
  240. <a-radio-group v-model="model.isShutDown" button-style="solid">
  241. <a-radio :value="1">是</a-radio>
  242. <a-radio :value="2">否</a-radio>
  243. </a-radio-group>
  244. </a-form-model-item>
  245. </a-col>
  246. <a-col :span="12">
  247. <a-form-model-item label="备注" prop="userOpenState" v-bind="labelCol1Pro">
  248. <a-textarea
  249. v-model="model.isShutDownNote"
  250. placeholder="请输入排查结果备注信息"
  251. />
  252. </a-form-model-item>
  253. </a-col>
  254. </a-list-item>
  255. <a-list-item>
  256. <a-col :span="12">
  257. <a-form-model-item label="6、客户名下在用号码无使用记录,仍要求新办号码" prop="userOpenState" v-bind="labelCol1ProMax5A6">
  258. <a-radio-group v-model="model.isNewly" button-style="solid">
  259. <a-radio :value="1">是</a-radio>
  260. <a-radio :value="2">否</a-radio>
  261. </a-radio-group>
  262. </a-form-model-item>
  263. </a-col>
  264. <a-col :span="12">
  265. <a-form-model-item label="备注" prop="userOpenState" v-bind="labelCol1Pro">
  266. <a-textarea
  267. v-model="model.isNewlyNote"
  268. placeholder="请输入排查结果备注信息"
  269. />
  270. </a-form-model-item>
  271. </a-col>
  272. </a-list-item>
  273. <a-list-item>
  274. <a-col :span="12">
  275. <a-form-model-item label="7、在多个渠道多频次入网的异常情况" prop="userOpenState" v-bind="labelCol1ProMax2A7">
  276. <a-radio-group v-model="model.isChannel" button-style="solid">
  277. <a-radio :value="1">是</a-radio>
  278. <a-radio :value="2">否</a-radio>
  279. </a-radio-group>
  280. </a-form-model-item>
  281. </a-col>
  282. <a-col :span="12">
  283. <a-form-model-item label="备注" prop="userOpenState" v-bind="labelCol1Pro">
  284. <a-textarea
  285. v-model="model.isChannelNote"
  286. placeholder="请输入排查结果备注信息"
  287. />
  288. </a-form-model-item>
  289. </a-col>
  290. </a-list-item>
  291. <a-list-item>
  292. <a-col :span="12">
  293. <a-form-model-item label="8、黑名单到期客户新入网的高危疑似涉诈号码" prop="userOpenState" v-bind="labelCol1ProMaxA8">
  294. <a-radio-group v-model="model.isInvolvingFraud" button-style="solid">
  295. <a-radio :value="1">是</a-radio>
  296. <a-radio :value="2">否</a-radio>
  297. </a-radio-group>
  298. </a-form-model-item>
  299. </a-col>
  300. <a-col :span="12">
  301. <a-form-model-item label="备注" prop="userOpenState" v-bind="labelCol1Pro">
  302. <a-textarea
  303. v-model="model.isInvolvingFraudNote"
  304. placeholder="请输入排查结果备注信息"
  305. />
  306. </a-form-model-item>
  307. </a-col>
  308. </a-list-item>
  309. </template>
  310. </a-list>
  311. </div>
  312. </a-form-model>
  313. </div>
  314. </a-card>
  315. <a-card style="margin-bottom:10px" v-if="current==2 && !this.showInfo" >
  316. <div>
  317. <a-form-model
  318. ref="form"
  319. :label-col="labelCol"
  320. :wrapper-col="wrapperCol"
  321. :model="model"
  322. :rules="rules"
  323. >
  324. <div>
  325. <a-list size="large" bordered>
  326. <a-list-item>
  327. <a-col :span="16">
  328. <a-form-model-item label="是否将高危号码上报蓝、紫名单或不可复开关停" prop="userOpenState" v-bind="labelCol1ProMaxPlus">
  329. <a-checkbox-group v-model="model.numberResults" style="width: 100%">
  330. <a-row>
  331. <template v-for="(des) in this.optionsWithDisabled">
  332. <a-col :span="8">
  333. <a-checkbox :value="des.value">{{ des.text }}</a-checkbox>
  334. </a-col>
  335. </template>
  336. </a-row>
  337. </a-checkbox-group>
  338. </a-form-model-item>
  339. </a-col>
  340. </a-list-item>
  341. <a-list-item>
  342. <a-col :span="14" >
  343. <a-form-model-item label="新办手机号码" v-bind="labelCol2" prop="" >
  344. <a-radio-group v-model="model.newPhone" button-style="solid" >
  345. <a-input v-model="model.newPhone" placeholder="新办手机号码" ></a-input>
  346. </a-radio-group>
  347. </a-form-model-item>
  348. </a-col>
  349. </a-list-item>
  350. </a-list>
  351. </div>
  352. </a-form-model>
  353. </div>
  354. </a-card>
  355. <a-card style="margin-bottom:10px" v-if="current==2 && this.showInfo " >
  356. <div>
  357. <a-form-model
  358. ref="form"
  359. :label-col="labelCol"
  360. :wrapper-col="wrapperCol"
  361. :model="model"
  362. :rules="rules"
  363. >
  364. <div id ="showInfo">
  365. <a-col :span="12">
  366. <div v-for="value in newDatas">
  367. {{value}}
  368. </div>
  369. </a-col>
  370. </div>
  371. </a-form-model>
  372. </div>
  373. </a-card>
  374. <!--附加信息-->
  375. <a-card style="margin-bottom:10px" v-show="current==0">
  376. <div>
  377. <a-form-model
  378. ref="form"
  379. :label-col="labelCol"
  380. :wrapper-col="wrapperCol"
  381. :model="model"
  382. :rules="rules"
  383. >
  384. <div>
  385. <!-- <a-divider orientation="left">附加信息-->
  386. <!-- </a-divider>-->
  387. <a-row>
  388. <a-col :span="12">
  389. <a-row>
  390. <a-col >
  391. <a-form-model-item label="营业厅地址" prop="userOpenState" v-bind="labelCol2">
  392. <a-col :span="10">
  393. <a-select placeholder="请选择分公司" v-model="sysBusinessHallAndSysCompany.company" >
  394. <a-select-option v-for="(item,index) in sysCompany" :key="item.id" :value="item.id" @click="change(item.id)">{{ item.name}}</a-select-option>
  395. </a-select>
  396. </a-col>
  397. <a-col :span="10">
  398. <a-select placeholder="请选择营业厅地址" v-model="sysBusinessHallAndSysCompany.sysBusinessHall" >
  399. <a-select-option v-for="item in sysBusinessHallList" :key="item.id" :value="item.id"
  400. @click="searchKeyWordsysBusinessHall('中国电信'+item.name,'businessAddress')">{{ item.name}}</a-select-option>
  401. </a-select>
  402. </a-col>
  403. <!-- <a-radio-group v-model="model.businessAddress" button-style="solid">-->
  404. <!-- <a-input v-model="model.businessAddress" placeholder="请输入营业厅地址" @keyup="searchKeyWord('model.businessAddress')" ></a-input>-->
  405. <!-- <div class="map_search_result" v-show="this.showsearchResultBusinessAddress" >-->
  406. <!-- <ul>-->
  407. <!-- <li click="markerResult(item,'businessAddress')" v-for="(item,index) in poiList" :key="index">{{item.name}}</li>-->
  408. <!-- </ul>-->
  409. <!-- </div>-->
  410. <!-- </a-radio-group>-->
  411. </a-form-model-item>
  412. </a-col>
  413. </a-row>
  414. <a-row>
  415. <a-col >
  416. <a-form-model-item label="工作地址" prop="userOpenState" v-bind="labelCol2">
  417. <a-radio-group v-model="model.wordAddress" button-style="solid">
  418. <a-input v-model="model.wordAddress" placeholder="请输入工作地址" @keyup="searchKeyWord('model.wordAddress')" ></a-input>
  419. <div class="map_search_result" v-show="this.showsearchResult" >
  420. <ul>
  421. <li @click="markerResult(item,'wordAddress')" v-for="(item,index) in poiList" :key="index">{{item.name}}</li>
  422. </ul>
  423. </div>
  424. </a-radio-group>
  425. </a-form-model-item>
  426. </a-col>
  427. </a-row>
  428. <!-- <a-row>-->
  429. <!-- <a-col :span="8">-->
  430. <!-- <a-form-model-item label="证件地址(到村/小区)" prop="userOpenState" v-bind="addressCol">-->
  431. <!-- <a-radio-group v-model="model.idCardAddress" button-style="solid">-->
  432. <!-- <a-input v-model="model.idCardAddress" placeholder="请输入证件地址"></a-input>-->
  433. <!-- </a-radio-group>-->
  434. <!-- </a-form-model-item>-->
  435. <!-- </a-col>-->
  436. <!-- </a-row>-->
  437. <a-row>
  438. <a-col >
  439. <a-form-model-item label="现住地址(到村/小区)" prop="userOpenState" v-bind="labelCol2">
  440. <a-radio-group v-model="model.currentAddress" button-style="solid">
  441. <a-input v-model="model.currentAddress" placeholder="请输入现住地址" @keyup="searchKeyWord('model.currentAddress')" ></a-input>
  442. <div class="map_search_result" v-show="this.showsearchcurrentAddress" >
  443. <ul>
  444. <li @click="markerResult(item,'currentAddress')" v-for="(item,index) in poiList" :key="index">{{item.name}}</li>
  445. </ul>
  446. </div>
  447. </a-radio-group>
  448. </a-form-model-item>
  449. </a-col>
  450. </a-row>
  451. <a-row>
  452. <a-col :span="20">
  453. <a-form-model-item label="" prop="userOpenState" v-bind="labelCol1Results">
  454. <a-radio-group v-model="model.judgmentResearch" button-style="solid">
  455. <a-radio value="1" style="color: red" >智能判研-异常</a-radio>
  456. <a-radio value="3" style="color: red">人工判研-异常</a-radio>
  457. <a-radio value="2" >人工判研-正常</a-radio>
  458. <a-radio value="4" >智能判研-正常</a-radio>
  459. </a-radio-group>
  460. </a-form-model-item>
  461. </a-col>
  462. </a-row>
  463. </a-col>
  464. <a-col :span="9">
  465. <div>
  466. <div id="container" :style="{width: '600px', height: '300px'}"></div>
  467. </div>
  468. </a-col>
  469. </a-row>
  470. </div>
  471. </a-form-model>
  472. </div>
  473. </a-card >
  474. <a-card style="position: relative;bottom: 0;width: 100%">
  475. <div style="text-align: center">
  476. <a-button v-if="current < steps.length - 1 && !this.showInfo" type="primary" @click="nextSteps">下一步</a-button>
  477. <a-button
  478. v-if="current == steps.length - 1 && !this.showInfo"
  479. @click="submitBusiness"
  480. type="primary"
  481. >
  482. 提交
  483. </a-button>
  484. <a-button v-if="current > 0 && !this.showInfo" style="margin-left: 8px" @click="prevSteps">上一步</a-button>
  485. <a-button @click="continueOperation" type="primary" v-if="current==2 && this.showInfo ">
  486. 继续操作
  487. </a-button>
  488. <a-button v-if="current==2 && this.showInfo " style="margin-left: 8px" @click="terminatingOperation">终止操作</a-button>
  489. </div>
  490. </a-card>
  491. </div>
  492. </template>
  493. <script>
  494. import Popup from './PopupSubTable.vue';
  495. import {httpAction, postAction, getAction} from "@api/manage";
  496. import {JeecgListMixin} from '@/mixins/JeecgListMixin'
  497. import AMapLoader from '@amap/amap-jsapi-loader'
  498. import { reactive } from 'vue';
  499. window._AMapSecurityConfig = {
  500. securityJsCode: 'f762c44f71422cd56f90acc2a8e75144' //填写你的安全密钥
  501. };
  502. export default {
  503. name: "registration",
  504. inject:['closeCurrent'],
  505. mixins: [JeecgListMixin],
  506. data() {
  507. return {
  508. sysCompany:[],
  509. sysBusinessHallList:"",
  510. cities: "",
  511. formValidate:{
  512. province:'',
  513. city:''
  514. },
  515. sysBusinessHallAndSysCompany:{
  516. sysBusinessHall:'',
  517. company:''
  518. },
  519. ruleValidate:'',
  520. countryName:"",
  521. cityName:"",
  522. country:'',
  523. lnglats: [
  524. ],
  525. map:null,
  526. lnglatMaps:new Map(),
  527. zoom: 18,
  528. center: [118.02, 24.48],
  529. searchOption: {
  530. // 限制搜索城市的范围
  531. citylimit: false,
  532. },
  533. optionsWithDisabled :
  534. [{
  535. text: '非高危',
  536. value: '1',
  537. }, {
  538. text: '已报关停',
  539. value: '3',
  540. }, {
  541. text: '已报蓝紫名单',
  542. value: '2',
  543. }],
  544. defaultValue: "",
  545. content: "",
  546. inputValue: "",
  547. mapResultList:[],
  548. searchResult: {
  549. address: "",
  550. latitude: "",
  551. longitude: "",
  552. name: "",
  553. type: "",
  554. country: "",
  555. province: "",
  556. city: "",
  557. area: "",
  558. township: "",
  559. street: "",
  560. neighborhood: "",
  561. locationName: "",
  562. },
  563. events: {
  564. click(e) {
  565. _this.center = [e.lnglat.lng, e.lnglat.lat];
  566. _this.form.lon = e.lnglat.lng;
  567. _this.form.lat = e.lnglat.lat;
  568. _this.getAddress(_this.center);
  569. _this.defaultValue = "";
  570. },
  571. },
  572. addIng: false,
  573. url: {
  574. "querySizeByCardNo":"/businessReminderCard/querySizeByCardNo",
  575. "list":"",
  576. "add": "/businessReminderCard/add",
  577. "editById": "/businessReminderCard/editById",
  578. "queryById": "/businessReminderCard/queryById",
  579. "queryByCardNo": "/businessReminderCard/queryByCardNo",
  580. "getCompany": "/sysCompany/list",
  581. },
  582. labelCol: {span: 2},
  583. wrapperCol: {span: 23},
  584. // 1列
  585. labelCol1: {
  586. labelCol: {
  587. xs: {span: 24},
  588. sm: {span: 2},
  589. },
  590. wrapperCol: {
  591. xs: {span: 24},
  592. sm: {span: 21},
  593. }
  594. },
  595. labelCol1Pro: {
  596. labelCol: {
  597. span: 8
  598. },
  599. wrapperCol: {
  600. span: 15
  601. }
  602. },
  603. labelCol1Pro1A3: {
  604. labelCol: {
  605. span: 7
  606. },
  607. wrapperCol: {
  608. span: 15
  609. }
  610. },
  611. labelCol1ProA3: {
  612. labelCol: {
  613. span: 8
  614. },
  615. wrapperCol: {
  616. span: 15
  617. }
  618. },
  619. labelCol1Results: {
  620. labelCol: {
  621. span: 5
  622. },
  623. wrapperCol: {
  624. span: 15
  625. }
  626. },
  627. labelCol1ProMax: {
  628. labelCol: {
  629. span: 8
  630. },
  631. wrapperCol: {
  632. span: 15
  633. }
  634. },labelCol1ProMax5A6: {
  635. labelCol: {
  636. span: 14
  637. },
  638. wrapperCol: {
  639. span: 5
  640. }
  641. },
  642. labelCol1ProMaxA6: {
  643. labelCol: {
  644. span: 14
  645. },
  646. wrapperCol: {
  647. span: 5
  648. }
  649. },
  650. labelCol1ProMax4A8: {
  651. labelCol: {
  652. span: 12
  653. },
  654. wrapperCol: {
  655. span: 5
  656. }
  657. },labelCol1ProMaxA8: {
  658. labelCol: {
  659. span: 13
  660. },
  661. wrapperCol: {
  662. span: 5
  663. }
  664. },
  665. labelCol1ProMax2A7: {
  666. labelCol: {
  667. span: 11
  668. },
  669. wrapperCol: {
  670. span: 5
  671. }
  672. },
  673. labelCol1ProMaxPlus: {
  674. labelCol: {
  675. span: 12
  676. },
  677. wrapperCol: {
  678. span: 12
  679. }
  680. },
  681. // 2列
  682. labelCol2: {
  683. labelCol: {
  684. span: 7
  685. },
  686. wrapperCol: {
  687. span: 16
  688. }
  689. },labelColDate: {
  690. labelCol: {
  691. span: 7
  692. },
  693. wrapperCol: {
  694. span: 14
  695. }
  696. },
  697. addressCol: {
  698. labelCol: {
  699. span: 8
  700. },
  701. wrapperCol: {
  702. span: 16
  703. }
  704. },
  705. //校验的规则
  706. rules: {
  707. cardName: [
  708. { required: true, message: '证件名不可为空...', trigger: 'blur' }
  709. ],
  710. idCardAddress: [
  711. { required: true, message: '证件名不可为空...', trigger: 'blur' }
  712. ]
  713. },
  714. poiList:'',
  715. isSizeNumberResults:'',
  716. showsearchResult:true,
  717. showsearchResultBusinessAddress:true,
  718. showsearchcurrentAddress:true,
  719. addressG:'',
  720. lnglat:{},
  721. distance:'20',
  722. distance1:'',
  723. distance2:'',
  724. distance3:'',
  725. showInfo:false,
  726. newDatas : [],
  727. //表单信息
  728. model: {
  729. industry:'',
  730. judgmentResearch:'',
  731. isShutDownNote:'',
  732. isShutDown:'',
  733. isRefundNote:'',
  734. isRefund:'',
  735. isUseToNote:'',
  736. isUseTo:'',
  737. isBroadbandNote:'',
  738. isBroadband:'',
  739. isDxNumberNote:'',
  740. isDxNumber:'',
  741. calltestResults:'',
  742. operatorType:'',
  743. yidong:0,
  744. liantong:0,
  745. dianxin:0,
  746. qita:0,
  747. operator:'',
  748. currentAddress:'',
  749. phonePurpose:'',
  750. useLife:'',
  751. address:'',
  752. isNewly:'',
  753. isNewlyNote:'',
  754. isChannel:'',
  755. isChannelNote:'',
  756. isInvolvingFraud:'',
  757. isInvolvingFraudNote:'',
  758. numberResults:[],
  759. id: null,
  760. phone:null,
  761. cardNo:'',
  762. cardName:'',
  763. cardStartTime:'',
  764. cardEndTime:'',
  765. idCardAddress:'',
  766. wordAddress:'',
  767. positionInformation:'',
  768. businessAddress:'',
  769. newPhone:''
  770. },
  771. current: 0,
  772. //步骤条
  773. steps: [
  774. {
  775. title: '入网提示卡',
  776. content: 'First-content',
  777. },
  778. {
  779. title: '排查',
  780. content: 'First-content',
  781. },
  782. {
  783. title: '后期处理',
  784. content: 'First-content',
  785. },
  786. ],
  787. }
  788. },
  789. created() {
  790. this.model.id = this.$route.query.id;
  791. },
  792. mounted() {
  793. this.queryById();
  794. //DOM初始化完成进行地图初始化
  795. this.initMap();
  796. this.getSysCompany();
  797. },
  798. methods: {
  799. getPhoneTypeSize(){
  800. let data = {
  801. "cardNo": this.model.cardNo
  802. };
  803. getAction(this.url.querySizeByCardNo, data).then((res) => {
  804. if (res.success) {
  805. let result = res.result;
  806. if (result != null) {
  807. this.model.yidong=result.yidong;
  808. this.model.dianxin=result.dianxin;
  809. this.model.liantong=result.liantong;
  810. this.model.qita=result.qita;
  811. }
  812. }
  813. })
  814. },
  815. getSysCompany(){
  816. let data = {
  817. "cardNo": this.model.cardNo
  818. };
  819. getAction(this.url.getCompany, data).then((res) => {
  820. if (res.success) {
  821. let result = res.result;
  822. console.log(result+"result");
  823. if (result != null) {
  824. this.sysCompany =result;
  825. }
  826. }
  827. })
  828. },
  829. change(val) {
  830. for (var i = 0; i < this.sysCompany.length; i++) {
  831. if (val == this.sysCompany[i].id) {
  832. this.sysBusinessHallList = this.sysCompany[i].sysBusinessHallList;
  833. }
  834. }
  835. },
  836. //新增标记
  837. showLocation(data){
  838. let marker = new AMap.Marker({
  839. position: new AMap.LngLat( data[0],data[1]) //参数为经纬度
  840. })
  841. this.map.clearMap()// 清除所有覆盖物(点标志)
  842. this.map.add(marker)// 添加点标志
  843. this.showInfoWindow(marker);//自定义信息窗体
  844. },
  845. //自定义信息窗体
  846. showInfoWindow(marker){
  847. let infoWindow = new AMap.InfoWindow({
  848. isCustom: true, //是否自定义信息窗体
  849. content: `<div style="background-color: white;padding: 0 5px; border-radius: 5px;border: 1px solid #cccccc;"> 地址:${this.model.wordAddress}</div>`,
  850. closeWhenClickMap: true,
  851. zIndex: 999,
  852. offset: new AMap.Pixel(16, -35)
  853. });
  854. infoWindow.open(this.map, marker.getPosition());
  855. },
  856. /** 初始化搜索 */
  857. mapSearchInit(){
  858. let autoOptions = {
  859. input: "tipInput",
  860. }
  861. let autoCompleteComponent= new AMap.Autocomplete(autoOptions);
  862. this.autoCompleteComponent = autoCompleteComponent;
  863. // 注册placeSearch组件
  864. this.placeSearchComponent = new AMap.PlaceSearch()
  865. },
  866. searchKeyWordsysBusinessHall(data,nameType){
  867. let that= this
  868. that.placeSearchComponent.search(data, function (status, result) {
  869. if(status==='complete' && result.info === "OK"){
  870. that.showsearchResultBusinessAddress = true
  871. that.showsearchResult = false
  872. that.showsearchcurrentAddress = false
  873. that.poiList = result.poiList.pois
  874. that.markerResult(that.poiList[0],'businessAddress')
  875. }else{
  876. that.showsearchResultBusinessAddress = false
  877. that.showsearchResult = false
  878. that.showsearchcurrentAddress = false
  879. that.poiList = []
  880. //that.$message.warning("没有查到结果");
  881. }
  882. })
  883. },
  884. //根据输入内容查询
  885. searchKeyWord(data){
  886. let that= this
  887. if (data==='model.wordAddress'){
  888. this.showsearchResult = true;
  889. that.placeSearchComponent.search(that.model.wordAddress, function (status, result) {
  890. if(status==='complete' && result.info === "OK"){
  891. that.showsearchResultBusinessAddress = false
  892. that.showsearchResult = true
  893. that.showsearchcurrentAddress = false
  894. that.poiList = result.poiList.pois
  895. }else{
  896. that.showsearchResult = false
  897. that.showsearchResultBusinessAddress = false;
  898. that.showsearchcurrentAddress = false
  899. that.poiList = []
  900. //that.$message.warning("没有查到结果");
  901. }
  902. })
  903. }
  904. if (data==='model.businessAddress'){
  905. this.showsearchResultBusinessAddress = true;
  906. that.placeSearchComponent.search(that.model.businessAddress, function (status, result) {
  907. if(status==='complete' && result.info === "OK"){
  908. that.showsearchResultBusinessAddress = true
  909. that.showsearchResult = false
  910. that.showsearchcurrentAddress = false
  911. that.poiList = result.poiList.pois
  912. }else{
  913. that.showsearchResultBusinessAddress = false
  914. that.showsearchResult = false
  915. that.showsearchcurrentAddress = false
  916. that.poiList = []
  917. //that.$message.warning("没有查到结果");
  918. }
  919. })
  920. }
  921. if (data==='model.currentAddress'){
  922. this.showsearchcurrentAddress = true;
  923. that.placeSearchComponent.search(that.model.currentAddress, function (status, result) {
  924. if(status==='complete' && result.info === "OK"){
  925. that.showsearchcurrentAddress = true
  926. that.showsearchResult = false
  927. that.showsearchResultBusinessAddress = false
  928. that.poiList = result.poiList.pois
  929. }else{
  930. that.showsearchcurrentAddress = false
  931. that.showsearchResultBusinessAddress = false
  932. that.showsearchResult = false
  933. that.poiList = []
  934. //that.$message.warning("没有查到结果");
  935. }
  936. })
  937. }
  938. },
  939. getdiscount(lat1,lng1,lat2,lng2){
  940. // console.log(paramObj)
  941. var lng1 = lng1
  942. var lat1 = lat1
  943. var lng2 = lng2
  944. var lat2 = lat2
  945. var radLat1 = lat1*Math.PI / 180.0;
  946. var radLat2 = lat2*Math.PI / 180.0;
  947. var a = radLat1 - radLat2;
  948. var b = lng1*Math.PI / 180.0 - lng2*Math.PI / 180.0;
  949. var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) +
  950. Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2)));
  951. s = s *6378.137 ;// EARTH_RADIUS;
  952. s = Math.round(s * 10000) / 10000;
  953. s = s * 1000
  954. if (isNaN(s)) {
  955. return 0+'m';
  956. }
  957. if (s > 1000) {
  958. // 大于1000米时
  959. s = Math.floor(s/1000 * 100) / 100;
  960. s = s + 'km'
  961. } else {
  962. // 小于1000米直接返回
  963. s = s + 'm'
  964. }
  965. this.distance=s;
  966. return s;
  967. },
  968. space(lat1, lng1, lat2, lng2) {
  969. console.log(lat1, lng1, lat2, lng2)
  970. var radLat1 = lat1 * Math.PI / 180.0;
  971. var radLat2 = lat2 * Math.PI / 180.0;
  972. var a = radLat1 - radLat2;
  973. var b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0;
  974. var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) +
  975. Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
  976. s = s * 6378.137;
  977. s = Math.round(s * 10000) / 10000;
  978. return s // 单位千米
  979. },
  980. carGPSIP(data) {
  981. var map = new AMap.Map("container", {resizeEnable: true});//初始化地图
  982. //信息窗口实例
  983. var infoWindow = new AMap.InfoWindow({offset: new AMap.Pixel(0, -30)});
  984. //遍历生成多个标记点
  985. data.forEach((val,key) => {
  986. console.log("属性:" + key + ",值:"+ data.get(key));
  987. console.log("wordAddressname".indexOf("name"));
  988. console.log(key.includes("name"));
  989. if (!key.includes("name")){
  990. var marker = new AMap.Marker({
  991. position: data.get(key),//不同标记点的经纬度
  992. map: map
  993. });
  994. marker.content = data.get(key+'name') ;
  995. marker.on('click', markerClick);
  996. marker.emit('click', {target: marker});//默认初始化不出现信息窗体,打开初始化就出现信息窗体
  997. }
  998. })
  999. function markerClick(e) {
  1000. infoWindow.setContent(e.target.content);
  1001. infoWindow.open(map, e.target.getPosition());
  1002. }
  1003. map.setFitView();
  1004. },
  1005. //选择搜索的内容
  1006. markerResult(data,nameType){
  1007. if (nameType==='wordAddress'){
  1008. this.model.wordAddress =data.name ;
  1009. }
  1010. if (nameType==='businessAddress'){
  1011. this.model.businessAddress =data.name ;
  1012. }
  1013. if (nameType==='currentAddress'){
  1014. this.model.currentAddress =data.name ;
  1015. }
  1016. this.lnglatMaps ;
  1017. console.log(data)
  1018. this.showsearchResult = false;
  1019. this.showsearchResultBusinessAddress = false;
  1020. this.showsearchcurrentAddress = false;
  1021. //this.model.wordAddress = data.name; //地点名称
  1022. var marker = new AMap.Marker({
  1023. position: [Number(data.location.lng),Number(data.location.lat)],//地点名称 坐标
  1024. });
  1025. //this.map.clearMap()// 清除所有覆盖物(点标志)
  1026. //this.map.add(marker)// 添加点标志
  1027. //this.showInfoWindow(marker);
  1028. this.lnglatMaps.set(nameType, [Number(data.location.lng),Number(data.location.lat)]);
  1029. this.lnglatMaps.set(nameType+'name', data.name);
  1030. if (this.lnglatMaps.size>6){
  1031. this.lnglatMaps.clear();
  1032. }
  1033. //this.lnglats.push( [Number(data.location.lng),Number(data.location.lat)]); //添加坐标
  1034. // if (this.model.wordAddress ===null || this.model.businessAddress===null || this.model.currentAddress===null){
  1035. // return;
  1036. // }
  1037. // if (this.lnglatMaps.size===4){
  1038. this.carGPSIP(this.lnglatMaps);//各个点分别显示坐标
  1039. //}
  1040. setTimeout(() => {
  1041. this.map.setCenter(data.location);
  1042. this.map.setZoom(15);
  1043. }, 50)
  1044. let thisPosition = {
  1045. mapAddress: this.model.wordAddress,
  1046. lng: data.location.lng,
  1047. lat: data.location.lat
  1048. };
  1049. var map = new Map();
  1050. map.set("lng",data.location.lng);
  1051. map.set("lat",data.location.lat);
  1052. this.mapResultList.push(map) ;
  1053. console.log(data.location.lng +data.location.lat +"thisPosition")
  1054. this.$emit("select",thisPosition)
  1055. if ( this.lnglatMaps.size===6){
  1056. var currentAddressD= this.lnglatMaps.get("currentAddress");
  1057. var wordAddressD= this.lnglatMaps.get("wordAddress");
  1058. var businessAddressD= this.lnglatMaps.get("businessAddress");
  1059. this.distance1= this.space(currentAddressD[1],currentAddressD[0],businessAddressD[1],businessAddressD[0]);//现住地址 营业厅地址
  1060. this.distance2= this.space(wordAddressD[1],wordAddressD[0],businessAddressD[1],businessAddressD[0]);//工作地址 营业厅地址
  1061. this.distance3= this.space(currentAddressD[1],currentAddressD[0],wordAddressD[1],wordAddressD[0]);//现住地址 工作地址
  1062. if(parseFloat(this.distance1)>parseFloat(this.distance) || parseFloat(this.distance2)>parseFloat(this.distance) ||parseFloat(this.distance3)>parseFloat(this.distance)){
  1063. this.model.judgmentResearch = "1";
  1064. }else {
  1065. this.model.judgmentResearch = "4";
  1066. }
  1067. }
  1068. },
  1069. // 获取详细地址
  1070. getAddress(center) {
  1071. let _this = this;
  1072. let geocoder = new AMap.Geocoder({});
  1073. geocoder.getAddress(center, function (status, result) {
  1074. if (status === "complete" && result.info === "OK") {
  1075. let obj = result.regeocode.addressComponent;
  1076. let locationName =
  1077. obj.province +
  1078. obj.city +
  1079. obj.district +
  1080. obj.township +
  1081. obj.street +
  1082. obj.streetNumber;
  1083. _this.form.address = locationName;
  1084. }
  1085. });
  1086. },
  1087. initMap(){
  1088. AMapLoader.load({
  1089. key:"8e513e3c374bdb2dd0095cd337b02ee6", // 申请好的Web端开发者Key,首次调用 load 时必填
  1090. version:"2.0", // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
  1091. plugins: [
  1092. 'AMap.ToolBar',
  1093. 'AMap.Scale',
  1094. 'AMap.Geolocation',
  1095. 'AMap.PlaceSearch',
  1096. 'AMap.AutoComplete',
  1097. 'AMap.Geocoder',
  1098. 'AMap.CitySearch',
  1099. 'AMap.RangingTool' // 这个就是测距插件
  1100. ],
  1101. resizeEnable: true,
  1102. }).then((AMap)=>{
  1103. const that = this;
  1104. that.map = new AMap.Map("container",{ //设置地图容器id
  1105. viewMode:"3D", //是否为3D地图模式
  1106. zoom:12, //初始化地图级别
  1107. });
  1108. that.handleClick(AMap)//地图选点
  1109. that.map.addControl(new AMap.Scale()) // 在图面添加比例尺控件,展示地图在当前层级和纬度下的比例尺
  1110. that.map.addControl(new AMap.ToolBar()) //在图面添加鹰眼控件,在地图右下角显示地图的缩略图
  1111. that.geocoder = new AMap.Geocoder()
  1112. that.mapSearchInit()
  1113. }).catch(e=>{
  1114. console.log(e);
  1115. })
  1116. },
  1117. //点击地图获取地理位置
  1118. handleClick(){
  1119. this.map.on('click', (e) => {
  1120. let lng = e.lnglat.lng
  1121. let lat = e.lnglat.lat
  1122. let marker = new AMap.Marker({
  1123. position: new AMap.LngLat(lng, lat)
  1124. })
  1125. this.map.clearMap()// 清除所有覆盖物(点标志)
  1126. this.map.add(marker)// 添加点标志
  1127. let lnglat = [lng, lat]
  1128. let that = this
  1129. that.geocoder.getAddress(lnglat, function (status, result) {
  1130. if (status === 'complete' && result.regeocode) {
  1131. that.address = result.regeocode.formattedAddress;
  1132. that.showInfoWindow(marker);//自定义信息窗体
  1133. let thisPosition = {
  1134. address: that.address,
  1135. lng: lng,
  1136. lat: lat
  1137. };
  1138. that.$emit("select",thisPosition) //返回给父组件
  1139. } else {
  1140. this.$message.error('根据经纬度查询地址失败')
  1141. }
  1142. })
  1143. })
  1144. },
  1145. //获取当前定位
  1146. getCurrentLocation(){
  1147. const that = this;
  1148. that.geolocation = new AMap.Geolocation({
  1149. timeout: 3000, //超过3秒后停止定位,默认:5s
  1150. enableHighAccuracy: true,
  1151. zoomToAccuracy: true, //定位成功后是否自动调整地图视野到定位点
  1152. });
  1153. that.geolocation.getCurrentPosition(function(status,result){
  1154. //备注:getCurrentPosition方法会调用超时或失败:
  1155. //Get geolocation time out:浏览器定位超时,包括原生的超时,可以适当增加超时属性的设定值以减少这一现象。
  1156. //另外还有个别浏览器(如google Chrome浏览器等)本身的定位接口是黑洞,通过其请求定位完全没有回应,也会超时返回失败。
  1157. //Get geolocation failed:定位失败,Chrome、火狐以及部分套壳浏览器接入的定位服务在国外,有较大限制,失败率高。
  1158. console.log(status,result);
  1159. if(status=='complete'){
  1160. that.onComplete(result)
  1161. }else{
  1162. that.onError(result) //失败后可使用getCityInfo获取非精准定位(具体到省市)
  1163. }
  1164. });
  1165. },
  1166. //解析定位结果
  1167. onComplete(data) {
  1168. console.log('定位结果:' + data.position) //经纬度信息
  1169. let lnglat = data.position;
  1170. let marker = new AMap.Marker({ //创建标记
  1171. position: new AMap.LngLat(lnglat[0], lnglat[1])
  1172. })
  1173. this.map.clearMap()// 清除所有覆盖物(点标志)
  1174. this.map.add(marker)// 添加点标志
  1175. let that = this
  1176. //经纬度转换为中文地址详情
  1177. that.geocoder.getAddress(lnglat, function (status, result) {
  1178. if (status === 'complete' && result.regeocode) {
  1179. that.address = result.regeocode.formattedAddress;
  1180. that.showInfoWindow(marker);//自定义信息窗体
  1181. } else {
  1182. this.$message.error('根据经纬度查询地址失败')
  1183. }
  1184. })
  1185. },
  1186. //解析定位错误信息
  1187. onError(data) {
  1188. this.getLngLatLocation()
  1189. },
  1190. //在获取具体定位失败时调用的代码:(非精准定位!!!)
  1191. getLngLatLocation() {
  1192. const that = this;
  1193. that.geolocation.getCityInfo(function (status, result) {
  1194. if (status === 'complete') {
  1195. let data = result.position
  1196. that.address = result.province + result.city;
  1197. that.showLocation(data)
  1198. } else {
  1199. this.$message.error('获取地址失败')
  1200. }
  1201. })
  1202. },
  1203. keyupInfoSelect(){
  1204. if (this.model.cardNo===''){
  1205. return;
  1206. }
  1207. this.closeCurrent();
  1208. this.$router.push({ path: '/network/PopupSub', query:{cardNo:this.model.cardNo}});
  1209. },
  1210. keyupInfo(){
  1211. //身份证输入查询
  1212. if (this.model.cardNo.length ===15 || this.model.cardNo.length ===18){
  1213. let that = this;
  1214. let data = {
  1215. "cardNo": this.model.cardNo
  1216. }
  1217. this.getPhoneTypeSize();
  1218. getAction(that.url.queryByCardNo, data).then((res) => {
  1219. if (res.success) {
  1220. let result = res.result;
  1221. let view =this.model;
  1222. if (result != null) {
  1223. for (var i in result) {
  1224. Object.keys(view).forEach(function(key){
  1225. view[key]=result[i][key];
  1226. })
  1227. this.isSizeNumberResults =result[i]["isSizeNumberResults"];
  1228. }
  1229. if (result[i]["isSizeNumberResults"]==='is'){
  1230. this.$confirm({
  1231. title: "确认是否继续...",
  1232. content: '该用户有多个不友好研判结果',
  1233. onOk: function () {
  1234. },
  1235. onCancel:function (){
  1236. Object.keys(view).forEach(function(key){
  1237. view[key]='';
  1238. })
  1239. }
  1240. });
  1241. }
  1242. }
  1243. // this.$refs.modalDetail.detail( );
  1244. // this.$refs.modalDetail.title = "详情";
  1245. }
  1246. })
  1247. }
  1248. },
  1249. /**获取详情*/
  1250. queryById() {
  1251. let that = this;
  1252. let data = {
  1253. "id": that.model.id
  1254. }
  1255. getAction(that.url.queryById, data).then((res) => {
  1256. if (res.success) {
  1257. let result = res.result;
  1258. if (result != null) {
  1259. for (var i in result) {
  1260. that.model[i] = result[i] == null ? null : result[i].toString();
  1261. }
  1262. }
  1263. }
  1264. })
  1265. },
  1266. /**下一步骤*/
  1267. nextSteps() {
  1268. // if (this.current===0){
  1269. // const newDatas = [];
  1270. // let message = '';
  1271. // const h = this.$createElement
  1272. // if (this.model.cardNo==='' || this.model.cardNo===null){
  1273. // newDatas.push(h('p', null, '<身份证件号码> 不可为空... '))
  1274. //
  1275. // }
  1276. // if (this.model.cardName==='' || this.model.cardName===null){
  1277. // newDatas.push(h('p', null, '<身份证件姓名> 不可为空... '))
  1278. //
  1279. // }
  1280. // // if (this.model.idCardAddress==='' || this.model.idCardAddress===null){
  1281. // // newDatas.push(h('p', null, '<身份证件地址> 不可为空...... '))
  1282. // // message=message+ '<身份证件地址> 不可为空... '+<br/>
  1283. // // }
  1284. // if (this.model.cardStartTime===''|| this.model.cardStartTime===null){
  1285. // newDatas.push(h('p', null, '<身份证件开始时间> 不可为空... '))
  1286. // }
  1287. // if (this.model.cardEndTime==='' || this.model.cardEndTime===null){
  1288. // newDatas.push(h('p', null, '<身份证件截止日期> 不可为空... '))
  1289. // }
  1290. // if (this.model.phone==='' ||this.model.phone===null){
  1291. // newDatas.push(h('p', null, '<拨测联系电话> 不可为空... '))
  1292. // }
  1293. // if (this.model.address===''|| this.model.address===null){
  1294. // newDatas.push(h('p', null, '<联电归属地> 不可为空... '))
  1295. // }
  1296. // // if (this.model.useLife==='' || this.model.useLife===null){
  1297. // // newDatas.push(h('p', null, '<号码使用年限> 不可为空... '))
  1298. // // }
  1299. // if (this.model.phonePurpose==='' || this.model.phonePurpose===null){
  1300. // newDatas.push(h('p', null, '<号码使用用途> 不可为空... '))
  1301. // }
  1302. // // if (this.model.idCardAddress==='' ||this.model.idCardAddress=== null){
  1303. // // newDatas.push(h('p', null, '<证件地址(到村/小区)> 不可为空... '))
  1304. // // }
  1305. // if (this.model.currentAddress==='' || this.model.currentAddress===null){
  1306. // newDatas.push(h('p', null, '<现住地址(到村/小区)> 不可为空... '))
  1307. // }
  1308. // if (this.model.operator==='' || this.model.operator===null){
  1309. // newDatas.push(h('p', null, '<客户现用号码> 不可为空... '))
  1310. // }
  1311. // if (this.model.operatorType==='' || this.model.operatorType===null){
  1312. // newDatas.push(h('p', null, '<运营商类型> 不可为空... '))
  1313. // }
  1314. // if (this.model.calltestResults==='' ||this.model.calltestResults===null){
  1315. // newDatas.push(h('p', null, '<拨测结果> 不可为空... '))
  1316. // }
  1317. // // if (this.model.positionInformation==='' || this.model.positionInformation===null){
  1318. // // newDatas.push(h('p', null, '<位置信息> 不可为空... '))
  1319. // // }
  1320. // if (this.model.wordAddress===''|| this.model.wordAddress===null){
  1321. // newDatas.push(h('p', null, '<工作地址> 不可为空... '))
  1322. // }
  1323. // if (this.model.businessAddress===''|| this.model.businessAddress===null){
  1324. // newDatas.push(h('p', null, '<营业厅地址> 不可为空... '))
  1325. // }
  1326. // if (newDatas.length!==0){
  1327. // this.$confirm({
  1328. // title: "入网提示卡页签有未输入值...",
  1329. // content: h('div', null, newDatas),
  1330. // // message: h('div', null, newDatas),
  1331. // onOk: function () {
  1332. //
  1333. // },
  1334. // onCancel:function (){
  1335. //
  1336. // }
  1337. // });
  1338. // return;
  1339. // }
  1340. // }
  1341. if (this.current===1){
  1342. let that = this;
  1343. console.info(this.model.calltestResults);
  1344. that.addIng == false
  1345. let data=this.getData();
  1346. let id = that.model.id;
  1347. let i=1 ;
  1348. let dataMessage ='';
  1349. const h = this.$createElement
  1350. this.newDatas=[];
  1351. if( data["calltestResults"] ==='2'){
  1352. this.newDatas.push( i++ +'、该用户拨测号码未接通 请确认是否继续操作 。 ' )
  1353. } if( data["calltestResults"] ==='1'){
  1354. this.newDatas.push( i++ +'、该用户拨测号码关机 请确认是否继续操作 。 ')
  1355. }if(this.isSizeNumberResults==='is' ){
  1356. this.newDatas.push( i++ +' 、该用户有多个不友好研判结果 请确认是否继续操作 。 ' )
  1357. }if(parseFloat(this.distance1)>parseFloat(this.distance) ){
  1358. this.newDatas.push( i++ +' 、该用户现住地址(到村/小区),营业厅地址 距离过远 请确认是否继续操作 。 ')
  1359. }if( parseFloat(this.distance2)>parseFloat(this.distance) ){
  1360. this.newDatas.push( i++ +' 、该用户 工作地址 , 营业厅地址 距离过远 请确认是否继续操作 。 ')
  1361. }if(parseFloat(this.distance3)>parseFloat(this.distance) ){
  1362. this.newDatas.push( i++ +' 、该用户现住地址(到村/小区),工作地址距离过远 请确认是否继续操作 。 ')
  1363. }
  1364. if (this.newDatas.length===0){
  1365. //newDatas.push(h('p', null, i++ +'、 暂无风险提示 请继续操作。 '))
  1366. }else{
  1367. this.showInfo =true;
  1368. //document.getElementById('showInfo').innerHTML = h('div', null, this.newDatas)
  1369. // this.$confirm({
  1370. // okText: '继续操作',
  1371. // cancelText: '终止操作',
  1372. // title: "确认是否继续",
  1373. // content: h('div', null, newDatas),
  1374. // onOk: function () {
  1375. //
  1376. // } ,
  1377. // onCancel:function (){
  1378. // data['status']="0";//中断提交
  1379. // that.submit(data,id)
  1380. // }
  1381. // });
  1382. }
  1383. }
  1384. if (this.current < this.steps.length) {
  1385. this.current = this.current + 1;
  1386. }
  1387. },
  1388. /**上一步骤*/
  1389. prevSteps() {
  1390. if (this.current != 0) {
  1391. this.current = this.current - 1;
  1392. }
  1393. },
  1394. getData(){
  1395. var arr='';
  1396. if (this.model.numberResults === "undefined"){
  1397. arr =this.model.numberResults.join(",");
  1398. }
  1399. let data = {
  1400. "sysBusinessHall":this.sysBusinessHallAndSysCompany.sysBusinessHall,
  1401. "company":this.sysBusinessHallAndSysCompany.company,
  1402. //用户id
  1403. "id": this.model.id,
  1404. //联电归属地
  1405. "address": this.model.address,
  1406. //拨测联系电话
  1407. "phone": this.model.phone,
  1408. //拨测结果
  1409. "calltestResults": this.model.calltestResults,
  1410. //证件地址
  1411. "idCardAddress": this.model.idCardAddress,
  1412. //现住地址
  1413. "currentAddress": this.model.currentAddress,
  1414. //现用号码运营商
  1415. "operator": this.model.operator,
  1416. //现用号码运营商类型
  1417. "operatorType": this.model.operatorType,
  1418. //现用号码运营商类型备注
  1419. "operatorTypeNote": this.model.operatorTypeNote,
  1420. //现用号码使用年限
  1421. "useLife": this.model.useLife,
  1422. //现用号码使用用途
  1423. "phonePurpose": this.model.phonePurpose,
  1424. //客户名下无电信号码
  1425. "isDxNumber": this.model.isDxNumber,
  1426. //客户名下无电信号码备注
  1427. "isDxNumberNote": this.model.isDxNumberNote,
  1428. //申请号码办理征信类、融合宽带业务
  1429. "isBroadband": this.model.isBroadband,
  1430. //申请号码办理征信类、融合宽带业务备注
  1431. "isBroadbandNote": this.model.isBroadbandNote,
  1432. //申请号码使用用途异常
  1433. "isUseTo": this.model.isUseTo,
  1434. //申请号码使用用途异常备注
  1435. "isUseToNote": this.model.isUseToNote,
  1436. //客户名下号码存在异常高频率充值、退费
  1437. "isRefund": this.model.isRefund,
  1438. //客户名下号码存在异常高频率充值、退费备注
  1439. "isRefundNote": this.model.isRefundNote,
  1440. //客户名下已有号码(含已注销号码)存在各类关停
  1441. "isShutDown": this.model.isShutDown,
  1442. //客户名下已有号码(含已注销号码)存在各类关停备注
  1443. "isShutDownNote": this.model.isShutDownNote,
  1444. //客户名下在用号码无使用记录,仍要求新办号码
  1445. "isNewly": this.model.isNewly,
  1446. //客户名下在用号码无使用记录,仍要求新办号码备注
  1447. "isNewlyNote": this.model.isNewlyNote,
  1448. //在多个渠道多频次入网的异常情况
  1449. "isChannel": this.model.isChannel,
  1450. //在多个渠道多频次入网的异常情况备注
  1451. "isChannelNote": this.model.isChannelNote,
  1452. //黑名单到期客户新入网的高危疑似涉诈号码
  1453. "isInvolvingFraud": this.model.isInvolvingFraud,
  1454. //黑名单到期客户新入网的高危疑似涉诈号码备注
  1455. "isInvolvingFraudNote": this.model.isInvolvingFraudNote,
  1456. //是否将高危号码上报蓝、紫名单或不可复开关停
  1457. "numberResults": arr,
  1458. "cardNo":this.model.cardNo,
  1459. "cardName":this.model.cardName,
  1460. "cardStartTime":this.model.cardStartTime,
  1461. "endStartTime":this.model.endStartTime,
  1462. "wordAddress":this.model.wordAddress,
  1463. "businessAddress":this.model.businessAddress,
  1464. "positionInformation":this.model.positionInformation,
  1465. "status":''
  1466. };
  1467. return data;
  1468. },
  1469. submit(data,id){
  1470. let mes = '提交成功';
  1471. if (data["status"]==='0'){
  1472. mes="终止操作 数据保存成功! "
  1473. }
  1474. if (id == null){
  1475. postAction("/businessReminderCard/add", data).then((res) => {
  1476. if (res.success) {
  1477. this.clearModel()
  1478. this.$message.success(mes, 7);
  1479. this.addIng == true
  1480. } else {
  1481. this.$message.error("提交失败");
  1482. this.addIng == true;
  1483. }
  1484. })
  1485. }else {
  1486. postAction("/businessReminderCard/editById", data).then((res) => {
  1487. if (res.success) {
  1488. this.clearModel()
  1489. this.$message.success(mes, 7);
  1490. this.addIng == true
  1491. this.$router.go(-1);
  1492. this.closeCurrent();
  1493. } else {
  1494. this.$message.error("修改失败");
  1495. this.addIng == true;
  1496. }
  1497. })
  1498. }
  1499. },
  1500. //继续操作
  1501. continueOperation(){
  1502. this.showInfo=false;
  1503. },
  1504. //终止操作
  1505. terminatingOperation(){
  1506. let data=this.getData();
  1507. data['status']="0";//中断提交
  1508. this.showInfo=false;
  1509. this.submit(data,this.model.id)
  1510. },
  1511. /**新增*/
  1512. submitBusiness() {
  1513. let that = this;
  1514. that.addIng == false
  1515. let data=this.getData();
  1516. let id = that.model.id;
  1517. let i=1 ;
  1518. let dataMessage ='';
  1519. const h = this.$createElement
  1520. const newDatas = [];
  1521. data['status']="1";//确认提交
  1522. this.submit(data,id)
  1523. // if( data["calltestResults"] ==='2'){
  1524. // newDatas.push(h('p', null, i++ +'、该用户拨测号码未接通 请确认风险 。 '))
  1525. //
  1526. // }if(this.isSizeNumberResults==='is' ){
  1527. // newDatas.push(h('p', null, i++ +' 、该用户有多个不友好研判结果 请确认风险 。 '))
  1528. //
  1529. // }if(this.isSizeNumberResults==='is' ){
  1530. // newDatas.push(h('p', null, i++ +' 、该用户现住地址(到村/小区),工作地址,营业厅地址距离过远 请确认风险 。 '))
  1531. //
  1532. // }else{
  1533. // newDatas.push(h('p', null, i++ +' 暂无风险提示 请继续。 '))
  1534. // }
  1535. //
  1536. // this.$confirm({
  1537. // title: "确认是否继续提交",
  1538. // content: h('div', null, newDatas),
  1539. // onOk: function () {
  1540. // if (id == null){
  1541. // postAction("/businessReminderCard/add", data).then((res) => {
  1542. // if (res.success) {
  1543. // that.clearModel()
  1544. // that.$message.success("提交成功", 7);
  1545. // that.addIng == true
  1546. // } else {
  1547. // that.$message.error("提交失败");
  1548. // that.addIng == true;
  1549. // }
  1550. // })
  1551. // }else {
  1552. // postAction("/businessReminderCard/editById", data).then((res) => {
  1553. // if (res.success) {
  1554. // that.clearModel()
  1555. // this.$message.success("修改成功", 7);
  1556. // that.addIng == true
  1557. // this.$router.go(-1);
  1558. // this.closeCurrent();
  1559. // } else {
  1560. // this.$message.error("修改失败");
  1561. // that.addIng == true;
  1562. // }
  1563. // })
  1564. //
  1565. // }
  1566. // }
  1567. // });
  1568. },
  1569. /**充值表单*/
  1570. clearModel() {
  1571. this.model = {}
  1572. this.current = 0;
  1573. },
  1574. },
  1575. }
  1576. </script>
  1577. <style scoped>
  1578. .is-error{
  1579. border-color:red
  1580. }
  1581. </style>