quote1.vue 39 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360
  1. <template>
  2. <view :style="getHeight" style="background-color: #F5F5F5;">
  3. <!-- 公共组件-每个页面必须引入 -->
  4. <public-module></public-module>
  5. <!-- 头部 -->
  6. <view class="carInfo w-100 px-3 box-sizing">
  7. <view class="d-flex">
  8. <view class="icon iconfont icon-tree-round-car flex-shrink topLeft"></view>
  9. <view class="topRight d-flex flex-1 p-3 flex-column" style="color: #FFFFFF;">
  10. <view class="d-flex flex-1">
  11. <view class="font-lg d-flex a-center">{{this.carInfo.licenseNo}}
  12. <view class="icon iconfont icon-bianji1 ml-2" @tap="toCarInfo"></view>
  13. </view>
  14. </view>
  15. <view class="brandName">{{this.carInfo.brandName}}</view>
  16. </view>
  17. </view>
  18. <view class="other d-flex j-sb px-3">
  19. <view class="d-flex flex-1 a-center">
  20. <view class="privilege d-flex a-center j-center flex-shrink px-2">特权</view>
  21. <view class="content">每月自动查违章,无违章领奖励</view>
  22. </view>
  23. <view class="flex-shrink icon iconfont icon-youjiantou d-flex a-center font-sm"></view>
  24. </view>
  25. </view>
  26. <!-- 报价方案 -->
  27. <view class="pageContent">
  28. <view class="quotePlan mx-3">
  29. <view class="header j-sb d-flex a-center px-3">
  30. <view class="title font-md">报价方案</view>
  31. <view class="adjustPlan main-text-color" @tap="toInsureItems">调整方案</view>
  32. </view>
  33. <view class="body">
  34. <view class="insurance">
  35. <template v-if="CIStartDate!=''">
  36. <view class="row j-sb d-flex a-center">
  37. <view>交强险</view>
  38. <view>投保</view>
  39. </view>
  40. </template>
  41. <template v-if="BIStartDate!=''">
  42. <block v-for="(item,index) in insureList" :key="index">
  43. <template v-if="item.amount!=0">
  44. <view class="row j-sb d-flex a-center">
  45. <view>{{item.kindName}}</view>
  46. <block v-for="(item2,index2) in item.amtList" :key="index2">
  47. <template v-if="item2.value == item.amount">
  48. <view>{{item2.label}}</view>
  49. </template>
  50. </block>
  51. </view>
  52. </template>
  53. </block>
  54. </template>
  55. <view class="d-flex">
  56. <view>起保日期:</view>
  57. <view>
  58. <picker ref="jqTimePicker" :value="jqTimeIndex" :range="timeArray"
  59. @change="jqTimePickerChange" @cancel="jqTimePickerCancel"></picker>
  60. <p class="date d-flex a-center font-md" style="color: #FFFFFF;"
  61. v-if="this.CIStartDate!=''">交强险 {{this.CIStartDate}}
  62. <!-- <checkbox :checked="jqjishi" @tap="jqjishichange" style="transform:scale(0.5)"/>即时 -->
  63. </p>
  64. <picker ref="syTimePicker" :value="syTimeIndex" :range="timeArray"
  65. @change="syTimePickerChange" @cancel="syTimePickerCancel"></picker>
  66. <p class="date d-flex a-center font-md" style="color: #FFFFFF;"
  67. v-if="this.BIStartDate!=''">商业险 {{this.BIStartDate}}
  68. <!-- <checkbox :checked="syjishi" @tap="syjishichange" style="transform:scale(0.5)"/>即时 -->
  69. </p>
  70. </view>
  71. </view>
  72. </view>
  73. <view class="addedServices" v-if="this.BIStartDate!=''">
  74. <view class="row j-sb d-flex a-center">
  75. <view>增值服务</view>
  76. <view>赠送</view>
  77. </view>
  78. <view style="padding: 15upx;color: #A6A6A6;font-size: 24upx;background-color: #F8FAFC;">
  79. 注:包含道路救援/安全检测/代为驾驶/代为送检,投保以上商业主险免费赠送,各家保司各个地区旅游差异,具体以保单信息为准</view>
  80. </view>
  81. </view>
  82. </view>
  83. <!-- <view class="d-flex a-center j-center" v-if="totalCompanyList[0].quoteCode !== '200'" >
  84. 还有 <view style="margin: 10upx; color: #007AFF;"> {{totalCompanyList.length - quoteCompanyCount}} </view>
  85. 家保险公司正在报价
  86. </view> -->
  87. <!-- {{msg}} -->
  88. <view class="quoteCompany">
  89. <!-- <ls-loading text="掌柜正在为您报价,请稍等......" :animation="animation" v-if="show1" fontSize="28" /> -->
  90. <view class="header j-sb d-flex a-center">
  91. <view class="title d-flex">精选保险公司<view class="icon iconfont icon-Group-"></view>
  92. </view>
  93. </view>
  94. <block v-for="(totalitem,totalindex) in totalCompanyList" :key="index">
  95. <template>
  96. <view class="quoteCompanyItem">
  97. <view class="top dis f-c" v-show="true">
  98. <view class="companyIcon d-flex ">
  99. <u-checkbox
  100. @change="event=>checkboxChange(event,totalitem.id,totalitem.cnName, totalindex)"
  101. v-model="totalitem.checked" active-color="rgb(250, 53, 52)"></u-checkbox>
  102. <image :src="totalitem.logo"></image>
  103. <view class="companyName">{{totalitem.namesimple}}</view>
  104. <view class="totalMoney">¥{{totalitem.result.sumPermium}}</view>
  105. </view>
  106. </view>
  107. <view class="body d-flex main-text-color">
  108. <view>
  109. <view class="icon iconfont icon-exchange"></view>2次代步车服务
  110. </view>
  111. <view>
  112. <view class="icon iconfont icon-exchange"></view>2次代步车服务
  113. </view>
  114. <view>
  115. <view class="icon iconfont icon-exchange"></view>2次代步车服务2次代步车服务2次代步车服务
  116. </view>
  117. </view>
  118. <view>
  119. <button class="btn main-bg-color"
  120. @tap="toQuoteDetail(totalitem.result.orderno)">查看详情</button>
  121. </view>
  122. <u-alert-tips style="margin-top: 10px;padding:4px;"
  123. v-if="(totalitem.quoteCode == '200') && (totalitem.name =='中煤财险')" type="warning"
  124. :show-icon="true" :description="totalitem.msg"></u-alert-tips>
  125. </view>
  126. </template>
  127. </block>
  128. </view>
  129. </view>
  130. <wyb-popup ref="carTypePopup" type="center" :scrollY="true" mode="size-fixed" :maskClickClose="false"
  131. height="640" width="690" radius="6">
  132. <view class="popupBody">
  133. <block v-for="(item,index) in carTypeList" :key="index">
  134. <view class="carTypeItem d-flex " @tap="chooseCarType(item)">
  135. <view class="nav d-flex flex-1 flex-column">
  136. <view class="carseriesName">{{item.carseriesname}}</view>
  137. <view class="modelName">{{item.modelname}}</view>
  138. <view class="nav_box d-flex">
  139. <span class="zid">{{item.transmissiontype}}</span>
  140. <p class=" d-flex a-center">
  141. {{item.caryear}}{{item.caryear==""?"":"款 | "}}{{item.seatmax}}座
  142. </p>
  143. </view>
  144. </view>
  145. <view class="price d-flex a-center j-center">¥{{item.purchaseprice}}</view>
  146. </view>
  147. </block>
  148. </view>
  149. </wyb-popup>
  150. <view class="infoBottom d-flex a-center j-center j-sb">
  151. <button type="default" class="d-flex a-center j-center" @tap="toNext">保费计算</button>
  152. </view>
  153. </view>
  154. </template>
  155. <script>
  156. import {
  157. mapState
  158. } from "vuex"
  159. import wybPopup from '@/components/common/wyb-popup/wyb-popup.vue'
  160. import lsLoading from '@/components/common/ls-loading/ls-loading.vue';
  161. export default {
  162. components: {
  163. wybPopup,
  164. lsLoading
  165. },
  166. computed: {
  167. ...mapState(['userInfo']),
  168. getHeight() {
  169. let height = uni.getSystemInfoSync().windowHeight;
  170. return `minHeight: ${height}px;`;
  171. }
  172. },
  173. // 监听导航栏的按钮
  174. onNavigationBarButtonTap(e) {
  175. if (e.index == 0) {
  176. this.navigate({
  177. url: '/pages/index/index'
  178. }, "switchTab", true);
  179. }
  180. },
  181. data() {
  182. return {
  183. show1: true, //华农
  184. animation: 'twinkle', //动画类型
  185. jqjishi: false,
  186. syjishi: false,
  187. timeArray: [],
  188. jqTimeIndex: 0,
  189. syTimeIndex: 0,
  190. time1: "",
  191. time2: "",
  192. carTypeList: [], //车辆品牌型号列表
  193. msg: "",
  194. quoteno: "", //报价编号
  195. hasKindCodeA: false, //是否含有车损险
  196. carInfo: {}, //车辆信息
  197. carInfo1: {}, //车辆信息
  198. ownerInfo: {}, //车主信息
  199. policyHolderInfo: {}, //投保人信息
  200. insuredPersonInfo: {}, //被保人信息
  201. riskList: [], //险种大类信息
  202. kindList: [], //商业险险别
  203. showCarInfo: false, //控制车辆信息显示
  204. showInsureDate: true, //控制险种时间显示
  205. CIStartDate: "", //交强险日期
  206. BIStartDate: "", //商业险日期
  207. insureList: [{
  208. amount: "0",
  209. amtList: [{
  210. "label": "投保",
  211. "value": "1"
  212. }],
  213. kindCode: "A",
  214. isMainRisk: true,
  215. kindName: "机动车损失险"
  216. },
  217. {
  218. amount: "0",
  219. amtList: [{
  220. "label": "10万",
  221. "value": "100000"
  222. }, {
  223. "label": "15万",
  224. "value": "150000"
  225. }, {
  226. "label": "20万",
  227. "value": "200000"
  228. }, {
  229. "label": "30万",
  230. "value": "300000"
  231. }, {
  232. "label": "50万",
  233. "value": "500000"
  234. }, {
  235. "label": "100万",
  236. "value": "1000000"
  237. }, {
  238. "label": "150万",
  239. "value": "1500000"
  240. }, {
  241. "label": "200万",
  242. "value": "2000000"
  243. }, {
  244. "label": "250万",
  245. "value": "2500000"
  246. }, {
  247. "label": "300万",
  248. "value": "3000000"
  249. }, {
  250. "label": "500万",
  251. "value": "5000000"
  252. }, {
  253. "label": "1000万",
  254. "value": "10000000"
  255. }],
  256. kindCode: "B",
  257. isMainRisk: true,
  258. kindName: "第三者责任险"
  259. },
  260. {
  261. amount: "0",
  262. amtList: [{
  263. "label": "1万",
  264. "value": "10000"
  265. }, {
  266. "label": "2万",
  267. "value": "20000"
  268. }, {
  269. "label": "5万",
  270. "value": "50000"
  271. }, {
  272. "label": "10万",
  273. "value": "100000"
  274. }, {
  275. "label": "15万",
  276. "value": "150000"
  277. }, {
  278. "label": "20万",
  279. "value": "200000"
  280. }],
  281. kindCode: "D3",
  282. isMainRisk: true,
  283. kindName: "司机责任险"
  284. },
  285. {
  286. amount: "0",
  287. amtList: [{
  288. "label": "1万",
  289. "value": "10000"
  290. }, {
  291. "label": "2万",
  292. "value": "20000"
  293. }, {
  294. "label": "5万",
  295. "value": "50000"
  296. }, {
  297. "label": "10万",
  298. "value": "100000"
  299. }, {
  300. "label": "15万",
  301. "value": "150000"
  302. }, {
  303. "label": "20万",
  304. "value": "200000"
  305. }],
  306. kindCode: "D4",
  307. isMainRisk: true,
  308. kindName: "乘客责任险"
  309. },
  310. {
  311. amount: "0",
  312. amtList: [{
  313. "label": "2000",
  314. "value": "2000"
  315. }, {
  316. "label": "5000",
  317. "value": "5000"
  318. }, {
  319. "label": "1万",
  320. "value": "10000"
  321. }],
  322. isMainRisk: false,
  323. kindCode: "L",
  324. kindName: "车身划痕险",
  325. mainRiskCodeList: "A"
  326. },
  327. {
  328. amount: "0",
  329. amtList: [{
  330. "label": "5%",
  331. "value": "5"
  332. }, {
  333. "label": "10%",
  334. "value": "10"
  335. }, {
  336. "label": "15%",
  337. "value": "15"
  338. }, {
  339. "label": "20%",
  340. "value": "20"
  341. }],
  342. isMainRisk: false,
  343. kindCode: "MJ1",
  344. kindName: "绝对免赔率特约险(车损)",
  345. mainRiskCodeList: "A"
  346. },
  347. {
  348. amount: "0",
  349. amtList: [{
  350. "label": "5%",
  351. "value": "5"
  352. }, {
  353. "label": "10%",
  354. "value": "10"
  355. }, {
  356. "label": "15%",
  357. "value": "15"
  358. }, {
  359. "label": "20%",
  360. "value": "20"
  361. }],
  362. isMainRisk: false,
  363. kindCode: "MJ2",
  364. kindName: "绝对免赔率特约险(三者)",
  365. mainRiskCodeList: "B"
  366. },
  367. {
  368. amount: "0",
  369. amtList: [{
  370. "label": "5%",
  371. "value": "5"
  372. }, {
  373. "label": "10%",
  374. "value": "10"
  375. }, {
  376. "label": "15%",
  377. "value": "15"
  378. }, {
  379. "label": "20%",
  380. "value": "20"
  381. }],
  382. isMainRisk: false,
  383. kindCode: "MJ3",
  384. kindName: "绝对免赔率特约险(司机)",
  385. mainRiskCodeList: "D3"
  386. },
  387. {
  388. amount: "0",
  389. amtList: [{
  390. "label": "5%",
  391. "value": "5"
  392. }, {
  393. "label": "10%",
  394. "value": "10"
  395. }, {
  396. "label": "15%",
  397. "value": "15"
  398. }, {
  399. "label": "20%",
  400. "value": "20"
  401. }],
  402. isMainRisk: false,
  403. kindCode: "MJ4",
  404. kindName: "绝对免赔率特约险(乘客)",
  405. mainRiskCodeList: "D4"
  406. },
  407. {
  408. amount: "0",
  409. amtList: [{
  410. "label": "投保",
  411. "value": "1"
  412. }],
  413. isMainRisk: false,
  414. kindCode: "BD",
  415. kindName: "法定节假日限额翻倍险",
  416. mainRiskCodeList: "B"
  417. }
  418. ],
  419. totalCompanyList: [], //保险公司列表
  420. notStartedQuote: true, //未开始报价(true表示未开始报价,false表示已经报价结束)
  421. quoteCompanyCount: 0,
  422. }
  423. },
  424. async onLoad() {
  425. const eventChannel = this.getOpenerEventChannel()
  426. // 监听acceptData事件,获取上一页面通过eventChannel传送到当前页面的数据
  427. eventChannel.on('acceptData', async (data) => {
  428. console.log(data)
  429. // this.quoteno = new Date().getTime(); //报价号
  430. let getquote = await this.$http.get('/ins/tool/getQuoteNo');
  431. this.quoteno = getquote.data;
  432. //读取上一个页面传过来数据(车辆信息,人员信息,险种信息)
  433. this.carInfo = data.carInfo; //车辆信息
  434. this.carInfo1 = data.carInfo; //车辆信息
  435. this.ownerInfo = data.ownerInfo; //车主信息
  436. this.policyHolderInfo = data.policyHolderInfo; //投保人信息
  437. this.insuredPersonInfo = data.insuredPersonInfo; //被保人信息
  438. this.riskList = data.riskList; //险种大类
  439. this.kindList = data.kindList; //商业险险别
  440. this.CIStartDate = '';
  441. this.BIStartDate = '';
  442. var dateTime = new Date();
  443. dateTime.setTime(dateTime.getTime() + 24 * 60 * 60 * 1000);
  444. var tomorrow = dateTime.getFullYear() + "-" + (((dateTime.getMonth() + 1) < 10) ? ("0" + (
  445. dateTime.getMonth() +
  446. 1)) : (dateTime.getMonth() + 1)) + "-" + ((dateTime.getDate() < 10) ? ("0" +
  447. dateTime
  448. .getDate()) : dateTime.getDate()) +
  449. " 00:00";
  450. if (this.riskList.length > 0) {
  451. for (let i = 0; i < this.riskList.length; i++) {
  452. if (this.riskList[i].riskCode == '0507') {
  453. this.CIStartDate = this.riskList[i].startDate;
  454. // if ((new Date(tomorrow).getTime()) > (new Date(this.CIStartDate).getTime())) {
  455. // this.CIStartDate = tomorrow;
  456. // this.riskList[i].startDate = tomorrow;
  457. // this.riskList[i].endDate = this.oneYearPast1(tomorrow);
  458. // }
  459. }
  460. if (this.riskList[i].riskCode == '0510') {
  461. this.BIStartDate = this.riskList[i].startDate;
  462. // if (new Date(tomorrow).getTime() > new Date(this.BIStartDate).getTime()) {
  463. // this.BIStartDate = tomorrow;
  464. // this.riskList[i].startDate = tomorrow;
  465. // this.riskList[i].endDate = this.oneYearPast1(tomorrow);
  466. // }
  467. for (let j = 0; j < this.kindList.length; j++) {
  468. if (this.kindList[j].kindCode == 'A') {
  469. this.hasKindCodeA = true;
  470. }
  471. for (let m = 0; m < this.insureList.length; m++) {
  472. if (this.kindList[j].kindCode == this.insureList[m].kindCode) {
  473. if (this.kindList[j].kindCode == 'B') {
  474. this.insureList[9].amtList[0].value = this.kindList[j].amount;
  475. }
  476. if (this.insureList[m].kindCode == 'D4') {
  477. this.insureList[m].amount = this.kindList[j].unitAmount;
  478. } else if (this.insureList[m].isMainRisk || (this.insureList[m]
  479. .kindCode == 'BD') || (this.insureList[m].kindCode ==
  480. 'L')) {
  481. this.insureList[m].amount = this.kindList[j].amount;
  482. } else {
  483. this.insureList[m].amount = this.kindList[j].deductibleRate;
  484. }
  485. }
  486. }
  487. }
  488. }
  489. }
  490. }
  491. })
  492. this.commpanyList(); //获取保险公司列表
  493. },
  494. methods: {
  495. async commpanyList() {
  496. let commpanykad = await this.$http.get('/esmInsCompany/gainAllowQuoteList');
  497. commpanykad.data.map(ele => {
  498. ele["result"] = {};
  499. ele["quoteCode"] = 0;
  500. ele["checked"] = false;
  501. ele["msg"] = "";
  502. })
  503. this.totalCompanyList = commpanykad.data;
  504. },
  505. jqTimePickerCancel() {
  506. this.jqjishi = !this.jqjishi;
  507. var dateTime = new Date();
  508. dateTime.setTime(dateTime.getTime() + 24 * 60 * 60 * 1000);
  509. var tomorrow = dateTime.getFullYear() + "-" + (((dateTime.getMonth() + 1) < 10) ? ("0" + (dateTime
  510. .getMonth() + 1)) :
  511. (dateTime.getMonth() + 1)) + "-" + ((dateTime.getDate() < 10) ? ("0" + dateTime.getDate()) :
  512. dateTime.getDate()) + " 00:00";
  513. this.CIStartDate = tomorrow;
  514. },
  515. syTimePickerCancel() {
  516. this.syjishi = !this.syjishi;
  517. var dateTime = new Date();
  518. dateTime.setTime(dateTime.getTime() + 24 * 60 * 60 * 1000);
  519. var tomorrow = dateTime.getFullYear() + "-" + (((dateTime.getMonth() + 1) < 10) ? ("0" + (dateTime
  520. .getMonth() + 1)) :
  521. (dateTime.getMonth() + 1)) + "-" + ((dateTime.getDate() < 10) ? ("0" + dateTime.getDate()) :
  522. dateTime.getDate()) + " 00:00";
  523. this.BIStartDate = tomorrow;
  524. },
  525. jqTimePickerChange(e) {
  526. var dateTime = new Date();
  527. var tomorrow = dateTime.getFullYear() + "-" + (((dateTime.getMonth() + 1) < 10) ? ("0" + (dateTime
  528. .getMonth() + 1)) :
  529. (dateTime.getMonth() + 1)) + "-" + ((dateTime.getDate() < 10) ? ("0" + dateTime.getDate()) :
  530. dateTime.getDate()) + " " + this.timeArray[e.detail.value];
  531. this.CIStartDate = tomorrow;
  532. },
  533. syTimePickerChange(e) {
  534. var dateTime = new Date();
  535. var tomorrow = dateTime.getFullYear() + "-" + (((dateTime.getMonth() + 1) < 10) ? ("0" + (dateTime
  536. .getMonth() + 1)) :
  537. (dateTime.getMonth() + 1)) + "-" + ((dateTime.getDate() < 10) ? ("0" + dateTime.getDate()) :
  538. dateTime.getDate()) + " " + this.timeArray[e.detail.value];
  539. this.BIStartDate = tomorrow;
  540. },
  541. jqjishichange() {
  542. this.jqjishi = !this.jqjishi;
  543. if (this.jqjishi) {
  544. var hours = new Date().getHours() + 1;
  545. this.timeArray = [];
  546. for (let i = hours; i < 24; i++) {
  547. let m = i;
  548. if (m < 10) {
  549. m = '0' + m
  550. }
  551. this.timeArray.push(m + ':00')
  552. }
  553. this.$refs.jqTimePicker.$el.click();
  554. } else {
  555. var dateTime = new Date();
  556. dateTime.setTime(dateTime.getTime() + 24 * 60 * 60 * 1000);
  557. var tomorrow = dateTime.getFullYear() + "-" + (((dateTime.getMonth() + 1) < 10) ? ("0" + (dateTime
  558. .getMonth() + 1)) :
  559. (dateTime.getMonth() + 1)) + "-" + ((dateTime.getDate() < 10) ? ("0" + dateTime.getDate()) :
  560. dateTime.getDate()) + " 00:00";
  561. this.CIStartDate = tomorrow;
  562. }
  563. },
  564. syjishichange() {
  565. this.syjishi = !this.syjishi;
  566. if (this.syjishi) {
  567. var hours = new Date().getHours() + 1;
  568. this.timeArray = [];
  569. for (let i = hours; i < 24; i++) {
  570. let m = i;
  571. if (m < 10) {
  572. m = '0' + m
  573. }
  574. this.timeArray.push(m + ':00')
  575. }
  576. this.$refs.syTimePicker.$el.click();
  577. } else {
  578. var dateTime = new Date();
  579. dateTime.setTime(dateTime.getTime() + 24 * 60 * 60 * 1000);
  580. var tomorrow = dateTime.getFullYear() + "-" + (((dateTime.getMonth() + 1) < 10) ? ("0" + (dateTime
  581. .getMonth() + 1)) :
  582. (dateTime.getMonth() + 1)) + "-" + ((dateTime.getDate() < 10) ? ("0" + dateTime.getDate()) :
  583. dateTime.getDate()) + " 00:00";
  584. this.BIStartDate = tomorrow;
  585. }
  586. },
  587. /**
  588. * 选择保险公司方法
  589. * @param {String} event change选中事件
  590. * @param {String} code 保险公司ID
  591. * @param {String} name 保险公司主体全拼
  592. * @param {String} index 选中下标
  593. */
  594. checkboxChange(event, code, name, index) {
  595. this.totalCompanyList[index].checked = event.value;
  596. },
  597. // 重新选择车型
  598. toCarInfo() {
  599. this.navigate({
  600. url: '/pages/carInsure1/carInfo1',
  601. success: (res) => {
  602. res.eventChannel.emit("acceptData", {
  603. carInfo: this.carInfo,
  604. ownerInfo: this.ownerInfo,
  605. policyHolderInfo: this.policyHolderInfo,
  606. insuredPersonInfo: this.insuredPersonInfo,
  607. riskList: this.riskList,
  608. kindList: this.kindList
  609. })
  610. }
  611. }, "navigateTo", true);
  612. },
  613. // 重新选择方案
  614. toInsureItems() {
  615. this.navigate({
  616. url: '/pages/carInsure1/insureItems1',
  617. success: (res) => {
  618. res.eventChannel.emit("acceptData", {
  619. carInfo: this.carInfo,
  620. ownerInfo: this.ownerInfo,
  621. policyHolderInfo: this.policyHolderInfo,
  622. insuredPersonInfo: this.insuredPersonInfo,
  623. riskList: this.riskList,
  624. kindList: this.kindList,
  625. vehicleModel: this.vehicleModel,
  626. })
  627. }
  628. }, "navigateTo", true);
  629. },
  630. toQuoteDetail(orderno) {
  631. this.navigate({
  632. url: "/pages/carInsure1/quoteDetail1?orderno=" + orderno
  633. }, "navigateTo", true);
  634. },
  635. // 显示信息
  636. showErrorMsg(msg) {
  637. if ((msg != "") || (msg != "成功")) {
  638. uni.showModal({
  639. title: '提示',
  640. content: msg,
  641. showCancel: false,
  642. success: function(res) {
  643. if (res.confirm) {
  644. console.log('用户点击确定');
  645. }
  646. }
  647. });
  648. }
  649. },
  650. //恒邦车辆实际价值
  651. async hengbangActualValue() {
  652. let kinds = [];
  653. Object.assign(kinds, this.kindList);
  654. let res = await this.$http.post('/api/hengbang/actualValue', this.carInfo, {
  655. timeout: 30000,
  656. load: false
  657. })
  658. for (let j = 0; j < kinds.length; j++) {
  659. if (kinds[j].kindCode == 'A') {
  660. kinds[j].amount = res.data;
  661. }
  662. }
  663. return kinds;
  664. },
  665. //恒邦车辆实际价值
  666. async hengbangCarType() {
  667. let car = {};
  668. Object.assign(car, this.carInfo);
  669. let param = {
  670. "modelName": this.carInfo.brandName,
  671. "modelCode": this.carInfo.ciModelCode
  672. }
  673. let res = await this.$http.post('/zm/ModelsQuery', param, {
  674. timeout: 30000,
  675. load: false
  676. });
  677. let resList = [];
  678. if (res.data.length > 0) {
  679. car.modelCode = res.data[0].modelCode
  680. }
  681. return car;
  682. },
  683. /* 恒邦 */
  684. async hengbangquote(num) {
  685. this.totalCompanyList[num].msg = "";
  686. let res = await this.$http.post('/ins/hengbang/quote', {
  687. userId: this.userInfo.sysUser.id,
  688. quoteno: this.quoteno,
  689. carInfo: this.carInfo,
  690. ownerInfo: this.ownerInfo,
  691. policyHolderInfo: this.policyHolderInfo,
  692. insuredPersonInfo: this.insuredPersonInfo,
  693. riskList: this.riskList,
  694. kindList: this.kindList,
  695. });
  696. this.totalCompanyList[num].msg = res.msg;
  697. if (!!res.msg && (res.msg.indexOf("不存在有效协议") >= 0)) {
  698. this.totalCompanyList[num].quoteCode = '4'
  699. this.totalCompanyList[num].msg = res.msg;
  700. return;
  701. } else if ((res.data == null) && (res.msg.indexOf('交强险平台返回') > -1) && (res.msg.indexOf(';终保日期') > -
  702. 1)) {
  703. this.CIStartDate = res.msg.substr(res.msg.indexOf(';终保日期 ') + 6, 16);
  704. if (this.riskList.length > 0) {
  705. for (let i = 0; i < this.riskList.length; i++) {
  706. if (this.riskList[i].riskCode == '0507') {
  707. this.riskList[i].startDate = this.CIStartDate;
  708. this.riskList[i].endDate = this.oneYearPast1(this.CIStartDate);
  709. }
  710. }
  711. }
  712. return this.hengbangquote(num);
  713. } else if (!!res.data) {
  714. this.totalCompanyList[num].quoteCode = 200;
  715. return res.data;
  716. } else {
  717. this.totalCompanyList[num].quoteCode = '3'
  718. this.totalCompanyList[num].msg = res.msg;
  719. return;
  720. }
  721. },
  722. /* 中煤 */
  723. async zhongmeiquote(num) {
  724. this.totalCompanyList[num].msg = "";
  725. let res = await this.$http.post('/insZhongmei/quote', {
  726. userId: this.userInfo.sysUser.id,
  727. quoteno: this.quoteno,
  728. carInfo: this.carInfo,
  729. ownerInfo: this.ownerInfo,
  730. policyHolderInfo: this.policyHolderInfo,
  731. insuredPersonInfo: this.insuredPersonInfo,
  732. riskList: this.riskList,
  733. kindList: this.kindList,
  734. });
  735. this.totalCompanyList[num].msg = res.msg;
  736. if (!!res.msg && (res.msg.indexOf("不存在有效协议") >= 0)) {
  737. this.totalCompanyList[num].quoteCode = '4'
  738. this.totalCompanyList[num].msg = res.msg;
  739. return;
  740. } else if ((res.data == null) && (res.msg.indexOf('交强险平台返回') > -1) && (res.msg.indexOf(';终保日期') > -
  741. 1)) {
  742. this.CIStartDate = res.msg.substr(res.msg.indexOf(';终保日期 ') + 6, 16);
  743. if (this.riskList.length > 0) {
  744. for (let i = 0; i < this.riskList.length; i++) {
  745. if (this.riskList[i].riskCode == '0507') {
  746. this.riskList[i].startDate = this.CIStartDate;
  747. this.riskList[i].endDate = this.oneYearPast1(this.CIStartDate);
  748. }
  749. }
  750. }
  751. return this.zhongmeiquote(num);
  752. } else if (!!res.data) {
  753. this.totalCompanyList[num].quoteCode = 200;
  754. this.totalCompanyList[num].msg = res.msg;
  755. return res.data;
  756. } else {
  757. this.totalCompanyList[num].quoteCode = '3'
  758. this.totalCompanyList[num].msg = res.msg;
  759. return;
  760. }
  761. },
  762. /* 永诚 */
  763. async yongchengquote(num) {
  764. this.totalCompanyList[num].msg = "";
  765. let res = await this.$http.post('/ins/yongcheng/quote', {
  766. userId: this.userInfo.sysUser.id,
  767. quoteno: this.quoteno,
  768. carInfo: this.carInfo,
  769. ownerInfo: this.ownerInfo,
  770. policyHolderInfo: this.policyHolderInfo,
  771. insuredPersonInfo: this.insuredPersonInfo,
  772. riskList: this.riskList,
  773. kindList: this.kindList,
  774. });
  775. this.totalCompanyList[num].msg = res.msg;
  776. if (!!res.msg && (res.msg.indexOf("不存在有效协议") >= 0)) {
  777. this.totalCompanyList[num].quoteCode = '4'
  778. this.totalCompanyList[num].msg = res.msg;
  779. return;
  780. } else if ((res.data == null) && (res.msg.indexOf('车险平台返回') > -1) && (res.msg.indexOf(';终保日期') > -
  781. 1)) {
  782. this.CIStartDate = res.msg.substr(res.msg.indexOf(';终保日期 ') + 6, 16);
  783. if (this.riskList.length > 0) {
  784. for (let i = 0; i < this.riskList.length; i++) {
  785. if (this.riskList[i].riskCode == '0507') {
  786. this.riskList[i].startDate = this.CIStartDate;
  787. this.riskList[i].endDate = this.oneYearPast1(this.CIStartDate);
  788. }
  789. }
  790. }
  791. return this.yongchengquote(num);
  792. } else if (!!res.data) {
  793. this.totalCompanyList[num].quoteCode = 200;
  794. this.totalCompanyList[num].msg = res.msg;
  795. return res.data;
  796. } else {
  797. this.totalCompanyList[num].quoteCode = '3'
  798. this.totalCompanyList[num].msg = res.msg;
  799. return;
  800. }
  801. },
  802. /* 永安 */
  803. async yonganquote(num) {
  804. this.totalCompanyList[num].msg = "";
  805. let res = await this.$http.post('/api/yongan/quote', {
  806. userId: this.userInfo.sysUser.id,
  807. quoteno: this.quoteno,
  808. carInfo: this.carInfo,
  809. ownerInfo: this.ownerInfo,
  810. policyHolderInfo: this.policyHolderInfo,
  811. insuredPersonInfo: this.insuredPersonInfo,
  812. riskList: this.riskList,
  813. kindList: this.kindList,
  814. });
  815. this.totalCompanyList[num].msg = res.msg;
  816. if (res.msg == '重复投保' && res.code == '501') {
  817. if (!!res.data.jqStartDate && !res.data.syStartDate) {
  818. // this.totalCompanyList[num].quoteCode = '3'
  819. // var MsgTitle = "重复投保,新保单交强险起保时间为:" + res.data.jqStartDate + "; 终保时间为:" + res.data.jqEndDate;
  820. // this.totalCompanyList[num].msg = MsgTitle;
  821. this.CIStartDate = res.data.jqStartDate.slice(0, -3);
  822. if (this.riskList.length > 0) {
  823. for (let i = 0; i < this.riskList.length; i++) {
  824. if (this.riskList[i].riskCode == '0507') {
  825. this.riskList[i].startDate = res.data.jqStartDate;
  826. this.riskList[i].endDate = res.data.jqEndDate;
  827. }
  828. }
  829. }
  830. return this.yonganquote(num);
  831. } else if (!!res.data.syStartDate && !res.data.jqStartDate) {
  832. // this.totalCompanyList[num].quoteCode = '3'
  833. // var MsgTitle = "重复投保,新保单商业险起保时间为:" + res.data.syStartDate + "; 终保时间为:" + res.data.syEndDate;
  834. // this.totalCompanyList[num].msg = MsgTitle;
  835. this.BIStartDate = res.data.syStartDate.slice(0, -3);
  836. if (this.riskList.length > 0) {
  837. for (let i = 0; i < this.riskList.length; i++) {
  838. if (this.riskList[i].riskCode == '0510') {
  839. this.riskList[i].startDate = res.data.syStartDate;
  840. this.riskList[i].endDate = res.data.syEndDate;
  841. }
  842. }
  843. }
  844. return this.yonganquote(num);
  845. } else if (!!res.data.syStartDate && !!res.data.jqStartDate) {
  846. // this.totalCompanyList[num].quoteCode = '3'
  847. // var MsgTitle = "重复投保,新保单交强险起保时间为:" + res.data.jqStartDate + "; 终保时间为:" + res.data.jqEndDate +
  848. // "; 商业险起保时间为:" + res.data.syStartDate + ";终保时间为:" + res.data.syEndDate;
  849. // this.totalCompanyList[num].msg = MsgTitle;
  850. this.CIStartDate = res.data.jqStartDate.slice(0, -3);
  851. this.BIStartDate = res.data.syStartDate.slice(0, -3);
  852. if (this.riskList.length > 0) {
  853. for (let i = 0; i < this.riskList.length; i++) {
  854. if (this.riskList[i].riskCode == '0507') {
  855. this.riskList[i].startDate = res.data.jqStartDate;
  856. this.riskList[i].endDate = res.data.jqEndDate;
  857. } else if (this.riskList[i].riskCode == '0510') {
  858. this.riskList[i].startDate = res.data.syStartDate;
  859. this.riskList[i].endDate = res.data.syEndDate;
  860. }
  861. }
  862. }
  863. return this.yonganquote(num);
  864. } else {
  865. this.totalCompanyList[num].quoteCode = '3'
  866. this.totalCompanyList[num].msg = "重复投保";
  867. }
  868. } else if (res.code == '500' || res.code == '502' || res.code == '-9999') {
  869. this.totalCompanyList[num].quoteCode = '-9999'
  870. this.totalCompanyList[num].msg = res.msg;
  871. } else {
  872. this.totalCompanyList[num].quoteCode = 200;
  873. return res.data;
  874. }
  875. },
  876. /* 人保 */
  877. async renbaoquote(num) {
  878. this.totalCompanyList[num].msg = "";
  879. let res = await this.$http.post('/api/insRenbao/quote', {
  880. userId: this.userInfo.sysUser.id,
  881. quoteno: this.quoteno,
  882. carInfo: this.carInfo,
  883. ownerInfo: this.ownerInfo,
  884. policyHolderInfo: this.policyHolderInfo,
  885. insuredPersonInfo: this.insuredPersonInfo,
  886. riskList: this.riskList,
  887. kindList: this.kindList,
  888. });
  889. this.totalCompanyList[num].msg = res.msg;
  890. if (!!res.msg && (res.msg.indexOf("不存在有效协议") >= 0)) {
  891. this.totalCompanyList[num].quoteCode = '4'
  892. this.totalCompanyList[num].msg = res.msg;
  893. return;
  894. } else if ((res.data == null) && (res.msg.indexOf('交强险平台返回') > -1) && (res.msg.indexOf(';终保日期') > -
  895. 1)) {
  896. this.CIStartDate = res.msg.substr(res.msg.indexOf(';终保日期 ') + 6, 16);
  897. if (this.riskList.length > 0) {
  898. for (let i = 0; i < this.riskList.length; i++) {
  899. if (this.riskList[i].riskCode == '0507') {
  900. this.riskList[i].startDate = this.CIStartDate;
  901. this.riskList[i].endDate = this.oneYearPast1(this.CIStartDate);
  902. }
  903. }
  904. }
  905. return this.renbaoquote(num);
  906. } else if (!!res.data) {
  907. this.totalCompanyList[num].quoteCode = 200;
  908. return res.data;
  909. } else {
  910. this.totalCompanyList[num].quoteCode = '3'
  911. this.totalCompanyList[num].msg = res.msg;
  912. return;
  913. }
  914. },
  915. async tiananquote(num) {
  916. this.totalCompanyList[num].msg = "";
  917. let res = await this.$http.post('/api/tianan/quote', {
  918. userId: this.userInfo.sysUser.id,
  919. quoteno: this.quoteno,
  920. carInfo: this.carInfo,
  921. ownerInfo: this.ownerInfo,
  922. policyHolderInfo: this.policyHolderInfo,
  923. insuredPersonInfo: this.insuredPersonInfo,
  924. riskList: this.riskList,
  925. kindList: this.kindList,
  926. });
  927. this.totalCompanyList[num].msg = res.msg;
  928. if (!!res.msg && (res.msg.indexOf("不存在有效协议") >= 0)) {
  929. this.totalCompanyList[num].quoteCode = '4'
  930. this.totalCompanyList[num].msg = res.msg;
  931. return;
  932. } else if (!!res.data) {
  933. this.totalCompanyList[num].quoteCode = 200;
  934. return res.data;
  935. } else {
  936. this.totalCompanyList[num].quoteCode = '3'
  937. this.totalCompanyList[num].msg = res.msg;
  938. return;
  939. }
  940. },
  941. //选择正确的车型
  942. async chooseCarType(item) {
  943. this.carInfo.brandName = item.modelname; //品牌型号
  944. this.carInfo.ciModelCode = item.vehiclecode; //行业车型编码
  945. this.carInfo.modelCode = item.modelcode;
  946. this.carInfo.seatCount = item.seatmax + '';
  947. this.carInfo.caryear = item.caryear;
  948. this.carInfo.exhaustScale = (item.exhaustscale * 1000) + '';
  949. this.carInfo.factory = item.factory;
  950. this.carInfo.factoryid = item.factorycode;
  951. this.carInfo.cimodelclass = item.inscarclassname;
  952. this.carInfo.powertype = item.powerType;
  953. this.carInfo.purchasePrice = item.purchaseprice + '';
  954. this.carInfo.modelcname = item.modelname;
  955. this.$refs.carTypePopup.hide()
  956. let a = await this.huanongquote(0);
  957. this.totalCompanyList[0].result = a;
  958. if (this.totalCompanyList[0].quoteCode != '4') {
  959. this.quoteCompanyCount++;
  960. let c = await this.zhongmeiquote(2);
  961. this.totalCompanyList[2].result = c;
  962. this.quoteCompanyCount++;
  963. let d = await this.tiananquote(1);
  964. this.totalCompanyList[1].result = d;
  965. this.quoteCompanyCount++;
  966. let b = await this.hengbangquote(3);
  967. this.totalCompanyList[3].result = b;
  968. this.quoteCompanyCount++;
  969. }
  970. },
  971. //计算输入时间一年后的的前一天(输入的参数为字符串("2019-03-02")最终输出也为日期的字符串)
  972. oneYearPast1(time) {
  973. if (time.substr(11, 5) == '00:00') {
  974. var date = new Date(time);
  975. date.setFullYear(date.getFullYear() + 1); //一年后
  976. date.setTime(date.getTime() - 24 * 60 * 60 * 1000); //一年后的前一天
  977. var strYear = date.getFullYear();
  978. var strDay = date.getDate();
  979. var strMonth = date.getMonth() + 1;
  980. if (strMonth < 10) {
  981. strMonth = "0" + strMonth;
  982. }
  983. if (strDay < 10) {
  984. strDay = "0" + strDay;
  985. }
  986. var datastr = strYear + "-" + strMonth + "-" + strDay;
  987. return datastr + " 24:00";
  988. } else {
  989. var time1 = time.substr(11, 5);
  990. var date = new Date(time);
  991. date.setFullYear(date.getFullYear() + 1); //一年后
  992. date.setTime(date.getTime() - 24 * 60 * 60 * 1000); //一年后的前一天
  993. var strYear = date.getFullYear();
  994. var strDay = date.getDate();
  995. var strMonth = date.getMonth() + 1;
  996. if (strMonth < 10) {
  997. strMonth = "0" + strMonth;
  998. }
  999. if (strDay < 10) {
  1000. strDay = "0" + strDay;
  1001. }
  1002. var datastr = strYear + "-" + strMonth + "-" + strDay;
  1003. return datastr + " " + time1;
  1004. }
  1005. }
  1006. }
  1007. }
  1008. </script>
  1009. <style lang="scss" scoped>
  1010. @import '@/style/mixin.scss';
  1011. /* 头部车辆信息和特权Start */
  1012. .carInfo {
  1013. height: 330upx;
  1014. background: -webkit-linear-gradient(0deg, rgba($themeColor, 0.6), rgba($themeColor, 0.8));
  1015. background-size: 100% 100%;
  1016. }
  1017. .carInfo .topLeft {
  1018. width: 120upx;
  1019. font-size: 90upx;
  1020. color: #FFFFFF;
  1021. }
  1022. .carInfo .topRight .brandName {
  1023. width: 400upx;
  1024. overflow: hidden;
  1025. text-overflow: ellipsis;
  1026. white-space: nowrap;
  1027. }
  1028. .carInfo .other {
  1029. background-color: #FFFFFF;
  1030. height: 80upx;
  1031. border-radius: 15upx;
  1032. box-sizing: border-box;
  1033. }
  1034. .carInfo .other .privilege {
  1035. background-color: rgba($themeColor, 0.6);
  1036. font-size: 24upx;
  1037. color: #FFFFFF;
  1038. font-weight: bold;
  1039. }
  1040. .carInfo .other .content {
  1041. width: 460upx;
  1042. margin-left: 15upx;
  1043. overflow: hidden;
  1044. text-overflow: ellipsis;
  1045. white-space: nowrap;
  1046. }
  1047. .carInfo .other .icon {
  1048. width: 30upx;
  1049. }
  1050. /* 头部车辆信息和特权End */
  1051. .pageContent {
  1052. position: relative;
  1053. top: -50upx;
  1054. padding-bottom: 100px;
  1055. }
  1056. /* 报价方案Start */
  1057. .quotePlan {
  1058. background: #FFFFFF;
  1059. position: relative;
  1060. border-radius: 20upx;
  1061. }
  1062. .quotePlan .header {
  1063. height: 80upx;
  1064. position: relative;
  1065. border-bottom: 1px solid #E6E8EA;
  1066. }
  1067. .quotePlan .header .title {
  1068. // font-size: 30upx;
  1069. font-weight: bold;
  1070. padding-left: 25upx;
  1071. }
  1072. .quotePlan .header .title:before {
  1073. content: "";
  1074. position: absolute;
  1075. left: 30upx;
  1076. top: 25upx;
  1077. width: 8upx;
  1078. height: 30upx;
  1079. background-color: $themeColor;
  1080. }
  1081. .quotePlan .body {
  1082. padding: 0 30upx 10upx;
  1083. }
  1084. .quotePlan .body .insurance {
  1085. padding-bottom: 20upx;
  1086. border-bottom: 1px dashed #E6E8EA;
  1087. }
  1088. .carTypeItem {
  1089. padding: 0 30upx 20upx;
  1090. border-bottom: 1px solid #e5e5e5;
  1091. margin-top: 20upx;
  1092. width: 100%;
  1093. box-sizing: border-box;
  1094. }
  1095. .carTypeItem .nav .carseriesName {
  1096. font-size: 34upx;
  1097. width: 360upx;
  1098. font-family: PingFangSC-Medium, PingFangSC;
  1099. color: #4a4a4a;
  1100. overflow: hidden;
  1101. text-overflow: ellipsis;
  1102. white-space: nowrap;
  1103. }
  1104. .carTypeItem .nav .modelName {
  1105. font-size: 26upx;
  1106. width: 400upx;
  1107. font-family: PingFangSC-Medium, PingFangSC;
  1108. overflow: hidden;
  1109. text-overflow: ellipsis;
  1110. white-space: nowrap;
  1111. }
  1112. .carTypeItem .nav .nav_box {
  1113. margin: 10upx 0;
  1114. }
  1115. .carTypeItem .nav .nav_box .zid {
  1116. display: inline-block;
  1117. padding: 6upx 10upx;
  1118. font-size: 24upx;
  1119. height: 40upx;
  1120. background: #AFC9F7;
  1121. border-radius: 25upx;
  1122. color: #007AFF;
  1123. font-weight: bold;
  1124. line-height: 40upx;
  1125. }
  1126. .carTypeItem .nav .nav_box>p {
  1127. margin-left: 30upx;
  1128. color: #999;
  1129. font-size: 24upx;
  1130. }
  1131. .carTypeItem .price {
  1132. font-size: 16px;
  1133. width: 200upx;
  1134. flex-shrink: 0;
  1135. font-family: PingFangSC-Regular, PingFangSC;
  1136. font-weight: 400;
  1137. color: #007AFF;
  1138. }
  1139. .quotePlan .body .row {
  1140. height: 70upx;
  1141. }
  1142. .quotePlan .body .date {
  1143. background-color: $themeColor;
  1144. color: $themeColor;
  1145. font-size: 22upx;
  1146. padding: 0upx 7upx;
  1147. border-radius: 3upx;
  1148. margin: 10upx;
  1149. margin-right: 10upx;
  1150. }
  1151. /* 报价方案End */
  1152. /* 报价公司Start */
  1153. .quoteCompany {
  1154. margin: 20upx 30upx;
  1155. box-sizing: border-box;
  1156. /* background:#FFFFFF; */
  1157. position: relative;
  1158. border-radius: 20upx;
  1159. }
  1160. .quoteCompany .header {
  1161. height: 80upx;
  1162. padding: 0 30upx;
  1163. position: relative;
  1164. }
  1165. .quoteCompany .header .title {
  1166. font-size: 30upx;
  1167. font-weight: bold;
  1168. padding-left: 25upx;
  1169. }
  1170. .quoteCompany .header .title:before {
  1171. content: "";
  1172. position: absolute;
  1173. left: 30upx;
  1174. top: 25upx;
  1175. width: 8upx;
  1176. height: 30upx;
  1177. background-color: rgba($themeColor, 0.6);
  1178. }
  1179. .quoteCompany .header .title .icon {
  1180. color: rgba($themeColor, 0.6);
  1181. margin-left: 15upx;
  1182. }
  1183. .quoteCompanyItem {
  1184. margin-bottom: 20upx;
  1185. background: #FFFFFF;
  1186. border-radius: 15upx;
  1187. padding: 40upx 30upx 30upx;
  1188. box-sizing: border-box;
  1189. }
  1190. .quoteCompanyItem .top {
  1191. position: relative;
  1192. }
  1193. .quoteCompanyItem .top .companyIcon {
  1194. flex-shrink: 0;
  1195. }
  1196. .quoteCompanyItem .top .companyIcon image {
  1197. width: 34px;
  1198. height: 34px;
  1199. margin-right: 10px;
  1200. }
  1201. .quoteCompanyItem .top .companyName {
  1202. font-size: 32upx;
  1203. font-weight: bold;
  1204. width: 180upx;
  1205. overflow: hidden;
  1206. text-overflow: ellipsis;
  1207. white-space: nowrap;
  1208. }
  1209. .quoteCompanyItem .top .totalMoney {
  1210. font-size: 40upx;
  1211. font-weight: bold;
  1212. color: $themeColor;
  1213. position: absolute;
  1214. top: -15upx;
  1215. right: 0;
  1216. }
  1217. .quoteCompanyItem .top .tip {
  1218. font-size: 26upx;
  1219. font-weight: bold;
  1220. color: #999;
  1221. position: absolute;
  1222. top: 0upx;
  1223. right: 0;
  1224. }
  1225. .quoteCompanyItem .top .signs {
  1226. width: 500upx;
  1227. overflow: hidden;
  1228. text-overflow: ellipsis;
  1229. white-space: nowrap;
  1230. }
  1231. .quoteCompanyItem .top .sign {
  1232. height: 40upx;
  1233. margin: 0upx 10upx;
  1234. background: rgba($themeColor, 0.6);
  1235. color: $themeColor;
  1236. font-size: 20upx;
  1237. margin-right: 10upx;
  1238. border-radius: 6upx;
  1239. padding: 0 2px;
  1240. line-height: 40upx;
  1241. }
  1242. .jqsign {
  1243. height: 20px;
  1244. background: rgba(255, 177, 177, 0.55);
  1245. color: #fd0a0a;
  1246. font-size: 20upx;
  1247. border-radius: 6upx;
  1248. padding: 0 10px;
  1249. box-sizing: border-box;
  1250. }
  1251. .quoteCompanyItem .body {
  1252. padding: 20upx 0;
  1253. flex-wrap: wrap;
  1254. }
  1255. .quoteCompanyItem .body>view {
  1256. flex-shrink: 0;
  1257. width: 50%;
  1258. overflow: hidden;
  1259. text-overflow: ellipsis;
  1260. white-space: nowrap;
  1261. }
  1262. .quoteCompanyItem .body .icon-exchange {
  1263. margin-right: 15upx;
  1264. display: inline-block;
  1265. }
  1266. /* 报价公司End */
  1267. /* 查看详情按钮Start */
  1268. .btn {
  1269. font-size: 32upx;
  1270. color: #fff;
  1271. }
  1272. /* 底部的样式Start */
  1273. .infoBottom {
  1274. height: 140upx;
  1275. position: fixed;
  1276. bottom: 0;
  1277. left: 0;
  1278. right: 0;
  1279. background: #FFFFFF;
  1280. border-top: 1upx solid #EEEEEE;
  1281. z-index: 99;
  1282. }
  1283. .infoBottom>button {
  1284. // font-size: 30upx;
  1285. background: $themeColor;
  1286. color: #FFFFFF;
  1287. flex: 1;
  1288. margin: 0upx 30upx;
  1289. }
  1290. /* 查看详情按钮End */
  1291. </style>