This commit is contained in:
许允枞 2024-09-14 14:36:06 +08:00
parent d0b3a9d1bd
commit ac4d6eb764

View File

@ -2,35 +2,38 @@
<div class="app-containers">
<div class="tab-box">
<div class="tab_" :class="{active:index== tabindex }" @click="getindex(index)" v-for="(item,index) in tabs" :key="index">
{{item}}
<div class="tab_" :class="{active:index== tabindex }" @click="getindex(index)" v-for="(item,index) in tabs"
:key="index">
{{ item }}
</div>
</div>
<div v-if="tabindex == 0">
<div class="card-box" style="width: 98%;margin: 10px auto;background: #fff;box-sizing: border-box;padding-top: 15px" >
<div class="card-box"
style="width: 98%;margin: 10px auto;background: #fff;box-sizing: border-box;padding-top: 15px">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="100px">
<el-form-item label="" prop="status">
<el-select v-model="queryParams.status" style="width: 150px" placeholder="交班方式" clearable>
<el-select v-model="queryParams.status" style="width: 150px" placeholder="交班方式" clearable
@change="onChange">
<el-option label="统一交班" value="统一交班">统一交班</el-option>
<el-option label="个人交班" value="个人交班">个人交班</el-option>
</el-select>
</el-form-item>
<el-form-item label="" prop="staffId">
<el-select v-model="queryParams.staffId" style="width: 150px" placeholder="交班员工" clearable>
<el-select v-model="queryParams.staffId" style="width: 150px" placeholder="交班员工" clearable @change="onChange2">
<el-option
v-for="option in staffList"
:key="option.id"
:label="option.realName"
:value="option.id"
:disabled="queryParams.status === '统一交班'"
></el-option>
</el-select>
</el-form-item>
<el-form-item class="flex-container" style="float: right">
<el-button type="primary" icon="el-icon-search" :disabled="!queryParams.staffId" @click="handleQuery">搜索</el-button>
<el-button type="primary" icon="el-icon-search" :disabled="!isSearch" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
@ -40,35 +43,35 @@
<div class="title_">门店交接单</div>
<div class="d-s-b">
<div>油站名称</div>
<div>{{baseInfo.storeName}}</div>
<div>{{ baseInfo.storeName }}</div>
</div>
<div class="d-s-b">
<div>油站站长</div>
<div>{{baseInfo.realName}}</div>
<div>{{ baseInfo.realName }}</div>
</div>
<div class="d-s-b">
<div>交班方式</div>
<div>{{baseInfo.handoverType}}</div>
<div>{{ baseInfo.handoverType }}</div>
</div>
<div class="d-s-b">
<div>开始时间</div>
<div>{{baseInfo.startTime}}</div>
<div>{{ baseInfo.startTime }}</div>
</div>
<div class="d-s-b">
<div>结束时间</div>
<div>{{baseInfo.endTime}}</div>
<div>{{ baseInfo.endTime }}</div>
</div>
<div class="d-s-b">
<div>订单金额</div>
<div>{{orderSummary.oilOrder}}</div>
<div>{{ orderSummary.oilOrder }}</div>
</div>
<div class="d-s-b">
<div>优惠金额</div>
<div>{{orderSummary.allDis}}</div>
<div>{{ orderSummary.allDis }}</div>
</div>
<div class="d-s-b">
<div>退款金额</div>
<div>{{orderSummary.oilRefund}}</div>
<div>{{ orderSummary.oilRefund }}</div>
</div>
<div class="d-s-b">
<div>挂账金额</div>
@ -76,27 +79,27 @@
</div>
<div class="d-s-b">
<div>会员消费</div>
<div>{{orderSummary.allBalanceP}}</div>
<div>{{ orderSummary.allBalanceP }}</div>
</div>
<div class="d-s-b">
<div>实收金额</div>
<div>{{orderSummary.allMoney}}</div>
<div>{{ orderSummary.allMoney }}</div>
</div>
<div class="d-s-b">
<div>充值金额</div>
<div>{{orderSummary.cardPaid}}</div>
<div>{{ orderSummary.cardPaid }}</div>
</div>
<div class="d-s-b">
<div>充值赠送</div>
<div>{{orderSummary.cardGiftPaid}}</div>
<div>{{ orderSummary.cardGiftPaid }}</div>
</div>
<div class="d-s-b">
<div>会员总余额</div>
<div>{{orderSummary.points}}</div>
<div>{{ orderSummary.points }}</div>
</div>
<div class="d-s-b">
<div>会员总积分</div>
<div>{{orderSummary.sumnum}}</div>
<div>{{ orderSummary.sumnum }}</div>
</div>
<div class="xxing"></div>
<div class="for-box">
@ -112,18 +115,18 @@
</div>
<div class="d-s-b">
<div class="l-size">营业总额</div>
<div class="s-size">{{orderSummary.allyingye1}}</div>
<div class="r-size">{{orderSummary.allyingye}}</div>
<div class="s-size">{{ orderSummary.allyingye1 }}</div>
<div class="r-size">{{ orderSummary.allyingye }}</div>
</div>
<div class="d-s-b">
<div class="l-size">充值总额</div>
<div class="s-size">{{orderSummary.allchuzhika1}}</div>
<div class="r-size">{{orderSummary.allchuzhika}}</div>
<div class="s-size">{{ orderSummary.allchuzhika1 }}</div>
<div class="r-size">{{ orderSummary.allchuzhika }}</div>
</div>
<div class="d-s-b">
<div class="l-size">合计</div>
<div class="s-size">{{orderSummary.allyingye1 + orderSummary.allchuzhika1}}</div>
<div class="r-size">{{orderSummary.allyingye + orderSummary.allchuzhika}}</div>
<div class="s-size">{{ orderSummary.allyingye1 + orderSummary.allchuzhika1 }}</div>
<div class="r-size">{{ orderSummary.allyingye + orderSummary.allchuzhika }}</div>
</div>
</div>
@ -140,9 +143,9 @@
<div class="r-size">实收金额</div>
</div>
<div class="d-s-b" v-for="item in paymentAggregation" v-if="item.flag == 'all'">
<div class="l-size">{{calculateThePaymentMethod(item.payType)}}</div>
<div class="s-size">{{item.numberOfDeals}}</div>
<div class="r-size">{{item.paidAmount}}</div>
<div class="l-size">{{ calculateThePaymentMethod(item.payType) }}</div>
<div class="s-size">{{ item.numberOfDeals }}</div>
<div class="r-size">{{ item.paidAmount }}</div>
</div>
</div>
@ -158,9 +161,9 @@
<div class="r-size">实收金额</div>
</div>
<div class="d-s-b" v-for="item in oilNumberStatistics">
<div class="l-size">{{item.oilName}}</div>
<div class="s-size">{{item.numberOfDeals}}</div>
<div class="r-size">{{item.paidAmount}}</div>
<div class="l-size">{{ item.oilName }}</div>
<div class="s-size">{{ item.numberOfDeals }}</div>
<div class="r-size">{{ item.paidAmount }}</div>
</div>
</div>
@ -176,9 +179,9 @@
<div class="r-size">实收金额</div>
</div>
<div class="d-s-b" v-for="item in oilNumberStatistics">
<div class="l-size">{{item.oilName}}</div>
<div class="s-size">{{item.numberOfDeals}}</div>
<div class="r-size">{{item.paidAmount}}</div>
<div class="l-size">{{ item.oilName }}</div>
<div class="s-size">{{ item.numberOfDeals }}</div>
<div class="r-size">{{ item.paidAmount }}</div>
</div>
</div>
@ -194,9 +197,9 @@
<div class="r-size">实收金额</div>
</div>
<div class="d-s-b" v-for="item in oilNumberStatistics">
<div class="l-size">{{item.oilName}}</div>
<div class="s-size">{{item.numberOfDeals}}</div>
<div class="r-size">{{item.paidAmount}}</div>
<div class="l-size">{{ item.oilName }}</div>
<div class="s-size">{{ item.numberOfDeals }}</div>
<div class="r-size">{{ item.paidAmount }}</div>
</div>
</div>
@ -213,9 +216,9 @@
<div class="r-size">实收金额</div>
</div>
<div class="d-s-b" v-for="item in paymentAggregation" v-if="item.flag == 'all' && item.payType == 'balance'">
<div class="l-size">{{item.name}}</div>
<div class="s-size">{{item.numberOfDeals?item.numberOfDeals:'--'}}</div>
<div class="r-size">{{item.paidAmount?item.paidAmount:'--'}}</div>
<div class="l-size">{{ item.name }}</div>
<div class="s-size">{{ item.numberOfDeals ? item.numberOfDeals : '--' }}</div>
<div class="r-size">{{ item.paidAmount ? item.paidAmount : '--' }}</div>
</div>
</div>
@ -231,9 +234,9 @@
<div class="r-size">实收金额</div>
</div>
<div class="d-s-b" v-for="item in paymentAggregation" v-if="item.flag == 'allbalance'">
<div class="l-size">{{calculateThePaymentMethod(item.payType)}}</div>
<div class="s-size">{{item.numberOfDeals?item.numberOfDeals:'--'}}</div>
<div class="r-size">{{item.paidAmount?item.paidAmount:'--'}}</div>
<div class="l-size">{{ calculateThePaymentMethod(item.payType) }}</div>
<div class="s-size">{{ item.numberOfDeals ? item.numberOfDeals : '--' }}</div>
<div class="r-size">{{ item.paidAmount ? item.paidAmount : '--' }}</div>
</div>
</div>
@ -250,8 +253,8 @@
</div>
<div class="d-s-b" v-for="item in paymentAggregation" v-if="item.flag == 'all' && item.payType == 'balance'">
<div class="l-size">合计</div>
<div class="s-size">{{item.numberOfDeals?item.numberOfDeals:'--'}}</div>
<div class="r-size">{{item.paidAmount?item.paidAmount:'--'}}</div>
<div class="s-size">{{ item.numberOfDeals ? item.numberOfDeals : '--' }}</div>
<div class="r-size">{{ item.paidAmount ? item.paidAmount : '--' }}</div>
</div>
</div>
@ -267,9 +270,9 @@
<div class="r-size">实收金额</div>
</div>
<div class="d-s-b" v-for="item in paymentAggregation" v-if="item.flag == 'goods'">
<div class="l-size">{{calculateThePaymentMethod(item.payType)}}</div>
<div class="s-size">{{item.numberOfDeals?item.numberOfDeals:'--'}}</div>
<div class="r-size">{{item.paidAmount?item.paidAmount:'--'}}</div>
<div class="l-size">{{ calculateThePaymentMethod(item.payType) }}</div>
<div class="s-size">{{ item.numberOfDeals ? item.numberOfDeals : '--' }}</div>
<div class="r-size">{{ item.paidAmount ? item.paidAmount : '--' }}</div>
</div>
</div>
@ -286,9 +289,9 @@
<div class="r-size">实收金额</div>
</div>
<div class="d-s-b" v-for="item in paymentAggregation" v-if="item.flag == 'point'">
<div class="l-size">{{calculateThePaymentMethod(item.payType)}}</div>
<div class="s-size">{{item.numberOfDeals?item.numberOfDeals:'--'}}</div>
<div class="r-size">{{item.paidAmount?item.paidAmount:'--'}}</div>
<div class="l-size">{{ calculateThePaymentMethod(item.payType) }}</div>
<div class="s-size">{{ item.numberOfDeals ? item.numberOfDeals : '--' }}</div>
<div class="r-size">{{ item.paidAmount ? item.paidAmount : '--' }}</div>
</div>
</div>
@ -301,8 +304,8 @@
</div>
<div class="d-s-b" style="font-weight: 600">
<div class="l-size">新增会员数</div>
<!-- <div class="f-size">笔数</div>-->
<div class="r-size">{{orderSummary.sumnum}}</div>
<!-- <div class="f-size">笔数</div>-->
<div class="r-size">{{ orderSummary.sumnum }}</div>
</div>
</div>
@ -320,9 +323,9 @@
<div class="r-size">实收金额</div>
</div>
<div class="d-s-b" v-for="item in returnedToTheAccount">
<div class="l-size">{{item.name?item.name:'--'}}</div>
<div class="s-size">{{item.numberOfDeals?item.numberOfDeals:'--'}}</div>
<div class="r-size">{{item.paidAmount?item.paidAmount:'--'}}</div>
<div class="l-size">{{ item.name ? item.name : '--' }}</div>
<div class="s-size">{{ item.numberOfDeals ? item.numberOfDeals : '--' }}</div>
<div class="r-size">{{ item.paidAmount ? item.paidAmount : '--' }}</div>
</div>
</div>
@ -338,23 +341,24 @@
<div class="r-size">实收金额</div>
</div>
<div class="d-s-b" v-for="item in employeeStatistics">
<div class="l-size">{{item.name?item.name:'--'}}</div>
<div class="s-size">{{item.numberOfDeals?item.numberOfDeals:'--'}}</div>
<div class="r-size">{{item.paidAmount?item.paidAmount:'--'}}</div>
<div class="l-size">{{ item.name ? item.name : '--' }}</div>
<div class="s-size">{{ item.numberOfDeals ? item.numberOfDeals : '--' }}</div>
<div class="r-size">{{ item.paidAmount ? item.paidAmount : '--' }}</div>
</div>
</div>
</el-card>
<div style="width: 98%; margin: 20px auto;display: flex;align-items: center;justify-content: center; background: #fff;box-sizing: border-box;padding: 15px " >
<div
style="width: 98%; margin: 20px auto;display: flex;align-items: center;justify-content: center; background: #fff;box-sizing: border-box;padding: 15px ">
<el-button type="primary" @click="shift()">交班</el-button>
</div>
</div>
<div v-if="tabindex == 1">
</div>
<div v-if="tabindex == 1">
<HandoverRecord></HandoverRecord>
</div>
</div>
<el-dialog title="订单详情" :visible.sync="openDetail" width="600px" append-to-body :close-on-click-modal="false">
<!-- <detail :dataForm = "recordData"></detail>-->
<HandoverOnly :recordData = "recordData"></HandoverOnly>
<!-- <detail :dataForm = "recordData"></detail>-->
<HandoverOnly :recordData="recordData"></HandoverOnly>
</el-dialog>
</div>
</template>
@ -367,7 +371,7 @@ import {
printLocallyApi
} from "@/api/handover/handover";
import {getStatisticsApi } from "@/api/order/order";
import {getStatisticsApi} from "@/api/order/order";
import {getDicts} from "@/api/order/data";
import HandoverOnly from "@/views/handover/HandoverOnly.vue";
import {listStaff} from "@/api/order/staff";
@ -382,28 +386,29 @@ export default {
data() {
return {
tabs:[
tabs: [
"交接班",
"交班记录"
],
value:'',
tabindex:0,
openDetail:false,
dataForm:{},
dataList:[],
recordData:'',
zhztList:'',
shiftHandoverList:'',
handoverList : {},
handoverData:{},
baseInfo:{},
billingDetails:[],
employeeStatistics:[],
greaseGunStatistics:[],
oilNumberStatistics:[],
orderSummary:{},
paymentAggregation:[],
returnedToTheAccount:[],
isSearch: true,
value: '',
tabindex: 0,
openDetail: false,
dataForm: {},
dataList: [],
recordData: '',
zhztList: '',
shiftHandoverList: '',
handoverList: {},
handoverData: {},
baseInfo: {},
billingDetails: [],
employeeStatistics: [],
greaseGunStatistics: [],
oilNumberStatistics: [],
orderSummary: {},
paymentAggregation: [],
returnedToTheAccount: [],
// base
queryParams: {
@ -411,22 +416,22 @@ export default {
status: '',
type: '',
page:null,
pageSize:null
page: null,
pageSize: null
},
loading: false,
dateRange: [new Date(),new Date()],
beginTime:new Date(),
endTime:new Date(),
dateRange: [new Date(), new Date()],
beginTime: new Date(),
endTime: new Date(),
defaultSort: {prop: 'createTime', order: 'descending'},
total: 0,
staffList:[],
staffList: [],
statisticsForm: {
num:0,
exchangeQuantity:0,
integral:0,
amount:0
num: 0,
exchangeQuantity: 0,
integral: 0,
amount: 0
}
}
},
@ -442,7 +447,7 @@ export default {
},
methods: {
getHandover() {
getHandoverApi2(this.queryParams).then(res=>{
getHandoverApi2(this.queryParams).then(res => {
// this.handoverList = res.data;
this.handoverData = res.data;
this.baseInfo = this.handoverData.baseInfo,
@ -453,30 +458,46 @@ export default {
this.orderSummary = this.handoverData.orderSummary,
this.paymentAggregation = this.handoverData.paymentAggregation,
this.returnedToTheAccount = this.handoverData.returnedToTheAccount,
console.log("this.handoverList",this.handoverList)
console.log("this.handoverList", this.handoverList)
})
},
onChange() {
if (this.queryParams.status == '统一交班') {
this.queryParams.staffId = ''
this.isSearch = true
} else if (this.queryParams.status == '个人交班') {
this.isSearch = false
}
},
onChange2() {
console.log("this.queryParams.staffId", this.queryParams.staffId)
if (!this.queryParams.staffId) {
this.isSearch = false
} else if (this.queryParams.staffId) {
this.isSearch = true
}
},
getindex(index){
getindex(index) {
this.tabindex = index
},
getList(){
getList() {
this.dateRange = []
if (this.beginTime && this.endTime) {
this.dateRange.push(this.beginTime.toLocaleDateString())
this.dateRange.push(this.endTime.toLocaleDateString())
}
getHandoverListApi(this.addDateRange(this.queryParams, this.dateRange)).then(res=>{
getHandoverListApi(this.addDateRange(this.queryParams, this.dateRange)).then(res => {
this.dataList = res.data.records
this.total = res.data.total
})
},
getStatistics() {
getStatisticsApi().then(res=>{
getStatisticsApi().then(res => {
this.statisticsForm = res.data
})
console.log("123123123",this.statisticsForm)
console.log("123123123", this.statisticsForm)
},
//
@ -525,27 +546,30 @@ export default {
})
})
},
handleUpdate(){},
handleQuery(){
handleUpdate() {
},
handleQuery() {
this.getList();
this.getHandover();
},
getStaffList() {
listStaff(this.addDateRange({ page: 1,
pageSize: 10000})).then(response => {
listStaff(this.addDateRange({
page: 1,
pageSize: 10000
})).then(response => {
this.staffList = response.data.records;
}
);
},
resetQuery(){
resetQuery() {
this.queryParams = {
giftName: '',
status: '',
mobile: '',
orderNumber: '',
page:1,
pageSize:10
page: 1,
pageSize: 10
},
this.dateRange = []
this.beginTime = "";
@ -554,22 +578,22 @@ export default {
this.getList();
},
printLocally(data) {
printLocallyApi(data).then(res=>{
printLocallyApi(data).then(res => {
})
},
handleDetail(data){
handleDetail(data) {
this.openDetail = true
this.recordData = data.recordData;
// JSON.parse(this.recordData )
console.log("data.recordData;",this.recordData)
console.log("data.recordData;", this.recordData)
},
goToAbout() {
this.$router.push({
path:'/Handover',
query:{
id:9
path: '/Handover',
query: {
id: 9
}
});
},
@ -615,7 +639,8 @@ export default {
box-sizing: border-box;
padding-bottom: 20px;
}
.tab-box{
.tab-box {
width: 100%;
background: #fff;
display: flex;
@ -624,10 +649,12 @@ export default {
margin-bottom: 25px;
}
.box_{
.box_ {
height: 100%;
border-bottom: 2px solid #fe9554;
}
.box {
padding: 10px;
height: 80px;
@ -641,25 +668,29 @@ export default {
align-items: left;
text-align: left;
}
.box-card{
.box-card {
width: 640px;
margin: 0 auto;
margin-bottom: 15px;
}
.font-chinese {
font-size: 15px;
font-family:Microsoft YaHei;
font-family: Microsoft YaHei;
font-weight: bold;
line-height:1.5
line-height: 1.5
}
.font-number {
font-size: 20px;
font-family: PingFang SC,sans-serif;
font-family: PingFang SC, sans-serif;
font-weight: bold;
line-height:1.3
line-height: 1.3
}
.table-box{
.table-box {
width: 100%;
}
@ -670,10 +701,12 @@ export default {
flex-wrap: nowrap; /* 确保不换行 */
width: 100%; /* 让父容器占满可用宽度 */
}
.el-form--inline .el-form-item {
margin-right: 44px;
}
.tab-box{
.tab-box {
width: 100%;
height: 40px;
background: #fff;
@ -682,7 +715,8 @@ export default {
margin-bottom: 25px;
}
.tab_{
.tab_ {
width: 75px;
height: 100%;
//border-bottom: 2px solid #FF770F;
@ -695,17 +729,20 @@ export default {
margin-left: 50px;
cursor: pointer;
}
.active{
.active {
border-bottom: 2px solid #FF770F !important;
color: #FF770F !important;
}
.title_{
.title_ {
text-align: center;
font-weight: 600;
font-size: 16px;
color: #333333;
}
.d-s-b{
.d-s-b {
width: 100%;
display: flex;
align-items: center;
@ -715,15 +752,18 @@ export default {
color: #333333;
margin: 20px auto;
}
.xxing{
.xxing {
width: 100%;
border-bottom: 1px solid #EEEEEE;
}
.for-box{
.for-box {
width: 100%;
margin: 20px auto;
}
.for-title{
.for-title {
display: flex;
align-items: center;
justify-content: center;
@ -732,34 +772,41 @@ export default {
color: #333333;
}
.x-{
.x- {
width: 100px;
border-bottom: 1px solid #EEEEEE;
margin: 0 15px;
}
.f-size{
.f-size {
width: 33%;
text-align: center;
font-weight: 600;
font-size: 16px;
color: #333333;
}
.s-size{
.s-size {
width: 33%;
text-align: center;
}
.l-size{
.l-size {
width: 33%;
text-align: left;
}
.r-size{
.r-size {
width: 33%;
text-align: right;
}
.bottom-{
.bottom- {
width: 98%;
}
.table-boxs{
.table-boxs {
border-radius: 8px;
width: 98%;
background: #fff;