registration.vue 57 KB

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