| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692 |
- <template>
- <div class="insurancePolicy">
- <el-form ref="InsurancePolicyRefs" :model="insurancePolicyForm" :rules="insurancePolicyRules">
- <el-row :gutter="20" class="formItem">
- <el-col :span="6">
- <el-form-item label="业务员:" style="margin-top: 10px">
- <el-input v-model="insurancePolicyForm.salesman" placeholder="输入业务员工姓名,手机号,工号查找" @click="handleFocus"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6" v-if="insurancePolicyForm.salesman">
- <el-form-item label="手机号:" style="margin-top: 10px">
- <el-input v-model="insurancePolicyForm.mobile" disabled></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6" v-if="insurancePolicyForm.salesman">
- <el-form-item label="归属:" style="margin-top: 10px">
- <el-cascader
- clearable
- style="width: 100%"
- v-model="insurancePolicyForm.deptId"
- :options="institutionList"
- :props="tableProps"
- ></el-cascader>
- </el-form-item>
- </el-col>
- <el-col :span="6" v-if="insurancePolicyForm.salesman">
- <el-button link type="primary" @click="handleFocus" style="margin-top: 10px">更换业务员</el-button>
- </el-col>
- </el-row>
- <el-collapse v-model="activeName">
- <el-collapse-item name="car">
- <template #title>
- <span class="title">车辆信息</span>
- </template>
- <el-row :gutter="20" class="formItem formBlock">
- <el-col :span="6">
- <el-form-item label="车辆是否上牌?" prop="isRegistered">
- <el-radio-group v-model="insurancePolicyForm.isRegistered">
- <el-radio value="1">是</el-radio>
- <el-radio value="2">否</el-radio>
- </el-radio-group>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item :disabled="insurancePolicyForm.isRegistered==2" label="车牌" prop="licenseNo">
- <el-input v-model="insurancePolicyForm.licenseNo" minlength="7" maxlength="8" placeholder="输入车牌号" @change="getQuoteNumber"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="车牌识别代码" prop="vinNo">
- <el-input v-model="insurancePolicyForm.vinNo" placeholder="请输入车辆识别代码" @change="getQuoteNumber">
- <template #append>
- <el-button icon="Search" @click="handleCarNumber" />
- </template>
- </el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="品牌型号" prop="brandName">
- <el-input v-model="insurancePolicyForm.brandName" placeholder="请输入品牌型号">
- <template #append>
- <el-button icon="Search" @click="handleCarCode" />
- </template>
- </el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="发动机号" prop="engineNo">
- <el-input v-model="insurancePolicyForm.engineNo" placeholder="请输入发动机号" @change="getQuoteNumber"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="使用性质" prop="carNatureCode">
- <el-select v-model="insurancePolicyForm.carNatureCode" placeholder="请选择">
- <el-option v-for="(item, index) in optionObj.car_nature_code" :label="item.label" :value="item.value" :key="item.value"></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="车辆用途" prop="vehicleUseCode">
- <el-select v-model="insurancePolicyForm.vehicleUseCode" placeholder="请选择">
- <el-option v-for="(item, index) in optionObj.vehicle_use_code" :label="item.label" :value="item.value" :key="item.value"></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="车辆种类" prop="plateType">
- <el-select v-model="insurancePolicyForm.plateType" placeholder="请选择">
- <el-option v-for="(item, index) in optionObj.car_kind_code" :label="item.label" :value="item.value" :key="item.value"></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="车辆类型" prop="carTypeCode">
- <el-select v-model="insurancePolicyForm.carTypeCode" placeholder="请选择">
- <el-option v-for="(item, index) in optionObj.car_type_code" :label="item.label" :value="item.value" :key="item.value"></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="能源种类" prop="energyTypeCode">
- <el-select v-model="insurancePolicyForm.energyTypeCode" placeholder="请选择">
- <el-option v-for="(item, index) in optionObj.energy_type_code" :label="item.label" :value="item.value" :key="item.value"></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="注册日期" prop="registerDate">
- <el-date-picker
- v-model="insurancePolicyForm.registerDate"
- type="date"
- placeholder="请选择"
- value-format="YYYY-MM-DD"
- style="width: 100%"
- />
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="发证日期" prop="issueDate">
- <el-date-picker
- v-model="insurancePolicyForm.issueDate"
- type="date"
- placeholder="请选择"
- value-format="YYYY-MM-DD"
- style="width: 100%"
- @change="issueDateChange"
- />
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="整备质量" prop="completeKerbMass">
- <el-input v-model="insurancePolicyForm.completeKerbMass" placeholder="输入整备质量">
- <template #append>
- <span>千克(KG)</span>
- </template>
- </el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="核定载质量" prop="limitLoad">
- <el-input v-model="insurancePolicyForm.limitLoad" placeholder="请输入核定载质量">
- <template #append>
- <span>千克(KG)</span>
- </template>
- </el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="座位数" prop="seatCount">
- <el-input v-model="insurancePolicyForm.seatCount" placeholder="请输入座位数">
- <template #append>
- <span>座</span>
- </template>
- </el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="年款" prop="carYear">
- <el-input v-model="insurancePolicyForm.carYear" placeholder="请输入年款"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="新车购置价" prop="purchasePrice">
- <el-input v-model="insurancePolicyForm.purchasePrice" placeholder="请输入新车购置价">
- <template #append>
- <span>元</span>
- </template>
- </el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="排量" prop="displacement">
- <el-input v-model="insurancePolicyForm.displacement" placeholder="请输入排量">
- <template #append>
- <span>升(L)</span>
- </template>
- </el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="功率" prop="powerScale">
- <el-input v-model="insurancePolicyForm.powerScale" placeholder="输入功率">
- <template #append>
- <span>千瓦(KW)</span>
- </template>
- </el-input>
- </el-form-item>
- </el-col>
- <el-col v-if="insurancePolicyForm.transfer" :span="6">
- <el-form-item label="转移登记日期" prop="transferDate">
- <el-date-picker
- v-model="insurancePolicyForm.transferDate"
- type="date"
- placeholder="请选择"
- value-format="YYYY-MM-DD"
- style="width: 100%"
- />
- </el-form-item>
- </el-col>
- </el-row>
- <template #icon="{ isActive }">
- <span class="icon">
- <el-button link type="primary" @click.stop="handleRecognition('clxx')"><img src="@/assets/images/insurancePolicy/sao.png" class="myIcon" />证件识别</el-button>
- <span class="icon-ele">
- {{ isActive ? '收起' : '展开' }}
- </span>
- </span>
- </template>
- </el-collapse-item>
- <el-collapse-item name="owner">
- <template #title>
- <span class="title">车主信息</span>
- </template>
- <el-row :gutter="20" class="formItem formBlock">
- <el-col :span="6">
- <el-form-item label="车主姓名" prop="name1">
- <el-input v-model="insurancePolicyForm.name1" placeholder="输入车主姓名"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="车主手机号" prop="mobile1">
- <el-input v-model="insurancePolicyForm.mobile1" placeholder="请输入车主手机号" maxlength="11" show-word-limit></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="证件类型" prop="personType1">
- <el-select v-model="insurancePolicyForm.identifyType1" placeholder="请选择">
- <el-option label="身份证" value="01" key="01"></el-option>
- <el-option label="营业执照" value="02" key="02"></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col v-if="insurancePolicyForm.identifyType1 === '01'" :span="6">
- <el-form-item label="证件号码" prop="identifyNumber1">
- <el-input v-model="insurancePolicyForm.identifyNumber1" placeholder="请输入证件号码" @change="getAgeByIdCard($event, insurancePolicyForm)"></el-input>
- </el-form-item>
- </el-col>
- <el-col v-else :span="6">
- <el-form-item label="统一社会信用代码" prop="identifyNumber1">
- <el-input v-model="insurancePolicyForm.identifyNumber1" placeholder="请输入证件号码"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item prop="identifyValidDate1" label="有效期起期">
- <el-date-picker
- v-model="insurancePolicyForm.identifyValidDate1"
- type="date"
- placeholder="请选择"
- value-format="YYYY-MM-DD"
- style="width: 100%"
- @blur="(e) => insurancePolicyForm.identifyValidDate1 = changeDate(e)"
- />
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item prop="identifyValidEndDate1" label="有效期止期">
- <div style="display: flex; align-items: center; justify-content: flex-start; width: 100%">
- <el-date-picker
- v-model="insurancePolicyForm.identifyValidEndDate1"
- type="date"
- placeholder="请选择"
- value-format="YYYY-MM-DD"
- style="width: calc(100% - 64px)"
- @blur="(e) => insurancePolicyForm.identifyValidEndDate1 = changeDate(e)"
- />
- <el-button type="primary" @click="longTime">长期</el-button>
- </div>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="地址" prop="addr1">
- <el-input v-model="insurancePolicyForm.addr1" placeholder="请输入地址"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item v-if="insurancePolicyForm.identifyType1 === '02'" label="投保人座机" prop="telephone">
- <el-input v-model="insurancePolicyForm.telephone1" placeholder="请输入投保人座机"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item v-if="insurancePolicyForm.identifyType1 === '02'" label="投保人联系人" prop="person">
- <el-input v-model="insurancePolicyForm.person1" placeholder="请输入投保人联系人"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item v-if="insurancePolicyForm.identifyType1 === '02'" label="联系人证件号码" prop="age">
- <el-input v-model.number="insurancePolicyForm.age1" placeholder="请输入联系人证件号码"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item v-if="insurancePolicyForm.identifyType1 === '02'" prop="identifyValidEndDate" label="有效期止期">
- <el-date-picker
- v-model="insurancePolicyForm.identifyValidEndDate1"
- type="date"
- placeholder="请选择"
- value-format="YYYY-MM-DD"
- style="width: 100%"
- />
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item v-if="insurancePolicyForm.identifyType1 === '02'" prop="area" label="地区">
- <el-cascader
- clearable
- style="width: 100%"
- v-model="insurancePolicyForm.address1"
- :options="areaOptins"
- :props="areaProps"
- ></el-cascader>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item v-if="insurancePolicyForm.identifyType1 === '02'" label="注册资金" prop="money">
- <el-input v-model="insurancePolicyForm.registeredCapital1" placeholder="请输入注册资金">
- <template #append>
- <span>元</span>
- </template>
- </el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item v-if="insurancePolicyForm.identifyType1 === '02'" label="电子邮箱" prop="email">
- <el-input v-model="insurancePolicyForm.email1" placeholder="请输入电子邮箱"></el-input>
- </el-form-item>
- </el-col>
- <!-- <el-col :span="6">
- <el-form-item label="是否二手车" prop="gender">
- <el-select v-model="insurancePolicyForm.gender" placeholder="请选择">
- <el-option label="是" value="1" key="1"></el-option>
- <el-option label="否" value="2" key="2"></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="商业险是否过户" prop="gender">
- <el-select v-model="insurancePolicyForm.gender" placeholder="请选择">
- <el-option label="是" value="1" key="1"></el-option>
- <el-option label="否" value="2" key="2"></el-option>
- </el-select>
- </el-form-item>
- </el-col>-->
- </el-row>
- <template #icon="{ isActive }">
- <span class="icon">
- <el-button link type="primary" @click.stop="handleRecognition('czxx')"><img src="@/assets/images/insurancePolicy/sao.png" class="myIcon" />证件识别</el-button>
- <span class="icon-ele">
- {{ isActive ? '收起' : '展开' }}
- </span>
- </span>
- </template>
- </el-collapse-item>
- <el-collapse-item name="owner1">
- <template #title>
- <span class="title">
- 投保人信息
- <span class="ordinary" :class="{'active': item.checked}" v-for="(item, index) in btns.owner1" :key="item" @click.stop="handleChange(item, 'owner1')">
- {{ item.text }}
- </span>
- </span>
- </template>
- <el-row :gutter="20" class="formItem formBlock" v-if="btns.owner1Text === '其他人'">
- <el-col :span="6">
- <el-form-item label="车主姓名" prop="name2">
- <el-input v-model="insurancePolicyForm.name2" placeholder="输入车主姓名"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="车主手机号" prop="mobile2">
- <el-input v-model="insurancePolicyForm.mobile2" placeholder="请输入车主手机号"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="证件类型" prop="personType2">
- <el-select v-model="insurancePolicyForm.identifyType2" placeholder="请选择">
- <el-option label="身份证" value="01" key="01"></el-option>
- <el-option label="营业执照" value="02" key="02"></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col v-if="insurancePolicyForm.identifyType2 === '01'" :span="6">
- <el-form-item label="证件号码" prop="identifyNumber2">
- <el-input v-model="insurancePolicyForm.identifyNumber2" placeholder="请输入证件号码" @change="getAgeByIdCard($event, insurancePolicyForm)"></el-input>
- </el-form-item>
- </el-col>
- <el-col v-else :span="6">
- <el-form-item label="统一社会信用代码" prop="identifyNumber2">
- <el-input v-model="insurancePolicyForm.identifyNumber2" placeholder="请输入证件号码"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item prop="identifyValidDate2" label="有效期起期">
- <el-date-picker
- v-model="insurancePolicyForm.identifyValidDate2"
- type="date"
- placeholder="请选择"
- value-format="YYYY-MM-DD"
- style="width: 100%"
- @blur="(e) => insurancePolicyForm.identifyValidDate2 = changeDate(e)"
- />
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item prop="identifyValidEndDate2" label="有效期止期">
- <el-date-picker
- v-model="insurancePolicyForm.identifyValidEndDate2"
- type="date"
- placeholder="请选择"
- value-format="YYYY-MM-DD"
- style="width: 100%"
- @blur="(e) => insurancePolicyForm.identifyValidEndDate2 = changeDate(e)"
- />
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="地址" prop="addr2">
- <el-input v-model="insurancePolicyForm.addr2" placeholder="请输入地址"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item v-if="insurancePolicyForm.identifyType2 === '02'" label="投保人座机" prop="telephone">
- <el-input v-model="insurancePolicyForm.telephone2" placeholder="请输入投保人座机"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item v-if="insurancePolicyForm.identifyType2 === '02'" label="投保人联系人" prop="person">
- <el-input v-model="insurancePolicyForm.person2" placeholder="请输入投保人联系人"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item v-if="insurancePolicyForm.identifyType2 === '02'" label="联系人证件号码" prop="age">
- <el-input v-model.number="insurancePolicyForm.age2" placeholder="请输入联系人证件号码"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item v-if="insurancePolicyForm.identifyType2 === '02'" prop="identifyValidEndDate" label="有效期止期">
- <el-date-picker
- v-model="insurancePolicyForm.identifyValidEndDate2"
- type="date"
- placeholder="请选择"
- value-format="YYYY-MM-DD"
- style="width: 100%"
- />
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item v-if="insurancePolicyForm.identifyType2 === '02'" prop="area" label="地区">
- <el-cascader
- clearable
- style="width: 100%"
- v-model="insurancePolicyForm.address2"
- :options="areaOptins"
- :props="areaProps"
- ></el-cascader>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item v-if="insurancePolicyForm.identifyType2 === '02'" label="注册资金" prop="money">
- <el-input v-model="insurancePolicyForm.registeredCapital2" placeholder="请输入注册资金">
- <template #append>
- <span>元</span>
- </template>
- </el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item v-if="insurancePolicyForm.identifyType2 === '02'" label="电子邮箱" prop="email">
- <el-input v-model="insurancePolicyForm.email2" placeholder="请输入电子邮箱"></el-input>
- </el-form-item>
- </el-col>
- <!-- <el-col :span="6">
- <el-form-item label="是否二手车" prop="gender">
- <el-select v-model="insurancePolicyForm.policyHolderInfo.gender" placeholder="请选择">
- <el-option label="是" value="1" key="1"></el-option>
- <el-option label="否" value="2" key="2"></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="商业险是否过户" prop="gender">
- <el-select v-model="insurancePolicyForm.policyHolderInfo.gender" placeholder="请选择">
- <el-option label="是" value="1" key="1"></el-option>
- <el-option label="否" value="2" key="2"></el-option>
- </el-select>
- </el-form-item>
- </el-col>-->
- </el-row>
- <template #icon="{ isActive }">
- <span class="icon">
- <el-button link type="primary" @click.stop="handleRecognition('tbrxx')"><img src="@/assets/images/insurancePolicy/sao.png" class="myIcon" />证件识别</el-button>
- <span class="icon-ele">
- {{ isActive ? '收起' : '展开' }}
- </span>
- </span>
- </template>
- </el-collapse-item>
- <el-collapse-item name="owner2">
- <template #title>
- <span class="title">
- 被保人信息
- <span class="ordinary" :class="{'active': item.checked}" v-for="(item, index) in btns.owner2" :key="item" @click.stop="handleChange(item, 'owner2')">
- {{ item.text }}
- </span>
- </span>
- </template>
- <el-row :gutter="20" class="formItem formBlock" v-if="btns.owner2Text === '其他人'">
- <el-col :span="6">
- <el-form-item label="车主姓名" prop="name3">
- <el-input v-model="insurancePolicyForm.name3" placeholder="输入车主姓名"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="车主手机号" prop="mobile3">
- <el-input v-model="insurancePolicyForm.mobile3" placeholder="请输入车主手机号"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="证件类型" prop="personType3">
- <el-select v-model="insurancePolicyForm.identifyType3" placeholder="请选择">
- <el-option label="身份证" value="01" key="01"></el-option>
- <el-option label="营业执照" value="02" key="02"></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col v-if="insurancePolicyForm.identifyType3 === '01'" :span="6">
- <el-form-item label="证件号码" prop="identifyNumber3">
- <el-input v-model="insurancePolicyForm.identifyNumber3" placeholder="请输入证件号码" @change="getAgeByIdCard($event, insurancePolicyForm)"></el-input>
- </el-form-item>
- </el-col>
- <el-col v-else :span="6">
- <el-form-item label="统一社会信用代码" prop="identifyNumber3">
- <el-input v-model="insurancePolicyForm.identifyNumber3" placeholder="请输入证件号码"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item prop="identifyValidDate3" label="有效期起期">
- <el-date-picker
- v-model="insurancePolicyForm.identifyValidDate3"
- type="date"
- placeholder="请选择"
- value-format="YYYY-MM-DD"
- style="width: 100%"
- @blur="(e) => insurancePolicyForm.identifyValidDate3 = changeDate(e)"
- />
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item prop="identifyValidEndDate3" label="有效期止期">
- <el-date-picker
- v-model="insurancePolicyForm.identifyValidEndDate3"
- type="date"
- placeholder="请选择"
- value-format="YYYY-MM-DD"
- style="width: 100%"
- @blur="(e) => insurancePolicyForm.identifyValidEndDate3 = changeDate(e)"
- />
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="地址" prop="addr3">
- <el-input v-model="insurancePolicyForm.addr3" placeholder="请输入地址"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item v-if="insurancePolicyForm.identifyType3 === '02'" label="投保人座机" prop="telephone">
- <el-input v-model="insurancePolicyForm.telephone3" placeholder="请输入投保人座机"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item v-if="insurancePolicyForm.identifyType3 === '02'" label="投保人联系人" prop="person">
- <el-input v-model="insurancePolicyForm.person3" placeholder="请输入投保人联系人"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item v-if="insurancePolicyForm.identifyType3 === '02'" label="联系人证件号码" prop="age">
- <el-input v-model.number="insurancePolicyForm.age3" placeholder="请输入联系人证件号码"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item v-if="insurancePolicyForm.identifyType3 === '02'" prop="identifyValidEndDate" label="有效期止期">
- <el-date-picker
- v-model="insurancePolicyForm.identifyValidEndDate3"
- type="date"
- placeholder="请选择"
- value-format="YYYY-MM-DD"
- style="width: 100%"
- />
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item v-if="insurancePolicyForm.identifyType3 === '02'" prop="area" label="地区">
- <el-cascader
- clearable
- style="width: 100%"
- v-model="insurancePolicyForm.address3"
- :options="areaOptins"
- :props="areaProps"
- ></el-cascader>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item v-if="insurancePolicyForm.identifyType3 === '02'" label="注册资金" prop="money">
- <el-input v-model="insurancePolicyForm.registeredCapital3" placeholder="请输入注册资金">
- <template #append>
- <span>元</span>
- </template>
- </el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item v-if="insurancePolicyForm.identifyType3 === '02'" label="电子邮箱" prop="email">
- <el-input v-model="insurancePolicyForm.email3" placeholder="请输入电子邮箱"></el-input>
- </el-form-item>
- </el-col>
- <!-- <el-col :span="6">
- <el-form-item label="是否二手车" prop="gender">
- <el-select v-model="insurancePolicyForm.gender3" placeholder="请选择">
- <el-option label="是" value="1" key="1"></el-option>
- <el-option label="否" value="2" key="2"></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="商业险是否过户" prop="gender">
- <el-select v-model="insurancePolicyForm.gender3" placeholder="请选择">
- <el-option label="是" value="1" key="1"></el-option>
- <el-option label="否" value="2" key="2"></el-option>
- </el-select>
- </el-form-item>
- </el-col>-->
- </el-row>
- <template #icon="{ isActive }">
- <span class="icon">
- <el-button link type="primary" @click.stop="handleRecognition('bbrxx')"><img src="@/assets/images/insurancePolicy/sao.png" class="myIcon" />证件识别</el-button>
- <span class="icon-ele">
- {{ isActive ? '收起' : '展开' }}
- </span>
- </span>
- </template>
- </el-collapse-item>
- <el-collapse-item name="tax">
- <template #title>
- <span class="title">
- 车船税
- <span class="ordinary" :class="{'active': item.checked}" v-for="(item, index) in btns.owner3" :key="item" @click.stop="handleChange(item, 'owner3')">
- {{ item.text }}
- </span>
- </span>
- </template>
- <div v-if="btns.owner3show === '正常交税'" style="width: 100%">
- <el-row :gutter="20" class="formItem formBlock">
- <el-col :span="6">
- <el-form-item label="纳税人名称" prop="taxpayerName">
- <el-input v-model="insurancePolicyForm.taxpayerName" placeholder="请输入纳税人名称" maxlength="50"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="证件类型" prop="taxpayerIdentifier">
- <el-select v-model="insurancePolicyForm.taxpayerIdentifier" placeholder="请选择">
- <el-option label="身份证" value="01" key="01"></el-option>
- <el-option label="营业执照" value="02" key="02"></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="证件号码" prop="identifyNumber">
- <el-input v-model="insurancePolicyForm.identifyNumber" placeholder="请输入证件号码" maxlength="50"></el-input>
- </el-form-item>
- </el-col>
- </el-row>
- </div>
- <div v-if="btns.owner3show === '免税'" style="width: 100%">
- <el-row :gutter="20" class="formItem formBlock">
- <el-col :span="6">
- <el-form-item label="减免税凭证号" prop="extendChar2">
- <el-input v-model="insurancePolicyForm.extendChar2" placeholder="请输入减免税凭证号" maxlength="50"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="减免税原因" prop="relifReason">
- <el-select v-model="insurancePolicyForm.relifReason" placeholder="请选择">
- <el-option label="原因1" value="1" key="1"></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="税务机关代码" prop="taxComCode">
- <el-input v-model="insurancePolicyForm.taxComCode" placeholder="请输入税务机关代码" maxlength="50"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="税务机关名称" prop="taxComName">
- <el-input v-model="insurancePolicyForm.taxComName" placeholder="请输入税务机关名称" maxlength="50"></el-input>
- </el-form-item>
- </el-col>
- </el-row>
- </div>
- <div v-if="btns.owner3show === '减税'" style="width: 100%">
- <el-row :gutter="20" class="formItem formBlock">
- <el-col :span="6">
- <el-form-item label="减免税凭证号" prop="extendChar2">
- <el-input v-model="insurancePolicyForm.extendChar2" placeholder="请输入减免税凭证号" maxlength="50"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="减免税原因" prop="relifReason">
- <el-select v-model="insurancePolicyForm.relifReason" placeholder="请选择">
- <el-option label="原因1" value="1" key="1"></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="税务机关代码" prop="taxComCode">
- <el-input v-model="insurancePolicyForm.taxComCode" placeholder="请输入税务机关代码" maxlength="50"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="税务机关名称" prop="taxComName">
- <el-input v-model="insurancePolicyForm.taxComName" placeholder="请输入税务机关名称" maxlength="50"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="减税比例" prop="taxRelief">
- <el-input v-model="insurancePolicyForm.taxRelief" placeholder="请输入减税比例">
- <template #append>
- <span>%</span>
- </template>
- </el-input>
- </el-form-item>
- </el-col>
- </el-row>
- </div>
- <div v-if="btns.owner3show === '完税'" style="width: 100%">
- <el-row :gutter="20" class="formItem formBlock">
- <el-col :span="6">
- <el-form-item label="完税凭证号" prop="extendChar2">
- <el-input v-model="insurancePolicyForm.extendChar2" placeholder="请输入完税凭证号" maxlength="50"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="税务机关代码" prop="taxComCode">
- <el-input v-model="insurancePolicyForm.taxComCode" placeholder="请输入税务机关代码" maxlength="50"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="税务机关名称" prop="taxComName">
- <el-input v-model="insurancePolicyForm.taxComName" placeholder="请输入税务机关名称" maxlength="50"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item prop="taxDocumentDate" label="完税凭证填发日期">
- <el-date-picker
- v-model="insurancePolicyForm.taxDocumentDate"
- type="date"
- placeholder="请选择"
- value-format="YYYY-MM-DD"
- style="width: 100%"
- />
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item prop="taxPaidAreaCode" label="完税凭证地区">
- <el-cascader
- clearable
- style="width: 100%"
- v-model="insurancePolicyForm.taxPaidAreaCode"
- :options="areaOptins"
- :props="areaProps"
- ></el-cascader>
- </el-form-item>
- </el-col>
- </el-row>
- </div>
- <template #icon="{ isActive }">
- <span class="icon">
- <span class="icon-ele">
- {{ isActive ? '收起' : '展开' }}
- </span>
- </span>
- </template>
- </el-collapse-item>
- <el-collapse-item name="insurance">
- <template #title>
- <span class="title">
- 投保信息
- <span class="ordinary" :class="{'active': item.checked}" v-for="(item, index) in optionObj.insuranceType" :key="item.value" @click.stop="handleChange(item, 'insurance')">
- {{ item.label }}
- </span>
- </span>
- </template>
- <el-form-item class="white-m-p24" label="车辆其他信息">
- <el-checkbox v-model="insurancePolicyForm.transfer" value="1">是否过户</el-checkbox>
- <el-checkbox v-model="insurancePolicyForm.biTransfer" value="2">商业险是否过户</el-checkbox>
- <el-checkbox v-model="insurancePolicyForm.secondHandCar" value="3">二手车</el-checkbox>
- </el-form-item>
- <div class="insurance-jq" v-if="insurancePolicyForm.productId === '0330' || insurancePolicyForm.productId === '0330034002' || insurancePolicyForm.productId === '0330034001'">
- <span>交强险</span>
- <span class="checkbox" :class="{'cehcked': item.checked}" v-for="item in jqWork" :key="item" @click="JQChange(item)">{{ item.text }}</span>
- <div class="time">
- <el-form-item prop="startDate" label="">
- <el-date-picker
- v-model="insurancePolicyForm.JQStartDate"
- type="datetime"
- placeholder="请选择"
- value-format="YYYY-MM-DD HH:mm:ss"
- style="width: 100%"
- @change="jqChange"
- />
- </el-form-item>
- 至
- <el-form-item prop="endDate" label="">
- <el-date-picker
- v-model="insurancePolicyForm.JQEndDate"
- type="datetime"
- placeholder="请选择"
- value-format="YYYY-MM-DD HH:mm:ss"
- style="width: 100%"
- />
- </el-form-item>
- </div>
- </div>
- <div class="insurance-jq" v-if="insurancePolicyForm.productId === '034001' || insurancePolicyForm.productId === '034002' || insurancePolicyForm.productId === '0330034002' || insurancePolicyForm.productId === '0330034001'">
- <span>商业险</span>
- <span class="checkbox" :class="{'cehcked': item.checked}" v-for="item in syWork" :key="item" @click="SYChange(item)">{{ item.text }}</span>
- <div class="time">
- <el-form-item prop="startDate" label="">
- <el-date-picker
- v-model="insurancePolicyForm.SYStartDate"
- type="datetime"
- placeholder="请选择"
- value-format="YYYY-MM-DD HH:mm:ss"
- style="width: 100%"
- @change="syChange"
- />
- </el-form-item>
- 至
- <el-form-item prop="endDate" label="">
- <el-date-picker
- v-model="insurancePolicyForm.SYEndDate"
- type="datetime"
- placeholder="请选择"
- value-format="YYYY-MM-DD HH:mm:ss"
- style="width: 100%"
- />
- </el-form-item>
- </div>
- </div>
- <template #icon="{ isActive }">
- <span class="icon">
- <span class="icon-ele">
- {{ isActive ? '收起' : '展开' }}
- </span>
- </span>
- </template>
- </el-collapse-item>
- <el-collapse-item name="company">
- <template #title>
- <span class="title">
- 报价公司
- </span>
- </template>
- <el-table
- :data="quoteData"
- style="width: calc(100% - 48px); margin: 0 24px"
- row-key="id"
- :preserve-expanded-content="true"
- @selection-change="handleSelect"
- @select="handelSelectRow"
- @row-click="handleClickRow"
- @expand-change="handelExpend"
- >
- <el-table-column type="expand">
- <template #default="scope">
- <div class="expandFlex">
- <p class="expandTitle">车险方案</p>
- <div style="width: calc(100% - 50px); overflow-x: hidden">
- <div class="product">
- <span class="productItem" :class="{'productActive': productIndex === index}" v-for="(item, index) in scope.row.projectList" @click.stop="handleProduct(item, index)">{{ item.schemeName }}</span>
- </div>
- <el-row :gutter="20">
- <el-col :span="12">
- <div class="quoteTitle">方案明细</div>
- <el-table
- :data="scope.row.projectList?.[productIndex]?.kinds"
- >
- <el-table-column width="50" align="center" v-if="scope.row.projectList?.[productIndex]?.schemeType !='1'">
- <template #header>
- <el-icon style="cursor: pointer;" @click="handlePopover(scope)"><CirclePlus /></el-icon>
- </template>
- <template #default="props">
- <el-icon @click="handleInsuranceDel(scope, props)"><Delete /></el-icon>
- </template>
- </el-table-column>
- <el-table-column label="险种" prop="kindName" align="center"></el-table-column>
- <el-table-column label="保额" align="center">
- <template #default="props">
- <el-select v-model="props.row.amount" :disabled="scope.row.projectList?.[productIndex]?.schemeType == '1'">
- <el-option v-for="item in props.row.options" :label="item.label" :value="item.value"></el-option>
- </el-select>
- </template>
- </el-table-column>
- <el-table-column label="保费" prop="unitAmount" align="center"></el-table-column>
- </el-table>
- <div class="quoteTitle" v-if="scope.row.projectList?.[productIndex]?.rescue && scope.row.projectList?.[productIndex]?.detection && scope.row.projectList?.[productIndex]?.driver && scope.row.projectList?.[productIndex]?.inspect ">增值服务</div>
- <el-row :gutter="20" v-if="scope.row.projectList?.[productIndex]?.rescue && scope.row.projectList?.[productIndex]?.detection && scope.row.projectList?.[productIndex]?.driver && scope.row.projectList?.[productIndex]?.inspect ">
- <el-col :span="6" class="quoteFlex">
- 救援
- <el-select v-model="scope.row.projectList[productIndex].rescue" :disabled="scope.row.projectList?.[productIndex]?.schemeType =='1'" size="small" style="width: 80px; margin: 0 10px">
- <el-option label="1" value="1"></el-option>
- </el-select>
- 次
- </el-col>
- <el-col :span="6" class="quoteFlex">
- 检测
- <el-select v-model="scope.row.projectList[productIndex].detection" :disabled="scope.row.projectList?.[productIndex]?.schemeType =='1'" size="small" style="width: 80px; margin: 0 10px">
- <el-option label="1" value="1"></el-option>
- </el-select>
- 次
- </el-col>
- <el-col :span="6" class="quoteFlex">
- 代驾
- <el-select v-model="scope.row.projectList[productIndex].driver" :disabled="scope.row.projectList?.[productIndex]?.schemeType =='1'" size="small" style="width: 80px; margin: 0 10px">
- <el-option label="1" value="1"></el-option>
- </el-select>
- 次
- </el-col>
- <el-col :span="6" class="quoteFlex">
- 送检
- <el-select v-model="scope.row.projectList[productIndex].inspect" :disabled="scope.row.projectList?.[productIndex]?.schemeType =='1'" size="small" style="width: 80px; margin: 0 10px">
- <el-option label="1" value="1"></el-option>
- </el-select>
- 次
- </el-col>
- </el-row>
- <div class="quoteTitle">驾意险</div>
- <el-table
- :data="scope.row.projectList?.[productIndex]?.drivings"
- >
- <el-table-column width="50" align="center" v-if="scope.row.projectList?.[productIndex]?.schemeType !='1'">
- <template #header>
- <el-icon @click="handleDriving(scope)"><CirclePlus /></el-icon>
- </template>
- <template #default="props">
- <el-icon @click="handleDrivingDel(scope, props)"><Delete /></el-icon>
- </template>
- </el-table-column>
- <el-table-column label="产品名称" prop="productName" align="center">
- <template #default="props">
- <el-button link type="primary" @click="getJYXDetail(props.row)">{{ props.row.productName }}</el-button>
- </template>
- </el-table-column>
- <el-table-column label="数量" align="center">
- <template #default="props">
- <el-input :disabled="scope.row.projectList?.[productIndex]?.schemeType === '1'" v-model="props.row.quantity" style="width: 140px">
- <template #append>
- <span>份</span>
- </template>
- </el-input>
- </template>
- </el-table-column>
- <el-table-column label="保费" prop="premium" align="center"></el-table-column>
- </el-table>
- <el-button size="small" link type="primary" @click="handleSelectSpecial(scope)">选择特约</el-button>
- <el-table :data="scope.row.specialSelectedList" v-show="scope.row.specialSelectedList?.length > 0">
- <el-table-column prop="clauseName" label="特约名称"></el-table-column>
- </el-table>
- </el-col>
- <el-col :span="12" style="border-left: 1px dashed #eeeeee">
- <p style="text-align: center">保费因素</p>
- <el-table
- class="factorTable"
- :data="scope.row.factorData"
- >
- <el-table-column label="评分" prop="" width="50">--</el-table-column>
- <el-table-column label="交强险折扣系数" prop="">--</el-table-column>
- <el-table-column label="鼎然车辆风险评分" prop="">--</el-table-column>
- <el-table-column label="交强评分" prop="" width="70">--</el-table-column>
- <el-table-column label="商业评分" prop="" width="70">--</el-table-column>
- <el-table-column label="出险信息" prop="" width="70">--</el-table-column>
- <el-table-column label="总赔付率" prop="" width="70">--</el-table-column>
- <el-table-column label="交强赔付率" prop="" width="80">--</el-table-column>
- <el-table-column label="商业赔付率" prop="" width="80">--</el-table-column>
- </el-table>
- <el-table
- class="factorTable"
- :data="scope.row.factorData"
- >
- <el-table-column label="类型" prop="" width="50">--</el-table-column>
- <el-table-column prop="">
- <template #header>
- <div style="display: flex; align-items: center; justify-content: center">
- <span>商业险折扣系数</span>
- <el-popover placement="bottom" width="200">
- <div style="display: flex; align-items: center; justify-content: space-between;">
- <span>NCD折扣系数</span>
- <span>0.8</span>
- </div>
- <div style="display: flex; align-items: center; justify-content: space-between;">
- <span>NCD折扣系数11</span>
- <span>0.811</span>
- </div>
- <template #reference>
- <div class="more">
- <el-icon><MoreFilled /></el-icon>
- </div>
- </template>
- </el-popover>
- </div>
- </template>
- <template #default="props">
- <div style="display: flex; align-items: center; justify-content: center">
- <span>--</span>
- <el-popover placement="bottom" width="240" trigger="click">
- <div class="number">
- <p>商业险折扣系数和自主定价系数只能修改一个,修改后系统会重新报价,计算修改后的保费</p>
- <el-radio-group>
- <el-radio value="1" size="small" style="margin-bottom: 10px">
- <template #default>
- <div style="display: flex; justify-content: space-between; align-items: center; width: 180px">
- <span>商业险折扣系数</span>
- <el-input style="width: 80px" size="small"></el-input>
- </div>
- </template>
- </el-radio>
- <el-radio value="2" size="small">
- <template #default>
- <div style="display: flex; justify-content: space-between; align-items: center; width: 180px">
- <span>自主定价系数</span>
- <el-input style="width: 80px" size="small"></el-input>
- </div>
- </template>
- </el-radio>
- </el-radio-group>
- </div>
- <template #reference>
- <el-icon style="font-size: 14px; color:#0083FF "><Edit /></el-icon>
- </template>
- </el-popover>
- </div>
- </template>
- </el-table-column>
- <el-table-column label="交强出险次数" prop="" width="100">--</el-table-column>
- <el-table-column label="商业出险次数" prop="" width="100">--</el-table-column>
- <el-table-column label="交强续保" prop="" width="70">--</el-table-column>
- <el-table-column label="商业续保" prop="" width="70">--</el-table-column>
- <el-table-column label="总折扣率" prop="" width="70">--</el-table-column>
- <el-table-column label="商业折扣" prop="" width="70">--</el-table-column>
- <el-table-column label="交强折扣" prop="" width="70">--</el-table-column>
- </el-table>
- </el-col>
- <el-col :span="12" style="border-left: 1px dashed #eeeeee">
- <p style="text-align: center">优惠信息</p>
- <el-table
- class="factorTable"
- :data="scope.row.discounts"
- >
- <el-table-column label="险种" prop="name"></el-table-column>
- <el-table-column label="比例" prop="commissionRatio"></el-table-column>
- <el-table-column label="优惠金额" prop="commissionPremium"></el-table-column>
- <el-table-column label="返还结算比例" prop="exportRatio"></el-table-column>
- <el-table-column label="返还金额" prop="exportPremium"></el-table-column>
- </el-table>
- </el-col>
- </el-row>
- </div>
- </div>
- </template>
- </el-table-column>
- <el-table-column type="selection" width="55" />
- <el-table-column label="保险公司" prop="" align="center" width="200">
- <template #default="scope">
- <div class="company">
- <img :src="scope.row.logo"/>
- <span>{{ scope.row.name }}</span>
- </div>
- </template>
- </el-table-column>
- <el-table-column label="报价协议" prop="" align="center" width="260">
- <template #default="scope">
- <el-select v-model="scope.row.agreement" :disabled="scope.row.isDispatch || scope.row.agreements.length == 1" v-if="currentRow.some(a => a.id === scope.row.id)" :placeholder="scope.row.isDispatch?'默认':'请选择'">
- <el-option v-for="item in scope.row.agreements" :value="item.id" :label="item.agreementName"></el-option>
- </el-select>
- </template>
- </el-table-column>
- <el-table-column prop="" align="center">
- <template #header>
- <div style="display: flex; align-items: center; justify-content: center">
- <span style="margin-right: 10px">报价结果</span>
- <el-checkbox @change="handleViewSuccess">仅查看报价成功</el-checkbox>
- </div>
- </template>
- <template #default="scope">
- <div class="result" v-if="currentRow.some(a => a.id === scope.row.id)">
- <span class="resultItem">
- <span v-if="scope.row.quoteResult?.costs?.sumPremium">总保费:{{ scope.row.quoteResult?.costs?.sumPremium }}</span>
- <span class="resultTips" v-if="scope.row.quoteResult?.feeNoDescription" @click="handleOpen(scope)">
- <el-icon style="color: #FF4545; font-size: 14px"><Warning /></el-icon> 未匹配费用
- </span>
- </span>
- <div class="resultItem">
- <span v-if="scope.row.quoteResult?.costs?.ciPremium" style="text-align: left; margin-right: 10px">交强:{{ `¥${scope.row.quoteResult?.costs?.ciPremium}` }}</span>
- <span v-if="scope.row.quoteResult?.costs?.vvTax" style="text-align: left; margin-right: 10px">车船税:{{ `¥${scope.row.quoteResult?.costs?.vvTax}` }}</span>
- </div>
- <div class="resultItem">
- <span v-if="scope.row.quoteResult?.costs?.biPremium" style="text-align: left; margin-right: 10px">商业险:{{ `¥${scope.row.quoteResult.costs?.biPremium}` }}</span>
- <span v-if="scope.row.quoteResult?.costs?.niPremium" style="text-align: left; margin-right: 10px">驾意险:{{ `¥${scope.row.quoteResult?.costs?.niPremium}` }}</span>
- </div>
- <span class="resultItem" v-if="scope.row.quoteResult?.ciRiskInfoVo?.startDate || scope.row.quoteResult?.ciRiskInfoVo?.endDate ">
- <span>交强险保险期:{{ `${scope.row.quoteResult?.ciRiskInfoVo?.startDate} 至 ${scope.row.quoteResult?.ciRiskInfoVo?.endDate}` }}</span>
- </span>
- <span class="resultItem" v-if="scope.row.quoteResult?.biRiskInfoVo?.startDate || scope.row.quoteResult?.biRiskInfoVo?.endDate">
- <span>商业险保险期:{{ `${scope.row.quoteResult?.biRiskInfoVo?.startDate} 至 ${scope.row.quoteResult?.biRiskInfoVo?.endDate}` }}</span>
- </span>
- <div>
- <div class="quoteFail" v-if="scope.row.quoteResult?.failMsg">
- <el-icon style="color: #FF4545; font-size: 14px" @click="handleOpen"><Warning /></el-icon> 报价失败
- </div>
- <!-- <div class="quoteReason">{{ scope.row.quoteResult?.failMsg }}</div>-->
- </div>
- </div>
- <div class="loader" v-show="scope.row.loading">
- <!-- <i style="color: #d42426" class="el-icon-loading"></i> -->
- <p class="text">
- <span class="letter letter1">掌</span>
- <span class="letter letter2">柜</span>
- <span class="letter letter3">正</span>
- <span class="letter letter4">在</span>
- <span class="letter letter5">为</span>
- <span class="letter letter6">您</span>
- <span class="letter letter7">报</span>
- <span class="letter letter8">价</span>
- <span class="letter letter9">.</span>
- <span class="letter letter10">.</span>
- <span class="letter letter11">.</span>
- </p>
- </div>
- </template>
- </el-table-column>
- <el-table-column label="费用因子" align="center">
- <template #default="scope">
- <div style="width: 100%;" v-if="scope.row.quoteResult?.scoreVo?.scoreJson">
- <template v-for="(item, index) in scope.row.quoteResult?.scoreVo?.scoreJson" :key="index">
- <div class="costFactor">
- <span>{{ item.scoreName }}:</span><span>{{ item.score || '--' }}</span>
- </div>
- <div class="costFactor" v-if="scope.row.quoteResult?.scoreVo">
- <span>交强险系数:</span><span>{{ item.jqLossRation || '--' }}</span>
- </div>
- <div class="costFactor" v-if="scope.row.quoteResult?.scoreVo">
- <span>商业险系数:</span><span>{{ item.syLossRation || '--' }}</span>
- </div>
- <div class="costFactor" v-if="scope.row.quoteResult?.scoreVo">
- <el-popover
- :width="200"
- placement="bottom"
- trigger="hover"
- >
- <template #reference>
- <span style="display: flex; align-items: center">更多信息:<el-icon color="#409eff"><InfoFilled /></el-icon></span>
- </template>
- <div class="moreFactor">
- <span>NCD折扣系数:</span><span>{{ scope.row.quoteResult?.scoreVo?.syLossRation || '--' }}</span>
- </div>
- <div class="moreFactor">
- <span>交通违法系数:</span><span>{{ scope.row.quoteResult?.scoreVo?.syLossRation || '--' }}</span>
- </div>
- <div class="moreFactor">
- <span>自主定价系数:</span><span>{{ scope.row.quoteResult?.scoreVo?.syLossRation || '--' }}</span>
- </div>
- <div class="moreFactor">
- <span>自助渠道系数:</span><span>{{ scope.row.quoteResult?.scoreVo?.syLossRation || '--' }}</span>
- </div>
- <div class="moreFactor">
- <span>鼎然车险风险评分:</span><span>{{ scope.row.quoteResult?.scoreVo?.syLossRation || '--' }}</span>
- </div>
- <div class="moreFactor">
- <span>交强评分:</span><span>{{ scope.row.quoteResult?.scoreVo?.syLossRation || '--' }}</span>
- </div>
- <div class="moreFactor">
- <span>商业评分:</span><span>{{ scope.row.quoteResult?.scoreVo?.syLossRation || '--' }}</span>
- </div>
- <div class="moreFactor">
- <span>出险信息:</span><span>{{ scope.row.quoteResult?.scoreVo?.syLossRation || '--' }}</span>
- </div>
- <div class="moreFactor">
- <span>总赔付率:</span><span>{{ scope.row.quoteResult?.scoreVo?.syLossRation || '--' }}</span>
- </div>
- <div class="moreFactor">
- <span>商业赔付率:</span><span>{{ scope.row.quoteResult?.scoreVo?.syLossRation || '--' }}</span>
- </div>
- <div class="moreFactor">
- <span>总折扣率:</span><span>{{ scope.row.quoteResult?.scoreVo?.syLossRation || '--' }}</span>
- </div>
- <div class="moreFactor">
- <span>交强折扣:</span><span>{{ scope.row.quoteResult?.scoreVo?.syLossRation || '--' }}</span>
- </div>
- <div class="moreFactor">
- <span>商业折扣:</span><span>{{ scope.row.quoteResult?.scoreVo?.syLossRation || '--' }}</span>
- </div>
- <div class="moreFactor">
- <span>类型:</span><span>{{ scope.row.quoteResult?.scoreVo?.syLossRation || '--' }}</span>
- </div>
- </el-popover>
- </div>
- </template>
- </div>
- </template>
- </el-table-column>
- <el-table-column label="操作" align="center" width="360">
- <template #default="scope">
- <div v-if="currentRow.some(a => a.id === scope.row.id)">
- <el-button v-if="scope.row.quoteResult" link type="primary" @click="handleCount(scope)">优惠测算</el-button>
- <el-button v-if="scope.row.quoteResult" link type="primary" @click="toDetail(scope)">详情</el-button>
- <el-button link type="primary" :loading="scope.row.loading" @click="handleSubmit(InsurancePolicyRefs,scope)">计算保费</el-button>
- <el-button v-if="scope.row.quoteResult" link type="primary" @click="handleShare(scope)">分享</el-button>
- <el-button v-if="scope.row.quoteResult" link type="primary" @click="handleUnderwriting(scope)">核保</el-button>
- </div>
- </template>
- </el-table-column>
- </el-table>
- <template #icon="{ isActive }">
- <span class="icon">
- <span class="icon-ele">
- {{ isActive ? '收起' : '展开' }}
- </span>
- </span>
- </template>
- </el-collapse-item>
- <el-collapse-item name="history">
- <template #title>
- <span class="title">
- 报价历史
- </span>
- </template>
- <el-table
- :data="tableData"
- style="width: calc(100% - 48px); margin: 0 24px"
- >
- <el-table-column label="保险公司" prop="companyName"></el-table-column>
- <el-table-column label="报价时间" prop="quoteTime"></el-table-column>
- <el-table-column label="险种" prop="productName"></el-table-column>
- <el-table-column label="状态" prop="orderStatusName">
- <template #default="scope">
- <span v-if="scope.row.orderStatusName=='报价成功'" class="success">报价成功</span>
- <span v-if="scope.row.orderStatus=='6' || scope.row.orderStatus=='7'" style="display: flex; align-items: center">
- <span class="fail">{{ scope.row.orderStatusName }}</span>
- <el-tooltip
- class="box-item"
- effect="dark"
- :content="scope.row.errorMessage"
- placement="bottom"
- >
- <el-icon style="color: #FF4545; font-size: 18px"><Warning /></el-icon>
- </el-tooltip>
- </span>
- </template>
- </el-table-column>
- <el-table-column label="保费计算" prop="sumPremium"></el-table-column>
- <el-table-column label="交强险" prop="jqPremium"></el-table-column>
- <el-table-column label="商业险" prop="syPremium"></el-table-column>
- <el-table-column label="驾意险" prop="jyPremium"></el-table-column>
- <el-table-column label="操作">
- <template #default="scope">
- <el-button link type="primary" @click="toDetail(scope.row.orderNo)">详情</el-button>
- <el-popover
- v-if="scope.row.orderStatus === '5'"
- :width="200"
- placement="bottom"
- trigger="click"
- >
- <template #reference>
- <el-button size="small" type="primary" link @click="handleCode(scope.row.orderNo)">分享</el-button>
- </template>
- <div class="popover">
- <img style="display: block; width: 128px; height: 128px; margin: 5px auto;" :src="payCodeUrl">
- <p>使用微信扫码,查看报价单</p>
- <div class="popoverBtns">
- <el-button size="small" type="primary" plain @click="handlePopoverCancel">保存二维码</el-button>
- <el-button size="small" type="primary" plain @click="handlePopoverConfirm">复制链接</el-button>
- </div>
- </div>
- </el-popover>
- <el-button link type="primary" v-if="scope.row.orderStatus === '1'" @click="handleUnderwriting(scope)">核保</el-button>
- <el-button link type="primary" v-if="scope.row.orderStatus === '4'" @click="getPayCode(scope.row.orderNo)">支付码</el-button>
- <!-- <el-button link type="primary" v-if="scope.row.orderStatus === '1'" @click="handleImageSave(scope)">上传影像</el-button>-->
- <el-button link type="primary" v-if="scope.row.orderStatus === '7'" @click="handleUnderwriting(scope)">重新核保</el-button>
- </template>
- </el-table-column>
- </el-table>
- <template #icon="{ isActive }">
- <span class="icon">
- <span class="icon-ele">
- {{ isActive ? '收起' : '展开' }}
- </span>
- </span>
- </template>
- </el-collapse-item>
- </el-collapse>
- </el-form>
- <div class="footer">
- <span>已选保司:{{ currentRow.length }}家</span>
- <el-button type="primary" :loading="loading" @click="handleSubmit(InsurancePolicyRefs)">确定</el-button>
- </div>
- <el-dialog
- title="选择业务员"
- v-model="salesmanShow"
- width="700"
- >
- <salesmanSelect ref="SalesmanSelectRef" @close="handleSalesmanSelect"></salesmanSelect>
- </el-dialog>
- <el-dialog
- v-model="shareShow"
- width="300"
- title="分享"
- >
- <div class="imageCode">
- <img :src="shareImageUrl" />
- </div>
- <template #footer>
- <el-button plain type="primary" @click="handleSaveImage">保存图片</el-button>
- <el-button plain type="primary" @click="handleCopyLink">复制链接</el-button>
- </template>
- </el-dialog>
- <el-dialog
- title="优惠测算"
- v-model="calculatingShow"
- width="600"
- >
- <calculating ref="calculatingRefs"></calculating>
- </el-dialog>
- <el-dialog
- title="提交核保"
- width="1100"
- v-model="underwritingShow"
- >
- <underwriting ref="UnderwritingRefs" @close="handleUnderwritingClose"></underwriting>
- </el-dialog>
- <el-dialog
- title="证件识别"
- width="800"
- v-model="imageShow"
- >
- <recognition ref="RecognitionRefs" :option="optionObj.car_type_code" @close="handleImageClose"></recognition>
- </el-dialog>
- <el-dialog
- v-model="insuranceShow"
- title="选择险种"
- width="500"
- >
- <insurance ref="InsuranceTypeRef" @close="handleClose" ></insurance>
- </el-dialog>
- <el-dialog
- v-model="drivingShow"
- title="选择驾意险"
- width="700"
- >
- <driving ref="DrivingTypeRef" @close="handleDrivingClose"></driving>
- </el-dialog>
- <el-dialog
- v-model="licenseNoShow"
- width="900"
- title="车型查询"
- >
- <el-table
- ref="LicenseNoTable"
- :data="licenseNoData"
- row-key="id"
- @select="handleSelectedChange"
- @row-dblclick="handleSelectedRow"
- >
- <el-table-column type="selection"></el-table-column>
- <el-table-column prop="modelCode" label="厂牌型号代码"></el-table-column>
- <el-table-column prop="modelName" label="厂牌型号"></el-table-column>
- <el-table-column prop="replacementValue" label="新车购置价"></el-table-column>
- <el-table-column prop="marketYear" label="年款"></el-table-column>
- <el-table-column prop="ratedPassengerCapacity" label="座位数"></el-table-column>
- <el-table-column prop="displacement" label="排量"></el-table-column>
- <el-table-column prop="vehicleDescription" label="配置"></el-table-column>
- </el-table>
- <div class="footer">
- <el-button plain @click="licenseNoDataCancel">取消</el-button>
- <el-button type="primary" @click="licenseNoDataSubmit">确定</el-button>
- </div>
- </el-dialog>
- <el-dialog
- v-model="JYXDetailShow"
- title="驾意险详情"
- width="600"
- >
- <detail ref="JYXDetail"></detail>
- </el-dialog>
- <el-dialog
- v-model="specialShow"
- width="700"
- title="选择特约"
- >
- <el-table
- :data="specialTableData"
- @selection-change="handleSpecialSelectChage"
- >
- <el-table-column type="selection" width="50" align="center"></el-table-column>
- <el-table-column label="特约类型" prop="riskCode" align="center"></el-table-column>
- <el-table-column label="特约名称" prop="clauseName" align="center"></el-table-column>
- <el-table-column label="编码" prop="clauseCode" align="center"></el-table-column>
- <el-table-column label="特别约定内容" prop="clauseContent" width="300" align="center"></el-table-column>
- </el-table>
- <div class="footer">
- <el-button plain type="primary" @click="handleSpecialTableDataCancel">取消</el-button>
- <el-button type="primary" @click="handleSpecialTableDataSubmit">确定</el-button>
- </div>
- </el-dialog>
- </div>
- </template>
- <script setup lang="ts">
- import type { FormInstance, FormRules } from 'element-plus'
- import api from "@/api";
- import { ElMessage, ElNotification } from "element-plus";
- import { useRoute, useRouter } from 'vue-router'
- import underwriting from './modules/underwriting.vue'
- import recognition from './modules/recognition.vue'
- import calculating from './modules/calculating.vue'
- import salesmanSelect from '../additionalOrder/additional/modules/salesmanSelect.vue'
- import insurance from "../additionalOrder/additional/modules/insuranceSelect.vue";
- import driving from '../../layouts/components/DrivingType/index.vue'
- import detail from '../../layouts/components/JYXDetail/index.vue'
- import QRCode from 'qrcode'
- import dayjs from "dayjs";
- const RecognitionRefs = ref()
- const SalesmanSelectRef = ref()
- const InsuranceTypeRef = ref()
- const DrivingTypeRef = ref()
- const UnderwritingRefs = ref()
- const LicenseNoTable = ref()
- const JYXDetail = ref()
- const myRoute = useRoute()
- const router = useRouter()
- const changeDate = (e) => {
- return dayjs(e.target.value).format('YYYY-MM-DD')
- }
- const initDetail = () => {
- api.insurancePolicyApi.getOrderDetail(myRoute.query.orderNo).then((res: any) => {
- if(res.code == 200) {
- let obj = res.data
- // 业务员信息
- insurancePolicyForm.value.salesman = obj?.salesmanInfo?.name
- insurancePolicyForm.value.mobile = obj?.salesmanInfo?.mobile
- insurancePolicyForm.value.deptId = obj?.salesmanInfo?.deptId
- // 车辆信息
- insurancePolicyForm.value.isRegistered = obj?.carInfoVo?.isRegistered || '1'
- insurancePolicyForm.value.licenseNo = obj?.carInfoVo?.licenseNo
- insurancePolicyForm.value.vinNo = obj?.carInfoVo?.vinNo
- insurancePolicyForm.value.brandName = obj?.carInfoVo?.brandName
- insurancePolicyForm.value.engineNo = obj?.carInfoVo?.engineNo
- insurancePolicyForm.value.carNatureCode = obj?.carInfoVo?.carNatureCode
- insurancePolicyForm.value.vehicleUseCode = obj?.carInfoVo?.vehicleUseCode
- insurancePolicyForm.value.plateType = obj?.carInfoVo?.carKindCode
- insurancePolicyForm.value.carTypeCode = obj?.carInfoVo?.carTypeCode
- insurancePolicyForm.value.energyTypeCode = obj?.carInfoVo?.energyTypeCode
- insurancePolicyForm.value.registerDate = obj?.carInfoVo?.registerDate
- insurancePolicyForm.value.issueDate = obj?.carInfoVo?.issueDate
- insurancePolicyForm.value.completeKerbMass = obj?.carInfoVo?.completeKerbMass
- insurancePolicyForm.value.limitLoad = obj?.carInfoVo?.limitLoad
- insurancePolicyForm.value.seatCount = obj?.carInfoVo?.seatCount
- insurancePolicyForm.value.carYear = obj?.carInfoVo?.carYear
- insurancePolicyForm.value.purchasePrice = obj?.carInfoVo?.purchasePrice
- insurancePolicyForm.value.displacement = obj?.carInfoVo?.displacement
- insurancePolicyForm.value.powerScale = obj?.carInfoVo?.powerScale
- // 车主信息
- insurancePolicyForm.value.name1 = obj?.ownersInfo?.name
- insurancePolicyForm.value.mobile1 = obj?.ownersInfo?.mobile
- insurancePolicyForm.value.identifyType1 = obj?.ownersInfo?.identifyType
- insurancePolicyForm.value.identifyNumber1 = obj?.ownersInfo?.identifyNumber
- insurancePolicyForm.value.identifyValidDate1 = obj?.ownersInfo?.identifyValidDate
- insurancePolicyForm.value.addr1 = obj?.ownersInfo?.addr
- insurancePolicyForm.value.telephone1 = obj?.ownersInfo?.telephone
- insurancePolicyForm.value.person1 = obj?.ownersInfo?.person
- insurancePolicyForm.value.age1 = obj?.ownersInfo?.age
- insurancePolicyForm.value.identifyValidEndDate1 = obj?.ownersInfo?.identifyValidEndDate
- insurancePolicyForm.value.address1 = obj?.ownersInfo?.address
- insurancePolicyForm.value.registeredCapital1 = obj?.ownersInfo?.registeredCapital
- insurancePolicyForm.value.email1 = obj?.ownersInfo?.email
- insurancePolicyForm.value.taxpayerName = obj?.ownersInfo?.name
- insurancePolicyForm.value.taxpayerIdentifier = obj?.ownersInfo?.identifyType
- insurancePolicyForm.value.identifyNumber = obj?.ownersInfo?.identifyNumber
- // 投保人信息
- insurancePolicyForm.value.name2 = obj?.policyHolderInfo?.name
- insurancePolicyForm.value.mobile2 = obj?.policyHolderInfo?.mobile
- insurancePolicyForm.value.identifyType2 = obj?.policyHolderInfo?.identifyType
- insurancePolicyForm.value.identifyNumber2 = obj?.policyHolderInfo?.identifyNumber
- insurancePolicyForm.value.identifyValidDate2 = obj?.policyHolderInfo?.identifyValidDate
- insurancePolicyForm.value.addr2 = obj?.policyHolderInfo?.addr
- insurancePolicyForm.value.telephone2 = obj?.policyHolderInfo?.telephone
- insurancePolicyForm.value.person2 = obj?.policyHolderInfo?.person
- insurancePolicyForm.value.age2 = obj?.policyHolderInfo?.age
- insurancePolicyForm.value.identifyValidEndDate2 = obj?.policyHolderInfo?.identifyValidEndDate
- insurancePolicyForm.value.address2 = obj?.policyHolderInfo?.address
- insurancePolicyForm.value.registeredCapital2 = obj?.policyHolderInfo?.registeredCapital
- insurancePolicyForm.value.email2 = obj?.policyHolderInfo?.email
- // 被保人信息
- insurancePolicyForm.value.name3 = obj?.insuredPersonInfo?.name
- insurancePolicyForm.value.mobile3 = obj?.insuredPersonInfo?.mobile
- insurancePolicyForm.value.identifyType3 = obj?.insuredPersonInfo?.identifyType
- insurancePolicyForm.value.identifyNumber3 = obj?.insuredPersonInfo?.identifyNumber
- insurancePolicyForm.value.identifyValidDate3 = obj?.insuredPersonInfo?.identifyValidDate
- insurancePolicyForm.value.addr3 = obj?.insuredPersonInfo?.addr
- insurancePolicyForm.value.telephone3 = obj?.insuredPersonInfo?.telephone
- insurancePolicyForm.value.person3 = obj?.insuredPersonInfo?.person
- insurancePolicyForm.value.age3 = obj?.insuredPersonInfo?.age
- insurancePolicyForm.value.identifyValidEndDate3 = obj?.insuredPersonInfo?.identifyValidEndDate
- insurancePolicyForm.value.address3 = obj?.insuredPersonInfo?.address
- insurancePolicyForm.value.registeredCapital3 = obj?.insuredPersonInfo?.registeredCapital
- insurancePolicyForm.value.email3 = obj?.insuredPersonInfo?.email
- btns.value.owner1.forEach(a => {
- a.checked = false
- })
- btns.value.owner2.forEach(a => {
- a.checked = false
- })
- if(obj?.ownersInfo?.identifyNumber == obj?.policyHolderInfo?.identifyNumber) {
- btns.value.owner1[0].checked = true
- btns.value.owner1Text = '同车主'
- } else {
- btns.value.owner1[1].checked = true
- btns.value.owner1Text = '其他人'
- }
- if(obj?.ownersInfo?.identifyNumber == obj?.insuredPersonInfo?.identifyNumber) {
- btns.value.owner2[1].checked = true
- btns.value.owner2Text = '同车主'
- } else if(obj?.policyHolderInfo?.identifyNumber == obj?.insuredPersonInfo?.identifyNumber) {
- btns.value.owner2[0].checked = true
- btns.value.owner2Text = '同投保人'
- } else {
- btns.value.owner2[2].checked = true
- btns.value.owner2Text = '其他人'
- }
- // 车船税
- insurancePolicyForm.value.extendChar2 = obj?.vehicleAndVesselTaxVo?.extendChar2
- insurancePolicyForm.value.relifReason = obj?.vehicleAndVesselTaxVo?.relifReason
- insurancePolicyForm.value.taxComCode = obj?.vehicleAndVesselTaxVo?.taxComCode
- insurancePolicyForm.value.taxComName = obj?.vehicleAndVesselTaxVo?.taxComName
- insurancePolicyForm.value.taxRelief = obj?.vehicleAndVesselTaxVo?.taxRelief
- insurancePolicyForm.value.taxDocumentDate = obj?.vehicleAndVesselTaxVo?.taxDocumentDate
- insurancePolicyForm.value.taxPaidAreaCode = obj?.vehicleAndVesselTaxVo?.taxPaidAreaCode
- btns.value.owner3.forEach(a => {
- a.checked = false
- })
- switch (obj?.vehicleAndVesselTaxVo?.taxRelifFlag) {
- case '1':
- btns.value.owner3[0].checked = true
- btns.value.owner3show = '正常交税'
- break;
- case '2':
- btns.value.owner3[1].checked = true
- btns.value.owner3show = '免税'
- break;
- case '3':
- btns.value.owner3[2].checked = true
- btns.value.owner3show = '减税'
- break;
- case '4':
- btns.value.owner3[3].checked = true
- btns.value.owner3show = '完税'
- break;
- }
- // 投保信息
- insurancePolicyForm.value.productId = obj?.order?.productId
- jqWork.value[0].checked = obj?.ciRiskInfoVo?.instantFlag
- insurancePolicyForm.value.JQStartDate = obj?.ciRiskInfoVo?.startDate
- insurancePolicyForm.value.JQEndDate = obj?.ciRiskInfoVo?.endDate
- optionObj.value.insuranceType.forEach(a => {
- if(a.value == obj?.order?.productId) {
- a.checked = true
- } else {
- a.checked = false
- }
- })
- let newObj = optionObj.value.insuranceType.find(a => a.checked)
- if(newObj) {
- ruleFilterCompany(newObj)
- }
- syWork.value[0].checked = obj?.biRiskInfoVo?.instantFlag
- insurancePolicyForm.value.SYStartDate = obj?.biRiskInfoVo?.startDate
- insurancePolicyForm.value.SYEndDate = obj?.biRiskInfoVo?.endDate
- insurancePolicyForm.value.imageVoList = obj?.imageVoList
- getQuoteNumber()
- }
- })
- }
- // 选择业务员
- let salesmanShow = ref(false)
- const handleFocus = () => {
- salesmanShow.value = true
- nextTick(() => {
- SalesmanSelectRef.value.initEditData()
- })
- }
- const handleSalesmanSelect = (data) => {
- salesmanShow.value = false
- if(data) {
- if(insurancePolicyForm.value.salesman&&insurancePolicyForm.value.mobile&&insurancePolicyForm.value.deptId&&insurancePolicyForm.value.productId) {
- quoteData.value = []
- ruleFilterCompany({
- value: insurancePolicyForm.value.productId
- })
- }
- insurancePolicyForm.value.salesman = data.name
- insurancePolicyForm.value.mobile = data.mobile
- insurancePolicyForm.value.deptId = data.deptId
- }
- }
- // 归属
- let institutionList = ref([])
- const tableProps = ref({
- value: "id",
- label: "name",
- children: "children",
- checkStrictly: true,
- })
- const initDept = () => {
- api.insuranceApi.getDeptTree({ sysCode: localStorage.getItem('login_system')}).then((res: any) => {
- if(res.code == 200) {
- institutionList.value = res.data
- } else {
- ElMessage({
- message: res.msg,
- type: 'warning'
- })
- }
- })
- }
- //折叠面板
- let activeName = ref(['car','owner','owner1','owner2','tax','insurance','company','history'])
- const InsurancePolicyRefs = ref<FormInstance>()
- let insurancePolicyForm = ref({
- systemType: '2',
- propertyCode: '1',
- isRegistered: '1',
- // 车辆
- licenseNo: '',
- vinNo: '',
- brandName: '',
- engineNo: '',
- carNatureCode: '',
- vehicleUseCode: '',
- carTypeCode: '',
- plateType: '',
- energyTypeCode: '',
- registerDate: '',
- issueDate: '',
- completeKerbMass: '',
- limitLoad: '',
- seatCount: '',
- carYear: '',
- purchasePrice: '',
- displacement: '',
- powerScale: '',
- carOwner: '',
- transferDate: '',
- // 险种类型
- productId: '',
- // 车主信息
- name1: '',
- mobile1: '',
- identifyType1: '01',
- identifyNumber1: '',
- identifyValidDate1: '',
- identifyValidEndDate1: '',
- addr1: '',
- telephone1: '',
- person1: '',
- age1: '',
- address1: '',
- registeredCapital1: '',
- email1: '',
- personType1: '1',
- // 投保人信息
- name2: '',
- mobile2: '',
- identifyType2: '01',
- identifyNumber2: '',
- identifyValidDate2: '',
- identifyValidEndDate2: '',
- addr2: '',
- telephone2: '',
- person2: '',
- age2: '',
- address2: '',
- registeredCapital2: '',
- email2: '',
- personType2: '1',
- // 被保人信息
- name3: '',
- mobile3: '',
- identifyType3: '01',
- identifyNumber3: '',
- identifyValidDate3: '',
- identifyValidEndDate3: '',
- addr3: '',
- telephone3: '',
- person3: '',
- age3: '',
- address3: '',
- registeredCapital3: '',
- email3: '',
- personType3: '1',
- order: {},
- // 车船税
- taxRelifFlag: '1',
- extendChar2: '',
- relifReason: '',
- taxComCode: '',
- taxComName: '',
- taxRelief: '',
- taxDocumentDate: '',
- taxPaidAreaCode: '',
- taxpayerName: '',
- taxpayerIdentifier: '',
- identifyNumber: '',
- JQRiskCode: '0507',
- JQStartDate: '',
- JQEndDate: '',
- JQInstantFlag: false,
- SYRiskCode: '0507',
- SYStartDate: '',
- SYEndDate: '',
- SYInstantFlag: false,
- transfer: false,
- biTransfer: false,
- secondHandCar: false,
- imageVoList: []
- })
- let insurancePolicyRules = ref<FormRules>({
- isRegistered: [
- { required: true, trigger: 'change', message: '请选择车辆是否上牌' },
- ],
- licenseNo: [
- { required: true, trigger: 'blur', message: '请输入车牌' }
- ],
- vinNo: [
- { required: true, trigger: 'blur', message: '请输入车牌识别代码' }
- ],
- brandName: [
- { required: true, trigger: 'blur', message: '请输入品牌型号' }
- ],
- engineNo: [
- { required: true, trigger: 'blur', message: '请输入发动机号' }
- ],
- carNatureCode: [
- { required: true, trigger: 'change', message: '请选择车辆是否上牌' },
- ],
- vehicleUseCode: [
- { required: true, trigger: 'change', message: '请选择车辆是否上牌' },
- ],
- carTypeCode: [
- { required: true, trigger: 'change', message: '请选择车辆是否上牌' },
- ],
- plateType: [
- { required: true, trigger: 'change', message: '请选择车辆类型' },
- ],
- energyTypeCode: [
- { required: true, trigger: 'change', message: '请选择能源种类' },
- ],
- registerDate: [
- { required: true, trigger: 'change', message: '请选择注册日期' },
- ],
- issueDate: [
- { required: true, trigger: 'change', message: '请选择发证日期' },
- ],
- completeKerbMass: [
- { required: true, trigger: 'blur', message: '请输入整备质量' }
- ],
- // limitLoad: [
- // { required: true, trigger: 'blur', message: '请输入核定载质量' }
- // ],
- seatCount: [
- { required: true, trigger: 'blur', message: '请输入座位数' }
- ],
- // carYear: [
- // { required: true, trigger: 'blur', message: '请输入年款' }
- // ],
- purchasePrice: [
- { required: true, trigger: 'blur', message: '请输入新车购置价' }
- ],
- displacement: [
- { required: true, trigger: 'blur', message: '请输入排量' }
- ],
- powerScale: [
- { required: true, trigger: 'blur', message: '请输入功率' }
- ],
- transferDate: [
- { required: true, trigger: 'change', message: '请选择转移登记日期' },
- ],
- name1: [
- { required: true, trigger: 'blur', message: '请输入姓名' }
- ],
- mobile1: [
- { required: true, trigger: 'blur', message: '请输入手机号' },
- {
- pattern: /^1[0-9]{10}$/,
- message: '请填写正确的手机号',
- trigger: 'blur'
- }
- ],
- personType1: [
- { required: true, trigger: 'change', message: '请选择证件类型' }
- ],
- identifyNumber1: [
- { required: true, trigger: 'blur', message: '请输入证件号' }
- ],
- identifyValidDate1: [
- { required: true, trigger: 'change', message: '请选择有效期起期' }
- ],
- identifyValidEndDate1: [
- { required: true, trigger: 'change', message: '请选择有效期止期' }
- ],
- addr1: [
- { required: true, trigger: 'blur', message: '请输入地址' }
- ],
- name2: [
- { required: true, trigger: 'blur', message: '请输入姓名' }
- ],
- mobile2: [
- { required: true, trigger: 'blur', message: '请输入手机号' },
- {
- pattern: /^1[0-9]{10}$/,
- message: '请填写正确的手机号',
- trigger: 'blur'
- }
- ],
- personType2: [
- { required: true, trigger: 'change', message: '请选择证件类型' }
- ],
- identifyNumber2: [
- { required: true, trigger: 'blur', message: '请输入证件号' }
- ],
- identifyValidDate2: [
- { required: true, trigger: 'change', message: '请选择有效期起期' }
- ],
- identifyValidEndDate2: [
- { required: true, trigger: 'change', message: '请选择有效期止期' }
- ],
- addr2: [
- { required: true, trigger: 'blur', message: '请输入地址' }
- ],
- name3: [
- { required: true, trigger: 'blur', message: '请输入姓名' }
- ],
- mobile3: [
- { required: true, trigger: 'blur', message: '请输入手机号' },
- {
- pattern: /^1[0-9]{10}$/,
- message: '请填写正确的手机号',
- trigger: 'blur'
- }
- ],
- personType3: [
- { required: true, trigger: 'change', message: '请选择证件类型' }
- ],
- identifyNumber3: [
- { required: true, trigger: 'blur', message: '请输入证件号' }
- ],
- identifyValidDate3: [
- { required: true, trigger: 'change', message: '请选择有效期起期' }
- ],
- identifyValidEndDate3: [
- { required: true, trigger: 'change', message: '请选择有效期止期' }
- ],
- addr3: [
- { required: true, trigger: 'blur', message: '请输入地址' }
- ],
- extendChar2: [
- { required: true, trigger: 'blur', message: '请输入' },
- ],
- relifReason: [
- { required: true, trigger: 'blur', message: '请输入' }
- ],
- taxComCode: [
- { required: true, trigger: 'blur', message: '请输入' }
- ],
- taxComName: [
- { required: true, trigger: 'blur', message: '请输入' }
- ],
- taxRelief: [
- { required: true, trigger: 'blur', message: '请输入' }
- ],
- taxDocumentDate: [
- { required: true, trigger: 'change', message: '请选择' }
- ],
- taxPaidAreaCode: [
- { required: true, trigger: 'change', message: '请选择' }
- ]
- })
- // 使用性质,车辆用途,车辆类型,能源种类,车辆种类
- let optionObj = ref({
- vehicle_use_code: [], // 车辆用途
- car_nature_code: [], // 使用性质
- energy_type_code: [], // 能源种类
- car_kind_code: [], // 车辆种类
- vehicleType: [],
- taxpayerIdentifier: [], // 证件类型
- insuranceType: [], // 险种类型
- car_type_code: [], // 车辆类型
- })
- // 地区
- const areaOptins = ref([]);
- const areaProps = ref({
- value: "areaCode",
- label: "areaCname",
- children: "child",
- });
- const getAreaList = () => {
- api.areaApi.areaList({}).then((res) => {
- areaOptins.value = res.data;
- });
- };
- // 车牌识别
- let licenseNoShow = ref(false)
- let licenseNoData = ref([])
- const handleCarNumber = () => {
- api.additionalApi.vinSearch(insurancePolicyForm.value.vinNo).then((res: any) => {
- if(res.code == 200) {
- licenseNoShow.value = true
- licenseNoData.value = res.data
- } else {
- ElMessage({
- message: res.msg,
- type: 'warning'
- })
- }
- })
- }
- let selectRowData = ref({})
- const handleSelectedRow = (row: any, column: any) => {
- licenseNoData.value.forEach((item) => {
- LicenseNoTable.value.toggleRowSelection(item, false)
- })
- LicenseNoTable.value.toggleRowSelection(row, true)
- selectRowData.value = row
- licenseNoDataSubmit()
- }
- const handleSelectedChange = (rows: any, row: any) => {
- licenseNoData.value.forEach((item) => {
- LicenseNoTable.value.toggleRowSelection(item, false)
- })
- LicenseNoTable.value.toggleRowSelection(row, true)
- selectRowData.value = row
- }
- const licenseNoDataCancel = () => {
- selectRowData.value = {}
- licenseNoShow.value = false
- }
- const licenseNoDataSubmit = () => {
- insurancePolicyForm.value.seatCount = selectRowData.value.ratedPassengerCapacity
- insurancePolicyForm.value.brandName = selectRowData.value.modelName
- insurancePolicyForm.value.carYear = selectRowData.value.marketYear
- insurancePolicyForm.value.purchasePrice = selectRowData.value.replacementValue
- insurancePolicyForm.value.displacement = selectRowData.value.displacement
- insurancePolicyForm.value.powerScale = selectRowData.value.powerScale
- licenseNoShow.value = false
- }
- // 车架号识别
- const handleCarCode = () => {
- api.additionalApi.licenseSearch({
- modelName: insurancePolicyForm.value.brandName.replace(/[^u4e00-u9fa5|,]+/gi, "")
- }).then((res: any) => {
- if(res.code == 200) {
- licenseNoShow.value = true
- licenseNoData.value = res.data
- } else {
- ElMessage({
- message: res.msg,
- type: 'warning'
- })
- }
- })
- }
- // 获取报价号
- const getQuoteNumber = () => {
- if(insurancePolicyForm.value.licenseNo&&insurancePolicyForm.value.vinNo&&insurancePolicyForm.value.engineNo) {
- api.insurancePolicyApi.getQuoteNo({
- licenseNo: insurancePolicyForm.value.licenseNo,
- vinNo: insurancePolicyForm.value.vinNo,
- engineNo: insurancePolicyForm.value.engineNo
- }).then((res: any) => {
- if(res.code == 200) {
- // insuranceCompanyCode
- insurancePolicyForm.value.order.quoteNo = res.msg
- } else {
- ElMessage({
- message: res.msg,
- type: "warning"
- })
- }
- })
- }
- if(insurancePolicyForm.value.licenseNo) {
- api.insurancePolicyApi.getHistoryQuoteList({
- licenseNo: insurancePolicyForm.value.licenseNo,
- pages: 1,
- size: 999
- }).then((res: any) => {
- if(res.code === 200) {
- tableData.value = res.data.records
- } else {
- ElMessage({
- message: res.msg,
- type: 'warning'
- })
- }
- })
- }
- }
- const longTime = () => {
- insurancePolicyForm.value.identifyValidEndDate1 = '9999-12-31'
- }
- const issueDateChange = (e) => {
- insurancePolicyForm.value.transferDate = insurancePolicyForm.value.issueDate
- }
- // 是否同车主/同投保人
- let btns = ref({
- owner1Show: true,
- owner2show: true,
- owner1Text: '同车主',
- owner2Text: '同投保人',
- owner3show: '正常交税',
- owner1: [{
- text: '同车主',
- checked: true
- },{
- text: '其他人',
- checked: false
- },],
- owner2: [{
- text: '同投保人',
- checked: true
- },{
- text: '同车主',
- checked: false
- },{
- text: '其他人',
- checked: false
- }],
- owner3: [{
- text: '正常交税',
- checked: true
- },{
- text: '免税',
- checked: false
- },{
- text: '减税',
- checked: false
- },{
- text: '完税',
- checked: false
- }],
- })
- const handleChange = (item, type) => {
- switch (type) {
- case 'owner1':
- item.checked = !item.checked
- let list1 = btns.value.owner1.filter(a => a.text != item.text)
- list1.forEach(a => a.checked = false)
- btns.value.owner1Show = btns.value.owner1.some(a => a.checked)
- let obj1 = btns.value.owner1.find(a => a.checked)
- btns.value.owner1Text = obj1.text
- if(obj1.text === '同车主') {
- insurancePolicyForm.value.name2 = insurancePolicyForm.value.name1
- insurancePolicyForm.value.mobile2 = insurancePolicyForm.value.mobile1
- insurancePolicyForm.value.identifyType2 = insurancePolicyForm.value.identifyType1
- insurancePolicyForm.value.identifyNumber2 = insurancePolicyForm.value.identifyNumber1
- insurancePolicyForm.value.identifyValidDate2 = insurancePolicyForm.value.identifyValidDate1
- insurancePolicyForm.value.identifyValidEndDate2 = insurancePolicyForm.value.identifyValidEndDate1
- insurancePolicyForm.value.addr2 = insurancePolicyForm.value.addr1
- insurancePolicyForm.value.telephone2 = insurancePolicyForm.value.telephone1
- insurancePolicyForm.value.person2 = insurancePolicyForm.value.person1
- insurancePolicyForm.value.age2 = insurancePolicyForm.value.age1
- insurancePolicyForm.value.address2 = insurancePolicyForm.value.address1
- insurancePolicyForm.value.registeredCapital2 = insurancePolicyForm.value.registeredCapital1
- insurancePolicyForm.value.email2 = insurancePolicyForm.value.email1
- }
- break;
- case 'owner2':
- item.checked = !item.checked
- let list2 = btns.value.owner2.filter(a => a.text != item.text)
- list2.forEach(a => a.checked = false)
- btns.value.owner2show = btns.value.owner2.some(a => a.checked)
- let obj2 = btns.value.owner2.find(a => a.checked)
- btns.value.owner2Text = obj2.text
- if(obj2.text === '同车主') {
- insurancePolicyForm.value.name3 = insurancePolicyForm.value.name1
- insurancePolicyForm.value.mobile3 = insurancePolicyForm.value.mobile1
- insurancePolicyForm.value.identifyType3 = insurancePolicyForm.value.identifyType1
- insurancePolicyForm.value.identifyNumber3 = insurancePolicyForm.value.identifyNumber1
- insurancePolicyForm.value.identifyValidDate3 = insurancePolicyForm.value.identifyValidDate1
- insurancePolicyForm.value.identifyValidEndDate3 = insurancePolicyForm.value.identifyValidEndDate1
- insurancePolicyForm.value.addr3 = insurancePolicyForm.value.addr1
- insurancePolicyForm.value.telephone3 = insurancePolicyForm.value.telephone1
- insurancePolicyForm.value.person3 = insurancePolicyForm.value.person1
- insurancePolicyForm.value.age3 = insurancePolicyForm.value.age1
- insurancePolicyForm.value.address3 = insurancePolicyForm.value.address1
- insurancePolicyForm.value.registeredCapital3 = insurancePolicyForm.value.registeredCapital1
- insurancePolicyForm.value.email3 = insurancePolicyForm.value.email1
- }
- if(obj2.text === '同投保人') {
- insurancePolicyForm.value.name3 = insurancePolicyForm.value.name2
- insurancePolicyForm.value.mobile3 = insurancePolicyForm.value.mobile2
- insurancePolicyForm.value.identifyType3 = insurancePolicyForm.value.identifyType2
- insurancePolicyForm.value.identifyNumber3 = insurancePolicyForm.value.identifyNumber2
- insurancePolicyForm.value.identifyValidDate3 = insurancePolicyForm.value.identifyValidDate2
- insurancePolicyForm.value.identifyValidEndDate3 = insurancePolicyForm.value.identifyValidEndDate2
- insurancePolicyForm.value.addr3 = insurancePolicyForm.value.addr2
- insurancePolicyForm.value.telephone3 = insurancePolicyForm.value.telephone2
- insurancePolicyForm.value.person3 = insurancePolicyForm.value.person2
- insurancePolicyForm.value.age3 = insurancePolicyForm.value.age2
- insurancePolicyForm.value.address3 = insurancePolicyForm.value.address2
- insurancePolicyForm.value.registeredCapital3 = insurancePolicyForm.value.registeredCapital2
- insurancePolicyForm.value.email3 = insurancePolicyForm.value.email2
- }
- break;
- case 'owner3':
- item.checked = true
- let list3 = btns.value.owner3.filter(a => a.text != item.text)
- list3.forEach(a => a.checked = false)
- btns.value.owner3show = btns.value.owner3.find(a => a.checked)?.text
- insurancePolicyForm.value.taxRelifFlag = btns.value.owner3show === '正常交税'?'1':btns.value.owner3show === '免税'?'2':btns.value.owner3show === '减税'?'3':btns.value.owner3show === '完税'?'4':''
- break;
- case 'insurance':
- ruleFilterCompany(item)
- let list4 = optionObj.value.insuranceType.filter(a => a.label != item.label)
- list4.forEach(a => a.checked = false)
- item.checked = true
- insurancePolicyForm.value.productId = item.value
- if(insurancePolicyForm.value.productId === '0330' || insurancePolicyForm.value.productId === '0330034001' || insurancePolicyForm.value.productId === '0330034002') {
- // let date = new Date()
- // let year = date.getFullYear()
- // let month = date.getMonth() + 1<10?`0${date.getMonth() + 1}`:date.getMonth() + 1
- // let day = date.getDate() + 1< 10?`0${date.getDate() + 1}`:date.getDate() + 1
- insurancePolicyForm.value.JQStartDate = transformTime1()
- insurancePolicyForm.value.JQEndDate = oneYearPast1(insurancePolicyForm.value.JQStartDate)
- }
- if(insurancePolicyForm.value.productId === '034001' || insurancePolicyForm.value.productId === '034002' || insurancePolicyForm.value.productId === '0330034001' || insurancePolicyForm.value.productId === '0330034002') {
- // let date = new Date()
- // let year = date.getFullYear()
- // let month = date.getMonth() + 1<10?`0${date.getMonth() + 1}`:date.getMonth() + 1
- // let day = date.getDate() + 1< 10?`0${date.getDate() + 1}`:date.getDate() + 1
- // insurancePolicyForm.value.SYStartDate = `${year}-${month}-${day} 00:00:00`
- // insurancePolicyForm.value.SYEndDate = `${year + 1}-${month}-${day - 1} 23:59:59`
- insurancePolicyForm.value.SYStartDate = transformTime1()
- insurancePolicyForm.value.SYEndDate = oneYearPast1(insurancePolicyForm.value.SYStartDate)
- }
- break;
- }
- }
- const initOption = () => {
- let list = ['vehicle_use_code', 'car_nature_code', 'energy_type_code', 'car_kind_code', 'car_type_code']
- list.forEach(item => {
- api.additionalApi.dictDetails(item).then((res: any) => {
- if(res.code == 200) {
- if(res.data) {
- optionObj.value[item] = res.data
- }
- }
- })
- })
- api.commonApi.personInfo('insurance_type').then((res: any) => {
- if(res.code == 200) {
- if(res.data&&res.data.length>0) {
- res.data.forEach(a => {
- a.checked = false
- })
- optionObj.value.insuranceType = res.data
- }
- } else {
- ElMessage({
- message: res.msg,
- type: 'warning'
- })
- }
- })
- }
- // 交强即时生效
- let jqWork = ref([
- { text: '即时生效', checked: false }
- ])
- // 根据身份证号换算年龄
- const getAgeByIdCard = (idCard: any, type?: any) => {
- //获取用户身份证号码
- const userCard = idCard
- //如果用户身份证号码为undefined则返回空
- if (!userCard) {
- return ''
- }
- // 获取出生日期
- const yearBirth = userCard.substring(6, 10)
- const monthBirth = userCard.substring(10, 12)
- const dayBirth = userCard.substring(12, 14)
- // 获取当前年月日并计算年龄
- const myDate = new Date()
- const monthNow = myDate.getMonth() + 1
- const dayNow = myDate.getDate()
- let age = myDate.getFullYear() - yearBirth
- if (monthNow > monthBirth || (monthNow == monthBirth && dayNow > dayBirth)) {
- age++
- }
- // type.age = age
- return age
- }
- const noeYearPast = (time) => {
- let strYear: any = time.getFullYear();
- let strDay: any = time.getDate();
- let strMonth: any = time.getMonth() + 1;
- let hh: any = time.getHours();
- let minutes: any = time.getMinutes(); // 分
- let Seconds: any = time.getSeconds();
- if (hh < 10) {
- hh = "0" + hh;
- }
- if (minutes < 10) {
- minutes = "0" + minutes;
- }
- if (Seconds < 10) {
- Seconds = "0" + Seconds;
- }
- if (strMonth < 10) {
- strMonth = "0" + strMonth;
- }
- if (strDay < 10) {
- strDay = "0" + strDay;
- }
- let datastr =
- strYear +
- "-" +
- strMonth +
- "-" +
- strDay +
- " " +
- hh +
- ":" +
- minutes +
- ":" +
- Seconds;
- return datastr;
- }
- const oneYearPast1 = (time) => {
- //明年减一秒
- let date = new Date(time);
- date.setSeconds(date.getSeconds() - 1);
- date.setFullYear(date.getFullYear() + 1); //一年后
- date.setTime(date.getTime()); //一年后的前一天
- let strYear: any = date.getFullYear();
- let strDay: any = date.getDate();
- let strMonth: any = date.getMonth() + 1;
- let hh: any = date.getHours();
- let minutes: any = date.getMinutes(); // 分
- let Seconds: any = date.getSeconds();
- if (hh < 10) {
- hh = "0" + hh;
- }
- if (minutes < 10) {
- minutes = "0" + minutes;
- }
- if (Seconds < 10) {
- Seconds = "0" + Seconds;
- }
- if (strMonth < 10) {
- strMonth = "0" + strMonth;
- }
- if (strDay < 10) {
- strDay = "0" + strDay;
- }
- let datastr =
- strYear +
- "-" +
- strMonth +
- "-" +
- strDay +
- " " +
- hh +
- ":" +
- minutes +
- ":" +
- Seconds;
- return datastr;
- }
- //当前日期的次日
- const transformTime1 = () => {
- let date = new Date();
- date.setFullYear(date.getFullYear());
- date.setTime(date.getTime() + 24 * 60 * 60 * 1000);
- let strYear: any = date.getFullYear();
- let strDay: any = date.getDate();
- let strMonth: any = date.getMonth() + 1;
- let hh: any = date.getHours();
- if (hh < 10) {
- hh = "0" + hh;
- }
- if (strMonth < 10) {
- strMonth = "0" + strMonth;
- }
- if (strDay < 10) {
- strDay = "0" + strDay;
- }
- let datastr = strYear + "-" + strMonth + "-" + strDay + " " + "00:00:00";
- return datastr;
- }
- const JQChange = (item) => {
- item.checked = !item.checked
- if(jqWork.value.some( a => a.checked )) {
- let date: any = new Date();
- date.setHours(date.getHours() + 2);
- date.setMinutes(0);
- date.setSeconds(0);
- insurancePolicyForm.value.JQStartDate = noeYearPast(date)
- insurancePolicyForm.value.JQEndDate = oneYearPast1(date)
- insurancePolicyForm.value.JQInstantFlag = true
- } else {
- insurancePolicyForm.value.JQStartDate = transformTime1()
- insurancePolicyForm.value.JQEndDate = oneYearPast1(insurancePolicyForm.value.JQStartDate)
- insurancePolicyForm.value.JQInstantFlag = false
- }
- }
- const jqChange = (e) => {
- insurancePolicyForm.value.JQEndDate = oneYearPast1(e)
- }
- // 商业即时生效
- let syWork = ref([
- { text: '即时生效', checked: false }
- ])
- const SYChange = (item) => {
- item.checked = !item.checked
- if(syWork.value.some( a => a.checked )) {
- let date: any = new Date();
- date.setHours(date.getHours() + 2);
- date.setMinutes(0);
- date.setSeconds(0);
- insurancePolicyForm.value.SYStartDate = noeYearPast(date)
- insurancePolicyForm.value.SYEndDate = oneYearPast1(date)
- insurancePolicyForm.value.SYInstantFlag = true
- } else {
- insurancePolicyForm.value.SYStartDate = transformTime1()
- insurancePolicyForm.value.SYEndDate = oneYearPast1(insurancePolicyForm.value.SYStartDate)
- insurancePolicyForm.value.SYInstantFlag = false
- }
- }
- const syChange = (e) => {
- insurancePolicyForm.value.SYEndDate = oneYearPast1(e)
- }
- // 报价公司
- let currentRow = ref([])
- let quoteData = ref([])
- const handleSelect = (a, b) => {
- currentRow.value = a
- // currentRow.value = a
- // insurancePolicyForm.value.order.insuranceCompanyCode = a[0].id
- }
- const handelSelectRow = (a, b) => {
- currentRow.value = a
- if(a.some(c => c.id === b.id)) {
- insurancePolicyForm.value.order.insuranceCompanyCode = b.id
- if(insurancePolicyForm.value.productId) {
- api.insurancePolicyApi.getSchemeResult({
- companyId: b.id,
- productId: insurancePolicyForm.value.productId
- }).then((res: any) => {
- let list = res.data?.schemes || [];
- if(res.data?.optionalScheme) {
- list.push(res.data.optionalScheme)
- console.log(123123123, list)
- }
- if(list.length > 0) {
- list.forEach(item => {
- item.checked = false
- })
- }
- quoteData.value.forEach(item => {
- if(item.id === b.id) {
- item.projectList = list.map(item => {
- return {
- ...item,
- rescue: [],
- detection: [],
- driver: [],
- inspect: []
- }
- })
- }
- })
- })
- }
- } else {
- insurancePolicyForm.value.order.insuranceCompanyCode = ''
- }
- }
- const handelExpend = (e) => {
- insurancePolicyForm.value.order.insuranceCompanyCode = e.id
- if(insurancePolicyForm.value.productId) {
- api.insurancePolicyApi.getSchemeResult({
- companyId: e.id,
- productId: insurancePolicyForm.value.productId
- }).then((res: any) => {
- let list = res.data?.schemes || [];
- if(res.data?.optionalScheme) {
- list.push(res.data.optionalScheme)
- console.log(123123123, list)
- }
- if(list.length > 0) {
- list.forEach(item => {
- item.checked = false
- })
- }
- quoteData.value.forEach(item => {
- if(item.id === e .id) {
- item.projectList = list.map(item => {
- return {
- ...item,
- rescue: [],
- detection: [],
- driver: [],
- inspect: []
- }
- })
- }
- })
- })
- }
- }
- const handleClickRow = (a, b) => {
- }
- const handleViewSuccess = (e) => {
- console.log(11111, quoteData.value)
- }
- // 选择险种
- let insuranceShow = ref(false)
- const handlePopover = (scope) => {
- insuranceShow.value = true
- nextTick(() => {
- InsuranceTypeRef.value.initEditData(scope.row.projectList[productIndex.value].kinds)
- })
- }
- // 删除险种
- const handleInsuranceDel = (scope, props) => {
- let obj = scope.row.projectList[productIndex.value].kinds.filter(a => a.id != props.row.id)
- quoteData.value.forEach(a => {
- if(a.id === scope.row.id) {
- a.projectList[productIndex.value].kinds = obj
- }
- })
- }
- const handleClose = (data) => {
- insuranceShow.value = false
- if(data&&data.list.length>0) {
- data.list.forEach(item => {
- let obj = item.options.find(a => a.checked)
- item.amount = obj.value
- item.unitAmount = obj.value
- })
- }
- quoteData.value.forEach(a => {
- if(insurancePolicyForm.value.order.insuranceCompanyCode === a.id) {
- a.projectList[productIndex.value].kinds = data.list
- }
- })
- }
- // 选择驾意险
- let drivingShow = ref(false)
- let drivingRow = ref(0)
- let JYXDetailShow = ref(false)
- const handleDriving = (scope) => {
- drivingRow.value = scope.$index
- drivingShow.value = true
- nextTick(() => {
- DrivingTypeRef.value.initEditData(scope.row.projectList[productIndex.value].drivings, 0, insurancePolicyForm.value.order.insuranceCompanyCode)
- })
- }
- // 删除驾意险
- const handleDrivingDel = (scope, props) => {
- let obj = scope.row.projectList[productIndex.value].drivings.filter(a => a.id != props.row.id)
- quoteData.value.forEach(a => {
- if(a.id === scope.row.id) {
- a.projectList[productIndex.value].drivings = obj
- }
- })
- }
- // 驾意险详情
- const getJYXDetail = (row) => {
- JYXDetailShow.value = true
- nextTick(() => {
- JYXDetail.value.initData(row.drivingIntentionId)
- })
- }
- const handleDrivingClose = (data) => {
- if(data&&data.list.length>0) {
- data.list.forEach(a => {
- a.quantity = 1
- })
- quoteData.value[drivingRow.value].projectList[productIndex.value].drivings = [...data.list]
- }
- drivingShow.value = false
- }
- // 选择特约
- let specialIndex = ref(-1)
- let specialShow = ref(false)
- let specialTableData = ref([])
- let specialSelectList = ref([])
- const handleSelectSpecial = (scope) => {
- specialIndex.value = scope.$index
- specialShow.value = true
- api.insurancePolicyApi.getClausePage({
- pages: 1,
- size: 99999,
- companyId: scope.row.id,//id
- clauseName: "",//特约名称
- riskCode: "",//特约类型
- clauseCode: "",//特约编码
- clauseContent: "",//特约内容
- }).then((res: any) => {
- if(res.code == 200) {
- specialTableData.value = res.data.records
- }
- })
- }
- const handleSpecialSelectChage = (a) => {
- specialSelectList.value = [...a]
- }
- const handleSpecialTableDataCancel = () => {
- specialSelectList.value = []
- specialShow.value = false
- }
- const handleSpecialTableDataSubmit = () => {
- if(specialSelectList.value.length>0) {
- quoteData.value[specialIndex.value].specialSelectedList = [...specialSelectList.value]
- specialShow.value = false
- } else {
- ElMessage({
- message: '请选择特约!',
- type: 'warning'
- })
- }
- }
- // 优惠信息
- let discounts = ref([])
- let productIndex = ref(0)
- const handleProduct = (e, index) => {
- productIndex.value = index
- }
- // 报价历史
- let tableData = ref([])
- // 分享
- let shareShow = ref(false)
- let shareImageUrl = ref('')
- const handleShare = async (scope) => {
- shareShow.value = true
- shareImageUrl.value = await QRCode.toDataURL('http://www.baidu.com', {
- width: 150,
- margin: 2
- });
- }
- const handleSaveImage = () => {
- shareShow.value = false
- const link = document.createElement('a');
- link.href = shareImageUrl.value;
- link.download = '报价.png';
- link.click();
- }
- const handleCopyLink = async () => {
- shareShow.value = false
- try {
- await navigator.clipboard.writeText('你想要复制的文本');
- ElMessage({
- message: '复制成功!',
- type: 'success'
- })
- } catch (err) {
- ElMessage({
- message: '复制失败!',
- type: 'error'
- })
- }
- }
- // 优惠测算
- let calculatingShow = ref(false)
- const handleCount = (scope) => {
- calculatingShow.value = true
- }
- // 详情
- const toDetail = (scope: any) => {
- router.push({
- path: '/insurancePolicy/order/insurancePolicyOrderDetail',
- query: {
- orderNo: scope.row.quoteResult.ordersNo
- }
- })
- }
- // 上传影像
- const handleImageSave = (scope) => {
- let list = images.value.filter(a => a.checked)
- if(list.length > 0) {
- let arr = list.map(a => {
- return {
- imageCode: a.imageType,
- imageBase64List: [
- {
- imageId: a.imageId
- }
- ]
- }
- })
- api.insurancePolicyApi.imageSave({
- order: {
- quoteNo: insurancePolicyForm.value.order.quoteNo
- },
- imageVoList: arr
- }).then((res: any) => {
- if(res.code == 200) {
- ElMessage({
- message: '上传成功!',
- type: 'success'
- })
- }
- })
- } else {
- ElMessage({
- message: '请选择影像资料!',
- type: 'warning'
- })
- }
- }
- //支付码
- const getPayCode = (orderNo) => {
- api.insurancePolicyApi.getQrCode(orderNo).then((res: any) => {
- if(res.code == 200) {
- payCodeUrl.value = res.data?.qrcode
- } else {
- payCodeUrl.value = ''
- ElMessage({
- message: res.msg,
- type: 'warning'
- })
- }
- })
- }
- //分享
- let qrImageUrl = ref('')
- let payCodeUrl = ref('')
- const handleCode = async (orderNo) => {
- api.insurancePolicyApi.getQrCode(orderNo).then((res: any) => {
- if(res.code == 200) {
- payCodeUrl.value = res.data?.qrcode
- qrImageUrl.value = QRCode.toDataURL(payCodeUrl.value, {
- width: 150,
- margin: 2
- });
- } else {
- payCodeUrl.value = ''
- ElMessage({
- message: res.msg,
- type: 'warning'
- })
- }
- })
- }
- const handlePopoverCancel = async () => {
- const link = document.createElement('a');
- link.href = qrImageUrl.value;
- link.download = 'qrcode.png';
- link.click();
- }
- const handlePopoverConfirm = async () => {
- try {
- await navigator.clipboard.writeText('你想要复制的文本');
- ElMessage({
- message: '复制成功!',
- type: 'success'
- })
- } catch (err) {
- ElMessage({
- message: '复制失败!',
- type: 'error'
- })
- }
- }
- // 提交核保
- let underwritingShow = ref(false)
- const handleUnderwriting = (scope) => {
- console.log('要去核保的数据', scope.row)
- underwritingShow.value = true
- // insurancePolicyForm.value.imageVoList
- let data = {
- // ordersNo: '1915570359429222400'
- ordersNo: scope.row.quoteResult.ordersNo,
- quoteNo: insurancePolicyForm.value.order.quoteNo,
- list: images.value
- }
- // nextTick(() => {
- // UnderwritingRefs.value.initEdit({
- // ...data
- // })
- // })
- api.insurancePolicyApi.imagesUpload({
- order: {
- ...data
- }
- }).then((res: any) => {
- if(res.code === 200) {
- nextTick(() => {
- UnderwritingRefs.value.initEdit(data)
- })
- } else {
- ElMessage({
- message: res.msg,
- type: 'warning'
- })
- }
- })
- }
- const handleUnderwritingClose = () => {
- underwritingShow.value = false
- }
- // 证件识别
- let imageShow = ref(false)
- let images = ref([])
- const handleImageClose = (data) => {
- btns.value.owner1.forEach(a => {
- a.checked = false
- })
- btns.value.owner2.forEach(a => {
- a.checked = false
- })
- imageShow.value = false
- images.value = []
- if(data) {
- const { carForm, owerForm, ower1Form, ower2Form, imageVoList, list } = data
- if(carForm) {
- insurancePolicyForm.value.isRegistered = '1'
- insurancePolicyForm.value.licenseNo = carForm.licenseNo || hadWritedData.value.licenseNo
- insurancePolicyForm.value.vinNo = carForm.vinNo || hadWritedData.value.vinNo
- insurancePolicyForm.value.brandName = carForm.brandName || hadWritedData.value.brandName
- insurancePolicyForm.value.engineNo = carForm.engineNo || hadWritedData.value.engineNo
- insurancePolicyForm.value.carNatureCode = carForm.carNatureCode || hadWritedData.value.carNatureCode
- insurancePolicyForm.value.vehicleUseCode = carForm.vehicleUseCode || hadWritedData.value.vehicleUseCode
- insurancePolicyForm.value.carTypeCode = carForm.carTypeCode || hadWritedData.value.carTypeCode
- insurancePolicyForm.value.plateType = carForm.plateType || hadWritedData.value.plateType
- insurancePolicyForm.value.energyTypeCode = carForm.energyTypeCode || hadWritedData.value.energyTypeCode || insurancePolicyForm.value.licenseNo.length == 7?'0' : insurancePolicyForm.value.licenseNo.length == 8?'1' : ''
- insurancePolicyForm.value.registerDate = carForm.registerDate || hadWritedData.value.registerDate
- insurancePolicyForm.value.issueDate = carForm.issueDate || hadWritedData.value.issueDate
- insurancePolicyForm.value.completeKerbMass = carForm.completeKerbMass || hadWritedData.value.completeKerbMass
- insurancePolicyForm.value.limitLoad = carForm.limitLoad || hadWritedData.value.limitLoad
- insurancePolicyForm.value.seatCount = carForm.seatCount || hadWritedData.value.seatCount
- insurancePolicyForm.value.carYear = carForm.carYear || hadWritedData.value.carYear
- insurancePolicyForm.value.purchasePrice = carForm.purchasePrice || hadWritedData.value.purchasePrice
- insurancePolicyForm.value.displacement = carForm.displacement || hadWritedData.value.displacement
- insurancePolicyForm.value.powerScale = carForm.powerScale || hadWritedData.value.powerScale
- insurancePolicyForm.value.carOwner = carForm.carOwner || hadWritedData.value.carOwner
- if(carForm.licenseNo&&carForm.vinNo&&carForm.engineNo) {
- getQuoteNumber()
- }
- }
- if(owerForm) {
- insurancePolicyForm.value.name1 = owerForm.name || hadWritedData.value.name1
- insurancePolicyForm.value.mobile1 = owerForm.mobile || hadWritedData.value.mobile1
- insurancePolicyForm.value.identifyType1 = owerForm.identifyType || hadWritedData.value.identifyType1
- insurancePolicyForm.value.identifyNumber1 = owerForm.identifyNumber || hadWritedData.value.identifyNumber1
- insurancePolicyForm.value.identifyValidDate1 = owerForm.identifyValidDate || hadWritedData.value.identifyValidDate1
- insurancePolicyForm.value.identifyValidEndDate1 = owerForm.identifyValidEndDate || hadWritedData.value.identifyValidEndDate1
- insurancePolicyForm.value.addr1 = owerForm.addr || hadWritedData.value.addr1
- insurancePolicyForm.value.telephone1 = owerForm.telephone || hadWritedData.value.telephone1
- insurancePolicyForm.value.person1 = owerForm.person || hadWritedData.value.person1
- insurancePolicyForm.value.age1 = owerForm.age || hadWritedData.value.age1
- insurancePolicyForm.value.address1 = owerForm.address || hadWritedData.value.address1
- insurancePolicyForm.value.registeredCapital1 = owerForm.registeredCapital || hadWritedData.value.registeredCapital1
- insurancePolicyForm.value.email1 = owerForm.email || hadWritedData.value.email1
- insurancePolicyForm.value.taxpayerName = owerForm.name || hadWritedData.value.taxpayerName
- insurancePolicyForm.value.taxpayerIdentifier = owerForm.identifyType || hadWritedData.value.taxpayerIdentifier
- insurancePolicyForm.value.identifyNumber = owerForm.identifyNumber || hadWritedData.value.identifyNumber
- }
- if(ower1Form) {
- insurancePolicyForm.value.name2 = ower1Form.name || hadWritedData.value.name2
- insurancePolicyForm.value.mobile2 = ower1Form.mobile || hadWritedData.value.mobile2
- insurancePolicyForm.value.identifyType2 = ower1Form.identifyType || hadWritedData.value.identifyType2
- insurancePolicyForm.value.identifyNumber2 = ower1Form.identifyNumber || hadWritedData.value.identifyNumber2
- insurancePolicyForm.value.identifyValidDate2 = ower1Form.identifyValidDate || hadWritedData.value.identifyValidDate2
- insurancePolicyForm.value.identifyValidEndDate2 = ower1Form.identifyValidEndDate || hadWritedData.value.identifyValidEndDate2
- insurancePolicyForm.value.addr2 = ower1Form.addr || hadWritedData.value.addr2
- insurancePolicyForm.value.telephone2 = ower1Form.telephone || hadWritedData.value.telephone2
- insurancePolicyForm.value.person2 = ower1Form.person || hadWritedData.value.person2
- insurancePolicyForm.value.age2 = ower1Form.age || hadWritedData.value.age2
- insurancePolicyForm.value.address2 = ower1Form.address || hadWritedData.value.address2
- insurancePolicyForm.value.registeredCapital2 = ower1Form.registeredCapital || hadWritedData.value.registeredCapital2
- insurancePolicyForm.value.email2 = ower1Form.email || hadWritedData.value.email2
- if(!insurancePolicyForm.value.identifyNumber2 || insurancePolicyForm.value.identifyNumber2 && insurancePolicyForm.value.identifyNumber1 == insurancePolicyForm.value.identifyNumber2) {
- btns.value.owner1[0].checked = true
- btns.value.owner1Text = '同车主'
- } else if(insurancePolicyForm.value.identifyNumber2 && insurancePolicyForm.value.identifyNumber1 != insurancePolicyForm.value.identifyNumber2) {
- btns.value.owner1[1].checked = true
- btns.value.owner1Text = '其他人'
- }
- }
- if(ower2Form) {
- insurancePolicyForm.value.name3 = ower2Form.name || hadWritedData.value.name3
- insurancePolicyForm.value.mobile3 = ower2Form.mobile || hadWritedData.value.mobile3
- insurancePolicyForm.value.identifyType3 = ower2Form.identifyType || hadWritedData.value.identifyType3
- insurancePolicyForm.value.identifyNumber3 = ower2Form.identifyNumber || hadWritedData.value.identifyNumber3
- insurancePolicyForm.value.identifyValidDate3 = ower2Form.identifyValidDate || hadWritedData.value.identifyValidDate3
- insurancePolicyForm.value.identifyValidEndDate3 = ower2Form.identifyValidEndDate || hadWritedData.value.identifyValidEndDate3
- insurancePolicyForm.value.addr3 = ower2Form.addr || hadWritedData.value.addr3
- insurancePolicyForm.value.telephone3 = ower2Form.telephone || hadWritedData.value.telephone3
- insurancePolicyForm.value.person3 = ower2Form.person || hadWritedData.value.person3
- insurancePolicyForm.value.age3 = ower2Form.age || hadWritedData.value.age3
- insurancePolicyForm.value.address3 = ower2Form.address || hadWritedData.value.address3
- insurancePolicyForm.value.registeredCapital3 = ower2Form.registeredCapital || hadWritedData.value.registeredCapital3
- insurancePolicyForm.value.email3 = ower2Form.email || hadWritedData.value.email3
- if(insurancePolicyForm.value.identifyNumber3 && insurancePolicyForm.value.identifyNumber1 == insurancePolicyForm.value.identifyNumber3) {
- btns.value.owner2[1].checked = true
- btns.value.owner2Text = '同车主'
- } else if(!insurancePolicyForm.value.identifyNumber3 || insurancePolicyForm.value.identifyNumber3 && insurancePolicyForm.value.identifyNumber2 == insurancePolicyForm.value.identifyNumber3) {
- btns.value.owner2[0].checked = true
- btns.value.owner2Text = '同投保人'
- } else if(insurancePolicyForm.value.identifyNumber3 && insurancePolicyForm.value.identifyNumber2 != insurancePolicyForm.value.identifyNumber3) {
- btns.value.owner2[2].checked = true
- btns.value.owner2Text = '其他人'
- }
- }
- if(imageVoList&&imageVoList.length>0) {
- insurancePolicyForm.value.imageVoList = imageVoList.filter(a => a.imageBase64List[0].imageId)
- }
- if(list&&list.length>0) {
- images.value = list
- }
- }
- }
- // 记录已填好的信息,防止再次进行证件识别
- let hadWritedData = ref({})
- const handleRecognition = (achor) => {
- imageShow.value = true
- hadWritedData.value = JSON.parse(JSON.stringify(insurancePolicyForm.value))
- nextTick(() => {
- RecognitionRefs.value.setAnchor(achor)
- })
- }
- // 提交
- let loading = ref(false)
- const handleSubmit = async (InsurancePolicyRefs: FormInstance | undefined, scope) => {
- if(insurancePolicyForm.value.plateType == 'A1') {
- if(!insurancePolicyForm.value.limitLoad) {
- ElMessage({
- message: '车辆种类为货车时,核定载质量必传!',
- type: 'warning'
- })
- return
- }
- }
- if(!InsurancePolicyRefs) {
- InsurancePolicyRefs?.resetFields()
- return
- }
- await InsurancePolicyRefs.validate((valid) => {
- if(valid) {
- // loading.value = true
- quoteData.value[scope.$index].loading = true
- let arr = [], brr = [], crr = []
- if(quoteData.value.length>0) {
- let obj = quoteData.value.find(a => a.id === insurancePolicyForm.value.order.insuranceCompanyCode)
- obj.projectList[productIndex.value].kinds?.forEach(a => {
- arr.push(a)
- })
- obj.projectList[productIndex.value].drivings?.forEach(a => {
- brr.push(a)
- })
- if(obj.specialSelectedList?.length > 0) {
- obj.specialSelectedList.forEach(a => {
- crr.push(a)
- })
- }
- // obj.projectList?.forEach(sub => {
- // sub.kinds?.forEach(max => {
- // arr.push(max)
- // })
- // sub.drivings?.forEach(max => {
- // brr.push(max)
- // })
- // })
- }
- let obj1 = btns.value.owner1.find(a => a.checked)
- btns.value.owner1Text = obj1.text
- if(obj1.text === '同车主') {
- insurancePolicyForm.value.name2 = insurancePolicyForm.value.name1
- insurancePolicyForm.value.mobile2 = insurancePolicyForm.value.mobile1
- insurancePolicyForm.value.identifyType2 = insurancePolicyForm.value.identifyType1
- insurancePolicyForm.value.identifyNumber2 = insurancePolicyForm.value.identifyNumber1
- insurancePolicyForm.value.identifyValidDate2 = insurancePolicyForm.value.identifyValidDate1
- insurancePolicyForm.value.identifyValidEndDate2 = insurancePolicyForm.value.identifyValidEndDate1
- insurancePolicyForm.value.addr2 = insurancePolicyForm.value.addr1
- insurancePolicyForm.value.telephone2 = insurancePolicyForm.value.telephone1
- insurancePolicyForm.value.person2 = insurancePolicyForm.value.person1
- insurancePolicyForm.value.age2 = insurancePolicyForm.value.age1
- insurancePolicyForm.value.address2 = insurancePolicyForm.value.address1
- insurancePolicyForm.value.registeredCapital2 = insurancePolicyForm.value.registeredCapital1
- insurancePolicyForm.value.email2 = insurancePolicyForm.value.email1
- }
- let obj2 = btns.value.owner2.find(a => a.checked)
- btns.value.owner2Text = obj2.text
- if(obj2.text === '同车主') {
- insurancePolicyForm.value.name3 = insurancePolicyForm.value.name1
- insurancePolicyForm.value.mobile3 = insurancePolicyForm.value.mobile1
- insurancePolicyForm.value.identifyType3 = insurancePolicyForm.value.identifyType1
- insurancePolicyForm.value.identifyNumber3 = insurancePolicyForm.value.identifyNumber1
- insurancePolicyForm.value.identifyValidDate3 = insurancePolicyForm.value.identifyValidDate1
- insurancePolicyForm.value.identifyValidEndDate3 = insurancePolicyForm.value.identifyValidEndDate1
- insurancePolicyForm.value.addr3 = insurancePolicyForm.value.addr1
- insurancePolicyForm.value.telephone3 = insurancePolicyForm.value.telephone1
- insurancePolicyForm.value.person3 = insurancePolicyForm.value.person1
- insurancePolicyForm.value.age3 = insurancePolicyForm.value.age1
- insurancePolicyForm.value.address3 = insurancePolicyForm.value.address1
- insurancePolicyForm.value.registeredCapital3 = insurancePolicyForm.value.registeredCapital1
- insurancePolicyForm.value.email3 = insurancePolicyForm.value.email1
- }
- if(obj2.text === '同投保人') {
- insurancePolicyForm.value.name3 = insurancePolicyForm.value.name2
- insurancePolicyForm.value.mobile3 = insurancePolicyForm.value.mobile2
- insurancePolicyForm.value.identifyType3 = insurancePolicyForm.value.identifyType2
- insurancePolicyForm.value.identifyNumber3 = insurancePolicyForm.value.identifyNumber2
- insurancePolicyForm.value.identifyValidDate3 = insurancePolicyForm.value.identifyValidDate2
- insurancePolicyForm.value.identifyValidEndDate3 = insurancePolicyForm.value.identifyValidEndDate2
- insurancePolicyForm.value.addr3 = insurancePolicyForm.value.addr2
- insurancePolicyForm.value.telephone3 = insurancePolicyForm.value.telephone2
- insurancePolicyForm.value.person3 = insurancePolicyForm.value.person2
- insurancePolicyForm.value.age3 = insurancePolicyForm.value.age2
- insurancePolicyForm.value.address3 = insurancePolicyForm.value.address2
- insurancePolicyForm.value.registeredCapital3 = insurancePolicyForm.value.registeredCapital2
- insurancePolicyForm.value.email3 = insurancePolicyForm.value.email2
- }
- let data = {
- systemType: '2',
- order: {
- insuranceCompanyCode: quoteData.value[scope.$index].id,
- quoteNo: insurancePolicyForm.value.order.quoteNo,
- agreementId: quoteData.value[scope.$index].isDispatch?quoteData.value[scope.$index].dispatchAgreementId:quoteData.value[scope.$index].agreement,
- productId: insurancePolicyForm.value.productId,
- },
- carInfoVo: {
- licenseKindCode: '02',
- propertyCode: insurancePolicyForm.value.propertyCode,
- licenseNo: insurancePolicyForm.value.licenseNo,
- vinNo: insurancePolicyForm.value.vinNo,
- brandName: insurancePolicyForm.value.brandName,
- engineNo: insurancePolicyForm.value.engineNo,
- carNatureCode: insurancePolicyForm.value.carNatureCode,
- vehicleUseCode: insurancePolicyForm.value.vehicleUseCode,
- carTypeCode: insurancePolicyForm.value.carTypeCode,
- energyTypeCode: insurancePolicyForm.value.energyTypeCode,
- registerDate: insurancePolicyForm.value.registerDate,
- issueDate: insurancePolicyForm.value.issueDate,
- completeKerbMass: insurancePolicyForm.value.completeKerbMass,
- limitLoad: insurancePolicyForm.value.limitLoad,
- seatCount: insurancePolicyForm.value.seatCount,
- carYear: insurancePolicyForm.value.carYear,
- purchasePrice: insurancePolicyForm.value.purchasePrice,
- displacement: insurancePolicyForm.value.displacement,
- powerScale: insurancePolicyForm.value.powerScale,
- carKindCode: insurancePolicyForm.value.plateType,
- transfer: insurancePolicyForm.value.transfer,
- biTransfer: insurancePolicyForm.value.biTransfer,
- secondHandCar: insurancePolicyForm.value.secondHandCar,
- transferDate: insurancePolicyForm.value.transferDate
- },
- ownersInfo: {
- property: 1,
- name: insurancePolicyForm.value.name1,
- mobile: insurancePolicyForm.value.mobile1,
- identifyType: insurancePolicyForm.value.identifyType1,
- identifyNumber: insurancePolicyForm.value.identifyNumber1,
- identifyValidDate: insurancePolicyForm.value.identifyValidDate1,
- identifyValidEndDate: insurancePolicyForm.value.identifyValidEndDate1,
- addr: insurancePolicyForm.value.addr1,
- telephone: insurancePolicyForm.value.telephone1,
- person: insurancePolicyForm.value.person1,
- age: insurancePolicyForm.value.age1,
- address: insurancePolicyForm.value.address1,
- registeredCapital: insurancePolicyForm.value.registeredCapital1,
- email: insurancePolicyForm.value.email1,
- },
- policyHolderInfo: {
- property: 1,
- name: insurancePolicyForm.value.name2,
- mobile: insurancePolicyForm.value.mobile2,
- identifyType: insurancePolicyForm.value.identifyType2,
- identifyNumber: insurancePolicyForm.value.identifyNumber2,
- identifyValidDate: insurancePolicyForm.value.identifyValidDate2,
- identifyValidEndDate: insurancePolicyForm.value.identifyValidEndDate2,
- addr: insurancePolicyForm.value.addr2,
- telephone: insurancePolicyForm.value.telephone2,
- person: insurancePolicyForm.value.person2,
- age: insurancePolicyForm.value.age2,
- address: insurancePolicyForm.value.address2,
- registeredCapital: insurancePolicyForm.value.registeredCapital2,
- email: insurancePolicyForm.value.email2,
- },
- insuredPersonInfo: {
- property: 1,
- name: insurancePolicyForm.value.name3,
- mobile: insurancePolicyForm.value.mobile3,
- identifyType: insurancePolicyForm.value.identifyType3,
- identifyNumber: insurancePolicyForm.value.identifyNumber3,
- identifyValidDate: insurancePolicyForm.value.identifyValidDate3,
- identifyValidEndDate: insurancePolicyForm.value.identifyValidEndDate3,
- addr: insurancePolicyForm.value.addr3,
- telephone: insurancePolicyForm.value.telephone3,
- person: insurancePolicyForm.value.person3,
- age: insurancePolicyForm.value.age3,
- address: insurancePolicyForm.value.address3,
- registeredCapital: insurancePolicyForm.value.registeredCapital3,
- email: insurancePolicyForm.value.email3,
- },
- ciRiskInfoVo: insurancePolicyForm.value.productId === '0330' || insurancePolicyForm.value.productId === '0330034002' || insurancePolicyForm.value.productId === '0330034001'&&insurancePolicyForm.value.JQStartDate&&insurancePolicyForm.value.JQEndDate?{
- riskCode: '0507',
- startDate: insurancePolicyForm.value.JQStartDate,
- endDate: insurancePolicyForm.value.JQEndDate,
- instantFlag: insurancePolicyForm.value.JQInstantFlag
- }: null,
- biRiskInfoVo: insurancePolicyForm.value.productId === '034001' || insurancePolicyForm.value.productId === '034002' || insurancePolicyForm.value.productId === '0330034002' || insurancePolicyForm.value.productId === '0330034001'&&insurancePolicyForm.value.SYStartDate&&insurancePolicyForm.value.SYEndDate?{
- riskCode: '0510',
- startDate: insurancePolicyForm.value.SYStartDate,
- endDate: insurancePolicyForm.value.SYEndDate,
- instantFlag: insurancePolicyForm.value.SYInstantFlag
- }: null,
- vehicleAndVesselTaxVo: {
- taxRelifFlag: insurancePolicyForm.value.taxRelifFlag,
- extendChar2: insurancePolicyForm.value.extendChar2,
- relifReason: insurancePolicyForm.value.relifReason,
- taxComCode: insurancePolicyForm.value.taxComCode,
- taxComName: insurancePolicyForm.value.taxComName,
- taxRelief: insurancePolicyForm.value.taxRelief,
- taxDocumentDate: insurancePolicyForm.value.taxDocumentDate,
- taxPaidAreaCode: insurancePolicyForm.value.taxPaidAreaCode,
- taxpayerName: insurancePolicyForm.value.taxpayerName,
- taxpayerIdentifier: insurancePolicyForm.value.taxpayerIdentifier,
- identifyNumber: insurancePolicyForm.value.identifyNumber,
- },
- kindInfoVo: [...arr],
- accidentalDrivings: [...brr],
- specialInfoVo: [...crr]
- }
- api.insurancePolicyApi.quote(data).then((res: any) => {
- if(res.code == 200) {
- ElMessage({
- message: res.msg,
- type: 'success'
- })
- if(res.data) {
- let a = res.data.ciPremium?res.data.ciPremium:0
- let b = res.data.vvTax?res.data.vvTax:0
- let c = res.data.biPremium?res.data.biPremium:0
- let d = res.data.niPremium?res.data.niPremium:0
- res.data.quoteTotal = Number(a) + Number(b) + Number(c) + Number(d)
- }
- quoteData.value[scope.$index].discounts = [
- {
- name: '交强',
- additionalPremium: res.data?.feeOrders?.jqAdditionalPremium,
- additionalRatio: res.data?.feeOrders?.jqAdditionalRatio,
- commissionPremium: res.data?.feeOrders?.jqCommissionPremium,
- commissionRatio: res.data?.feeOrders?.jqCommissionRatio,
- exportPremium: res.data?.feeOrders?.jqExportPremium,
- exportRatio: res.data?.feeOrders?.jqExportRatio,
- },{
- name: '商业',
- additionalPremium: res.data?.feeOrders?.syAdditionalPremium,
- additionalRatio: res.data?.feeOrders?.syAdditionalRatio,
- commissionPremium: res.data?.feeOrders?.syCommissionPremium,
- commissionRatio: res.data?.feeOrders?.syCommissionRatio,
- exportPremium: res.data?.feeOrders?.syExportPremium,
- exportRatio: res.data?.feeOrders?.syExportRatio,
- },{
- name: '驾意险',
- additionalPremium: res.data?.feeOrders?.jyAdditionalPremium,
- additionalRatio: res.data?.feeOrders?.jyAdditionalRatio,
- commissionPremium: res.data?.feeOrders?.jyCommissionPremium,
- commissionRatio: res.data?.feeOrders?.jyCommissionRatio,
- exportPremium: res.data?.feeOrders?.jyExportPremium,
- exportRatio: res.data?.feeOrders?.jyExportRatio,
- },
- ]
- quoteData.value[scope.$index].quoteResult = res.data
- loading.value = false
- quoteData.value[scope.$index].loading = false
- console.log('报价后的数据', quoteData.value)
- } else {
- ElMessage({
- message: res.msg,
- type: 'warning'
- })
- quoteData.value[scope.$index].quoteResult.failMsg = res.msg
- loading.value = false
- quoteData.value[scope.$index].loading = false
- }
- // InsurancePolicyRefs.resetFields()
- }).catch(e => {
- loading.value = false
- quoteData.value[scope.$index].loading = false
- quoteData.value.forEach(a => {
- a.loading = false
- })
- })
- // api.insurancePolicyApi.imageSave({
- // order: {
- // quoteNo: insurancePolicyForm.value.order.quoteNo
- // },
- // imageVoList: insurancePolicyForm.value.imageVoList
- // }).then((res: any) => {
- // if(res.code == 200) {
- // api.insurancePolicyApi.quote(data).then((res: any) => {
- // if(res.code == 200) {
- // ElMessage({
- // message: res.msg,
- // type: 'success'
- // })
- // if(res.data) {
- // let a = res.data.ciPremium?res.data.ciPremium:0
- // let b = res.data.vvTax?res.data.vvTax:0
- // let c = res.data.biPremium?res.data.biPremium:0
- // let d = res.data.niPremium?res.data.niPremium:0
- // res.data.quoteTotal = Number(a) + Number(b) + Number(c) + Number(d)
- // }
- // quoteData.value[scope.$index].discounts = [
- // {
- // name: '交强',
- // additionalPremium: res.data?.feeOrders?.jqAdditionalPremium,
- // additionalRatio: res.data?.feeOrders?.jqAdditionalRatio,
- // commissionPremium: res.data?.feeOrders?.jqCommissionPremium,
- // commissionRatio: res.data?.feeOrders?.jqCommissionRatio,
- // exportPremium: res.data?.feeOrders?.jqExportPremium,
- // exportRatio: res.data?.feeOrders?.jqExportRatio,
- // },{
- // name: '商业',
- // additionalPremium: res.data?.feeOrders?.syAdditionalPremium,
- // additionalRatio: res.data?.feeOrders?.syAdditionalRatio,
- // commissionPremium: res.data?.feeOrders?.syCommissionPremium,
- // commissionRatio: res.data?.feeOrders?.syCommissionRatio,
- // exportPremium: res.data?.feeOrders?.syExportPremium,
- // exportRatio: res.data?.feeOrders?.syExportRatio,
- // },{
- // name: '驾意险',
- // additionalPremium: res.data?.feeOrders?.jyAdditionalPremium,
- // additionalRatio: res.data?.feeOrders?.jyAdditionalRatio,
- // commissionPremium: res.data?.feeOrders?.jyCommissionPremium,
- // commissionRatio: res.data?.feeOrders?.jyCommissionRatio,
- // exportPremium: res.data?.feeOrders?.jyExportPremium,
- // exportRatio: res.data?.feeOrders?.jyExportRatio,
- // },
- // ]
- // quoteData.value[scope.$index].quoteResult = res.data
- // loading.value = false
- // quoteData.value[scope.$index].loading = false
- // console.log('报价后的数据', quoteData.value)
- // } else {
- // ElMessage({
- // message: res.msg,
- // type: 'warning'
- // })
- // quoteData.value[scope.$index].quoteResult.failMsg = res.msg
- // loading.value = false
- // quoteData.value[scope.$index].loading = false
- // }
- // // InsurancePolicyRefs.resetFields()
- // }).catch(e => {
- // loading.value = false
- // quoteData.value[scope.$index].loading = false
- // quoteData.value.forEach(a => {
- // a.loading = false
- // })
- // })
- // } else {
- // ElMessage({
- // message: res.msg,
- // type: 'warning'
- // })
- // }
- // })
- } else {
- ElMessage({
- message: '请完整填写相关信息',
- type: 'warning'
- })
- }
- })
- }
- const handleOpen = (scope) => {
- ElNotification({
- title: '费用匹配错误信息',
- message: h('p', { style: 'white-space: pre-line' }, `${scope.row.quoteResult?.feeNoDescription}`),
- })
- }
- // 获取保司
- const ruleFilterCompany = (item) => {
- let data = {
- productId: item.value,
- carInfo: {
- carOwner: insurancePolicyForm.value.carOwner,
- licenseNo: insurancePolicyForm.value.licenseNo,
- vinNo: insurancePolicyForm.value.vinNo,
- brandName: insurancePolicyForm.value.brandName,
- engineNo: insurancePolicyForm.value.engineNo,
- carNatureCode: insurancePolicyForm.value.carNatureCode,
- vehicleUseCode: insurancePolicyForm.value.vehicleUseCode,
- carTypeCode: insurancePolicyForm.value.carTypeCode,
- energyTypeCode: insurancePolicyForm.value.energyTypeCode,
- registerDate: insurancePolicyForm.value.registerDate,
- issueDate: insurancePolicyForm.value.issueDate,
- completeKerbMass: insurancePolicyForm.value.completeKerbMass,
- limitLoad: insurancePolicyForm.value.limitLoad,
- seatCount: insurancePolicyForm.value.seatCount,
- carYear: insurancePolicyForm.value.carYear,
- purchasePrice: insurancePolicyForm.value.purchasePrice,
- displacement: insurancePolicyForm.value.displacement,
- powerScale: insurancePolicyForm.value.powerScale,
- carKindCode: insurancePolicyForm.value.plateType
- },
- ownerInfo: {
- name: insurancePolicyForm.value.name1,
- mobile: insurancePolicyForm.value.mobile1,
- identifyType: insurancePolicyForm.value.identifyType1,
- identifyNumber: insurancePolicyForm.value.identifyNumber1,
- identifyValidDate: insurancePolicyForm.value.identifyValidDate1,
- identifyValidEndDate: insurancePolicyForm.value.identifyValidEndDate1,
- addr: insurancePolicyForm.value.addr1,
- telephone: insurancePolicyForm.value.telephone1,
- person: insurancePolicyForm.value.person1,
- age: insurancePolicyForm.value.age1,
- address: insurancePolicyForm.value.address1,
- registeredCapital: insurancePolicyForm.value.registeredCapital1,
- email: insurancePolicyForm.value.email1,
- },
- applyInfo: {
- name: insurancePolicyForm.value.name2,
- mobile: insurancePolicyForm.value.mobile2,
- identifyType: insurancePolicyForm.value.identifyType2,
- identifyNumber: insurancePolicyForm.value.identifyNumber2,
- identifyValidDate: insurancePolicyForm.value.identifyValidDate2,
- identifyValidEndDate: insurancePolicyForm.value.identifyValidEndDate2,
- addr: insurancePolicyForm.value.addr2,
- telephone: insurancePolicyForm.value.telephone2,
- person: insurancePolicyForm.value.person2,
- age: insurancePolicyForm.value.age2,
- address: insurancePolicyForm.value.address2,
- registeredCapital: insurancePolicyForm.value.registeredCapital2,
- email: insurancePolicyForm.value.email2,
- },
- insureInfo: {
- name: insurancePolicyForm.value.name3,
- mobile: insurancePolicyForm.value.mobile3,
- identifyType: insurancePolicyForm.value.identifyType3,
- identifyNumber: insurancePolicyForm.value.identifyNumber3,
- identifyValidDate: insurancePolicyForm.value.identifyValidDate3,
- identifyValidEndDate: insurancePolicyForm.value.identifyValidEndDate3,
- addr: insurancePolicyForm.value.addr3,
- telephone: insurancePolicyForm.value.telephone3,
- person: insurancePolicyForm.value.person3,
- age: insurancePolicyForm.value.age3,
- address: insurancePolicyForm.value.address3,
- registeredCapital: insurancePolicyForm.value.registeredCapital3,
- email: insurancePolicyForm.value.email3,
- },
- }
- api.insurancePolicyApi.ruleFilterCompany(data).then((res: any) => {
- if(res.code == 200) {
- res.data.forEach(a => {
- a.loading = false
- })
- quoteData.value = res.data
- quoteData.value.forEach(item => {
- if(item.agreements && item.agreements.length == 1) {
- item.agreement = item.agreements[0].id
- }
- })
- } else {
- quoteData.value = []
- ElMessage({
- message: res.msg,
- type: 'warning'
- })
- }
- })
- }
- onMounted(() => {
- getAreaList()
- initDept()
- initOption()
- if(myRoute.query.orderNo) {
- initDetail()
- }
- })
- </script>
- <style scoped lang="scss">
- @use "@/assets/styles/common/style";
- .insurancePolicy{
- width: calc(100% - 48px);
- height: calc(100vh - 128px);
- margin: 10px 24px 0;
- overflow-y: auto;
- overflow-x: hidden;
- .formItem{
- padding: 0 24px;
- background: #FFFFFF;
- border-radius: 6px;
- }
- .title{
- height: 18px;
- border-left: 4px solid #00a0f4;
- display: flex;
- align-items: center;
- justify-content: flex-start;
- padding-left: 12px;
- margin-left: 24px;
- color: #333333;
- font-size: 15px;
- }
- .icon{
- padding-right: 24px;
- display: flex;
- align-items: center;
- }
- .myIcon{
- display: inline-block;
- width: 14px;
- height: 14px;
- margin-right: 10px;
- }
- .icon-ele{
- margin-left: 10px;
- }
- .ordinary{
- height: 22px;
- line-height: 22px;
- padding: 0 10px;
- border: 1px solid #EEEEEE;
- border-radius: 2px;
- color: #666666;
- display: flex;
- font-size: 12px;
- margin: 0 5px;
- }
- .active{
- border: 1px solid #0083FF;
- color: #0083FF;
- background: url("@/assets/images/additional/right.png") no-repeat right bottom;
- background-size: 12px 12px;
- }
- .insurance-jq{
- display: flex;
- align-items: center;
- justify-content: flex-start;
- margin: 10px 0 24px 24px;
- .checkbox{
- margin: 0 24px;
- height: 22px;
- line-height: 22px;
- padding: 0 10px;
- border: 1px solid #EEEEEE;
- border-radius: 2px;
- color: #666666;
- display: flex;
- font-size: 12px;
- cursor: pointer;
- }
- .cehcked{
- border: 1px solid #0083FF;
- color: #0083FF;
- background: url("@/assets/images/additional/right.png") no-repeat right bottom;
- background-size: 12px 12px;
- }
- .time{
- display: flex;
- align-items: center;
- justify-content: flex-start;
- }
- }
- .success{
- color: #1DAEFF;
- border: 1px solid #1DAEFF;
- background: #E7F7FF;
- padding: 2px 4px;
- border-radius: 2px;
- font-size: 12px;
- }
- .fail{
- color: #FF4545;
- border: 1px solid #FF4545;
- background: #FFF4F4;
- padding: 2px 4px;
- border-radius: 2px;
- font-size: 12px;
- margin-right: 10px;
- }
- .company{
- display: flex;
- align-items: center;
- justify-content: center;
- img{
- width: 24px;
- height: 24px;
- margin-right: 10px;
- }
- }
- .resultItem{
- display: flex;
- align-items: center;
- justify-content: flex-start;
- font-size: 12px;
- .resultTips{
- display: flex;
- align-items: center;
- justify-content: flex-start;
- background: #FFFAEF;
- border: 1px solid #FAA21E;
- border-radius: 2px;
- padding: 0 4px;
- font-size: 10px;
- margin-left: 10px;
- }
- }
- .costFactor{
- width: 100%;
- display: flex;
- align-items: center;
- justify-content: flex-start;
- }
- .quoteFail{
- display: flex;
- align-items: center;
- justify-content: flex-start;
- font-size: 12px;
- }
- .quoteReason{
- text-align: left;
- padding-left: 22px;
- width: 100%;
- display: -webkit-box; /* 必须设置,用于多行溢出 */
- -webkit-box-orient: vertical; /* 设置盒子排列方向为垂直 */
- -webkit-line-clamp: 2; /* 限制显示的行数,例如显示 3 行 */
- overflow: hidden;
- font-size: 12px;
- }
- .product{
- .productItem{
- border: 1px solid #E5E5E5;
- font-size: 12px;
- padding: 0 4px;
- border-radius: 2px;
- color: #666666;
- cursor: pointer;
- margin: 0 10px 0 0;
- }
- .productActive{
- border: 1px solid #0083FF;
- color: #0083FF;
- }
- }
- .quoteTitle{
- height: 14px;
- border-left: 2px solid #00a0f4;
- display: flex;
- align-items: center;
- justify-content: flex-start;
- padding-left: 6px;
- margin: 14px 0;
- color: #333333;
- font-size: 14px;
- }
- .quoteFlex{
- display: flex;
- align-items: center;
- justify-content: center;
- }
- .imageCode{
- height: 140px;
- display: flex;
- align-items: center;
- justify-content: center;
- img{
- width: 140px;
- height: 140px;
- }
- }
- .expandFlex{
- display: flex;
- .expandTitle{
- text-align: center;
- display: flex;
- align-items: center;
- justify-content: center;
- width: 40px;
- padding: 0 8px;
- margin: 0 10px 0 0;
- background: #F6FBFF;
- }
- }
- :deep(.el-collapse-item__header) {
- display: flex;
- align-items: center;
- justify-content: space-between;
- }
- :deep(.el-form-item) {
- margin-bottom: 0;
- }
- .formBlock{
- :deep(.el-form-item) {
- display: block;
- }
- }
- .factorTable{
- .more{
- border: 1px solid #0083FF;
- display: flex;
- align-items: center;
- justify-content: center;
- border-radius: 50%;
- width: 12px;
- height: 12px;
- color: #0083FF;
- font-size: 10px;
- margin-left: 2px;
- }
- :deep(.cell) {
- font-size: 10px;
- }
- }
- :deep(thead .el-table__cell) {
- background: #eeeeee;
- }
- .footer{
- display: flex;
- align-items: center;
- justify-content: center;
- margin-top: 10px;
- background: #FFFFFF;
- padding: 16px 0;
- }
- .loader {
- /* Wave text loader made by: csozi | Website: english.csozi.hu*/
- //height: 30px;
- .text {
- margin: 0;
- line-height: 24px;
- color: red;
- font-weight: bolder;
- background: -webkit-linear-gradient(45deg,
- orange,
- orangered);
- /* Chrome, Safari */
- background: linear-gradient(45deg, orange, orangered);
- /* Standard syntax */
- -webkit-background-clip: text;
- /* Chrome, Safari */
- background-clip: text;
- -webkit-text-fill-color: transparent;
- /* Chrome, Safari */
- color: transparent;
- /* Standard syntax (currently not supported by browsers) */
- font-family: "'Gill Sans', 'Gill Sans MT', 'Calibri', 'Trebuchet MS', sans-serif'";
- }
- @keyframes letter {
- 0% {
- font-size: 14px;
- }
- 50% {
- font-size: 15px;
- }
- 100% {
- font-size: 14px;
- }
- }
- .letter {
- animation: letter 1s infinite;
- }
- .letter1 {
- animation-delay: 0s;
- }
- .letter2 {
- animation-delay: -0.9s;
- }
- .letter3 {
- animation-delay: -0.8s;
- }
- .letter4 {
- animation-delay: -0.7s;
- }
- .letter5 {
- animation-delay: -0.6s;
- }
- .letter6 {
- animation-delay: -0.5s;
- }
- .letter7 {
- animation-delay: -0.4s;
- }
- .letter8 {
- animation-delay: -0.3s;
- }
- .letter9 {
- animation-delay: -0.2s;
- }
- .letter10 {
- animation-delay: -0.1s;
- }
- }
- :deep(.el-form-item) {
- margin-bottom: 10px;
- }
- }
- </style>
|