bug修改

This commit is contained in:
zhaohengkun 2024-10-22 11:16:59 +08:00
parent e7b2df5001
commit 75f2c2b3ad
13 changed files with 2767 additions and 2620 deletions

View File

@ -7,49 +7,44 @@ export function getGiftApi(data) {
method: 'get', method: 'get',
params: data params: data
}) })
} }
// 新增有关信息
export function insertGiftApi(data) { // 新增有关信息
export function insertGiftApi(data) {
return request({ return request({
url: 'business/integral/integralGift', url: 'business/integral/integralGift',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 修改有关信息
export function updateGiftApi(data) { // 修改有关信息
export function updateGiftApi(data) {
return request({ return request({
url: 'business/integral/integralGift', url: 'business/integral/integralGift',
method: 'put', method: 'put',
data: data data: data
}) })
} }
// 修改库存 // 修改库存
export function updateGiftInventoryApi(data) { export function updateGiftInventoryApi(data) {
return request({ return request({
url: 'business/integral/integralGift/updateInventory', url: 'business/integral/integralGift/updateInventory',
method: 'get', method: 'get',
params: data params: data
}) })
} }
//兑换 //获取全部 剩余数量 >0 的优惠
export function getCardFavorableApi(data) { export function getCardCoupon(data) {
return request({ return request({
url: 'business/marketingActivity/cardFavorable?pageNo=1&pageSize=10', url: 'cardCoupon/queryByNum',
method: 'get', method: 'get',
params: data params: data
}) })
} }
//优惠券
export function getCardExchangeApi(data) {
return request({
url: 'business/marketingActivity/cardExchange?pageNo=1&pageSize=10',
method: 'get',
params: data
})
}

View File

@ -1,14 +1,14 @@
<script> <script>
import {getToken} from "@/utils/auth"; import {getToken} from "@/utils/auth";
import {getCardExchangeApi, getCardFavorableApi, insertGiftApi, updateGiftApi} from "@/api/integral/gift"; import {getCardCoupon, insertGiftApi, updateGiftApi} from "@/api/integral/gift";
import {listLJGoods} from "@/api/convenienceStore/ljgoods"; import {listLJGoods} from "@/api/convenienceStore/ljgoods";
import {selectTree} from "@/api/convenienceStore/goods"; import {selectTree} from "@/api/convenienceStore/goods";
import {getGiftCategoryApi} from "@/api/integral/category"; import {getGiftCategoryApi} from "@/api/integral/category";
export default { export default {
name: "in-add", name: "in-add",
dicts: ['zhzt','lplx','redemptionMethod','expressShippingCosts','shippingMethod'], dicts: ['zhzt', 'lplx', 'redemptionMethod', 'expressShippingCosts', 'shippingMethod'],
props:['giftDataF','type'], props: ['giftDataF'],
data() { data() {
var valiNumberPass = (rule, value, callback) => {// var valiNumberPass = (rule, value, callback) => {//
let reg = /^[+-]?(0|([1-9]\d*))(\.\d+)?$/g; let reg = /^[+-]?(0|([1-9]\d*))(\.\d+)?$/g;
@ -21,41 +21,50 @@ props:['giftDataF','type'],
} }
}; };
return { return {
title:'添加礼品', giftTypeOption: [
openCommodity:false, {
value: '1',
label: '电子券'
},
{
value: '2',
label: '实物商品'
}
],
title: '添加礼品',
openCommodity: false,
getGiftTypeShow: '', getGiftTypeShow: '',
stock: '', stock: null,
// //
cardFavorableList:[], cardFavorableList: [],
// //
cardExchangeApiList:[], cardExchangeApiList: [],
dataForm:{ dataForm: {
id: null, id: null,
giftName: '', // giftName: '', //
categoryId:'', // id categoryId: '', // id
goodsId:'', // Id goodsId: '', // Id
goodsName:'', // Id goodsName: '', // Id
voucherId:'', // id coverImage: '', //
coverImage:'', //
giftImages: [], // giftImages: [], //
giftType:"优惠券", // giftType: '电子券', //
couponId:'',// couponId: '',//
giftQuantity: 1, // giftQuantity: 1, //
totalInventory:'', // totalInventory: '', //
exchangeMethod:'积分', // exchangeMethod: '积分', //
exchangePoints:'', // exchangePoints: '', //
exchangeTimes:'', // exchangeTimes: '', //
moneyRatio:'', // moneyRatio: '', //
expressShippingFee:'', // expressShippingFee: '', //
shippingFeeAmount:'', // shippingFeeAmount: '', //
exchangeamount:'', // exchangeamount: '', //
// deliveryMethod:[''], // // deliveryMethod:[''], //
deliveryMethod:[], // deliveryMethod: [], //
detailedDescription:'', // detailedDescription: '', //
categoryName: 1, categoryName: 1,
sort: null, sort: null,
status: '启用', status: '启用',
market:null market: 0
}, },
showList: { showList: {
// //
@ -63,12 +72,12 @@ props:['giftDataF','type'],
voucher: false, voucher: false,
goods: false, goods: false,
// //
jf:true, jf: true,
je:false, je: false,
jfje:false, jfje: false,
jfjq:false, jfjq: false,
// //
delivery:false, delivery: false,
express: false, express: false,
shippingFee: false shippingFee: false
}, },
@ -79,13 +88,15 @@ props:['giftDataF','type'],
giftImages: [], giftImages: [],
// //
uploadAction: process.env.VUE_APP_BASE_API + 'backendApi/file/upload', uploadAction: process.env.VUE_APP_BASE_API + 'backendApi/file/upload',
uploadHeader: { 'Access-Token' : getToken() }, uploadHeader: {'Access-Token': getToken()},
// //
hideUpload: false, hideUpload: false,
// //
uploadFiles: [ uploadFiles: [
{name:"nihao", {
url:'http://localhost:8008/static/uploadImages/20231103/ffbbe7d3ee1441fdaf706802fa0f176a.png'} name: "nihao",
url: 'http://localhost:8008/static/uploadImages/20231103/ffbbe7d3ee1441fdaf706802fa0f176a.png'
}
], ],
// //
imagePath: process.env.VUE_APP_BASE_API, imagePath: process.env.VUE_APP_BASE_API,
@ -95,65 +106,62 @@ props:['giftDataF','type'],
rulesInventory: {}, rulesInventory: {},
rules: { rules: {
deliveryMethod: [ deliveryMethod: [
{ type: 'array', required: true, message: '请至少选择一个配送方式', trigger: 'change' } {type: 'array', required: true, message: '请至少选择一个配送方式', trigger: 'change'}
], ],
giftName: [ giftName: [
{ required: true, message: "礼品名称不能为空", trigger: "blur" }, {required: true, message: "礼品名称不能为空", trigger: "blur"},
], ],
coverImage: [ coverImage: [
{ required: true, message: "封面不能为空", trigger: "blur" }, {required: true, message: "封面不能为空", trigger: "blur"},
], ],
giftType: [ giftType: [
{ required: true, message: "礼品类型不能为空", trigger: "change" }, {required: true, message: "礼品类型不能为空", trigger: "change"},
], ],
couponId: [ couponId: [
{ required: true, message: "请选择优惠券", trigger: "blur" }, {required: true, message: "请选择优惠券", trigger: "blur"},
],
voucherId: [
{ required: true, message: "请选择兑换券", trigger: "blur" },
], ],
goodsId: [ goodsId: [
{ required: true, message: "请选择关联商品", trigger: "change" }, {required: true, message: "请选择关联商品", trigger: "change"},
], ],
giftQuantity: [ giftQuantity: [
{ required: true, message: "礼品数量不能为空", trigger: "blur" }, {required: true, message: "礼品数量不能为空", trigger: "blur"},
], ],
totalInventory: [ totalInventory: [
{ required: true, message: "礼品库存不能为空", trigger: "blur" }, {required: true, message: "礼品库存不能为空", trigger: "blur"},
], ],
exchangeMethod: [ exchangeMethod: [
{ required: true, message: "兑换方式不能为空", trigger: "blur" }, {required: true, message: "兑换方式不能为空", trigger: "blur"},
], ],
exchangePoints: [ exchangePoints: [
{ required: true, validator:valiNumberPass, trigger: "blur" }, {required: true, validator: valiNumberPass, trigger: "blur"},
], ],
exchangeAmount: [ exchangeAmount: [
{ required: true, validator:valiNumberPass, trigger: "blur" }, {required: true, validator: valiNumberPass, trigger: "blur"},
], ],
moneyRatio: [ moneyRatio: [
{ required: true, validator:valiNumberPass, trigger: "blur" }, {required: true, validator: valiNumberPass, trigger: "blur"},
], ],
expressShippingFee: [ expressShippingFee: [
{ required: true, message: "快递运费不能为空", trigger: "change" }, {required: true, message: "快递运费不能为空", trigger: "change"},
], ],
shippingFeeAmount: [ shippingFeeAmount: [
{ required: true, validator:valiNumberPass, trigger: "blur" }, {required: true, validator: valiNumberPass, trigger: "blur"},
], ],
market: [ market: [
{ required: true, validator:valiNumberPass, trigger: "blur" }, {required: true, validator: valiNumberPass, trigger: "blur"},
], ],
exchangeTimes: [ exchangeTimes: [
{ required: true, message: "兑换次数不能为空", trigger: "change" }, {required: true, message: "兑换次数不能为空", trigger: "change"},
], ],
sort: [ sort: [
{ required: true, message: "礼品排序不能为空", trigger: "blur" }, {required: true, message: "礼品排序不能为空", trigger: "blur"},
], ],
status: [ status: [
{ required: true, message: "请选择礼品状态", trigger: "change" }, {required: true, message: "请选择礼品状态", trigger: "change"},
], ],
}, },
commodityForm:{ commodityForm: {
cvsGoodId: "", cvsGoodId: "",
cvsGood: "", cvsGood: "",
supplierId: "", supplierId: "",
@ -162,72 +170,71 @@ props:['giftDataF','type'],
remark: "", remark: "",
page: 1, page: 1,
pageSize: 1000, pageSize: 1000,
isRecovery:0, isRecovery: 0,
status:"qy" status: "qy"
}, },
cvsGoodList:[], cvsGoodList: [],
// //
supplierList:[], supplierList: [],
} }
}, },
computed: {
selectedCoupon() {
return this.cardFavorableList.find(option => option.id === this.dataForm.couponId);
}
},
created() { created() {
console.log(33333333333333,this.giftDataF) console.log("参数", this.$route.params.giftDataF)
this.cardFavorableApi() if (this.$route.params.giftDataF) {
if (this.giftDataF) { //
this.init(this.giftDataF) this.dataForm = this.$route.params.giftDataF
this.init(this.dataForm)
} else { } else {
this.initadd() //
this.cardFavorableApi()
} }
}, },
methods: { // methods: {
handleCouponChange(newVal) {
console.log('新选择的优惠券对象:', this.selectedCoupon);
//
this.stock = this.selectedCoupon.tfTotal - this.selectedCoupon.tfGetNum;
//
this.dataForm.totalInventory = 1
},
//
async init(data) { async init(data) {
//
await this.cardFavorableApi(data);
await this.cardFavorableApi();
await this.cardExchangeApi();
await this.selectGiftCategory1(); await this.selectGiftCategory1();
//
this.getCommodityList(data);
this.giftImages = [] this.giftImages = []
data.giftImages = JSON.parse(data.giftImages); data.giftImages = JSON.parse(data.giftImages);
data.giftImages.forEach(res=> { data.giftImages.forEach(res => {
let newImage = { let newImage = {
url: this.imagePath + res, url: this.imagePath + res,
fileName: res fileName: res
} }
this.giftImages.push(newImage); this.giftImages.push(newImage);
}), }),
// data.deliveryMethod = JSON.parse(data.deliveryMethod);
console.log("data",data)
this.dataForm = data;
this.changeGiftType(this.dataForm.giftType) this.changeGiftType(this.dataForm.giftType)
this.changeExchange(this.dataForm.exchangeMethod) this.changeExchange(this.dataForm.exchangeMethod)
this.changeExpressEDIT() this.changeExpressEDIT()
}, },
initadd() {
this.changeGiftType("优惠券")
this.selectGiftCategory1();
this.cardFavorableApi();
this.cardExchangeApi();
this.$forceUpdate();
},
cancel() { cancel() {
this.$router.back(); this.$router.back();
}, },
submitForm: function() { submitForm: function () {
let this_ = this let this_ = this
// if (this.dataForm.deliveryMethod.length === 0) { // if (this.dataForm.deliveryMethod.length === 0) {
// this.$message.warning(''); // this.$message.warning('');
@ -260,36 +267,26 @@ props:['giftDataF','type'],
}) })
} }
}}) }
},
cardExchangeApi () {
getCardExchangeApi().then(res=>{
this.cardExchangeApiList =res.data.records
}) })
}, },
// //
selectGiftCategory1() { selectGiftCategory1() {
let queryParams = {pageSize : 1000} let queryParams = {pageSize: 1000}
getGiftCategoryApi(queryParams).then(response => { getGiftCategoryApi(queryParams).then(response => {
this.giftCategoryList = response.data.records; this.giftCategoryList = response.data.records;
}) })
}, },
// //
changeGiftType(newVal) { changeGiftType(newVal) {
console.log('新值', newVal)
let this_ = this let this_ = this
if (newVal == '优惠券') { if (newVal == '电子券') {
this_.showList.coupon = true this_.showList.coupon = true
this_.showList.voucher = false
this_.showList.goods = false this_.showList.goods = false
this_.showList.delivery = false this_.showList.delivery = false
} else if (newVal == '兑换券') { } else if (newVal == '实物商品') {
this_.showList.coupon = false this_.showList.coupon = false
this_.showList.voucher = true
this_.showList.goods = false
this_.showList.delivery = true
} else if(newVal == '实物商品') {
this_.showList.coupon = false
this_.showList.voucher = false
this_.showList.goods = true this_.showList.goods = true
this_.showList.delivery = true this_.showList.delivery = true
} }
@ -311,7 +308,7 @@ props:['giftDataF','type'],
this.dataForm.giftImages.push(file.data.fileName); this.dataForm.giftImages.push(file.data.fileName);
console.log("this.giftImage",this.giftImages) console.log("this.giftImage", this.giftImages)
console.log(" this.dataForm.giftImages", this.dataForm.giftImages) console.log(" this.dataForm.giftImages", this.dataForm.giftImages)
}, },
@ -333,8 +330,9 @@ props:['giftDataF','type'],
this.dataForm.giftImages.splice(index, 1); this.dataForm.giftImages.splice(index, 1);
} }
}) })
console.log("this.giftImage",this.giftImages) console.log("this.giftImage", this.giftImages)
console.log(" this.dataForm.giftImages", this.dataForm.giftImages) }, console.log(" this.dataForm.giftImages", this.dataForm.giftImages)
},
handlePictureCardPreview(file) { handlePictureCardPreview(file) {
console.log(file); console.log(file);
this.dialogImageUrl = file.url; this.dialogImageUrl = file.url;
@ -342,20 +340,19 @@ props:['giftDataF','type'],
}, },
handleChildValue(value) { handleChildValue(value) {
this.dataForm.detailedDescription = value this.dataForm.detailedDescription = value
}, },
// //
changeExpress(data,flag){ changeExpress(data, flag) {
let this_ = this let this_ = this
// express: false, // express: false,
// shippingFee: false // shippingFee: false
if(flag === 1) { if (flag === 1) {
if (!this.dataForm.deliveryMethod) { if (!this.dataForm.deliveryMethod) {
this.dataForm.deliveryMethod = []; this.dataForm.deliveryMethod = [];
this.showList.express= false this.showList.express = false
} }
if (!Array.isArray(this.dataForm.deliveryMethod)) { if (!Array.isArray(this.dataForm.deliveryMethod)) {
this.dataForm.deliveryMethod = JSON.parse(this.dataForm.deliveryMethod); this.dataForm.deliveryMethod = JSON.parse(this.dataForm.deliveryMethod);
@ -370,8 +367,8 @@ props:['giftDataF','type'],
// jsonArray.push(data) // jsonArray.push(data)
// this.dataForm.deliveryMethod = jsonArray // this.dataForm.deliveryMethod = jsonArray
if(data == '物流配送') { if (data == '物流配送') {
this.showList.express= true this.showList.express = true
} }
} else { } else {
this.dataForm.deliveryMethod.splice(index, 1) this.dataForm.deliveryMethod.splice(index, 1)
@ -379,43 +376,43 @@ props:['giftDataF','type'],
// jsonArray.splice(index, 1); // jsonArray.splice(index, 1);
// this.dataForm.deliveryMethod = JSON.stringify(jsonArray) // this.dataForm.deliveryMethod = JSON.stringify(jsonArray)
if(data == '物流配送') { if (data == '物流配送') {
this.showList.express= false this.showList.express = false
} }
} }
} else { } else {
if (data == '包邮') { if (data == '包邮') {
this.showList.shippingFee= false this.showList.shippingFee = false
} else if (data == '统一运费') { } else if (data == '统一运费') {
this.showList.shippingFee= true this.showList.shippingFee = true
} }
} }
}, },
// //
changeExpressEDIT(){ changeExpressEDIT() {
if (!this.dataForm.deliveryMethod) { if (!this.dataForm.deliveryMethod) {
this.dataForm.deliveryMethod = []; this.dataForm.deliveryMethod = [];
this.showList.express= false this.showList.express = false
} }
if(!this.dataForm.expressShippingFee) { if (!this.dataForm.expressShippingFee) {
this.dataForm.expressShippingFee= '' this.dataForm.expressShippingFee = ''
this.showList.shippingFee= false this.showList.shippingFee = false
} }
let this_ = this let this_ = this
if (!Array.isArray(this_.dataForm.deliveryMethod)) { if (!Array.isArray(this_.dataForm.deliveryMethod)) {
this_.dataForm.deliveryMethod = JSON.parse(this_.dataForm.deliveryMethod); this_.dataForm.deliveryMethod = JSON.parse(this_.dataForm.deliveryMethod);
} }
if (this_.dataForm.deliveryMethod && this_.dataForm.deliveryMethod.includes("物流配送")) { if (this_.dataForm.deliveryMethod && this_.dataForm.deliveryMethod.includes("物流配送")) {
this.showList.express= true this.showList.express = true
} }
if (this_.dataForm.expressShippingFee == "统一运费") { if (this_.dataForm.expressShippingFee == "统一运费") {
this.showList.shippingFee= true this.showList.shippingFee = true
} }
}, },
// //
changeExchange(newVal){ changeExchange(newVal) {
let this_ = this let this_ = this
if (newVal == '积分') { if (newVal == '积分') {
this_.showList.jf = true this_.showList.jf = true
@ -435,10 +432,16 @@ props:['giftDataF','type'],
this_.showList.jfjq = true this_.showList.jfjq = true
} }
}, },
cardFavorableApi () { cardFavorableApi(val) {
getCardFavorableApi().then(res=>{ getCardCoupon().then(res => {
this.cardFavorableList = res.data.records this.cardFavorableList = res.data
if (val.couponId) {
let obj = this.cardFavorableList.find(option => option.id == val.couponId)
this.stock = obj.tfTotal - obj.tfGetNum
console.log('当前库存', this.stock)
}
}) })
}, },
getCommodity() { getCommodity() {
this.getQueryList() this.getQueryList()
@ -446,17 +449,22 @@ props:['giftDataF','type'],
}, },
// //
getCommodityList(data) {
getCommodityList() {
let this_ = this let this_ = this
listLJGoods(this_.commodityForm).then(res=>{ listLJGoods(this_.commodityForm).then(res => {
this_.commodityList = res.data.records; this_.commodityList = res.data.records;
// this_.sumMethod(res.data.records); if (data.goodsId){
// this.total = response.data.total; let row = this.commodityList.find(option => option.id == data.goodsId)
this.dataForm.totalInventory = row.stock
this.stock = row.stock
this.dataForm.market = row.retailPrice
this.dataForm.goodsName = row.name
this.dataForm.goodsId = row.id
}
}) })
}, },
// //
getQueryList(){ getQueryList() {
selectTree().then(response => { selectTree().then(response => {
this.cvsGoodList = response.data.records this.cvsGoodList = response.data.records
}); });
@ -473,7 +481,7 @@ props:['giftDataF','type'],
this.$refs.tables.clearSelection(); // this.$refs.tables.clearSelection(); //
this.$refs.tables.toggleRowSelection(row); // this.$refs.tables.toggleRowSelection(row); //
// //
console.log("row",row) console.log("row", row)
// stock // stock
this.dataForm.totalInventory = row.stock this.dataForm.totalInventory = row.stock
this.stock = row.stock this.stock = row.stock
@ -487,7 +495,7 @@ props:['giftDataF','type'],
</script> </script>
<template> <template>
<div class="container1"> <div class="container1">
<div class="card-change" style="margin-top: 10px;"> <div class="card-change" style="margin-top: 10px;">
@ -524,40 +532,31 @@ props:['giftDataF','type'],
<el-form-item label="礼品类型" prop="giftType"> <el-form-item label="礼品类型" prop="giftType">
<el-radio-group v-model="dataForm.giftType" @change="changeGiftType($event)"> <el-radio-group v-model="dataForm.giftType" @change="changeGiftType($event)">
<el-radio <el-radio
v-for="dict in dict.type.lplx" v-for="dict in giftTypeOption"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
@change="handleIsopenSelect,changeGiftType"
/> />
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item v-if="showList.coupon" label="优惠券" prop="couponId"> <el-form-item v-if="showList.coupon" label="优惠券" prop="couponId">
<el-select v-model="dataForm.couponId" placeholder="请选择" style="width:100%"> <el-select v-model="dataForm.couponId" placeholder="请选择" style="width:100%"
@change="handleCouponChange">
<el-option <el-option
v-for="option in cardFavorableList" v-for="option in cardFavorableList"
:key="option.id" :key="option.id"
:label="(option.type==0?'油品券-':option.type==1?'商品券-':'优惠券-')+ option.name" :label="option.name"
:value="option.id" :value="option.id"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item v-if="showList.voucher" label="兑换券" prop="voucherId">
<el-select v-model="dataForm.voucherId" placeholder="请选择" style="width:100%">
<el-option
v-for="option in cardExchangeApiList"
:key="option.id"
:label="(option.type==0?'兑换券-':option.type==1?'洗车券-':'洗车卡-')+ option.name"
:value="option.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item v-if="showList.goods" label="关联商品" prop="goodsId"> <el-form-item v-if="showList.goods" label="关联商品" prop="goodsId">
<el-input v-model="dataForm.goodsName" placeholder="" maxlength="30" style="width:100%" @focus="getCommodity"/> <el-input v-model="dataForm.goodsName" placeholder="" maxlength="30" style="width:100%"
@focus="getCommodity"/>
<!-- </el-select> --> <!-- </el-select> -->
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -566,35 +565,39 @@ props:['giftDataF','type'],
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="商品库存" prop=""> <el-form-item label="当前库存" prop="">
<el-input v-model="stock" controls-position="right" :min="1" :max="10" label="" style="width:100%" :disabled="true"></el-input> <el-input v-model="stock" controls-position="right" :min="1" :max="10" label="" style="width:100%"
:disabled="true"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="礼品库存" prop="totalInventory"> <el-form-item label="礼品库存" prop="totalInventory">
<el-input :disabled="title === '修改礼品'" v-model.number="dataForm.totalInventory" placeholder="礼品库存" maxlength="30" style="width:100%"/> <el-input-number v-model.number="dataForm.totalInventory" :disabled="title === '修改礼品'"
controls-position="right" :min="0" :max="stock"></el-input-number>
<!-- <el-input :disabled="title === '修改礼品'" v-model.number="dataForm.totalInventory" placeholder="礼品库存" :min="1" :max="stock" maxlength="30" style="width:100%"/>-->
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<!-- <el-row :gutter="24">--> <!-- <el-row :gutter="24">-->
<!-- <el-col :span="12">--> <!-- <el-col :span="12">-->
<!-- <el-form-item label="商品库存" prop="">--> <!-- <el-form-item label="商品库存" prop="">-->
<!-- <el-input v-model="stock" controls-position="right" :min="1" :max="10" label="" style="width:100%" :disabled="true"></el-input>--> <!-- <el-input v-model="stock" controls-position="right" :min="1" :max="10" label="" style="width:100%" :disabled="true"></el-input>-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
<!-- </el-col>--> <!-- </el-col>-->
<!-- <el-col :span="12">--> <!-- <el-col :span="12">-->
<!-- <el-form-item label="礼品库存" prop="totalInventory">--> <!-- <el-form-item label="礼品库存" prop="totalInventory">-->
<!-- <el-input :disabled="title === '修改礼品'" v-model.number="dataForm.totalInventory" placeholder="礼品库存" maxlength="30" style="width:100%"/>--> <!-- <el-input :disabled="title === '修改礼品'" v-model.number="dataForm.totalInventory" placeholder="礼品库存" maxlength="30" style="width:100%"/>-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
<!-- </el-col>--> <!-- </el-col>-->
<!-- </el-row>--> <!-- </el-row>-->
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="市场价格" prop="market"> <el-form-item label="成本价" prop="market">
<el-input v-model="dataForm.market" placeholder="请输入市场价格" maxlength="30" style="width:100%"> <el-input v-model="dataForm.market" disabled maxlength="30" style="width:100%">
<template slot="append"></template></el-input> <template slot="append"></template>
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
@ -614,8 +617,9 @@ props:['giftDataF','type'],
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="礼品排序" prop="sort" > <el-form-item label="礼品排序" prop="sort">
<el-input-number v-model="dataForm.sort" :min="1" :max="10" label="" style="width:100%"></el-input-number> <el-input-number v-model="dataForm.sort" :min="1" :max="10" label=""
style="width:100%"></el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col v-if="showList.jf" :span="12"> <el-col v-if="showList.jf" :span="12">
@ -633,7 +637,7 @@ props:['giftDataF','type'],
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col v-if="showList.jfjq" :span="7"> <el-col v-if="showList.jfjq" :span="7">
<el-form-item label="加钱比例" prop="moneyRatio" > <el-form-item label="加钱比例" prop="moneyRatio">
<el-input v-model="dataForm.moneyRatio" placeholder="" maxlength="30" style="width:100%"> <el-input v-model="dataForm.moneyRatio" placeholder="" maxlength="30" style="width:100%">
<template slot="prepend">1积分=</template> <template slot="prepend">1积分=</template>
<template slot="append"></template> <template slot="append"></template>
@ -662,7 +666,7 @@ props:['giftDataF','type'],
</div> </div>
<div style="width: 35%;height: 550px;"> <div style="width: 35%;height: 550px;">
<el-form ref="form" :model="dataForm" :rules="rules" label-width="80px"> <el-form :model="dataForm" :rules="rules" label-width="80px">
<el-form-item label="封面图" prop="coverImage"> <el-form-item label="封面图" prop="coverImage">
<el-upload <el-upload
@ -683,7 +687,7 @@ props:['giftDataF','type'],
</el-upload> </el-upload>
</el-form-item> </el-form-item>
<el-form-item label="礼品图片" > <el-form-item label="礼品图片">
<el-upload <el-upload
:action="uploadAction" :action="uploadAction"
list-type="picture-card" list-type="picture-card"
@ -702,23 +706,26 @@ props:['giftDataF','type'],
</el-form-item> </el-form-item>
<el-form-item label="配送方式" style="margin-top: 50px" prop="deliveryMethod"> <el-form-item label="配送方式" style="margin-top: 50px" prop="deliveryMethod">
<el-checkbox v-for="item in dict.type.shippingMethod" :key="item.value" :label="item.label" :checked="dataForm.deliveryMethod != null?dataForm.deliveryMethod.includes(item.label):null" @change="changeExpress(item.label,1)">{{ item.label }}</el-checkbox> <el-checkbox v-for="item in dict.type.shippingMethod" :key="item.value" :label="item.label"
:checked="dataForm.deliveryMethod != null?dataForm.deliveryMethod.includes(item.label):null"
@change="changeExpress(item.label,1)">{{ item.label }}
</el-checkbox>
</el-form-item> </el-form-item>
<!-- <el-form-item label="快递运费" prop="expressShippingFee">--> <!-- <el-form-item label="快递运费" prop="expressShippingFee">-->
<!-- <el-radio-group v-model="dataForm.expressShippingFee" @change="changeExpress($event,2)">--> <!-- <el-radio-group v-model="dataForm.expressShippingFee" @change="changeExpress($event,2)">-->
<!-- <el-radio--> <!-- <el-radio-->
<!-- v-for="dict in dict.type.expressShippingCosts"--> <!-- v-for="dict in dict.type.expressShippingCosts"-->
<!-- :key="dict.value"--> <!-- :key="dict.value"-->
<!-- :label="dict.label"--> <!-- :label="dict.label"-->
<!-- @change="handleIsopenSelect"--> <!-- @change="handleIsopenSelect"-->
<!-- :value="dict.value"/>--> <!-- :value="dict.value"/>-->
<!-- </el-radio-group>--> <!-- </el-radio-group>-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
<!-- <el-form-item label="运费金额" prop="shippingFeeAmount">--> <!-- <el-form-item label="运费金额" prop="shippingFeeAmount">-->
<!-- <el-input v-model="dataForm.shippingFeeAmount" placeholder="" maxlength="30" style="width: 202px;" >--> <!-- <el-input v-model="dataForm.shippingFeeAmount" placeholder="" maxlength="30" style="width: 202px;" >-->
<!-- <template slot="append"></template>--> <!-- <template slot="append"></template>-->
<!-- </el-input>--> <!-- </el-input>-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
<el-form-item label="礼品状态" prop="status"> <el-form-item label="礼品状态" prop="status">
<el-radio-group v-model="dataForm.status"> <el-radio-group v-model="dataForm.status">
<el-radio <el-radio
@ -734,12 +741,13 @@ props:['giftDataF','type'],
</div> </div>
<el-form ref="form" :model="dataForm" :rules="rules" label-width="80px"> <el-form :model="dataForm" :rules="rules" label-width="80px">
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="23"> <el-col :span="23">
<el-form-item label="图文详情" prop="detailedDescription"> <el-form-item label="图文详情" prop="detailedDescription">
<editor @input="handleChildValue" :value.default="dataForm.detailedDescription" :height.default="150"></editor> <editor @input="handleChildValue" :value.default="dataForm.detailedDescription"
:height.default="150"></editor>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -780,7 +788,7 @@ props:['giftDataF','type'],
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="详细信息"> <el-form-item label="详细信息">
<el-input v-model="commodityForm.remark" placeholder="商品名称,拼音码,条形码等信息" ></el-input> <el-input v-model="commodityForm.remark" placeholder="商品名称,拼音码,条形码等信息"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
@ -825,7 +833,7 @@ props:['giftDataF','type'],
</div> --> </div> -->
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<style scoped lang="scss"> <style scoped lang="scss">
@ -834,28 +842,30 @@ props:['giftDataF','type'],
box-sizing: border-box; box-sizing: border-box;
padding: 20px; padding: 20px;
} }
.app-container{
.app-container {
width: 100%; width: 100%;
height: 100%; height: 100%;
background: #f6f8f9; background: #f6f8f9;
} }
.d-dialog >>> .el-upload--picture-card { .d-dialog > > > .el-upload--picture-card {
width: 100px; width: 100px;
height: 100px; height: 100px;
line-height: 100px; line-height: 100px;
} }
.d-dialog >>> .avatar-uploader .el-upload { .d-dialog > > > .avatar-uploader .el-upload {
width: 100px;
height: 100px;
}
.d-dialog >>> .el-upload-list--picture-card .el-upload-list__item {
width: 100px; width: 100px;
height: 100px; height: 100px;
} }
.list-img{ .d-dialog > > > .el-upload-list--picture-card .el-upload-list__item {
width: 100px;
height: 100px;
}
.list-img {
width: 98px; width: 98px;
height: 98px; height: 98px;
} }

