核销码

This commit is contained in:
DESKTOP-GMUNQ1B\k 2024-03-16 13:48:24 +08:00
parent 987c8a33ae
commit b3477f03fe

View File

@ -1,60 +1,55 @@
<template> <template>
<div> <div>
<el-dialog <el-dialog v-if="dialogVisible" title="订单核销" :visible.sync="dialogVisible" width="900px">
v-if="dialogVisible"
title="订单核销"
:visible.sync="dialogVisible"
width="900px"
>
<div class="container"> <div class="container">
<el-form label-width="80px" size="small"> <el-form label-width="80px" size="small">
<el-form-item v-if="!isColum" label="核销码:"> <el-form-item v-if="!isColum" label="核销码:">
<el-input v-model="code" placeholder="请输入核销码" class="selWidth" size="small" @keyup.enter.native="searchOrder" /> <el-input v-model="code" placeholder="请输入核销码" class="selWidth" size="small"
<el-button size="small" type="primary" @click="searchOrder">搜索</el-button> @keyup.enter.native="searchOrder" />
</el-form-item> <el-button size="small" type="primary" @click="searchOrder">搜索</el-button>
<el-form-item label="订单号:"> </el-form-item>
<span>{{orderData.order_sn}}</span> <el-form-item label="订单号:">
</el-form-item> <span>{{ orderData.order_sn }}</span>
</el-form> </el-form-item>
<div style="margin-top: 20px;"> </el-form>
<el-table <div style="margin-top: 20px;">
ref="multipleSelection" <el-table ref="multipleSelection" :data="productList" tooltip-effect="dark" size="mini"
:data="productList" :row-key="(row) => { return row.product_id }" @selection-change="handleSelectionChange"
tooltip-effect="dark" :header-cell-style="{ background: '#F0F5FF' }">
size="mini" <el-table-column align="center" type="selection" :selectable="judgeSelect" min-width="50" />
:row-key="(row) => { return row.product_id }"
@selection-change="handleSelectionChange"
:header-cell-style="{background:'#F0F5FF'}"
>
<el-table-column align="center" type="selection" :selectable="judgeSelect" min-width="50"/>
<el-table-column align="center" label="商品信息" min-width="200"> <el-table-column align="center" label="商品信息" min-width="200">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="acea-row" style="align-items: center;"> <div class="acea-row" style="align-items: center;">
<div class="demo-image__preview"> <div class="demo-image__preview">
<el-image :src="scope.row.cart_info.product.image" :preview-src-list="[scope.row.cart_info.product.image]" /> <el-image :src="scope.row.cart_info.product.image"
:preview-src-list="[scope.row.cart_info.product.image]" />
</div> </div>
<span class="priceBox" style="width: 150px;">{{scope.row.cart_info.product.store_name}}</span> <span class="priceBox" style="width: 150px;">{{ scope.row.cart_info.product.store_name }}</span>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="规格" min-width="80"> <el-table-column align="center" label="规格" min-width="80">
<template slot-scope="scope"> <template slot-scope="scope">
<span class="priceBox">{{scope.row.cart_info.productAttr.sku}}</span> <span class="priceBox">{{ scope.row.cart_info.productAttr.sku }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="订单金额" min-width="80"> <el-table-column align="center" label="订单金额" min-width="80">
<template slot-scope="scope"> <template slot-scope="scope">
<span class="priceBox">{{scope.row.cart_info.productAttr.price}}</span> <span class="priceBox">{{ scope.row.cart_info.productAttr.price }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="状态" min-width="80"> <el-table-column align="center" label="状态" min-width="80">
<template slot-scope="scope"> <template slot-scope="scope">
<span class="priceBox">待核销</span> <span class="priceBox">待核销</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="product_num" label="总数" min-width="80" /> <el-table-column align="center" prop="product_num" label="总数" min-width="80" />
<el-table-column label="待核销数量" align="center" min-width="120"> <el-table-column label="核销码" align="center" min-width="180">
<template slot-scope="scope">
<el-input v-model="verify_code" class="priceBox" />
</template>
</el-table-column>
<!-- <el-table-column label="待核销数量" align="center" min-width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input <el-input
v-model="scope.row['refund_num']" v-model="scope.row['refund_num']"
@ -65,15 +60,15 @@
@change="limitNum(scope.row)" @change="limitNum(scope.row)"
/> />
</template> </template>
</el-table-column> </el-table-column> -->
</el-table> </el-table>
</div> </div>
</div> </div>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false" size="small">取消</el-button> <el-button @click="dialogVisible = false" size="small">取消</el-button>
<el-button type="primary" @click="handleCancellation" size="small">核销</el-button> <el-button type="primary" @click="handleCancellation" size="small">核销</el-button>
</span> </span>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
@ -88,7 +83,7 @@
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com> // | Author: CRMEB Team <admin@crmeb.com>
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
import { orderCancellationApi, goCancellationApi } from '@/api/order' import { orderCancellationApi, goCancellationApi } from '@/api/order'
export default { export default {
name: 'OrderCancellate', name: 'OrderCancellate',
@ -101,50 +96,60 @@ export default {
orderData: "", orderData: "",
multipleSelection: [], multipleSelection: [],
ids: [], ids: [],
verify_code: '', //
isColum: false, isColum: false,
productList: [] productList: []
} }
}, },
methods: { methods: {
searchOrder() { searchOrder() {
if(!this.code){ if (!this.code) {
return this.$message.warning('输入核销码!') return this.$message.warning('输入核销码!')
} }
this.productDetails(this.code) this.productDetails(this.code)
}, },
judgeSelect(row,index){ judgeSelect(row, index) {
return row.is_refund==0 return row.is_refund == 0
}, },
handleCancellation() { handleCancellation() {
if(!this.code){ // if (!this.code) {
// return this.$message.warning('!')
// }
if (!this.verify_code) {
return this.$message.warning('输入核销码!') return this.$message.warning('输入核销码!')
} }
if (!this.multipleSelection.length) { if (!this.multipleSelection.length) {
return this.$message.warning('请选择核销商品!') return this.$message.warning('请选择核销商品!')
} }
const data = [] const data = []
this.multipleSelection.map((item) => { this.multipleSelection.map((item) => {
if(item.refund_num>0){ if (item.refund_num > 0) {
data.push({id:item.order_product_id,num:item.refund_num}) data.push({ id: item.order_product_id, num: item.refund_num })
} }
}) })
goCancellationApi(this.order_id,{verify_code: this.code,data: data}).then(res => { goCancellationApi(this.order_id, { verify_code: this.verify_code, data: data }).then(res => {
this.$message.success(res.message) this.$message.success(res.message)
this.dialogVisible = false this.dialogVisible = false
this.$emit('getList','') this.$emit('getList', '')
}).catch(({ message }) => { }).catch(({ message }) => {
this.$message.error(message) this.$message.error(message)
}) })
}, },
productDetails(code) { productDetails(code, type = false) {
this.code = code if (type) { this.code = code }
else {
this.code = "";
this.verify_code = "";
}
this.loading = true this.loading = true
orderCancellationApi(code).then(res => { orderCancellationApi(code).then(res => {
this.orderData = res.data this.orderData = res.data
this.order_id = res.data.order_id this.order_id = res.data.order_id
if (type) this.verify_code = res.data.verify_code
this.productList = res.data.orderProduct this.productList = res.data.orderProduct
this.productList.forEach((item, index)=>{ this.productList.forEach((item, index) => {
item.max_num = item.refund_num item.max_num = item.refund_num
}) })
this.loading = false this.loading = false
@ -153,19 +158,19 @@ export default {
this.$message.error(message) this.$message.error(message)
}) })
}, },
resetData(){ resetData() {
this.orderData = {}, this.orderData = {},
this.productList = []; this.productList = [];
this.code = "" this.code = ""
}, },
// //
handleSelectionChange(val) { handleSelectionChange(val) {
this.multipleSelection = val this.multipleSelection = val
}, },
limitNum(row){ limitNum(row) {
if(row.refund_num > row.max_num){ if (row.refund_num > row.max_num) {
row.refund_num = row.max_num row.refund_num = row.max_num
}else if(row.refund_num < 1){ } else if (row.refund_num < 1) {
row.refund_num = 1 row.refund_num = 1
} }
} }
@ -174,7 +179,7 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.title{ .title {
margin-bottom: 16px; margin-bottom: 16px;
color: #17233d; color: #17233d;
font-weight: 500; font-weight: 500;