KtOrder.vue 90 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735
  1. <template>
  2. <div class="page">
  3. <el-form
  4. :inline="true"
  5. :model="pageRequest"
  6. class="demo-form-inline"
  7. size="small"
  8. label-width="130px"
  9. >
  10. <el-row>
  11. <el-col :span="6">
  12. <el-form-item label="订单号">
  13. <el-input v-model="pageRequest.orderNo" placeholder="请输入订单号" class="widths" clearable></el-input>
  14. </el-form-item>
  15. </el-col>
  16. <el-col :span="6">
  17. <el-form-item label="车牌号">
  18. <el-input v-model="pageRequest.licenseNo" placeholder="请输入车牌号" class="widths" clearable></el-input>
  19. </el-form-item>
  20. </el-col>
  21. <el-col :span="6">
  22. <el-form-item label="车架号">
  23. <el-input v-model="pageRequest.frameNo" placeholder="请输入车架号" class="widths" clearable></el-input>
  24. </el-form-item>
  25. </el-col>
  26. <el-col :span="6">
  27. <el-form-item label="投保人姓名">
  28. <el-input
  29. v-model="pageRequest.insuredName"
  30. placeholder="请输入投保人姓名"
  31. class="widths"
  32. clearable
  33. ></el-input>
  34. </el-form-item>
  35. </el-col>
  36. <el-col :span="6" v-if="isLetterOrder">
  37. <el-form-item label="机构名称">
  38. <el-cascader
  39. class="widths"
  40. :options="institutionOptions"
  41. v-model="pageRequest.deptId"
  42. :props="{
  43. checkStrictly: true,
  44. value: 'id',
  45. label: 'name',
  46. }"
  47. @change="handleChange"
  48. clearable
  49. ></el-cascader>
  50. </el-form-item>
  51. </el-col>
  52. <el-col :span="6">
  53. <el-form-item label="录单日期">
  54. <el-date-picker
  55. v-model="value2"
  56. type="daterange"
  57. @change="monthChange"
  58. start-placeholder="开始日期"
  59. end-placeholder="结束日期"
  60. value-format="yyyy-MM-dd"
  61. clearable
  62. style="width: 200px;"
  63. ></el-date-picker>
  64. </el-form-item>
  65. </el-col>
  66. <el-col :span="6">
  67. <el-form-item label="保险公司">
  68. <el-select v-model="pageRequest.companyId" filterable class="widths" clearable>
  69. <el-option v-for="val in companyList" :key="val.id" :label="val.name" :value="val.id"></el-option>
  70. </el-select>
  71. </el-form-item>
  72. </el-col>
  73. <el-col :span="3">
  74. <el-button type="primary" size="small" @click="onSubmit">查询</el-button>
  75. </el-col>
  76. </el-row>
  77. <el-row v-if="isLetterOrder">
  78. <el-col :span="21">
  79. <el-form-item label="订单状态">
  80. <el-radio-group v-model="pageRequest.orderStatus">
  81. <el-radio label="888">全部</el-radio>
  82. <el-radio
  83. v-for="val in optionsStatus"
  84. :key="val.dictValue"
  85. :label="val.dictValue"
  86. >{{ val.dictTag }}</el-radio>
  87. </el-radio-group>
  88. </el-form-item>
  89. </el-col>
  90. </el-row>
  91. </el-form>
  92. <el-table
  93. size="small"
  94. :data="pageResult"
  95. border
  96. v-loading="orderLoaing"
  97. highlight-current-row
  98. stripe
  99. @expand-change="handleRowChange"
  100. ref="expandTable"
  101. :header-cell-style="{
  102. background: '#F2F7FC',
  103. fontWeight: '700',
  104. color: '#606266',
  105. }"
  106. >
  107. <el-table-column type="expand">
  108. <template slot-scope="scope">
  109. <div
  110. class="demo-table-expand flex a-c j-s"
  111. :style="{ width: width, flexWrap: 'wrap' }"
  112. v-for="(item, index) in scope.row.insAreaCompanyList"
  113. :key="index"
  114. >
  115. <div style="width: 12%;">
  116. {{ item.inscompany }}
  117. <span style="color: #D42426 ">({{ item.agreementName }})</span>
  118. </div>
  119. <div class="flex a-c j-s demo-table-expand-time">
  120. <div>
  121. 总价:
  122. <span style="color: #D42426 ">{{ item.sumpremium }}</span>
  123. </div>
  124. <div>
  125. 交强险:
  126. <span style="color: #D42426 ">{{ item.jqpremium }}</span>
  127. </div>
  128. <div>
  129. 商业险:
  130. <span style="color: #D42426 ">{{ item.sypremium }}</span>
  131. </div>
  132. <div>
  133. 车船税:
  134. <span style="color: #D42426 ">{{ item.taxamount }}</span>
  135. </div>
  136. <div v-if="item.jypremium">
  137. 驾意险:
  138. <span style="color: #D42426 ">{{ item.jypremium }}</span>
  139. </div>
  140. <div>{{ item.createtime }}</div>
  141. </div>
  142. <div slot="reference" class="name-wrapper flex a-c j-c">
  143. <el-tag
  144. style="color:#33A08D;border-color:#33A08D;background: rgba(51,160,141,0.1);"
  145. v-if="item.orderstatus=='0'||item.orderstatus=='1'"
  146. size="small"
  147. >{{item.orderstatus | cap}}</el-tag>
  148. <el-tag
  149. style="border-color:#E75B5D ;"
  150. type="danger"
  151. v-else-if="item.orderstatus=='3'"
  152. size="small"
  153. >{{item.orderstatus | cap}}</el-tag>
  154. <el-tag
  155. v-else
  156. style="color:#2D4D89 ;border-color:#2D4D89 ;background: rgba(45, 77, 137,0.1);"
  157. size="small"
  158. >{{item.orderstatus | cap}}</el-tag>
  159. </div>
  160. <div class="flex a-c">
  161. <el-button
  162. size="mini"
  163. type="text"
  164. v-if="
  165. item.orderstatus == '1' &&
  166. [
  167. '中煤财险',
  168. '华泰财险',
  169. '大家财险',
  170. '永诚财险',
  171. '国任财险',
  172. '太平财险',
  173. '华农财险',
  174. '恒邦财险',
  175. '众安财险',
  176. '中国人寿',
  177. '安盛天平',
  178. '紫金财险',
  179. '渤海财险',
  180. ].includes(item.inscompany) "
  181. @click="refreshStatus(item)"
  182. class="red_color"
  183. >更新订单</el-button>
  184. <el-button
  185. size="mini"
  186. type="text"
  187. v-if="item.orderstatus == '4' && item.inscompany == '华泰财险'"
  188. @click="updateStatusHuatai(item)"
  189. class="red_color"
  190. >更新订单</el-button>
  191. <el-button
  192. size="mini"
  193. type="text"
  194. v-if="
  195. ( item.orderstatus == '1'|| item.orderstatus == '2' || item.orderstatus == '4') &&
  196. ['紫金财险'].includes(item.inscompany)
  197. "
  198. @click="cancelorder(item)"
  199. class="red_color"
  200. >撤单</el-button>
  201. <el-button
  202. size="mini"
  203. type="text"
  204. v-if="item.orderstatus == '2'"
  205. @click="carcode(item )"
  206. class="red_color"
  207. >二维码</el-button>
  208. <el-button
  209. size="mini"
  210. type="text"
  211. class="green_color"
  212. @click="OrderDetails(scope.row, item)"
  213. >查看详情</el-button>
  214. <el-button
  215. size="mini"
  216. type="text"
  217. :loading="querystatusLoaing"
  218. v-if="
  219. item.orderstatus == '2' &&
  220. [
  221. '太平财险',
  222. '华农财险',
  223. '恒邦财险',
  224. '众安财险',
  225. '中国人寿',
  226. '安盛天平',
  227. '紫金财险',
  228. '永诚财险',
  229. '大家财险',
  230. '华泰财险',
  231. '国任财险',
  232. '中煤财险',
  233. '渤海财险',
  234. ].includes(item.inscompany)
  235. "
  236. class="blue_color"
  237. @click="querystatus(item, index)"
  238. >状态更新</el-button>
  239. <el-button
  240. v-if="item.orderstatus !== '2'"
  241. size="mini"
  242. type="text"
  243. class="blue_color"
  244. @click="orderTrajectory(scope.row, item)"
  245. >订单轨迹</el-button>
  246. <el-button size="mini" type="primary" @click="bjdpreview(item.id,scope.row.userid)">报价单</el-button>
  247. <!-- <el-button size="mini" type="text" @click="CloseEdit(scope.$index, scope.row)">编辑</el-button> -->
  248. <el-button type="text" size="mini" v-if="item.orderstatus == '2'">
  249. <el-dropdown trigger="click">
  250. <span class="el-dropdown-link blue_color">
  251. 更多
  252. <i class="el-icon-arrow-down el-icon--right"></i>
  253. </span>
  254. <el-dropdown-menu slot="dropdown">
  255. <el-dropdown-item>
  256. <el-button
  257. size="mini"
  258. type="text"
  259. style="color: #2D4D89"
  260. @click="orderTrajectory(scope.row, item)"
  261. >订单轨迹</el-button>
  262. </el-dropdown-item>
  263. <el-dropdown-item>
  264. <el-button
  265. type="text"
  266. size="mini"
  267. style="color: #2D4D89"
  268. @click="revokeCode(item.id)"
  269. >撤销二维码</el-button>
  270. </el-dropdown-item>
  271. </el-dropdown-menu>
  272. </el-dropdown>
  273. </el-button>
  274. </div>
  275. </div>
  276. </template>
  277. </el-table-column>
  278. <el-table-column prop="orderno" label="订单号" align="center"></el-table-column>
  279. <el-table-column prop="username" label="业务员" align="center">
  280. <template slot-scope="scope">
  281. <span>{{ scope.row.username }}({{ scope.row.userid }})</span>
  282. </template>
  283. </el-table-column>
  284. <el-table-column prop="insCompany" label="承保公司" width="180" align="center">
  285. <template slot-scope="scope">
  286. <span>{{ scope.row.insCompany ? scope.row.insCompany : "--" }}</span>
  287. </template>
  288. </el-table-column>
  289. <el-table-column prop="licenseno" label="车牌号" width="180" align="center"></el-table-column>
  290. <el-table-column prop="insuredname" label="投保人姓名" align="center" width="150"></el-table-column>
  291. <el-table-column prop="product" label="投保险种" align="center" width="200"></el-table-column>
  292. <el-table-column prop="orderstatus" label="状态" align="center">
  293. <template slot-scope="scope">
  294. <!-- <el-tag :type="capType(scope.row.orderstatus)" size="small">{{
  295. scope.row.orderstatus | cap
  296. }}</el-tag>-->
  297. <el-tag
  298. style="color:#33A08D;border-color:#33A08D;background: rgba(51,160,141,0.1);"
  299. v-if="scope.row.orderstatus=='0'||scope.row.orderstatus=='1'"
  300. size="small"
  301. >{{scope.row.orderstatus | cap}}</el-tag>
  302. <el-tag
  303. type="danger"
  304. style="border-color:#E75B5D ;"
  305. v-else-if="scope.row.orderstatus=='3'"
  306. size="small"
  307. >{{scope.row.orderstatus | cap}}</el-tag>
  308. <el-tag
  309. v-else
  310. style="color:#2D4D89 ;border-color:#2D4D89 ;background: rgba(45, 77, 137,0.1);"
  311. size="small"
  312. >{{scope.row.orderstatus | cap}}</el-tag>
  313. </template>
  314. </el-table-column>
  315. <el-table-column prop="createtime" label="录单日期" align="center" width="200"></el-table-column>
  316. <el-table-column label="操作" align="center" min-width="100">
  317. <template slot-scope="scope">
  318. <el-button
  319. v-if="scope.row.orderstatus != '3'"
  320. size="mini"
  321. type="text"
  322. style="color:#2D4D89 "
  323. @click="CloseEdit(scope.$index, scope.row)"
  324. >编辑</el-button>
  325. <el-button
  326. size="mini"
  327. style="color:#2D4D89 "
  328. type="text"
  329. @click="onoffQuotationHistory(scope.row)"
  330. >报价历史</el-button>
  331. <!-- <el-button size="mini" type="text" v-if="['0', '5'].includes(scope.row.orderstatus)"
  332. @click="CloseQoute(scope.$index, scope.row)" style="color:#f56c6c">关闭报价</el-button>-->
  333. <!-- <el-button size="mini" type="text" v-if="scope.row.orderstatus == '0'"
  334. @click="underwriting(scope.$index, scope.row)" style="color:#e6a23c">去核保</el-button>-->
  335. </template>
  336. </el-table-column>
  337. </el-table>
  338. <!-- 分页功能 -->
  339. <div class="block">
  340. <el-pagination
  341. @size-change="applyhandleSizeChange"
  342. @current-change="applyhandleCurrentChange"
  343. :current-page="pageNum"
  344. :page-size="pageSize"
  345. :page-sizes="[20, 30, 50, 100]"
  346. layout="total, sizes, prev, pager, next, jumper"
  347. :total="totalSize"
  348. ></el-pagination>
  349. </div>
  350. <!--第一种 二维码 -->
  351. <el-dialog
  352. :visible.sync="codedialogVisible"
  353. width="430px"
  354. top="10vh"
  355. class="saomazhifucodeClass"
  356. >
  357. <div class="ORcodebody" v-watermark="qrCodeId">
  358. <div slot="title" class="dialog-title">
  359. <span>扫码付款</span>
  360. </div>
  361. <div class="ORcode">
  362. <div style="padding:13px;position: relative;">
  363. <img v-if="['太平财险'].includes(inscompany)" :src="paycodeimg" alt style="width:100%" />
  364. <div v-else id="qrcode" ref="qrcode"></div>
  365. </div>
  366. </div>
  367. <img style="margin-left: -16px" src="../../../assets/image/divider.png" alt />
  368. <div style="font-size:32px;text-align: center;color:#D42426;margin-top:20px">
  369. <span style="font-size:24px;font-weight:bold">¥</span>
  370. {{sumpremium}}
  371. </div>
  372. <div class="ORtitle">
  373. <div>
  374. <span>保险公司:</span>
  375. <span>{{ inscompany }}</span>
  376. </div>
  377. <div>
  378. <span>车牌号:</span>
  379. <span>{{ licenseNo }}</span>
  380. </div>
  381. <div>
  382. <span>投保人:</span>
  383. <span>{{ applyName }}</span>
  384. </div>
  385. <div v-show="jqpremium">
  386. <span>交强:</span>
  387. <span>{{ jqpremium }}</span>
  388. </div>
  389. <div v-show="sypremium">
  390. <span>商业:</span>
  391. <span>{{ sypremium }}</span>
  392. </div>
  393. <div v-show="taxamount">
  394. <span>车船税:</span>
  395. <span>{{ taxamount }}</span>
  396. </div>
  397. <div v-show="jqstartdate">
  398. <span>交强险起保日期:</span>
  399. <span>{{ jqstartdate }}</span>
  400. </div>
  401. <div v-show="systartdate">
  402. <span>商业险起保日期:</span>
  403. <span>{{ systartdate }}</span>
  404. </div>
  405. <div v-if="jypremium">
  406. <span>非车险:</span>
  407. <span>{{ jypremium }}</span>
  408. </div>
  409. </div>
  410. </div>
  411. <span slot="footer" class="dialog-footer display">
  412. <el-button
  413. size="small"
  414. style="width:100px;border-color:#D42426;color:#D42426 "
  415. @click="codedialogVisible = false"
  416. >关闭</el-button>
  417. </span>
  418. </el-dialog>
  419. <!--第二种 二维码 -->
  420. <el-dialog
  421. :visible.sync="codedialogVisiblePro"
  422. width="660px"
  423. class="proSaomazhifucodeClass"
  424. top="10vh"
  425. title="扫码付款"
  426. >
  427. <div class="flex j-s">
  428. <div class="scan-code">
  429. <div style="font-weight: bold;">
  430. 总金额:
  431. <span style="color:#2D4D89 ">{{ sumpremium }}</span>
  432. </div>
  433. <div>交强险:{{ jqpremium }}</div>
  434. <div>车船税:{{ taxamount }}</div>
  435. <div>商业险:{{ sypremium }}</div>
  436. <div>非车险:{{ jypremium }}</div>
  437. </div>
  438. <div>
  439. <img v-if="['太平财险'].includes(inscompany)" :src="paycodeimg" alt style="width:100%" />
  440. <div v-else id="qrcode" ref="qrcode"></div>
  441. </div>
  442. <div class="scan-code">
  443. <div>保险公司:{{ inscompany }}</div>
  444. <div>车牌号:{{ licenseNo }}</div>
  445. <div>投保人:{{ applyName }}</div>
  446. <div>交强险起保日期:{{ jqstartdate }}</div>
  447. <div>商业险起保日期:{{ systartdate }}</div>
  448. </div>
  449. </div>
  450. <span slot="footer" class="dialog-footer">
  451. <el-button
  452. size="small"
  453. style="width:100px;background: #EAEDF1;border-color:#EAEDF1;color:#2D4D89 "
  454. @click="codedialogVisiblePro = false"
  455. >关闭</el-button>
  456. </span>
  457. </el-dialog>
  458. <!-- 车辆报价新页面 -->
  459. <detailsDialog ref="detailsDialog" :orderInfo.sync="orderInfo"></detailsDialog>
  460. <!-- 订单轨迹 -->
  461. <el-dialog :visible.sync="ddgjdialogVisible" width="430px">
  462. <div slot="title" class="dialog-title">
  463. <span>订单轨迹</span>
  464. </div>
  465. <div style="height: 300px; overflow-y: auto">
  466. <el-steps direction="vertical" :active="trajectoryTable.length - 1">
  467. <el-step :title="item.orderStatus | cap" :key="item.id" v-for="item in trajectoryTable">
  468. <template slot="description">
  469. <span>保险公司:{{ item.insCompany }}</span>
  470. <span>提交人:{{ item.operator }}</span>
  471. <div>创建时间:{{ item.createTime }}</div>
  472. </template>
  473. </el-step>
  474. </el-steps>
  475. </div>
  476. </el-dialog>
  477. <!-- 报价历史 -->
  478. <el-dialog :visible.sync="quotationhistorydialogVisible" width="90%">
  479. <div slot="title" class="dialog-title">
  480. <img src="../../../../src/icon/报价历史.png" alt class="icon-img" />
  481. <span>报价历史</span>
  482. </div>
  483. <div style="padding: 20px">
  484. <el-table
  485. size="small"
  486. :data="HistoryList"
  487. height="400"
  488. border
  489. style="width: 100%"
  490. v-loading="loading"
  491. :header-cell-style="{
  492. background: '#F2F7FC',
  493. }"
  494. highlight-current-row
  495. >
  496. <el-table-column prop="inscompany" label="保险公司" align="center"></el-table-column>
  497. <el-table-column prop="username" label="业务员" align="center">
  498. <template slot-scope="scope">
  499. <span>{{ scope.row.userName }}({{ scope.row.userId }})</span>
  500. </template>
  501. </el-table-column>
  502. <el-table-column prop="licenseno" label="车牌号" align="center"></el-table-column>
  503. <el-table-column prop="createtime" label="报价时间" align="center"></el-table-column>
  504. <el-table-column prop="jqpremium" label="交强险" align="center"></el-table-column>
  505. <el-table-column prop="sypremium" label="商业险" align="center"></el-table-column>
  506. <el-table-column prop="taxamount" label="车船税" align="center"></el-table-column>
  507. <el-table-column prop="sumpremium" label="总保费" align="center"></el-table-column>
  508. <el-table-column prop="orderstatus" label="状态" align="center">
  509. <template slot-scope="scope">
  510. <el-tag
  511. style="color:#33A08D;border-color:#33A08D;background: rgba(51,160,141,0.1);"
  512. v-if="scope.row.orderstatus=='0'||scope.row.orderstatus=='1'"
  513. size="small"
  514. >{{scope.row.orderstatus | cap}}</el-tag>
  515. <el-tag
  516. type="danger"
  517. style="border-color:#E75B5D ;"
  518. v-else-if="scope.row.orderstatus=='3'"
  519. size="small"
  520. >{{scope.row.orderstatus | cap}}</el-tag>
  521. <el-tag
  522. v-else
  523. style="color:#2D4D89 ;border-color:#2D4D89 ;background: rgba(45, 77, 137,0.1);"
  524. size="small"
  525. >{{scope.row.orderstatus | cap}}</el-tag>
  526. </template>
  527. </el-table-column>
  528. <el-table-column label="操作" align="center" min-width="180" fixed="right">
  529. <template slot-scope="scope">
  530. <el-button
  531. type="text"
  532. size="small"
  533. style="color:#2D4D89 "
  534. @click="OrderDetails(quotationhistoryRow, scope.row)"
  535. >查看详情</el-button>
  536. <el-button size="small" type="text" @click="bjdpreview(scope.row.id,scope.row.userId)">报价单</el-button>
  537. <el-button
  538. size="small"
  539. v-show="scope.row.orderstatus == '2'"
  540. type="text"
  541. @click="carcode(scope.row)"
  542. >付款码</el-button>
  543. <el-button
  544. size="mini"
  545. type="text"
  546. v-if="
  547. ( scope.row.orderstatus == '1'|| scope.row.orderstatus == '2' || scope.row.orderstatus == '4') &&
  548. ['紫金财险'].includes(scope.row.inscompany)
  549. "
  550. @click="cancelorder(scope.row)"
  551. >撤单</el-button>
  552. <el-button
  553. type="text"
  554. size="mini"
  555. style="color:#2D4D89 "
  556. v-if="scope.row.orderstatus == '2'"
  557. @click="revokeCode(scope.row.id)"
  558. >撤销二维码</el-button>
  559. <el-button
  560. type="text"
  561. size="mini"
  562. style="color:#2D4D89 "
  563. v-if="
  564. scope.row.orderstatus == '2' &&
  565. [
  566. '太平财险',
  567. '华农财险',
  568. '恒邦财险',
  569. '众安财险',
  570. '中国人寿',
  571. '安盛天平',
  572. '紫金财险',
  573. '永诚财险',
  574. '大家财险',
  575. '华泰财险',
  576. '国任财险',
  577. '中煤财险',
  578. '渤海财险',
  579. ].includes(scope.row.inscompany)
  580. "
  581. @click="querystatus(scope.row, 'history')"
  582. >状态更新</el-button>
  583. </template>
  584. </el-table-column>
  585. </el-table>
  586. </div>
  587. </el-dialog>
  588. <!-- 报价单 -->
  589. <quotationDialog ref="quotationDialog" :queryOrders="queryOrders"></quotationDialog>
  590. <quotationDialogPro ref="quotationDialogPro" :queryOrders="queryOrders"></quotationDialogPro>
  591. </div>
  592. </template>
  593. <script>
  594. let _self;
  595. import { pathToBase64, base64ToPath } from "@/common/image-tools-base64.js";
  596. import CommonUtil from "@/utils/comutil.js";
  597. import Cookies from "js-cookie";
  598. import QRCode from "qrcodejs2";
  599. import quotationDialog from "@/views/Core/components/quotationDialog.vue";
  600. import quotationDialogPro from "@/views/Core/components/quotationDialogPro.vue";
  601. import detailsDialog from "@/views/Core/components/detailsDialog.vue";
  602. export default {
  603. data() {
  604. return {
  605. orderLoaing:false,
  606. qrcodeWidth: "180",
  607. qrcodeHeight: "180",
  608. qrCodeId:Cookies.get("user"),
  609. ddgjdialogVisible: false,
  610. trajectoryTable: [],
  611. queryOrders: {
  612. carinfo: {},
  613. ownerinfo: {},
  614. applyinfo: {},
  615. insureinfo: {},
  616. extendInfo: {}
  617. },
  618. logoImg: "", //报价单保险公司logo图
  619. value2: "",
  620. optionsStatus: [],
  621. codedialogVisible: false,
  622. codedialogVisiblePro: false,
  623. loading: false,
  624. pageNum: 1, //页数
  625. pageSize: 20, //条数
  626. totalSize: null, //总数
  627. peopleid: "", //工号
  628. pageResult: [], //列表
  629. pageRequest: {
  630. //查询的默认条件
  631. orderNo: "",
  632. frameNo: "",
  633. insuredName: "",
  634. licenseNo: "",
  635. orderStatus: "",
  636. userId: "",
  637. endDate: "",
  638. startDate: "",
  639. pageNum: 1,
  640. pageSize: 20,
  641. deptId: ""
  642. },
  643. orderInfo: {
  644. //选中的订单
  645. ownerinfo: {},
  646. carinfo: {},
  647. applyinfo: {},
  648. insureinfo: {},
  649. kindinfo: [],
  650. riskinfo: [],
  651. ownerinfo: {},
  652. orderCommissionVo: {},
  653. extendInfo: {}
  654. },
  655. carImageList: [], //车辆影像
  656. ownerImageList: [], //车主影像
  657. policyImageList: [], //投保人影像
  658. insuredImageList: [], //被保人影像
  659. carCheckImageList: [], //验车照影像
  660. // 影像控制
  661. pic1Control: false,
  662. pic2Control: false,
  663. pic3Control: false,
  664. pic4Control: false,
  665. pic5Control: false,
  666. showInsureList: false, //是否展示具体险种信息
  667. oldfileList: [], //电子保单数据
  668. inscompany: "", //保险公司名称
  669. licenseNo: "", //车牌号
  670. applyName: "", //车主名字
  671. orderstatus: "", //订单状态
  672. sumpremium: "", //保费合计
  673. jqpremium: "", //交强
  674. sypremium: "", //商业
  675. taxamount: "", //车船税
  676. jypremium: "", //驾意险
  677. jqstartdate: "", //交强时间
  678. systartdate: "", //商业时间
  679. mobile: "", //投保人手机号
  680. qrcode: null,
  681. paycodeimg: "",
  682. userid: "",
  683. downloadstatus: 0,
  684. expands: [],
  685. institutionOptions: [],
  686. width: document.documentElement.clientWidth,
  687. insAreaCompanyList: [], //子订单list
  688. companyList: [], //保险公司
  689. querystatusLoaing: false,
  690. quotationhistorydialogVisible: false, //报价历史显示状态
  691. HistoryList: [], //报价历史数据
  692. natureOfVehicleUseoptions: [],
  693. businessVehicleUseoptions:[],
  694. energyTypeoptions:[],
  695. vehicleTypeoptions:[],
  696. trafficManagementVehicleTypeoptions:[],
  697. outOfBusinessVehicleUseoptions: [],
  698. userIdPor:'',
  699. statusPor:'',
  700. deptIdPor:''
  701. };
  702. },
  703. components: { quotationDialog, detailsDialog, quotationDialogPro },
  704. created() {
  705. this.getDicType("natureOfVehicleUse"); //车辆使用性质
  706. this.getDicType("vehicleType"); //车辆种类
  707. this.getDicType("trafficManagementVehicleType"); //车辆类型
  708. this.getDicType("energyType"); //能源种类
  709. this.getDicType("businessVehicleUse"); //(车辆用途)营业
  710. this.getDicType("outOfBusinessVehicleUse"); //(车辆用途)非营业
  711. this.$api.letter.gainTopList().then(res => {
  712. this.companyList = res.data;
  713. });
  714. this.$api.insCompany.dicType("insOrderStatus").then(res => {
  715. this.optionsStatus = res.data.ddList;
  716. });
  717. this.peopleid = Cookies.get("user");
  718. this.$api.dept.findDeptTree().then(res => {
  719. this.institutionOptions = res.data;
  720. });
  721. // this.findPage();
  722. if(this.isLetterOrder){
  723. this.pageRequest.deptId = JSON.parse(
  724. localStorage.getItem("user_data")
  725. ).deptId;
  726. if (this.peopleid != "admin") {
  727. this.pageRequest.userId = this.peopleid;
  728. this.findPage();
  729. } else {
  730. this.pageRequest.userId = "admin";
  731. }
  732. }
  733. },
  734. props: {
  735. isLetterOrder: {
  736. type: Boolean,
  737. default: true
  738. },
  739. },
  740. mounted() {
  741. window.addEventListener("resize", this.getDimensions);
  742. },
  743. beforeCreate() {
  744. _self = this;
  745. },
  746. // props:{
  747. // isdisabled:{
  748. // type:Boolean,
  749. // default:true
  750. // },
  751. // },
  752. filters: {
  753. cap(ele) {
  754. return _self.optionsStatus.find(item => {
  755. return item.dictValue === ele;
  756. }).dictTag;
  757. }
  758. },
  759. unmounted() {
  760. window.removeEventListener("resize", this.getDimensions);
  761. },
  762. computed: {
  763. allinsOption() {
  764. let cloneData = JSON.parse(JSON.stringify(this.allIns)); // 对源数据深度克隆
  765. return cloneData.filter(father => {
  766. // 循环所有项,并添加children属性
  767. let branchArr = cloneData.filter(child => father.id == child.parentId); // 返回每一项的子级数组
  768. branchArr.length > 0 ? (father.children = branchArr) : ""; //给父级添加一个children属性,并赋值
  769. return father.parentId == 0; //返回第一层
  770. });
  771. },
  772. registerDateFormat() {
  773. let date = new Date(this.orderInfo.carinfo.registerDate);
  774. let year = date.getFullYear();
  775. let month = date.getMonth() + 1;
  776. let day = date.getDate();
  777. return year + "-" + month + "-" + day;
  778. },
  779. issueDateFormat() {
  780. let date = new Date(this.orderInfo.carinfo.issueDate);
  781. let year = date.getFullYear();
  782. let month = date.getMonth() + 1;
  783. let day = date.getDate();
  784. return year + "-" + month + "-" + day;
  785. }
  786. },
  787. methods: {
  788. //报价历史点击事件
  789. onoffQuotationHistory(row) {
  790. this.quotationhistoryRow = row;
  791. this.RadioHistoryChange();
  792. this.quotationhistorydialogVisible = true;
  793. },
  794. //报价轨迹查询
  795. RadioHistoryChange() {
  796. let params = {
  797. orderNo: this.quotationhistoryRow.orderno,
  798. orderStatus: ""
  799. };
  800. this.$api.letter.queryQuoteHistory(params).then(res => {
  801. res.data.forEach(item => {
  802. if (item.accidentInfo) {
  803. item.accidentInfo.constructor === Object
  804. ? [item.accidentInfo]
  805. : item.accidentInfo;
  806. }
  807. });
  808. this.HistoryList = res.data;
  809. });
  810. },
  811. getDicType(type) {
  812. this.$api.insCompany.dicType(type).then(res => {
  813. if (res.code == 200) {
  814. this[type + "options"] = res.data.ddList;
  815. }
  816. });
  817. },
  818. capType(val) {
  819. if (val == "0") {
  820. return "success";
  821. }
  822. if (val == "1") {
  823. return "warning";
  824. }
  825. if (val == "2" || val == "3" || val == "4") {
  826. return "danger";
  827. }
  828. },
  829. // 撤销二维码
  830. revokeCode(id) {
  831. this.$api.letter.getRevokeQrCode(id).then(res => {
  832. if (res.code == 200) {
  833. this.$message({
  834. message: res.msg,
  835. type: "success"
  836. });
  837. this.quotationhistorydialogVisible ? this.RadioHistoryChange() : "";
  838. this.findPage();
  839. }
  840. });
  841. },
  842. bjdpreview(companyId,userId) {
  843. let params = {
  844. companyId: companyId
  845. };
  846. this.$api.letter.getByCompanyId(params).then(res => {
  847. if (res.code == "200") {
  848. var data = res.data;
  849. if (data.kindinfo != null) {
  850. data.kindinfo.map((ele, index) => {
  851. switch (ele.kindCode) {
  852. case "A":
  853. if (ele.amount == 1) {
  854. ele.amount = "投保";
  855. } else {
  856. ele.amount = ele.amount;
  857. }
  858. break;
  859. case "D4":
  860. case "SY_FJ_YBW2":
  861. ele.unitAmount = this.toChinesNum(ele.unitAmount);
  862. break;
  863. case "MJ1":
  864. case "MJ2":
  865. case "MJ3":
  866. case "MJ4":
  867. ele.deductibleRate = ele.deductibleRate + "%";
  868. break;
  869. default:
  870. ele.amount = this.toChinesNum(ele.amount);
  871. }
  872. return ele;
  873. });
  874. }
  875. data.logoImg = this.iconfftter(res.data.inscompany);
  876. this.queryOrders = data;
  877. this.$api.letter.getThemeByUserId().then(res => {
  878. if (res.code==200) {
  879. if(res.data.themeCode=='GD'){
  880. this.$refs.quotationDialogPro.setBackupVisible(true);
  881. }
  882. else {
  883. this.$refs.quotationDialog.setBackupVisible(true);
  884. }
  885. }
  886. })
  887. }
  888. });
  889. },
  890. toChinesNum(num) {
  891. if (num.toString().length == 4) {
  892. let overQian = Math.floor(num / 1000);
  893. let result = overQian + "千";
  894. return result;
  895. } else {
  896. let overWan = Math.floor(num / 10000);
  897. let result = overWan + "万";
  898. return result;
  899. }
  900. },
  901. iconfftter(icon) {
  902. return CommonUtil.getDataName({
  903. dataList: this.global.insCompanyList,
  904. value: "name",
  905. label: "icon",
  906. data: icon
  907. });
  908. },
  909. getRowClass(scope, rowIndex) {
  910. if (scope.row.insAreaCompanyList.length == 0) {
  911. //判断当前行是否有子数据或者根据实际情况设置
  912. return "row-expand-cover";
  913. }
  914. },
  915. getDimensions() {
  916. this.width = document.documentElement.clientWidth - 350 + "px";
  917. },
  918. //订单修改
  919. CloseEdit(index, row) {
  920. this.$api.letter.getByOrderNo({ orderNo: row.orderno }).then(res => {
  921. if(res.code==200){
  922. if(this.isLetterOrder){
  923. this.$router.push({
  924. path: "/letter/letter",
  925. query: { data: res.data },
  926. });
  927. }
  928. else{
  929. res.data.activeName='999'
  930. this.$emit('orderEdit',res.data)
  931. }
  932. }
  933. else{
  934. this.$message.error(res.msg)
  935. }
  936. });
  937. },
  938. //二维码生成插件
  939. creatQrCode(text) {
  940. if (this.qrcode) {
  941. this.qrcode.clear();
  942. this.qrcode.makeCode(text);
  943. } else {
  944. this.qrcode = new QRCode("qrcode", {
  945. text: text,
  946. width: this.qrcodeWidth,
  947. height: this.qrcodeHeight,
  948. colorDark: "#000000",
  949. colorLight: "#ffffff",
  950. correctLevel: QRCode.CorrectLevel.H
  951. });
  952. }
  953. },
  954. //查询缴费状态
  955. refreshStatus(item) {
  956. let inscompany = {
  957. 国任财险: "updateOrderInfoGuoren",
  958. 华泰财险: "orderStatushuatai",
  959. 大家财险: "updateOrderInfoDajia",
  960. 中煤财险: "orderStatuszhongmei",
  961. 太平财险: "auditStatusQuery",
  962. 华农财险: "auditStatusQuery",
  963. 恒邦财险: "auditStatusQuery",
  964. 众安财险: "auditStatusQuery",
  965. 中国人寿: "auditStatusQuery",
  966. 安盛天平: "auditStatusQuery",
  967. 紫金财险: "auditStatusQueryZijin",
  968. 渤海财险: "orderStatusbohai"
  969. };
  970. Object.keys(inscompany).forEach(val => {
  971. if (val == item.inscompany) {
  972. this.$api.letter[inscompany[val]]({ companyId: item.id }).then(
  973. res => {
  974. if (res.code == 200) {
  975. this.$message({
  976. message: res.msg ? res.msg : "已刷新状态",
  977. type: "success"
  978. });
  979. this.findPage();
  980. } else {
  981. this.$message({
  982. showClose: true,
  983. dangerouslyUseHTMLString: true,
  984. message: res.msg.replace(/\n/g, "<br><br>"),
  985. type: "error",
  986. duration: 7000
  987. });
  988. // this.$message({ message: res.msg, type: "error" });
  989. }
  990. }
  991. );
  992. }
  993. });
  994. if (item.inscompany == "永诚财险") {
  995. this.$api.letter.orderStatusyongcheng(item.id).then(res => {
  996. if (res.code == 200) {
  997. this.$message({
  998. message: res.msg ? res.msg : "已刷新状态",
  999. type: "success"
  1000. });
  1001. this.findPage();
  1002. } else {
  1003. this.$message({
  1004. showClose: true,
  1005. dangerouslyUseHTMLString: true,
  1006. message: res.msg.replace(/\n/g, "<br><br>"),
  1007. type: "error",
  1008. duration: 7000
  1009. });
  1010. }
  1011. });
  1012. }
  1013. },
  1014. //华泰刷新核保状态
  1015. updateStatusHuatai(item) {
  1016. this.$api.letter.orderStatushuatai({ companyId: item.id }).then(res => {
  1017. if (res.code == 200) {
  1018. this.$message({
  1019. message: res.msg ? res.msg : "已刷新状态",
  1020. type: "success"
  1021. });
  1022. this.findPage();
  1023. } else {
  1024. this.$message({
  1025. showClose: true,
  1026. dangerouslyUseHTMLString: true,
  1027. message: res.msg.replace(/\n/g, "<br><br>"),
  1028. type: "error",
  1029. duration: 7000
  1030. });
  1031. }
  1032. });
  1033. },
  1034. //查询缴费状态
  1035. querystatus(item, index) {
  1036. this.querystatusLoaing = true;
  1037. let inscompany = {
  1038. 国任财险: "updateOrderInfoGuoren",
  1039. 华泰财险: "updateOrderInfoHuatai",
  1040. 大家财险: "updateOrderInfoDajia",
  1041. 紫金财险: "getOrderDetail",
  1042. 中煤财险: "paymentEnquiry",
  1043. 渤海财险: "getOrderDetailboHai"
  1044. };
  1045. Object.keys(inscompany).forEach(val => {
  1046. if (val == item.inscompany) {
  1047. this.$api.letter[inscompany[val]]({ companyId: item.id }).then(
  1048. res => {
  1049. if (res.code == 200) {
  1050. this.$message({
  1051. message: res.msg ? res.msg : "已刷新状态",
  1052. type: "success"
  1053. });
  1054. this.quotationhistorydialogVisible
  1055. ? this.RadioHistoryChange()
  1056. : "";
  1057. this.findPage();
  1058. this.querystatusLoaing = false;
  1059. } else {
  1060. this.querystatusLoaing = false;
  1061. this.$message({ message: res.msg, type: "error" });
  1062. }
  1063. }
  1064. );
  1065. }
  1066. });
  1067. if (item.inscompany == "永诚财险") {
  1068. this.$api.letter.orderStatusyongcheng(item.id).then(res => {
  1069. if (res.code == 200) {
  1070. this.$message({
  1071. message: res.msg ? res.msg : "已刷新状态",
  1072. type: "success"
  1073. });
  1074. this.quotationhistorydialogVisible ? this.RadioHistoryChange() : "";
  1075. this.findPage();
  1076. this.querystatusLoaing = false;
  1077. } else {
  1078. this.querystatusLoaing = false;
  1079. this.$message({ message: res.msg, type: "error" });
  1080. }
  1081. });
  1082. }
  1083. if (
  1084. item.inscompany == "恒邦财险" ||
  1085. item.inscompany == "众安财险" ||
  1086. item.inscompany == "中国人寿" ||
  1087. item.inscompany == "安盛天平" ||
  1088. item.inscompany == "太平财险" ||
  1089. item.inscompany == "华农财险"
  1090. ) {
  1091. this.$api.letter
  1092. .pychonverifyPayment({ subOrderNo: item.id })
  1093. .then(res => {
  1094. if (res.code == "200") {
  1095. this.$message({
  1096. message: "订单支付成功,正在更改状态",
  1097. type: "success"
  1098. });
  1099. this.quotationhistorydialogVisible
  1100. ? this.RadioHistoryChange()
  1101. : "";
  1102. this.findPage();
  1103. this.querystatusLoaing = false;
  1104. } else {
  1105. this.querystatusLoaing = false;
  1106. this.$message({ message: res.msg, type: "error" });
  1107. }
  1108. });
  1109. }
  1110. },
  1111. cancelorder(item) {
  1112. this.$api.letter.zijincancelorder({ companyId: item.id }).then(res => {
  1113. if (res.code == 200) {
  1114. this.$message({
  1115. message: res.msg,
  1116. type: "success"
  1117. });
  1118. this.findPage();
  1119. }
  1120. });
  1121. },
  1122. //二维码
  1123. carcode( item) {
  1124. this.$api.letter.getQrCode(item.id).then(res => {
  1125. if (res.code == "200") {
  1126. this.inscompany = res.data.inscompany; //保险公司
  1127. this.sumpremium = res.data.sumpremium; //总价
  1128. this.licenseNo = res.data.cPlateNo; //车牌号
  1129. this.applyName = res.data.cInsuredNme; //车主
  1130. this.jqpremium = res.data.jqpremium; //交强
  1131. this.sypremium = res.data.sypremium; //商业
  1132. this.taxamount = res.data.taxamount; //车船税
  1133. this.jypremium = res.data.jypremium; //驾意险
  1134. this.jqstartdate = res.data.jqStartDate; //交强起保日期
  1135. this.systartdate = res.data.syStartDate; //商业起保日期
  1136. // this.mobile = res.data.applyinfo.mobile;//投保人手机号
  1137. let qrCodeUrl=res.data.qrCodeUrl
  1138. this.$api.letter.getThemeByUserId().then(res => {
  1139. if (res.code==200) {
  1140. if(res.data.themeCode=='GD'){
  1141. this.codedialogVisiblePro = true;
  1142. this.qrcodeWidth = "154";
  1143. this.qrcodeHeight = "154";
  1144. }
  1145. else {
  1146. this.codedialogVisible = true;
  1147. }
  1148. this.$nextTick (function () {
  1149. if (item.inscompany == "太平财险") {
  1150. let anresult = qrCodeUrl.replace(/[\r\n]/g, "");
  1151. let animgBase64 = `data:image/png;base64,${anresult}`;
  1152. base64ToPath(animgBase64).then(path => {
  1153. this.paycodeimg = path;
  1154. });
  1155. } else {
  1156. this.creatQrCode(qrCodeUrl);
  1157. }
  1158. });
  1159. }
  1160. })
  1161. } else {
  1162. this.$message({ message: res.msg, type: "warning" });
  1163. }
  1164. });
  1165. // this.$api.letter.getByCompanyId(params).then(res => {
  1166. // if (res.code == '200') {
  1167. // this.inscompany = res.data.inscompany;//保险公司
  1168. // this.sumpremium = res.data.sumpremium;//总价
  1169. // this.licenseNo = res.data.carinfo.licenseNo;//车牌号
  1170. // this.applyName = res.data.insuredname;//车主
  1171. // this.jqpremium = res.data.jqpremium;//交强
  1172. // this.sypremium = res.data.sypremium;//商业
  1173. // this.taxamount = res.data.taxamount;//车船税
  1174. // this.jypremium = res.data.jypremium;//驾意险
  1175. // this.jqstartdate = res.data.jqstartdate;//交强起保日期
  1176. // this.systartdate = res.data.systartdate;//商业起保日期
  1177. // this.mobile = res.data.applyinfo.mobile;//投保人手机号
  1178. // switch (item.inscompany) {
  1179. // case "永安财险":
  1180. // let url = this.global.h5BaseUrl + '/#/pages/carInsure1/yonganCode?companyId=' + item.id + '&mobile=' + this.mobile;
  1181. // this.$nextTick(() => {
  1182. // this.creatQrCode(url);
  1183. // });
  1184. // break;
  1185. // case "人保财险":
  1186. // case "中煤财险":
  1187. // case "华泰财险":
  1188. // case "永诚财险":
  1189. // case "紫金财险":
  1190. // this.$nextTick(() => {
  1191. // this.creatQrCode(res.data.paymentLink);
  1192. // });
  1193. // break;
  1194. // case "众安财险":
  1195. // this.paycodeimg = res.data.paymentLink;
  1196. // break;
  1197. // case "中国人寿":
  1198. // this.$nextTick(() => {
  1199. // this.creatQrCode(res.data.paymentLink);
  1200. // });
  1201. // break;
  1202. // case "恒邦财险":
  1203. // this.paycodeimg = res.data.paymentLink;
  1204. // break;
  1205. // case "国任财险":
  1206. // this.paycodeimg = res.data.paymentLink;
  1207. // break;
  1208. // case "安盛天平":
  1209. // let anresult = res.data.paymentLink.replace(/[\r\n]/g, "");
  1210. // let animgBase64 = `data:image/png;base64,${anresult}`;
  1211. // base64ToPath(animgBase64)
  1212. // .then(path => {
  1213. // this.paycodeimg = path;
  1214. // })
  1215. // break;
  1216. // default:
  1217. // this.$message({ message: "识别不到保险公司,请检查", type: "warning" })
  1218. // }
  1219. // this.codedialogVisible = true;
  1220. // } else {
  1221. // this.$message({ message: res.msg, type: "warning" })
  1222. // }
  1223. // })
  1224. },
  1225. orderTrajectory(row, item) {
  1226. this.$api.letter.queryBySuborder(item.id).then(res => {
  1227. if (res.code == 200 && res.data.length > 0) {
  1228. this.ddgjdialogVisible = true;
  1229. this.trajectoryTable = res.data;
  1230. } else {
  1231. this.$message({
  1232. message: res.msg || "暂无数据!",
  1233. type: "warning"
  1234. });
  1235. }
  1236. });
  1237. },
  1238. capTypedictTag(val,option) {
  1239. if(option.find(item => item.dictValue == val)){
  1240. return option.find(item => item.dictValue == val).dictTag;
  1241. }
  1242. else{
  1243. return '-'
  1244. }
  1245. },
  1246. //应用详情
  1247. OrderDetails(dy, item) {
  1248. this.carImageList = [];
  1249. this.ownerImageList = []; //车主影像
  1250. this.policyImageList = []; //投保人影像
  1251. this.insuredImageList = []; //被保人影像
  1252. this.carCheckImageList = []; //验车照影像
  1253. // 影像控制
  1254. this.pic1Control = false;
  1255. this.pic2Control = false;
  1256. this.pic3Control = false;
  1257. this.pic4Control = false;
  1258. this.pic5Control = false;
  1259. for (let i = 0; i < this.global.insureList.length; i++) {
  1260. this.global.insureList[i].coveragePremium = "";
  1261. this.global.insureList[i].amount = 0;
  1262. }
  1263. let params = {
  1264. companyId: item.id
  1265. };
  1266. this.$api.letter.getByCompanyId(params).then(res => {
  1267. if (res.code == 200) {
  1268. this.licenseNo = res.data.licenseno; //车牌号
  1269. this.inscompany = res.data.inscompany; //保险公司
  1270. // res.data.carinfo.carnature = this.natureOfVehicleUseCap(
  1271. // res.data.carinfo.carnature
  1272. // );
  1273. if(res.data.carinfo.carnature && res.data.carinfo.carnature == '02' || res.data.carinfo.carnature == '非营业'){
  1274. res.data.carinfo.vehicleUse=this.capTypedictTag(res.data.carinfo.vehicleUse,this.outOfBusinessVehicleUseoptions)
  1275. }else{
  1276. res.data.carinfo.vehicleUse=this.capTypedictTag(res.data.carinfo.vehicleUse,this.businessVehicleUseoptions)
  1277. }
  1278. res.data.carinfo.carnature = this.capTypedictTag( res.data.carinfo.carnature,this.natureOfVehicleUseoptions);
  1279. res.data.carinfo.cartype=res.data.carinfo.cartype?this.capTypedictTag(res.data.carinfo.cartype,this.trafficManagementVehicleTypeoptions):''
  1280. res.data.carinfo.cimodelclass=res.data.carinfo.cimodelclass?this.capTypedictTag(res.data.carinfo.cimodelclass,this.vehicleTypeoptions):''
  1281. res.data.carinfo.energyType=res.data.carinfo.energyType?this.capTypedictTag(res.data.carinfo.energyType,this.energyTypeoptions):''
  1282. if (res.data.accidentInfo) {
  1283. res.data.accidentInfo.constructor === Object
  1284. ? [res.data.accidentInfo]
  1285. : res.data.accidentInfo;
  1286. }
  1287. Object.assign(this.orderInfo, res.data);
  1288. if (this.orderInfo.riskinfo && this.orderInfo.riskinfo.length > 0) {
  1289. for (let i = 0; i < this.orderInfo.riskinfo.length; i++) {
  1290. if (this.orderInfo.riskinfo[i].riskCode == "0510") {
  1291. for (let j = 0; j < this.orderInfo.kindinfo.length; j++) {
  1292. for (let m = 0; m < this.global.insureList.length; m++) {
  1293. if (
  1294. this.orderInfo.kindinfo[j].kindCode ==
  1295. this.global.insureList[m].kindCode
  1296. ) {
  1297. this.global.insureList[
  1298. m
  1299. ].coveragePremium = this.orderInfo.kindinfo[
  1300. j
  1301. ].coveragePremium;
  1302. if (this.orderInfo.kindinfo[j].kindCode == "B") {
  1303. this.global.insureList[9].amtList[0].value = this.orderInfo.kindinfo[
  1304. j
  1305. ].amount;
  1306. }
  1307. if (this.orderInfo.kindinfo[j].kindCode == "A") {
  1308. this.global.insureList[m].amount = "1";
  1309. } else if (this.global.insureList[m].kindCode == "D4") {
  1310. this.global.insureList[
  1311. m
  1312. ].amount = this.orderInfo.kindinfo[j].unitAmount;
  1313. } else if (
  1314. this.global.insureList[m].isMainRisk ||
  1315. this.global.insureList[m].kindCode == "BD" ||
  1316. this.global.insureList[m].kindCode == "L"
  1317. ) {
  1318. this.global.insureList[
  1319. m
  1320. ].amount = this.orderInfo.kindinfo[j].amount;
  1321. } else {
  1322. this.global.insureList[
  1323. m
  1324. ].amount = this.orderInfo.kindinfo[j].deductibleRate;
  1325. }
  1326. }
  1327. }
  1328. }
  1329. }
  1330. }
  1331. }
  1332. // 获取影像
  1333. this.$api.letter.findByQuoteNo(dy.quoteno).then(resImage => {
  1334. Object.keys(resImage.data).forEach(keys => {
  1335. if (resImage.data[keys]) {
  1336. resImage.data[keys].url = resImage.data[keys].url
  1337. ? process.env.BASE_URL + resImage.data[keys].url
  1338. : null;
  1339. switch (keys) {
  1340. case "C01":
  1341. case "D01":
  1342. resImage.data[keys].url
  1343. ? this.carImageList.push(resImage.data[keys].url)
  1344. : "";
  1345. break;
  1346. case "C02":
  1347. case "D02":
  1348. resImage.data[keys].url
  1349. ? this.ownerImageList.push(resImage.data[keys].url)
  1350. : "";
  1351. break;
  1352. case "C03":
  1353. case "D03":
  1354. resImage.data[keys].url
  1355. ? this.policyImageList.push(resImage.data[keys].url)
  1356. : "";
  1357. break;
  1358. case "C04":
  1359. case "D04":
  1360. resImage.data[keys].url
  1361. ? this.insuredImageList.push(resImage.data[keys].url)
  1362. : "";
  1363. break;
  1364. case "XC00":
  1365. case "GC00":
  1366. case "GX00":
  1367. resImage.data[keys].url
  1368. ? this.carCheckImageList.push(resImage.data[keys].url)
  1369. : "";
  1370. break;
  1371. default:
  1372. break;
  1373. }
  1374. }
  1375. });
  1376. let obj = {
  1377. carImageList: this.carImageList,
  1378. ownerImageList: this.ownerImageList,
  1379. policyImageList: this.policyImageList,
  1380. insuredImageList: this.insuredImageList,
  1381. carCheckImageList: this.carCheckImageList
  1382. };
  1383. this.$refs.detailsDialog.imageFun(obj);
  1384. });
  1385. this.pic1Control = false;
  1386. this.pic2Control = false;
  1387. this.pic3Control = false;
  1388. this.pic4Control = false;
  1389. this.pic5Control = false;
  1390. this.oldfileList = [];
  1391. let businessList = [];
  1392. let accidentList = [];
  1393. if (res.data.orderstatus == "3") {
  1394. switch (res.data.inscompany) {
  1395. case "永安财险":
  1396. if (this.orderInfo.jqpolicyno) {
  1397. this.$api.letter
  1398. .getPolicyPrint({
  1399. companyId: item.id,
  1400. policytype: "jq"
  1401. })
  1402. .then(res => {
  1403. //交强保单
  1404. if (res.data) {
  1405. let result = res.data.replace(/[\r\n]/g, "");
  1406. let pdfBase64 = `data:application/pdf;base64,${result}`;
  1407. base64ToPath(pdfBase64).then(path => {
  1408. if (path) {
  1409. this.oldfileList.push({
  1410. fileTitle: "交强电子保单",
  1411. filename: this.orderInfo.jqpolicyno,
  1412. fileurl: path
  1413. });
  1414. }
  1415. });
  1416. }
  1417. });
  1418. this.$api.letter
  1419. .getPolicyPrint2({
  1420. companyId: item.id,
  1421. policytype: "jq"
  1422. })
  1423. .then(res => {
  1424. //交强保单
  1425. if (res.data) {
  1426. let result = res.data.replace(/[\r\n]/g, "");
  1427. let pdfBase64 = `data:application/pdf;base64,${result}`;
  1428. base64ToPath(pdfBase64).then(path => {
  1429. if (path) {
  1430. this.oldfileList.push({
  1431. fileTitle: "交强电子标志",
  1432. filename: this.orderInfo.jqpolicyno,
  1433. fileurl: path
  1434. });
  1435. }
  1436. });
  1437. }
  1438. });
  1439. }
  1440. if (this.orderInfo.sypolicyno) {
  1441. this.$api.letter
  1442. .getPolicyPrint({
  1443. companyId: item.id,
  1444. policytype: "sy"
  1445. })
  1446. .then(res => {
  1447. //商业保单
  1448. if (res.data) {
  1449. let result = res.data.replace(/[\r\n]/g, "");
  1450. let pdfBase64 = `data:application/pdf;base64,${result}`;
  1451. base64ToPath(pdfBase64).then(path => {
  1452. if (path) {
  1453. businessList.push({
  1454. fileTitle: "商业电子保单",
  1455. filename: this.orderInfo.sypolicyno,
  1456. fileurl: path
  1457. });
  1458. }
  1459. });
  1460. }
  1461. });
  1462. }
  1463. break;
  1464. case "华泰财险":
  1465. if (this.orderInfo.jqpolicyno) {
  1466. this.$api.letter
  1467. .HuataigetPolicyPrint({
  1468. companyId: item.id,
  1469. riskCode: "0507",
  1470. type: "2" //2:保单
  1471. })
  1472. .then(res => {
  1473. if (res.data) {
  1474. if (res.data.jqxPolicyUrl) {
  1475. this.oldfileList.push({
  1476. fileTitle: "交强电子保单",
  1477. filename: this.orderInfo.jqpolicyno,
  1478. fileurl: res.data.jqxPolicyUrl
  1479. });
  1480. }
  1481. if (res.data.jqxFlagUrl) {
  1482. this.oldfileList.push({
  1483. fileTitle: "交强电子标志",
  1484. filename: this.orderInfo.jqpolicyno,
  1485. fileurl: res.data.jqxFlagUrl
  1486. });
  1487. }
  1488. } else {
  1489. this.$message.error(res.msg);
  1490. }
  1491. });
  1492. }
  1493. if (this.orderInfo.sypolicyno) {
  1494. this.$api.letter
  1495. .HuataigetPolicyPrint({
  1496. companyId: item.id,
  1497. riskCode: "0510",
  1498. type: "2" //2:保单
  1499. })
  1500. .then(res => {
  1501. if (res.data && res.data.syxPolicyUrl) {
  1502. businessList.push({
  1503. fileTitle: "商业电子保单",
  1504. filename: this.orderInfo.sypolicyno,
  1505. fileurl: res.data.syxPolicyUrl
  1506. });
  1507. } else {
  1508. this.$message.error(res.msg);
  1509. }
  1510. });
  1511. }
  1512. break;
  1513. case "中煤财险":
  1514. if (this.orderInfo.jqpolicyno) {
  1515. this.$api.letter
  1516. .ZhongmeigetPolicyPrint({
  1517. companyId: item.id,
  1518. riskCode: "0507",
  1519. type: "2" //2:保单
  1520. })
  1521. .then(res => {
  1522. if (res.data && res.data[0]) {
  1523. this.oldfileList.push({
  1524. fileTitle: "交强电子保单",
  1525. filename: this.orderInfo.jqpolicyno,
  1526. fileurl: res.data[0]
  1527. });
  1528. } else {
  1529. this.$message.error(res.msg);
  1530. }
  1531. });
  1532. this.$api.letter
  1533. .ZhongmeigetPolicyPrint({
  1534. companyId: item.id,
  1535. riskCode: "0507",
  1536. type: "1" // 1:标志
  1537. })
  1538. .then(res => {
  1539. if (res.data && res.data[0]) {
  1540. this.oldfileList.push({
  1541. fileTitle: "交强电子标志",
  1542. filename: this.orderInfo.jqpolicyno,
  1543. fileurl: res.data[0]
  1544. });
  1545. } else {
  1546. this.$message.error(res.msg);
  1547. }
  1548. });
  1549. }
  1550. if (this.orderInfo.sypolicyno) {
  1551. this.$api.letter
  1552. .ZhongmeigetPolicyPrint({
  1553. companyId: item.id,
  1554. riskCode: "0510",
  1555. type: "2" //2:保单
  1556. })
  1557. .then(res => {
  1558. if (res.data && res.data[0]) {
  1559. businessList.push({
  1560. fileTitle: "商业电子保单",
  1561. filename: this.orderInfo.sypolicyno,
  1562. fileurl: res.data[0]
  1563. });
  1564. } else {
  1565. this.$message.error(res.msg);
  1566. }
  1567. });
  1568. }
  1569. if (this.orderInfo.crossInsurance.length > 0) {
  1570. this.orderInfo.crossInsurance.map(ele => {
  1571. this.$api.letter
  1572. .ZhongmeigetPolicyPrint({
  1573. ridePolicyNo: ele.ridePolicyNo,
  1574. companyId: item.id,
  1575. riskCode: "0513",
  1576. type: "2" //2:保单
  1577. })
  1578. .then(res => {
  1579. if (res.code == 200 && res.data) {
  1580. accidentList.push({
  1581. fileTitle: "驾意险保单",
  1582. filename: this.orderInfo.sypolicyno,
  1583. fileurl: res.data[0]
  1584. });
  1585. } else {
  1586. this.$message.error(res.msg);
  1587. }
  1588. });
  1589. });
  1590. }
  1591. break;
  1592. case "永诚财险":
  1593. if (this.orderInfo.jqpolicyno) {
  1594. this.$api.letter
  1595. .yongchenggetPolicyPrint({
  1596. companyId: item.id,
  1597. riskCode: "0507",
  1598. type: "2" //2:保单
  1599. })
  1600. .then(res => {
  1601. if (res.code == 200 && res.data) {
  1602. if (res.data.jqUrl) {
  1603. this.oldfileList.push({
  1604. fileTitle: "交强电子保单",
  1605. filename: this.orderInfo.jqpolicyno,
  1606. fileurl: res.data.jqUrl
  1607. });
  1608. }
  1609. if (res.data.jqFlagUrl) {
  1610. this.oldfileList.push({
  1611. fileTitle: "交强电子标志",
  1612. filename: this.orderInfo.jqpolicyno,
  1613. fileurl: res.data.jqFlagUrl
  1614. });
  1615. }
  1616. } else {
  1617. this.$message.error(res.msg);
  1618. }
  1619. });
  1620. }
  1621. if (this.orderInfo.sypolicyno) {
  1622. this.$api.letter
  1623. .yongchenggetPolicyPrint({
  1624. companyId: item.id,
  1625. riskCode: "0510",
  1626. type: "2" //2:保单
  1627. })
  1628. .then(res => {
  1629. if (res.data && res.data.syUrl) {
  1630. businessList.push({
  1631. fileTitle: "商业电子保单",
  1632. filename: this.orderInfo.sypolicyno,
  1633. fileurl: res.data.syUrl
  1634. });
  1635. } else {
  1636. this.$message.error(res.msg);
  1637. }
  1638. });
  1639. }
  1640. if (this.orderInfo.crossInsurance.length > 0) {
  1641. this.orderInfo.crossInsurance.map(ele => {
  1642. this.$api.letter
  1643. .yongchenggetPolicyPrint({
  1644. companyId: item.id,
  1645. policyNumber: ele.policyNumber,
  1646. riskCode: "0513",
  1647. type: "2" //2:保单
  1648. })
  1649. .then(res => {
  1650. if (res.code == 200 && res.data) {
  1651. accidentList.push({
  1652. fileTitle: "驾意险保单",
  1653. filename: ele.policyNumber,
  1654. fileurl: res.data.jyUrl
  1655. });
  1656. } else {
  1657. this.$message.error(res.msg);
  1658. }
  1659. });
  1660. });
  1661. }
  1662. break;
  1663. case "国任财险":
  1664. if (this.orderInfo.jqpolicyno) {
  1665. this.$api.letter
  1666. .guoRengetPolicyPrint({
  1667. companyId: item.id,
  1668. riskCode: "0507",
  1669. type: "2" //2:保单
  1670. })
  1671. .then(res => {
  1672. if (res.data) {
  1673. this.oldfileList.push({
  1674. fileTitle: "交强电子保单",
  1675. filename: this.orderInfo.jqpolicyno,
  1676. fileurl: res.data
  1677. });
  1678. } else {
  1679. this.$message.error(res.msg);
  1680. }
  1681. });
  1682. this.$api.letter
  1683. .guoRengetPolicyPrint({
  1684. companyId: item.id,
  1685. riskCode: "0507",
  1686. type: "1" //1:标志
  1687. })
  1688. .then(res => {
  1689. if (res.data) {
  1690. this.oldfileList.push({
  1691. fileTitle: "交强电子标志",
  1692. filename: this.orderInfo.jqpolicyno,
  1693. fileurl: res.data
  1694. });
  1695. } else {
  1696. this.$message.error(res.msg);
  1697. }
  1698. });
  1699. }
  1700. if (this.orderInfo.sypolicyno) {
  1701. this.$api.letter
  1702. .guoRengetPolicyPrint({
  1703. companyId: item.id,
  1704. riskCode: "0510",
  1705. type: "2" //2:保单
  1706. })
  1707. .then(res => {
  1708. if (res.data) {
  1709. businessList.push({
  1710. fileTitle: "商业电子保单",
  1711. filename: this.orderInfo.sypolicyno,
  1712. fileurl: res.data
  1713. });
  1714. } else {
  1715. this.$message.error(res.msg);
  1716. }
  1717. });
  1718. }
  1719. if (this.orderInfo.crossInsurance.length > 0) {
  1720. this.orderInfo.crossInsurance.map(ele => {
  1721. this.$api.letter
  1722. .guoRengetPolicyPrint({
  1723. companyId: item.id,
  1724. policyNumber: ele.policyNumber,
  1725. riskCode: "0513",
  1726. type: "2" //2:保单
  1727. })
  1728. .then(res => {
  1729. if (res.data) {
  1730. accidentList.push({
  1731. fileTitle: "驾意险保单",
  1732. filename: ele.policyNumber,
  1733. fileurl: res.data
  1734. });
  1735. } else {
  1736. this.$message.error(res.msg);
  1737. }
  1738. });
  1739. });
  1740. }
  1741. break;
  1742. case "紫金财险":
  1743. if (this.orderInfo.jqpolicyno) {
  1744. this.$api.letter
  1745. .zijingetPolicyPrint({
  1746. companyId: item.id,
  1747. riskCode: "0507",
  1748. type: "2" //2:保单
  1749. })
  1750. .then(res => {
  1751. if (res.data) {
  1752. this.oldfileList.push({
  1753. fileTitle: "交强电子保单",
  1754. filename: this.orderInfo.jqpolicyno,
  1755. fileurl: res.data
  1756. });
  1757. } else {
  1758. this.$message.error(res.msg);
  1759. }
  1760. });
  1761. this.$api.letter
  1762. .zijingetPolicyPrint({
  1763. companyId: item.id,
  1764. riskCode: "0507",
  1765. type: "1" //1:标志
  1766. })
  1767. .then(res => {
  1768. if (res.data) {
  1769. this.oldfileList.push({
  1770. fileTitle: "交强电子标志",
  1771. filename: this.orderInfo.jqpolicyno,
  1772. fileurl: res.data
  1773. });
  1774. } else {
  1775. this.$message.error(res.msg);
  1776. }
  1777. });
  1778. }
  1779. if (this.orderInfo.sypolicyno) {
  1780. this.$api.letter
  1781. .zijingetPolicyPrint({
  1782. companyId: item.id,
  1783. riskCode: "0510",
  1784. type: "2" //2:保单
  1785. })
  1786. .then(res => {
  1787. if (res.data) {
  1788. businessList.push({
  1789. fileTitle: "商业电子保单",
  1790. filename: this.orderInfo.sypolicyno,
  1791. fileurl: res.data
  1792. });
  1793. } else {
  1794. this.$message.error(res.msg);
  1795. }
  1796. });
  1797. }
  1798. if (this.orderInfo.crossInsurance.length > 0) {
  1799. this.orderInfo.crossInsurance.map(ele => {
  1800. this.$api.letter
  1801. .zijingetPolicyPrint({
  1802. companyId: item.id,
  1803. policyNumber: ele.policyNumber,
  1804. riskCode: "0513",
  1805. type: "2" //2:保单
  1806. })
  1807. .then(res => {
  1808. if (res.data) {
  1809. accidentList.push({
  1810. fileTitle: "驾意险保单",
  1811. filename: ele.policyNumber,
  1812. fileurl: res.data
  1813. });
  1814. } else {
  1815. this.$message.error(res.msg);
  1816. }
  1817. });
  1818. });
  1819. }
  1820. break;
  1821. case "渤海财险":
  1822. if (this.orderInfo.jqpolicyno) {
  1823. this.$api.letter
  1824. .getPolicyPrintboHai({
  1825. companyId: item.id
  1826. })
  1827. .then(res => {
  1828. if (res.code == 200 && res.data) {
  1829. if (res.data.jqxPolicyUrl) {
  1830. this.oldfileList.push({
  1831. fileTitle: "交强电子保单",
  1832. filename: this.orderInfo.jqpolicyno,
  1833. fileurl: res.data.jqxPolicyUrl
  1834. });
  1835. }
  1836. if (res.data.jqxFlagUrl) {
  1837. this.oldfileList.push({
  1838. fileTitle: "交强电子标志",
  1839. filename: this.orderInfo.jqpolicyno,
  1840. fileurl: res.data.jqxFlagUrl
  1841. });
  1842. }
  1843. if (res.data.syxPolicyUrl) {
  1844. businessList.push({
  1845. fileTitle: "商业电子保单",
  1846. filename: this.orderInfo.sypolicyno,
  1847. fileurl: res.data.syxPolicyUrl
  1848. });
  1849. }
  1850. if (
  1851. res.data.jyxInfoList &&
  1852. res.data.jyxInfoList.length > 0
  1853. ) {
  1854. res.data.jyxInfoList.forEach(val => {
  1855. accidentList.push({
  1856. fileTitle: "驾意险保单",
  1857. filename: "驾意险保单",
  1858. fileurl: val.jyx_policy_url
  1859. });
  1860. });
  1861. }
  1862. } else {
  1863. this.$message.error(res.msg);
  1864. }
  1865. });
  1866. }
  1867. break;
  1868. case "恒邦财险":
  1869. case "安盛天平":
  1870. case "中国人寿":
  1871. case "太平财险":
  1872. case "华农财险":
  1873. case "众安财险":
  1874. if (this.orderInfo.jqpolicyno || this.orderInfo.sypolicyno) {
  1875. this.$api.letter
  1876. .pythongetPolicyPrint({
  1877. subOrderNo: item.id
  1878. })
  1879. .then(res => {
  1880. if (res.code == 200 && res.data) {
  1881. if (res.data.jqxPolicyUrl) {
  1882. this.oldfileList.push({
  1883. fileTitle: "交强电子保单",
  1884. filename: this.orderInfo.jqpolicyno,
  1885. fileurl: res.data.jqxPolicyUrl
  1886. });
  1887. }
  1888. if (res.data.jqxFlagUrl) {
  1889. this.oldfileList.push({
  1890. fileTitle: "交强电子标志",
  1891. filename: this.orderInfo.jqpolicyno,
  1892. fileurl: res.data.jqxFlagUrl
  1893. });
  1894. }
  1895. if (res.data.syxPolicyUrl) {
  1896. businessList.push({
  1897. fileTitle: "商业电子保单",
  1898. filename: this.orderInfo.sypolicyno,
  1899. fileurl: res.data.syxPolicyUrl
  1900. });
  1901. }
  1902. if (
  1903. res.data.jyxInfoList &&
  1904. res.data.jyxInfoList.length > 0
  1905. ) {
  1906. res.data.jyxInfoList.forEach(val => {
  1907. accidentList.push({
  1908. fileTitle: "驾意险保单",
  1909. filename: "驾意险保单",
  1910. fileurl: val.jyx_policy_url
  1911. });
  1912. });
  1913. }
  1914. } else {
  1915. this.$message.error(res.msg);
  1916. }
  1917. });
  1918. }
  1919. break;
  1920. case "大家财险":
  1921. if (this.orderInfo.jqpolicyno) {
  1922. this.$api.letter
  1923. .obtainWarranty({
  1924. companyId: item.id,
  1925. riskCode: "0507",
  1926. type: "2" //2:保单
  1927. })
  1928. .then(res => {
  1929. if (res.data) {
  1930. this.oldfileList.push({
  1931. fileTitle: "交强电子保单",
  1932. filename: this.orderInfo.jqpolicyno,
  1933. fileurl: res.data
  1934. });
  1935. } else {
  1936. this.$message.error(res.msg);
  1937. }
  1938. });
  1939. this.$api.letter
  1940. .obtainWarranty({
  1941. companyId: item.id,
  1942. riskCode: "0507",
  1943. type: "1" //1:标志
  1944. })
  1945. .then(res => {
  1946. if (res.data) {
  1947. this.oldfileList.push({
  1948. fileTitle: "交强电子标志",
  1949. filename: this.orderInfo.jqpolicyno,
  1950. fileurl: res.data
  1951. });
  1952. } else {
  1953. this.$message.error(res.msg);
  1954. }
  1955. });
  1956. }
  1957. if (this.orderInfo.sypolicyno) {
  1958. this.$api.letter
  1959. .obtainWarranty({
  1960. companyId: item.id,
  1961. riskCode: "0510",
  1962. type: "2" //2:保单
  1963. })
  1964. .then(res => {
  1965. if (res.data) {
  1966. businessList.push({
  1967. fileTitle: "商业电子保单",
  1968. filename: this.orderInfo.sypolicyno,
  1969. fileurl: res.data
  1970. });
  1971. }
  1972. });
  1973. }
  1974. if (this.orderInfo.crossInsurance.length > 0) {
  1975. this.orderInfo.crossInsurance.map(ele => {
  1976. this.$api.letter
  1977. .zijingetPolicyPrint({
  1978. companyId: item.id,
  1979. policyNumber: ele.policyNumber,
  1980. riskCode: "0513",
  1981. type: "2" //2:保单
  1982. })
  1983. .then(res => {
  1984. if (res.data) {
  1985. accidentList.push({
  1986. fileTitle: "驾意险保单",
  1987. filename: ele.policyNumber,
  1988. fileurl: res.data
  1989. });
  1990. } else {
  1991. this.$message.error(res.msg);
  1992. }
  1993. });
  1994. });
  1995. }
  1996. break;
  1997. default:
  1998. }
  1999. let obj = {
  2000. oldfileList: this.oldfileList,
  2001. businessList,
  2002. accidentList
  2003. };
  2004. this.$refs.detailsDialog.warrantyFun(obj);
  2005. }
  2006. this.showInsureList = false;
  2007. this.$refs.detailsDialog.setBackupVisible(true);
  2008. } else {
  2009. this.$message.error("订单获取失败");
  2010. }
  2011. });
  2012. },
  2013. //联级选择器触发事件
  2014. handleChange(val) {
  2015. if (val.length !== 0) {
  2016. this.pageRequest.deptId = val.at(-1);
  2017. } else {
  2018. this.pageRequest.deptId = "";
  2019. }
  2020. },
  2021. handleClose(done) {
  2022. this.$confirm("确认关闭?")
  2023. .then(_ => {
  2024. done();
  2025. })
  2026. .catch(_ => {});
  2027. },
  2028. httpRequest(options) {
  2029. let file = options.file;
  2030. let filename = options.filename;
  2031. let reader = new FileReader();
  2032. if (file) {
  2033. reader.readAsDataURL(file);
  2034. }
  2035. reader.onload = () => {
  2036. let base64Str = reader.result;
  2037. this[options.filename].push(base64Str);
  2038. };
  2039. },
  2040. // 设置每页条数
  2041. applyhandleSizeChange(val) {
  2042. this.pageSize = val;
  2043. this.pageNum = 1;
  2044. this.pageRequest.pageNum = 1;
  2045. this.pageRequest.pageSize = val;
  2046. this.findPage();
  2047. },
  2048. // 当前页
  2049. applyhandleCurrentChange(val) {
  2050. this.pageNum = val;
  2051. this.pageRequest.pageNum = val;
  2052. this.findPage();
  2053. },
  2054. saveAs(blob, filename) {
  2055. var link = document.createElement("a");
  2056. link.href = window.URL.createObjectURL(blob);
  2057. link.target = "_ blank";
  2058. link.download = filename;
  2059. link.click();
  2060. },
  2061. //预览文件
  2062. viewfile(index) {
  2063. let name = index.fileurl.lastIndexOf("/");
  2064. fetch(index.fileurl)
  2065. .then(response => response.blob())
  2066. .then(blob => {
  2067. this.saveAs(
  2068. blob,
  2069. index.fileurl.substring(name + 1, index.fileurl.length)
  2070. );
  2071. })
  2072. .catch(error => {});
  2073. // const a = document.createElement('a')
  2074. // a.style.display = 'none'
  2075. // a.href = index.fileurl
  2076. // a.target = '_ blank';
  2077. // a.download = this.licenseNo+ '.pdf'; // 下载文件的名字
  2078. // document.body.appendChild(a)
  2079. // a.click()
  2080. },
  2081. //锚链接
  2082. // jump(obj) {
  2083. // var s = document.getElementById(obj);
  2084. // var parent = s.parentNode;
  2085. // for (let i = 0; i < parent.childNodes.length; i++) {
  2086. // if (parent.childNodes[i].tagName == "DIV") {
  2087. // if (parent.childNodes[i].childNodes[0].classList.contains("active")) {
  2088. // parent.childNodes[i].childNodes[0].classList.remove("active");
  2089. // }
  2090. // }
  2091. // }
  2092. // s.childNodes[0].classList.add("active");
  2093. // },
  2094. // //表格行点击下拉事件
  2095. // handleRowClick(row) {
  2096. // if(!row.expanded){
  2097. // this.$api.letter.querySonOrders({orderNo:row.orderno}).then(res=>{
  2098. // if(res.code=='200' && res.data.length!=0){
  2099. // this.pageResult.map(item=>{
  2100. // if(item.orderno===row.orderno){
  2101. // item.insAreaCompanyList=res.data;
  2102. // }
  2103. // return item;
  2104. // })
  2105. // row.expanded = !row.expanded;
  2106. // this.$refs.expandTable.toggleRowExpansion(row, row.expanded);
  2107. // }else{
  2108. // this.$message.info("暂无数据");
  2109. // }
  2110. // })
  2111. // }else{
  2112. // row.expanded = !row.expanded;
  2113. // this.$refs.expandTable.toggleRowExpansion(row, row.expanded);
  2114. // }
  2115. // },
  2116. handleRowChange(row) {
  2117. if (!row.expanded) {
  2118. this.$api.letter.querySonOrders({ orderNo: row.orderno }).then(res => {
  2119. if (res.code == "200" && res.data.length != 0) {
  2120. this.pageResult.map(item => {
  2121. if (item.orderno === row.orderno) {
  2122. item.insAreaCompanyList = res.data;
  2123. }
  2124. return item;
  2125. });
  2126. row.expanded = !row.expanded;
  2127. this.$refs.expandTable.toggleRowExpansion(row, row.expanded);
  2128. } else {
  2129. this.$message.info("暂无数据");
  2130. }
  2131. });
  2132. } else {
  2133. row.expanded = !row.expanded;
  2134. this.$refs.expandTable.toggleRowExpansion(row, row.expanded);
  2135. }
  2136. },
  2137. //数据
  2138. findPage() {
  2139. this.orderLoaing = true;
  2140. let orderStatus = "";
  2141. if(this.isLetterOrder){
  2142. orderStatus = this.pageRequest.orderStatus == 888 ? '' : this.pageRequest.orderStatus
  2143. this.$api.letter.queryOrders({ ...this.pageRequest, orderStatus }).then((res) => {
  2144. if (res.code == "200") {
  2145. this.orderLoaing = false;
  2146. this.pageResult = res.data.content;
  2147. this.pageNum = res.data.pageNum;
  2148. this.totalSize = res.data.totalSize;
  2149. this.pageResult.forEach((val, index) => {
  2150. this.$set(val, "expanded", false);
  2151. });
  2152. } else {
  2153. this.$message.error(res.msg);
  2154. this.orderLoaing = false;
  2155. }
  2156. });
  2157. }
  2158. else{
  2159. orderStatus = this.statusPor == 888 ? "" : this.statusPor;
  2160. this.$api.task
  2161. .queryPageHospitalityOrder({ ...this.pageRequest, orderStatus,userId:this.userIdPor,deptId:this.deptIdPor })
  2162. .then(res => {
  2163. if (res.code == "200") {
  2164. this.orderLoaing = false;
  2165. this.$nextTick(()=>{
  2166. this.pageResult = res.data.content;
  2167. this.pageNum = res.data.pageNum;
  2168. this.totalSize = res.data.totalSize;
  2169. this.pageResult.forEach((val, index) => {
  2170. this.$set(val, "expanded", false);
  2171. });
  2172. })
  2173. } else {
  2174. this.$message.error(res.msg);
  2175. this.orderLoaing = false;
  2176. }
  2177. });
  2178. }
  2179. },
  2180. //查询
  2181. onSubmit() {
  2182. this.pageRequest.pageNum = 1;
  2183. this.pageRequest.pageSize = 20;
  2184. this.findPage();
  2185. },
  2186. //时间js
  2187. monthChange(e) {
  2188. if (e === null) {
  2189. this.pageRequest.startDate = e;
  2190. this.pageRequest.endDate = e;
  2191. } else {
  2192. this.pageRequest.startDate = e[0];
  2193. this.pageRequest.endDate = e[1];
  2194. }
  2195. },
  2196. // downloadFile(url, fileName, type) {
  2197. // const xhr = new XMLHttpRequest();
  2198. // xhr.open("GET", url, true);
  2199. // xhr.responseType = "blob"; // 获取文件blob数据
  2200. // xhr.onload = function() {
  2201. // if (xhr.status !== 200) {
  2202. // this.$notify.error({
  2203. // title: "错误",
  2204. // message: "下载出现错误"
  2205. // });
  2206. // return;
  2207. // }
  2208. // const newUrl = window.URL.createObjectURL(xhr.response); // 生成一个可用的临时url
  2209. // const a = document.createElement("a"); // 生成a标签调用点击事件
  2210. // a.setAttribute("href", newUrl);
  2211. // a.setAttribute("target", "_blank");
  2212. // a.setAttribute("download", fileName); // 自定义文件名
  2213. // document.body.appendChild(a);
  2214. // a.click();
  2215. // document.body.removeChild(a);
  2216. // };
  2217. // xhr.send();
  2218. // }
  2219. }
  2220. };
  2221. </script>
  2222. <style lang="scss" scoped>
  2223. .scan-code {
  2224. div {
  2225. margin-top: 10px;
  2226. }
  2227. }
  2228. .green_color {
  2229. color: #068069;
  2230. border: 1px solid #068069;
  2231. padding: 7px 8px;
  2232. }
  2233. .red_color {
  2234. color: var(--themeColor);
  2235. border: 1px solid var(--themeColor);
  2236. padding: 7px 8px;
  2237. }
  2238. .blue_color {
  2239. color: #2d4d89;
  2240. border: 1px solid #2d4d89;
  2241. padding: 7px 8px;
  2242. }
  2243. .el-dropdown {
  2244. font-size: 12px;
  2245. }
  2246. .el-step__description > span {
  2247. margin-right: 10px;
  2248. }
  2249. /deep/ {
  2250. .proSaomazhifucodeClass .el-dialog__header {
  2251. background: rgba(45, 77, 137, 0.1);
  2252. font-weight: bold;
  2253. }
  2254. .proSaomazhifucodeClass .el-dialog__footer {
  2255. border-top: 1px solid #eef1f6;
  2256. }
  2257. .el-step__head {
  2258. min-height: 90px;
  2259. }
  2260. .el-table .row-expand-cover .cell .el-table__expand-icon {
  2261. display: none;
  2262. }
  2263. .el-descriptions-item__label {
  2264. &:not(.is-bordered-label) {
  2265. color: #333;
  2266. }
  2267. }
  2268. .saomazhifucodeClass .el-dialog__body,
  2269. .saomazhifucodeClass .el-dialog__header,
  2270. .saomazhifucodeClass .el-dialog__footer {
  2271. padding: 0;
  2272. background: #f4e9e9;
  2273. }
  2274. .saomazhifucodeClass .el-dialog__body {
  2275. padding: 15px;
  2276. }
  2277. .saomazhifucodeClass .el-dialog__footer {
  2278. background: #f4e9e9;
  2279. padding-bottom: 15px;
  2280. }
  2281. .saomazhifucodeClass .el-dialog__headerbtn {
  2282. margin-top: 10px;
  2283. }
  2284. .el-input.is-disabled .el-input__inner {
  2285. color: #333;
  2286. }
  2287. }
  2288. .ORcodebody {
  2289. height: auto;
  2290. // background: url(../../../assets/image/group.png) #fff;
  2291. padding: 16px;
  2292. background-color: #fff;
  2293. }
  2294. .ORcode {
  2295. width: 100%;
  2296. height: auto;
  2297. display: flex;
  2298. justify-content: center;
  2299. align-items: center;
  2300. padding: 30px;
  2301. box-sizing: border-box;
  2302. & > div {
  2303. width: 176px;
  2304. height: 176px;
  2305. border: 1px solid var(--themeColor);
  2306. border-radius: 5px;
  2307. }
  2308. }
  2309. .ORtitle {
  2310. width: 100%;
  2311. padding-bottom: 20px;
  2312. box-sizing: border-box;
  2313. & > div {
  2314. width: 100%;
  2315. margin: 10px 0;
  2316. font-size: 14px;
  2317. & > span {
  2318. &:nth-child(1) {
  2319. color: #868b98;
  2320. text-align: end;
  2321. width: 150px;
  2322. }
  2323. &:nth-child(2) {
  2324. color: #333333;
  2325. }
  2326. }
  2327. }
  2328. }
  2329. </style>
  2330. <style scoped lang="scss">
  2331. #qqq {
  2332. background-color: #111;
  2333. width: 300px;
  2334. height: 300px;
  2335. margin: 0 auto;
  2336. /*水平居中*/
  2337. position: relative;
  2338. }
  2339. #qrCode {
  2340. display: inline-block;
  2341. margin: 0 auto;
  2342. /*水平居中*/
  2343. position: relative;
  2344. top: 15%;
  2345. }
  2346. #qrCode img {
  2347. width: 200px;
  2348. height: 200px;
  2349. background-color: #fff;
  2350. padding: 6px;
  2351. }
  2352. .leftContainer {
  2353. width: 80px;
  2354. position: fixed;
  2355. top: 79px;
  2356. left: 30px;
  2357. }
  2358. .leftContainer .el-col {
  2359. width: 80px;
  2360. height: 80px;
  2361. border-bottom: 1px solid #4d5c6f;
  2362. background: #526176;
  2363. cursor: pointer;
  2364. color: #a6aeb9;
  2365. border-radius: 0;
  2366. }
  2367. .leftContainer .el-col a {
  2368. display: block;
  2369. color: #a6aeb9;
  2370. text-decoration: none;
  2371. }
  2372. .leftContainer .el-col a:hover {
  2373. color: #fff;
  2374. }
  2375. .leftContainer .el-col a.active {
  2376. color: #fff;
  2377. }
  2378. .leftContainer .el-col i {
  2379. font-size: 30px;
  2380. margin: 15px 0px 5px;
  2381. }
  2382. .rightContainer {
  2383. width: calc(100vw - 160px);
  2384. margin-left: 100px;
  2385. }
  2386. .rightContainer .header .el-col {
  2387. font-size: 18px;
  2388. font-weight: bold;
  2389. }
  2390. .rightContainer .bodyTitle {
  2391. height: 40px;
  2392. background: #f3f3f3;
  2393. border: 1px solid #dddddd;
  2394. }
  2395. .rightContainer .bodyTitle > label {
  2396. margin: 0px 15px;
  2397. font-weight: bold;
  2398. }
  2399. .rightContainer #demo2 .body,
  2400. .rightContainer #demo6 .body {
  2401. border: 1px solid #ddd;
  2402. padding: 15px;
  2403. border-top: none;
  2404. }
  2405. .rightContainer .el-card {
  2406. margin-bottom: 15px;
  2407. }
  2408. .body .el-row .el-col label {
  2409. text-align: right;
  2410. width: 80px;
  2411. font-size: 14px;
  2412. width: 100%;
  2413. line-height: 36px;
  2414. display: inline-block;
  2415. box-sizing: border-box;
  2416. }
  2417. .disabledInput {
  2418. width: 80% !important;
  2419. background-color: #f5f7fa;
  2420. text-align: center !important;
  2421. max-width: 200px;
  2422. border: 1px solid #e4e7ed;
  2423. color: #c0c4cc;
  2424. cursor: not-allowed;
  2425. border-radius: 4px;
  2426. box-sizing: border-box;
  2427. padding: 0px 10px;
  2428. height: 36px;
  2429. margin: 20px 10%;
  2430. }
  2431. /* 上传图片样式Start */
  2432. .avatar-uploader .el-upload {
  2433. border: 1px dashed #d9d9d9;
  2434. border-radius: 6px;
  2435. cursor: pointer;
  2436. position: relative;
  2437. overflow: hidden;
  2438. }
  2439. .avatar-uploader .el-upload:hover {
  2440. border-color: #409eff;
  2441. }
  2442. .avatar-uploader-icon {
  2443. font-size: 28px;
  2444. color: #8c939d;
  2445. width: 100px;
  2446. height: 100px;
  2447. line-height: 100px;
  2448. text-align: center;
  2449. border: 1px dashed #d9d9d9;
  2450. }
  2451. .avatar {
  2452. border: 1px dashed #d9d9d9;
  2453. padding: 5px;
  2454. border-radius: 6px;
  2455. width: 100px;
  2456. height: 100px;
  2457. display: block;
  2458. }
  2459. .imageStyle {
  2460. display: inline-block;
  2461. width: 100px;
  2462. height: 100px;
  2463. box-shadow: #ddd 0px 0px 5px;
  2464. margin-right: 20px;
  2465. }
  2466. /* 上传图片样式End */
  2467. .dis {
  2468. display: flex;
  2469. }
  2470. .align {
  2471. align-items: center;
  2472. }
  2473. .jus {
  2474. justify-content: space-between;
  2475. }
  2476. .display {
  2477. display: flex;
  2478. justify-content: center;
  2479. align-items: center;
  2480. box-sizing: border-box;
  2481. }
  2482. .block {
  2483. margin-top: 10px;
  2484. }
  2485. .page {
  2486. padding: 14px;
  2487. box-sizing: border-box;
  2488. }
  2489. .el-select--medium {
  2490. vertical-align: bottom !important;
  2491. }
  2492. .widths {
  2493. width: 200px;
  2494. }
  2495. .demo-table-expand {
  2496. /* width:96vw; */
  2497. height: auto;
  2498. padding: 10px 20px 10px 50px;
  2499. font-size: 14px;
  2500. }
  2501. .demo-table-expand-time {
  2502. width: 40%;
  2503. }
  2504. .demo-table-expand-time > div {
  2505. margin: 0 10px;
  2506. }
  2507. .icon-img {
  2508. width: 30px;
  2509. height: 30px;
  2510. vertical-align: bottom;
  2511. }
  2512. .Enclosure {
  2513. width: 100%;
  2514. background-color: #fff;
  2515. padding: 20px;
  2516. box-sizing: border-box;
  2517. margin-bottom: 15px;
  2518. border-radius: 6px;
  2519. border: 1px solid #ebeef5;
  2520. transition: all 0.2s ease-in-out;
  2521. box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
  2522. }
  2523. .headers {
  2524. display: flex;
  2525. align-items: center;
  2526. justify-content: space-between;
  2527. flex-wrap: wrap;
  2528. margin: 5px 0;
  2529. font-weight: bold;
  2530. color: #333;
  2531. }
  2532. /* 内容待定 */
  2533. .headers_Custom {
  2534. div {
  2535. padding: 2px 0px;
  2536. font-size: 14px;
  2537. & > span {
  2538. color: rgb(226, 118, 10);
  2539. }
  2540. }
  2541. }
  2542. .back {
  2543. color: #303133;
  2544. font-weight: 700;
  2545. }
  2546. .u-f-ac {
  2547. -webkit-box-align: center;
  2548. align-items: center;
  2549. /* padding: 10px; */
  2550. }
  2551. .bodyTitle {
  2552. height: 40px;
  2553. background: #f3f3f3;
  2554. border: 1px solid #dddddd;
  2555. line-height: 40px;
  2556. padding: 0 20px;
  2557. box-sizing: border-box;
  2558. }
  2559. .Risk {
  2560. width: 100%;
  2561. height: auto;
  2562. display: flex;
  2563. flex-direction: column;
  2564. align-items: center;
  2565. font-size: 12px;
  2566. }
  2567. .Risk_title {
  2568. width: 100%;
  2569. height: 40px;
  2570. }
  2571. .Risk_title > div {
  2572. background: rgb(199, 20, 45);
  2573. color: rgb(255, 255, 255);
  2574. height: 100%;
  2575. font-weight: 500;
  2576. width: 33.3%;
  2577. padding: 10px 20px;
  2578. box-sizing: border-box;
  2579. border: #fff solid 1px;
  2580. display: flex;
  2581. justify-content: center;
  2582. align-items: center;
  2583. border-bottom: none;
  2584. }
  2585. .Risk_title > div:nth-child(1) {
  2586. }
  2587. .Risk_title > div:nth-child(2) {
  2588. border-left: none;
  2589. border-right: none;
  2590. }
  2591. .Risk_data {
  2592. width: 100%;
  2593. height: 40px;
  2594. }
  2595. .Risk_data > div {
  2596. background: #fbf6f7;
  2597. color: rgb(51, 51, 51);
  2598. height: 100%;
  2599. font-weight: 500;
  2600. width: 33.3%;
  2601. padding: 10px 20px;
  2602. box-sizing: border-box;
  2603. border: #fff solid 1px;
  2604. display: flex;
  2605. justify-content: center;
  2606. align-items: center;
  2607. border-bottom: none;
  2608. }
  2609. .Risk_data > div :nth-child(2) {
  2610. border-left: none;
  2611. border-right: none;
  2612. }
  2613. .Risk_title > div :nth-child(3) {
  2614. border-top-right-radius: 10px;
  2615. }
  2616. .jyxStyle > span {
  2617. display: inline-block;
  2618. text-align: center;
  2619. }
  2620. /* .el-step__description{
  2621. color:#333
  2622. } */
  2623. /deep/ {
  2624. .el-step__title,
  2625. .el-step__icon-inner {
  2626. color: var(--themeColor);
  2627. }
  2628. .el-step__description.is-finish,
  2629. .el-step__head.is-finish {
  2630. color: #333;
  2631. border: none;
  2632. }
  2633. .el-step__icon.is-text {
  2634. border: none;
  2635. box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.1);
  2636. }
  2637. .el-step__icon.is-text {
  2638. font-size: 22px;
  2639. }
  2640. .el-step__icon {
  2641. width: 28px;
  2642. height: 28px;
  2643. }
  2644. .el-step.is-vertical .el-step__main {
  2645. padding-left: 20px;
  2646. }
  2647. .el-step__line,
  2648. .el-step.is-vertical .el-step__line {
  2649. left: 14px;
  2650. background-color: #e2e5eb;
  2651. width: 1px;
  2652. }
  2653. .el-step__line-inner {
  2654. height: 0;
  2655. display: none;
  2656. }
  2657. .is-flex {
  2658. .el-step__icon {
  2659. background: var(--themeColor);
  2660. }
  2661. .el-step__icon-inner {
  2662. color: #fff;
  2663. }
  2664. }
  2665. }
  2666. </style>