KtOrder.vue 89 KB

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