| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180 |
- <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%"
- />
- </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-row>
- <template #icon="{ isActive }">
- <span class="icon">
- <el-button link type="primary" @click.stop="handleRecognition"><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="请输入车主手机号"></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="1"></el-option>
- <el-option label="营业执照" value="02" key="2"></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%"
- />
- </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)"
- />
- <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"><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="1"></el-option>
- <el-option label="营业执照" value="02" key="2"></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%"
- />
- </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%"
- />
- </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"><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%"
- />
- </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%"
- />
- </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"><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="1"></el-option>
- <el-option label="营业执照" value="02" key="2"></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-radio-group v-model="insurancePolicyForm.insuranceType">
- <el-radio value="1">商业险是否过户</el-radio>
- <el-radio value="2">二手车</el-radio>
- </el-radio-group>
- </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%"
- />
- </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%"
- />
- </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"
- >
- <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">
- <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">增值服务</div>
- <el-row :gutter="20">
- <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-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-if="currentRow.some(a => a.id === scope.row.id)">
- <el-option v-for="item in scope.row.aggrements" :value="item.value" :label="item.label"></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>仅查看报价成功</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">
- <el-icon style="color: #FF4545; font-size: 14px"><Warning /></el-icon> {{ scope.row.quoteResult?.feeNoDescription }}
- </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"><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" width="360">
- <template #default="scope">
- <div v-if="currentRow.some(a => a.id === scope.row.id)">
- <el-button link type="primary" @click="handleCount(scope)">优惠测算</el-button>
- <el-button link type="primary">详情</el-button>
- <el-button link type="primary" :loading="scope.row.loading" @click="handleSubmit(InsurancePolicyRefs,scope)">计算保费</el-button>
- <el-button link type="primary" @click="handleShare(scope)">分享</el-button>
- <el-button 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=""></el-table-column>
- <el-table-column label="报价时间" prop=""></el-table-column>
- <el-table-column label="险种" prop=""></el-table-column>
- <el-table-column label="状态" prop="state">
- <template #default="scope">
- <span v-if="scope.row.state===1" class="success">报价成功</span>
- <span v-if="scope.row.state===2" style="display: flex; align-items: center">
- <span class="fail">报价失败</span>
- <el-tooltip
- class="box-item"
- effect="dark"
- content="报价失败的原因"
- 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=""></el-table-column>
- <el-table-column label="交强险" prop=""></el-table-column>
- <el-table-column label="商业险" prop=""></el-table-column>
- <el-table-column label="驾意险" prop=""></el-table-column>
- <el-table-column label="操作">
- <template #default="scope">
- <el-button link type="primary">详情</el-button>
- <el-button link type="primary">分享</el-button>
- <el-button link type="primary">核保</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 />
- </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="930"
- v-model="underwritingShow"
- >
- <underwriting ref="UnderwritingRefs" @close="handleUnderwritingClose"></underwriting>
- </el-dialog>
- <el-dialog
- title="证件识别"
- width="800"
- v-model="imageShow"
- >
- <recognition ref="RecognitionRefs" @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-click="handleSelectedRow"
- row-key="id"
- @select="handleSelectedChange"
- >
- <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 } from "element-plus";
- import { useRoute } 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'
- const SalesmanSelectRef = ref()
- const InsuranceTypeRef = ref()
- const DrivingTypeRef = ref()
- const UnderwritingRefs = ref()
- const LicenseNoTable = ref()
- const JYXDetail = ref()
- const myRoute = useRoute()
- 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.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.owner1Text = '同车主'
- } else if(obj?.policyHolderInfo?.identifyNumber == obj?.insuredPersonInfo?.identifyNumber) {
- btns.value.owner2[0].checked = true
- btns.value.owner1Text = '同投保人'
- } else {
- btns.value.owner2[2].checked = true
- btns.value.owner1Text = '其他人'
- }
- // 车船税
- 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: '',
- // 险种类型
- 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,
- 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: '请输入功率' }
- ],
- name1: [
- { required: true, trigger: 'blur', message: '请输入姓名' }
- ],
- mobile1: [
- { required: true, trigger: 'blur', message: '请输入手机号' }
- ],
- 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: '请输入手机号' }
- ],
- 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: '请输入手机号' }
- ],
- 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
- }
- 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 = () => {
- console.log(123123123, selectRowData.value)
- 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"
- })
- }
- })
- }
- }
- const longTime = () => {
- insurancePolicyForm.value.identifyValidEndDate1 = '9999-12-31'
- }
- // 是否同车主/同投保人
- 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 = `${year}-${month}-${day} 00:00:00`
- insurancePolicyForm.value.JQEndDate = `${year + 1}-${month}-${day - 1} 23:59:59`
- }
- 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`
- }
- 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
- }
- }
- // 商业即时生效
- 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
- }
- }
- // 报价公司
- let currentRow = ref([])
- let quoteData = ref([])
- const handleSelect = (a, b) => {
- // 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) => {
- if(res.data?.schemes) {
- res.data?.schemes.forEach(item => {
- item.checked = false
- })
- }
- quoteData.value.forEach(item => {
- if(item.id === b.id) {
- item.projectList = res.data.schemes
- }
- })
- })
- }
- } else {
- insurancePolicyForm.value.order.insuranceCompanyCode = ''
- }
- }
- const handleClickRow = (a, b) => {
- }
- // 选择险种
- 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 productIndex = ref(0)
- const handleProduct = (e, index) => {
- productIndex.value = index
- }
- // 报价历史
- let tableData = ref([])
- // 分享
- let shareShow = ref(false)
- const handleShare = (scope) => {
- shareShow.value = true
- }
- const handleSaveImage = () => {
- shareShow.value = false
- }
- const handleCopyLink = () => {
- shareShow.value = false
- }
- // 优惠测算
- let calculatingShow = ref(false)
- const handleCount = (scope) => {
- calculatingShow.value = true
- }
- // 提交核保
- let underwritingShow = ref(false)
- const handleUnderwriting = (scope) => {
- underwritingShow.value = true
- // insurancePolicyForm.value.imageVoList
- let data = {
- // ordersNo: '1915570359429222400'
- ordersNo: scope.row.quoteResult.ordersNo,
- quoteNo: insurancePolicyForm.value.order.quoteNo
- }
- nextTick(() => {
- UnderwritingRefs.value.initEdit({
- ...data,
- list: images.value
- })
- })
- 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) => {
- 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
- insurancePolicyForm.value.vinNo = carForm.vinNo
- insurancePolicyForm.value.brandName = carForm.brandName
- insurancePolicyForm.value.engineNo = carForm.engineNo
- insurancePolicyForm.value.carNatureCode = carForm.carNatureCode
- insurancePolicyForm.value.vehicleUseCode = carForm.vehicleUseCode
- insurancePolicyForm.value.carTypeCode = carForm.carTypeCode
- insurancePolicyForm.value.plateType = carForm.plateType
- insurancePolicyForm.value.energyTypeCode = carForm.energyTypeCode
- insurancePolicyForm.value.registerDate = carForm.registerDate
- insurancePolicyForm.value.issueDate = carForm.issueDate
- insurancePolicyForm.value.completeKerbMass = carForm.completeKerbMass
- insurancePolicyForm.value.limitLoad = carForm.limitLoad
- insurancePolicyForm.value.seatCount = carForm.seatCount
- insurancePolicyForm.value.carYear = carForm.carYear
- insurancePolicyForm.value.purchasePrice = carForm.purchasePrice
- insurancePolicyForm.value.displacement = carForm.displacement
- insurancePolicyForm.value.powerScale = carForm.powerScale
- insurancePolicyForm.value.carOwner = carForm.carOwner
- if(carForm.licenseNo&&carForm.vinNo&&carForm.engineNo) {
- getQuoteNumber()
- }
- }
- if(owerForm) {
- insurancePolicyForm.value.name1 = owerForm.name
- insurancePolicyForm.value.mobile1 = owerForm.mobile
- insurancePolicyForm.value.identifyType1 = owerForm.identifyType
- insurancePolicyForm.value.identifyNumber1 = owerForm.identifyNumber
- insurancePolicyForm.value.identifyValidDate1 = owerForm.identifyValidDate
- insurancePolicyForm.value.identifyValidEndDate1 = owerForm.identifyValidEndDate
- insurancePolicyForm.value.addr1 = owerForm.addr
- insurancePolicyForm.value.telephone1 = owerForm.telephone
- insurancePolicyForm.value.person1 = owerForm.person
- insurancePolicyForm.value.age1 = owerForm.age
- insurancePolicyForm.value.address1 = owerForm.address
- insurancePolicyForm.value.registeredCapital1 = owerForm.registeredCapital
- insurancePolicyForm.value.email1 = owerForm.email
- insurancePolicyForm.value.taxpayerName = owerForm.name
- insurancePolicyForm.value.taxpayerIdentifier = owerForm.identifyType
- insurancePolicyForm.value.identifyNumber = owerForm.identifyNumber
- }
- if(ower1Form) {
- insurancePolicyForm.value.name2 = ower1Form.name
- insurancePolicyForm.value.mobile2 = ower1Form.mobile
- insurancePolicyForm.value.identifyType2 = ower1Form.identifyType
- insurancePolicyForm.value.identifyNumber2 = ower1Form.identifyNumber
- insurancePolicyForm.value.identifyValidDate2 = ower1Form.identifyValidDate
- insurancePolicyForm.value.identifyValidEndDate2 = ower1Form.identifyValidEndDate
- insurancePolicyForm.value.addr2 = ower1Form.addr
- insurancePolicyForm.value.telephone2 = ower1Form.telephone
- insurancePolicyForm.value.person2 = ower1Form.person
- insurancePolicyForm.value.age2 = ower1Form.age
- insurancePolicyForm.value.address2 = ower1Form.address
- insurancePolicyForm.value.registeredCapital2 = ower1Form.registeredCapital
- insurancePolicyForm.value.email2 = ower1Form.email
- }
- if(ower2Form) {
- insurancePolicyForm.value.name3 = ower2Form.name
- insurancePolicyForm.value.mobile3 = ower2Form.mobile
- insurancePolicyForm.value.identifyType3 = ower2Form.identifyType
- insurancePolicyForm.value.identifyNumber3 = ower2Form.identifyNumber
- insurancePolicyForm.value.identifyValidDate3 = ower2Form.identifyValidDate
- insurancePolicyForm.value.identifyValidEndDate3 = ower2Form.identifyValidEndDate
- insurancePolicyForm.value.addr3 = ower2Form.addr
- insurancePolicyForm.value.telephone3 = ower2Form.telephone
- insurancePolicyForm.value.person3 = ower2Form.person
- insurancePolicyForm.value.age3 = ower2Form.age
- insurancePolicyForm.value.address3 = ower2Form.address
- insurancePolicyForm.value.registeredCapital3 = ower2Form.registeredCapital
- insurancePolicyForm.value.email3 = ower2Form.email
- }
- if(imageVoList&&imageVoList.length>0) {
- insurancePolicyForm.value.imageVoList = imageVoList.filter(a => a.imageBase64List[0].imageId)
- }
- if(list&&list.length>0) {
- images.value = list
- }
- }
- }
- const handleRecognition = () => {
- imageShow.value = true
- }
- // 提交
- let loading = ref(false)
- const handleSubmit = async (InsurancePolicyRefs: FormInstance | undefined, scope) => {
- 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: insurancePolicyForm.value.order.insuranceCompanyCode,
- quoteNo: insurancePolicyForm.value.order.quoteNo
- },
- 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
- },
- 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: false
- }: 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: false
- }: 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.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].quoteResult = res.data
- loading.value = false
- quoteData.value[scope.$index].loading = false
- } 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 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
- } 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;
- }
- }
- .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>
|