Verifyintasks.vue 57 KB

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