orders.vue 27 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082
  1. <template>
  2. <view class="parent">
  3. <!-- 查询区域Start -->
  4. <view>
  5. <view class=" flexd " style="z-index: 99;">
  6. <view class="search dis a-c j-s" style="padding-top:55px;">
  7. <u-search v-model="pageRequest.licenseNo" @custom="custom" @search="search" :shape="shape"
  8. height='68rpx' bgColor="rgba(255,255,255,0.5)" color="#000"
  9. :inputStyle="{background:'transparent'}" placeholderColor="#999" :clearabled="clearabled"
  10. :showAction="showAction" :inputAlign="inputAlign" @clear="clear"
  11. :actionStyle="{background:'#000'}" placeholder="请输入车牌号"></u-search>
  12. <image src="/static/image/car-insure/dropdown.png" mode="" @tap="searchPopup"></image>
  13. </view>
  14. <view :class="['dropdown-content', { 'show': showDropdown }]" @tap="searchPopup">
  15. <view :class="['dropdown-content1','dis','f-c','j-s','', { 'scolcentent': showDropdown }]"
  16. @tap.stop.prevent>
  17. <scroll-view scroll-y="true" class="scolcentent ">
  18. <view style="padding: 0px 20px;">
  19. <view class="term">
  20. <text>订单状态</text>
  21. <view class="dis a-c f-wrap j-start" style="margin-top: 10px;">
  22. <view class="status-data"
  23. :class="item.value===pageRequest.orderStatus? 'active':''"
  24. v-for="(item,index) in statusList"
  25. @tap.stop.prevent="statusclick(item.value)" :key="index">
  26. {{item.label}}
  27. </view>
  28. </view>
  29. </view>
  30. <view class="term">
  31. <text>投保险种</text>
  32. <view class="dis a-c f-wrap j-start" style="margin-top: 10px;">
  33. <view class="status-data"
  34. :class="item.value==pageRequest.productid? 'active':''"
  35. v-for="(item,index) in insurance_typeoptions"
  36. @tap="productstatusclick(item.value)" :key="index">
  37. {{item.label}}
  38. </view>
  39. </view>
  40. </view>
  41. <view class="term">
  42. <text>保险公司</text>
  43. <view class="dis a-c f-wrap j-start" style="margin-top: 10px;">
  44. <view class="status-data"
  45. :class="item.companyCode==pageRequest.companyId? 'active':''"
  46. v-for="(item,index) in esmInsCompanyList"
  47. @tap="companystatusclick(item.companyCode)" :key="index">
  48. {{item.nameSimple}}
  49. </view>
  50. </view>
  51. </view>
  52. <view class="term">
  53. <text>车牌号</text>
  54. <view class="dis a-c f-wrap j-start" style="margin-top: 10px;">
  55. <view class="status-data" :class="item==pageRequest.licenseNo? 'active':''"
  56. v-for="(item,index) in vehiclePlateList" @tap="licenseNoclick(item)"
  57. :key="index">
  58. {{item}}
  59. </view>
  60. </view>
  61. </view>
  62. <view class="term">
  63. <text>被保人</text>
  64. <view class="dis a-c f-wrap j-start" style="margin-top: 10px;">
  65. <view class="status-data" :class="item==pageRequest.insuredName? 'active':''"
  66. v-for="(item,index) in insuranceList" @tap="insuranceclick(item)"
  67. :key="index">
  68. {{item}}
  69. </view>
  70. </view>
  71. </view>
  72. <view class="term">
  73. <text>订单日期</text>
  74. <view class="dis a-c f-wrap j-start" style="margin-top: 10px;">
  75. <view class="status-data" :class="item.value==timespecifications? 'active':''"
  76. v-for="(item,index) in dateList" @tap="dateclick(item.value)" :key="index">
  77. {{item.label}}
  78. </view>
  79. <view class="dis a-c">
  80. <view class="status-data" :class="startShow? 'active' :''"
  81. @tap="startShowmethod()">
  82. <text v-if="pageRequest.startDate!=''">{{pageRequest.startDate}}</text>
  83. <text v-else>{{transformTime()}}</text>
  84. </view>
  85. <text style="margin: 0 8px;font-size: 12px;">至</text>
  86. <view class="status-data" :class="endShow? 'active' :''"
  87. @tap="endShowmethod()">
  88. <text v-if="pageRequest.endDate!=''">{{pageRequest.endDate}}</text>
  89. <text v-else>{{transformTime()}}</text>
  90. </view>
  91. </view>
  92. </view>
  93. </view>
  94. </view>
  95. </scroll-view>
  96. <view class="operateBtn dis ">
  97. <view class="cancel dis a-c j-c" @click="showDropdown=false">
  98. 取消
  99. </view>
  100. <view class="confirm dis a-c j-c" @click="querysearch">
  101. 确定
  102. </view>
  103. </view>
  104. </view>
  105. </view>
  106. </view>
  107. </view>
  108. <view style="padding: 110px 16px 50px 16px;">
  109. <view v-for="(item,index) in pageResult" :key="index">
  110. <view class="orderItemPane" v-for="(statusitem, statusindex) in statusList" :key="statusindex"
  111. v-if="item.orderStatus == statusitem.value" :style="{background:statusitem.itemback}">
  112. <view class="orderItemPane-upper dis j-s a-c ">
  113. <view class="dis a-c j-start">
  114. <image :src="statusitem.src" mode="" style="width: 22px;height: 22px;margin-right: 5px;">
  115. </image>
  116. <text class="licenseno">{{item.licenseNo}}</text>
  117. </view>
  118. <view class="colorBlock">
  119. {{item.productName}}
  120. </view>
  121. </view>
  122. <view class="orderItemPane-centre">
  123. <view class="dis f-c">
  124. <text style="font-size: 14px;">订单号:{{item.orderNo}}</text>
  125. <view class="dis a-c j-s mt-2">
  126. <view class="dis a-end ">
  127. <view class="dis f-c a-c">
  128. <text style="font-size: 24rpx;color: #333">车主</text>
  129. <text style="font-size: 24rpx;color: #333">{{item.ownerName}}</text>
  130. </view>
  131. <image src="../../static/image/car-insure/phone.png" mode=""
  132. style="width: 16px;height: 16px;margin: 0 0 5px 10px;"
  133. @click="phone(item.ownerMobile)"></image>
  134. </view>
  135. <view class="dis a-end ">
  136. <view class="dis f-c a-c">
  137. <text style="font-size: 24rpx;color: #333">投保人</text>
  138. <text style="font-size: 24rpx;color: #333">{{item.policyName}}</text>
  139. </view>
  140. <image src="../../static/image/car-insure/phone.png" mode=""
  141. style="width: 16px;height: 16px;margin: 0 0 5px 10px;"
  142. @click="phone(item.policyMobile)"></image>
  143. </view>
  144. <view class="dis a-end ">
  145. <view class="dis f-c a-c">
  146. <text style="font-size: 24rpx;color: #333">被保人</text>
  147. <text style="font-size: 24rpx;color: #333">{{item.insurName}}</text>
  148. </view>
  149. <image src="../../static/image/car-insure/phone.png" mode=""
  150. style="width: 16px;height: 16px;margin: 0 0 5px 10px;"
  151. @click="phone(item.insurMobile)"></image>
  152. </view>
  153. </view>
  154. <view class="dis f-c mt-2">
  155. <template>
  156. <view v-if=" item.ciStartDate " class="time dis j-s a-c">
  157. <template>
  158. <text>交强险投保时间</text>
  159. <text>{{item.ciStartDate}}</text>
  160. </template>
  161. </view>
  162. </template>
  163. <template>
  164. <view v-if=" item.biStartDate " class="time dis j-s a-c">
  165. <template>
  166. <text>商业险投保时间</text>
  167. <text>{{item.biStartDate}}</text>
  168. </template>
  169. </view>
  170. </template>
  171. </view>
  172. </view>
  173. </view>
  174. <view class="orderItemPane-below dis a-c j-end f-wrap">
  175. <u-button :custom-style="{fontSize:'12px'}" shape="circle" size="mini" :hair-line="false"
  176. :plain="true" @click="CloseEdit(item.orderNo)" style="width: auto;margin: 0;">编辑</u-button>
  177. <u-button shape="circle" size="mini" :custom-style="{fontSize:'12px'}" :hair-line="false"
  178. :plain="true" @click="detial(item.orderNo)"
  179. style="width: auto;margin: 0;margin-left: 10px;">查看详情</u-button>
  180. </view>
  181. </view>
  182. </view>
  183. <!-- <u-loadmore v-if="pageResult.length!=0" :status="status" /> -->
  184. </view>
  185. <u-empty v-if="pageResult.length==0" />
  186. <!-- 回到顶部 -->
  187. <u-picker :show="startShow" mode="time" :params="params" @confirm="startconfirm"></u-picker>
  188. <u-picker :show="endShow" mode="time" :params="params" @confirm="endconfirm"></u-picker>
  189. <u-modal :show="closeOrderShow" title="提示" :showCancelButton="true" @confirm="closeOrderconfirm"
  190. confirm-text="确定">
  191. <view class="slot-content dis a-c j-c p-2">
  192. 确认关闭订单?
  193. </view>
  194. </u-modal>
  195. </view>
  196. </template>
  197. <script>
  198. import {
  199. mapState,
  200. mapMutations
  201. } from "vuex"
  202. // import carOrders from "@/components/modules/orders/carOrders.vue";
  203. import {
  204. watch
  205. } from "vue";
  206. export default {
  207. components: {},
  208. data() {
  209. return {
  210. closeOrderShow: false,
  211. insurance_typeoptions: [],
  212. show: true,
  213. showDropdown: false,
  214. /* 时间筛选相关 */
  215. startShow: false,
  216. endShow: false,
  217. params: {
  218. year: true, //年
  219. month: true, //月
  220. day: true, //日
  221. },
  222. /* 时间筛选相关 */
  223. pageRequest: { //查询的默认条件
  224. companyId: "",
  225. orderNo: "",
  226. frameNo: "",
  227. insuredName: "",
  228. licenseNo: "",
  229. orderStatus: "",
  230. userId: "",
  231. deptId: "",
  232. endDate: "",
  233. startDate: "",
  234. productid: "",
  235. pages: 1,
  236. size: 20,
  237. },
  238. timespecifications: null,
  239. pageResult: [], //列表数据
  240. /* 搜索框配置 */
  241. shape: 'square',
  242. clearabled: true,
  243. showAction: false,
  244. inputAlign: 'left',
  245. /* 搜索框配置 */
  246. //状态筛选list
  247. statusList: [{
  248. label: '全部',
  249. value: " ",
  250. },
  251. {
  252. label: '待核保',
  253. value: 1,
  254. btnColor: "#229805",
  255. btnbackground: "rgba(34,152,5,0.05)",
  256. itemback: "linear-gradient( 180deg, #EEFFE4 0%, #CDFFB6 100%)",
  257. src: "/static/image/car-insure/state.png"
  258. },
  259. {
  260. label: '人工处理',
  261. value: 3,
  262. btnColor: "#FF5600",
  263. btnbackground: "rgba(255,86,0,0.05)",
  264. itemback: "linear-gradient( 180deg, #FFEDE3 0%, #FFC7AB 100%)",
  265. src: "/static/image/car-insure/state.png"
  266. },
  267. {
  268. label: '待缴费',
  269. value: 4,
  270. btnColor: "#FF0F00",
  271. btnbackground: "rgba(255,15,0,0.05)",
  272. itemback: "linear-gradient( 180deg, #FFEEEC 0%, #FFA8A2 100%)",
  273. src: "/static/image/car-insure/state.png"
  274. },
  275. {
  276. label: '已承保',
  277. value: 5,
  278. btnColor: "#0052FF",
  279. btnbackground: "rgba(0,82,255,0.05)",
  280. itemback: "linear-gradient( 180deg, #ECFFFE 0%, #CCF9FF 100%)",
  281. src: "/static/image/car-insure/state.png"
  282. },
  283. {
  284. label: '报价失败',
  285. value: 6,
  286. btnbackground: "rgba(158,0,255,0.05)",
  287. itemback: "linear-gradient( 180deg, #FFF4E4 0%, #FFEBB6 100%)",
  288. src: "/static/image/car-insure/state.png"
  289. },
  290. {
  291. label: '核保失败',
  292. value: 7,
  293. btnbackground: "rgba(158,0,255,0.05)",
  294. itemback: "linear-gradient( 180deg, #FFF4E4 0%, #FFEBB6 100%)",
  295. src: "/static/image/car-insure/state.png"
  296. },
  297. {
  298. label: '订单关闭',
  299. value: 8,
  300. btnbackground: "rgba(158,0,255,0.05)",
  301. itemback: "linear-gradient( 180deg, #FFF4E4 0%, #FFEBB6 100%)",
  302. src: "/static/image/car-insure/state.png"
  303. }
  304. ],
  305. //日期筛选list
  306. dateList: [{
  307. label: '全部',
  308. value: 0,
  309. },
  310. {
  311. label: '近1天',
  312. value: 1,
  313. },
  314. {
  315. label: '近2天',
  316. value: 2,
  317. },
  318. {
  319. label: '近3天',
  320. value: 3,
  321. },
  322. {
  323. label: '近4天',
  324. value: 4,
  325. },
  326. {
  327. label: '近5天',
  328. value: 5,
  329. },
  330. {
  331. label: '近6天',
  332. value: 6,
  333. },
  334. {
  335. label: '近7天',
  336. value: 7,
  337. },
  338. {
  339. label: '一个月内',
  340. value: '一个月内',
  341. },
  342. {
  343. label: '三个月内',
  344. value: '三个月内',
  345. },
  346. {
  347. label: '六个月内',
  348. value: '六个月内',
  349. },
  350. ],
  351. typeArray: [{
  352. label: '车险',
  353. value: 0,
  354. },
  355. {
  356. label: '意外险',
  357. value: 1,
  358. },
  359. {
  360. label: '寿险',
  361. value: 2,
  362. }
  363. ], //订单的类型
  364. vehiclePlateList: [], //车牌
  365. insuranceList: [], //被保人
  366. toTopFlag: false, //显示回到顶部按钮
  367. queryLicenseNo: "",
  368. queryFrameNo: "",
  369. insureMore: false,
  370. insureMoreIndex: null,
  371. esmInsCompanyList: [],
  372. status: 'loadmore',
  373. totalPages: 0, //订单总页数
  374. stepShow: false, //步骤条弹框
  375. numList: [{
  376. "processingStatus": "1",
  377. "processingStatusFlag": true,
  378. "name": "提现申请",
  379. "date": "2024-07-31 19:25:12"
  380. },
  381. {
  382. "processingStatus": "2",
  383. "processingStatusFlag": true,
  384. "name": "处理中",
  385. "date": "2024-07-31 19:25:12"
  386. },
  387. {
  388. "processingStatus": "4",
  389. "processingStatusFlag": true,
  390. "name": "提现成功",
  391. "date": "2024-08-01 08:49:12"
  392. }
  393. ],
  394. orderno: "",
  395. }
  396. },
  397. onReachBottom() {
  398. if (this.pageRequest.pages >= this.totalPages) return;
  399. this.status = 'loading';
  400. this.pageRequest.pages = ++this.pageRequest.pages;
  401. setTimeout(async () => {
  402. let res = await this.$http.post('/supplementOrder/queryList', this.pageRequest);
  403. if (res.code == '200') {
  404. this.pageResult = [...this.pageResult, ...res.data.records];
  405. }
  406. if (this.pageRequest.pages >= this.totalPages) this.status = 'nomore';
  407. else this.status = 'loading';
  408. }, 1000)
  409. },
  410. computed: {
  411. ...mapState(['userInfo', 'licenseNo'])
  412. },
  413. // 页面滚动触发
  414. onPageScroll(e) { //根据距离顶部距离是否显示回到顶部按钮
  415. if (e.scrollTop > 600) { //当距离大于600时显示回到顶部按钮
  416. this.toTopFlag = true
  417. } else { //当距离小于600时显示回到顶部按钮
  418. this.toTopFlag = false
  419. }
  420. },
  421. onShow() {
  422. console.log(this.licenseNo);
  423. if (this.licenseNo) {
  424. this.pageRequest.licenseNo = this.licenseNo;
  425. }
  426. const arr = uni.getStorageSync('historyInfo');
  427. if (arr) {
  428. uni.removeStorageSync('historyInfo');
  429. }
  430. this.getOrdersList(1, 20)
  431. this.esmInsCompany()
  432. },
  433. onPullDownRefresh() {
  434. this.getOrdersList(1, 20)
  435. setTimeout(function() {
  436. uni.stopPullDownRefresh();
  437. }, 1000);
  438. },
  439. onLoad() {
  440. this.getOrdersList(1, 20)
  441. this.getDicType("insurance_type"); //车船税类型
  442. },
  443. methods: {
  444. ...mapMutations(['setOrderStage']),
  445. phone(phone) {
  446. // 获取宿主上下文
  447. var main = plus.android.runtimeMainActivity();
  448. var Uri = plus.android.importClass("android.net.Uri");
  449. // 通过反射获取Android的Intent对象
  450. var Intent = plus.android.importClass("android.content.Intent");
  451. // 创建Intent,设置Action为ACTION_DIAL
  452. var intent = new Intent("android.intent.action.DIAL");
  453. // 设置要拨打的电话号码
  454. intent.setData(Uri.parse("tel:" + phone));
  455. // 启动Intent
  456. main.startActivity(intent);
  457. // ...
  458. // uni.makePhoneCall({
  459. // phoneNumber: phone, //仅为示例
  460. // });
  461. },
  462. async closeOrderconfirm() {
  463. let res = await this.$http.get('/insurance/order/shutDown/' + this.orderno);
  464. if (res.code == '200') {
  465. this.getOrdersList(1, 20);
  466. uni.showToast({
  467. title: "关闭成功",
  468. icon: 'none',
  469. });
  470. }
  471. },
  472. //关闭订单
  473. closeOrder(orderno) {
  474. this.orderno = orderno;
  475. this.closeOrderShow = true;
  476. },
  477. btn_click() {
  478. uni.navigateTo({
  479. url: '/pages/chat/chat'
  480. })
  481. },
  482. async getOrdersList(page, size) {
  483. this.pageRequest.pages = page;
  484. this.pageRequest.size = size;
  485. let res = await this.$http.post('/supplementOrder/queryList', this.pageRequest);
  486. console.log(res);
  487. if (res.code == '200') {
  488. this.pageResult = res.data.records;
  489. this.totalPages = res.data.total;
  490. }
  491. },
  492. async getDicType(type) {
  493. let res = await this.$http.get('/dict/get?dictCode=' + type);
  494. if (res.code == 200) {
  495. this[type + 'options'] = [{
  496. label: "全部",
  497. value: " ",
  498. }, ...res.data];
  499. }
  500. },
  501. async esmInsCompany() {
  502. let commpanykad = await this.$http.get('/supplementOrder/getExistCompany');
  503. if (commpanykad.code == '200') {
  504. this.esmInsCompanyList = commpanykad.data;
  505. }
  506. },
  507. searchPopup() {
  508. this.showDropdown = !this.showDropdown;
  509. },
  510. //展开
  511. selectMore(val) {
  512. this.insureMore = true;
  513. this.insureMoreIndex = val;
  514. },
  515. packup(val) {
  516. this.insureMore = false;
  517. this.insureMoreIndex = val;
  518. },
  519. //查询事件
  520. querysearch() {
  521. this.getOrdersList(1, 20);
  522. this.showDropdown = false;
  523. },
  524. insuranceclick(e) {
  525. if (e === this.pageRequest.insuredName) {
  526. this.pageRequest.insuredName = ''
  527. } else {
  528. this.pageRequest.insuredName = e;
  529. }
  530. },
  531. licenseNoclick(e) {
  532. if (e === this.pageRequest.licenseNo) {
  533. this.pageRequest.licenseNo = ''
  534. } else {
  535. this.pageRequest.licenseNo = e;
  536. }
  537. },
  538. //状态筛选
  539. statusclick(e) {
  540. if (e === this.pageRequest.orderStatus) {
  541. this.pageRequest.orderStatus = ''
  542. } else {
  543. this.pageRequest.orderStatus = e;
  544. }
  545. // console.log(this.pageRequest.orderStatus)
  546. },
  547. //保险公司筛选
  548. companystatusclick(e) {
  549. // this.pageRequest.companyId = e;
  550. if (e == this.pageRequest.companyId) {
  551. this.pageRequest.companyId = ''
  552. } else {
  553. this.pageRequest.companyId = e;
  554. }
  555. },
  556. //投保险种筛选
  557. productstatusclick(e) {
  558. if (e == this.pageRequest.productid) {
  559. this.pageRequest.productid = ''
  560. } else {
  561. this.pageRequest.productid = e;
  562. }
  563. },
  564. startShowmethod() {
  565. this.startShow = true;
  566. this.timespecifications = null;
  567. },
  568. endShowmethod() {
  569. this.endShow = true;
  570. this.timespecifications = null;
  571. },
  572. //日期筛选
  573. dateclick(e) {
  574. console.log(e);
  575. /* 0:全部 1:一周内 2:一个月内 3:三个月内 4:六个月内*/
  576. switch (e) {
  577. case 0:
  578. this.pageRequest.startDate = "";
  579. this.pageRequest.endDate = "";
  580. break;
  581. case 1:
  582. case 2:
  583. case 3:
  584. case 4:
  585. case 5:
  586. case 6:
  587. case 7:
  588. this.pageRequest.startDate = this.transformTime(e);
  589. this.pageRequest.endDate = this.transformTime();
  590. this.vehiclePlateform(this.pageRequest.startDate, this.pageRequest.endDate);
  591. this.insuranceform(this.pageRequest.startDate, this.pageRequest.endDate);
  592. break;
  593. case '一个月内':
  594. this.pageRequest.startDate = this.transformTime1(1);
  595. this.pageRequest.endDate = this.transformTime();
  596. break;
  597. case '三个月内':
  598. this.pageRequest.startDate = this.transformTime1(3);
  599. this.pageRequest.endDate = this.transformTime();
  600. break;
  601. case '六个月内':
  602. this.pageRequest.startDate = this.transformTime1(6);
  603. this.pageRequest.endDate = this.transformTime();
  604. break;
  605. default:
  606. }
  607. this.timespecifications = e;
  608. },
  609. async vehiclePlateform(start, end) {
  610. let res = await this.$http.post('/insurance/order/queryLicenseInOrder', {
  611. startDate: start,
  612. endDate: end,
  613. });
  614. if (res.code == 200) {
  615. this.vehiclePlateList = res.data;
  616. }
  617. },
  618. async insuranceform(start, end) {
  619. let res = await this.$http.post('/insurance/order/queryInsuredInOrder', {
  620. startDate: start,
  621. endDate: end,
  622. });
  623. if (res.code == 200) {
  624. this.insuranceList = res.data;
  625. }
  626. },
  627. startconfirm(e) {
  628. this.pageRequest.startDate = e.year + '-' + e.month + '-' + e.day;
  629. },
  630. endconfirm(e) {
  631. this.pageRequest.endDate = e.year + '-' + e.month + '-' + e.day;
  632. },
  633. //验证车架号
  634. isFrameno(str) {
  635. let mPattern = /^([0-9A-Z]){17}$/;
  636. return mPattern.test(str);
  637. },
  638. isCarBrand(str) {
  639. let mPattern = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼A-Z]{1}[A-Z]{1}[A-Z0-9]{4,5}([A-Z0-9挂学警港澳使领]{1}|应急)$/ ||
  640. /^沪[0-9A-Z]{5}$/ || /^陆丰[0-9A-Z]{4}临$/;
  641. return mPattern.test(str.trim())
  642. // return /^陆丰[0-9A-Z]{4}临$/.test(str.trim())
  643. },
  644. //查看详情
  645. detial(id) {
  646. uni.navigateTo({
  647. url: '/pages/quote/quoteDetail',
  648. success: (res) => {
  649. res.eventChannel.emit("acceptData", {
  650. id: id,
  651. })
  652. }
  653. }, "navigateTo", true);
  654. },
  655. //报价历史
  656. quotehistory(val, Status) {
  657. let params = {
  658. orderno: val.orderno,
  659. insuredname: val.insuredname,
  660. licenseno: val.licenseno,
  661. modelcname: val.carinfo.modelcname,
  662. orderStatus: Status,
  663. product: val.product,
  664. ownername: val.ownerinfo.name,
  665. applyname: val.applyinfo.name,
  666. insurename: val.insureinfo.name,
  667. }
  668. uni.navigateTo({
  669. url: `/pages/orders/quoteHistory?orderno=${JSON.stringify(params)}`
  670. })
  671. },
  672. //编辑
  673. CloseEdit(val) {
  674. uni.navigateTo({
  675. url: "/pages/quote/premiumCalc?orderno=" + val
  676. })
  677. // this.navigate({
  678. // url: '/pages/carInsure1/quote1',
  679. // success: (res) => {
  680. // res.eventChannel.emit("acceptData", {
  681. // carInfo: val.carinfo, //车辆信息
  682. // ownerInfo: val.ownerinfo, //车主信息
  683. // policyHolderInfo: val.applyinfo, //
  684. // insuredPersonInfo: val.insureinfo,
  685. // riskList: val.risk,
  686. // kindList: val.king,
  687. // orderno: val.orderno, //车辆
  688. // quoteno: val.quoteno, //车主
  689. // vehicleAndVesselTaxForm: val.vehicleAndVesselTax, //车船税
  690. // })
  691. // }
  692. // }, "navigateTo", true);
  693. },
  694. //回车搜索事件
  695. search(val) {
  696. this.getOrdersList(1, 20);
  697. },
  698. //搜索按钮事件
  699. custom(val) {
  700. this.getOrdersList(1, 20);
  701. },
  702. //搜索框清除事件
  703. clear(val) {
  704. },
  705. //关闭订单后查询
  706. closeOrders() {
  707. this.totalSize = 0;
  708. this.ordersList = []; //获取到的订单列表
  709. this.currentPage = 1; //当前的页数
  710. this.totalPages = 1; //总共的页数
  711. },
  712. //当前时间
  713. transformTime(day) {
  714. var date = new Date();
  715. date.setFullYear(date.getFullYear());
  716. date.setTime(date.getTime());
  717. var strYear = date.getFullYear();
  718. var strDay = day ? date.getDate() - day : date.getDate();
  719. var strMonth = date.getMonth() + 1;
  720. if (strMonth < 10) {
  721. strMonth = "0" + strMonth;
  722. }
  723. if (strDay < 10) {
  724. strDay = "0" + strDay;
  725. }
  726. var datastr = strYear + "-" + strMonth + "-" + strDay;
  727. return datastr;
  728. },
  729. transformTime1(month) {
  730. var date = new Date();
  731. date.setFullYear(date.getFullYear());
  732. date.setTime(date.getTime());
  733. var strYear = date.getFullYear();
  734. var strDay = date.getDate();
  735. var strMonth = month ? (date.getMonth() + 1) - month : date.getMonth() + 1;
  736. if (strMonth < 10) {
  737. strMonth = "0" + strMonth;
  738. }
  739. if (strDay < 10) {
  740. strDay = "0" + strDay;
  741. }
  742. var datastr = strYear + "-" + strMonth + "-" + strDay;
  743. return datastr;
  744. },
  745. }
  746. }
  747. </script>
  748. <style>
  749. page {
  750. background-color: #F8FAFE;
  751. }
  752. .warp {
  753. display: flex;
  754. align-items: center;
  755. justify-content: center;
  756. height: 100%;
  757. }
  758. .rect {
  759. width: 90%;
  760. height: 80%;
  761. background-color: #fff;
  762. }
  763. </style>
  764. <style lang="scss" scoped>
  765. ::deep uni-tabbar .uni-tabbar-bottom {
  766. position: fixed;
  767. left: 0;
  768. right: 0;
  769. bottom: 0;
  770. }
  771. ::deep .u-action[data-v-1a326067] {
  772. color: #FFFFFF;
  773. }
  774. ::deep .u-dropdown__menu__item__arrow[data-v-01c0c507] uni-text {
  775. color: #FFFFFF !important;
  776. }
  777. .dropdown-content {
  778. background-color: rgba(0, 0, 0, 0.6);
  779. height: 0px;
  780. opacity: 0;
  781. transition: opacity 0.3s ease;
  782. .title {
  783. font-size: 14px;
  784. color: #232832;
  785. font-weight: bold;
  786. border-bottom: 1px solid #E1E1E1;
  787. }
  788. .term {
  789. padding-top: 10px;
  790. >text {
  791. color: #232832;
  792. font-weight: bold;
  793. font-size: 13px;
  794. }
  795. }
  796. .operateBtn {
  797. font-weight: bold;
  798. font-size: 16px;
  799. margin-bottom: 20px;
  800. .cancel {
  801. width: 50%;
  802. height: 46px;
  803. color: #333333;
  804. background-color: #fff;
  805. border-radius: 50rpx;
  806. border: 1px solid #FDE935;
  807. margin-right: 20px;
  808. }
  809. .confirm {
  810. width: 50%;
  811. height: 46px;
  812. color: #1f1f1f;
  813. background-color: #FDE935;
  814. border-radius: 50rpx;
  815. }
  816. }
  817. }
  818. .dropdown-content1 {
  819. background-color: #fff;
  820. height: 0px;
  821. overflow: hidden;
  822. transition: height 0.4s ease;
  823. }
  824. .show {
  825. height: 100vh;
  826. opacity: 1;
  827. /* 下拉菜单内容的最大高度 */
  828. }
  829. .scolcentent {
  830. height: 450px;
  831. margin-bottom: 10px;
  832. overflow-y: auto;
  833. /* 下拉菜单遮罩最大高度 */
  834. }
  835. .headers {
  836. background-color: rgba(199, 198, 202, 0.4);
  837. width: 100%;
  838. height: 0;
  839. position: absolute;
  840. z-index: 999;
  841. }
  842. .parent {
  843. position: relative;
  844. }
  845. .search-condition {
  846. padding: 0 16px;
  847. .title {
  848. font-size: 14px;
  849. color: #232832;
  850. font-weight: bold;
  851. border-bottom: 1px solid #E1E1E1;
  852. }
  853. .term {
  854. padding-top: 10px;
  855. >text {
  856. color: #232832;
  857. font-weight: bold;
  858. font-size: 13px;
  859. }
  860. }
  861. }
  862. .search {
  863. padding: 13px 16px;
  864. background-image: url("/static/image/ePolicy.png");
  865. background-size: cover;
  866. image {
  867. width: 22px;
  868. height: 22px;
  869. margin-left: 20px;
  870. }
  871. }
  872. .slot-content1 {
  873. background-color: #FFFFFF;
  874. padding: 24rpx;
  875. }
  876. .title {
  877. font-weight: bold;
  878. color: #333;
  879. }
  880. .status-data {
  881. padding: 4px 10px;
  882. box-sizing: border-box;
  883. margin: 0 4px 4px 0;
  884. font-size: 12px;
  885. border: 1px solid #eee;
  886. cursor: pointer;
  887. }
  888. .active {
  889. position: relative;
  890. border: 1px solid #FDE935;
  891. font-weight: bold;
  892. &::after {
  893. content: '';
  894. position: absolute;
  895. right: 0;
  896. bottom: 0;
  897. width: 0;
  898. height: 0;
  899. border-style: solid;
  900. border-width: 0 0 24rpx 24rpx;
  901. /* 调整三角形大小 */
  902. border-color: transparent transparent #FDE935 transparent;
  903. /* 黄色三角形 */
  904. }
  905. &::before {
  906. content: '✓';
  907. position: absolute;
  908. right: 3rpx;
  909. /* 微调位置 */
  910. bottom: 0;
  911. font-size: 14rpx;
  912. /* 调整对勾大小 */
  913. color: #333;
  914. /* 对勾颜色 */
  915. z-index: 1;
  916. /* 确保对勾在三角形上方 */
  917. }
  918. }
  919. .orderItemPane {
  920. width: 100%;
  921. height: auto;
  922. margin: 10px 0;
  923. border-radius: 10px;
  924. background: #FFFFFF;
  925. box-shadow: 0px 4px 10px 0px #DAE3F4;
  926. border-radius: 6px;
  927. cursor: pointer;
  928. }
  929. .orderItemPane-upper {
  930. background: rgba(255, 255, 255, 0.5);
  931. border-radius: 6px 6px 0px 0px;
  932. padding: 13rpx 16rpx;
  933. .licenseno {
  934. font-family: Source Han Sans SC, Source Han Sans SC;
  935. font-weight: bold;
  936. font-size: 14px;
  937. color: #181818;
  938. }
  939. .colorBlock {
  940. background: #FF7F00;
  941. box-shadow: 0px 1px 4px 0px rgba(0, 0, 0, 0.1);
  942. border-radius: 4px;
  943. border: 1px solid #FEEDDF;
  944. color: #fff;
  945. font-size: 26rpx;
  946. font-weight: bold;
  947. padding: 0 10px;
  948. }
  949. }
  950. .orderItemPane-centre {
  951. padding: 7px 14px;
  952. >view>text {
  953. font-weight: bold;
  954. color: #232832;
  955. }
  956. .time {
  957. >text {
  958. color: rgba(51, 51, 51, 0.8);
  959. font-size: 12px;
  960. }
  961. .downstyle {
  962. background: rgba(255, 255, 255, 0.6);
  963. border-radius: 2px;
  964. padding: 2px 8px;
  965. margin: 0 4px;
  966. color: #333333;
  967. font-size: 12px;
  968. }
  969. }
  970. }
  971. .orderItemPane .orderItemPane-centre,
  972. .inscommny-sum>text {
  973. color: rgba(51, 51, 51, 0.8);
  974. font-weight: 400;
  975. }
  976. .orderItemPane-below {
  977. height: auto;
  978. padding: 10px;
  979. background: #ffff;
  980. border-radius: 0 0 6px 6px;
  981. &>button {
  982. margin-left: 10px;
  983. margin-bottom: 5px;
  984. }
  985. }
  986. .orderItemPane-extend .extend-button>text {
  987. color: #ff9000;
  988. font-size: 12px;
  989. }
  990. .orderItemPane-extend {
  991. border-bottom-right-radius: 10px;
  992. border-bottom-left-radius: 10px;
  993. }
  994. .classes::before {
  995. content: "·";
  996. color: #ff9000;
  997. margin-right: 10px;
  998. }
  999. .flexd {
  1000. position: fixed;
  1001. left: 0;
  1002. right: 0;
  1003. }
  1004. .moosize {
  1005. font-size: 12px;
  1006. color: rgba(51, 51, 51, 0.6);
  1007. font-weight: 400;
  1008. }
  1009. .color {
  1010. color: #ff9000;
  1011. }
  1012. /* 查询区域End */
  1013. </style>