quoteRecordDetail.vue 44 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499
  1. <template>
  2. <view class="page">
  3. <u-sticky zIndex="999" customNavHeight="0">
  4. <uni-NavBar headerTitle="报价详情" background="#fff" :isSlot="false" :rightSlot="true">
  5. <template #rightSlot>
  6. <!-- #ifndef APP-PLUS -->
  7. <view class="dis f-c a-c mr-3" @click="getWechatCustomer">
  8. <image src="/static/icon/customerService.png" mode="" style="width: 48rpx;height: 48rpx;">
  9. </image>
  10. <text style="font-size: 20rpx;color: #333;">客服</text>
  11. </view>
  12. <view class="dis f-c a-c " @click="share">
  13. <image src="/static/icon/share.png" mode="" style="width: 48rpx;height: 48rpx;"></image>
  14. <text style="font-size: 20rpx;color: #333;">分享</text>
  15. </view>
  16. <!-- #endif -->
  17. </template>
  18. </uni-NavBar>
  19. </u-sticky>
  20. <view class="content">
  21. <view class="transfer dis j-s f-wrap">
  22. <view class="item dis a-c j-s">
  23. <text>是否过户车</text>
  24. <text>{{carInfoVo.transfer?'是':'否'}}</text>
  25. </view>
  26. <view class="item dis a-c j-s">
  27. <text>商业险是否过户</text>
  28. <text>{{carInfoVo.biTransfer?'是':'否'}}</text>
  29. </view>
  30. <view class="item mt-3 dis a-c j-s">
  31. <text>报价车型</text>
  32. <text>{{carInfoVo.engineNo}}/{{carInfoVo.brandName}}/
  33. {{carInfoVo.displacement}}/{{carInfoVo.seatCount}}/{{carInfoVo.purchasePrice}}</text>
  34. </view>
  35. <!-- 额外信息 -->
  36. <view class="Attachment dis a-c j-s mt-3">
  37. <view class="mediaFiles dis f-c " @click="mediaFiles">
  38. <image src="/static/image/car-insure/mediaFiles.png" mode=""></image>
  39. <text class="title">影像资料</text>
  40. <text class="mt-1 smallText ">{{imageVoList.length}}张</text>
  41. </view>
  42. <view class="specialTerms dis f-c " @click="specialTerms">
  43. <image src="/static/image/car-insure/specialTerms.png" mode=""></image>
  44. <text class="title">特别约定</text>
  45. <text class="mt-1 smallText">{{specialTermsText()}}</text>
  46. </view>
  47. </view>
  48. </view>
  49. <!--客户权益 -->
  50. <view class="customerRights" v-if="insFeeOrders && insFeeOrders.availableAmount">
  51. <view class="header dis a-c j-s mb-2">
  52. <text>客户权益</text>
  53. <view class="btn" @click="selectedBenefits">
  54. 选择权益
  55. </view>
  56. </view>
  57. <text class=" customerRights-content">可用{{insFeeOrders.availableAmount}}元购买服务赠送客户</text>
  58. </view>
  59. <view class="view " :class="{ 'collapsed': !isExpanded1 }">
  60. <view class="header-title">基本信息</view>
  61. <view class="items dis f-c " id="basicInfo">
  62. <view class="item dis a-c j-s">
  63. <text>车牌号</text>
  64. <text>{{carInfoVo.licenseNo}}</text>
  65. </view>
  66. <view class="item dis a-c j-s">
  67. <text>车架号</text>
  68. <text>{{carInfoVo.vinNo}}</text>
  69. </view>
  70. <view class="item dis a-c j-s">
  71. <text>品牌型号</text>
  72. <text>{{carInfoVo.brandName}}</text>
  73. </view>
  74. <view class="item dis a-c j-s">
  75. <text>发动机号</text>
  76. <text>{{carInfoVo.engineNo}}</text>
  77. </view>
  78. <view class="item dis a-c j-s">
  79. <text>使用性质</text>
  80. <text>{{carInfoVo1.carNatureCode}}</text>
  81. </view>
  82. <view class="item dis a-c j-s">
  83. <text>车辆类型</text>
  84. <text>{{carInfoVo1.carTypeCode}} </text>
  85. </view>
  86. <view class="item dis a-c j-s">
  87. <text>车辆用途</text>
  88. <text>{{carInfoVo1.vehicleUseCode}} </text>
  89. </view>
  90. <view class="item dis a-c j-s">
  91. <text>车辆种类</text>
  92. <text> {{carInfoVo1.carKindCode}}</text>
  93. </view>
  94. <view class="item dis a-c j-s">
  95. <text>能源种类</text>
  96. <text>{{carInfoVo1.energyTypeCode}} </text>
  97. </view>
  98. <view class="item dis a-c j-s">
  99. <text>注册日期</text>
  100. <text>{{carInfoVo.registerDate}} </text>
  101. </view>
  102. <view class="item dis a-c j-s">
  103. <text>发证日期</text>
  104. <text> {{carInfoVo.issueDate}}</text>
  105. </view>
  106. <view class="item dis a-c j-s">
  107. <text>是否过户</text>
  108. <text>{{carInfoVo.transfer?'是':'否'}}</text>
  109. </view>
  110. <view class="item dis a-c j-s">
  111. <text>商业险是否过户</text>
  112. <text>{{carInfoVo.biTransfer?'是':'否'}}</text>
  113. </view>
  114. <view class="item dis a-c j-s">
  115. <text>年款</text>
  116. <text> {{carInfoVo.carYear}}</text>
  117. </view>
  118. <view class="item dis a-c j-s">
  119. <text>座位数</text>
  120. <text> {{carInfoVo.seatCount}}座</text>
  121. </view>
  122. <view class="item dis a-c j-s">
  123. <text>整备质量</text>
  124. <text> {{carInfoVo.completeKerbMass}}kg</text>
  125. </view>
  126. <view class="item dis a-c j-s">
  127. <text>排量</text>
  128. <text>{{carInfoVo.displacement}}L</text>
  129. </view>
  130. <view class="item dis a-c j-s">
  131. <text>功率</text>
  132. <text> {{carInfoVo.powerScale}}kw</text>
  133. </view>
  134. <view class="item dis a-c j-s">
  135. <text>新车购置价</text>
  136. <text>{{carInfoVo.purchasePrice}}元 </text>
  137. </view>
  138. <u-gap height="5" bgColor="#F8F8F8"></u-gap>
  139. <!-- 车主信息 -->
  140. <view class="userinfo">
  141. <view class="userinfo-header dis a-c ">
  142. <view class="tag"></view>
  143. <text>车主信息</text>
  144. </view>
  145. <view class="content dis f-c ">
  146. <view class="item dis a-c j-s">
  147. <text>姓名</text>
  148. <text>{{ownersInfo.name}}</text>
  149. </view>
  150. <view class="item dis a-c j-s">
  151. <text>手机号</text>
  152. <text>{{ownersInfo.mobile}}</text>
  153. </view>
  154. <view class="item dis a-c j-s">
  155. <text>证件号</text>
  156. <text>{{ownersInfo.identifyNumber}}</text>
  157. </view>
  158. <view class="item dis a-start j-s">
  159. <text>地址</text>
  160. <text>{{ownersInfo.addr}}</text>
  161. </view>
  162. </view>
  163. </view>
  164. <u-gap height="5" bgColor="#F8F8F8"></u-gap>
  165. <!-- 投保人信息 -->
  166. <view class="userinfo">
  167. <view class="userinfo-header dis a-c ">
  168. <view class="tag"></view>
  169. <text>投保人信息</text>
  170. </view>
  171. <view class="content dis f-c ">
  172. <view class="item dis a-c j-s">
  173. <text>姓名</text>
  174. <text>{{policyHolderInfo.name}}</text>
  175. </view>
  176. <view class="item dis a-c j-s">
  177. <text>手机号</text>
  178. <text>{{policyHolderInfo.mobile}}</text>
  179. </view>
  180. <view class="item dis a-c j-s">
  181. <text>证件号</text>
  182. <text>{{policyHolderInfo.identifyNumber}}</text>
  183. </view>
  184. <view class="item dis a-start j-s">
  185. <text>地址</text>
  186. <text>{{policyHolderInfo.addr}}</text>
  187. </view>
  188. </view>
  189. </view>
  190. <u-gap height="5" bgColor="#F8F8F8"></u-gap>
  191. <!-- 被保人信息 -->
  192. <view class="userinfo">
  193. <view class="userinfo-header dis a-c ">
  194. <view class="tag"></view>
  195. <text>被保人信息</text>
  196. </view>
  197. <view class="content dis f-c ">
  198. <view class="item dis a-c j-s">
  199. <text>姓名</text>
  200. <text>{{insuredPersonInfo.name}}</text>
  201. </view>
  202. <view class="item dis a-c j-s">
  203. <text>手机号</text>
  204. <text>{{insuredPersonInfo.mobile}}</text>
  205. </view>
  206. <view class="item dis a-c j-s">
  207. <text>证件号</text>
  208. <text>{{insuredPersonInfo.identifyNumber}}</text>
  209. </view>
  210. <view class="item dis a-start j-s">
  211. <text>地址</text>
  212. <text>{{insuredPersonInfo.addr}}</text>
  213. </view>
  214. </view>
  215. </view>
  216. </view>
  217. <!-- 查看更多 -->
  218. <view class="loadMore dis a-c j-c" @click="toggleExpand('isExpanded1')"
  219. :style="{position:isExpanded1?'relative':'absolute'}">
  220. <text>查看更多</text>
  221. <image :src="doubleArrowimg" mode="" :style="{transform:`rotate(${isExpanded1?180:0}deg)`}"></image>
  222. </view>
  223. </view>
  224. <!-- 保费因素 -->
  225. <view class="view " :class="{ 'collapsed': !isExpanded2 }">
  226. <view class="header-title"
  227. style="background: linear-gradient( 180deg, #F9F6FF 0%, #FFFFFF 100%);border-color: #E3D5FF;">保费因素
  228. </view>
  229. <view class="items dis f-c " id="premiumFactor">
  230. <view class="item dis a-c j-s" v-if="scoreVo.score">
  231. <text>评分</text>
  232. <text>{{scoreVo.score}}</text>
  233. </view>
  234. <view class="item dis a-c j-s">
  235. <text>交强险系数</text>
  236. <text></text>
  237. </view>
  238. <view class="item dis a-c j-s">
  239. <text class="mr-2">商业险系数</text>
  240. <view class="dis a-c ">
  241. <u--input border="surround"
  242. :customStyle="{background:'rgba(253,233,53,0.05)',borderColor:'#FDE935 !important',padding:'4rpx 18rpx',pointerEvents: 'none',width:'250rpx'}"
  243. v-model="scoreVo.syScore" disabled disabledColor='rgba(253,233,53,0.05)'></u--input>
  244. <view class="colorBlock dis a-c j-c " @tap="updateDiscountShow=true">
  245. <image :src="editimg" mode=""></image>
  246. </view>
  247. </view>
  248. </view>
  249. <view class="item dis a-c j-s" v-if="scoreVo.jqScore">
  250. <text>交强评分</text>
  251. <text>{{scoreVo.jqScore}}</text>
  252. </view>
  253. <view class="item dis a-c j-s" v-if="scoreVo.syScore">
  254. <text>商业评分</text>
  255. <text>{{scoreVo.syScore}}</text>
  256. </view>
  257. <view class="item dis a-start j-s" v-if="scoreVo.ciClaims">
  258. <text>交强出险次数</text>
  259. <text>{{scoreVo.ciClaims}}</text>
  260. </view>
  261. <view class="item dis a-start j-s" v-if="scoreVo.biClaims">
  262. <text>商业出险次数</text>
  263. <text>{{scoreVo.biClaims}}</text>
  264. </view>
  265. <view class="item dis a-start j-s" v-if="scoreVo.lossRation">
  266. <text>总赔付率</text>
  267. <text>{{scoreVo.lossRation}}</text>
  268. </view>
  269. <view class="item dis a-start j-s" v-if="scoreVo.jqLossRation">
  270. <text>交强赔付率</text>
  271. <text>{{scoreVo.jqLossRation}}</text>
  272. </view>
  273. <view class="item dis a-start j-s" v-if="scoreVo.syLossRation">
  274. <text>商业赔付率</text>
  275. <text>{{scoreVo.syLossRation}}</text>
  276. </view>
  277. <view class="item dis a-start j-s">
  278. <text>总折扣率</text>
  279. <text></text>
  280. </view>
  281. <view class="item dis a-start j-s" v-if="costs.ciRatio">
  282. <text>交强折扣</text>
  283. <text>{{costs.ciRatio}}</text>
  284. </view>
  285. <view class="item dis a-start j-s" v-if="costs.biRatio">
  286. <text>商业折扣</text>
  287. <text>{{costs.biRatio}}</text>
  288. </view>
  289. <view class="item dis a-start j-s" v-for="(item,index) in scoreVo.scoreJson" :key="index">
  290. <text>{{item.scoreName}}</text>
  291. <text>{{item.score}}</text>
  292. </view>
  293. </view>
  294. <!-- 查看更多 -->
  295. <view class="loadMore dis a-c j-c" @click="toggleExpand('isExpanded2')"
  296. :style="{position:isExpanded2?'relative':'absolute'}">
  297. <text>查看更多</text>
  298. <image :src="doubleArrowimg" mode="" :style="{transform:`rotate(${isExpanded2?180:0}deg)`}"></image>
  299. </view>
  300. </view>
  301. <!-- 报价方案 -->
  302. <view class="view " :class="{ 'collapsed': !isExpanded3 }">
  303. <view class="header-title"
  304. style="background: linear-gradient( 180deg, #FFF8F8 0%, #FFFFFF 100%);border-color: #FFD9D9;">报价方案
  305. </view>
  306. <view class="items dis f-c " id="quotationScheme">
  307. <view class="item dis a-c j-s">
  308. <text>保费合计</text>
  309. <text class="price">¥{{costs.sumPremium}}</text>
  310. </view>
  311. <view class="item dis a-c j-s" v-if="costs.ciPremium">
  312. <text>交强险</text>
  313. <text>¥{{costs.ciPremium}}</text>
  314. </view>
  315. <view class="item dis a-c j-s" v-if="costs.vvTax">
  316. <view class=" dis a-c ">车船税
  317. <view class="vvTax-Tag ml-1" @click="vvTaxDetailsShow=true">
  318. {{taxRelifFlagName}}
  319. </view>
  320. </view>
  321. <text>¥{{costs.vvTax}}</text>
  322. </view>
  323. <view class="item dis a-start j-s" v-if="costs.biPremium">
  324. <text>商业险</text>
  325. <text>¥{{costs.biPremium}}</text>
  326. </view>
  327. <view class="item dis a-start j-s" v-if="costs.niPremium">
  328. <text>驾意险</text>
  329. <text>¥{{costs.niPremium}}</text>
  330. </view>
  331. <view class="item dis a-start j-s" v-if="ciRiskInfoVo && ciRiskInfoVo.startDate">
  332. <text>交强起保日期</text>
  333. <text>{{ciRiskInfoVo.startDate}}</text>
  334. </view>
  335. <view class="item dis a-start j-s" v-if="biRiskInfoVo && biRiskInfoVo.startDate">
  336. <text>商业起保日期</text>
  337. <text>{{biRiskInfoVo.startDate}}</text>
  338. </view>
  339. <view class="table mb-3" v-if="kindInfoVo.length>0">
  340. <view class="header dis a-c j-s">
  341. <text class="th special">商业险</text>
  342. <text class="th">保额</text>
  343. <text class="th">保费</text>
  344. </view>
  345. <view class="tr dis a-c j-c" v-for="(item,index) in kindInfoVo" :key="index">
  346. <text class="td special">{{item.kindName}}</text>
  347. <text v-if="['A'].includes(item.kindCode)" class="td">{{item.amount}}</text>
  348. <text v-else-if="['D4', 'SY_FJ_YBW2'].includes(item.kindCode)"
  349. class="td">{{convertedValue(item.amount)}}</text>
  350. <text v-else-if="['MJ1', 'MJ2', 'MJ3', 'MJ4'].includes(item.kindCode)"
  351. class="td">{{item.amount}}%</text>
  352. <text v-else-if="['TY1', 'TY2', 'TY3', 'TY4'].includes(item.kindCode)"
  353. class="td">{{item.amount}}次</text>
  354. <text v-else class="td">{{convertedValue(item.amount)}}</text>
  355. <text class="td">{{item.premium?item.premium:'-'}}</text>
  356. </view>
  357. </view>
  358. <view class="table" v-if="accidentalDrivings.length>0">
  359. <view class="header dis a-c j-s">
  360. <text class="th special">驾意险</text>
  361. <text class="th">单价/数量</text>
  362. <text class="th">保费</text>
  363. </view>
  364. <view class="tr dis a-c j-c" v-for="(item,index) in accidentalDrivings" :key="index">
  365. <text class="td special">{{item.productName}}</text>
  366. <text class="td">{{item.quantity}}份</text>
  367. <text class="td">{{item.sumAmount}}</text>
  368. </view>
  369. </view>
  370. </view>
  371. <!-- 查看更多 -->
  372. <view class="loadMore dis a-c j-c" @click="toggleExpand('isExpanded3')"
  373. :style="{position:isExpanded3?'relative':'absolute'}">
  374. <text>查看更多</text>
  375. <image :src="doubleArrowimg" mode="" :style="{transform:`rotate(${isExpanded3?180:0}deg)`}"></image>
  376. </view>
  377. </view>
  378. </view>
  379. <view class="footer">
  380. <!-- 待核保 -->
  381. <view class="orderAction dis a-c j-s ">
  382. <view class=" dis f-c a-c j-c">
  383. <view class=" totalPrice dis a-end ">
  384. <text>¥</text>
  385. <text>{{costs.sumPremium || 0 }}</text>
  386. </view>
  387. <text class="feeEntry" @click="getfeeEntry">费用信息</text>
  388. </view>
  389. <view class="dis a-c j-s" v-if="isFromShare!='share'">
  390. <view class="btn btns dis a-c j-c " @click="home">
  391. 投保其他车辆
  392. </view>
  393. <view class="btn dis a-c j-c " @click=" applyUnderwriting">
  394. 申请核保
  395. </view>
  396. </view>
  397. </view>
  398. </view>
  399. <!-- 系数修改弹窗 -->
  400. <uni-Popup :show="updateDiscountShow" @close="updateDiscountShow=false" :closeable="false"
  401. headerTitle="商业险折扣系数修改" overflow="auto" :headerStyle="{fontSize:'36rpx'}" maxHeight="980rpx" mode="center"
  402. width="90%">
  403. <template #content>
  404. <view class="updateDiscount">
  405. <text class="text ">商业险折扣系数和自主定价系数只能修改一个,修改后系统会重新报价,计算修改后的保费</text>
  406. <u-radio-group v-model="updateDiscountSValue" placement="column" class="mt-3 " activeColor="#FDE935"
  407. iconColor='#333'>
  408. <u-radio label="明月几时有" style="align-items: baseline;">
  409. <view class="dis f-c " style="width: 100%;">
  410. <view class="dis a-start input mb-1">
  411. <text>商业险折扣系数</text>
  412. <text>(0.8521252)</text>
  413. </view>
  414. <u--input placeholder="请输入内容" clearable></u--input>
  415. </view>
  416. </u-radio>
  417. <u-radio label="明月几时有" class="mt-3" style="align-items: baseline;">
  418. <view class="dis f-c " style="width: 100%;">
  419. <view class="dis a-c input mb-1">
  420. <text>自主定价系数</text>
  421. <text>(0.8)</text>
  422. </view>
  423. <u--input disabled placeholder="输入1—100的数字" clearable></u--input>
  424. </view>
  425. </u-radio>
  426. </u-radio-group>
  427. <view class="btn dis mt-3">
  428. <u-button class="mr-2" type="primary" shape="circle" :plain="true" text="关闭" color="#DDDDDD"
  429. @click="updateDiscountShow=false" :customStyle="{color:'#333'}"></u-button>
  430. <u-button type="primary" shape="circle" text="确定" color="#FDE935"
  431. :customStyle="{color:'#1f1f1f'}"></u-button>
  432. </view>
  433. </view>
  434. </template>
  435. </uni-Popup>
  436. <!-- 费用信息展示弹窗 -->
  437. <uni-Popup :show="feeEntryInfoShow" @close="feeEntryInfoShow=false" :closeable="false" headerTitle="费用信息"
  438. overflow="auto" :headerStyle="{fontSize:'36rpx'}" maxHeight="980rpx" mode="center" width="90%">
  439. <template #content>
  440. <view class="feeEntryClass" v-if="insFeeOrders">
  441. <view class="dis a-start j-s data-view">
  442. <text class="title">交强险</text>
  443. <view class="dis f-c discount">
  444. <view class="dis a-c j-s">
  445. <text>保费:</text>
  446. <text class="dis j-end a-c">¥{{insFeeOrders.jqPremium}}</text>
  447. </view>
  448. <view class="dis a-c j-s">
  449. <text>优惠:</text>
  450. <text class="font-weight dis j-end a-c">¥{{insFeeOrders.jqPayablePremium}}</text>
  451. </view>
  452. </view>
  453. </view>
  454. <view class="dis a-start j-s data-view">
  455. <text class="title">商业险</text>
  456. <view class="dis f-c discount">
  457. <view class="dis a-c j-s">
  458. <text>保费:</text>
  459. <text class="dis j-end a-c">¥{{insFeeOrders.syPremium}}</text>
  460. </view>
  461. <view class="dis a-c j-s">
  462. <text>优惠:</text>
  463. <text class="font-weight dis j-end a-c">¥{{insFeeOrders.syPayablePremium}}</text>
  464. </view>
  465. </view>
  466. </view>
  467. <view class="dis a-start j-s data-view">
  468. <text class="title">驾意险</text>
  469. <view class="dis f-c discount">
  470. <view class="dis a-c j-s">
  471. <text>保费:</text>
  472. <text class="dis j-end a-c">¥{{insFeeOrders.jyPremium}}</text>
  473. </view>
  474. <view class="dis a-c j-s">
  475. <text>优惠:</text>
  476. <text class="font-weight dis j-end a-c">¥{{insFeeOrders.jyPayablePremium}}</text>
  477. </view>
  478. </view>
  479. </view>
  480. <view class="discountTotal dis a-c j-s ">
  481. <text class="name">优惠总计</text>
  482. <text class="sum">¥{{insFeeOrders.totalPayablePremium}}</text>
  483. </view>
  484. <view class="footer-btn dis a-c j-c" @click="feeEntryInfoShow=false">
  485. 关闭
  486. </view>
  487. </view>
  488. </template>
  489. </uni-Popup>
  490. <!-- 车船税信息弹窗 -->
  491. <uni-Popup :show="vvTaxDetailsShow" @close='vvTaxDetailsShow=false' headerTitle="车船税" overflow="auto"
  492. maxHeight="580rpx">
  493. <template #content>
  494. <view class="vvTaxDetails-cell dis f-c ">
  495. <view class="cell-item dis a-c j-s">
  496. <text>车船税</text>
  497. <text>{{taxRelifFlagName}}</text>
  498. </view>
  499. <template>
  500. <view class="cell-item dis a-c j-s"
  501. v-if="vehicleAndVesselTaxVo.taxRelifFlag == 2 || vehicleAndVesselTaxVo.taxRelifFlag == 3">
  502. <text>减免税凭证号</text>
  503. <text>{{vehicleAndVesselTaxVo.extendChar2}}</text>
  504. </view>
  505. <view class="cell-item dis a-c j-s" v-if="vehicleAndVesselTaxVo.taxRelifFlag == 4">
  506. <text>完税凭证号</text>
  507. <text>{{vehicleAndVesselTaxVo.paidFreeCertificate}}</text>
  508. </view>
  509. <view class="cell-item dis a-c j-s"
  510. v-if="vehicleAndVesselTaxVo.taxRelifFlag == 2 || vehicleAndVesselTaxVo.taxRelifFlag == 3">
  511. <text>减免税原因</text>
  512. <text>{{vehicleAndVesselTaxVo.relifReason}}</text>
  513. </view>
  514. <view class="cell-item dis a-c j-s" v-if="vehicleAndVesselTaxVo.taxRelifFlag == 3">
  515. <text>减税比例</text>
  516. <text>{{vehicleAndVesselTaxVo.taxRelief}}</text>
  517. </view>
  518. <view class="cell-item dis a-c j-s" v-if="vehicleAndVesselTaxVo.taxRelifFlag !=1">
  519. <text>税务机关代码</text>
  520. <text>{{vehicleAndVesselTaxVo.taxComCode}}</text>
  521. </view>
  522. <view class="cell-item dis a-c j-s" v-if="vehicleAndVesselTaxVo.taxRelifFlag !=1">
  523. <text>税务机关名称</text>
  524. <text>{{vehicleAndVesselTaxVo.taxComName}}</text>
  525. </view>
  526. <view class="cell-item dis a-c j-s" v-if="vehicleAndVesselTaxVo.taxRelifFlag ==4">
  527. <text>完税凭证填发日期</text>
  528. <text>{{vehicleAndVesselTaxVo.taxDocumentDate}}</text>
  529. </view>
  530. <view class="cell-item dis a-c j-s" v-if="vehicleAndVesselTaxVo.taxRelifFlag ==4">
  531. <text>完税凭证地区</text>
  532. <text>{{vehicleAndVesselTaxVo.taxPaidAreaCode}}</text>
  533. </view>
  534. </template>
  535. </view>
  536. </template>
  537. </uni-Popup>
  538. <!-- 优惠方式弹窗 -->
  539. <uni-Popup :show="discountMethodShow" @close='discountMethodShow=false' headerTitle="选择优惠方式" overflow="auto"
  540. maxHeight="580rpx">
  541. <template #content>
  542. <view class="discountMethod-cell dis f-c " v-if="insFeeOrders && insFeeOrders.availableAmount">
  543. <view class="item dis f-c a-start" @click="selectedBenefits">
  544. <text class="title mb-1">客户权益</text>
  545. <text>当前客户出单后,可赠送客户价值 <text class="price"
  546. v-if="insFeeOrders.availableAmount">{{insFeeOrders.availableAmount}}</text> 的权益礼包</text>
  547. </view>
  548. <view class="item dis f-c a-start" @click="discountMethodShow=false,underwritingShow=true">
  549. <text class="title mb-1">现金优惠</text>
  550. <text>选择为当前客户最多优惠<text class="price"
  551. v-if="insFeeOrders.totalExportPremium">{{insFeeOrders.totalExportPremium}}</text>元</text>
  552. </view>
  553. </view>
  554. </template>
  555. </uni-Popup>
  556. <!-- 确认核保提示 -->
  557. <uni-PopupMessage :show="underwritingShow" @close='underwritingShow=false' @cancelEvent='underwritingShow=false'
  558. @confirmEvent="underwritingEvent">
  559. <template #content>
  560. <view class="dis a-c j-c ">
  561. 是否确认提交核保
  562. </view>
  563. </template>
  564. </uni-PopupMessage>
  565. <!-- 右上角分享功能 -->
  566. <uni-share :show="shareShow" @close="shareShow=false" @weixin="weixin" @userSmsShare="userSmsShare"
  567. @copyLink="copyLink" @saveToAlbum="saveToAlbum" @closeModal="shareShow = false">
  568. </uni-share>
  569. <!-- 自定义加载动画 -->
  570. <global-loading :show="loadingShow" :text="loadingText"></global-loading>
  571. </view>
  572. </template>
  573. <script>
  574. import {
  575. turnBase64Image,
  576. dictionaryMatch
  577. } from '@/plugins/utils.js';
  578. import Mixin from './Mixin.js';
  579. export default {
  580. mixins: [Mixin], // 注入 Mixin
  581. data() {
  582. return {
  583. discountMethodShow: false, //选择优惠方式弹窗
  584. feeEntryInfoShow: false, //费用信息弹窗
  585. updateDiscountSValue: "",
  586. insCompanyVo: {}, //保险公司信息
  587. updateDiscountShow: false, //折扣系数修改弹窗
  588. underwritingShow: false, //核保弹窗
  589. loadingShow: false, //加载
  590. loadingText: '加载中', //加载提示文字
  591. shareShow: false, //分享弹窗
  592. doubleArrowimg: "", //箭头图片
  593. editimg: "", //编辑
  594. premiumFactorHeight: 0,
  595. basicInfoHeight: 0,
  596. quotationSchemeHeight: 0,
  597. collapsedHeight: 258,
  598. isExpanded1: false, //展开收起
  599. isExpanded2: false, //展开收起
  600. isExpanded3: false, //展开收起
  601. carInfoVo: {}, //车辆信息
  602. carInfoVo1: {}, //车辆信息
  603. ownersInfo: {}, //车主信息
  604. policyHolderInfo: {}, //投保人信息
  605. insuredPersonInfo: {}, //被保人信息
  606. scoreVo: {}, //保费因素
  607. costs: {}, //报价金额信息
  608. salesmanInfo: {}, //业务员信息
  609. kindInfoVo: [], //商业险险别
  610. accidentalDrivings: [], //驾意险列表
  611. imageVoList: [],
  612. vvTaxDetailsShow: false, //车船税展示弹窗
  613. //车船税form
  614. //字典
  615. car_nature_codeoptions: [], //使用性质
  616. vehicle_use_code01options: [], //营业
  617. vehicle_use_code02options: [], //非营业
  618. car_kind_codeoptions: [], //车辆种类
  619. energy_type_codeoptions: [], //能源类型
  620. car_type_codeoptions: [], //车辆类型
  621. car_tax_codeoptions: [], //车船税类型
  622. taxpayerIdentifieroptions: [], //车船税类型
  623. car_tax_reason_codeoptions: [], //减免税原因
  624. // 影像信息
  625. modificationFlag: false, //影像修改标识
  626. specialInfoVo: [], //已选特约
  627. insFeeOrders: {}, //费用信息
  628. insOrderRightsInfoVo: {}, //权益信息
  629. insOrderRightsInfoDto: null, //权益参数
  630. isFromShare: "",
  631. feeNoDescription: "",
  632. }
  633. },
  634. onShow() {
  635. console.log(this.insOrderRightsInfoDto);
  636. },
  637. async onLoad(options) {
  638. this.loadingShow = true;
  639. try {
  640. this.isFromShare = options.from;
  641. await this.getDicType("car_tax_code"); //车船税类型
  642. await this.getDicType("taxpayerIdentifier"); //纳税人证件类型
  643. await this.getDicType("car_tax_reason_code"); //减免税原因代码
  644. await this.getDicType("car_nature_code"); //使用性质
  645. await this.getDicType("vehicle_use_code", "01"); //营业
  646. await this.getDicType("vehicle_use_code", "02"); //非营业
  647. await this.getDicType("car_kind_code"); //车辆种类
  648. await this.getDicType("energy_type_code"); //能源类型
  649. await this.getDicType("car_type_code"); //车辆类型
  650. await this.details(options.ordersNo); //详情接口
  651. this.loadingShow = false;
  652. const query = uni.createSelectorQuery();
  653. query.select('#basicInfo').boundingClientRect((rect) => {
  654. this.basicInfoHeight = rect.height; // 获取元素高度
  655. }).exec();
  656. query.select('#premiumFactor').boundingClientRect((rect) => {
  657. this.premiumFactorHeight = rect.height; // 获取元素高度
  658. }).exec()
  659. query.select('#quotationScheme').boundingClientRect((rect) => {
  660. this.quotationSchemeHeight = rect.height; // 获取元素高度
  661. }).exec()
  662. } catch (error) {
  663. this.loadingShow = false;
  664. }
  665. },
  666. async mounted() {
  667. this.doubleArrowimg = await turnBase64Image('/static/image/doubleArrow.png');
  668. this.editimg = await turnBase64Image('/static/icon/edit.png')
  669. },
  670. computed: {
  671. //获取车船税类型
  672. taxRelifFlagName() {
  673. let info = this.car_tax_codeoptions.find(ele => ele.value === this.vehicleAndVesselTaxVo.taxRelifFlag)
  674. return info?.description;
  675. },
  676. //报价年份
  677. quoteYear() {
  678. const year = this.order.createTime.slice(0, 4);
  679. return year;
  680. },
  681. },
  682. methods: {
  683. // 查看费用信息
  684. getfeeEntry() {
  685. if (!this.insFeeOrders) {
  686. uni.showToast({
  687. duration: 10000,
  688. icon: 'none',
  689. title: this.feeNoDescription || '未匹配到费用'
  690. })
  691. } else {
  692. this.feeEntryInfoShow = true;
  693. }
  694. },
  695. // 选择权益
  696. selectedBenefits() {
  697. this.discountMethodShow = false;
  698. let params = {
  699. ownersInfo: this.ownersInfo, //车主
  700. policyHolderInfo: this.policyHolderInfo, //投保人
  701. insuredPersonInfo: this.insuredPersonInfo, //被保人
  702. insFeeOrders: this.insFeeOrders, //费用信息
  703. ordersNo: this.ordersNo,
  704. insOrderRightsInfoVo: this.insOrderRightsInfoDto, //权益信息
  705. }
  706. uni.navigateTo({
  707. url: '/pages/reward/customerBenefit?info=' + JSON.stringify(params)
  708. })
  709. },
  710. specialTermsText() {
  711. if (['资金财险', '华泰财险', '国任财险'].includes(this.companyName)) {
  712. return '点击选择'
  713. } else {
  714. return "暂不支持"
  715. }
  716. },
  717. // 补传影像
  718. async uploadRetry() {
  719. const mergedArray = [...this.carImageListId, ...this.ownerImageListId, ...this
  720. .policyHolderImageListId, ...this.insuredPersonImageListId
  721. ];
  722. if (mergedArray.length > 0) {
  723. await this.$http.post('/unify/order/imageSave', {
  724. imageList: mergedArray,
  725. quoteNo: this.quoteNo,
  726. })
  727. }
  728. },
  729. applyUnderwriting() {
  730. if (this.insFeeOrders?.availableAmount && !this.insOrderRightsInfoDto) {
  731. this.discountMethodShow = true;
  732. } else {
  733. this.underwritingShow = true
  734. }
  735. },
  736. //调用核保接口
  737. async underwritingEvent() {
  738. if (this.loadingShow) {
  739. return; //防重入:loading期间忽略重复触发
  740. }
  741. this.underwritingShow = false; //关闭弹窗
  742. this.loadingText = "核保中";
  743. this.loadingShow = true; //加载loading
  744. if (this.modificationFlag) {
  745. // 修改影像后,补传影像
  746. await this.uploadRetry();
  747. }
  748. let images = await this.$http.post('/unify/order/imagesUpload', {
  749. order: {
  750. ordersNo: this.order.ordersNo,
  751. quoteNo: this.order.quoteNo
  752. },
  753. imageVoList: [...this.carImageListId, ...this.ownerImageListId, ...this
  754. .policyHolderImageListId, ...this.insuredPersonImageListId
  755. ]
  756. }); //影像提交保险公司
  757. if (images.code == '200') { //核保
  758. // specialAppointmentsVos=[] 特约
  759. let underwriting = await this.$http.post('/unify/order/underwriting', {
  760. order: {
  761. ordersNo: this.ordersNo,
  762. },
  763. insOrderRightsInfoDto: this.insOrderRightsInfoDto,
  764. });
  765. if (underwriting.code == '200') {
  766. let res = await this.$http.get('/supplementOrder/getOrderDetail?ordersNo=' + this.ordersNo);
  767. if (res.code == '200') {
  768. this.orderStatus = res.data.order.orderStatus; //订单状态
  769. // 状态为人工处理跳转页面
  770. if (this.orderStatus == 3) {
  771. uni.navigateTo({
  772. url: '/pages/quote/manualUnderwritingPage?Info=' + JSON.stringify(res
  773. .data),
  774. })
  775. }
  776. }
  777. this.loadingShow = false;
  778. uni.showToast({
  779. icon: 'none',
  780. title: '核保成功'
  781. })
  782. // 核保成功后查询支付码并跳转支付码页面
  783. if (this.orderStatus != 3) { //人工处理已跳转,不再查询支付码
  784. await this.queryPaymentCode();
  785. }
  786. } else {
  787. this.loadingShow = false;
  788. uni.showToast({
  789. icon: 'none',
  790. duration: 10000,
  791. title: underwriting.msg
  792. })
  793. }
  794. } else {
  795. this.loadingShow = false;
  796. uni.showToast({
  797. icon: 'none',
  798. title: images.msg
  799. })
  800. }
  801. },
  802. //查询支付码并跳转(含延时过渡与异常兜底)
  803. async queryPaymentCode() {
  804. this.loadingText = "查询支付码中";
  805. this.loadingShow = true;
  806. try {
  807. const preDelay = 1000; //查询前loading「查询支付码中」展示时长(毫秒)
  808. const navDelay = 1000; //成功后「正在前往支付页面」展示时长(毫秒)
  809. // 查询前:loading「查询支付码中」转1秒再请求接口
  810. await new Promise(resolve => setTimeout(resolve, preDelay));
  811. let qrCode = await this.$http.get('/order/qrCode/getQrCode?orderNo=' + encodeURIComponent(this
  812. .ordersNo));
  813. if (qrCode.code == '200') {
  814. // 成功后:loading文字改为"正在前往支付页面",再转1秒后跳转
  815. this.loadingText = "正在前往支付页面";
  816. await new Promise(resolve => setTimeout(resolve, navDelay));
  817. this.loadingShow = false;
  818. uni.navigateTo({
  819. url: '/pages/quote/paymentCode?ordersNo=' + encodeURIComponent(this.ordersNo),
  820. })
  821. } else {
  822. this.loadingShow = false;
  823. uni.showToast({
  824. icon: 'none',
  825. title: qrCode.msg
  826. })
  827. }
  828. } catch (error) {
  829. this.loadingShow = false;
  830. uni.showToast({
  831. icon: 'none',
  832. title: '支付码查询失败'
  833. })
  834. }
  835. },
  836. //影像资料
  837. mediaFiles() {
  838. uni.navigateTo({
  839. url: "/pages/quote/imageGalleryPage?quoteNo=" + this.quoteNo,
  840. })
  841. },
  842. //特别约定
  843. specialTerms() {
  844. uni.navigateTo({
  845. url: "/pages/quote/specialAgreementPage?companyId=" + this.insCompanyVo.id + '&productId=' +
  846. this.order.productId +
  847. '&specialInfoVo=' + JSON.stringify(this.specialInfoVo),
  848. })
  849. },
  850. //分享微信
  851. weixin() {
  852. // #ifdef APP-PLUS
  853. uni.share({
  854. provider: "weixin",
  855. scene: "WXSceneSession",
  856. type: 0,
  857. href: this.$base.h5BaseUrl +
  858. `/#/pages/quote/quotation?ordersNo=${this.ordersNo}`,
  859. title: `${this.companyName}${this.quoteYear}年的车险报价`,
  860. summary: `${this.companyName}报价完成,保费:${this.costs.sumPremium}元,点击查看详情`,
  861. imageUrl: "/static/image/zgcx.png",
  862. success: function(res) {
  863. console.log("success:" + JSON.stringify(res));
  864. },
  865. fail: function(err) {
  866. console.log("fail:" + JSON.stringify(err));
  867. }
  868. });
  869. // #endif
  870. // #ifdef H5
  871. uni.showToast({
  872. icon: 'none',
  873. title: "请到App中操作"
  874. })
  875. // #endif
  876. },
  877. //短信分享
  878. userSmsShare() {
  879. // #ifdef APP-PLUS
  880. var msg = plus.messaging.createMessage(plus.messaging.TYPE_SMS);
  881. msg.to = [this.policyHolderInfo.name]; //投保人手机号
  882. msg.body =
  883. `【${this.salesmanInfo.systemShortName}】尊敬的【${this.carInfoVo.licenseNo}】车主,${this.companyName}${this.quoteYear}年车险报价:${this.costs.sumPremium}元;联系人:${this.salesmanInfo.name} ${this.salesmanInfo.mobile},点击链接查看详情或电话咨询联系人${this.$base.h5BaseUrl + `/#/pages/quote/quotation?ordersNo=${this.ordersNo}`}`;
  884. plus.messaging.sendMessage(msg);
  885. // #endif
  886. // #ifdef H5
  887. uni.showToast({
  888. icon: 'none',
  889. title: "请到App中操作"
  890. })
  891. // #endif
  892. },
  893. //复制链接
  894. copyLink() {
  895. uni.setClipboardData({
  896. data: this.$base.h5BaseUrl +
  897. `/#/pages/quote/quotation?ordersNo=${this.ordersNo}`, //要被复制的内容
  898. success: () => { //复制成功的回调函数
  899. uni.showToast({ //提示
  900. icon: 'none',
  901. title: '链接已复制'
  902. })
  903. }
  904. });
  905. },
  906. //数据字典
  907. async getDicType(type, vehicle) {
  908. if (vehicle) {
  909. let res = await this.$http.get(`/dict/get?dictCode=${type}&parentValue=${vehicle}`);
  910. this[type + vehicle + "options"] = res.data;
  911. } else {
  912. let res = await this.$http.get('/dict/get?dictCode=' + type);
  913. this[type + "options"] = res.data;
  914. }
  915. },
  916. //数字格式化
  917. convertedValue(num) {
  918. if (!num) {
  919. return "-";
  920. }
  921. if (num < 10000) {
  922. return num.toString();
  923. } else if (num < 100000000) {
  924. return (Math.floor(num / 10000 * 10) / 10) + '万';
  925. } else {
  926. return (Math.floor(num / 100000000 * 10) / 10) + '亿';
  927. }
  928. },
  929. async details(orderno) {
  930. let res = await this.$http.get('/supplementOrder/getOrderDetail?ordersNo=' + orderno);
  931. if (res.code == 200) {
  932. this.orderStatus = res.data.order.orderStatus; //订单状态
  933. this.companyName = res.data.order.companyName; //保险公司简称
  934. this.insCompanyVo = res.data.insCompanyVo[0]; //保险公司信息
  935. this.ordersNo = res.data.order.ordersNo; //订单号
  936. this.quoteNo = res.data.order.quoteNo; //报价号
  937. this.ciRiskInfoVo = res.data.ciRiskInfoVo; //交强大类
  938. this.biRiskInfoVo = res.data.biRiskInfoVo; //商业大类
  939. this.costs = res.data.costs; //报价金额信息
  940. this.policy = res.data.policy; //保单号信息
  941. this.kindInfoVo = res.data.kindInfoVo; //商业险险别
  942. this.accidentalDrivings = res.data.accidentalDrivings; //驾意险
  943. this.carInfoVo = res.data.carInfoVo; //车辆信息
  944. this.ownersInfo = res.data.ownersInfo; //车主信息
  945. this.policyHolderInfo = res.data.policyHolderInfo; //投保人信息
  946. this.insuredPersonInfo = res.data.insuredPersonInfo; //被保人信息
  947. this.scoreVo = res.data.scoreVo; //保费因素
  948. this.vehicleAndVesselTaxVo = res.data.vehicleAndVesselTaxVo; //车船税信息
  949. this.salesmanInfo = res.data.salesmanInfo; //业务员信息
  950. this.insFeeOrders = res.data.insFeeOrders; //费用信息
  951. this.feeNoDescription = res.data.feeNoDescription; //未匹配费用提示信息
  952. this.insOrderRightsInfoVo = res.data.insOrderRightsInfoVo; //权益详情
  953. this.imageVoList = res.data.imageVoList;
  954. this.order = res.data.order;
  955. this.imageEcho(res.data.imageVoList) // 影像获取完毕
  956. // 去掉this.kindInfoVo中的交强险
  957. this.kindInfoVo = this.kindInfoVo.filter(item => item.kindCode != 'J1')
  958. this.carInfoVo1.carNatureCode = dictionaryMatch(this.car_nature_codeoptions, res
  959. .data.carInfoVo
  960. .carNatureCode)
  961. if (res.data.carInfoVo.carNatureCode == '01') {
  962. this.carInfoVo1.vehicleUseCode = dictionaryMatch(this
  963. .vehicle_use_code01options,
  964. res.data
  965. .carInfoVo
  966. .vehicleUseCode)
  967. } else {
  968. this.carInfoVo1.vehicleUseCode = dictionaryMatch(this
  969. .vehicle_use_code02options,
  970. res.data
  971. .carInfoVo
  972. .vehicleUseCode)
  973. }
  974. this.carInfoVo1.carTypeCode = dictionaryMatch(this.car_type_codeoptions, res.data
  975. .carInfoVo
  976. .carTypeCode)
  977. this.carInfoVo1.carKindCode = dictionaryMatch(this.car_kind_codeoptions, res.data
  978. .carInfoVo
  979. .carKindCode)
  980. this.carInfoVo1.energyTypeCode = dictionaryMatch(this.energy_type_codeoptions, res
  981. .data
  982. .carInfoVo
  983. .energyTypeCode)
  984. }
  985. },
  986. //右上角分享
  987. share() {
  988. this.shareShow = true;
  989. },
  990. toggleExpand(name) {
  991. this[name] = !this[name];
  992. },
  993. }
  994. }
  995. </script>
  996. <style lang="scss" scoped>
  997. .page {
  998. height: 100%;
  999. background-color: #F8F8F8;
  1000. box-sizing: border-box;
  1001. }
  1002. .content {
  1003. padding: 20rpx 30rpx 186rpx;
  1004. box-sizing: border-box;
  1005. //过户信息
  1006. .transfer {
  1007. padding: 30rpx;
  1008. box-sizing: border-box;
  1009. background: #fff;
  1010. border-radius: 20rpx;
  1011. .item {
  1012. width: 50%;
  1013. text:first-child {
  1014. width: 80%;
  1015. font-size: 28rpx;
  1016. color: #666;
  1017. }
  1018. text:last-child {
  1019. width: 20%;
  1020. font-size: 28rpx;
  1021. color: #333;
  1022. }
  1023. }
  1024. .item:nth-child(3) {
  1025. width: 100%;
  1026. text:first-child {
  1027. width: 25%;
  1028. font-size: 28rpx;
  1029. color: #666;
  1030. }
  1031. text:last-child {
  1032. width: 75%;
  1033. font-size: 28rpx;
  1034. color: #333;
  1035. }
  1036. }
  1037. .Attachment {
  1038. width: 100%;
  1039. >view {
  1040. position: relative;
  1041. width: 50%;
  1042. padding: 16rpx 30rpx;
  1043. box-sizing: border-box;
  1044. background-color: #1F1F1F;
  1045. image {
  1046. width: 108rpx;
  1047. height: 108rpx;
  1048. position: absolute;
  1049. top: 0;
  1050. right: 0;
  1051. }
  1052. .title {
  1053. font-size: 30rpx;
  1054. font-weight: 400;
  1055. color: #333;
  1056. }
  1057. .smallText {
  1058. font-size: 24rpx;
  1059. color: #999;
  1060. }
  1061. }
  1062. >view:first-child {
  1063. background: linear-gradient(180deg, #FFF6EB 0%, #FFFCF3 100%);
  1064. border-radius: 15rpx;
  1065. margin-right: 18rpx;
  1066. }
  1067. >view:last-child {
  1068. background: linear-gradient(180deg, #E7FDF8 0%, #F6FFFD 100%);
  1069. border-radius: 15rpx;
  1070. }
  1071. }
  1072. }
  1073. //内容区域
  1074. .view {
  1075. position: relative;
  1076. background-color: #fff;
  1077. border-radius: 20rpx;
  1078. overflow: hidden;
  1079. margin-top: 20rpx;
  1080. //头部背景
  1081. .header-title {
  1082. padding: 20rpx;
  1083. box-sizing: border-box;
  1084. background: linear-gradient(180deg, #FFFCEA 0%, #FFFFFF 100%);
  1085. border-radius: 20rpx 20rpx 0 0;
  1086. border-top: 1rpx solid #FFE1A4;
  1087. font-size: 32rpx;
  1088. color: #333;
  1089. font-weight: bold;
  1090. }
  1091. .items {
  1092. padding: 0 20rpx 20rpx;
  1093. box-sizing: border-box;
  1094. .item {
  1095. margin-bottom: 30rpx;
  1096. >:first-child {
  1097. font-size: 30rpx;
  1098. color: #666;
  1099. }
  1100. >:last-child {
  1101. font-size: 30rpx;
  1102. color: #333;
  1103. font-weight: bold;
  1104. }
  1105. }
  1106. .table {
  1107. width: 100%;
  1108. border-radius: 4rpx;
  1109. border: 1rpx solid #FFD9D9;
  1110. .header {
  1111. background-color: #FFF8F8;
  1112. border-radius: 4rpx 4rpx 0 0;
  1113. .th {
  1114. padding: 15rpx;
  1115. box-sizing: border-box;
  1116. text-align: center;
  1117. font-size: 28rpx;
  1118. color: #FF5B45;
  1119. flex: 1;
  1120. }
  1121. .th.special {
  1122. flex: 2;
  1123. }
  1124. }
  1125. .tr {
  1126. .td {
  1127. padding: 15rpx;
  1128. box-sizing: border-box;
  1129. text-align: center;
  1130. font-size: 28rpx;
  1131. flex: 1;
  1132. }
  1133. .td.special {
  1134. flex: 2;
  1135. }
  1136. }
  1137. .tr:nth-child(odd) {
  1138. background-color: #FBFBFB;
  1139. }
  1140. }
  1141. }
  1142. }
  1143. }
  1144. .userinfo {
  1145. margin-top: 24rpx;
  1146. .userinfo-header {
  1147. font-weight: bold;
  1148. font-size: 30rpx;
  1149. color: #333;
  1150. .tag {
  1151. width: 6rpx;
  1152. height: 30rpx;
  1153. background: #FDE935;
  1154. border-radius: 0rpx 6rpx 6rpx 0rpx;
  1155. margin-right: 6rpx;
  1156. }
  1157. }
  1158. .content {
  1159. padding: 20rpx 0;
  1160. box-sizing: border-box;
  1161. .item {
  1162. margin-bottom: 30rpx;
  1163. text:first-child {
  1164. font-size: 30rpx;
  1165. color: #666;
  1166. }
  1167. text:last-child {
  1168. font-size: 30rpx;
  1169. color: #333;
  1170. font-weight: bold;
  1171. width: 75%;
  1172. text-align: right;
  1173. }
  1174. }
  1175. }
  1176. }
  1177. //查看更多
  1178. .loadMore {
  1179. position: absolute;
  1180. bottom: 0;
  1181. left: 0;
  1182. right: 0;
  1183. padding: 20rpx;
  1184. box-sizing: border-box;
  1185. background: linear-gradient(0, #fff 0%, rgba(255, 255, 255, 0.9) 100%);
  1186. text {
  1187. font-size: 28rpx;
  1188. color: #999;
  1189. }
  1190. image {
  1191. width: 24rpx;
  1192. height: 24rpx;
  1193. margin-left: 4rpx;
  1194. transition: transform 0.5s;
  1195. /* 添加过渡效果 */
  1196. }
  1197. }
  1198. //车船税
  1199. .vvTax-Tag {
  1200. padding: 4rpx 20rpx;
  1201. box-sizing: border-box;
  1202. background: #FF5B45;
  1203. border-radius: 20rpx 20rpx 20rpx 20rpx;
  1204. font-size: 26rpx;
  1205. color: #fff;
  1206. line-height: 1.2;
  1207. }
  1208. //默认高度
  1209. .collapsed {
  1210. max-height: 516rpx;
  1211. /* 露出部分的高度 */
  1212. }
  1213. // 车船税弹窗
  1214. .vvTaxDetails-cell {
  1215. padding: 40rpx;
  1216. box-sizing: border-box;
  1217. .cell-item {
  1218. font-size: 30rpx;
  1219. color: #333;
  1220. margin-bottom: 30rpx;
  1221. text:last-child {
  1222. font-weight: bold;
  1223. }
  1224. }
  1225. .cell-item:last-child {
  1226. margin-bottom: 0;
  1227. }
  1228. }
  1229. //底部样式
  1230. .footer {
  1231. position: fixed;
  1232. bottom: 0;
  1233. left: 0;
  1234. right: 0;
  1235. padding: 25rpx 30rpx 55rpx;
  1236. box-sizing: border-box;
  1237. background: linear-gradient(0deg, #FFFFFF 0%, rgba(255, 254, 245, 0.7) 100%);
  1238. border-radius: 0rpx 0rpx 0rpx 0rpx;
  1239. backdrop-filter: blur(12rpx);
  1240. .totalPrice {
  1241. text {
  1242. font-size: 28rpx;
  1243. color: #FF540A;
  1244. font-weight: bold;
  1245. }
  1246. text:last-child {
  1247. font-size: 42rpx;
  1248. font-weight: bold;
  1249. }
  1250. }
  1251. .feeEntry {
  1252. font-size: 24rpx;
  1253. color: #FFAC1D;
  1254. cursor: pointer;
  1255. }
  1256. .btn {
  1257. background: #FDE935;
  1258. padding: 25rpx 30rpx;
  1259. box-sizing: border-box;
  1260. border-radius: 58rpx 58rpx 58rpx 58rpx;
  1261. font-size: 30rpx;
  1262. color: #1F1F1F;
  1263. font-weight: bold;
  1264. margin: 0 10rpx;
  1265. }
  1266. //操作按钮特殊样式
  1267. .btns {
  1268. background: rgba(253, 233, 53, 0.2);
  1269. border: 1rpx solid #FDE935;
  1270. padding: 22rpx 30rpx;
  1271. }
  1272. }
  1273. .colorBlock {
  1274. width: 54rpx;
  1275. height: 54rpx;
  1276. background: #FDE935;
  1277. border-radius: 10rpx 10rpx 10rpx 10rpx;
  1278. margin-left: 12rpx;
  1279. image {
  1280. width: 34rpx;
  1281. height: 34rpx;
  1282. }
  1283. }
  1284. // 商业险折扣系数样式
  1285. .updateDiscount {
  1286. padding: 40rpx;
  1287. box-sizing: border-box;
  1288. .text {
  1289. font-size: 28rpx;
  1290. color: #666;
  1291. }
  1292. .input {
  1293. font-size: 32rpx;
  1294. color: #333;
  1295. text:last-child {
  1296. color: #999;
  1297. margin-left: 10rpx;
  1298. }
  1299. }
  1300. .btn {}
  1301. }
  1302. .feeEntryClass {
  1303. padding: 0 40rpx 40rpx;
  1304. box-sizing: border-box;
  1305. .data-view {
  1306. padding: 20rpx 0;
  1307. box-sizing: border-box;
  1308. border-bottom: 1rpx solid #eee;
  1309. .title {
  1310. font-size: 30rpx;
  1311. color: #666;
  1312. }
  1313. .discount {
  1314. width: 45%;
  1315. >view {
  1316. text:first-child {
  1317. font-size: 28rpx;
  1318. color: #999;
  1319. }
  1320. text:last-child {
  1321. font-size: 30rpx;
  1322. color: #333;
  1323. }
  1324. }
  1325. }
  1326. }
  1327. .discountTotal {
  1328. padding: 20rpx 0;
  1329. box-sizing: border-box;
  1330. .name {
  1331. font-size: 30rpx;
  1332. color: #333;
  1333. }
  1334. .sum {
  1335. font-size: 32rpx;
  1336. color: #FF540A;
  1337. font-weight: bold;
  1338. }
  1339. }
  1340. .footer-btn {
  1341. width: 100%;
  1342. padding: 20rpx;
  1343. box-sizing: border-box;
  1344. background: rgba(253, 233, 53, 0.1);
  1345. border-radius: 45rpx 45rpx 45rpx 45rpx;
  1346. border: 1rpx solid #FDE935;
  1347. margin-top: 20rpx;
  1348. }
  1349. }
  1350. .customerRights {
  1351. padding: 20rpx 30rpx;
  1352. box-sizing: border-box;
  1353. background-color: #fff;
  1354. border-radius: 20rpx;
  1355. margin: 20rpx 0;
  1356. .header {
  1357. text {
  1358. font-size: 34rpx;
  1359. color: #333;
  1360. font-weight: bold;
  1361. }
  1362. .btn {
  1363. padding: 8rpx 20rpx;
  1364. box-sizing: border-box;
  1365. font-size: 28rpx;
  1366. color: #1F1F1F;
  1367. background: #FDE935;
  1368. border-radius: 50rpx 50rpx 50rpx 50rpx;
  1369. }
  1370. }
  1371. .customerRights-content {
  1372. font-size: 28rpx;
  1373. color: #666;
  1374. }
  1375. }
  1376. .discountMethod-cell {
  1377. padding: 14rpx 30rpx 44rpx;
  1378. box-sizing: border-box;
  1379. .item {
  1380. padding: 16rpx 0;
  1381. box-sizing: border-box;
  1382. border-bottom: 1rpx solid #eee;
  1383. .title {
  1384. font-size: 32rpx;
  1385. color: #333;
  1386. font-weight: bold;
  1387. }
  1388. text:last-child {
  1389. font-size: 30rpx;
  1390. color: #666;
  1391. .price {
  1392. font-size: 30rpx;
  1393. color: #FF540A;
  1394. }
  1395. }
  1396. }
  1397. }
  1398. </style>