registration.vue 77 KB

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