10 Commits

5 changed files with 61 additions and 34 deletions

View File

@ -326,10 +326,17 @@ export function jumpPage(data){
data
})
}
//
//发送确认参保
export function sendInsuranceEmail(){
return request({
url:'/supplierAppV2/dispatchApp/user/sendInsuranceEmail',
method:'POST',
})
}
// 判断服务商是否参保
export function isSendInsuranceEmail(){
return request({
url:'/supplierAppV2/dispatchApp/user/isSendInsuranceEmail',
method:'POST',
})
}

View File

@ -88,7 +88,8 @@
<script>
import { Decimal } from 'decimal.js';
import {myMixins} from "@/utils/myMixins"
import {notifyInvoiceList} from "@/api/mine"
import {notifyInvoiceList, jumpPage} from "@/api/mine"
import {Dialog} from "vant";
export default {
name: "invoicingNotify",
mixins:[myMixins],
@ -154,7 +155,7 @@ export default {
}
}
},
changeTabHandler() {
async changeTabHandler() {
this.pageNum = 1;
this.notifyList = [];
this.checkList = [];
@ -166,6 +167,20 @@ export default {
this.status = 2;
this.dispatchAppSearchInvoiced = '';
this.pageSize = 10000
let res = await this.getJumpHandler();
if(res?.data?.jump) {
Dialog.alert({
message: '您有暂未完成的培训请在中道调度APP上完成培训再进行发票上传',
confirmButtonText: '去培训',
confirmButtonColor: '#0E76F4',
showCancelButton: false,
}).then(async() => {
this.goPage('newTrainingList', { supplierId : this.supplierId })
}).catch(() => {
// on cancel
});
return false
}
} else if(this.active == 3) { // 已开票,需要分页
this.status = '';
this.dispatchAppSearchInvoiced = 1;
@ -173,6 +188,10 @@ export default {
}
this.getNotifyList()
},
async getJumpHandler() {
let res = await jumpPage();
return res
},
getMonth(item) {
let str = '';
let startTime = new Date(item.createTime);

View File

@ -62,7 +62,7 @@
</div>
<div class="upload_btn_wrap">
<div class="btn_save" @click="createInvoiceHandler">保存</div>
<van-uploader :before-read="beforeRead" :after-read="afterRead" accept=".png,.jpg,.jpeg,.pdf,.ofd">
<van-uploader :before-read="beforeRead" use-before-read :after-read="afterRead" accept=".png,.jpg,.jpeg,.pdf,.ofd">
<div class="btn_upload">
<img class="icon_upload" src="@/assets/icon_upload.png" alt="">
上传发票
@ -76,13 +76,14 @@
import { Decimal } from 'decimal.js';
import { Dialog } from "vant";
import { myMixins } from "@/utils/myMixins"
import { uploadInvoice, getBillingInfo, deleteInvoice, createBatch, jumpPage} from "@/api/mine"
import { uploadInvoice, getBillingInfo, deleteInvoice, createBatch} from "@/api/mine"
export default {
name: "uploadInvoice",
mixins:[ myMixins ],
data(){
return {
list: [],
fileObj: '',
invoiceMoneyTotal: 0,
tableData: [],
activeObj: {},
@ -132,10 +133,10 @@
}
},
methods: {
async getJumpHandler() {
/* async getJumpHandler() {
let res = await jumpPage();
return res
},
},*/
async initData() {
this.list = JSON.parse(localStorage.getItem('list'));
this.batchIds = [];
@ -235,18 +236,12 @@
});
},
async beforeRead (file) {
let res = await this.getJumpHandler();
if(res?.data?.jump) {
this.$message.warning("您有没有完成的培训请在中道调度APP上完成培训再进行发票上传")
return false
}
const FileExt = file.name.replace(/.+\./, "");
if (['jpg', 'png', 'jpeg', 'pdf', 'ofd'].indexOf(FileExt.toLowerCase()) === -1) {
this.$toast('请上传后缀名为jpg、jpeg、png、pdf、ofd的文件')
return false;
return false
}
this.$set(this.activeObj, 'fileType', FileExt)
return true
},
async afterRead (file) {
try {

View File

@ -63,7 +63,7 @@
<div :class="{'reciceOrder':true,'webCom':!isMobile,'evaluate':isMobile}">
<div class="title">客户评价</div>
<div class="reciceOrderIWrap" v-if="indexData">
<circle-char ref="Doughnut1" :data="indexData && indexData.complainOrderRate" :title-text="'投诉率'" :bg-color="Number(indexData?.complainOrderRate || 0) <= 0.01 ? 'green' : 'red'"
<circle-char ref="Doughnut1" :data="indexData && indexData.complainOrderRate" :title-text="'投诉率'" :bg-color="Number(indexData?.complainOrderRate || 0) <= 0.1 ? 'green' : 'red'"
:is-store="false" @clickComplain="clickJumpHandle(7)"></circle-char>
<circle-char ref="Doughnut2" :data="indexData && indexData.customerSatisfaction" :title-text="'平安好评率'"
:bg-color="Number(indexData?.customerSatisfaction || 0) >= 99.4 ? 'green' : 'red'"></circle-char>
@ -91,7 +91,7 @@
<div class="line"></div>
<div class="center common">
<div class="num" :class="{'numRed': Number(indexData?.polymerizationSuccessArriving) > 22, 'numGreen': Number(indexData?.polymerizationSuccessArriving) <= 22 }">{{ indexData && indexData.polymerizationSuccessArriving }}</div>
<div class="itemTitle">合成功到达时效(分)</div>
<div class="itemTitle">平安聚合成功到达时效(分)</div>
</div>
<div class="line"></div>
<div class="right common">
@ -1184,13 +1184,10 @@ export default {
]
} else if (this.active === 11) {//车辆在线情况
this.labelList = [
{label: '日期', prop: 'date'},
{label: '案件编号', prop: 'orderCode'},
{label: '服务内容', prop: 'serviceName'},
{label: '聚合分类', prop: 'workOrderTypeString'},
{label: '聚合供应商', prop: 'supplierName'},
{label: '聚合车辆', prop: 'driverName'},
{label: '聚合师傅手机号', prop: 'driverPhone'},
{label: '聚合信息', prop: 'rescuePersonName'},
{label: '创建时间', prop: 'orderCreateTime'},
]
}
@ -1223,9 +1220,9 @@ export default {
this.startTime = dayjs(new Date()).format('YYYY-MM') + '-01 00:00:00'
this.endTime = dayjs(new Date()).format('YYYY-MM') + '-' + this.getDayLen()+' 23:59:59'*/
// test
let _testDate = new Date('2024-11-01 00:00:01')
// let _testDate = new Date('2024-11-01 00:00:01')
const today = dayjs(_testDate); // 获取当前日期
const today = dayjs(); // 获取当前日期
const currentDay = today.date(); // 获取今天是几号1-31
let targetMonth = today; // 默认目标月份是当前月
if (currentDay === 1) {
@ -1306,8 +1303,8 @@ export default {
{ 'month': '拒单量' },{ 'month': '拒单率(%)' },{ 'month': '超时接单量' },{ 'month': '超时率(%)' },{ 'month': '客户取消率(%)' }]
let props = 'prop' //自定义字段名称
this.detailList?.map((item,index) => {
item.dispatchOrderCount=this.formatCurrency1( item.dispatchOrderCount);
let _dispatchOrderCount = Number(item.receiveOrderCount) + Number(item.refuseOrderCount)
item.dispatchOrderCount=this.formatCurrency1( _dispatchOrderCount );
item.receiveOrderCount=this.formatCurrency1( item.receiveOrderCount);
item.finishOrderCount=this.formatCurrency1( item.finishOrderCount);
item.refuseOrderCount=this.formatCurrency1( item.refuseOrderCount);
@ -1466,8 +1463,8 @@ export default {
{label: '日', prop: 'date'},
{label: '投诉量', prop: 'complainOrderCount'},
{label: '投诉率', prop: 'complainOrderRate'},
{label: '好评量', prop: 'favorableCount'},
{label: '好评率', prop: 'favorableRate'},
/* {label: '好评量', prop: 'favorableCount'},
{label: '好评率', prop: 'favorableRate'},*/
{label: '平安评价率', prop: 'pinganEvaluateRate'},
{label: '平安好评率', prop: 'pinganFavorableRate'},
]
@ -1487,7 +1484,7 @@ export default {
this.labelList = [
{label: '日', prop: 'date'},
{label: '接单时效(分)', prop: 'receiving'},
{label: '3分钟联系客户率', prop: 'threeMinutesReceivingRate'},
{label: '3分钟联系客户率', prop: 'threeMinutesContactRate'},
{label: '到达时效(分)', prop: 'arriving'},
{label: '平安聚合成功到达时效(分)', prop: 'pinganJuheSuccessArriving'},
]

View File

@ -29,17 +29,24 @@
<div> 如确认参保请点击下方参保按钮会有专人与贵司联系</div>
</div>
<div class="upload_btn_wrap">
<div class="btn_save" @click="showPoup = true">参保</div>
<div class="btn_save" :style="{'backgroundColor':used ? '#cccccc' : '#354D93'}" @click="showPoup = true">参保</div>
</div>
<div class="poupCommon" v-if="showPoup">
<div class="showPoupContainer">
<img class="insured" src="@/assets/insured-jianbian.png">
<img class="insure" src="@/assets/insured.png">
<div class="con">
<div class="title">请确认</div>
<div class="title">是否参保救援职业责任险</div>
<template v-if="used">
<div class="title">您已成功申请参保请等待</div>
<div class="title">专人与贵司联系</div>
</template>
<template v-else>
<div class="title">请确认</div>
<div class="title">是否参保救援职业责任险</div>
</template>
<div class="btnWrap">
<div class="btn confirmBtn" @click="saveHandle">确认</div>
<div v-if="used" class="btn confirmBtn" @click="showPoup = false">确认</div>
<div v-else class="btn confirmBtn" @click="saveHandle">确认</div>
<div class="btn closeBtn" @click="showPoup = false">取消</div>
</div>
</div>
@ -50,17 +57,19 @@
<script>
import {myMixins} from "@/utils/myMixins"
import {sendInsuranceEmail} from "@/api/mine"
import {sendInsuranceEmail,isSendInsuranceEmail} from "@/api/mine"
export default {
name: "insuredPage",
mixins: [myMixins],
data() {
return {
showPoup: false,
used:false,
}
},
async mounted() {
let res=await isSendInsuranceEmail()
this.used=res.data
},
methods: {
async saveHandle() {
@ -120,7 +129,7 @@ export default {
flex: 1;
}
.btn_save {
background: #354D93;
//background: #354D93;
margin-right: 4px;
}
}