View File

@ -142,10 +142,11 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- 分页 -->
<pagination <pagination
v-show="total>0" v-show="total>0"
:total="total" :total="total"
:page.sync="queryParams.page" :page.sync="queryParams.pageNo"
:limit.sync="queryParams.pageSize" :limit.sync="queryParams.pageSize"
@pagination="getList" @pagination="getList"
/> />
@ -652,8 +653,8 @@ export default {
queryParams: { queryParams: {
giftName: '', giftName: '',
status: '', status: '',
page:null, pageNo:1,
pageSize:null pageSize:10
}, },
dateRange:{}, dateRange:{},
// //
@ -905,7 +906,7 @@ export default {
}, },
// //
handleQuery() { handleQuery() {
this.queryParams.page = 1; this.queryParams.pageNo = 1;
this.getList(); this.getList();
}, },
// //
@ -919,48 +920,6 @@ export default {
} }
}); });
//
// await this.cardFavorableApi();
// await this.cardExchangeApi();
// await this.selectGiftCategory();
//
// this.giftImages = []
// data.giftImages = JSON.parse(data.giftImages);
// data.giftImages.forEach(res=> {
// let newImage = {
// url: this.imagePath + res,
// fileName: res
// }
// this.giftImages.push(newImage);
// }),
//
// // data.deliveryMethod = JSON.parse(data.deliveryMethod);
//
// console.log("data",data)
// this.dataForm = data;
// this.changeGiftType(this.dataForm.giftType)
// this.changeExchange(this.dataForm.exchangeMethod)
// this.changeExpressEDIT()
//
//
// console.log(" this.dataForm", this.dataForm)
// this.title = ''
//
// this.open = true;
// this.getList();
},
cardFavorableApi () {
getCardFavorableApi().then(res=>{
this.cardFavorableList = res.data.records
})
},
cardExchangeApi () {
getCardExchangeApi().then(res=>{
this.cardExchangeApiList =res.data.records
})
}, },
resetQuery() { resetQuery() {

View File

@ -68,7 +68,8 @@ public class IntegralGiftServiceImpl implements IntegralGiftService {
public IPage<IntegralGiftVO> queryByPage(@Param("page") Page page, @Param("integralGiftCategory") IntegralGift integralGift) { public IPage<IntegralGiftVO> queryByPage(@Param("page") Page page, @Param("integralGiftCategory") IntegralGift integralGift) {
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo(); AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
integralGift.setStoreId(nowAccountInfo.getStoreId()); integralGift.setStoreId(nowAccountInfo.getStoreId());
return integralGiftDao.queryAllByLimit(page, integralGift); IPage<IntegralGiftVO> integralGiftVOIPage = integralGiftDao.queryAllByLimit(page, integralGift);
return integralGiftVOIPage;
} }

View File

@ -65,6 +65,7 @@ public class CardCouponUserController extends BaseController {
*/ */
@PostMapping @PostMapping
public ResponseObject insert(@RequestBody CardCouponUser cardCouponUser) { public ResponseObject insert(@RequestBody CardCouponUser cardCouponUser) {
return getSuccessResult(this.cardCouponUserService.save(cardCouponUser)); return getSuccessResult(this.cardCouponUserService.save(cardCouponUser));
} }
@ -97,5 +98,18 @@ public class CardCouponUserController extends BaseController {
Page page =new Page(pageNo,pageSize); Page page =new Page(pageNo,pageSize);
return getSuccessResult(cardCouponUserService.queryPage(page, cardCouponUserVo)); return getSuccessResult(cardCouponUserService.queryPage(page, cardCouponUserVo));
} }
/**
* 根据 手机号 核销码 当前店铺id 以及 优惠券类型 兑换券 商品兑换券 来查询用户领取 并且 未核销的
* @param str 手机号 / 核销码
*/
@GetMapping ("selectUserCardVerification")
public ResponseObject selectUserCardVerification(String str,@RequestParam (name = "couponType", required = false, defaultValue = "1,2") Integer[] couponType) {
List<CardCouponUser> list = cardCouponUserService.selectUserCardVerification(str, couponType);
return getSuccessResult(list);
}
} }

View File

@ -59,5 +59,9 @@ public interface CardCouponUserService extends IService<CardCouponUser> {
* @return java.util.List<com.fuint.business.marketingActivity.cardCoupon.entity.CardCouponUser> * @return java.util.List<com.fuint.business.marketingActivity.cardCoupon.entity.CardCouponUser>
**/ **/
List<CardCouponUser> selectListByUsed(Integer userId,List<Integer> couponIdList); List<CardCouponUser> selectListByUsed(Integer userId,List<Integer> couponIdList);
List<CardCouponUser> selectUserCardVerification(String str, Integer[] couponType);
} }

