Verifyuntasks.vue 58 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951
  1. <template>
  2. <div class="page">
  3. <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse"
  4. @areaSelectChange="areaSelectChange"></retrievalForm>
  5. <el-table size="small" :data="pageResult" height="590" border v-loading="loading" highlight-current-row stripe
  6. @expand-change="handleRowChange" ref="expandTable"
  7. :header-cell-style="{ background: '#F2F7FC', fontWeight: '700', color: '#606266' }">
  8. <el-table-column prop="subOrderId" label="订单号" align="center"></el-table-column>
  9. <el-table-column prop="username" label="业务员" align="center">
  10. <template slot-scope="scope">
  11. <span>{{ scope.row.username }}({{ scope.row.userid }})</span>
  12. </template>
  13. </el-table-column>
  14. <el-table-column prop="managementSource" label="机构来源" align="center">
  15. <template slot-scope="scope">
  16. <el-tag v-if=" scope.row.managementSource=='渠道'" >渠道</el-tag>
  17. <el-tag v-if=" scope.row.managementSource=='个代'" type="success">个代</el-tag>
  18. <el-tag v-if=" scope.row.managementSource=='电销'" type="warning">电销</el-tag>
  19. </template>
  20. </el-table-column>
  21. <el-table-column prop="agreementName" label="协议名称" align="center"></el-table-column>
  22. <el-table-column prop="insCompany" label="承保公司" width="180" align="center">
  23. <template slot-scope="scope">
  24. <span>{{ scope.row.insCompany ? scope.row.insCompany : '--' }}</span>
  25. </template>
  26. </el-table-column>
  27. <el-table-column prop="insCompany" label="合作公司" width="180" align="center">
  28. <template slot-scope="scope">
  29. <span>{{ scope.row.partnerCompaniesName ? scope.row.partnerCompaniesName : '--' }}</span>
  30. </template>
  31. </el-table-column>
  32. <el-table-column prop="licenseno" label="车牌号" width="180" align="center"></el-table-column>
  33. <el-table-column prop="insuredname" label="投保人姓名" align="center" width="150"></el-table-column>
  34. <el-table-column prop="product" label="投保险种" align="center" width="200"></el-table-column>
  35. <el-table-column prop="auditStatus" label="状态" align="center">
  36. <template slot-scope="scope">
  37. <el-tag v-if="scope.row.auditStatus == '0'" type="success" size="small">未审核</el-tag>
  38. <el-tag v-if="scope.row.auditStatus == '1'" type="warning" size="small">审核通过</el-tag>
  39. <el-tag v-if="scope.row.auditStatus == '2'" type="danger" size="small">审核驳回</el-tag>
  40. </template>
  41. </el-table-column>
  42. <el-table-column prop="createtime" label="录单日期" align="center" width="200"></el-table-column>
  43. <el-table-column prop="signingTime" label="签单时间" align="center" width="200"></el-table-column>
  44. <el-table-column prop="payDate" label="支付时间" align="center" width="200"></el-table-column>
  45. <el-table-column label="操作" align="center" min-width="100" fixed="right">
  46. <template slot-scope="scope">
  47. <kt-button label="审核" type="text" perms="carInsurance:expenseVerification:pendingReview:review"
  48. @click="OrderDetails(scope.row)" />
  49. <!-- <kt-button label="轨迹" type="text" perms="carInsurance:expenseVerification:pendingReview:trajectory"
  50. @click="trajectory(scope.row)" /> -->
  51. <kt-button label="轨迹" type="text"
  52. @click="trajectory(scope.row)" />
  53. </template>
  54. </el-table-column>
  55. </el-table>
  56. <!-- 分页功能 -->
  57. <div class="block">
  58. <el-pagination @size-change="applyhandleSizeChange" @current-change="applyhandleCurrentChange"
  59. :current-page="pageNum" :page-size="pageSize" :page-sizes="[20, 30, 50, 100]"
  60. layout="total, sizes, prev, pager, next, jumper" :total="totalSize"></el-pagination>
  61. </div>
  62. <!-- 车辆报价新页面 -->
  63. <detailsDialog ref="detailsDialog" :orderInfo="orderInfo" :feeOrderNewVoList="feeOrderNewVoList"
  64. @updatedCost="updatedCost" @adusitFUn="adusitFUn">
  65. </detailsDialog>
  66. <el-dialog :visible.sync="ddgjdialogVisible" width="430px">
  67. <div slot="title" class="dialog-title">
  68. <span>订单轨迹</span>
  69. </div>
  70. <div style="height: 300px; overflow-y: auto">
  71. <el-steps direction="vertical" :active="trajectoryTable.length - 1">
  72. <el-step :title=" auditstatusCap(item.auditstatus)" :key="item.id" v-for="item in trajectoryTable">
  73. <template slot="description">
  74. <div>保险公司:{{ item.insCompany }}</div>
  75. <span>创建用户:{{ item.operator }}</span>
  76. <span style="margin-left: 10px;">审核人:{{ item.audituser }}</span>
  77. <div>审核时间:{{ item.audittime }}</div>
  78. </template>
  79. </el-step>
  80. </el-steps>
  81. </div>
  82. </el-dialog>
  83. </div>
  84. </template>
  85. <script>
  86. import retrievalForm from "@/components/Form/retrievalForm.vue";
  87. import Cookies from "js-cookie";
  88. import KtButton from "@/views/Core/KtButton";//按钮权限组件
  89. import detailsDialog from "@/views/Core/components/detailsDialogPro.vue";
  90. export default {
  91. components: {
  92. KtButton,
  93. detailsDialog,
  94. retrievalForm
  95. },
  96. data() {
  97. return {
  98. ddgjdialogVisible:false,
  99. trajectoryTable:[],
  100. feeOrderNewVoList: {},
  101. isAuditing: {},
  102. oldFeeInfo: [],//原始跟单费用比例
  103. adjustFeeDescInfo: {},//调整费用时使用对象
  104. adjustFeeFlag: false,
  105. queryOrders: "",
  106. value2: "",
  107. optionsStatus: [],
  108. quotedetailsdialogVisible: false,
  109. loading: false,
  110. pageNum: 1,//页数
  111. pageSize: 20,//条数
  112. totalSize: null,//总数
  113. peopleid: "",//工号
  114. pageResult: [],//列表
  115. pageRequest: {
  116. pageNum: 1,
  117. pageSize: 20,
  118. orderStatus: 0,
  119. userId: "",
  120. },
  121. retrievalFields: [
  122. {
  123. name: 'provinceId',
  124. label: '省机构名称',
  125. type: 'select',
  126. options: []
  127. },
  128. {
  129. name: 'cityId',
  130. label: '市机构名称',
  131. type: 'select',
  132. options: []
  133. },
  134. {
  135. name: 'countyId',
  136. label: '区机构名称',
  137. type: 'select',
  138. options: []
  139. },
  140. {
  141. name: 'houseId',
  142. label: '门店名称',
  143. type: 'select',
  144. options: []
  145. },
  146. // {
  147. // name: 'taskNo',
  148. // label: '任务池号',
  149. // type: 'input',
  150. // },
  151. {
  152. name: 'orderNo',
  153. label: '订单号',
  154. type: 'input',
  155. },
  156. {
  157. name: 'managementSource',
  158. label: '机构来源',
  159. type: 'select',
  160. options: [],
  161. optionsIabel: "dictTag",
  162. optionsValue: "dictValue",
  163. },
  164. {
  165. name: 'companyId',
  166. label: '保险公司',
  167. type: 'select',
  168. options: []
  169. },
  170. {
  171. name: 'insuredName',
  172. label: '被保险人',
  173. type: 'input',
  174. Retained: true,
  175. },
  176. {
  177. name: 'licenseNo',
  178. label: '车牌号',
  179. type: 'input',
  180. Retained: true,
  181. },
  182. {
  183. name: 'frameNo',
  184. label: '车架号',
  185. type: 'input',
  186. Retained: true,
  187. },
  188. {
  189. name: 'engineNo',
  190. label: '发动机号',
  191. type: 'input',
  192. Retained: true,
  193. },
  194. {
  195. name: 'riskCode',
  196. label: '投保险种',
  197. type: 'select',
  198. Retained: true,
  199. options: [],
  200. optionsIabel: "dictTag",
  201. optionsValue: "dictTag",
  202. },
  203. {
  204. name: 'operatorId',
  205. label: '代理人工号',
  206. type: 'input',
  207. Retained: true,
  208. },
  209. {
  210. name: 'operatorName',
  211. label: '代理人姓名',
  212. type: 'input',
  213. Retained: true,
  214. },
  215. {
  216. name: 'auditId',
  217. label: '受理人工号',
  218. type: 'input',
  219. Retained: true,
  220. },
  221. {
  222. name: 'agreeId',
  223. label: '协议选择',
  224. type: 'select',
  225. options: [],
  226. optionsIabel: "agreementName",
  227. },
  228. {
  229. name: ["quoteStartDateStr", "quoteEndDateStr"],
  230. label: '报价时间',
  231. type: 'date',
  232. list: 'quoteList'
  233. },
  234. {
  235. name: ["attachStartDateStr", "attachEndDateStr"],
  236. label: '起保时间',
  237. type: 'date',
  238. list: 'attachList'
  239. },
  240. {
  241. name: ["signStartDateStr", "signEndDateStr"],
  242. label: '签单时间',
  243. type: 'date',
  244. list: 'signList'
  245. },
  246. {
  247. name: ["payStartDateStr", "payEndDateStr"],
  248. label: '支付时间',
  249. type: 'date',
  250. list: 'payList'
  251. },
  252. ],
  253. orderInfo: {
  254. //选中的订单
  255. ownerinfo: {},
  256. carinfo: {},
  257. applyinfo: {},
  258. insureinfo: {},
  259. kindinfo: [],
  260. riskinfo: [],
  261. ownerinfo: {},
  262. extendInfo: {}
  263. },
  264. feeDetailInfo: [],//费用明细信息
  265. inscompany: "", //保险公司名称
  266. licenseNo: "", //车牌号
  267. sumpremium: "", //保费合计
  268. jqpremium: "",//交强
  269. sypremium: "",//商业
  270. taxamount: "",//车船税
  271. jypremium: "",//驾意险
  272. jqstartdate: "",//交强时间
  273. systartdate: "",//商业时间
  274. mobile: "",//投保人手机号
  275. qrcode: null,
  276. userid: "",
  277. institutionOptions: [],
  278. width: document.documentElement.clientWidth,
  279. insAreaCompanyList: [],//子订单list
  280. companyList: [], //保险公司
  281. oldVersionHistory: [],
  282. natureOfVehicleUseoptions: [],
  283. businessVehicleUseoptions: [],
  284. outOfBusinessVehicleUseoptions: [],
  285. vehicleTypeoptions: [],
  286. trafficManagementVehicleTypeoptions: [],
  287. energyTypeoptions: [],
  288. carImageList: [], //车辆影像
  289. ownerImageList: [], //车主影像
  290. policyImageList: [], //投保人影像
  291. insuredImageList: [], //被保人影像
  292. carCheckImageList: [], //验车照影像
  293. oldfileList: [], //电子保单数据
  294. }
  295. },
  296. created() {
  297. this.pageRequest.userId = Cookies.get("user");
  298. this.areaqueryList(1, 99, "provinceId");
  299. this.CompanyList();
  300. this.agrmentlist();
  301. this.$api.insCompany.dicType('productsType').then(res => {
  302. if (res.code == 200) {
  303. this.selectDataMatching(this.retrievalFields, 'riskCode', res.data.ddList);
  304. }
  305. });
  306. this.$api.insCompany.dicType('organizationSource').then(res => {
  307. if (res.code == 200) {
  308. this.selectDataMatching(this.retrievalFields, 'managementSource', res.data.ddList);
  309. }
  310. });
  311. this.getDicType("natureOfVehicleUse");//车辆使用性质
  312. this.getDicType("businessVehicleUse"); //(车辆用途)营业
  313. this.getDicType("outOfBusinessVehicleUse"); //(车辆用途)非营业
  314. this.getDicType("vehicleType"); //车辆种类
  315. this.getDicType("trafficManagementVehicleType"); //车辆类型
  316. this.getDicType("energyType"); //能源种类
  317. },
  318. mounted() {
  319. window.addEventListener('resize', this.getDimensions);
  320. },
  321. unmounted() {
  322. window.removeEventListener('resize', this.getDimensions);
  323. },
  324. methods: {
  325. auditstatusCap(val) {
  326. if (val == "0") {
  327. return "未审核";
  328. }
  329. if (val == "1") {
  330. return "审核通过";
  331. }
  332. if (val == "2") {
  333. return "审核驳回";
  334. }
  335. },
  336. trajectory(row){
  337. // let a='1797905916021248000'
  338. this.$api.task.getFeeAuditHistory(row.orderno).then((res) => {
  339. if(res.code==200 && res.data.length>0){
  340. this.trajectoryTable=res.data
  341. this.ddgjdialogVisible=true
  342. }
  343. else{
  344. this.$message.error('暂无数据!')
  345. }
  346. });
  347. },
  348. //获取机构数据
  349. areaqueryList(level, parentId, filed) {
  350. this.$api.task.queryListByParentId(level, parentId).then((res) => {
  351. this.selectDataMatching(this.retrievalFields, filed, res.data);
  352. });
  353. },
  354. CompanyList() {
  355. this.$api.letter.gainTopList().then((res) => {
  356. this.selectDataMatching(this.retrievalFields, 'companyId', res.data);
  357. })
  358. },
  359. agrmentlist() {
  360. this.$api.task.findPtlAgreementList().then((res) => {
  361. this.selectDataMatching(this.retrievalFields, 'agreeId', res.data);
  362. });
  363. },
  364. getDicType(type) {
  365. this.$api.insCompany.dicType(type).then(res => {
  366. if (res.code == 200) {
  367. this[type + 'options'] = res.data.ddList;
  368. }
  369. })
  370. },
  371. //下拉数据匹配
  372. selectDataMatching(files, name, data) {
  373. files.forEach(filed => {
  374. if (filed.name == name) {
  375. filed.options = data;
  376. }
  377. })
  378. },
  379. areaSelectChange(obj) {
  380. switch (obj.filed) {
  381. case 'provinceId':
  382. this.areaqueryList(2, obj.id, 'cityId')
  383. break;
  384. case 'cityId':
  385. this.areaqueryList(3, obj.id, 'countyId')
  386. break;
  387. case 'countyId':
  388. this.areaqueryList(4, obj.id, 'houseId')
  389. break;
  390. default:
  391. }
  392. },
  393. handleFormSubmit(data) {
  394. this.pageRequest.pageNum = 1;
  395. this.pageRequest.pageSize = 20;
  396. let obj = Object.assign(this.pageRequest, data)
  397. this.pageRequest = obj;
  398. this.findPage();
  399. },
  400. toggleCollapse(data) {
  401. this.retrievalFields.map(val => {
  402. if (val.Retained != null) val.Retained = data;
  403. return val;
  404. })
  405. },
  406. updatedCost(data) {
  407. let list = JSON.parse(JSON.stringify(data));
  408. console.log(list)
  409. const exportFee = [];
  410. const entranceFee = [];
  411. list.feeOrder.forEach((item, index) => {
  412. if (index < 3) entranceFee.push(item);
  413. else exportFee.push(item);
  414. });
  415. let params = {
  416. feeId: this.oldVersionHistory.feeId,
  417. feeOrderNewVoOld: this.oldVersionHistory,
  418. feeOrderNewVoNew: {
  419. deptManagerFee: list.deptManagerFee,
  420. entranceFee: entranceFee,
  421. exportFee: exportFee,
  422. }
  423. }
  424. this.$api.task.costsadjust(params).then((res) => {
  425. if (res.code == '200') {
  426. let data = res.data;
  427. let list = [];
  428. data.exportFee.map((val, index) => {
  429. val.type = "出口费用"
  430. return val;
  431. })
  432. data.entranceFee.map((val, index) => {
  433. val.type = "入口费用"
  434. return val;
  435. })
  436. console.log(data)
  437. this.feeOrderNewVoList = {
  438. deptManagerFee: data.deptManagerFee,
  439. list: [...data.entranceFee,...data.exportFee],
  440. }
  441. this.$message({
  442. type: 'success',
  443. message: res.msg,
  444. });
  445. } else {
  446. this.$message({
  447. type: 'error',
  448. message: res.msg,
  449. });
  450. }
  451. });
  452. },
  453. closeDialog() {
  454. this.adjustFeeFlag = false;
  455. },
  456. //审核通过
  457. adusitFUn() {
  458. let subParam = {
  459. orderNo: this.orderInfo.orderno,
  460. jqCostsProportionStr: this.adjustFeeDescInfo.jqAllFeeRate,
  461. syCostsProportionStr: this.adjustFeeDescInfo.syAllFeeRate,
  462. updateFlag: this.adjustFeeFlag ? "1" : "0",
  463. }
  464. this.$api.task.auditFee(subParam).then((res) => {
  465. if (res.code == 200) {
  466. this.$message({
  467. type: 'success',
  468. message:"审核通过",
  469. });
  470. this.findPage();
  471. // this.quotedetailsdialogVisible = false;
  472. this.$refs.detailsDialog.setBackupVisible(false);
  473. } else {
  474. this.$message.error(res.msg)
  475. }
  476. })
  477. },
  478. toChinesNum(num) {
  479. let changeNum = [
  480. "零", "1", "2", "3", "4", "5", "6", "7", "8", "9"
  481. ];
  482. let unit = ["", "0", "00", "000", "0000"];
  483. num = parseInt(num);
  484. let getWan = temp => {
  485. let strArr = temp
  486. .toString()
  487. .split("")
  488. .reverse();
  489. let newNum = "";
  490. let newArr = [];
  491. strArr.forEach((item, index) => {
  492. newArr.unshift(
  493. item === "0" ? changeNum[item] : changeNum[item] + unit[index]
  494. );
  495. });
  496. let numArr = [];
  497. newArr.forEach((m, n) => {
  498. if (m !== "零") numArr.push(n);
  499. });
  500. if (newArr.length > 1) {
  501. newArr.forEach((m, n) => {
  502. if (newArr[newArr.length - 1] === "零") {
  503. if (n <= numArr[numArr.length - 1]) {
  504. newNum += m;
  505. }
  506. } else {
  507. newNum += m;
  508. }
  509. });
  510. } else {
  511. newNum = newArr[0];
  512. }
  513. return newNum;
  514. };
  515. let overWan = Math.floor(num / 10000);
  516. let noWan = num % 10000;
  517. if (noWan.toString().length < 4) {
  518. noWan = "0" + noWan;
  519. }
  520. return overWan ? getWan(overWan) + "万" + getWan(noWan) : getWan(num);
  521. },
  522. //联级选择器触发事件
  523. handleChange(val) {
  524. if (val.length !== 0) {
  525. this.pageRequest.deptId = val.at(-1);
  526. }
  527. else {
  528. this.pageRequest.deptId = ''
  529. }
  530. },
  531. getDimensions() {
  532. this.width = document.documentElement.clientWidth - 350 + 'px';
  533. },
  534. //使用性质
  535. natureOfVehicleUseCap(ele) {
  536. if (this.natureOfVehicleUseoptions.find(item => item.dictValue == ele)) {
  537. return this.natureOfVehicleUseoptions.find((item) => {
  538. return item.dictValue === ele;
  539. }).dictTag;
  540. }
  541. else {
  542. return ''
  543. }
  544. },
  545. //车辆类型
  546. trafficManagementVehicleTypeCap(ele) {
  547. if (this.trafficManagementVehicleTypeoptions.find(item => item.dictValue == ele)) {
  548. return this.trafficManagementVehicleTypeoptions.find((item) => {
  549. return item.dictValue === ele;
  550. }).dictTag;
  551. }
  552. else {
  553. return ''
  554. }
  555. },
  556. //车辆种类
  557. vehicleTypeCap(ele) {
  558. if (this.vehicleTypeoptions.find(item => item.dictValue == ele)) {
  559. return this.vehicleTypeoptions.find((item) => {
  560. return item.dictValue === ele;
  561. }).dictTag;
  562. }
  563. else {
  564. return ''
  565. }
  566. },
  567. //能源种类
  568. energyTypeCap(ele) {
  569. if (this.energyTypeoptions.find(item => item.dictValue == ele)) {
  570. return this.energyTypeoptions.find((item) => {
  571. return item.dictValue === ele;
  572. }).dictTag;
  573. }
  574. else {
  575. return ''
  576. }
  577. },
  578. //车辆用途
  579. outOfBusinessVehicleUseCap(type, ele) {
  580. switch (type) {
  581. case '非营业':
  582. if (this.outOfBusinessVehicleUseoptions.find(item => item.dictValue == ele)) {
  583. return this.outOfBusinessVehicleUseoptions.find((item) => {
  584. return item.dictValue === ele;
  585. }).dictTag;
  586. }
  587. else {
  588. return ''
  589. }
  590. case '营业':
  591. if (this.businessVehicleUseoptions.find(item => item.dictValue == ele)) {
  592. return this.businessVehicleUseoptions.find((item) => {
  593. return item.dictValue === ele;
  594. }).dictTag;
  595. }
  596. else {
  597. return ''
  598. }
  599. default:
  600. }
  601. },
  602. //应用详情
  603. OrderDetails(dy) {
  604. this.carImageList = [];
  605. this.ownerImageList = []; //车主影像
  606. this.policyImageList = []; //投保人影像
  607. this.insuredImageList = []; //被保人影像
  608. this.carCheckImageList = []; //验车照影像
  609. let params = {
  610. orderNo: dy.orderno,
  611. }
  612. this.$api.task.feeDetail(params).then((res) => {
  613. if (res.code == 200) {
  614. res.data.kindinfo.map((ele, index) => {
  615. switch (ele.kindCode) {
  616. case "A":
  617. ele.amount = "投保";
  618. break;
  619. case "D4":
  620. case "SY_FJ_YBW2":
  621. ele.unitAmount = this.toChinesNum(ele.unitAmount);
  622. break;
  623. case "MJ1":
  624. case "MJ2":
  625. case "MJ3":
  626. case "MJ4":
  627. ele.deductibleRate = ele.deductibleRate + "%";
  628. break;
  629. default:
  630. ele.amount = this.toChinesNum(ele.amount);
  631. }
  632. return ele;
  633. });
  634. // 获取影像
  635. this.$api.letter.findByQuoteNo(dy.quoteno).then((resImage) => {
  636. Object.keys(resImage.data).forEach((keys) => {
  637. if (resImage.data[keys]) {
  638. resImage.data[keys].url = resImage.data[keys].url
  639. ? process.env.BASE_URL + resImage.data[keys].url
  640. : null;
  641. switch (keys) {
  642. case "C01":
  643. case "D01":
  644. resImage.data[keys].url
  645. ? this.carImageList.push(resImage.data[keys].url)
  646. : "";
  647. break;
  648. case "C02":
  649. case "D02":
  650. resImage.data[keys].url
  651. ? this.ownerImageList.push(resImage.data[keys].url)
  652. : "";
  653. break;
  654. case "C03":
  655. case "D03":
  656. resImage.data[keys].url
  657. ? this.policyImageList.push(resImage.data[keys].url)
  658. : "";
  659. break;
  660. case "C04":
  661. case "D04":
  662. resImage.data[keys].url
  663. ? this.insuredImageList.push(resImage.data[keys].url)
  664. : "";
  665. break;
  666. case "XC00":
  667. case "GC00":
  668. case "GX00":
  669. resImage.data[keys].url
  670. ? this.carCheckImageList.push(resImage.data[keys].url)
  671. : "";
  672. break;
  673. default:
  674. break;
  675. }
  676. }
  677. });
  678. let obj = {
  679. carImageList: this.carImageList,
  680. ownerImageList: this.ownerImageList,
  681. policyImageList: this.policyImageList,
  682. insuredImageList: this.insuredImageList,
  683. carCheckImageList: this.carCheckImageList
  684. }
  685. this.$refs.detailsDialog.imageFun(obj);
  686. });
  687. if (res.data.feeOrderNewVo && res.data.feeOrderNewVo.exportFee && res.data.feeOrderNewVo.entranceFee) {
  688. let data = JSON.parse(JSON.stringify(res.data.feeOrderNewVo))
  689. this.oldVersionHistory = data;
  690. data.exportFee.map((val, index) => {
  691. val.type = "出口费用"
  692. return val;
  693. })
  694. data.entranceFee.map((val, index) => {
  695. val.type = "入口费用"
  696. return val;
  697. })
  698. this.feeOrderNewVoList = {
  699. deptManagerFee: data.deptManagerFee,
  700. list: [...data.entranceFee,...data.exportFee],
  701. }
  702. }
  703. res.data.carinfo.carnature = this.natureOfVehicleUseCap(res.data.carinfo.carnature)
  704. res.data.carinfo.cartype = this.trafficManagementVehicleTypeCap(res.data.carinfo.cartype)
  705. res.data.carinfo.cimodelclass = this.vehicleTypeCap(res.data.carinfo.cimodelclass)
  706. res.data.carinfo.energyType = this.energyTypeCap(res.data.carinfo.energyType)
  707. res.data.carinfo.vehicleUse = this.outOfBusinessVehicleUseCap(res.data.carinfo.carnature, res.data.carinfo.vehicleUse)
  708. this.orderInfo = res.data;
  709. this.oldfileList = [];
  710. let businessList = []
  711. let accidentList = []
  712. if (res.data.orderstatus == "3") {
  713. switch (res.data.inscompany) {
  714. case "永安财险":
  715. if (this.orderInfo.jqpolicyno) {
  716. this.$api.letter
  717. .getPolicyPrint({
  718. companyId: res.data.id,
  719. policytype: "jq",
  720. })
  721. .then((res) => {
  722. //交强保单
  723. if (res.data) {
  724. let result = res.data.replace(/[\r\n]/g, "");
  725. let pdfBase64 = `data:application/pdf;base64,${result}`;
  726. base64ToPath(pdfBase64).then((path) => {
  727. if (path) {
  728. this.oldfileList.push({
  729. fileTitle: "交强电子保单",
  730. filename: this.orderInfo.jqpolicyno,
  731. fileurl: path,
  732. });
  733. }
  734. });
  735. }
  736. });
  737. this.$api.letter
  738. .getPolicyPrint2({
  739. companyId: res.data.id,
  740. policytype: "jq",
  741. })
  742. .then((res) => {
  743. //交强保单
  744. if (res.data) {
  745. let result = res.data.replace(/[\r\n]/g, "");
  746. let pdfBase64 = `data:application/pdf;base64,${result}`;
  747. base64ToPath(pdfBase64).then((path) => {
  748. if (path) {
  749. this.oldfileList.push({
  750. fileTitle: "交强电子标志",
  751. filename: this.orderInfo.jqpolicyno,
  752. fileurl: path,
  753. });
  754. }
  755. });
  756. }
  757. });
  758. }
  759. if (this.orderInfo.sypolicyno) {
  760. this.$api.letter
  761. .getPolicyPrint({
  762. companyId: res.data.id,
  763. policytype: "sy",
  764. })
  765. .then((res) => {
  766. //商业保单
  767. if (res.data) {
  768. let result = res.data.replace(/[\r\n]/g, "");
  769. let pdfBase64 = `data:application/pdf;base64,${result}`;
  770. base64ToPath(pdfBase64).then((path) => {
  771. if (path) {
  772. businessList.push({
  773. fileTitle: "商业电子保单",
  774. filename: this.orderInfo.sypolicyno,
  775. fileurl: path,
  776. });
  777. }
  778. });
  779. }
  780. });
  781. }
  782. break;
  783. case "华泰财险":
  784. if (this.orderInfo.jqpolicyno) {
  785. this.$api.letter
  786. .HuataigetPolicyPrint({
  787. companyId: res.data.id,
  788. riskCode: "0507",
  789. type: "2", //2:保单
  790. })
  791. .then((res) => {
  792. if (res.data) {
  793. if (res.data.jqxPolicyUrl) {
  794. this.oldfileList.push({
  795. fileTitle: "交强电子保单",
  796. filename: this.orderInfo.jqpolicyno,
  797. fileurl: res.data.jqxPolicyUrl,
  798. });
  799. }
  800. if (res.data.jqxFlagUrl) {
  801. this.oldfileList.push({
  802. fileTitle: "交强电子标志",
  803. filename: this.orderInfo.jqpolicyno,
  804. fileurl: res.data.jqxFlagUrl,
  805. });
  806. }
  807. } else {
  808. this.$message.error(res.msg);
  809. }
  810. });
  811. }
  812. if (this.orderInfo.sypolicyno) {
  813. this.$api.letter
  814. .HuataigetPolicyPrint({
  815. companyId: res.data.id,
  816. riskCode: "0510",
  817. type: "2", //2:保单
  818. })
  819. .then((res) => {
  820. if (res.data && res.data.syxPolicyUrl) {
  821. businessList.push({
  822. fileTitle: "商业电子保单",
  823. filename: this.orderInfo.sypolicyno,
  824. fileurl: res.data.syxPolicyUrl,
  825. });
  826. } else {
  827. this.$message.error(res.msg);
  828. }
  829. });
  830. }
  831. break;
  832. case "中煤财险":
  833. if (this.orderInfo.jqpolicyno) {
  834. this.$api.letter
  835. .ZhongmeigetPolicyPrint({
  836. companyId: res.data.id,
  837. riskCode: "0507",
  838. type: "2", //2:保单
  839. })
  840. .then((res) => {
  841. if (res.data && res.data[0]) {
  842. this.oldfileList.push({
  843. fileTitle: "交强电子保单",
  844. filename: this.orderInfo.jqpolicyno,
  845. fileurl: res.data[0],
  846. });
  847. } else {
  848. this.$message.error(res.msg);
  849. }
  850. });
  851. this.$api.letter
  852. .ZhongmeigetPolicyPrint({
  853. companyId: res.data.id,
  854. riskCode: "0507",
  855. type: "1", // 1:标志
  856. })
  857. .then((res) => {
  858. if (res.data && res.data[0]) {
  859. this.oldfileList.push({
  860. fileTitle: "交强电子标志",
  861. filename: this.orderInfo.jqpolicyno,
  862. fileurl: res.data[0],
  863. });
  864. } else {
  865. this.$message.error(res.msg);
  866. }
  867. });
  868. }
  869. if (this.orderInfo.sypolicyno) {
  870. this.$api.letter
  871. .ZhongmeigetPolicyPrint({
  872. companyId: res.data.id,
  873. riskCode: "0510",
  874. type: "2", //2:保单
  875. })
  876. .then((res) => {
  877. if (res.data && res.data[0]) {
  878. businessList.push({
  879. fileTitle: "商业电子保单",
  880. filename: this.orderInfo.sypolicyno,
  881. fileurl: res.data[0],
  882. });
  883. } else {
  884. this.$message.error(res.msg);
  885. }
  886. });
  887. }
  888. if (this.orderInfo.crossInsurance.length > 0) {
  889. this.orderInfo.crossInsurance.map((ele) => {
  890. this.$api.letter
  891. .ZhongmeigetPolicyPrint({
  892. ridePolicyNo: ele.ridePolicyNo,
  893. companyId: res.data.id,
  894. riskCode: "0513",
  895. type: "2", //2:保单
  896. })
  897. .then((res) => {
  898. if (res.code == 200 && res.data) {
  899. accidentList.push({
  900. fileTitle: "驾意险保单",
  901. filename: this.orderInfo.sypolicyno,
  902. fileurl: res.data[0],
  903. });
  904. } else {
  905. this.$message.error(res.msg);
  906. }
  907. });
  908. });
  909. }
  910. break;
  911. case "永诚财险":
  912. if (this.orderInfo.jqpolicyno) {
  913. this.$api.letter
  914. .yongchenggetPolicyPrint({
  915. companyId: res.data.id,
  916. riskCode: "0507",
  917. type: "2", //2:保单
  918. })
  919. .then((res) => {
  920. if (res.code == 200 && res.data) {
  921. if (res.data.jqUrl) {
  922. this.oldfileList.push({
  923. fileTitle: "交强电子保单",
  924. filename: this.orderInfo.jqpolicyno,
  925. fileurl: res.data.jqUrl,
  926. });
  927. }
  928. if (res.data.jqFlagUrl) {
  929. this.oldfileList.push({
  930. fileTitle: "交强电子标志",
  931. filename: this.orderInfo.jqpolicyno,
  932. fileurl: res.data.jqFlagUrl,
  933. });
  934. }
  935. } else {
  936. this.$message.error(res.msg);
  937. }
  938. });
  939. }
  940. if (this.orderInfo.sypolicyno) {
  941. this.$api.letter
  942. .yongchenggetPolicyPrint({
  943. companyId: res.data.id,
  944. riskCode: "0510",
  945. type: "2", //2:保单
  946. })
  947. .then((res) => {
  948. if (res.data && res.data.syUrl) {
  949. businessList.push({
  950. fileTitle: "商业电子保单",
  951. filename: this.orderInfo.sypolicyno,
  952. fileurl: res.data.syUrl,
  953. });
  954. } else {
  955. this.$message.error(res.msg);
  956. }
  957. });
  958. }
  959. if (this.orderInfo.crossInsurance.length > 0) {
  960. this.orderInfo.crossInsurance.map((ele) => {
  961. this.$api.letter
  962. .yongchenggetPolicyPrint({
  963. companyId: res.data.id,
  964. policyNumber: ele.policyNumber,
  965. riskCode: "0513",
  966. type: "2", //2:保单
  967. })
  968. .then((res) => {
  969. if (res.code == 200 && res.data) {
  970. accidentList.push({
  971. fileTitle: "驾意险保单",
  972. filename: ele.policyNumber,
  973. fileurl: res.data.jyUrl,
  974. });
  975. } else {
  976. this.$message.error(res.msg);
  977. }
  978. });
  979. });
  980. }
  981. break;
  982. case "国任财险":
  983. if (this.orderInfo.jqpolicyno) {
  984. this.$api.letter
  985. .guoRengetPolicyPrint({
  986. companyId: res.data.id,
  987. riskCode: "0507",
  988. type: "2", //2:保单
  989. })
  990. .then((res) => {
  991. if (res.data) {
  992. this.oldfileList.push({
  993. fileTitle: "交强电子保单",
  994. filename: this.orderInfo.jqpolicyno,
  995. fileurl: res.data,
  996. });
  997. } else {
  998. this.$message.error(res.msg);
  999. }
  1000. });
  1001. this.$api.letter
  1002. .guoRengetPolicyPrint({
  1003. companyId: res.data.id,
  1004. riskCode: "0507",
  1005. type: "1", //1:标志
  1006. })
  1007. .then((res) => {
  1008. if (res.data) {
  1009. this.oldfileList.push({
  1010. fileTitle: "交强电子标志",
  1011. filename: this.orderInfo.jqpolicyno,
  1012. fileurl: res.data,
  1013. });
  1014. } else {
  1015. this.$message.error(res.msg);
  1016. }
  1017. });
  1018. }
  1019. if (this.orderInfo.sypolicyno) {
  1020. this.$api.letter
  1021. .guoRengetPolicyPrint({
  1022. companyId: res.data.id,
  1023. riskCode: "0510",
  1024. type: "2", //2:保单
  1025. })
  1026. .then((res) => {
  1027. if (res.data) {
  1028. businessList.push({
  1029. fileTitle: "商业电子保单",
  1030. filename: this.orderInfo.sypolicyno,
  1031. fileurl: res.data,
  1032. });
  1033. } else {
  1034. this.$message.error(res.msg);
  1035. }
  1036. });
  1037. }
  1038. if (this.orderInfo.crossInsurance.length > 0) {
  1039. this.orderInfo.crossInsurance.map((ele) => {
  1040. this.$api.letter
  1041. .guoRengetPolicyPrint({
  1042. companyId: res.data.id,
  1043. policyNumber: ele.policyNumber,
  1044. riskCode: "0513",
  1045. type: "2", //2:保单
  1046. })
  1047. .then((res) => {
  1048. if (res.data) {
  1049. accidentList.push({
  1050. fileTitle: "驾意险保单",
  1051. filename: ele.policyNumber,
  1052. fileurl: res.data,
  1053. });
  1054. } else {
  1055. this.$message.error(res.msg);
  1056. }
  1057. });
  1058. });
  1059. }
  1060. break;
  1061. case "紫金财险":
  1062. if (this.orderInfo.jqpolicyno) {
  1063. this.$api.letter
  1064. .zijingetPolicyPrint({
  1065. companyId: res.data.id,
  1066. riskCode: "0507",
  1067. type: "2", //2:保单
  1068. })
  1069. .then((res) => {
  1070. if (res.data) {
  1071. this.oldfileList.push({
  1072. fileTitle: "交强电子保单",
  1073. filename: this.orderInfo.jqpolicyno,
  1074. fileurl: res.data,
  1075. });
  1076. } else {
  1077. this.$message.error(res.msg);
  1078. }
  1079. });
  1080. this.$api.letter
  1081. .zijingetPolicyPrint({
  1082. companyId: res.data.id,
  1083. riskCode: "0507",
  1084. type: "1", //1:标志
  1085. })
  1086. .then((res) => {
  1087. if (res.data) {
  1088. this.oldfileList.push({
  1089. fileTitle: "交强电子标志",
  1090. filename: this.orderInfo.jqpolicyno,
  1091. fileurl: res.data,
  1092. });
  1093. } else {
  1094. this.$message.error(res.msg);
  1095. }
  1096. });
  1097. }
  1098. if (this.orderInfo.sypolicyno) {
  1099. this.$api.letter
  1100. .zijingetPolicyPrint({
  1101. companyId: res.data.id,
  1102. riskCode: "0510",
  1103. type: "2", //2:保单
  1104. })
  1105. .then((res) => {
  1106. if (res.data) {
  1107. businessList.push({
  1108. fileTitle: "商业电子保单",
  1109. filename: this.orderInfo.sypolicyno,
  1110. fileurl: res.data,
  1111. });
  1112. } else {
  1113. this.$message.error(res.msg);
  1114. }
  1115. });
  1116. }
  1117. if (this.orderInfo.crossInsurance.length > 0) {
  1118. this.orderInfo.crossInsurance.map((ele) => {
  1119. this.$api.letter
  1120. .zijingetPolicyPrint({
  1121. companyId: res.data.id,
  1122. policyNumber: ele.policyNumber,
  1123. riskCode: "0513",
  1124. type: "2", //2:保单
  1125. })
  1126. .then((res) => {
  1127. if (res.data) {
  1128. accidentList.push({
  1129. fileTitle: "驾意险保单",
  1130. filename: ele.policyNumber,
  1131. fileurl: res.data,
  1132. });
  1133. } else {
  1134. this.$message.error(res.msg);
  1135. }
  1136. });
  1137. });
  1138. }
  1139. break;
  1140. case "渤海财险":
  1141. if (this.orderInfo.jqpolicyno) {
  1142. this.$api.letter
  1143. .getPolicyPrintboHai({
  1144. companyId: res.data.id,
  1145. })
  1146. .then((res) => {
  1147. if (res.code == 200 && res.data) {
  1148. if (res.data.jqxPolicyUrl) {
  1149. this.oldfileList.push({
  1150. fileTitle: "交强电子保单",
  1151. filename: this.orderInfo.jqpolicyno,
  1152. fileurl: res.data.jqxPolicyUrl,
  1153. });
  1154. }
  1155. if (res.data.jqxFlagUrl) {
  1156. this.oldfileList.push({
  1157. fileTitle: "交强电子标志",
  1158. filename: this.orderInfo.jqpolicyno,
  1159. fileurl: res.data.jqxFlagUrl,
  1160. });
  1161. }
  1162. if (res.data.syxPolicyUrl) {
  1163. businessList.push({
  1164. fileTitle: "商业电子保单",
  1165. filename: this.orderInfo.sypolicyno,
  1166. fileurl: res.data.syxPolicyUrl,
  1167. });
  1168. }
  1169. if (
  1170. res.data.jyxInfoList &&
  1171. res.data.jyxInfoList.length > 0
  1172. ) {
  1173. res.data.jyxInfoList.forEach((val) => {
  1174. accidentList.push({
  1175. fileTitle: "驾意险保单",
  1176. filename: "驾意险保单",
  1177. fileurl: val.jyx_policy_url,
  1178. });
  1179. });
  1180. }
  1181. } else {
  1182. this.$message.error(res.msg);
  1183. }
  1184. });
  1185. }
  1186. break;
  1187. case "恒邦财险":
  1188. case "安盛天平":
  1189. case "中国人寿":
  1190. case "太平财险":
  1191. case "华农财险":
  1192. case "众安财险":
  1193. if (this.orderInfo.jqpolicyno || this.orderInfo.sypolicyno) {
  1194. this.$api.letter
  1195. .pythongetPolicyPrint({
  1196. subOrderNo: res.data.id,
  1197. })
  1198. .then((res) => {
  1199. if (res.code == 200 && res.data) {
  1200. if (res.data.jqxPolicyUrl) {
  1201. this.oldfileList.push({
  1202. fileTitle: "交强电子保单",
  1203. filename: this.orderInfo.jqpolicyno,
  1204. fileurl: res.data.jqxPolicyUrl,
  1205. });
  1206. }
  1207. if (res.data.jqxFlagUrl) {
  1208. this.oldfileList.push({
  1209. fileTitle: "交强电子标志",
  1210. filename: this.orderInfo.jqpolicyno,
  1211. fileurl: res.data.jqxFlagUrl,
  1212. });
  1213. }
  1214. if (res.data.syxPolicyUrl) {
  1215. businessList.push({
  1216. fileTitle: "商业电子保单",
  1217. filename: this.orderInfo.sypolicyno,
  1218. fileurl: res.data.syxPolicyUrl,
  1219. });
  1220. }
  1221. if (
  1222. res.data.jyxInfoList &&
  1223. res.data.jyxInfoList.length > 0
  1224. ) {
  1225. res.data.jyxInfoList.forEach((val) => {
  1226. accidentList.push({
  1227. fileTitle: "驾意险保单",
  1228. filename: "驾意险保单",
  1229. fileurl: val.jyx_policy_url,
  1230. });
  1231. });
  1232. }
  1233. } else {
  1234. this.$message.error(res.msg);
  1235. }
  1236. });
  1237. }
  1238. break;
  1239. case "大家财险":
  1240. if (this.orderInfo.jqpolicyno) {
  1241. this.$api.letter
  1242. .obtainWarranty({
  1243. companyId: res.data.id,
  1244. riskCode: "0507",
  1245. type: "2", //2:保单
  1246. })
  1247. .then((res) => {
  1248. if (res.data) {
  1249. this.oldfileList.push({
  1250. fileTitle: "交强电子保单",
  1251. filename: this.orderInfo.jqpolicyno,
  1252. fileurl: res.data,
  1253. });
  1254. } else {
  1255. this.$message.error(res.msg);
  1256. }
  1257. });
  1258. this.$api.letter
  1259. .obtainWarranty({
  1260. companyId: res.data.id,
  1261. riskCode: "0507",
  1262. type: "1", //1:标志
  1263. })
  1264. .then((res) => {
  1265. if (res.data) {
  1266. this.oldfileList.push({
  1267. fileTitle: "交强电子标志",
  1268. filename: this.orderInfo.jqpolicyno,
  1269. fileurl: res.data,
  1270. });
  1271. } else {
  1272. this.$message.error(res.msg);
  1273. }
  1274. });
  1275. }
  1276. if (this.orderInfo.sypolicyno) {
  1277. this.$api.letter
  1278. .obtainWarranty({
  1279. companyId: res.data.id,
  1280. riskCode: "0510",
  1281. type: "2", //2:保单
  1282. })
  1283. .then((res) => {
  1284. if (res.data) {
  1285. businessList.push({
  1286. fileTitle: "商业电子保单",
  1287. filename: this.orderInfo.sypolicyno,
  1288. fileurl: res.data,
  1289. });
  1290. }
  1291. });
  1292. }
  1293. if (this.orderInfo.crossInsurance.length > 0) {
  1294. this.orderInfo.crossInsurance.map((ele) => {
  1295. this.$api.letter
  1296. .zijingetPolicyPrint({
  1297. companyId: res.data.id,
  1298. policyNumber: ele.policyNumber,
  1299. riskCode: "0513",
  1300. type: "2", //2:保单
  1301. })
  1302. .then((res) => {
  1303. if (res.data) {
  1304. accidentList.push({
  1305. fileTitle: "驾意险保单",
  1306. filename: ele.policyNumber,
  1307. fileurl: res.data,
  1308. });
  1309. } else {
  1310. this.$message.error(res.msg);
  1311. }
  1312. });
  1313. });
  1314. }
  1315. break;
  1316. default:
  1317. }
  1318. let obj = {
  1319. oldfileList: this.oldfileList,
  1320. businessList,
  1321. accidentList
  1322. }
  1323. this.$refs.detailsDialog.warrantyFun(obj);
  1324. }
  1325. this.feeDetailInfo = res.data.orderFeeResult;
  1326. this.oldFeeInfo = res.data.adjustFeeDescVo;
  1327. this.adjustFeeDescInfo = { ...this.oldFeeInfo }
  1328. // this.quotedetailsdialogVisible = true;
  1329. this.$refs.detailsDialog.setBackupVisible(true);
  1330. } else {
  1331. this.$message.error("订单获取失败");
  1332. }
  1333. });
  1334. },
  1335. // 设置每页条数
  1336. applyhandleSizeChange(val) {
  1337. this.pageSize = val;
  1338. this.pageNum = 1;
  1339. this.pageRequest.pageNum = 1;
  1340. this.pageRequest.pageSize = val;
  1341. this.findPage();
  1342. },
  1343. // 当前页
  1344. applyhandleCurrentChange(val) {
  1345. this.pageNum = val;
  1346. this.pageRequest.pageNum = val;
  1347. this.findPage();
  1348. },
  1349. handleRowChange(row) {
  1350. if (!row.expanded) {
  1351. this.$api.letter.querySonOrders({ orderNo: row.orderno }).then(res => {
  1352. if (res.code == '200' && res.data.length != 0) {
  1353. this.pageResult.map(item => {
  1354. if (item.orderno === row.orderno) {
  1355. item.insAreaCompanyList = res.data;
  1356. }
  1357. return item;
  1358. })
  1359. row.expanded = !row.expanded;
  1360. this.$refs.expandTable.toggleRowExpansion(row, row.expanded);
  1361. } else {
  1362. this.$message.info("暂无数据");
  1363. }
  1364. })
  1365. } else {
  1366. row.expanded = !row.expanded;
  1367. this.$refs.expandTable.toggleRowExpansion(row, row.expanded);
  1368. }
  1369. },
  1370. //数据
  1371. findPage() {
  1372. this.loading = true;
  1373. this.$api.task.queryPageOrder(this.pageRequest).then((res) => {
  1374. if (res.code == "200") {
  1375. this.loading = false;
  1376. this.pageResult = res.data.content;
  1377. this.pageNum = res.data.pageNum;
  1378. this.totalSize = res.data.totalSize;
  1379. this.pageResult.forEach(val => {
  1380. this.$set(val, "expanded", false);
  1381. });
  1382. } else {
  1383. this.loading = false;
  1384. }
  1385. })
  1386. },
  1387. //查询
  1388. onSubmit() {
  1389. this.pageRequest.pageNum = 1;
  1390. this.pageRequest.pageSize = 20;
  1391. this.findPage();
  1392. },
  1393. //时间js
  1394. monthChange(e) {
  1395. if (e === null) {
  1396. this.pageRequest.startDate = e;
  1397. this.pageRequest.endDate = e;
  1398. } else {
  1399. this.pageRequest.startDate = e[0];
  1400. this.pageRequest.endDate = e[1];
  1401. }
  1402. },
  1403. }
  1404. }
  1405. </script>
  1406. <style lang="scss" scoped>
  1407. /deep/ {
  1408. .el-table .row-expand-cover .cell .el-table__expand-icon {
  1409. display: none;
  1410. }
  1411. .el-descriptions__body {
  1412. padding: 10px 50px;
  1413. box-sizing: border-box;
  1414. color: rgb(226, 118, 10);
  1415. }
  1416. .el-descriptions-item__label {
  1417. &:not(.is-bordered-label) {
  1418. color: #333;
  1419. }
  1420. }
  1421. .saomazhifucodeClass .el-dialog__body,
  1422. .saomazhifucodeClass .el-dialog__header {
  1423. padding: 0;
  1424. }
  1425. .el-input.is-disabled .el-input__inner {
  1426. color: #333;
  1427. }
  1428. }
  1429. .ORcodebody {
  1430. width: 100%;
  1431. height: auto;
  1432. box-sizing: border-box;
  1433. }
  1434. .code_title {
  1435. width: 100%;
  1436. height: 50px;
  1437. background-color: #fdcb08;
  1438. justify-content: center;
  1439. }
  1440. .code_title>span {
  1441. font-size: 22px;
  1442. color: #000;
  1443. font-weight: bold;
  1444. }
  1445. .ORcode {
  1446. width: 100%;
  1447. background: #fff;
  1448. height: auto;
  1449. display: flex;
  1450. justify-content: center;
  1451. align-items: center;
  1452. padding: 30px;
  1453. box-sizing: border-box;
  1454. border-bottom: 6px dotted #fdcb08;
  1455. }
  1456. .ORcode>div {
  1457. width: 180px;
  1458. height: 180px;
  1459. border: 1px solid #000;
  1460. border-radius: 5px;
  1461. }
  1462. .ORtitle {
  1463. background: #fff;
  1464. width: 100%;
  1465. padding: 20px;
  1466. box-sizing: border-box;
  1467. border-bottom: 1px solid #f2f2f2;
  1468. }
  1469. .ORtitle>div {
  1470. width: 100%;
  1471. margin: 10px 0;
  1472. font-weight: bold;
  1473. font-size: 14px;
  1474. display: flex;
  1475. align-items: center;
  1476. }
  1477. .ORtitle>div>span:nth-child(1) {
  1478. color: #979797;
  1479. text-align: end;
  1480. width: 150px;
  1481. }
  1482. .ORtitle>div>span:nth-child(2) {
  1483. color: #000;
  1484. margin-left: 10px;
  1485. }
  1486. </style>
  1487. <style scoped>
  1488. #qqq {
  1489. background-color: #111;
  1490. width: 300px;
  1491. height: 300px;
  1492. margin: 0 auto;
  1493. /*水平居中*/
  1494. position: relative;
  1495. }
  1496. #qrCode {
  1497. display: inline-block;
  1498. margin: 0 auto;
  1499. /*水平居中*/
  1500. position: relative;
  1501. top: 15%;
  1502. }
  1503. #qrCode img {
  1504. width: 200px;
  1505. height: 200px;
  1506. background-color: #fff;
  1507. padding: 6px;
  1508. }
  1509. .leftContainer {
  1510. width: 80px;
  1511. position: fixed;
  1512. top: 79px;
  1513. left: 30px;
  1514. }
  1515. .leftContainer .el-col {
  1516. width: 80px;
  1517. height: 80px;
  1518. border-bottom: 1px solid #4d5c6f;
  1519. background: #526176;
  1520. cursor: pointer;
  1521. color: #a6aeb9;
  1522. border-radius: 0;
  1523. }
  1524. .leftContainer .el-col a {
  1525. display: block;
  1526. color: #a6aeb9;
  1527. text-decoration: none;
  1528. }
  1529. .leftContainer .el-col a:hover {
  1530. color: #fff;
  1531. }
  1532. .leftContainer .el-col a.active {
  1533. color: #fff;
  1534. }
  1535. .leftContainer .el-col i {
  1536. font-size: 30px;
  1537. margin: 15px 0px 5px;
  1538. }
  1539. .rightContainer {
  1540. width: calc(100vw - 160px);
  1541. margin-left: 100px;
  1542. }
  1543. .rightContainer .header .el-col {
  1544. font-size: 18px;
  1545. font-weight: bold;
  1546. }
  1547. .rightContainer .bodyTitle {
  1548. height: 40px;
  1549. background: #f3f3f3;
  1550. border: 1px solid #dddddd;
  1551. }
  1552. .rightContainer .bodyTitle>label {
  1553. margin: 0px 15px;
  1554. font-weight: bold;
  1555. }
  1556. .rightContainer #demo2 .body,
  1557. .rightContainer #demo6 .body {
  1558. border: 1px solid #ddd;
  1559. padding: 15px;
  1560. border-top: none;
  1561. }
  1562. .rightContainer .el-card {
  1563. margin-bottom: 15px;
  1564. }
  1565. .body .el-row .el-col label {
  1566. text-align: right;
  1567. width: 80px;
  1568. font-size: 14px;
  1569. width: 100%;
  1570. line-height: 36px;
  1571. display: inline-block;
  1572. box-sizing: border-box;
  1573. }
  1574. .disabledInput {
  1575. width: 80% !important;
  1576. background-color: #f5f7fa;
  1577. text-align: center !important;
  1578. max-width: 200px;
  1579. border: 1px solid #e4e7ed;
  1580. color: #c0c4cc;
  1581. cursor: not-allowed;
  1582. border-radius: 4px;
  1583. box-sizing: border-box;
  1584. padding: 0px 10px;
  1585. height: 36px;
  1586. margin: 20px 10%;
  1587. }
  1588. /* 上传图片样式Start */
  1589. .avatar-uploader .el-upload {
  1590. border: 1px dashed #d9d9d9;
  1591. border-radius: 6px;
  1592. cursor: pointer;
  1593. position: relative;
  1594. overflow: hidden;
  1595. }
  1596. .avatar-uploader .el-upload:hover {
  1597. border-color: #409eff;
  1598. }
  1599. .avatar-uploader-icon {
  1600. font-size: 28px;
  1601. color: #8c939d;
  1602. width: 100px;
  1603. height: 100px;
  1604. line-height: 100px;
  1605. text-align: center;
  1606. border: 1px dashed #d9d9d9;
  1607. }
  1608. .avatar {
  1609. border: 1px dashed #d9d9d9;
  1610. padding: 5px;
  1611. border-radius: 6px;
  1612. width: 100px;
  1613. height: 100px;
  1614. display: block;
  1615. }
  1616. .imageStyle {
  1617. display: inline-block;
  1618. width: 100px;
  1619. height: 100px;
  1620. box-shadow: #ddd 0px 0px 5px;
  1621. margin-right: 20px;
  1622. }
  1623. /* 上传图片样式End */
  1624. .dis {
  1625. display: flex;
  1626. }
  1627. .align {
  1628. align-items: center;
  1629. }
  1630. .jus {
  1631. justify-content: space-between;
  1632. }
  1633. .display {
  1634. display: flex;
  1635. justify-content: center;
  1636. align-items: center;
  1637. padding: 10px;
  1638. box-sizing: border-box;
  1639. }
  1640. .block {
  1641. margin-top: 10px;
  1642. }
  1643. .page {
  1644. padding: 14px;
  1645. box-sizing: border-box;
  1646. }
  1647. .el-select--medium {
  1648. vertical-align: bottom !important;
  1649. }
  1650. .widths {
  1651. width: 220px;
  1652. }
  1653. .demo-table-expand {
  1654. width: 100%;
  1655. height: auto;
  1656. padding: 10px 50px;
  1657. font-size: 14px;
  1658. }
  1659. .demo-table-expand-time {
  1660. width: 600px;
  1661. }
  1662. .demo-table-expand-time>div {
  1663. margin: 0 10px;
  1664. }
  1665. .icon-img {
  1666. display: block;
  1667. width: 30px;
  1668. height: 30px;
  1669. }
  1670. .Enclosure {
  1671. width: 100%;
  1672. background-color: #fff;
  1673. padding: 20px;
  1674. box-sizing: border-box;
  1675. margin-bottom: 15px;
  1676. border-radius: 6px;
  1677. border: 1px solid #ebeef5;
  1678. transition: all 0.2s ease-in-out;
  1679. box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
  1680. }
  1681. .headers {
  1682. display: flex;
  1683. align-items: center;
  1684. justify-content: space-between;
  1685. flex-wrap: wrap;
  1686. margin: 5px 0;
  1687. font-weight: bold;
  1688. color: #333;
  1689. }
  1690. /* 内容待定 */
  1691. .headers_Custom>div {
  1692. padding: 20px 40px;
  1693. font-size: 16px;
  1694. }
  1695. .headers_Custom>div>span {
  1696. color: rgb(226, 118, 10);
  1697. }
  1698. .back {
  1699. color: #303133;
  1700. font-weight: 700;
  1701. }
  1702. .u-f-ac {
  1703. -webkit-box-align: center;
  1704. align-items: center;
  1705. /* padding: 10px; */
  1706. }
  1707. .bodyTitle {
  1708. height: 40px;
  1709. background: #f3f3f3;
  1710. border: 1px solid #dddddd;
  1711. line-height: 40px;
  1712. padding: 0 20px;
  1713. box-sizing: border-box;
  1714. }
  1715. .bjdbody {
  1716. width: 100%;
  1717. height: auto;
  1718. background-color: rgb(199, 20, 45);
  1719. padding: 20px 10px 0 10px;
  1720. box-sizing: border-box;
  1721. border-radius: 8px;
  1722. }
  1723. .bjdCarMessage,
  1724. .bjdCarSum {
  1725. width: 100%;
  1726. height: auto;
  1727. background-color: #fff;
  1728. border-radius: 8px;
  1729. margin-bottom: 10px;
  1730. padding-bottom: 10px;
  1731. }
  1732. .bjdfooter {
  1733. border-top: 1px solid #fff;
  1734. padding: 10px;
  1735. box-sizing: border-box;
  1736. color: #fff;
  1737. }
  1738. .bjdCarSum>div {
  1739. width: 100%;
  1740. padding: 15px 20px;
  1741. box-sizing: border-box;
  1742. font-weight: bold;
  1743. color: #000;
  1744. border-bottom: 1px solid #f2f2f2;
  1745. }
  1746. .bjdCarMessage1 {
  1747. height: 80px;
  1748. padding: 16px;
  1749. box-sizing: border-box;
  1750. border-bottom: 1px solid #f2f2f2;
  1751. display: flex;
  1752. align-items: center;
  1753. color: #000;
  1754. }
  1755. .bjdCarMessage1>.f-c>span:nth-child(1) {
  1756. font-size: 18px;
  1757. font-weight: bold;
  1758. }
  1759. .bjdCarMessage1>img,
  1760. .bjdfooter>img {
  1761. margin-right: 30px;
  1762. }
  1763. .bjdCarMessage1 .f-c>span:nth-child(2),
  1764. .bjdCarMessage1 .f-c>span:nth-child(3) {
  1765. font-size: 12px;
  1766. margin-top: 5px;
  1767. }
  1768. .bjdCarMessage2_car>span:nth-child(1) {
  1769. color: #000;
  1770. font-weight: bold;
  1771. }
  1772. .bjdCarMessage2_car>span:nth-child(2) {
  1773. color: #999;
  1774. }
  1775. .bjdCarMessage2>ul>li {
  1776. margin: 20px 0;
  1777. }
  1778. .Risk {
  1779. width: 100%;
  1780. height: auto;
  1781. display: flex;
  1782. flex-direction: column;
  1783. align-items: center;
  1784. font-size: 12px;
  1785. }
  1786. .Risk_title {
  1787. width: 100%;
  1788. height: 40px;
  1789. }
  1790. .Risk_title>div {
  1791. background: rgb(199, 20, 45);
  1792. color: rgb(255, 255, 255);
  1793. height: 100%;
  1794. font-weight: 500;
  1795. width: 33.3%;
  1796. padding: 10px 20px;
  1797. box-sizing: border-box;
  1798. border: #fff solid 1px;
  1799. display: flex;
  1800. justify-content: center;
  1801. align-items: center;
  1802. border-bottom: none;
  1803. }
  1804. .Risk_title>div:nth-child(2) {
  1805. border-left: none;
  1806. border-right: none;
  1807. }
  1808. .Risk_data {
  1809. width: 100%;
  1810. height: 40px;
  1811. }
  1812. .Risk_data>div {
  1813. background: #fbf6f7;
  1814. color: rgb(51, 51, 51);
  1815. height: 100%;
  1816. font-weight: 500;
  1817. width: 33.3%;
  1818. padding: 10px 20px;
  1819. box-sizing: border-box;
  1820. border: #fff solid 1px;
  1821. display: flex;
  1822. justify-content: center;
  1823. align-items: center;
  1824. border-bottom: none;
  1825. }
  1826. .Risk_data>div :nth-child(2) {
  1827. border-left: none;
  1828. border-right: none;
  1829. }
  1830. .Risk_title>div :nth-child(3) {
  1831. border-top-right-radius: 10px;
  1832. }
  1833. .jyxStyle>span {
  1834. display: inline-block;
  1835. text-align: center;
  1836. }
  1837. .FeeEnclosure /deep/ table {
  1838. width: 100% !important;
  1839. }
  1840. .FeeEnclosure /deep/ .cell {
  1841. text-align: center;
  1842. }
  1843. .FeeEnclosure /deep/ .el-table__empty-block {
  1844. width: 100% !important;
  1845. }
  1846. .FeeEnclosure .feeadjust-input {
  1847. width: 35%;
  1848. height: 20px;
  1849. font-size: 13px;
  1850. }
  1851. </style>