KtOrder.vue 95 KB

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