KtOrder.vue 146 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039
  1. <template>
  2. <div class="page">
  3. <el-form :inline="true" :model="pageRequest" class="demo-form-inline" size="small" label-width="130px">
  4. <el-row>
  5. <el-col :span="6">
  6. <el-form-item label="订单号">
  7. <el-input v-model="pageRequest.orderNo" placeholder="请输入订单号" class="widths" clearable></el-input>
  8. </el-form-item>
  9. </el-col>
  10. <el-col :span="6">
  11. <el-form-item label="车牌号">
  12. <el-input v-model="pageRequest.licenseNo" placeholder="请输入车牌号" class="widths" clearable></el-input>
  13. </el-form-item>
  14. </el-col>
  15. <el-col :span="6">
  16. <el-form-item label="车架号">
  17. <el-input v-model="pageRequest.frameNo" placeholder="请输入车架号" class="widths" clearable></el-input>
  18. </el-form-item>
  19. </el-col>
  20. <el-col :span="6">
  21. <el-form-item label="投保人姓名">
  22. <el-input v-model="pageRequest.insuredName" placeholder="请输入投保人姓名" class="widths" clearable></el-input>
  23. </el-form-item>
  24. </el-col>
  25. <el-col :span="6" v-if="isLetterOrder">
  26. <el-form-item label="机构名称">
  27. <el-cascader class="widths" :options="institutionOptions" v-model="pageRequest.deptId" :props="{
  28. checkStrictly: true,
  29. value: 'id',
  30. label: 'name',
  31. }" @change="handleChange" clearable></el-cascader>
  32. </el-form-item>
  33. </el-col>
  34. <el-col :span="6">
  35. <el-form-item label="录单日期">
  36. <el-date-picker v-model="value2" type="daterange" @change="monthChange" start-placeholder="开始日期"
  37. end-placeholder="结束日期" value-format="yyyy-MM-dd" clearable style="width: 200px"></el-date-picker>
  38. </el-form-item>
  39. </el-col>
  40. <el-col :span="6">
  41. <el-form-item label="保险公司">
  42. <el-select v-model="pageRequest.companyId" filterable class="widths" clearable>
  43. <el-option v-for="val in companyList" :key="val.id" :label="val.name" :value="val.id"></el-option>
  44. </el-select>
  45. </el-form-item>
  46. </el-col>
  47. <el-col :span="6">
  48. <el-form-item label="险种">
  49. <el-select v-model="pageRequest.productid" clearable filterable placeholder="选择险种" class="widths">
  50. <el-option v-for="item in productsTypeoptions" :key="item.dictValue" :label="item.dictTag"
  51. :value="item.dictValue"></el-option>
  52. </el-select>
  53. </el-form-item>
  54. </el-col>
  55. <el-col :span="24">
  56. <el-form-item label="险种选择">
  57. <el-radio-group v-model="pageRequest.productid">
  58. <el-radio label="">全部</el-radio>
  59. <el-radio v-for="val in productsTypeoptions" :key="val.dictValue" :label="val.dictValue">{{ val.dictTag
  60. }}</el-radio>
  61. </el-radio-group>
  62. </el-form-item>
  63. </el-col>
  64. </el-row>
  65. <el-row>
  66. <el-col :span="21" v-if="isLetterOrder">
  67. <el-form-item label="订单状态">
  68. <el-radio-group v-model="pageRequest.orderStatus">
  69. <el-radio label="888">全部</el-radio>
  70. <el-radio v-for="val in optionsStatus" :key="val.dictValue" :label="val.dictValue">{{ val.dictTag
  71. }}</el-radio>
  72. </el-radio-group>
  73. </el-form-item>
  74. </el-col>
  75. <el-col :span="3">
  76. <el-button type="primary" size="small" @click="onSubmit">查询</el-button>
  77. </el-col>
  78. </el-row>
  79. </el-form>
  80. <el-table size="small" :data="pageResult" border v-loading="orderLoaing" highlight-current-row stripe
  81. @expand-change="handleRowChange" ref="expandTable" :height="tabelHeight" :header-cell-style="{
  82. background: '#F2F7FC',
  83. fontWeight: '700',
  84. color: '#606266',
  85. }">
  86. <el-table-column type="expand">
  87. <template slot-scope="scope">
  88. <div class="demo-table-expand flex a-c j-s" :style="{ width: width, flexWrap: 'wrap' }"
  89. v-for="(item, index) in scope.row.insAreaCompanyList" :key="index">
  90. <div style="width: 12%">
  91. {{ item.inscompany }}
  92. <!-- <span style="color: #d42426">({{ item.agreementName }})</span> -->
  93. </div>
  94. <div v-show="item.orderstatus != '10' && item.orderstatus != '11'" style="width: 800px"
  95. class="flex a-c j-s demo-table-expand-time">
  96. <div>
  97. 总价:
  98. <span style="color: #d42426">{{ item.sumpremium }}</span>
  99. </div>
  100. <div>
  101. 交强险:
  102. <span style="color: #d42426">{{ item.jqpremium }}</span>
  103. </div>
  104. <div>
  105. 商业险:
  106. <span style="color: #d42426">{{ item.sypremium }}</span>
  107. </div>
  108. <div>
  109. 车船税:
  110. <span style="color: #d42426">{{ item.taxamount }}</span>
  111. </div>
  112. <div v-if="item.jypremium">
  113. 驾意险:
  114. <span style="color: #d42426">{{ item.jypremium }}</span>
  115. </div>
  116. <div>{{ item.createtime }}</div>
  117. </div>
  118. <div v-show="item.orderstatus == '10' || item.orderstatus == '11'" style="width: 800px">
  119. {{ item.quoteErrMsg }}
  120. </div>
  121. <div slot="reference" class="name-wrapper flex a-c j-c">
  122. <el-tag style="
  123. color: #33a08d;
  124. border-color: #33a08d;
  125. background: rgba(51, 160, 141, 0.1);
  126. " v-if="item.orderstatus == '0' || item.orderstatus == '1'" size="small">{{ item.orderstatus | cap
  127. }}</el-tag>
  128. <el-tag style="border-color: #e75b5d" type="danger" v-else-if="item.orderstatus == '3'" size="small">{{
  129. item.orderstatus | cap }}</el-tag>
  130. <el-tag v-else style="
  131. color: #2d4d89;
  132. border-color: #2d4d89;
  133. background: rgba(45, 77, 137, 0.1);
  134. " size="small">{{ item.orderstatus | cap }}</el-tag>
  135. </div>
  136. <div class="flex a-c">
  137. <el-button size="mini" type="text" v-if="
  138. item.orderstatus == '1' &&
  139. [
  140. '中煤财险',
  141. '大家财险',
  142. '永诚财险',
  143. '国任财险',
  144. '太平财险',
  145. '华农财险',
  146. '恒邦财险',
  147. '诚泰财险',
  148. '众安平安',
  149. '中国人寿',
  150. '人保财险',
  151. '安盛天平',
  152. '紫金财险',
  153. '渤海财险',
  154. '泰康财险',
  155. '华泰财险',
  156. '太平洋财险',
  157. '大地财险',
  158. '阳光财险',
  159. ].includes(item.inscompany)
  160. " @click="refreshStatus(item)" class="red_color">更新订单</el-button>
  161. <el-button size="mini" type="text" v-if="item.orderstatus == '4' && item.inscompany == '华泰财险'"
  162. @click="updateStatusHuatai(item)" class="red_color">更新订单</el-button>
  163. <el-button size="mini" type="text" v-if="
  164. (item.orderstatus == '1' ||
  165. item.orderstatus == '2' ||
  166. item.orderstatus == '4') &&
  167. ['紫金财险', '诚泰财险', '阳光财险'].includes(item.inscompany)
  168. " @click="cancelorder(item)" class="red_color">撤单</el-button>
  169. <el-button size="mini" type="text" v-if="item.orderstatus == '2'" @click="carcode(item)"
  170. class="red_color">二维码</el-button>
  171. <!-- <el-button size="mini" class="red_color" v-if="item.orderstatus == '2' && item.inscompany == '平安财险'" type="text" @click="signature(item)">生成签章</el-button> -->
  172. <el-button v-if="item.orderstatus == '10'" size="mini" type="text" class="blue_color"
  173. @click="supplementOrder(item)">补录订单</el-button>
  174. <el-button size="mini" type="text" class="green_color"
  175. @click="OrderDetails(scope.row, item)">查看详情</el-button>
  176. <el-button size="mini" type="text" :loading="querystatusLoaing" v-if="
  177. item.orderstatus == '2' &&
  178. [
  179. '太平财险',
  180. '华农财险',
  181. '恒邦财险',
  182. '诚泰财险',
  183. '众安平安',
  184. '中国人寿',
  185. '人保财险',
  186. '安盛天平',
  187. '紫金财险',
  188. '永诚财险',
  189. '大家财险',
  190. '华泰财险',
  191. '华安财险',
  192. '泰山财险',
  193. '国任财险',
  194. '中煤财险',
  195. '渤海财险',
  196. '泰康财险',
  197. '平安财险',
  198. '太平洋财险',
  199. '阳光财险',
  200. '永安财险',
  201. '申能财险',
  202. '大地财险'
  203. ].includes(item.inscompany)
  204. " class="blue_color" @click="querystatus(item, index)">状态更新</el-button>
  205. <el-button v-if="item.orderstatus !== '2'" size="mini" type="text" class="blue_color"
  206. @click="orderTrajectory(scope.row, item)">订单轨迹</el-button>
  207. <el-button size="mini" type="primary" @click="bjdpreview(item.id, scope.row.userid)">报价单</el-button>
  208. <el-button v-if="
  209. (item.orderstatus == '1' || item.orderstatus == '4') &&
  210. item.inscompany == '平安财险' &&
  211. item.fileStatus
  212. " size="mini" type="text" class="green_color"
  213. @click="additionalInformation(item.id, scope.row)">补充资料</el-button>
  214. <!-- <el-button size="mini" type="text" @click="CloseEdit(scope.$index, scope.row)">编辑</el-button> -->
  215. <el-button type="text" size="mini" v-if="item.orderstatus == '2'">
  216. <el-dropdown trigger="click">
  217. <span class="el-dropdown-link blue_color">
  218. 更多
  219. <i class="el-icon-arrow-down el-icon--right"></i>
  220. </span>
  221. <el-dropdown-menu slot="dropdown">
  222. <el-dropdown-item>
  223. <el-button size="mini" type="text" style="color: #2d4d89"
  224. @click="orderTrajectory(scope.row, item)">订单轨迹</el-button>
  225. </el-dropdown-item>
  226. <el-dropdown-item v-if="item.inscompany !== '平安财险'">
  227. <el-button type="text" size="mini" style="color: #2d4d89"
  228. @click="revokeCode(item.id)">撤销二维码</el-button>
  229. </el-dropdown-item>
  230. <el-dropdown-item v-if="item.vehicleInspectionUrl">
  231. <el-button type="text" size="mini" style="color: #2d4d89"
  232. @click="validateCarCode(scope.row, item)">验车二维码</el-button>
  233. </el-dropdown-item>
  234. </el-dropdown-menu>
  235. </el-dropdown>
  236. </el-button>
  237. </div>
  238. </div>
  239. </template>
  240. </el-table-column>
  241. <el-table-column prop="orderno" label="订单号" align="center" width="160"></el-table-column>
  242. <el-table-column prop="username" :label="managementSource == 1 ? '会员名称' : '业务员'" align="center" width="80">
  243. <template slot-scope="scope">
  244. <span>{{ scope.row.username }}</span>
  245. </template>
  246. </el-table-column>
  247. <el-table-column prop="username" :label="managementSource == 1 ? '会员号' : '业务员工号'" align="center" width="150">
  248. <template slot-scope="scope">
  249. <span>{{ scope.row.userid }}</span>
  250. </template>
  251. </el-table-column>
  252. <el-table-column prop="insCompany" label="已承保的公司" width="100" align="center">
  253. <template slot-scope="scope">
  254. <span>{{ scope.row.insCompany ? scope.row.insCompany : "--" }}</span>
  255. </template>
  256. </el-table-column>
  257. <el-table-column prop="partnerCompaniesName" label="合作公司" width="80" align="center">
  258. <template slot-scope="scope">
  259. <span>{{
  260. scope.row.partnerCompaniesName
  261. ? scope.row.partnerCompaniesName
  262. : "--"
  263. }}</span>
  264. </template>
  265. </el-table-column>
  266. <el-table-column prop="licenseno" label="车牌号" width="100" align="center"></el-table-column>
  267. <el-table-column prop="insuredname" label="投保人姓名" align="center" width="100"></el-table-column>
  268. <el-table-column prop="product" label="投保险种" align="center" width="100"></el-table-column>
  269. <el-table-column prop="orderstatus" label="状态" align="center" width="150">
  270. <template slot-scope="scope">
  271. <!-- <el-tag :type="capType(scope.row.orderstatus)" size="small">{{
  272. scope.row.orderstatus | cap
  273. }}</el-tag>-->
  274. <el-tag style="
  275. color: #33a08d;
  276. border-color: #33a08d;
  277. background: rgba(51, 160, 141, 0.1);
  278. " v-if="scope.row.orderstatus == '0' || scope.row.orderstatus == '1'" size="small">{{ scope.row.orderstatus
  279. | cap }}</el-tag>
  280. <el-tag type="danger" style="border-color: #e75b5d" v-else-if="scope.row.orderstatus == '3'" size="small">{{
  281. scope.row.orderstatus | cap }}</el-tag>
  282. <el-tag v-else style="
  283. color: #2d4d89;
  284. border-color: #2d4d89;
  285. background: rgba(45, 77, 137, 0.1);
  286. " size="small">{{ scope.row.orderstatus | cap }}</el-tag>
  287. </template>
  288. </el-table-column>
  289. <el-table-column prop="createtime" label="录单日期" align="center" width="150"></el-table-column>
  290. <el-table-column prop="insureTime" label="承保确认时间" align="center" width="150"></el-table-column>
  291. <el-table-column label="操作" align="center" fixed="right" min-width="250">
  292. <template slot-scope="scope">
  293. <!-- <el-button v-if="scope.row.orderstatus != '3'" size="mini" type="text" style="color: #2d4d89"
  294. @click="resendData(scope.$index, scope.row)">补传资料</el-button> -->
  295. <el-button v-if="scope.row.orderstatus != '3'" size="mini" type="text" style="color: #2d4d89"
  296. @click="CloseEdit(scope.$index, scope.row)">重新报价</el-button>
  297. <el-button size="mini" style="color: #2d4d89" type="text"
  298. @click="onoffQuotationHistory(scope.row)">报价历史</el-button>
  299. <!-- <el-button size="mini" type="text" v-if="['0', '5'].includes(scope.row.orderstatus)"
  300. @click="CloseQoute(scope.$index, scope.row)" style="color:#f56c6c">关闭报价</el-button>-->
  301. <!-- <el-button size="mini" type="text" v-if="scope.row.orderstatus == '0'"
  302. @click="underwriting(scope.$index, scope.row)" style="color:#e6a23c">去核保</el-button>-->
  303. </template>
  304. </el-table-column>
  305. </el-table>
  306. <!-- 分页功能 -->
  307. <div class="block">
  308. <el-pagination @size-change="applyhandleSizeChange" @current-change="applyhandleCurrentChange"
  309. :current-page="pageNum" :page-size="pageSize" :page-sizes="[20, 30, 50, 100]"
  310. layout="total, sizes, prev, pager, next, jumper" :total="totalSize"></el-pagination>
  311. </div>
  312. <!--第一种 二维码 -->
  313. <el-dialog :visible.sync="codedialogVisible" width="430px" top="10vh" class="saomazhifucodeClass">
  314. <div class="ORcodebody" v-watermark="qrCodeId">
  315. <div slot="title" class="dialog-title">
  316. <span>扫码付款</span>
  317. </div>
  318. <div class="ORcode">
  319. <div style="padding: 13px; position: relative">
  320. <div id="qrcode" ref="qrcode"></div>
  321. </div>
  322. </div>
  323. <img style="margin-left: -16px" src="../../../assets/image/divider.png" alt />
  324. <div style="
  325. font-size: 32px;
  326. text-align: center;
  327. color: #d42426;
  328. margin-top: 20px;
  329. ">
  330. <span style="font-size: 24px; font-weight: bold">¥</span>
  331. {{ sumpremium }}
  332. </div>
  333. <div class="ORtitle">
  334. <div>
  335. <span>保险公司:</span>
  336. <span>{{ inscompany }}</span>
  337. </div>
  338. <div>
  339. <span>车牌号:</span>
  340. <span>{{ licenseNo }}</span>
  341. </div>
  342. <div>
  343. <span>投保人:</span>
  344. <span>{{ applyName }}</span>
  345. </div>
  346. <div v-show="jqpremium">
  347. <span>交强:</span>
  348. <span>{{ jqpremium }}</span>
  349. </div>
  350. <div v-show="sypremium">
  351. <span>商业:</span>
  352. <span>{{ sypremium }}</span>
  353. </div>
  354. <div v-show="taxamount">
  355. <span>车船税:</span>
  356. <span>{{ taxamount }}</span>
  357. </div>
  358. <div v-show="jqstartdate">
  359. <span>交强险起保日期:</span>
  360. <span>{{ jqstartdate }}</span>
  361. </div>
  362. <div v-show="systartdate">
  363. <span>商业险起保日期:</span>
  364. <span>{{ systartdate }}</span>
  365. </div>
  366. <div v-if="jypremium">
  367. <span>驾意险:</span>
  368. <span>{{ jypremium }}</span>
  369. </div>
  370. <div v-if="jypremium">
  371. <span>驾意险险起保日期:</span>
  372. <span>{{ systartdate || jqstartdate }}</span>
  373. </div>
  374. </div>
  375. </div>
  376. <span slot="footer" class="dialog-footer display">
  377. <el-button size="small" style="width: 100px; border-color: #d42426; color: #d42426"
  378. @click="codedialogVisible = false">关闭</el-button>
  379. </span>
  380. </el-dialog>
  381. <!--第二种 二维码 -->
  382. <el-dialog :visible.sync="codedialogVisiblePro" width="660px" class="proSaomazhifucodeClass" top="10vh"
  383. title="扫码付款">
  384. <div class="flex j-s">
  385. <div class="scan-code">
  386. <div style="font-weight: bold">
  387. 总金额:
  388. <span style="color: #2d4d89">{{ sumpremium }}</span>
  389. </div>
  390. <div>交强险:{{ jqpremium }}</div>
  391. <div>车船税:{{ taxamount }}</div>
  392. <div>商业险:{{ sypremium }}</div>
  393. <div>驾意险:{{ jypremium }}</div>
  394. </div>
  395. <div id="qrcode" ref="qrcode"></div>
  396. <div class="scan-code">
  397. <div>保险公司:{{ inscompany }}</div>
  398. <div>车牌号:{{ licenseNo }}</div>
  399. <div>投保人:{{ applyName }}</div>
  400. <div>交强险起保日期:{{ jqstartdate }}</div>
  401. <div>商业险起保日期:{{ systartdate }}</div>
  402. <div>驾意险起保日期:{{ systartdate || jqstartdate }}</div>
  403. </div>
  404. </div>
  405. <span slot="footer" class="dialog-footer">
  406. <el-button size="small" style="
  407. width: 100px;
  408. background: #eaedf1;
  409. border-color: #eaedf1;
  410. color: #2d4d89;
  411. " @click="codedialogVisiblePro = false">关闭</el-button>
  412. </span>
  413. </el-dialog>
  414. <!-- 车辆报价新页面 -->
  415. <detailsDialog ref="detailsDialog" :orderInfo.sync="orderInfo" :Feepermissions="false"></detailsDialog>
  416. <!-- 订单轨迹 -->
  417. <el-dialog :visible.sync="ddgjdialogVisible" width="500px">
  418. <div slot="title" class="dialog-title">
  419. <span>订单轨迹</span>
  420. </div>
  421. <div style="height: 300px; overflow-y: auto">
  422. <el-steps direction="vertical" :active="trajectoryTable.length - 1">
  423. <el-step :title="item.desc" :key="item.id" v-for="item in trajectoryTable">
  424. <template slot="description">
  425. <template style="margin-top: 10px; margin-bottom: 10px">
  426. <div>保险公司:{{ item.insCompany }}</div>
  427. <div>车牌号:{{ item.licenseNo }}</div>
  428. <div>被保人:{{ item.insuredname }}</div>
  429. <div>
  430. <span>操作人:{{ item.operator }}</span>
  431. <span style="margin-left: 10px">操作人工号:{{ item.audituser }}</span>
  432. </div>
  433. <span v-if="item.operatorTime">
  434. 操作时间:{{ item.operatorTime }}
  435. </span>
  436. </template>
  437. </template>
  438. </el-step>
  439. </el-steps>
  440. </div>
  441. </el-dialog>
  442. <!-- 报价历史 -->
  443. <el-dialog :visible.sync="quotationhistorydialogVisible" v-dialogDrag width="90%">
  444. <div slot="title" class="dialog-title">
  445. <img src="../../../../src/icon/报价历史.png" alt class="icon-img" />
  446. <span>报价历史</span>
  447. </div>
  448. <div style="padding: 20px">
  449. <el-table size="small" :data="HistoryList" height="400" border style="width: 100%" v-loading="loading"
  450. :header-cell-style="{
  451. background: '#F2F7FC',
  452. }" highlight-current-row>
  453. <el-table-column prop="inscompany" label="保险公司" align="center"></el-table-column>
  454. <el-table-column prop="username" label="业务员" align="center">
  455. <template slot-scope="scope">
  456. <span>{{ scope.row.userName }}({{ scope.row.userId }})</span>
  457. </template>
  458. </el-table-column>
  459. <el-table-column prop="licenseno" label="车牌号" align="center"></el-table-column>
  460. <el-table-column prop="createtime" label="报价时间" align="center"></el-table-column>
  461. <el-table-column prop="jqpremium" label="交强险" align="center"></el-table-column>
  462. <el-table-column prop="sypremium" label="商业险" align="center"></el-table-column>
  463. <el-table-column prop="taxamount" label="车船税" align="center"></el-table-column>
  464. <el-table-column prop="sumpremium" label="总保费" align="center"></el-table-column>
  465. <el-table-column prop="orderstatus" label="状态" align="center">
  466. <template slot-scope="scope">
  467. <el-tag style="
  468. color: #33a08d;
  469. border-color: #33a08d;
  470. background: rgba(51, 160, 141, 0.1);
  471. " v-if="
  472. scope.row.orderstatus == '0' || scope.row.orderstatus == '1'
  473. " size="small">{{ scope.row.orderstatus | cap }}</el-tag>
  474. <el-tag type="danger" style="border-color: #e75b5d" v-else-if="scope.row.orderstatus == '3'"
  475. size="small">{{ scope.row.orderstatus | cap }}</el-tag>
  476. <el-tag v-else style="
  477. color: #2d4d89;
  478. border-color: #2d4d89;
  479. background: rgba(45, 77, 137, 0.1);
  480. " size="small">{{ scope.row.orderstatus | cap }}</el-tag>
  481. </template>
  482. </el-table-column>
  483. <el-table-column label="操作" align="center" min-width="180" fixed="right">
  484. <template slot-scope="scope">
  485. <el-button type="text" size="small" style="color: #2d4d89"
  486. @click="OrderDetails(quotationhistoryRow, scope.row)">查看详情</el-button>
  487. <el-button size="small" type="text" @click="bjdpreview(scope.row.id, scope.row.userId)">报价单</el-button>
  488. <el-button size="small" v-show="scope.row.orderstatus == '2'" type="text"
  489. @click="carcode(scope.row)">付款码</el-button>
  490. <!-- <el-button size="small" v-if="scope.row.orderstatus == '2' && scope.row.inscompany == '平安财险'" type="text" @click="signature(item)">生成签章</el-button> -->
  491. <el-button size="mini" type="text" v-if="
  492. (scope.row.orderstatus == '1' ||
  493. scope.row.orderstatus == '2' ||
  494. scope.row.orderstatus == '4') &&
  495. ['紫金财险', '诚泰财险', '阳光财险'].includes(
  496. scope.row.inscompany
  497. )
  498. " @click="cancelorder(scope.row)">撤单</el-button>
  499. <el-button type="text" size="mini" style="color: #2d4d89" v-if="
  500. scope.row.orderstatus == '2' &&
  501. scope.row.inscompany !== '平安财险'
  502. " @click="revokeCode(scope.row.id)">撤销二维码</el-button>
  503. <el-button type="text" size="mini" style="color: #2d4d89" v-if="
  504. scope.row.orderstatus == '2' &&
  505. [
  506. '太平财险',
  507. '华农财险',
  508. '恒邦财险',
  509. '诚泰财险',
  510. '众安平安',
  511. '中国人寿',
  512. '人保财险',
  513. '安盛天平',
  514. '紫金财险',
  515. '永诚财险',
  516. '大家财险',
  517. '华泰财险',
  518. '华安财险',
  519. '泰山财险',
  520. '国任财险',
  521. '中煤财险',
  522. '渤海财险',
  523. '泰康财险',
  524. '平安财险',
  525. '太平洋财险',
  526. '阳光财险',
  527. '永安财险',
  528. ].includes(scope.row.inscompany)
  529. " @click="querystatus(scope.row, 'history')">状态更新</el-button>
  530. </template>
  531. </el-table-column>
  532. </el-table>
  533. </div>
  534. </el-dialog>
  535. <!-- 生成签章 -->
  536. <el-dialog :visible.sync="signaturedialogVisible" title="生成签章" width="14%">
  537. <div>
  538. <img :src="resultMessageImg" alt style="width: 100%" />
  539. <!-- <div id="signaturecode" ref="signaturecode"></div> -->
  540. </div>
  541. </el-dialog>
  542. <el-dialog :visible.sync="imageUploaddialogVisible" width="1070px">
  543. <div slot="title" class="dialog-title">
  544. <span>影像上传</span>
  545. </div>
  546. <el-row>
  547. <el-col :span="3">
  548. <div class="tab-style">
  549. <li class="liMenu" :class="idx == tabLiIndex ? 'tabLi-style' : ''" @click="tabLiScroll(item.scroll, idx)"
  550. v-for="(item, idx) in tabLimenu" :key="idx">
  551. {{ item.name }}
  552. </li>
  553. </div>
  554. </el-col>
  555. <el-col :span="21" style="height: 320px; overflow-y: auto">
  556. <div class="flex" id="vehicle">
  557. <div class="aaa">
  558. <span>1.行驶证主页</span>
  559. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList1', 'imgList1', 'C01')
  560. " :file-list="imgList1" ref="upload1" :class="{ styleB: imgList1.length == 1 }">
  561. <img v-show="imgList1.length == 0" src="../../../../static/carfront.png"
  562. style="width: 100%; height: 100%" />
  563. <div slot="file" slot-scope="{ file }" v-if="imgList1.length > 0">
  564. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  565. <span class="el-upload-list__item-actions">
  566. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList1', 'imgList1')">
  567. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  568. <i class="el-icon-delete"></i>
  569. </span>
  570. </span>
  571. </div>
  572. </el-upload>
  573. </div>
  574. <div class="aaa">
  575. <span>2.行驶证副页</span>
  576. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList1', 'imgList2', 'D01')
  577. " :file-list="imgList2" ref="upload2" :class="{ styleB: imgList2.length === 1 }">
  578. <img v-show="imgList2.length == 0" src="../../../../static/carback.png"
  579. style="width: 100%; height: 100%" />
  580. <div slot="file" slot-scope="{ file }">
  581. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  582. <span class="el-upload-list__item-actions">
  583. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList1', 'imgList2')">
  584. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  585. <i class="el-icon-delete"></i>
  586. </span>
  587. </span>
  588. </div>
  589. </el-upload>
  590. </div>
  591. <div class="aaa">
  592. <span>1.新车合格证</span>
  593. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  594. drivingupload(file, 'imageList5', 'imgList9', 'XC00')
  595. " :file-list="imgList9" multiple ref="upload3" :class="{ styleB: imgList9.length === 1 }">
  596. <img v-show="imgList9.length == 0" src="../../../../static/userfront.png"
  597. style="width: 100%; height: 100%" />
  598. <div slot="file" slot-scope="{ file }">
  599. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  600. <span class="el-upload-list__item-actions">
  601. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList5', 'imgList9')">
  602. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  603. <i class="el-icon-delete"></i>
  604. </span>
  605. </span>
  606. </div>
  607. </el-upload>
  608. </div>
  609. <div class="aaa">
  610. <span>2.购车发票</span>
  611. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  612. drivingupload(file, 'imageList5', 'imgList10', 'GC00')
  613. " :file-list="imgList10" multiple ref="upload4" :class="{ styleB: imgList10.length === 1 }">
  614. <img v-show="imgList10.length == 0" src="../../../../static/userfront.png"
  615. style="width: 100%; height: 100%" />
  616. <div slot="file" slot-scope="{ file }">
  617. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  618. <span class="el-upload-list__item-actions">
  619. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList5', 'imgList10')">
  620. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  621. <i class="el-icon-delete"></i>
  622. </span>
  623. </span>
  624. </div>
  625. </el-upload>
  626. </div>
  627. </div>
  628. <div class="flex" id="owner">
  629. <div class="aaa">
  630. <span>1.车主身份证(正面)</span>
  631. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList2', 'imgList3', 'C02')
  632. " :file-list="imgList3" multiple ref="upload3" :class="{ styleB: imgList3.length === 1 }">
  633. <img v-show="imgList3.length == 0" src="../../../../static/userfront.png"
  634. style="width: 100%; height: 100%" />
  635. <div slot="file" slot-scope="{ file }">
  636. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  637. <span class="el-upload-list__item-actions">
  638. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList2', 'imgList3')">
  639. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  640. <i class="el-icon-delete"></i>
  641. </span>
  642. </span>
  643. </div>
  644. </el-upload>
  645. </div>
  646. <div class="aaa">
  647. <span>2.车主身份证(反面)</span>
  648. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList2', 'imgList4', 'D02')
  649. " :file-list="imgList4" multiple ref="upload4" :class="{ styleB: imgList4.length === 1 }">
  650. <img v-show="imgList4.length == 0" src="../../../../static/userback.png"
  651. style="width: 100%; height: 100%" />
  652. <div slot="file" slot-scope="{ file }">
  653. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  654. <span class="el-upload-list__item-actions">
  655. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList2', 'imgList4')">
  656. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  657. <i class="el-icon-delete"></i>
  658. </span>
  659. </span>
  660. </div>
  661. </el-upload>
  662. </div>
  663. <div class="aaa">
  664. <span>3.营业执照</span>
  665. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag multiple
  666. ref="upload4">
  667. <img src="../../../../static/userfront.png" style="width: 100%; height: 100%" />
  668. <div slot="file" slot-scope="{ file }">
  669. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  670. <span class="el-upload-list__item-actions">
  671. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList2', 'imgList4')">
  672. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  673. <i class="el-icon-delete"></i>
  674. </span>
  675. </span>
  676. </div>
  677. </el-upload>
  678. </div>
  679. </div>
  680. <div class="flex" id="applicant">
  681. <div class="aaa">
  682. <span>1.投保人身份证(正面)</span>
  683. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList3', 'imgList5', 'C03')
  684. " :file-list="imgList5" multiple ref="upload5" :class="{ styleB: imgList5.length === 1 }">
  685. <img v-show="imgList5.length == 0" src="../../../../static/userfront.png"
  686. style="width: 100%; height: 100%" />
  687. <div slot="file" slot-scope="{ file }">
  688. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  689. <span class="el-upload-list__item-actions">
  690. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList3', 'imgList5')">
  691. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  692. <i class="el-icon-delete"></i>
  693. </span>
  694. </span>
  695. </div>
  696. </el-upload>
  697. </div>
  698. <div class="aaa">
  699. <span>2.投保人身份证(反面)</span>
  700. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList3', 'imgList6', 'D03')
  701. " :file-list="imgList6" multiple ref="upload6" :class="{ styleB: imgList6.length === 1 }">
  702. <img v-show="imgList6.length == 0" src="../../../../static/userback.png"
  703. style="width: 100%; height: 100%" />
  704. <div slot="file" slot-scope="{ file }">
  705. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  706. <span class="el-upload-list__item-actions">
  707. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList3', 'imgList6')">
  708. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  709. <i class="el-icon-delete"></i>
  710. </span>
  711. </span>
  712. </div>
  713. </el-upload>
  714. </div>
  715. <div class="aaa">
  716. <span>3.营业执照</span>
  717. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag multiple
  718. ref="upload4">
  719. <img src="../../../../static/userfront.png" style="width: 100%; height: 100%" />
  720. <div slot="file" slot-scope="{ file }">
  721. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  722. <span class="el-upload-list__item-actions">
  723. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList2', 'imgList4')">
  724. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  725. <i class="el-icon-delete"></i>
  726. </span>
  727. </span>
  728. </div>
  729. </el-upload>
  730. </div>
  731. </div>
  732. <div class="flex">
  733. <div class="aaa">
  734. <span id="insured">1.被保人身份证(正面)</span>
  735. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList4', 'imgList7', 'C04')
  736. " :file-list="imgList7" multiple ref="upload7" :class="{ styleB: imgList7.length === 1 }">
  737. <img v-show="imgList7.length == 0" src="../../../../static/userfront.png"
  738. style="width: 100%; height: 100%" />
  739. <div slot="file" slot-scope="{ file }">
  740. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  741. <span class="el-upload-list__item-actions">
  742. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList4', 'imgList7')">
  743. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  744. <i class="el-icon-delete"></i>
  745. </span>
  746. </span>
  747. </div>
  748. </el-upload>
  749. </div>
  750. <div class="aaa">
  751. <span>2.被保人身份证(反面)</span>
  752. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList4', 'imgList8', 'D04')
  753. " :file-list="imgList8" multiple ref="upload8" :class="{ styleB: imgList8.length === 1 }">
  754. <img v-show="imgList8.length == 0" src="../../../../static/userback.png"
  755. style="width: 100%; height: 100%" />
  756. <div slot="file" slot-scope="{ file }">
  757. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  758. <span class="el-upload-list__item-actions">
  759. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList4', 'imgList8')">
  760. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  761. <i class="el-icon-delete"></i>
  762. </span>
  763. </span>
  764. </div>
  765. </el-upload>
  766. </div>
  767. <div class="aaa">
  768. <span>3.营业执照</span>
  769. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag multiple
  770. ref="upload4">
  771. <img src="../../../../static/userfront.png" style="width: 100%; height: 100%" />
  772. <div slot="file" slot-scope="{ file }">
  773. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  774. <span class="el-upload-list__item-actions">
  775. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList2', 'imgList4')">
  776. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  777. <i class="el-icon-delete"></i>
  778. </span>
  779. </span>
  780. </div>
  781. </el-upload>
  782. </div>
  783. </div>
  784. <div class="flex" id="relationship">
  785. <div class="aaa">
  786. <span>1.关系证明</span>
  787. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  788. drivingupload(file, 'imageList5', 'imgList11', 'GX00')
  789. " :file-list="imgList11" multiple ref="upload3" :class="{ styleB: imgList11.length === 1 }">
  790. <img v-show="imgList11.length == 0" src="../../../../static/userfront.png"
  791. style="width: 100%; height: 100%" />
  792. <div slot="file" slot-scope="{ file }">
  793. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  794. <span class="el-upload-list__item-actions">
  795. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList5', 'imgList11')">
  796. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  797. <i class="el-icon-delete"></i>
  798. </span>
  799. </span>
  800. </div>
  801. </el-upload>
  802. </div>
  803. </div>
  804. </el-col>
  805. </el-row>
  806. <span slot="footer" class="dialog-footer">
  807. <el-button size="small" @click="imageUploaddialogVisible = false">取 消</el-button>
  808. <el-button size="small" type="primary" @click="uploadinformation">上传资料</el-button>
  809. </span>
  810. </el-dialog>
  811. <!-- 生成验车二维码 -->
  812. <el-dialog :visible.sync="validateCarCodeShow" width="30%" title="验车二维码">
  813. <div class="QRCode" ref="qrcode" @click="resetCode"></div>
  814. </el-dialog>
  815. <el-image-viewer v-if="showViewer" :on-close="closeViewer" :z-index="9999" :url-list="[ProViewImg]" />
  816. <!-- 报价单 -->
  817. <quotationDialog ref="quotationDialog" :queryOrders="queryOrders"></quotationDialog>
  818. <quotationDialogPro ref="quotationDialogPro" :queryOrders="queryOrders"></quotationDialogPro>
  819. <imageDialog ref="imageDialog" :companyId="companyId" :type="2"></imageDialog>
  820. </div>
  821. </template>
  822. <script>
  823. let _self;
  824. import { pathToBase64, base64ToPath } from "@/common/image-tools-base64.js";
  825. import CommonUtil from "@/utils/comutil.js";
  826. import Cookies from "js-cookie";
  827. import QRCode from "qrcodejs2";
  828. import quotationDialog from "@/views/Core/components/quotationDialog.vue";
  829. import quotationDialogPro from "@/views/Core/components/quotationDialogPro.vue";
  830. import detailsDialog from "@/views/Core/components/detailsDialog.vue";
  831. import imageDialog from "@/views/Core/components/imageDialog.vue";
  832. import { debounce } from "lodash";
  833. export default {
  834. data() {
  835. return {
  836. companyId: "",
  837. orderLoaing: false,
  838. qrcodeWidth: "180",
  839. qrcodeHeight: "180",
  840. qrCodeId: Cookies.get("user"),
  841. ddgjdialogVisible: false,
  842. signaturedialogVisible: false,
  843. signaturecode: null,
  844. trajectoryTable: [],
  845. queryOrders: {
  846. carinfo: {},
  847. ownerinfo: {},
  848. applyinfo: {},
  849. insureinfo: {},
  850. extendInfo: {},
  851. },
  852. logoImg: "", //报价单保险公司logo图
  853. value2: "",
  854. optionsStatus: [],
  855. optionsStatusAll: [],
  856. codedialogVisible: false,
  857. codedialogVisiblePro: false,
  858. loading: false,
  859. pageNum: 1, //页数
  860. pageSize: 20, //条数
  861. totalSize: null, //总数
  862. peopleid: "", //工号
  863. pageResult: [], //列表
  864. pageRequest: {
  865. //查询的默认条件
  866. orderNo: "",
  867. frameNo: "",
  868. insuredName: "",
  869. licenseNo: "",
  870. orderStatus: "",
  871. userId: "",
  872. endDate: "",
  873. startDate: "",
  874. pageNum: 1,
  875. pageSize: 20,
  876. deptId: "",
  877. },
  878. orderInfo: {
  879. //选中的订单
  880. ownerinfo: {},
  881. carinfo: {},
  882. applyinfo: {},
  883. insureinfo: {},
  884. kindinfo: [],
  885. riskinfo: [],
  886. ownerinfo: {},
  887. orderCommissionVo: {},
  888. extendInfo: {},
  889. },
  890. carImageList: [], //车辆影像
  891. ownerImageList: [], //车主影像
  892. policyImageList: [], //投保人影像
  893. insuredImageList: [], //被保人影像
  894. carCheckImageList: [], //验车照影像
  895. // 影像控制
  896. pic1Control: false,
  897. pic2Control: false,
  898. pic3Control: false,
  899. pic4Control: false,
  900. pic5Control: false,
  901. showInsureList: false, //是否展示具体险种信息
  902. oldfileList: [], //电子保单数据
  903. inscompany: "", //保险公司名称
  904. licenseNo: "", //车牌号
  905. applyName: "", //车主名字
  906. orderstatus: "", //订单状态
  907. sumpremium: "", //保费合计
  908. jqpremium: "", //交强
  909. sypremium: "", //商业
  910. taxamount: "", //车船税
  911. jypremium: "", //驾意险
  912. jqstartdate: "", //交强时间
  913. systartdate: "", //商业时间
  914. mobile: "", //投保人手机号
  915. qrcode: null,
  916. paycodeimg: "",
  917. userid: "",
  918. downloadstatus: 0,
  919. expands: [],
  920. productsTypeoptions: [],
  921. InsInsuranceKindoptions: [],
  922. width: document.documentElement.clientWidth,
  923. tabelHeight: document.documentElement.clientHeight - 440,
  924. insAreaCompanyList: [], //子订单list
  925. companyList: [], //保险公司
  926. querystatusLoaing: false,
  927. quotationhistorydialogVisible: false, //报价历史显示状态
  928. HistoryList: [], //报价历史数据
  929. natureOfVehicleUseoptions: [],
  930. businessVehicleUseoptions: [],
  931. energyTypeoptions: [],
  932. vehicleTypeoptions: [],
  933. trafficManagementVehicleTypeoptions: [],
  934. outOfBusinessVehicleUseoptions: [],
  935. userIdPor: Cookies.get("user"),
  936. statusPor: "",
  937. deptIdPor: "",
  938. apiType: "",
  939. resultMessageImg: "",
  940. institutionOptions: [],
  941. imageUploaddialogVisible: false,
  942. tabLiIndex: 0,
  943. tabLimenu: [
  944. {
  945. name: "车辆信息",
  946. scroll: "vehicle",
  947. },
  948. {
  949. name: "车主信息",
  950. scroll: "owner",
  951. },
  952. {
  953. name: "投保人信息",
  954. scroll: "applicant",
  955. },
  956. {
  957. name: "被保人信息",
  958. scroll: "insured",
  959. },
  960. {
  961. name: "关系证明",
  962. scroll: "relationship",
  963. },
  964. ],
  965. //影像回显列表
  966. imgList1: [],
  967. imgList2: [],
  968. imgList3: [],
  969. imgList4: [],
  970. imgList5: [],
  971. imgList6: [],
  972. imgList7: [],
  973. imgList8: [],
  974. imgList9: [],
  975. imgList10: [],
  976. imgList11: [],
  977. //影像上传列表
  978. imageList1: [],
  979. imageList2: [],
  980. imageList3: [],
  981. imageList4: [],
  982. imageList5: [],
  983. showViewer: false,
  984. ProViewImg: "",
  985. managementSource: "",
  986. validateCarCodeShow: false,
  987. vehicleInspectionUrl: "",
  988. };
  989. },
  990. components: {
  991. quotationDialog,
  992. detailsDialog,
  993. quotationDialogPro,
  994. imageDialog,
  995. "el-image-viewer": () =>
  996. import("element-ui/packages/image/src/image-viewer"),
  997. },
  998. created() {
  999. this.managementSource = JSON.parse(
  1000. localStorage.getItem("user_data")
  1001. ).managementSource;
  1002. this.getDicType("natureOfVehicleUse"); //车辆使用性质
  1003. this.getDicType("vehicleType"); //车辆种类
  1004. this.getDicType("trafficManagementVehicleType"); //车辆类型
  1005. this.getDicType("energyType"); //能源种类
  1006. this.getDicType("businessVehicleUse"); //(车辆用途)营业
  1007. this.getDicType("outOfBusinessVehicleUse"); //(车辆用途)非营业
  1008. this.getDicType("productsType"); //(车辆用途)非营业
  1009. this.$api.letter.gainTopList().then((res) => {
  1010. this.companyList = res.data;
  1011. });
  1012. this.$api.insCompany.dicType("insOrderStatusAll").then((res) => {
  1013. this.optionsStatusAll = res.data.ddList;
  1014. });
  1015. this.$api.insCompany.dicType("insOrderStatus").then((res) => {
  1016. this.optionsStatus = res.data.ddList;
  1017. });
  1018. this.peopleid = Cookies.get("user");
  1019. this.$api.dept.findDeptTree().then((res) => {
  1020. this.institutionOptions = res.data;
  1021. });
  1022. // this.findPage();
  1023. if (this.isLetterOrder) {
  1024. this.$api.user.sysMenuRecordAdd(2, 2).then((res) => { });
  1025. this.pageRequest.deptId = JSON.parse(
  1026. localStorage.getItem("user_data")
  1027. ).deptId;
  1028. if (this.peopleid != "admin") {
  1029. this.pageRequest.userId = this.peopleid;
  1030. this.findPage();
  1031. } else {
  1032. this.pageRequest.userId = "admin";
  1033. }
  1034. }
  1035. },
  1036. props: {
  1037. isLetterOrder: {
  1038. type: Boolean,
  1039. default: true,
  1040. },
  1041. },
  1042. mounted() {
  1043. window.addEventListener("resize", this.getDimensions);
  1044. },
  1045. beforeCreate() {
  1046. _self = this;
  1047. },
  1048. // props:{
  1049. // isdisabled:{
  1050. // type:Boolean,
  1051. // default:true
  1052. // },
  1053. // },
  1054. filters: {
  1055. cap(ele) {
  1056. return _self.optionsStatus.find((item) => {
  1057. return item.dictValue === ele;
  1058. }).dictTag;
  1059. },
  1060. caps(ele) {
  1061. return _self.optionsStatusAll.find((item) => {
  1062. return item.dictValue === ele;
  1063. }).dictTag;
  1064. },
  1065. },
  1066. unmounted() {
  1067. window.removeEventListener("resize", this.getDimensions);
  1068. },
  1069. computed: {
  1070. allinsOption() {
  1071. let cloneData = JSON.parse(JSON.stringify(this.allIns)); // 对源数据深度克隆
  1072. return cloneData.filter((father) => {
  1073. // 循环所有项,并添加children属性
  1074. let branchArr = cloneData.filter(
  1075. (child) => father.id == child.parentId
  1076. ); // 返回每一项的子级数组
  1077. branchArr.length > 0 ? (father.children = branchArr) : ""; //给父级添加一个children属性,并赋值
  1078. return father.parentId == 0; //返回第一层
  1079. });
  1080. },
  1081. registerDateFormat() {
  1082. let date = new Date(this.orderInfo.carinfo.registerDate);
  1083. let year = date.getFullYear();
  1084. let month = date.getMonth() + 1;
  1085. let day = date.getDate();
  1086. return year + "-" + month + "-" + day;
  1087. },
  1088. issueDateFormat() {
  1089. let date = new Date(this.orderInfo.carinfo.issueDate);
  1090. let year = date.getFullYear();
  1091. let month = date.getMonth() + 1;
  1092. let day = date.getDate();
  1093. return year + "-" + month + "-" + day;
  1094. },
  1095. },
  1096. methods: {
  1097. additionalInformation(companyId, row) {
  1098. this.companyId = companyId;
  1099. this.$refs.imageDialog.imageEcho(row.quoteno);
  1100. this.$refs.imageDialog.setBackupVisible(true);
  1101. },
  1102. // 关闭查看器
  1103. closeViewer() {
  1104. this.showViewer = false;
  1105. },
  1106. handlePictureCardPreview(img) {
  1107. this.ProViewImg = img;
  1108. this.showViewer = true;
  1109. },
  1110. //影像上传
  1111. drivingupload(file, imageIdList, imgurl, type) {
  1112. let that = this;
  1113. let size = file.size / 1024 / 1024 < 5;
  1114. const isJPG =
  1115. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  1116. if (!size) {
  1117. this.$message.error("上传图片大小不能超过 5MB!");
  1118. this[imgurl] = [];
  1119. return false;
  1120. }
  1121. if (!isJPG) {
  1122. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  1123. this[imgurl] = [];
  1124. return false;
  1125. }
  1126. this[imgurl].push(file);
  1127. var file = file.raw;
  1128. const params = new FormData(); // 声明formData数据类型
  1129. params.append("multipartFile", file);
  1130. params.append("type", "image");
  1131. this.$api.letter.uploadFile(params).then((res) => {
  1132. if (res.code == "200") {
  1133. if (this[imageIdList].some((v) => v.imageType == type)) {
  1134. this[imageIdList].map((val) => {
  1135. if (val.imageType == type) {
  1136. val.imageId = res.data.id;
  1137. }
  1138. });
  1139. } else {
  1140. this[imageIdList].push({
  1141. imageId: res.data.id,
  1142. imageType: type,
  1143. });
  1144. }
  1145. }
  1146. });
  1147. },
  1148. handleRemove1(file, imageIdList, imgList) {
  1149. this[imageIdList].map((ele, index) => {
  1150. if (file.imageId === ele.imageId) {
  1151. this[imageIdList].splice(index, 1);
  1152. }
  1153. return ele;
  1154. });
  1155. if (file.imageId) {
  1156. this[imgList].map((ele, index) => {
  1157. if (file.imageId === ele.imageId) {
  1158. this[imgList].splice(index, 1);
  1159. }
  1160. return ele;
  1161. });
  1162. } else {
  1163. this[imgList].map((ele, index) => {
  1164. if (file.uid === ele.uid) {
  1165. this[imgList].splice(index, 1);
  1166. }
  1167. return ele;
  1168. });
  1169. }
  1170. },
  1171. //影像上传
  1172. uploadinformation() {
  1173. // //上传图片
  1174. const mergedArray = [
  1175. ...this.imageList1,
  1176. ...this.imageList2,
  1177. ...this.imageList3,
  1178. ...this.imageList4,
  1179. ...this.imageList5,
  1180. ];
  1181. let imageparam = {
  1182. imageList: mergedArray,
  1183. quoteNo: this.quoteno,
  1184. };
  1185. this.$api.letter.uploadImages(imageparam).then((responses) => {
  1186. if (responses.code == "200") {
  1187. this.imageEcho(this.quoteno);
  1188. this.$message({ message: responses.msg, type: "success" });
  1189. } else {
  1190. this.$message({ message: responses.msg, type: "error" });
  1191. }
  1192. });
  1193. this.imageUploaddialogVisible = false;
  1194. },
  1195. tabLiScroll(id, idx) {
  1196. this.tabLiIndex = idx;
  1197. document.getElementById(id).scrollIntoView({ behavior: "smooth" });
  1198. },
  1199. imageEcho(quotenos) {
  1200. //影像查询
  1201. this.$api.letter.findByQuoteNo(quotenos).then((res) => {
  1202. if (res.code == "200") {
  1203. this.imageList1 = [];
  1204. this.imageList2 = [];
  1205. this.imageList3 = [];
  1206. this.imageList4 = [];
  1207. this.imageList5 = [];
  1208. this.imgList1 = [];
  1209. this.imgList2 = [];
  1210. this.imgList3 = [];
  1211. this.imgList4 = [];
  1212. this.imgList5 = [];
  1213. this.imgList6 = [];
  1214. this.imgList7 = [];
  1215. this.imgList8 = [];
  1216. this.imgList9 = [];
  1217. this.imgList10 = [];
  1218. this.imgList11 = [];
  1219. Object.keys(res.data).forEach((keys) => {
  1220. if (res.data[keys].url) {
  1221. res.data[keys].url = process.env.BASE_URL + res.data[keys].url;
  1222. switch (keys) {
  1223. case "C01":
  1224. this.imageList1.push({
  1225. imageId: res.data[keys].imageId,
  1226. imageType: res.data[keys].imageType,
  1227. });
  1228. this.imgList1.push(res.data[keys]);
  1229. break;
  1230. case "D01":
  1231. this.imageList1.push({
  1232. imageId: res.data[keys].imageId,
  1233. imageType: res.data[keys].imageType,
  1234. });
  1235. this.imgList2.push(res.data[keys]);
  1236. break;
  1237. case "C02":
  1238. this.imageList2.push({
  1239. imageId: res.data[keys].imageId,
  1240. imageType: res.data[keys].imageType,
  1241. });
  1242. this.imgList3.push(res.data[keys]);
  1243. break;
  1244. case "D02":
  1245. this.imageList2.push({
  1246. imageId: res.data[keys].imageId,
  1247. imageType: res.data[keys].imageType,
  1248. });
  1249. this.imgList4.push(res.data[keys]);
  1250. break;
  1251. case "C03":
  1252. this.imageList3.push({
  1253. imageId: res.data[keys].imageId,
  1254. imageType: res.data[keys].imageType,
  1255. });
  1256. this.imgList5.push(res.data[keys]);
  1257. break;
  1258. case "D03":
  1259. this.imageList3.push({
  1260. imageId: res.data[keys].imageId,
  1261. imageType: res.data[keys].imageType,
  1262. });
  1263. this.imgList6.push(res.data[keys]);
  1264. break;
  1265. case "C04":
  1266. this.imageList4.push({
  1267. imageId: res.data[keys].imageId,
  1268. imageType: res.data[keys].imageType,
  1269. });
  1270. this.imgList7.push(res.data[keys]);
  1271. break;
  1272. case "D04":
  1273. this.imageList4.push({
  1274. imageId: res.data[keys].imageId,
  1275. imageType: res.data[keys].imageType,
  1276. });
  1277. this.imgList8.push(res.data[keys]);
  1278. break;
  1279. case "XC00":
  1280. this.imageList5.push({
  1281. imageId: res.data[keys].imageId,
  1282. imageType: res.data[keys].imageType,
  1283. });
  1284. this.imgList9.push(res.data[keys]);
  1285. break;
  1286. case "GC00":
  1287. this.imageList5.push({
  1288. imageId: res.data[keys].imageId,
  1289. imageType: res.data[keys].imageType,
  1290. });
  1291. this.imgList10.push(res.data[keys]);
  1292. break;
  1293. case "GX00":
  1294. this.imageList5.push({
  1295. imageId: res.data[keys].imageId,
  1296. imageType: res.data[keys].imageType,
  1297. });
  1298. this.imgList11.push(res.data[keys]);
  1299. break;
  1300. default:
  1301. break;
  1302. }
  1303. }
  1304. });
  1305. } else {
  1306. this.$message({ message: res.msg, type: "info" });
  1307. }
  1308. });
  1309. },
  1310. //报价历史点击事件
  1311. onoffQuotationHistory(row) {
  1312. this.quotationhistoryRow = row;
  1313. this.RadioHistoryChange();
  1314. this.quotationhistorydialogVisible = true;
  1315. },
  1316. //报价轨迹查询
  1317. RadioHistoryChange() {
  1318. let params = {
  1319. orderNo: this.quotationhistoryRow.orderno,
  1320. orderStatus: "",
  1321. };
  1322. this.$api.letter.queryQuoteHistory(params).then((res) => {
  1323. res.data.forEach((item) => {
  1324. if (item.accidentInfo) {
  1325. item.accidentInfo.constructor === Object
  1326. ? [item.accidentInfo]
  1327. : item.accidentInfo;
  1328. }
  1329. });
  1330. this.HistoryList = res.data;
  1331. });
  1332. },
  1333. getDicType(type) {
  1334. this.$api.insCompany.dicType(type).then((res) => {
  1335. if (res.code == 200) {
  1336. this[type + "options"] = res.data.ddList;
  1337. }
  1338. });
  1339. },
  1340. capType(val) {
  1341. if (val == "0") {
  1342. return "success";
  1343. }
  1344. if (val == "1") {
  1345. return "warning";
  1346. }
  1347. if (val == "2" || val == "3" || val == "4") {
  1348. return "danger";
  1349. }
  1350. },
  1351. // 撤销二维码
  1352. revokeCode(id) {
  1353. this.$confirm("确定撤销二维码?", "提示", {
  1354. confirmButtonText: "确定",
  1355. cancelButtonText: "取消",
  1356. type: "warning",
  1357. })
  1358. .then(() => {
  1359. this.$api.letter.getRevokeQrCode(id).then((res) => {
  1360. if (res.code == 200) {
  1361. this.$message({
  1362. message: res.msg,
  1363. type: "success",
  1364. });
  1365. this.quotationhistorydialogVisible
  1366. ? this.RadioHistoryChange()
  1367. : "";
  1368. this.findPage();
  1369. }
  1370. });
  1371. })
  1372. .catch(() => {
  1373. this.$message({
  1374. type: "info",
  1375. message: "已取消撤销二维码",
  1376. });
  1377. });
  1378. },
  1379. // 验车二维码
  1380. validateCarCode(row, item) {
  1381. this.validateCarCodeShow = true;
  1382. this.vehicleInspectionUrl = item.vehicleInspectionUrl;
  1383. this.$nextTick(() => {
  1384. this.qrcode = new QRCode(this.$refs.qrcode, {
  1385. // text 需要转二维码的内容 可以是文本也可以是一个链接 是链接会直接跳走
  1386. text: item.vehicleInspectionUrl,
  1387. width: 200,
  1388. height: 200,
  1389. colorDark: "#333", //二维码颜色
  1390. colorLight: "#fff", //二维码背景颜色
  1391. correctLevel: QRCode.CorrectLevel.L, //容错率,L/M/H
  1392. });
  1393. });
  1394. },
  1395. resetCode() {
  1396. if (this.qrcode) {
  1397. this.qrcode.clear();
  1398. this.qrcode.makeCode(this.vehicleInspectionUrl);
  1399. }
  1400. },
  1401. bjdpreview(companyId, userId) {
  1402. let params = {
  1403. companyId: companyId,
  1404. };
  1405. this.$api.letter.getByCompanyId(params).then((res) => {
  1406. if (res.code == "200") {
  1407. var data = res.data;
  1408. if (data.kindinfo != null) {
  1409. data.kindinfo.map((ele, index) => {
  1410. switch (ele.kindCode) {
  1411. case "A":
  1412. if (ele.amount == 1) {
  1413. ele.amount = "投保";
  1414. } else {
  1415. ele.amount = ele.amount;
  1416. }
  1417. break;
  1418. case "D4":
  1419. case "SY_FJ_YBW2":
  1420. ele.unitAmount = this.toChinesNum(ele.unitAmount);
  1421. break;
  1422. case "MJ1":
  1423. case "MJ2":
  1424. case "MJ3":
  1425. case "MJ4":
  1426. ele.deductibleRate = ele.deductibleRate + "%";
  1427. break;
  1428. default:
  1429. ele.amount = this.toChinesNum(ele.amount);
  1430. }
  1431. return ele;
  1432. });
  1433. }
  1434. data.logoImg = this.iconfftter(res.data.inscompany);
  1435. this.queryOrders = data;
  1436. this.$api.letter.getThemeByUserId(this.userIdPor).then((res) => {
  1437. if (res.code == 200) {
  1438. if (res.data[0] == "GD") {
  1439. this.$refs.quotationDialogPro.setBackupVisible(true);
  1440. } else {
  1441. this.$refs.quotationDialog.setBackupVisible(true);
  1442. }
  1443. }
  1444. });
  1445. }
  1446. });
  1447. },
  1448. toChinesNum(num) {
  1449. if (num.toString().length == 4) {
  1450. let overQian = Math.floor(num / 1000);
  1451. let result = overQian + "千";
  1452. return result;
  1453. } else {
  1454. let overWan = Math.floor(num / 10000);
  1455. let result = overWan + "万";
  1456. return result;
  1457. }
  1458. },
  1459. iconfftter(icon) {
  1460. return CommonUtil.getDataName({
  1461. dataList: this.global.insCompanyList,
  1462. value: "name",
  1463. label: "icon",
  1464. data: icon,
  1465. });
  1466. },
  1467. getRowClass(scope, rowIndex) {
  1468. if (scope.row.insAreaCompanyList.length == 0) {
  1469. //判断当前行是否有子数据或者根据实际情况设置
  1470. return "row-expand-cover";
  1471. }
  1472. },
  1473. getDimensions() {
  1474. this.width = document.documentElement.clientWidth - 350 + "px";
  1475. this.tabelHeight = document.documentElement.clientHeight - 330 + "px";
  1476. },
  1477. //订单修改
  1478. CloseEdit(index, row) {
  1479. this.$api.letter.getByOrderNo({ orderNo: row.orderno }).then((res) => {
  1480. if (res.code == 200) {
  1481. // console.log(this.isLetterOrder,res.data )
  1482. if (this.isLetterOrder) {
  1483. this.$router.push({
  1484. path: "/letter/letter",
  1485. query: { data: res.data },
  1486. });
  1487. } else {
  1488. res.data.activeName = "999";
  1489. this.$emit("orderEdit", res.data);
  1490. }
  1491. } else {
  1492. this.$message.error(res.msg);
  1493. }
  1494. });
  1495. },
  1496. resendData(index, row) {
  1497. this.quoteno = row.quoteno;
  1498. this.imageEcho(row.quoteno);
  1499. this.imageUploaddialogVisible = true;
  1500. },
  1501. //二维码生成插件
  1502. creatQrCode(text) {
  1503. // 查找并删除旧的二维码DOM元素
  1504. this.$refs["qrcode"].innerHTML = "";
  1505. let element = document.getElementById("qrcode");
  1506. while (element.firstChild) {
  1507. element.removeChild(element.firstChild);
  1508. }
  1509. // 创建新的QRCode实例
  1510. // this.qrcode = new QRCode("qrcode", {
  1511. this.qrcode = new QRCode(this.$refs["qrcode"], {
  1512. text: text,
  1513. width: this.qrcodeWidth,
  1514. height: this.qrcodeHeight,
  1515. colorDark: "#000000",
  1516. colorLight: "#ffffff",
  1517. correctLevel: QRCode.CorrectLevel.H,
  1518. });
  1519. },
  1520. //更新订单状态
  1521. refreshStatus(item) {
  1522. let inscompany = {
  1523. 国任财险: "updateOrderInfoGuoren",
  1524. 太平财险: "auditStatusQuery",
  1525. 泰康财险: "auditStatusQuery",
  1526. 华农财险: "auditStatusQuery",
  1527. 恒邦财险: "auditStatusQuery",
  1528. 太平洋财险: "auditStatusQuery",
  1529. 众安平安: "auditStatusQuery",
  1530. 中国人寿: "auditStatusQuery",
  1531. 人保财险: "auditStatusQuery",
  1532. 安盛天平: "auditStatusQuery",
  1533. 紫金财险: "auditStatusQueryZijin",
  1534. 渤海财险: "orderStatusbohai",
  1535. 阳光财险: "yangGuangproposalStatusQuery",
  1536. 大地财险: "auditStatusQuery"
  1537. };
  1538. Object.keys(inscompany).forEach((val) => {
  1539. if (val == item.inscompany) {
  1540. this.$api.letter[inscompany[val]]({ companyId: item.id }).then(
  1541. (res) => {
  1542. if (res.code == 200) {
  1543. this.$message({
  1544. message: res.msg ? res.msg : "已刷新状态",
  1545. type: "success",
  1546. });
  1547. this.findPage();
  1548. } else {
  1549. this.$message({
  1550. showClose: true,
  1551. dangerouslyUseHTMLString: true,
  1552. message: res.msg.replace(/\n/g, "<br><br>"),
  1553. type: "error",
  1554. duration: 7000,
  1555. });
  1556. // this.$message({ message: res.msg, type: "error" });
  1557. }
  1558. }
  1559. );
  1560. }
  1561. });
  1562. if (item.inscompany == "永诚财险") {
  1563. this.$api.letter.orderStatusyongcheng(item.id).then((res) => {
  1564. if (res.code == 200) {
  1565. this.$message({
  1566. message: res.msg ? res.msg : "已刷新状态",
  1567. type: "success",
  1568. });
  1569. this.findPage();
  1570. } else {
  1571. this.$message({
  1572. showClose: true,
  1573. dangerouslyUseHTMLString: true,
  1574. message: res.msg.replace(/\n/g, "<br><br>"),
  1575. type: "error",
  1576. duration: 7000,
  1577. });
  1578. }
  1579. });
  1580. }
  1581. if (item.inscompany == "华泰财险") {
  1582. let HtApiType =
  1583. item.apiType == 2 ? "auditStatusQuery" : "orderStatushuatai";
  1584. this.$api.letter[HtApiType]({ companyId: item.id }).then((res) => {
  1585. if (res.code == 200) {
  1586. this.$message({
  1587. message: res.msg ? res.msg : "已刷新状态",
  1588. type: "success",
  1589. });
  1590. this.findPage();
  1591. } else {
  1592. this.$message({
  1593. showClose: true,
  1594. dangerouslyUseHTMLString: true,
  1595. message: res.msg.replace(/\n/g, "<br><br>"),
  1596. type: "error",
  1597. duration: 7000,
  1598. });
  1599. }
  1600. });
  1601. }
  1602. if (item.inscompany == "大家财险") {
  1603. let HtApiType =
  1604. item.apiType == 2 ? "auditStatusQuery" : "updateOrderInfoDajia";
  1605. this.$api.letter[HtApiType]({ companyId: item.id }).then((res) => {
  1606. if (res.code == 200) {
  1607. this.$message({
  1608. message: res.msg ? res.msg : "已刷新状态",
  1609. type: "success",
  1610. });
  1611. this.findPage();
  1612. } else {
  1613. this.$message({
  1614. showClose: true,
  1615. dangerouslyUseHTMLString: true,
  1616. message: res.msg.replace(/\n/g, "<br><br>"),
  1617. type: "error",
  1618. duration: 7000,
  1619. });
  1620. }
  1621. });
  1622. }
  1623. // 诚泰财险: "auditStatusQuery",
  1624. if (item.inscompany == "诚泰财险") {
  1625. let ZMApiType =
  1626. item.apiType == 2 ? "auditStatusQuery" : "orderStatuschengtai";
  1627. this.$api.letter[ZMApiType]({ companyId: item.id }).then((res) => {
  1628. if (res.code == 200) {
  1629. this.$message({
  1630. message: res.msg ? res.msg : "已刷新状态",
  1631. type: "success",
  1632. });
  1633. this.findPage();
  1634. } else {
  1635. this.$message({
  1636. showClose: true,
  1637. dangerouslyUseHTMLString: true,
  1638. message: res.msg.replace(/\n/g, "<br><br>"),
  1639. type: "error",
  1640. duration: 7000,
  1641. });
  1642. }
  1643. });
  1644. }
  1645. // 中煤财险: "orderStatuszhongmei",
  1646. if (item.inscompany == "中煤财险") {
  1647. let ZMApiType =
  1648. item.apiType == 2 ? "auditStatusQuery" : "orderStatuszhongmei";
  1649. this.$api.letter[ZMApiType]({ companyId: item.id }).then((res) => {
  1650. if (res.code == 200) {
  1651. this.$message({
  1652. message: res.msg ? res.msg : "已刷新状态",
  1653. type: "success",
  1654. });
  1655. this.findPage();
  1656. } else {
  1657. this.$message({
  1658. showClose: true,
  1659. dangerouslyUseHTMLString: true,
  1660. message: res.msg.replace(/\n/g, "<br><br>"),
  1661. type: "error",
  1662. duration: 7000,
  1663. });
  1664. }
  1665. });
  1666. }
  1667. if (item.inscompany == "紫金财险") {
  1668. let ZJApiType =
  1669. item.apiType == 2 ? "auditStatusQuery" : "auditStatusQueryZijin";
  1670. this.$api.letter[ZJApiType]({ companyId: item.id }).then((res) => {
  1671. if (res.code == 200) {
  1672. this.$message({
  1673. message: res.msg ? res.msg : "已刷新状态",
  1674. type: "success",
  1675. });
  1676. this.findPage();
  1677. } else {
  1678. this.$message({
  1679. showClose: true,
  1680. dangerouslyUseHTMLString: true,
  1681. message: res.msg.replace(/\n/g, "<br><br>"),
  1682. type: "error",
  1683. duration: 7000,
  1684. });
  1685. }
  1686. });
  1687. }
  1688. },
  1689. //华泰刷新核保状态
  1690. updateStatusHuatai(item) {
  1691. let HtApiType =
  1692. item.apiType == 2 ? "auditStatusQuery" : "orderStatushuatai";
  1693. this.$api.letter[HtApiType]({ companyId: item.id }).then((res) => {
  1694. if (res.code == 200) {
  1695. this.$message({
  1696. message: res.msg ? res.msg : "已刷新状态",
  1697. type: "success",
  1698. });
  1699. this.findPage();
  1700. } else {
  1701. this.$message({
  1702. showClose: true,
  1703. dangerouslyUseHTMLString: true,
  1704. message: res.msg.replace(/\n/g, "<br><br>"),
  1705. type: "error",
  1706. duration: 7000,
  1707. });
  1708. }
  1709. });
  1710. },
  1711. //查询缴费状态
  1712. querystatus(item, index) {
  1713. this.querystatusLoaing = true;
  1714. let inscompany = {
  1715. 国任财险: "updateOrderInfoGuoren",
  1716. 大家财险: "updateOrderInfoDajia",
  1717. 紫金财险: "getOrderDetail",
  1718. 渤海财险: "getOrderDetailboHai",
  1719. 平安财险: "getDocumentStatusList",
  1720. 阳光财险: "yangGuangproposalStatusQuery",
  1721. };
  1722. Object.keys(inscompany).forEach((val) => {
  1723. if (val == item.inscompany) {
  1724. this.$api.letter[inscompany[val]]({ companyId: item.id }).then(
  1725. (res) => {
  1726. if (res.code == 200) {
  1727. this.$message({
  1728. message: res.msg ? res.msg : "已刷新状态",
  1729. type: "success",
  1730. });
  1731. this.quotationhistorydialogVisible
  1732. ? this.RadioHistoryChange()
  1733. : "";
  1734. this.findPage();
  1735. this.querystatusLoaing = false;
  1736. } else {
  1737. this.querystatusLoaing = false;
  1738. this.$message({ message: res.msg, type: "error" });
  1739. }
  1740. }
  1741. );
  1742. }
  1743. });
  1744. if (item.inscompany == "永诚财险") {
  1745. this.$api.letter.orderStatusyongcheng(item.id).then((res) => {
  1746. if (res.code == 200) {
  1747. this.$message({
  1748. message: res.msg ? res.msg : "已刷新状态",
  1749. type: "success",
  1750. });
  1751. this.quotationhistorydialogVisible ? this.RadioHistoryChange() : "";
  1752. this.findPage();
  1753. this.querystatusLoaing = false;
  1754. } else {
  1755. this.querystatusLoaing = false;
  1756. this.$message({ message: res.msg, type: "error" });
  1757. }
  1758. });
  1759. }
  1760. if (item.inscompany == "华泰财险") {
  1761. let HtApiType =
  1762. item.apiType == 2 ? "pychonverifyPayment" : "updateOrderInfoHuatai";
  1763. this.$api.letter[HtApiType]({
  1764. [item.apiType == 2 ? "subOrderNo" : "companyId"]: item.id,
  1765. }).then((res) => {
  1766. if (res.code == 200) {
  1767. this.$message({
  1768. message: res.msg ? res.msg : "已刷新状态",
  1769. type: "success",
  1770. });
  1771. this.quotationhistorydialogVisible ? this.RadioHistoryChange() : "";
  1772. this.findPage();
  1773. this.querystatusLoaing = false;
  1774. } else {
  1775. this.querystatusLoaing = false;
  1776. this.$message({ message: res.msg, type: "error" });
  1777. }
  1778. });
  1779. }
  1780. if (item.inscompany == "大家财险") {
  1781. let DJApiType =
  1782. item.apiType == 2 ? "pychonverifyPayment" : "updateOrderInfoDajia";
  1783. this.$api.letter[DJApiType]({
  1784. [item.apiType == 2 ? "subOrderNo" : "companyId"]: item.id,
  1785. }).then((res) => {
  1786. if (res.code == 200) {
  1787. this.$message({
  1788. message: res.msg ? res.msg : "已刷新状态",
  1789. type: "success",
  1790. });
  1791. this.quotationhistorydialogVisible ? this.RadioHistoryChange() : "";
  1792. this.findPage();
  1793. this.querystatusLoaing = false;
  1794. } else {
  1795. this.querystatusLoaing = false;
  1796. this.$message({ message: res.msg, type: "error" });
  1797. }
  1798. });
  1799. }
  1800. // item.inscompany == "诚泰财险" ||
  1801. if (item.inscompany == "诚泰财险") {
  1802. // 中煤财险: "paymentEnquiry",
  1803. let CtApiType =
  1804. item.apiType == 2 ? "pychonverifyPayment" : "getOrderDetailchengtai";
  1805. this.$api.letter[CtApiType]({
  1806. [item.apiType == 2 ? "subOrderNo" : "companyId"]: item.id,
  1807. }).then((res) => {
  1808. if (res.code == 200) {
  1809. this.$message({
  1810. message: res.msg ? res.msg : "已刷新状态",
  1811. type: "success",
  1812. });
  1813. this.quotationhistorydialogVisible ? this.RadioHistoryChange() : "";
  1814. this.findPage();
  1815. this.querystatusLoaing = false;
  1816. } else {
  1817. this.querystatusLoaing = false;
  1818. this.$message({ message: res.msg, type: "error" });
  1819. }
  1820. });
  1821. }
  1822. if (item.inscompany == "中煤财险") {
  1823. // 中煤财险: "paymentEnquiry",
  1824. let ZMApiType =
  1825. item.apiType == 2 ? "pychonverifyPayment" : "paymentEnquiry";
  1826. this.$api.letter[ZMApiType]({
  1827. [item.apiType == 2 ? "subOrderNo" : "companyId"]: item.id,
  1828. }).then((res) => {
  1829. if (res.code == 200) {
  1830. this.$message({
  1831. message: res.msg ? res.msg : "已刷新状态",
  1832. type: "success",
  1833. });
  1834. this.quotationhistorydialogVisible ? this.RadioHistoryChange() : "";
  1835. this.findPage();
  1836. this.querystatusLoaing = false;
  1837. } else {
  1838. this.querystatusLoaing = false;
  1839. this.$message({ message: res.msg, type: "error" });
  1840. }
  1841. });
  1842. }
  1843. if (item.inscompany == "紫金财险") {
  1844. // 中煤财险: "paymentEnquiry",
  1845. let ZJApiType =
  1846. item.apiType == 2 ? "pychonverifyPayment" : "getOrderDetail";
  1847. this.$api.letter[ZJApiType]({
  1848. [item.apiType == 2 ? "subOrderNo" : "companyId"]: item.id,
  1849. }).then((res) => {
  1850. if (res.code == 200) {
  1851. this.$message({
  1852. message: res.msg ? res.msg : "已刷新状态",
  1853. type: "success",
  1854. });
  1855. this.quotationhistorydialogVisible ? this.RadioHistoryChange() : "";
  1856. this.findPage();
  1857. this.querystatusLoaing = false;
  1858. } else {
  1859. this.querystatusLoaing = false;
  1860. this.$message({ message: res.msg, type: "error" });
  1861. }
  1862. });
  1863. }
  1864. if (
  1865. item.inscompany == "恒邦财险" ||
  1866. item.inscompany == "太平洋财险" ||
  1867. item.inscompany == "众安平安" ||
  1868. item.inscompany == "中国人寿" ||
  1869. item.inscompany == "人保财险" ||
  1870. item.inscompany == "安盛天平" ||
  1871. item.inscompany == "太平财险" ||
  1872. item.inscompany == "泰康财险" ||
  1873. item.inscompany == "华农财险" ||
  1874. item.inscompany == "华安财险" ||
  1875. item.inscompany == "泰山财险" ||
  1876. item.inscompany == "永安财险"
  1877. ) {
  1878. this.$api.letter
  1879. .pychonverifyPayment({ subOrderNo: item.id })
  1880. .then((res) => {
  1881. if (res.code == "200") {
  1882. this.$message({
  1883. message: "订单支付成功,正在更改状态",
  1884. type: "success",
  1885. });
  1886. this.quotationhistorydialogVisible
  1887. ? this.RadioHistoryChange()
  1888. : "";
  1889. this.findPage();
  1890. this.querystatusLoaing = false;
  1891. } else {
  1892. this.querystatusLoaing = false;
  1893. this.$message({ message: res.msg, type: "error" });
  1894. }
  1895. });
  1896. }
  1897. },
  1898. cancelorder(item) {
  1899. if (item.inscompany == "紫金财险") {
  1900. this.$api.letter
  1901. .zijincancelorder({ companyId: item.id })
  1902. .then((res) => {
  1903. if (res.code == 200) {
  1904. this.$message({
  1905. message: res.msg,
  1906. type: "success",
  1907. });
  1908. this.findPage();
  1909. }
  1910. });
  1911. } else if (item.inscompany == "诚泰财险") {
  1912. this.$api.letter
  1913. .chengtaicancelorder({ companyId: item.id })
  1914. .then((res) => {
  1915. if (res.code == 200) {
  1916. this.$message({
  1917. message: res.msg,
  1918. type: "success",
  1919. });
  1920. this.findPage();
  1921. }
  1922. });
  1923. } else if (item.inscompany == "阳光财险") {
  1924. this.$api.letter
  1925. .yangGuangautoWriteOff({ companyId: item.id })
  1926. .then((res) => {
  1927. if (res.code == 200) {
  1928. this.$message({
  1929. message: res.msg,
  1930. type: "success",
  1931. });
  1932. this.findPage();
  1933. }
  1934. });
  1935. }
  1936. },
  1937. //二维码
  1938. carcode(item) {
  1939. this.apiType = item.apiType;
  1940. this.$api.letter.getQrCode(item.id).then((res) => {
  1941. if (res.code == "200") {
  1942. this.inscompany = res.data.inscompany; //保险公司
  1943. this.sumpremium = res.data.sumpremium; //总价
  1944. this.licenseNo = res.data.cPlateNo; //车牌号
  1945. this.applyName = res.data.cApplyNme; //车主
  1946. this.jqpremium = res.data.jqpremium; //交强
  1947. this.sypremium = res.data.sypremium; //商业
  1948. this.taxamount = res.data.taxamount; //车船税
  1949. this.jypremium = res.data.jypremium; //驾意险
  1950. this.jqstartdate = res.data.jqStartDate; //交强起保日期
  1951. this.systartdate = res.data.syStartDate; //商业起保日期
  1952. // this.mobile = res.data.applyinfo.mobile;//投保人手机号
  1953. let qrCodeUrl = res.data.qrCodeUrl;
  1954. this.$api.letter.getThemeByUserId(this.userIdPor).then((res) => {
  1955. if (res.code == 200) {
  1956. if (res.data[0] == "GD") {
  1957. this.codedialogVisiblePro = true;
  1958. this.qrcodeWidth = "154";
  1959. this.qrcodeHeight = "154";
  1960. } else {
  1961. this.codedialogVisible = true;
  1962. }
  1963. this.$nextTick(function () {
  1964. this.creatQrCode(qrCodeUrl);
  1965. });
  1966. }
  1967. });
  1968. } else {
  1969. this.$message({ message: res.msg, type: "warning" });
  1970. }
  1971. });
  1972. // this.$api.letter.getByCompanyId(params).then(res => {
  1973. // if (res.code == '200') {
  1974. // this.inscompany = res.data.inscompany;//保险公司
  1975. // this.sumpremium = res.data.sumpremium;//总价
  1976. // this.licenseNo = res.data.carinfo.licenseNo;//车牌号
  1977. // this.applyName = res.data.insuredname;//车主
  1978. // this.jqpremium = res.data.jqpremium;//交强
  1979. // this.sypremium = res.data.sypremium;//商业
  1980. // this.taxamount = res.data.taxamount;//车船税
  1981. // this.jypremium = res.data.jypremium;//驾意险
  1982. // this.jqstartdate = res.data.jqstartdate;//交强起保日期
  1983. // this.systartdate = res.data.systartdate;//商业起保日期
  1984. // this.mobile = res.data.applyinfo.mobile;//投保人手机号
  1985. // switch (item.inscompany) {
  1986. // case "永安财险":
  1987. // let url = this.global.h5BaseUrl + '/#/pages/carInsure1/yonganCode?companyId=' + item.id + '&mobile=' + this.mobile;
  1988. // this.$nextTick(() => {
  1989. // this.creatQrCode(url);
  1990. // });
  1991. // break;
  1992. // case "人保财险":
  1993. // case "中煤财险":
  1994. // case "华泰财险":
  1995. // case "永诚财险":
  1996. // case "紫金财险":
  1997. // this.$nextTick(() => {
  1998. // this.creatQrCode(res.data.paymentLink);
  1999. // });
  2000. // break;
  2001. // case "众安平安":
  2002. // this.paycodeimg = res.data.paymentLink;
  2003. // break;
  2004. // case "中国人寿":
  2005. // this.$nextTick(() => {
  2006. // this.creatQrCode(res.data.paymentLink);
  2007. // });
  2008. // break;
  2009. // case "恒邦财险":
  2010. // this.paycodeimg = res.data.paymentLink;
  2011. // break;
  2012. // case "国任财险":
  2013. // this.paycodeimg = res.data.paymentLink;
  2014. // break;
  2015. // case "安盛天平":
  2016. // let anresult = res.data.paymentLink.replace(/[\r\n]/g, "");
  2017. // let animgBase64 = `data:image/png;base64,${anresult}`;
  2018. // base64ToPath(animgBase64)
  2019. // .then(path => {
  2020. // this.paycodeimg = path;
  2021. // })
  2022. // break;
  2023. // default:
  2024. // this.$message({ message: "识别不到保险公司,请检查", type: "warning" })
  2025. // }
  2026. // this.codedialogVisible = true;
  2027. // } else {
  2028. // this.$message({ message: res.msg, type: "warning" })
  2029. // }
  2030. // })
  2031. },
  2032. signature(row) {
  2033. this.$api.letter.pingAnsignEleApply({ companyId: row.id }).then((res) => {
  2034. if (res.code == 200 && res.data) {
  2035. this.resultMessageImg = process.env.BASE_URL + res.data.resultMessage;
  2036. this.signaturedialogVisible = true;
  2037. // 查找并删除旧的二维码DOM元素
  2038. // let element = document.getElementById("signaturecode");
  2039. // while (element.firstChild) {
  2040. // element.removeChild(element.firstChild);
  2041. // }
  2042. // this.signaturecode = new QRCode("signaturecode", {
  2043. // text: resultMessage,
  2044. // width: 180,
  2045. // height: 180,
  2046. // colorDark: "#000000",
  2047. // colorLight: "#ffffff",
  2048. // correctLevel: QRCode.CorrectLevel.H,
  2049. // });
  2050. } else {
  2051. this.$message({
  2052. message: res.msg || "暂无数据!",
  2053. type: "warning",
  2054. });
  2055. }
  2056. });
  2057. },
  2058. orderTrajectory(row, item) {
  2059. this.$api.letter.queryBySuborderDetails(item.id).then((res) => {
  2060. if (res.code == 200 && res.data.length > 0) {
  2061. this.ddgjdialogVisible = true;
  2062. this.trajectoryTable = res.data;
  2063. } else {
  2064. this.$message({
  2065. message: res.msg || "暂无数据!",
  2066. type: "warning",
  2067. });
  2068. }
  2069. });
  2070. },
  2071. capTypedictTag(val, option) {
  2072. if (option.find((item) => item.dictValue == val)) {
  2073. return option.find((item) => item.dictValue == val).dictTag;
  2074. } else {
  2075. return "-";
  2076. }
  2077. },
  2078. //补录订单
  2079. supplementOrder(item) {
  2080. let params = {
  2081. companyId: item.id,
  2082. };
  2083. this.$api.letter.getByCompanyId(params).then((res) => {
  2084. if (res.code == "200") {
  2085. this.$router.push({
  2086. path: "/task/external/externalOrders",
  2087. query: { data: res.data },
  2088. });
  2089. }
  2090. })
  2091. },
  2092. //应用详情
  2093. OrderDetails(dy, item) {
  2094. console.log(dy, item);
  2095. this.carImageList = [];
  2096. this.ownerImageList = []; //车主影像
  2097. this.policyImageList = []; //投保人影像
  2098. this.insuredImageList = []; //被保人影像
  2099. this.carCheckImageList = []; //验车照影像
  2100. // 影像控制
  2101. this.pic1Control = false;
  2102. this.pic2Control = false;
  2103. this.pic3Control = false;
  2104. this.pic4Control = false;
  2105. this.pic5Control = false;
  2106. for (let i = 0; i < this.global.insureList.length; i++) {
  2107. this.global.insureList[i].coveragePremium = "";
  2108. this.global.insureList[i].amount = 0;
  2109. }
  2110. let params = {
  2111. companyId: item.id,
  2112. };
  2113. this.$api.letter.getByCompanyId(params).then((res) => {
  2114. if (res.code == 200) {
  2115. this.licenseNo = res.data.licenseno; //车牌号
  2116. this.inscompany = res.data.inscompany; //保险公司
  2117. // res.data.carinfo.carnature = this.natureOfVehicleUseCap(
  2118. // res.data.carinfo.carnature
  2119. // );
  2120. if (
  2121. (res.data.carinfo.carnature &&
  2122. res.data.carinfo.carnature == "02") ||
  2123. res.data.carinfo.carnature == "非营业"
  2124. ) {
  2125. res.data.carinfo.vehicleUse = this.capTypedictTag(
  2126. res.data.carinfo.vehicleUse,
  2127. this.outOfBusinessVehicleUseoptions
  2128. );
  2129. } else {
  2130. res.data.carinfo.vehicleUse = this.capTypedictTag(
  2131. res.data.carinfo.vehicleUse,
  2132. this.businessVehicleUseoptions
  2133. );
  2134. }
  2135. res.data.carinfo.carnature = this.capTypedictTag(
  2136. res.data.carinfo.carnature,
  2137. this.natureOfVehicleUseoptions
  2138. );
  2139. res.data.carinfo.cartype = res.data.carinfo.cartype
  2140. ? this.capTypedictTag(
  2141. res.data.carinfo.cartype,
  2142. this.trafficManagementVehicleTypeoptions
  2143. )
  2144. : "";
  2145. res.data.carinfo.cimodelclass = res.data.carinfo.cimodelclass
  2146. ? this.capTypedictTag(
  2147. res.data.carinfo.cimodelclass,
  2148. this.vehicleTypeoptions
  2149. )
  2150. : "";
  2151. res.data.carinfo.energyType = res.data.carinfo.energyType
  2152. ? this.capTypedictTag(
  2153. res.data.carinfo.energyType,
  2154. this.energyTypeoptions
  2155. )
  2156. : "";
  2157. if (res.data.accidentInfo) {
  2158. res.data.accidentInfo.constructor === Object
  2159. ? [res.data.accidentInfo]
  2160. : res.data.accidentInfo;
  2161. }
  2162. Object.assign(this.orderInfo, res.data);
  2163. if (this.orderInfo.riskinfo && this.orderInfo.riskinfo.length > 0) {
  2164. for (let i = 0; i < this.orderInfo.riskinfo.length; i++) {
  2165. if (this.orderInfo.riskinfo[i].riskCode == "0510") {
  2166. for (let j = 0; j < this.orderInfo.kindinfo.length; j++) {
  2167. for (let m = 0; m < this.global.insureList.length; m++) {
  2168. if (
  2169. this.orderInfo.kindinfo[j].kindCode ==
  2170. this.global.insureList[m].kindCode
  2171. ) {
  2172. this.global.insureList[m].coveragePremium =
  2173. this.orderInfo.kindinfo[j].coveragePremium;
  2174. if (this.orderInfo.kindinfo[j].kindCode == "B") {
  2175. this.global.insureList[9].amtList[0].value =
  2176. this.orderInfo.kindinfo[j].amount;
  2177. }
  2178. if (this.orderInfo.kindinfo[j].kindCode == "A") {
  2179. this.global.insureList[m].amount = "1";
  2180. } else if (this.global.insureList[m].kindCode == "D4") {
  2181. this.global.insureList[m].amount =
  2182. this.orderInfo.kindinfo[j].unitAmount;
  2183. } else if (
  2184. this.global.insureList[m].isMainRisk ||
  2185. this.global.insureList[m].kindCode == "BD" ||
  2186. this.global.insureList[m].kindCode == "L"
  2187. ) {
  2188. this.global.insureList[m].amount =
  2189. this.orderInfo.kindinfo[j].amount;
  2190. } else {
  2191. this.global.insureList[m].amount =
  2192. this.orderInfo.kindinfo[j].deductibleRate;
  2193. }
  2194. }
  2195. }
  2196. }
  2197. }
  2198. }
  2199. }
  2200. // 获取影像
  2201. this.$api.letter.findByQuoteNo(dy.quoteno).then((resImage) => {
  2202. Object.keys(resImage.data).forEach((keys) => {
  2203. if (resImage.data[keys]) {
  2204. resImage.data[keys].url = resImage.data[keys].url
  2205. ? process.env.BASE_URL + resImage.data[keys].url
  2206. : null;
  2207. switch (keys) {
  2208. case "C01":
  2209. case "D01":
  2210. resImage.data[keys].url
  2211. ? this.carImageList.push(resImage.data[keys].url)
  2212. : "";
  2213. break;
  2214. case "C02":
  2215. case "D02":
  2216. resImage.data[keys].url
  2217. ? this.ownerImageList.push(resImage.data[keys].url)
  2218. : "";
  2219. break;
  2220. case "C03":
  2221. case "D03":
  2222. resImage.data[keys].url
  2223. ? this.policyImageList.push(resImage.data[keys].url)
  2224. : "";
  2225. break;
  2226. case "C04":
  2227. case "D04":
  2228. resImage.data[keys].url
  2229. ? this.insuredImageList.push(resImage.data[keys].url)
  2230. : "";
  2231. break;
  2232. case "XC00":
  2233. case "GC00":
  2234. case "GX00":
  2235. resImage.data[keys].url
  2236. ? this.carCheckImageList.push(resImage.data[keys].url)
  2237. : "";
  2238. break;
  2239. default:
  2240. break;
  2241. }
  2242. }
  2243. });
  2244. let obj = {
  2245. carImageList: this.carImageList,
  2246. ownerImageList: this.ownerImageList,
  2247. policyImageList: this.policyImageList,
  2248. insuredImageList: this.insuredImageList,
  2249. carCheckImageList: this.carCheckImageList,
  2250. };
  2251. this.$refs.detailsDialog.imageFun(obj);
  2252. });
  2253. this.pic1Control = false;
  2254. this.pic2Control = false;
  2255. this.pic3Control = false;
  2256. this.pic4Control = false;
  2257. this.pic5Control = false;
  2258. this.oldfileList = [];
  2259. let businessList = [];
  2260. let accidentList = [];
  2261. if (res.data.orderstatus == "3") {
  2262. /**
  2263. if (res.data.isExternal == 1) {
  2264. this.$api.letter
  2265. .getPolicyPrintexternalOrder(res.data.id)
  2266. .then((res1) => {
  2267. if (res1.code == 200) {
  2268. if (res1.data.jqPolicy) {
  2269. this.oldfileList.push({
  2270. fileTitle: "交强电子保单",
  2271. filename: this.orderInfo.jqpolicyno,
  2272. fileurl: res1.data.jqPolicy,
  2273. });
  2274. }
  2275. if (res1.data.jqSign) {
  2276. this.oldfileList.push({
  2277. fileTitle: "交强电子标志",
  2278. filename: this.orderInfo.jqpolicyno,
  2279. fileurl: res1.data.jqSign,
  2280. });
  2281. }
  2282. if (res1.data.syPolicy) {
  2283. businessList.push({
  2284. fileTitle: "商业电子保单",
  2285. filename: "商业电子保单",
  2286. fileurl: res1.data.syPolicy,
  2287. });
  2288. }
  2289. if (res1.data.noPolicy) {
  2290. accidentList.push({
  2291. fileTitle: "驾意险保单",
  2292. filename: "驾意险保单",
  2293. fileurl: res1.data.noPolicy,
  2294. });
  2295. }
  2296. } else {
  2297. this.$message.error(res1.msg);
  2298. }
  2299. });
  2300. } else {
  2301. switch (res.data.inscompany) {
  2302. case "永安财险":
  2303. if (this.orderInfo.jqpolicyno) {
  2304. this.$api.letter
  2305. .getPolicyPrint({
  2306. companyId: item.id,
  2307. policytype: "jq",
  2308. })
  2309. .then((res) => {
  2310. //交强保单
  2311. if (res.data) {
  2312. let result = res.data.replace(/[\r\n]/g, "");
  2313. let pdfBase64 = `data:application/pdf;base64,${result}`;
  2314. base64ToPath(pdfBase64).then((path) => {
  2315. if (path) {
  2316. this.oldfileList.push({
  2317. fileTitle: "交强电子保单",
  2318. filename: this.orderInfo.jqpolicyno,
  2319. fileurl: path,
  2320. });
  2321. }
  2322. });
  2323. }
  2324. });
  2325. this.$api.letter
  2326. .getPolicyPrint2({
  2327. companyId: item.id,
  2328. policytype: "jq",
  2329. })
  2330. .then((res) => {
  2331. //交强保单
  2332. if (res.data) {
  2333. let result = res.data.replace(/[\r\n]/g, "");
  2334. let pdfBase64 = `data:application/pdf;base64,${result}`;
  2335. base64ToPath(pdfBase64).then((path) => {
  2336. if (path) {
  2337. this.oldfileList.push({
  2338. fileTitle: "交强电子标志",
  2339. filename: this.orderInfo.jqpolicyno,
  2340. fileurl: path,
  2341. });
  2342. }
  2343. });
  2344. }
  2345. });
  2346. }
  2347. if (this.orderInfo.sypolicyno) {
  2348. this.$api.letter
  2349. .getPolicyPrint({
  2350. companyId: item.id,
  2351. policytype: "sy",
  2352. })
  2353. .then((res) => {
  2354. //商业保单
  2355. if (res.data) {
  2356. let result = res.data.replace(/[\r\n]/g, "");
  2357. let pdfBase64 = `data:application/pdf;base64,${result}`;
  2358. base64ToPath(pdfBase64).then((path) => {
  2359. if (path) {
  2360. businessList.push({
  2361. fileTitle: "商业电子保单",
  2362. filename: this.orderInfo.sypolicyno,
  2363. fileurl: path,
  2364. });
  2365. }
  2366. });
  2367. }
  2368. });
  2369. }
  2370. break;
  2371. case "华泰财险":
  2372. switch (item.apiType) {
  2373. case 1:
  2374. if (this.orderInfo.jqpolicyno) {
  2375. this.$api.letter
  2376. .HuataigetPolicyPrint({
  2377. companyId: item.id,
  2378. riskCode: "0507",
  2379. type: "2", //2:保单
  2380. })
  2381. .then((res) => {
  2382. if (res.data) {
  2383. if (res.data.jqxPolicyUrl) {
  2384. this.oldfileList.push({
  2385. fileTitle: "交强电子保单",
  2386. filename: this.orderInfo.jqpolicyno,
  2387. fileurl: res.data.jqxPolicyUrl,
  2388. });
  2389. }
  2390. if (res.data.jqxFlagUrl) {
  2391. this.oldfileList.push({
  2392. fileTitle: "交强电子标志",
  2393. filename: this.orderInfo.jqpolicyno,
  2394. fileurl: res.data.jqxFlagUrl,
  2395. });
  2396. }
  2397. } else {
  2398. this.$message.error(res.msg);
  2399. }
  2400. });
  2401. }
  2402. if (this.orderInfo.sypolicyno) {
  2403. this.$api.letter
  2404. .HuataigetPolicyPrint({
  2405. companyId: item.id,
  2406. riskCode: "0510",
  2407. type: "2", //2:保单
  2408. })
  2409. .then((res) => {
  2410. if (res.data && res.data.syxPolicyUrl) {
  2411. businessList.push({
  2412. fileTitle: "商业电子保单",
  2413. filename: this.orderInfo.sypolicyno,
  2414. fileurl: res.data.syxPolicyUrl,
  2415. });
  2416. } else {
  2417. this.$message.error(res.msg);
  2418. }
  2419. });
  2420. }
  2421. break;
  2422. case 2:
  2423. if (
  2424. this.orderInfo.jqpolicyno ||
  2425. this.orderInfo.sypolicyno
  2426. ) {
  2427. this.$api.letter
  2428. .pythongetPolicyPrint({
  2429. subOrderNo: item.id,
  2430. })
  2431. .then((res) => {
  2432. if (res.code == 200 && res.data) {
  2433. if (res.data.jqxPolicyUrl) {
  2434. this.oldfileList.push({
  2435. fileTitle: "交强电子保单",
  2436. filename: this.orderInfo.jqpolicyno,
  2437. fileurl: res.data.jqxPolicyUrl,
  2438. });
  2439. }
  2440. if (res.data.jqxFlagUrl) {
  2441. this.oldfileList.push({
  2442. fileTitle: "交强电子标志",
  2443. filename: this.orderInfo.jqpolicyno,
  2444. fileurl: res.data.jqxFlagUrl,
  2445. });
  2446. }
  2447. if (res.data.syxPolicyUrl) {
  2448. businessList.push({
  2449. fileTitle: "商业电子保单",
  2450. filename: this.orderInfo.sypolicyno,
  2451. fileurl: res.data.syxPolicyUrl,
  2452. });
  2453. }
  2454. if (
  2455. res.data.jyxInfoList &&
  2456. res.data.jyxInfoList.length > 0
  2457. ) {
  2458. res.data.jyxInfoList.forEach((val) => {
  2459. accidentList.push({
  2460. fileTitle: "驾意险保单",
  2461. filename: "驾意险保单",
  2462. fileurl: val.jyx_policy_url,
  2463. });
  2464. });
  2465. }
  2466. } else {
  2467. this.$message.error(res.msg);
  2468. }
  2469. });
  2470. }
  2471. break;
  2472. }
  2473. break;
  2474. case "中煤财险":
  2475. switch (item.apiType) {
  2476. case 1:
  2477. if (this.orderInfo.jqpolicyno) {
  2478. this.$api.letter
  2479. .ZhongmeigetPolicyPrint({
  2480. companyId: item.id,
  2481. riskCode: "0507",
  2482. type: "2", //2:保单
  2483. })
  2484. .then((res) => {
  2485. if (res.data && res.data[0]) {
  2486. this.oldfileList.push({
  2487. fileTitle: "交强电子保单",
  2488. filename: this.orderInfo.jqpolicyno,
  2489. fileurl: res.data[0],
  2490. });
  2491. } else {
  2492. this.$message.error(res.msg);
  2493. }
  2494. });
  2495. this.$api.letter
  2496. .ZhongmeigetPolicyPrint({
  2497. companyId: item.id,
  2498. riskCode: "0507",
  2499. type: "1", // 1:标志
  2500. })
  2501. .then((res) => {
  2502. if (res.data && res.data[0]) {
  2503. this.oldfileList.push({
  2504. fileTitle: "交强电子标志",
  2505. filename: this.orderInfo.jqpolicyno,
  2506. fileurl: res.data[0],
  2507. });
  2508. } else {
  2509. this.$message.error(res.msg);
  2510. }
  2511. });
  2512. }
  2513. if (this.orderInfo.sypolicyno) {
  2514. this.$api.letter
  2515. .ZhongmeigetPolicyPrint({
  2516. companyId: item.id,
  2517. riskCode: "0510",
  2518. type: "2", //2:保单
  2519. })
  2520. .then((res) => {
  2521. if (res.data && res.data[0]) {
  2522. businessList.push({
  2523. fileTitle: "商业电子保单",
  2524. filename: this.orderInfo.sypolicyno,
  2525. fileurl: res.data[0],
  2526. });
  2527. } else {
  2528. this.$message.error(res.msg);
  2529. }
  2530. });
  2531. }
  2532. if (this.orderInfo.crossInsurance.length > 0) {
  2533. this.orderInfo.crossInsurance.map((ele) => {
  2534. this.$api.letter
  2535. .ZhongmeigetPolicyPrint({
  2536. ridePolicyNo: ele.ridePolicyNo,
  2537. companyId: item.id,
  2538. riskCode: "0513",
  2539. type: "2", //2:保单
  2540. })
  2541. .then((res) => {
  2542. if (res.code == 200 && res.data) {
  2543. accidentList.push({
  2544. fileTitle: "驾意险保单",
  2545. filename: this.orderInfo.sypolicyno,
  2546. fileurl: res.data[0],
  2547. });
  2548. } else {
  2549. this.$message.error(res.msg);
  2550. }
  2551. });
  2552. });
  2553. }
  2554. break;
  2555. case 2:
  2556. if (
  2557. this.orderInfo.jqpolicyno ||
  2558. this.orderInfo.sypolicyno
  2559. ) {
  2560. this.$api.letter
  2561. .pythongetPolicyPrint({
  2562. subOrderNo: item.id,
  2563. })
  2564. .then((res) => {
  2565. if (res.code == 200 && res.data) {
  2566. if (res.data.jqxPolicyUrl) {
  2567. this.oldfileList.push({
  2568. fileTitle: "交强电子保单",
  2569. filename: this.orderInfo.jqpolicyno,
  2570. fileurl: res.data.jqxPolicyUrl,
  2571. });
  2572. }
  2573. if (res.data.jqxFlagUrl) {
  2574. this.oldfileList.push({
  2575. fileTitle: "交强电子标志",
  2576. filename: this.orderInfo.jqpolicyno,
  2577. fileurl: res.data.jqxFlagUrl,
  2578. });
  2579. }
  2580. if (res.data.syxPolicyUrl) {
  2581. businessList.push({
  2582. fileTitle: "商业电子保单",
  2583. filename: this.orderInfo.sypolicyno,
  2584. fileurl: res.data.syxPolicyUrl,
  2585. });
  2586. }
  2587. if (
  2588. res.data.jyxInfoList &&
  2589. res.data.jyxInfoList.length > 0
  2590. ) {
  2591. res.data.jyxInfoList.forEach((val) => {
  2592. accidentList.push({
  2593. fileTitle: "驾意险保单",
  2594. filename: "驾意险保单",
  2595. fileurl: val.jyx_policy_url,
  2596. });
  2597. });
  2598. }
  2599. } else {
  2600. this.$message.error(res.msg);
  2601. }
  2602. });
  2603. }
  2604. break;
  2605. }
  2606. break;
  2607. case "永诚财险":
  2608. if (this.orderInfo.jqpolicyno) {
  2609. this.$api.letter
  2610. .yongchenggetPolicyPrint({
  2611. companyId: item.id,
  2612. riskCode: "0507",
  2613. type: "2", //2:保单
  2614. })
  2615. .then((res) => {
  2616. if (res.code == 200 && res.data) {
  2617. if (res.data.jqUrl) {
  2618. this.oldfileList.push({
  2619. fileTitle: "交强电子保单",
  2620. filename: this.orderInfo.jqpolicyno,
  2621. fileurl: res.data.jqUrl,
  2622. });
  2623. }
  2624. if (res.data.jqFlagUrl) {
  2625. this.oldfileList.push({
  2626. fileTitle: "交强电子标志",
  2627. filename: this.orderInfo.jqpolicyno,
  2628. fileurl: res.data.jqFlagUrl,
  2629. });
  2630. }
  2631. } else {
  2632. this.$message.error(res.msg);
  2633. }
  2634. });
  2635. }
  2636. if (this.orderInfo.sypolicyno) {
  2637. this.$api.letter
  2638. .yongchenggetPolicyPrint({
  2639. companyId: item.id,
  2640. riskCode: "0510",
  2641. type: "2", //2:保单
  2642. })
  2643. .then((res) => {
  2644. if (res.data && res.data.syUrl) {
  2645. businessList.push({
  2646. fileTitle: "商业电子保单",
  2647. filename: this.orderInfo.sypolicyno,
  2648. fileurl: res.data.syUrl,
  2649. });
  2650. } else {
  2651. this.$message.error(res.msg);
  2652. }
  2653. });
  2654. }
  2655. if (this.orderInfo.crossInsurance.length > 0) {
  2656. this.orderInfo.crossInsurance.map((ele) => {
  2657. this.$api.letter
  2658. .yongchenggetPolicyPrint({
  2659. companyId: item.id,
  2660. policyNumber: ele.policyNumber,
  2661. riskCode: "0513",
  2662. type: "2", //2:保单
  2663. })
  2664. .then((res) => {
  2665. if (res.code == 200 && res.data) {
  2666. accidentList.push({
  2667. fileTitle: "驾意险保单",
  2668. filename: ele.policyNumber,
  2669. fileurl: res.data.jyUrl,
  2670. });
  2671. } else {
  2672. this.$message.error(res.msg);
  2673. }
  2674. });
  2675. });
  2676. }
  2677. break;
  2678. case "国任财险":
  2679. if (this.orderInfo.jqpolicyno) {
  2680. this.$api.letter
  2681. .guoRengetPolicyPrint({
  2682. companyId: item.id,
  2683. riskCode: "0507",
  2684. type: "2", //2:保单
  2685. })
  2686. .then((res) => {
  2687. if (res.data) {
  2688. this.oldfileList.push({
  2689. fileTitle: "交强电子保单",
  2690. filename: this.orderInfo.jqpolicyno,
  2691. fileurl: res.data,
  2692. });
  2693. } else {
  2694. this.$message.error(res.msg);
  2695. }
  2696. });
  2697. this.$api.letter
  2698. .guoRengetPolicyPrint({
  2699. companyId: item.id,
  2700. riskCode: "0507",
  2701. type: "1", //1:标志
  2702. })
  2703. .then((res) => {
  2704. if (res.data) {
  2705. this.oldfileList.push({
  2706. fileTitle: "交强电子标志",
  2707. filename: this.orderInfo.jqpolicyno,
  2708. fileurl: res.data,
  2709. });
  2710. } else {
  2711. this.$message.error(res.msg);
  2712. }
  2713. });
  2714. }
  2715. if (this.orderInfo.sypolicyno) {
  2716. this.$api.letter
  2717. .guoRengetPolicyPrint({
  2718. companyId: item.id,
  2719. riskCode: "0510",
  2720. type: "2", //2:保单
  2721. })
  2722. .then((res) => {
  2723. if (res.data) {
  2724. businessList.push({
  2725. fileTitle: "商业电子保单",
  2726. filename: this.orderInfo.sypolicyno,
  2727. fileurl: res.data,
  2728. });
  2729. } else {
  2730. this.$message.error(res.msg);
  2731. }
  2732. });
  2733. }
  2734. if (this.orderInfo.crossInsurance.length > 0) {
  2735. this.orderInfo.crossInsurance.map((ele) => {
  2736. this.$api.letter
  2737. .guoRengetPolicyPrint({
  2738. companyId: item.id,
  2739. policyNumber: ele.policyNumber,
  2740. riskCode: "0513",
  2741. type: "2", //2:保单
  2742. })
  2743. .then((res) => {
  2744. if (res.data) {
  2745. accidentList.push({
  2746. fileTitle: "驾意险保单",
  2747. filename: ele.policyNumber,
  2748. fileurl: res.data,
  2749. });
  2750. } else {
  2751. this.$message.error(res.msg);
  2752. }
  2753. });
  2754. });
  2755. }
  2756. break;
  2757. case "紫金财险":
  2758. if (this.orderInfo.jqpolicyno) {
  2759. this.$api.letter
  2760. .zijingetPolicyPrint({
  2761. companyId: item.id,
  2762. riskCode: "0507",
  2763. type: "2", //2:保单
  2764. })
  2765. .then((res) => {
  2766. if (res.data) {
  2767. this.oldfileList.push({
  2768. fileTitle: "交强电子保单",
  2769. filename: this.orderInfo.jqpolicyno,
  2770. fileurl: res.data,
  2771. });
  2772. } else {
  2773. this.$message.error(res.msg);
  2774. }
  2775. });
  2776. this.$api.letter
  2777. .zijingetPolicyPrint({
  2778. companyId: item.id,
  2779. riskCode: "0507",
  2780. type: "1", //1:标志
  2781. })
  2782. .then((res) => {
  2783. if (res.data) {
  2784. this.oldfileList.push({
  2785. fileTitle: "交强电子标志",
  2786. filename: this.orderInfo.jqpolicyno,
  2787. fileurl: res.data,
  2788. });
  2789. } else {
  2790. this.$message.error(res.msg);
  2791. }
  2792. });
  2793. }
  2794. if (this.orderInfo.sypolicyno) {
  2795. this.$api.letter
  2796. .zijingetPolicyPrint({
  2797. companyId: item.id,
  2798. riskCode: "0510",
  2799. type: "2", //2:保单
  2800. })
  2801. .then((res) => {
  2802. if (res.data) {
  2803. businessList.push({
  2804. fileTitle: "商业电子保单",
  2805. filename: this.orderInfo.sypolicyno,
  2806. fileurl: res.data,
  2807. });
  2808. } else {
  2809. this.$message.error(res.msg);
  2810. }
  2811. });
  2812. }
  2813. if (this.orderInfo.crossInsurance.length > 0) {
  2814. this.orderInfo.crossInsurance.map((ele) => {
  2815. this.$api.letter
  2816. .zijingetPolicyPrint({
  2817. companyId: item.id,
  2818. policyNumber: ele.policyNumber,
  2819. riskCode: "0513",
  2820. type: "2", //2:保单
  2821. })
  2822. .then((res) => {
  2823. if (res.data) {
  2824. accidentList.push({
  2825. fileTitle: "驾意险保单",
  2826. filename: ele.policyNumber,
  2827. fileurl: res.data,
  2828. });
  2829. } else {
  2830. this.$message.error(res.msg);
  2831. }
  2832. });
  2833. });
  2834. }
  2835. break;
  2836. case "渤海财险":
  2837. if (this.orderInfo.jqpolicyno) {
  2838. this.$api.letter
  2839. .getPolicyPrintboHai({
  2840. companyId: item.id,
  2841. })
  2842. .then((res) => {
  2843. if (res.code == 200 && res.data) {
  2844. if (res.data.jqxPolicyUrl) {
  2845. this.oldfileList.push({
  2846. fileTitle: "交强电子保单",
  2847. filename: this.orderInfo.jqpolicyno,
  2848. fileurl: res.data.jqxPolicyUrl,
  2849. });
  2850. }
  2851. if (res.data.jqxFlagUrl) {
  2852. this.oldfileList.push({
  2853. fileTitle: "交强电子标志",
  2854. filename: this.orderInfo.jqpolicyno,
  2855. fileurl: res.data.jqxFlagUrl,
  2856. });
  2857. }
  2858. if (res.data.syxPolicyUrl) {
  2859. businessList.push({
  2860. fileTitle: "商业电子保单",
  2861. filename: this.orderInfo.sypolicyno,
  2862. fileurl: res.data.syxPolicyUrl,
  2863. });
  2864. }
  2865. if (
  2866. res.data.jyxInfoList &&
  2867. res.data.jyxInfoList.length > 0
  2868. ) {
  2869. res.data.jyxInfoList.forEach((val) => {
  2870. accidentList.push({
  2871. fileTitle: "驾意险保单",
  2872. filename: "驾意险保单",
  2873. fileurl: val.jyx_policy_url,
  2874. });
  2875. });
  2876. }
  2877. } else {
  2878. this.$message.error(res.msg);
  2879. }
  2880. });
  2881. }
  2882. break;
  2883. case "平安财险":
  2884. if (this.orderInfo.jqpolicyno) {
  2885. this.$api.letter
  2886. .pingangetPolicyPrint({
  2887. companyId: item.id,
  2888. })
  2889. .then((res) => {
  2890. if (res.code == 200 && res.data) {
  2891. if (res.data.jqxPolicyUrl) {
  2892. this.oldfileList.push({
  2893. fileTitle: "交强电子保单",
  2894. filename: this.orderInfo.jqpolicyno,
  2895. fileurl: process.env.BASE_URL + res.data.jqxPolicyUrl,
  2896. });
  2897. }
  2898. if (res.data.jqxFlagUrl) {
  2899. this.oldfileList.push({
  2900. fileTitle: "交强电子标志",
  2901. filename: this.orderInfo.jqpolicyno,
  2902. fileurl: process.env.BASE_URL + res.data.jqxFlagUrl,
  2903. });
  2904. }
  2905. if (res.data.syxPolicyUrl) {
  2906. businessList.push({
  2907. fileTitle: "商业电子保单",
  2908. filename: this.orderInfo.sypolicyno,
  2909. fileurl: process.env.BASE_URL + res.data.syxPolicyUrl,
  2910. });
  2911. }
  2912. if (
  2913. res.data.jyxInfoList &&
  2914. res.data.jyxInfoList.length > 0
  2915. ) {
  2916. res.data.jyxInfoList.forEach((val) => {
  2917. accidentList.push({
  2918. fileTitle: "驾意险保单",
  2919. filename: "驾意险保单",
  2920. fileurl: process.env.BASE_URL + val.jyx_policy_url,
  2921. });
  2922. });
  2923. }
  2924. } else {
  2925. this.$message.error(res.msg);
  2926. }
  2927. });
  2928. }
  2929. break;
  2930. case "诚泰财险":
  2931. case "恒邦财险":
  2932. case "安盛天平":
  2933. case "中国人寿":
  2934. case "太平财险":
  2935. case "华农财险":
  2936. case "众安平安":
  2937. case "泰康财险":
  2938. if (this.orderInfo.jqpolicyno || this.orderInfo.sypolicyno) {
  2939. this.$api.letter
  2940. .pythongetPolicyPrint({
  2941. subOrderNo: item.id,
  2942. })
  2943. .then((res) => {
  2944. if (res.code == 200 && res.data) {
  2945. if (res.data.jqxPolicyUrl) {
  2946. this.oldfileList.push({
  2947. fileTitle: "交强电子保单",
  2948. filename: this.orderInfo.jqpolicyno,
  2949. fileurl: res.data.jqxPolicyUrl,
  2950. });
  2951. }
  2952. if (res.data.jqxFlagUrl) {
  2953. this.oldfileList.push({
  2954. fileTitle: "交强电子标志",
  2955. filename: this.orderInfo.jqpolicyno,
  2956. fileurl: res.data.jqxFlagUrl,
  2957. });
  2958. }
  2959. if (res.data.syxPolicyUrl) {
  2960. businessList.push({
  2961. fileTitle: "商业电子保单",
  2962. filename: this.orderInfo.sypolicyno,
  2963. fileurl: res.data.syxPolicyUrl,
  2964. });
  2965. }
  2966. if (
  2967. res.data.jyxInfoList &&
  2968. res.data.jyxInfoList.length > 0
  2969. ) {
  2970. res.data.jyxInfoList.forEach((val) => {
  2971. accidentList.push({
  2972. fileTitle: "驾意险保单",
  2973. filename: "驾意险保单",
  2974. fileurl: val.jyx_policy_url,
  2975. });
  2976. });
  2977. }
  2978. } else {
  2979. this.$message.error(res.msg);
  2980. }
  2981. });
  2982. }
  2983. break;
  2984. case "大家财险":
  2985. switch (item.apiType) {
  2986. case 1:
  2987. if (this.orderInfo.jqpolicyno) {
  2988. this.$api.letter
  2989. .obtainWarranty({
  2990. companyId: item.id,
  2991. riskCode: "0507",
  2992. type: "2", //2:保单
  2993. })
  2994. .then((res) => {
  2995. if (res.data) {
  2996. this.oldfileList.push({
  2997. fileTitle: "交强电子保单",
  2998. filename: this.orderInfo.jqpolicyno,
  2999. fileurl: res.data,
  3000. });
  3001. } else {
  3002. this.$message.error(res.msg);
  3003. }
  3004. });
  3005. this.$api.letter
  3006. .obtainWarranty({
  3007. companyId: item.id,
  3008. riskCode: "0507",
  3009. type: "1", //1:标志
  3010. })
  3011. .then((res) => {
  3012. if (res.data) {
  3013. this.oldfileList.push({
  3014. fileTitle: "交强电子标志",
  3015. filename: this.orderInfo.jqpolicyno,
  3016. fileurl: res.data,
  3017. });
  3018. } else {
  3019. this.$message.error(res.msg);
  3020. }
  3021. });
  3022. }
  3023. if (this.orderInfo.sypolicyno) {
  3024. this.$api.letter
  3025. .obtainWarranty({
  3026. companyId: item.id,
  3027. riskCode: "0510",
  3028. type: "2", //2:保单
  3029. })
  3030. .then((res) => {
  3031. if (res.data) {
  3032. businessList.push({
  3033. fileTitle: "商业电子保单",
  3034. filename: this.orderInfo.sypolicyno,
  3035. fileurl: res.data,
  3036. });
  3037. }
  3038. });
  3039. }
  3040. if (this.orderInfo.crossInsurance.length > 0) {
  3041. this.orderInfo.crossInsurance.map((ele) => {
  3042. this.$api.letter
  3043. .obtainWarranty({
  3044. companyId: item.id,
  3045. policyNumber: ele.policyNumber,
  3046. riskCode: "0513",
  3047. type: "2", //2:保单
  3048. })
  3049. .then((res) => {
  3050. if (res.data) {
  3051. accidentList.push({
  3052. fileTitle: "驾意险保单",
  3053. filename: ele.policyNumber,
  3054. fileurl: res.data,
  3055. });
  3056. } else {
  3057. this.$message.error(res.msg);
  3058. }
  3059. });
  3060. });
  3061. }
  3062. break;
  3063. case 2:
  3064. if (
  3065. this.orderInfo.jqpolicyno ||
  3066. this.orderInfo.sypolicyno
  3067. ) {
  3068. this.$api.letter
  3069. .pythongetPolicyPrint({
  3070. subOrderNo: item.id,
  3071. })
  3072. .then((res) => {
  3073. if (res.code == 200 && res.data) {
  3074. if (res.data.jqxPolicyUrl) {
  3075. this.oldfileList.push({
  3076. fileTitle: "交强电子保单",
  3077. filename: this.orderInfo.jqpolicyno,
  3078. fileurl: res.data.jqxPolicyUrl,
  3079. });
  3080. }
  3081. if (res.data.jqxFlagUrl) {
  3082. this.oldfileList.push({
  3083. fileTitle: "交强电子标志",
  3084. filename: this.orderInfo.jqpolicyno,
  3085. fileurl: res.data.jqxFlagUrl,
  3086. });
  3087. }
  3088. if (res.data.syxPolicyUrl) {
  3089. businessList.push({
  3090. fileTitle: "商业电子保单",
  3091. filename: this.orderInfo.sypolicyno,
  3092. fileurl: res.data.syxPolicyUrl,
  3093. });
  3094. }
  3095. if (
  3096. res.data.jyxInfoList &&
  3097. res.data.jyxInfoList.length > 0
  3098. ) {
  3099. res.data.jyxInfoList.forEach((val) => {
  3100. accidentList.push({
  3101. fileTitle: "驾意险保单",
  3102. filename: "驾意险保单",
  3103. fileurl: val.jyx_policy_url,
  3104. });
  3105. });
  3106. }
  3107. } else {
  3108. this.$message.error(res.msg);
  3109. }
  3110. });
  3111. }
  3112. break;
  3113. }
  3114. break;
  3115. default:
  3116. }
  3117. }
  3118. let obj = {
  3119. oldfileList: this.oldfileList,
  3120. businessList,
  3121. accidentList,
  3122. };
  3123. this.$refs.detailsDialog.warrantyFun(obj);
  3124. */
  3125. this.$api.readPdf.readPdfUrlList(this.orderInfo.id).then((res) => {
  3126. console.log(res.data);
  3127. if (res.code == 200) {
  3128. this.$refs.detailsDialog.warrantyFun(res.data);
  3129. } else {
  3130. this.$message.error(res.msg);
  3131. }
  3132. });
  3133. }
  3134. console.log(this.orderInfo);
  3135. this.showInsureList = false;
  3136. this.$refs.detailsDialog.setBackupVisible(true);
  3137. } else {
  3138. this.$message.error("订单获取失败");
  3139. }
  3140. });
  3141. },
  3142. //联级选择器触发事件
  3143. handleChange(val) {
  3144. if (val.length !== 0) {
  3145. this.pageRequest.deptId = val.at(-1);
  3146. } else {
  3147. this.pageRequest.deptId = "";
  3148. }
  3149. },
  3150. handleClose(done) {
  3151. this.$confirm("确认关闭?")
  3152. .then((_) => {
  3153. done();
  3154. })
  3155. .catch((_) => { });
  3156. },
  3157. httpRequest(options) {
  3158. let file = options.file;
  3159. let filename = options.filename;
  3160. let reader = new FileReader();
  3161. if (file) {
  3162. reader.readAsDataURL(file);
  3163. }
  3164. reader.onload = () => {
  3165. let base64Str = reader.result;
  3166. this[options.filename].push(base64Str);
  3167. };
  3168. },
  3169. // 设置每页条数
  3170. applyhandleSizeChange(val) {
  3171. this.pageSize = val;
  3172. this.pageNum = 1;
  3173. this.pageRequest.pageNum = 1;
  3174. this.pageRequest.pageSize = val;
  3175. this.findPage();
  3176. },
  3177. // 当前页
  3178. applyhandleCurrentChange(val) {
  3179. this.pageNum = val;
  3180. this.pageRequest.pageNum = val;
  3181. this.findPage();
  3182. },
  3183. saveAs(blob, filename) {
  3184. var link = document.createElement("a");
  3185. link.href = window.URL.createObjectURL(blob);
  3186. link.target = "_ blank";
  3187. link.download = filename;
  3188. link.click();
  3189. },
  3190. //预览文件
  3191. viewfile(index) {
  3192. let name = index.fileurl.lastIndexOf("/");
  3193. fetch(index.fileurl)
  3194. .then((response) => response.blob())
  3195. .then((blob) => {
  3196. this.saveAs(
  3197. blob,
  3198. index.fileurl.substring(name + 1, index.fileurl.length)
  3199. );
  3200. })
  3201. .catch((error) => { });
  3202. // const a = document.createElement('a')
  3203. // a.style.display = 'none'
  3204. // a.href = index.fileurl
  3205. // a.target = '_ blank';
  3206. // a.download = this.licenseNo+ '.pdf'; // 下载文件的名字
  3207. // document.body.appendChild(a)
  3208. // a.click()
  3209. },
  3210. // jump(obj) {
  3211. // var s = document.getElementById(obj);
  3212. // var parent = s.parentNode;
  3213. // for (let i = 0; i < parent.childNodes.length; i++) {
  3214. // if (parent.childNodes[i].tagName == "DIV") {
  3215. // if (parent.childNodes[i].childNodes[0].classList.contains("active")) {
  3216. // parent.childNodes[i].childNodes[0].classList.remove("active");
  3217. // }
  3218. // }
  3219. // }
  3220. // s.childNodes[0].classList.add("active");
  3221. // },
  3222. // //表格行点击下拉事件
  3223. // handleRowClick(row) {
  3224. // if(!row.expanded){
  3225. // this.$api.letter.querySonOrders({orderNo:row.orderno}).then(res=>{
  3226. // if(res.code=='200' && res.data.length!=0){
  3227. // this.pageResult.map(item=>{
  3228. // if(item.orderno===row.orderno){
  3229. // item.insAreaCompanyList=res.data;
  3230. // }
  3231. // return item;
  3232. // })
  3233. // row.expanded = !row.expanded;
  3234. // this.$refs.expandTable.toggleRowExpansion(row, row.expanded);
  3235. // }else{
  3236. // this.$message.info("暂无数据");
  3237. // }
  3238. // })
  3239. // }else{
  3240. // row.expanded = !row.expanded;
  3241. // this.$refs.expandTable.toggleRowExpansion(row, row.expanded);
  3242. // }
  3243. // },
  3244. handleRowChange: debounce(function (row, expandedRows) {
  3245. console.log(expandedRows);
  3246. if (expandedRows.length > 0) {
  3247. this.$api.letter
  3248. .querySonOrders({ orderNo: row.orderno })
  3249. .then((res) => {
  3250. if (res.code == "200" && res.data.length != 0) {
  3251. this.pageResult.map((item) => {
  3252. if (item.orderno === row.orderno) {
  3253. item.insAreaCompanyList = res.data;
  3254. }
  3255. return item;
  3256. });
  3257. row.expanded = !row.expanded;
  3258. this.$refs.expandTable.toggleRowExpansion(row, row.expanded);
  3259. } else {
  3260. this.$message.info("暂无数据");
  3261. }
  3262. });
  3263. }
  3264. // else {
  3265. // row.expanded = !row.expanded;
  3266. // this.$refs.expandTable.toggleRowExpansion(row, row.expanded);
  3267. // }
  3268. }, 500), // 300 毫秒内不会重复触发,
  3269. // handleRowChange(row) {
  3270. // if (!row.expanded) {
  3271. // this.$api.letter
  3272. // .querySonOrders({ orderNo: row.orderno })
  3273. // .then((res) => {
  3274. // if (res.code == "200" && res.data.length != 0) {
  3275. // this.pageResult.map((item) => {
  3276. // if (item.orderno === row.orderno) {
  3277. // item.insAreaCompanyList = res.data;
  3278. // }
  3279. // return item;
  3280. // });
  3281. // row.expanded = !row.expanded;
  3282. // this.$refs.expandTable.toggleRowExpansion(row, row.expanded);
  3283. // } else {
  3284. // this.$message.info("暂无数据");
  3285. // }
  3286. // });
  3287. // } else {
  3288. // row.expanded = !row.expanded;
  3289. // this.$refs.expandTable.toggleRowExpansion(row, row.expanded);
  3290. // }
  3291. // },
  3292. //数据
  3293. findPage() {
  3294. this.orderLoaing = true;
  3295. let orderStatus = "";
  3296. if (this.isLetterOrder) {
  3297. orderStatus =
  3298. this.pageRequest.orderStatus == 888
  3299. ? ""
  3300. : this.pageRequest.orderStatus;
  3301. this.$api.letter
  3302. .queryOrders({ ...this.pageRequest, orderStatus })
  3303. .then((res) => {
  3304. if (res.code == "200") {
  3305. this.orderLoaing = false;
  3306. this.pageResult = res.data.content;
  3307. this.pageNum = res.data.pageNum;
  3308. this.totalSize = res.data.totalSize;
  3309. this.pageResult.forEach((val, index) => {
  3310. this.$set(val, "expanded", false);
  3311. });
  3312. } else {
  3313. this.$message.error(res.msg);
  3314. this.orderLoaing = false;
  3315. }
  3316. });
  3317. } else {
  3318. orderStatus = this.statusPor == 888 ? "" : this.statusPor;
  3319. this.$api.task
  3320. .queryPageHospitalityOrder({
  3321. ...this.pageRequest,
  3322. orderStatus,
  3323. userId: this.userIdPor,
  3324. deptId: this.deptIdPor,
  3325. })
  3326. .then((res) => {
  3327. if (res.code == "200") {
  3328. this.orderLoaing = false;
  3329. this.$nextTick(() => {
  3330. this.pageResult = res.data.content;
  3331. this.pageNum = res.data.pageNum;
  3332. this.totalSize = res.data.totalSize;
  3333. this.pageResult.forEach((val, index) => {
  3334. this.$set(val, "expanded", false);
  3335. });
  3336. });
  3337. } else {
  3338. this.$message.error(res.msg);
  3339. this.orderLoaing = false;
  3340. }
  3341. });
  3342. }
  3343. },
  3344. //查询
  3345. onSubmit() {
  3346. this.pageRequest.pageNum = 1;
  3347. this.pageRequest.pageSize = 20;
  3348. this.findPage();
  3349. },
  3350. //时间js
  3351. monthChange(e) {
  3352. if (e === null) {
  3353. this.pageRequest.startDate = e;
  3354. this.pageRequest.endDate = e;
  3355. } else {
  3356. this.pageRequest.startDate = e[0];
  3357. this.pageRequest.endDate = e[1];
  3358. }
  3359. },
  3360. // downloadFile(url, fileName, type) {
  3361. // const xhr = new XMLHttpRequest();
  3362. // xhr.open("GET", url, true);
  3363. // xhr.responseType = "blob"; // 获取文件blob数据
  3364. // xhr.onload = function() {
  3365. // if (xhr.status !== 200) {
  3366. // this.$notify.error({
  3367. // title: "错误",
  3368. // message: "下载出现错误"
  3369. // });
  3370. // return;
  3371. // }
  3372. // const newUrl = window.URL.createObjectURL(xhr.response); // 生成一个可用的临时url
  3373. // const a = document.createElement("a"); // 生成a标签调用点击事件
  3374. // a.setAttribute("href", newUrl);
  3375. // a.setAttribute("target", "_blank");
  3376. // a.setAttribute("download", fileName); // 自定义文件名
  3377. // document.body.appendChild(a);
  3378. // a.click();
  3379. // document.body.removeChild(a);
  3380. // };
  3381. // xhr.send();
  3382. // }
  3383. },
  3384. };
  3385. </script>
  3386. <style lang="scss" scoped>
  3387. .scan-code {
  3388. div {
  3389. margin-top: 10px;
  3390. }
  3391. }
  3392. .green_color {
  3393. color: #068069;
  3394. border: 1px solid #068069;
  3395. padding: 7px 8px;
  3396. }
  3397. .red_color {
  3398. color: var(--themeColor);
  3399. border: 1px solid var(--themeColor);
  3400. padding: 7px 8px;
  3401. }
  3402. .blue_color {
  3403. color: #2d4d89;
  3404. border: 1px solid #2d4d89;
  3405. padding: 7px 8px;
  3406. }
  3407. .el-dropdown {
  3408. font-size: 12px;
  3409. }
  3410. .el-step__description>span {
  3411. margin-right: 10px;
  3412. }
  3413. /deep/ {
  3414. .proSaomazhifucodeClass .el-dialog__header {
  3415. background: rgba(45, 77, 137, 0.1);
  3416. font-weight: bold;
  3417. }
  3418. .proSaomazhifucodeClass .el-dialog__footer {
  3419. border-top: 1px solid #eef1f6;
  3420. }
  3421. .el-step__head {
  3422. min-height: 90px;
  3423. }
  3424. .el-table .row-expand-cover .cell .el-table__expand-icon {
  3425. display: none;
  3426. }
  3427. .el-descriptions-item__label {
  3428. &:not(.is-bordered-label) {
  3429. color: #333;
  3430. }
  3431. }
  3432. .saomazhifucodeClass .el-dialog__body,
  3433. .saomazhifucodeClass .el-dialog__header,
  3434. .saomazhifucodeClass .el-dialog__footer {
  3435. padding: 0;
  3436. background: #f4e9e9;
  3437. }
  3438. .saomazhifucodeClass .el-dialog__body {
  3439. padding: 15px;
  3440. }
  3441. .saomazhifucodeClass .el-dialog__footer {
  3442. background: #f4e9e9;
  3443. padding-bottom: 15px;
  3444. }
  3445. .saomazhifucodeClass .el-dialog__headerbtn {
  3446. margin-top: 10px;
  3447. }
  3448. .el-input.is-disabled .el-input__inner {
  3449. color: #333;
  3450. }
  3451. }
  3452. .ORcodebody {
  3453. height: auto;
  3454. // background: url(../../../assets/image/group.png) #fff;
  3455. padding: 16px;
  3456. background-color: #fff;
  3457. }
  3458. .ORcode {
  3459. width: 100%;
  3460. height: auto;
  3461. display: flex;
  3462. justify-content: center;
  3463. align-items: center;
  3464. padding: 30px;
  3465. box-sizing: border-box;
  3466. &>div {
  3467. width: 176px;
  3468. height: 176px;
  3469. border: 1px solid var(--themeColor);
  3470. border-radius: 5px;
  3471. }
  3472. }
  3473. .ORtitle {
  3474. width: 100%;
  3475. padding-bottom: 20px;
  3476. box-sizing: border-box;
  3477. &>div {
  3478. width: 100%;
  3479. margin: 10px 0;
  3480. font-size: 14px;
  3481. &>span {
  3482. &:nth-child(1) {
  3483. color: #868b98;
  3484. text-align: end;
  3485. width: 150px;
  3486. }
  3487. &:nth-child(2) {
  3488. color: #333333;
  3489. }
  3490. }
  3491. }
  3492. }
  3493. </style>
  3494. <style scoped lang="scss">
  3495. #qqq {
  3496. background-color: #111;
  3497. width: 300px;
  3498. height: 300px;
  3499. margin: 0 auto;
  3500. /*水平居中*/
  3501. position: relative;
  3502. }
  3503. #qrCode {
  3504. display: inline-block;
  3505. margin: 0 auto;
  3506. /*水平居中*/
  3507. position: relative;
  3508. top: 15%;
  3509. }
  3510. #qrCode img {
  3511. width: 200px;
  3512. height: 200px;
  3513. background-color: #fff;
  3514. padding: 6px;
  3515. }
  3516. .leftContainer {
  3517. width: 80px;
  3518. position: fixed;
  3519. top: 79px;
  3520. left: 30px;
  3521. }
  3522. .leftContainer .el-col {
  3523. width: 80px;
  3524. height: 80px;
  3525. border-bottom: 1px solid #4d5c6f;
  3526. background: #526176;
  3527. cursor: pointer;
  3528. color: #a6aeb9;
  3529. border-radius: 0;
  3530. }
  3531. .leftContainer .el-col a {
  3532. display: block;
  3533. color: #a6aeb9;
  3534. text-decoration: none;
  3535. }
  3536. .leftContainer .el-col a:hover {
  3537. color: #fff;
  3538. }
  3539. .leftContainer .el-col a.active {
  3540. color: #fff;
  3541. }
  3542. .leftContainer .el-col i {
  3543. font-size: 30px;
  3544. margin: 15px 0px 5px;
  3545. }
  3546. .rightContainer {
  3547. width: calc(100vw - 160px);
  3548. margin-left: 100px;
  3549. }
  3550. .rightContainer .header .el-col {
  3551. font-size: 18px;
  3552. font-weight: bold;
  3553. }
  3554. .rightContainer .bodyTitle {
  3555. height: 40px;
  3556. background: #f3f3f3;
  3557. border: 1px solid #dddddd;
  3558. }
  3559. .rightContainer .bodyTitle>label {
  3560. margin: 0px 15px;
  3561. font-weight: bold;
  3562. }
  3563. .rightContainer #demo2 .body,
  3564. .rightContainer #demo6 .body {
  3565. border: 1px solid #ddd;
  3566. padding: 15px;
  3567. border-top: none;
  3568. }
  3569. .rightContainer .el-card {
  3570. margin-bottom: 15px;
  3571. }
  3572. .body .el-row .el-col label {
  3573. text-align: right;
  3574. width: 80px;
  3575. font-size: 14px;
  3576. width: 100%;
  3577. line-height: 36px;
  3578. display: inline-block;
  3579. box-sizing: border-box;
  3580. }
  3581. .disabledInput {
  3582. width: 80% !important;
  3583. background-color: #f5f7fa;
  3584. text-align: center !important;
  3585. max-width: 200px;
  3586. border: 1px solid #e4e7ed;
  3587. color: #c0c4cc;
  3588. cursor: not-allowed;
  3589. border-radius: 4px;
  3590. box-sizing: border-box;
  3591. padding: 0px 10px;
  3592. height: 36px;
  3593. margin: 20px 10%;
  3594. }
  3595. /* 上传图片样式Start */
  3596. .avatar-uploader .el-upload {
  3597. border: 1px dashed #d9d9d9;
  3598. border-radius: 6px;
  3599. cursor: pointer;
  3600. position: relative;
  3601. overflow: hidden;
  3602. }
  3603. .avatar-uploader .el-upload:hover {
  3604. border-color: #409eff;
  3605. }
  3606. .avatar-uploader-icon {
  3607. font-size: 28px;
  3608. color: #8c939d;
  3609. width: 100px;
  3610. height: 100px;
  3611. line-height: 100px;
  3612. text-align: center;
  3613. border: 1px dashed #d9d9d9;
  3614. }
  3615. .avatar {
  3616. border: 1px dashed #d9d9d9;
  3617. padding: 5px;
  3618. border-radius: 6px;
  3619. width: 100px;
  3620. height: 100px;
  3621. display: block;
  3622. }
  3623. .imageStyle {
  3624. display: inline-block;
  3625. width: 100px;
  3626. height: 100px;
  3627. box-shadow: #ddd 0px 0px 5px;
  3628. margin-right: 20px;
  3629. }
  3630. /* 上传图片样式End */
  3631. .dis {
  3632. display: flex;
  3633. }
  3634. .align {
  3635. align-items: center;
  3636. }
  3637. .jus {
  3638. justify-content: space-between;
  3639. }
  3640. .display {
  3641. display: flex;
  3642. justify-content: center;
  3643. align-items: center;
  3644. box-sizing: border-box;
  3645. }
  3646. .block {
  3647. margin-top: 10px;
  3648. }
  3649. .page {
  3650. padding: 14px;
  3651. box-sizing: border-box;
  3652. }
  3653. .el-select--medium {
  3654. vertical-align: bottom !important;
  3655. }
  3656. .widths {
  3657. width: 200px;
  3658. }
  3659. .demo-table-expand {
  3660. /* width:96vw; */
  3661. height: auto;
  3662. padding: 10px 20px 10px 50px;
  3663. font-size: 14px;
  3664. }
  3665. .demo-table-expand-time {
  3666. width: 40%;
  3667. }
  3668. .demo-table-expand-time>div {
  3669. margin: 0 10px;
  3670. }
  3671. .icon-img {
  3672. width: 30px;
  3673. height: 30px;
  3674. vertical-align: bottom;
  3675. }
  3676. .Enclosure {
  3677. width: 100%;
  3678. background-color: #fff;
  3679. padding: 20px;
  3680. box-sizing: border-box;
  3681. margin-bottom: 15px;
  3682. border-radius: 6px;
  3683. border: 1px solid #ebeef5;
  3684. transition: all 0.2s ease-in-out;
  3685. box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
  3686. }
  3687. .headers {
  3688. display: flex;
  3689. align-items: center;
  3690. justify-content: space-between;
  3691. flex-wrap: wrap;
  3692. margin: 5px 0;
  3693. font-weight: bold;
  3694. color: #333;
  3695. }
  3696. /* 内容待定 */
  3697. .headers_Custom {
  3698. div {
  3699. padding: 2px 0px;
  3700. font-size: 14px;
  3701. &>span {
  3702. color: rgb(226, 118, 10);
  3703. }
  3704. }
  3705. }
  3706. .back {
  3707. color: #303133;
  3708. font-weight: 700;
  3709. }
  3710. .u-f-ac {
  3711. -webkit-box-align: center;
  3712. align-items: center;
  3713. /* padding: 10px; */
  3714. }
  3715. .bodyTitle {
  3716. height: 40px;
  3717. background: #f3f3f3;
  3718. border: 1px solid #dddddd;
  3719. line-height: 40px;
  3720. padding: 0 20px;
  3721. box-sizing: border-box;
  3722. }
  3723. .Risk {
  3724. width: 100%;
  3725. height: auto;
  3726. display: flex;
  3727. flex-direction: column;
  3728. align-items: center;
  3729. font-size: 12px;
  3730. }
  3731. .Risk_title {
  3732. width: 100%;
  3733. height: 40px;
  3734. }
  3735. .Risk_title>div {
  3736. background: rgb(199, 20, 45);
  3737. color: rgb(255, 255, 255);
  3738. height: 100%;
  3739. font-weight: 500;
  3740. width: 33.3%;
  3741. padding: 10px 20px;
  3742. box-sizing: border-box;
  3743. border: #fff solid 1px;
  3744. display: flex;
  3745. justify-content: center;
  3746. align-items: center;
  3747. border-bottom: none;
  3748. }
  3749. .Risk_title>div:nth-child(2) {
  3750. border-left: none;
  3751. border-right: none;
  3752. }
  3753. .Risk_data {
  3754. width: 100%;
  3755. height: 40px;
  3756. }
  3757. .Risk_data>div {
  3758. background: #fbf6f7;
  3759. color: rgb(51, 51, 51);
  3760. height: 100%;
  3761. font-weight: 500;
  3762. width: 33.3%;
  3763. padding: 10px 20px;
  3764. box-sizing: border-box;
  3765. border: #fff solid 1px;
  3766. display: flex;
  3767. justify-content: center;
  3768. align-items: center;
  3769. border-bottom: none;
  3770. }
  3771. .Risk_data>div :nth-child(2) {
  3772. border-left: none;
  3773. border-right: none;
  3774. }
  3775. .Risk_title>div :nth-child(3) {
  3776. border-top-right-radius: 10px;
  3777. }
  3778. .jyxStyle>span {
  3779. display: inline-block;
  3780. text-align: center;
  3781. }
  3782. /* .el-step__description{
  3783. color:#333
  3784. } */
  3785. /deep/ {
  3786. .el-step__title,
  3787. .el-step__icon-inner {
  3788. color: var(--themeColor);
  3789. }
  3790. .el-step__description.is-finish,
  3791. .el-step__head.is-finish {
  3792. color: #333;
  3793. border: none;
  3794. }
  3795. .el-step__icon.is-text {
  3796. border: none;
  3797. box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.1);
  3798. }
  3799. .el-step__icon.is-text {
  3800. font-size: 22px;
  3801. }
  3802. .el-step__icon {
  3803. width: 28px;
  3804. height: 28px;
  3805. }
  3806. .el-step.is-vertical .el-step__main {
  3807. padding-left: 20px;
  3808. }
  3809. .el-step__line,
  3810. .el-step.is-vertical .el-step__line {
  3811. left: 14px;
  3812. background-color: #e2e5eb;
  3813. width: 1px;
  3814. }
  3815. .el-step__line-inner {
  3816. height: 0;
  3817. display: none;
  3818. }
  3819. .is-flex {
  3820. .el-step__icon {
  3821. background: var(--themeColor);
  3822. }
  3823. .el-step__icon-inner {
  3824. color: #fff;
  3825. }
  3826. }
  3827. .styleB {
  3828. height: 128px;
  3829. }
  3830. .styleB .el-upload--picture-card {
  3831. display: none;
  3832. }
  3833. }
  3834. .tab-style {
  3835. width: 110px;
  3836. li {
  3837. text-align: right;
  3838. padding-right: 20px;
  3839. line-height: 40px;
  3840. cursor: pointer;
  3841. box-sizing: border-box;
  3842. border-right: 1px solid #e2e5eb;
  3843. }
  3844. li:focus {
  3845. background: rgba(212, 36, 38, 0.1);
  3846. border-right: 2px solid var(--themeColor);
  3847. color: var(--themeColor);
  3848. }
  3849. }
  3850. .tabLi-style {
  3851. background: rgba(212, 36, 38, 0.1);
  3852. border-right: 2px solid var(--themeColor);
  3853. color: var(--themeColor);
  3854. }
  3855. .aaa {
  3856. /deep/ {
  3857. margin-bottom: 20px;
  3858. margin-right: 50px;
  3859. span {
  3860. display: inline-block;
  3861. margin-bottom: 10px;
  3862. }
  3863. .el-upload .el-upload-dragger {
  3864. width: 180px;
  3865. height: 120px;
  3866. border: 1px dashed #c0ccda;
  3867. padding: 0;
  3868. }
  3869. .el-upload-list--picture-card .el-upload-list__item {
  3870. width: 180px;
  3871. height: 120px;
  3872. }
  3873. .el-upload-list__item:first-child {
  3874. margin-top: 0;
  3875. }
  3876. .el-upload--picture-card {
  3877. width: 180px;
  3878. height: 120px;
  3879. }
  3880. .el-upload-list__item {
  3881. width: 180px;
  3882. height: 120px;
  3883. margin: 0 !important;
  3884. display: block !important;
  3885. }
  3886. .el-upload-list--picture-card .el-upload-list__item-thumbnail {
  3887. width: 180px;
  3888. height: 120px;
  3889. }
  3890. }
  3891. }
  3892. .styleB .el-upload--picture-card {
  3893. // display: none;
  3894. opacity: 0;
  3895. }
  3896. .QRCode {
  3897. position: relative;
  3898. width: 200px;
  3899. height: 200px;
  3900. overflow: hidden;
  3901. margin: 0 auto;
  3902. }
  3903. </style>