View File

@ -171,5 +171,10 @@ public class CardCouponUserServiceImpl extends ServiceImpl<CardCouponUserMapper,
.eq(CardCouponUser::getStatus,"1"); .eq(CardCouponUser::getStatus,"1");
return this.list(queryWrapper); return this.list(queryWrapper);
} }
@Override
public List<CardCouponUser> selectUserCardVerification(String str, Integer[] couponType) {
return null;
}
} }

View File

@ -44,7 +44,7 @@ public class CardExchangeRecordServiceImpl extends ServiceImpl<CardExchangeRecor
*/ */
@Override @Override
public IPage select(Page page, CardExchangeRecord cardExchangeRecord) { public IPage select(Page page, CardExchangeRecord cardExchangeRecord) {
//获取当前店铺的id和连锁店id // 根据 手机号 核销码 当前店铺id 以及 优惠券类型 兑换券 商品兑换券 来查询用户领取 并且 未核销的
if (ObjectUtils.isNotEmpty(TokenUtil.getNowAccountInfo().getStoreId())) { if (ObjectUtils.isNotEmpty(TokenUtil.getNowAccountInfo().getStoreId())) {
cardExchangeRecord.setStoreId(TokenUtil.getNowAccountInfo().getStoreId()); cardExchangeRecord.setStoreId(TokenUtil.getNowAccountInfo().getStoreId());
cardExchangeRecord.setChainStorId(storeService.getById(TokenUtil.getNowAccountInfo().getStoreId()).getChainStoreId()); cardExchangeRecord.setChainStorId(storeService.getById(TokenUtil.getNowAccountInfo().getStoreId()).getChainStoreId());

View File

@ -29,10 +29,10 @@ public class CardGiftActive extends Model<CardGiftActive> {
//礼品卡金额 //礼品卡金额
private Double cardAmount; private Double cardAmount;
//有效期开始时间 //有效期开始时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
private Date effectiveTimeStart; private Date effectiveTimeStart;
//有效期结束时间 //有效期结束时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
private Date effectiveTimeEnd; private Date effectiveTimeEnd;
//卡类型比如纸卡 使用数据字典 card_gift_type //卡类型比如纸卡 使用数据字典 card_gift_type
private String cardType; private String cardType;

View File

@ -122,9 +122,9 @@ public class CreditUnitServiceImpl extends ServiceImpl<CreditUnitMapper, CreditU
LJStore store = storeService.selectStoreByStoreId(nowAccountInfo.getStoreId()); LJStore store = storeService.selectStoreByStoreId(nowAccountInfo.getStoreId());
creditUnit.setStoreId(store.getId()); creditUnit.setStoreId(store.getId());
creditUnit.setChainStoreId(store.getChainStoreId()); creditUnit.setChainStoreId(store.getChainStoreId());
if (creditUnit.getStaffId()==null){ // if (creditUnit.getStaffId()==null){
creditUnit.setStaffId(nowAccountInfo.getId()); // creditUnit.setStaffId(nowAccountInfo.getId());
} // }
// 查询挂账单位是否存在 // 查询挂账单位是否存在
QueryWrapper queryWrapper = new QueryWrapper<>(); QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("unit_name",creditUnit.getUnitName()); queryWrapper.eq("unit_name",creditUnit.getUnitName());

View File

@ -3,12 +3,16 @@
<div class="app-containerss"> <div class="app-containerss">
<div class="tab-box"> <div class="tab-box">
<div class="tab_" :class="{active:index== tabindex }" @click="getindex(index)" v-for="(item,index) in tabs" :key="index"> <div class="tab_" :class="{active:index== tabindex }" @click="getindex(index)" v-for="(item,index) in tabs"
{{item}} :key="index"
>
{{ item }}
</div> </div>
</div> </div>
<div v-if="tabindex == 0"> <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 :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="100px">
<el-form-item label="" prop="status"> <el-form-item label="" prop="status">
<el-select v-model="queryParams.status" style="width: 230px" placeholder="交班方式" clearable> <el-select v-model="queryParams.status" style="width: 230px" placeholder="交班方式" clearable>
@ -17,7 +21,9 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="" prop="staffId"> <el-form-item label="" prop="staffId">
<el-select v-model="queryParams.staffId" style="width: 230px" placeholder="交班员工" clearable :disabled="queryParams.status== '统一交班'" > <el-select v-model="queryParams.staffId" style="width: 230px" placeholder="交班员工" clearable
:disabled="queryParams.status== '统一交班'"
>
<el-option <el-option
v-for="option in staffList" v-for="option in staffList"
:key="option.id" :key="option.id"
@ -27,12 +33,18 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item class="flex-container" style="float: right"> <el-form-item class="flex-container" style="float: right">
<el-button type="primary" icon="el-icon-search" @click="handleQuery" :disabled="queryParams.staffId == null" >搜索</el-button> <el-button type="primary" icon="el-icon-search" @click="handleQuery"
:disabled="queryParams.staffId == null"
>搜索
</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<div style="width: 25%; margin: 0 auto; margin-top: 10px; margin-bottom: 10px; background: #FFFFFF;box-sizing: border-box;padding: 15px; height: 78vh;" class="b-c-ad"> <div
style="width: 25%; margin: 0 auto; margin-top: 10px; margin-bottom: 10px; background: #FFFFFF;box-sizing: border-box;padding: 15px; height: 78vh;"
class="b-c-ad"
>
<div class="title_" style="display: flex;justify-content: space-between"> <div class="title_" style="display: flex;justify-content: space-between">
<div style="width: 10%;"></div> <div style="width: 10%;"></div>
<div>门店交接单</div> <div>门店交接单</div>
@ -40,35 +52,35 @@
</div> </div>
<div class="d-s-b"> <div class="d-s-b">
<div>油站名称</div> <div>油站名称</div>
<div>{{baseInfo.storeName}}</div> <div>{{ baseInfo.storeName }}</div>
</div> </div>
<div class="d-s-b"> <div class="d-s-b">
<div>油站站长</div> <div>油站站长</div>
<div>{{baseInfo.realName}}</div> <div>{{ baseInfo.realName }}</div>
</div> </div>
<div class="d-s-b"> <div class="d-s-b">
<div>交班方式</div> <div>交班方式</div>
<div>{{baseInfo.handoverType}}</div> <div>{{ baseInfo.handoverType }}</div>
</div> </div>
<div class="d-s-b"> <div class="d-s-b">
<div>开始时间</div> <div>开始时间</div>
<div>{{baseInfo.startTime}}</div> <div>{{ baseInfo.startTime }}</div>
</div> </div>
<div class="d-s-b"> <div class="d-s-b">
<div>结束时间</div> <div>结束时间</div>
<div>{{baseInfo.endTime}}</div> <div>{{ baseInfo.endTime }}</div>
</div> </div>
<div class="d-s-b"> <div class="d-s-b">
<div>订单金额</div> <div>订单金额</div>
<div>{{orderSummary.oilOrder}}</div> <div>{{ orderSummary.oilOrder }}</div>
</div> </div>
<div class="d-s-b"> <div class="d-s-b">
<div>优惠金额</div> <div>优惠金额</div>
<div>{{orderSummary.allDis}}</div> <div>{{ orderSummary.allDis }}</div>
</div> </div>
<div class="d-s-b"> <div class="d-s-b">
<div>退款金额</div> <div>退款金额</div>
<div>{{orderSummary.oilRefund}}</div> <div>{{ orderSummary.oilRefund }}</div>
</div> </div>
<div class="d-s-b"> <div class="d-s-b">
<div>挂账金额</div> <div>挂账金额</div>
@ -76,27 +88,27 @@
</div> </div>
<div class="d-s-b"> <div class="d-s-b">
<div>会员消费</div> <div>会员消费</div>
<div>{{orderSummary.allBalanceP}}</div> <div>{{ orderSummary.allBalanceP }}</div>
</div> </div>
<div class="d-s-b"> <div class="d-s-b">
<div>实收金额</div> <div>实收金额</div>
<div>{{orderSummary.allMoney}}</div> <div>{{ orderSummary.allMoney }}</div>
</div> </div>
<div class="d-s-b"> <div class="d-s-b">
<div>充值金额</div> <div>充值金额</div>
<div>{{orderSummary.cardPaid}}</div> <div>{{ orderSummary.cardPaid }}</div>
</div> </div>
<div class="d-s-b"> <div class="d-s-b">
<div>充值赠送</div> <div>充值赠送</div>
<div>{{orderSummary.cardGiftPaid}}</div> <div>{{ orderSummary.cardGiftPaid }}</div>
</div> </div>
<div class="d-s-b"> <div class="d-s-b">
<div>会员总余额</div> <div>会员总余额</div>
<div>{{orderSummary.points}}</div> <div>{{ orderSummary.points }}</div>
</div> </div>
<div class="d-s-b"> <div class="d-s-b">
<div>会员总积分</div> <div>会员总积分</div>
<div>{{orderSummary.sumnum}}</div> <div>{{ orderSummary.sumnum }}</div>
</div> </div>
<div class="xxing"></div> <div class="xxing"></div>
<div style="overflow: auto; height: 32vh;scrollbar-width: none; "> <div style="overflow: auto; height: 32vh;scrollbar-width: none; ">
@ -113,18 +125,18 @@
</div> </div>
<div class="d-s-b"> <div class="d-s-b">
<div class="l-size">营业总额</div> <div class="l-size">营业总额</div>
<div class="s-size">{{orderSummary.allyingye1}}</div> <div class="s-size">{{ orderSummary.allyingye1 }}</div>
<div class="r-size">{{orderSummary.allyingye}}</div> <div class="r-size">{{ orderSummary.allyingye }}</div>
</div> </div>
<div class="d-s-b"> <div class="d-s-b">
<div class="l-size">充值总额</div> <div class="l-size">充值总额</div>
<div class="s-size">{{orderSummary.allchuzhika1}}</div> <div class="s-size">{{ orderSummary.allchuzhika1 }}</div>
<div class="r-size">{{orderSummary.allchuzhika}}</div> <div class="r-size">{{ orderSummary.allchuzhika }}</div>
</div> </div>
<div class="d-s-b"> <div class="d-s-b">
<div class="l-size">合计</div> <div class="l-size">合计</div>
<div class="s-size">{{orderSummary.allyingye1 + orderSummary.allchuzhika1}}</div> <div class="s-size">{{ orderSummary.allyingye1 + orderSummary.allchuzhika1 }}</div>
<div class="r-size">{{orderSummary.allyingye + orderSummary.allchuzhika}}</div> <div class="r-size">{{ orderSummary.allyingye + orderSummary.allchuzhika }}</div>
</div> </div>
</div> </div>
@ -141,9 +153,9 @@
<div class="r-size">实收金额</div> <div class="r-size">实收金额</div>
</div> </div>
<div class="d-s-b" v-for="item in paymentAggregation" v-if="item.flag == 'all'"> <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="l-size">{{ calculateThePaymentMethod(item.payType) }}</div>
<div class="s-size">{{item.numberOfDeals}}</div> <div class="s-size">{{ item.numberOfDeals }}</div>
<div class="r-size">{{item.paidAmount}}</div> <div class="r-size">{{ item.paidAmount }}</div>
</div> </div>
</div> </div>
@ -159,9 +171,9 @@
<div class="r-size">实收金额</div> <div class="r-size">实收金额</div>
</div> </div>
<div class="d-s-b" v-for="item in oilNumberStatistics"> <div class="d-s-b" v-for="item in oilNumberStatistics">
<div class="l-size">{{item.oilName}}</div> <div class="l-size">{{ item.oilName }}</div>
<div class="s-size">{{item.numberOfDeals}}</div> <div class="s-size">{{ item.numberOfDeals }}</div>
<div class="r-size">{{item.paidAmount}}</div> <div class="r-size">{{ item.paidAmount }}</div>
</div> </div>
</div> </div>
@ -177,9 +189,9 @@
<div class="r-size">实收金额</div> <div class="r-size">实收金额</div>
</div> </div>
<div class="d-s-b" v-for="item in oilNumberStatistics"> <div class="d-s-b" v-for="item in oilNumberStatistics">
<div class="l-size">{{item.oilName}}</div> <div class="l-size">{{ item.oilName }}</div>
<div class="s-size">{{item.numberOfDeals}}</div> <div class="s-size">{{ item.numberOfDeals }}</div>
<div class="r-size">{{item.paidAmount}}</div> <div class="r-size">{{ item.paidAmount }}</div>
</div> </div>
</div> </div>
@ -195,9 +207,9 @@
<div class="r-size">实收金额</div> <div class="r-size">实收金额</div>
</div> </div>
<div class="d-s-b" v-for="item in oilNumberStatistics"> <div class="d-s-b" v-for="item in oilNumberStatistics">
<div class="l-size">{{item.oilName}}</div> <div class="l-size">{{ item.oilName }}</div>
<div class="s-size">{{item.numberOfDeals}}</div> <div class="s-size">{{ item.numberOfDeals }}</div>
<div class="r-size">{{item.paidAmount}}</div> <div class="r-size">{{ item.paidAmount }}</div>
</div> </div>
</div> </div>
@ -213,10 +225,12 @@
<div class="f-size">笔数</div> <div class="f-size">笔数</div>
<div class="r-size">实收金额</div> <div class="r-size">实收金额</div>
</div> </div>
<div class="d-s-b" v-for="item in paymentAggregation" v-if="item.flag == 'all' && item.payType == 'balance'"> <div class="d-s-b" v-for="item in paymentAggregation"
<div class="l-size">{{item.name}}</div> v-if="item.flag == 'all' && item.payType == 'balance'"
<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>
</div> </div>
@ -232,9 +246,9 @@
<div class="r-size">实收金额</div> <div class="r-size">实收金额</div>
</div> </div>
<div class="d-s-b" v-for="item in paymentAggregation" v-if="item.flag == 'allbalance'"> <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="l-size">{{ calculateThePaymentMethod(item.payType) }}</div>
<div class="s-size">{{item.numberOfDeals?item.numberOfDeals:'--'}}</div> <div class="s-size">{{ item.numberOfDeals ? item.numberOfDeals : '--' }}</div>
<div class="r-size">{{item.paidAmount?item.paidAmount:'--'}}</div> <div class="r-size">{{ item.paidAmount ? item.paidAmount : '--' }}</div>
</div> </div>
</div> </div>
@ -249,10 +263,12 @@
<div class="f-size">笔数</div> <div class="f-size">笔数</div>
<div class="r-size">实收金额</div> <div class="r-size">实收金额</div>
</div> </div>
<div class="d-s-b" v-for="item in paymentAggregation" v-if="item.flag == 'all' && item.payType == 'balance'"> <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="l-size">合计</div>
<div class="s-size">{{item.numberOfDeals?item.numberOfDeals:'--'}}</div> <div class="s-size">{{ item.numberOfDeals ? item.numberOfDeals : '--' }}</div>
<div class="r-size">{{item.paidAmount?item.paidAmount:'--'}}</div> <div class="r-size">{{ item.paidAmount ? item.paidAmount : '--' }}</div>
</div> </div>
</div> </div>
@ -268,9 +284,9 @@
<div class="r-size">实收金额</div> <div class="r-size">实收金额</div>
</div> </div>
<div class="d-s-b" v-for="item in paymentAggregation" v-if="item.flag == 'goods'"> <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="l-size">{{ calculateThePaymentMethod(item.payType) }}</div>
<div class="s-size">{{item.numberOfDeals?item.numberOfDeals:'--'}}</div> <div class="s-size">{{ item.numberOfDeals ? item.numberOfDeals : '--' }}</div>
<div class="r-size">{{item.paidAmount?item.paidAmount:'--'}}</div> <div class="r-size">{{ item.paidAmount ? item.paidAmount : '--' }}</div>
</div> </div>
</div> </div>
@ -287,9 +303,9 @@
<div class="r-size">实收金额</div> <div class="r-size">实收金额</div>
</div> </div>
<div class="d-s-b" v-for="item in paymentAggregation" v-if="item.flag == 'point'"> <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="l-size">{{ calculateThePaymentMethod(item.payType) }}</div>
<div class="s-size">{{item.numberOfDeals?item.numberOfDeals:'--'}}</div> <div class="s-size">{{ item.numberOfDeals ? item.numberOfDeals : '--' }}</div>
<div class="r-size">{{item.paidAmount?item.paidAmount:'--'}}</div> <div class="r-size">{{ item.paidAmount ? item.paidAmount : '--' }}</div>
</div> </div>
</div> </div>
@ -303,7 +319,7 @@
<div class="d-s-b" style="font-weight: 600"> <div class="d-s-b" style="font-weight: 600">
<div class="l-size">新增会员数</div> <div class="l-size">新增会员数</div>
<!-- <div class="f-size">笔数</div>--> <!-- <div class="f-size">笔数</div>-->
<div class="r-size">{{orderSummary.sumnum}}</div> <div class="r-size">{{ orderSummary.sumnum }}</div>
</div> </div>
</div> </div>
@ -321,9 +337,9 @@
<div class="r-size">实收金额</div> <div class="r-size">实收金额</div>
</div> </div>
<div class="d-s-b" v-for="item in returnedToTheAccount"> <div class="d-s-b" v-for="item in returnedToTheAccount">
<div class="l-size">{{item.name?item.name:'--'}}</div> <div class="l-size">{{ item.name ? item.name : '--' }}</div>
<div class="s-size">{{item.numberOfDeals?item.numberOfDeals:'--'}}</div> <div class="s-size">{{ item.numberOfDeals ? item.numberOfDeals : '--' }}</div>
<div class="r-size">{{item.paidAmount?item.paidAmount:'--'}}</div> <div class="r-size">{{ item.paidAmount ? item.paidAmount : '--' }}</div>
</div> </div>
</div> </div>
@ -339,14 +355,16 @@
<div class="r-size">实收金额</div> <div class="r-size">实收金额</div>
</div> </div>
<div class="d-s-b" v-for="item in employeeStatistics"> <div class="d-s-b" v-for="item in employeeStatistics">
<div class="l-size">{{item.name?item.name:'--'}}</div> <div class="l-size">{{ item.name ? item.name : '--' }}</div>
<div class="s-size">{{item.numberOfDeals?item.numberOfDeals:'--'}}</div> <div class="s-size">{{ item.numberOfDeals ? item.numberOfDeals : '--' }}</div>
<div class="r-size">{{item.paidAmount?item.paidAmount:'--'}}</div> <div class="r-size">{{ item.paidAmount ? item.paidAmount : '--' }}</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div style="width: 98%; margin: 10px auto;display: flex;align-items: center;justify-content: center; background: #fff;box-sizing: border-box;padding: 15px " > <div
style="width: 98%; margin: 10px 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> <el-button type="primary" @click="shift()">交班</el-button>
</div> </div>
</div> </div>
@ -355,7 +373,7 @@
</div> </div>
<el-dialog title="订单详情" :visible.sync="openDetail" width="600px" append-to-body :close-on-click-modal="false"> <el-dialog title="订单详情" :visible.sync="openDetail" width="600px" append-to-body :close-on-click-modal="false">
<!-- <detail :dataForm = "recordData"></detail>--> <!-- <detail :dataForm = "recordData"></detail>-->
<HandoverOnly :recordData = "recordData"></HandoverOnly> <HandoverOnly :recordData="recordData"></HandoverOnly>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
@ -368,42 +386,42 @@ import {
getStatisticsApi, getStatisticsApi,
getDicts, getDicts,
listStaff listStaff
} from "@/api/handover/handover"; } from '@/api/handover/handover'
import HandoverOnly from "@/views/cashier/NewComponents/HandoverOnly.vue"; import HandoverOnly from '@/views/cashier/NewComponents/HandoverOnly.vue'
import HandoverRecord from "@/views/cashier/NewComponents/HandoverRecord.vue"; import HandoverRecord from '@/views/cashier/NewComponents/HandoverRecord.vue'
export default { export default {
name: "pointsCashier", name: 'pointsCashier',
components: {HandoverRecord, HandoverOnly}, components: { HandoverRecord, HandoverOnly },
// dicts: ['zhzt'], // dicts: ['zhzt'],
data() { data() {
return { return {
tabs:[ tabs: [
"交接班", '交接班',
"交班记录" '交班记录'
], ],
value:'', value: '',
tabindex:0, tabindex: 0,
openDetail:false, openDetail: false,
dataForm:{}, dataForm: {},
dataList:[], dataList: [],
recordData:'', recordData: '',
zhztList:'', zhztList: '',
shiftHandoverList:'', shiftHandoverList: '',
handoverList : {}, handoverList: {},
handoverData:{}, handoverData: {},
baseInfo:{}, baseInfo: {},
billingDetails:[], billingDetails: [],
employeeStatistics:[], employeeStatistics: [],
greaseGunStatistics:[], greaseGunStatistics: [],
oilNumberStatistics:[], oilNumberStatistics: [],
orderSummary:{}, orderSummary: {},
paymentAggregation:[], paymentAggregation: [],
returnedToTheAccount:[], returnedToTheAccount: [],
// base // base
queryParams: { queryParams: {
@ -411,37 +429,51 @@ export default {
status: '统一交班', status: '统一交班',
type: '', type: '',
page:null, page: null,
pageSize:null pageSize: null
}, },
loading: false, loading: false,
dateRange: [new Date(),new Date()], dateRange: [new Date(), new Date()],
beginTime:new Date(), beginTime: new Date(),
endTime:new Date(), endTime: new Date(),
defaultSort: {prop: 'createTime', order: 'descending'}, defaultSort: { prop: 'createTime', order: 'descending' },
total: 0, total: 0,
staffList:[], staffList: [],
statisticsForm: { statisticsForm: {
num:0, num: 0,
exchangeQuantity:0, exchangeQuantity: 0,
integral:0, integral: 0,
amount:0 amount: 0
} }
} }
}, },
created() { created() {
this.getList(); this.getList()
this.getHandover(); this.getHandover()
this.getStatistics(); this.getStatistics()
this.getStatus(); this.getStatus()
this.getStaffList(); this.getStaffList()
},
watch: {
'queryParams.status': {
handler(newVal, oldVal) {
if (newVal == '统一交班') {
this.queryParams.staffId = null
this.getList()
this.getHandover()
}
},
immediate: false, //
deep: false //
}
}, },
methods: { methods: {
getHandover() { getHandover() {
getHandoverApi2(this.queryParams).then(res=>{ getHandoverApi2(this.queryParams).then(res => {
// this.handoverList = res.data; // this.handoverList = res.data;
this.handoverData = res.data; this.handoverData = res.data
this.baseInfo = this.handoverData.baseInfo, this.baseInfo = this.handoverData.baseInfo,
this.billingDetails = this.handoverData.billingDetails, this.billingDetails = this.handoverData.billingDetails,
this.employeeStatistics = this.handoverData.employeeStatistics, this.employeeStatistics = this.handoverData.employeeStatistics,
@ -450,43 +482,49 @@ export default {
this.orderSummary = this.handoverData.orderSummary, this.orderSummary = this.handoverData.orderSummary,
this.paymentAggregation = this.handoverData.paymentAggregation, this.paymentAggregation = this.handoverData.paymentAggregation,
this.returnedToTheAccount = this.handoverData.returnedToTheAccount, this.returnedToTheAccount = this.handoverData.returnedToTheAccount,
console.log("this.handoverList",this.handoverList) console.log('this.handoverList', this.handoverList)
}) })
}, }
,
getindex(index){ getindex(index) {
this.tabindex = index this.tabindex = index
}, }
getList(){ ,
getList() {
this.dateRange = [] this.dateRange = []
if (this.beginTime && this.endTime) { if (this.beginTime && this.endTime) {
this.dateRange.push(this.beginTime.toLocaleDateString()) this.dateRange.push(this.beginTime.toLocaleDateString())
this.dateRange.push(this.endTime.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.dataList = res.data.records
this.total = res.data.total this.total = res.data.total
}) })
}, }
,
getStatistics() { getStatistics() {
getStatisticsApi().then(res=>{ getStatisticsApi().then(res => {
this.statisticsForm = res.data this.statisticsForm = res.data
}) })
console.log("123123123",this.statisticsForm) console.log('123123123', this.statisticsForm)
}, }
,
// //
getZhzt() { getZhzt() {
getDicts("zhzt").then(response => { getDicts('zhzt').then(response => {
this.zhztList = response.data; this.zhztList = response.data
}) })
}, }
,
getStatus() { getStatus() {
getDicts("handover").then(response => { getDicts('handover').then(response => {
this.shiftHandoverList = response.data; this.shiftHandoverList = response.data
}) })
}, }
,
// //
async shift() { async shift() {
let msg = '交班, 是否继续?' let msg = '交班, 是否继续?'
@ -518,87 +556,100 @@ export default {
// location.href = '/'; // location.href = '/';
// }) // })
} }
this.getHandover(); this.getHandover()
}) })
}) })
}, }
handleUpdate(){}, ,
handleQuery(){ handleUpdate() {
this.getList(); }
this.getHandover(); ,
}, handleQuery() {
this.getList()
this.getHandover()
}
,
getStaffList() { getStaffList() {
listStaff(this.addDateRange({ page: 1, listStaff(this.addDateRange({
pageSize: 10000})).then(response => { page: 1,
this.staffList = response.data.records; pageSize: 10000
})).then(response => {
this.staffList = response.data.records
} }
); )
}, }
resetQuery(){ ,
resetQuery() {
this.queryParams = { this.queryParams = {
giftName: '', giftName: '',
status: '统一交班', status: '统一交班',
mobile: '', mobile: '',
orderNumber: '', orderNumber: '',
page:1, page: 1,
pageSize:10 pageSize: 10
}, },
this.dateRange = [] this.dateRange = []
this.beginTime = ""; this.beginTime = ''
this.endTime = "" this.endTime = ''
this.getList(); this.getList()
}, }
,
printLocally(data) { printLocally(data) {
printLocallyApi(data).then(res=>{ printLocallyApi(data).then(res => {
}) })
}, }
handleDetail(data){ ,
handleDetail(data) {
this.openDetail = true this.openDetail = true
this.recordData = data.recordData; this.recordData = data.recordData
// JSON.parse(this.recordData ) // JSON.parse(this.recordData )
console.log("data.recordData;",this.recordData) console.log('data.recordData;', this.recordData)
}, }
,
goToAbout() { goToAbout() {
this.$router.push({ this.$router.push({
path:'/Handover', path: '/Handover',
query:{ query: {
id:9 id: 9
} }
}); })
}, }
,
billingDetails1() { billingDetails1() {
let count = []; let count = []
if (this.billingDetails) { if (this.billingDetails) {
return this.billingDetails return this.billingDetails
} }
return count; return count
}, }
,
calculateThePaymentMethod(payType) { calculateThePaymentMethod(payType) {
switch (payType) { switch (payType) {
case 'ALIPAY': case 'ALIPAY':
return '支付宝' return '支付宝'
break; break
case 'WECHAT': case 'WECHAT':
return '微信' return '微信'
break; break
case 'UNIONPAY': case 'UNIONPAY':
return '银联二维码' return '银联二维码'
break; break
case 'CASH': case 'CASH':
return '现金' return '现金'
break; break
case 'balance': case 'balance':
return '余额' return '余额'
break; break
case 'oilCard': case 'oilCard':
return '油卡' return '油卡'
break; break
} }
return '未知' return '未知'
}, }
} }
} }
</script> </script>
@ -613,7 +664,8 @@ export default {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
} }
.tab-box{
.tab-box {
width: 100%; width: 100%;
background: #fff; background: #fff;
display: flex; display: flex;
@ -622,10 +674,12 @@ export default {
padding-bottom: 0px; padding-bottom: 0px;
border-top: 1px solid #eceff1; border-top: 1px solid #eceff1;
} }
.box_{
.box_ {
height: 100%; height: 100%;
border-bottom: 2px solid #fe9554; border-bottom: 2px solid #fe9554;
} }
.box { .box {
padding: 10px; padding: 10px;
height: 80px; height: 80px;
@ -639,25 +693,29 @@ export default {
align-items: left; align-items: left;
text-align: left; text-align: left;
} }
.box-card{
.box-card {
width: 640px; width: 640px;
margin: 0 auto; margin: 0 auto;
margin-bottom: 15px; margin-bottom: 15px;
} }
.font-chinese { .font-chinese {
font-size: 15px; font-size: 15px;
font-family:Microsoft YaHei; font-family: Microsoft YaHei;
font-weight: bold; font-weight: bold;
line-height:1.5 line-height: 1.5
} }
.font-number { .font-number {
font-size: 20px; font-size: 20px;
font-family: PingFang SC,sans-serif; font-family: PingFang SC, sans-serif;
font-weight: bold; font-weight: bold;
line-height:1.3 line-height: 1.3
} }
.table-box{
.table-box {
width: 100%; width: 100%;
} }
@ -668,11 +726,12 @@ export default {
flex-wrap: nowrap; /* 确保不换行 */ flex-wrap: nowrap; /* 确保不换行 */
width: 100%; /* 让父容器占满可用宽度 */ width: 100%; /* 让父容器占满可用宽度 */
} }
.el-form--inline .el-form-item { .el-form--inline .el-form-item {
} }
.tab_{ .tab_ {
width: 75px; width: 75px;
height: 40px; height: 40px;
//border-bottom: 2px solid #FF770F; //border-bottom: 2px solid #FF770F;
@ -685,17 +744,20 @@ export default {
margin-left: 50px; margin-left: 50px;
cursor: pointer; cursor: pointer;
} }
.active{
.active {
border-bottom: 2px solid #FF770F !important; border-bottom: 2px solid #FF770F !important;
color: #FF770F !important; color: #FF770F !important;
} }
.title_{
.title_ {
text-align: center; text-align: center;
font-weight: 600; font-weight: 600;
font-size: 16px; font-size: 16px;
color: #333333; color: #333333;
} }
.d-s-b{
.d-s-b {
width: 100%; width: 100%;
display: flex; display: flex;
align-items: center; align-items: center;
@ -705,15 +767,18 @@ export default {
color: #333333; color: #333333;
margin: 5px auto; margin: 5px auto;
} }
.xxing{
.xxing {
width: 100%; width: 100%;
border-bottom: 1px solid #EEEEEE; border-bottom: 1px solid #EEEEEE;
} }
.for-box{
.for-box {
width: 100%; width: 100%;
margin: 20px auto; margin: 20px auto;
} }
.for-title{
.for-title {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
@ -722,34 +787,41 @@ export default {
color: #333333; color: #333333;
} }
.x-{
.x- {
width: 100px; width: 100px;
border-bottom: 1px solid #EEEEEE; border-bottom: 1px solid #EEEEEE;
margin: 0 15px; margin: 0 15px;
} }
.f-size{
.f-size {
width: 33%; width: 33%;
text-align: center; text-align: center;
font-size: 14px; font-size: 14px;
color: #333333; color: #333333;
} }
.s-size{
.s-size {
width: 33%; width: 33%;
text-align: center; text-align: center;
} }
.l-size{
.l-size {
width: 33%; width: 33%;
text-align: left; text-align: left;
} }
.r-size{
.r-size {
width: 33%; width: 33%;
text-align: right; text-align: right;
} }
.bottom-{
.bottom- {
width: 98%; width: 98%;
} }
.table-boxs{
.table-boxs {
border-radius: 8px; border-radius: 8px;
width: 98%; width: 98%;
background: #fff; background: #fff;

File diff suppressed because it is too large Load Diff

View File

@ -1040,6 +1040,7 @@ import {getLodop} from "@/api/LodopFuncs";
this.open1 = true this.open1 = true
}, },
handleUpdate(data){ handleUpdate(data){
console.log("修改数据", data)
creditUnitInfo(data.id).then(res => { creditUnitInfo(data.id).then(res => {
this.form1 = res.data this.form1 = res.data
this.title = "修改挂账单位" this.title = "修改挂账单位"
@ -1068,7 +1069,7 @@ import {getLodop} from "@/api/LodopFuncs";
this.total3 = res.data.total; this.total3 = res.data.total;
}) })
this.getUnitStatistic(val) this.getUnitStatistic(undefined)
}, },
getUnitStatistic(val){ getUnitStatistic(val){
if (val!=undefined){ if (val!=undefined){