3
0
Fork 0

feat(rechargeCard): 充值提货卡去签呈

This commit is contained in:
woody 2025-08-05 11:46:05 +08:00
parent 99db791756
commit 9d761e6988
4 changed files with 247 additions and 161 deletions

View File

@ -333,7 +333,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- <el-col :span="8"> <el-col :span="8">
<el-form-item label="上传盒数" prop="boxNum"> <el-form-item label="上传盒数" prop="boxNum">
<el-input <el-input
v-model="form.boxNum" v-model="form.boxNum"
@ -341,7 +341,7 @@
:placeholder="'请输入'" :placeholder="'请输入'"
/> />
</el-form-item> </el-form-item>
</el-col> --> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item :label="'保证标签'"> <el-form-item :label="'保证标签'">
<el-checkbox-group <el-checkbox-group

View File

@ -295,7 +295,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- <el-col :span="8"> <el-col :span="8">
<el-form-item label="上传盒数" prop="boxNum"> <el-form-item label="上传盒数" prop="boxNum">
<el-input <el-input
v-model="form.boxNum" v-model="form.boxNum"
@ -303,7 +303,7 @@
:placeholder="'请输入'" :placeholder="'请输入'"
/> />
</el-form-item> </el-form-item>
</el-col> --> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item :label="'保证标签'"> <el-form-item :label="'保证标签'">
<el-checkbox-group v-model="form.pkGuaranteeLabel"> <el-checkbox-group v-model="form.pkGuaranteeLabel">

View File

@ -30,8 +30,9 @@
<el-button <el-button
type="primary" type="primary"
size="mini" size="mini"
:disabled="addBtnDisabled"
@click="addNewGoods" @click="addNewGoods"
>{{'添加'}} >添加
</el-button> </el-button>
</th> </th>
<th <th
@ -62,16 +63,16 @@
class="table_b" class="table_b"
> >
<tr style="border-top:0"> <tr style="border-top:0">
<td colspan="2">{{ '会员编号' }}</td> <td colspan="2">会员编号</td>
<td colspan="2">{{ '会员名称' }}</td> <td colspan="2">会员名称</td>
<td colspan="4">{{'产品名称'}}</td> <td colspan="4">产品名称</td>
<td colspan="4">{{'产品规格'}}</td> <td colspan="4">产品规格</td>
<td colspan="2">{{'提货基数'}}</td> <td colspan="2">提货基数</td>
<td colspan="2">可提数量</td> <td colspan="2">可提数量</td>
<td colspan="2">增加数量</td> <td colspan="2">增加数量</td>
<td colspan="2">{{ '截止日期' }}</td> <td colspan="2">截止日期</td>
<td colspan="2">{{ '包邮类型' }}</td> <td colspan="2">包邮类型</td>
<td colspan="2">提货来源</td>
</tr> </tr>
<tr <tr
v-for="ctem,cndex in item.consumeRuleConfigList" v-for="ctem,cndex in item.consumeRuleConfigList"
@ -128,33 +129,39 @@
> >
</div> </div>
</td> </td>
<!-- 提货基数 -->
<td colspan="2" style="border-right: 1px solid #fff"> <td colspan="2" style="border-right: 1px solid #fff">
<el-input :disabled="deled" v-model="ctem.baseQuantity" /> <el-input
v-model="ctem.baseQuantity"
:disabled="deled || ctem.pickType == 8"
/>
</td> </td>
<!-- 可提数量 --> <!-- 可提数量 -->
<td colspan="2" style="border-right: 1px solid #fff"> <td colspan="2" style="border-right: 1px solid #fff">
<el-input disabled v-model="ctem.usableQuantity" /> <el-input v-model="ctem.usableQuantity" disabled />
</td> </td>
<!-- 增加数量 --> <!-- 增加数量 -->
<td colspan="2" style="border-right: 1px solid #fff"> <td colspan="2" style="border-right: 1px solid #fff">
<el-input :disabled="deled" v-model="ctem.quantity" /> <el-input v-model="ctem.quantity" :disabled="deled" />
</td> </td>
<!-- 截止日期 -->
<td colspan="2" style="border-right: 1px solid #fff"> <td colspan="2" style="border-right: 1px solid #fff">
<!-- <el-input v-model="ctem.orderAchieve"></el-input>--> <!-- <el-input v-model="ctem.orderAchieve"></el-input>-->
<el-date-picker <el-date-picker
:disabled="deled"
v-model="ctem.receiveTime" v-model="ctem.receiveTime"
:disabled="deled || (ctem.pickType == 8 && !addFlag)"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
format="yyyy-MM-dd" format="yyyy-MM-dd"
:placeholder="'请选择时间'" :placeholder="'请选择时间'"
/> />
</td> </td>
<!-- 包邮类型 -->
<td colspan="2"> <td colspan="2">
<el-select <el-select
v-model="ctem.isFreeMail" v-model="ctem.isFreeMail"
clearable clearable
:disabled="deled" :disabled="deled || (ctem.pickType == 8 && !addFlag)"
> >
<el-option <el-option
v-for="item in postList" v-for="item in postList"
@ -212,6 +219,15 @@
</el-checkbox-group> </el-checkbox-group>
</div> </div>
</td> </td>
<td colspan="2">
<el-select
v-model="ctem.pickType"
:disabled="disableds"
@change="(val) => pickTypeChange(val, ctem)"
>
<el-option v-for="item in pickTypeList" :key="item.val" :label="item.text" :value="item.val" />
</el-select>
</td>
</tr> </tr>
</table> </table>
</div> </div>
@ -233,16 +249,20 @@
> >
<div class="cpHeight"> <div class="cpHeight">
<el-row> <el-row>
<el-col :span="22"> <el-input v-model="select.queryInfo" <el-col :span="22"> <el-input
v-model="select.queryInfo"
clearable clearable
:placeholder="'请输入'" :placeholder="'请输入'"
prefix-icon="el-icon-search"
@keyup.enter.native="getDataList" @keyup.enter.native="getDataList"
prefix-icon="el-icon-search"></el-input> />
</el-col> </el-col>
<el-col :span="2"> <el-col :span="2">
<el-button type="primary" <el-button
type="primary"
size="small" size="small"
@click="getDataList"> {{ '搜索' }}</el-button> @click="getDataList"
> {{ '搜索' }}</el-button>
</el-col> </el-col>
</el-row> </el-row>
<div style="height:10px" /> <div style="height:10px" />
@ -264,10 +284,11 @@
prop="productName" prop="productName"
:label="'产品名称'" :label="'产品名称'"
/> />
<el-table-column align="center" <el-table-column
align="center"
prop="productCode" prop="productCode"
:label="'产品编号'"> :label="'产品编号'"
</el-table-column> />
<el-table-column <el-table-column
align="center" align="center"
prop="productName" prop="productName"
@ -389,14 +410,11 @@ import * as api from '@/api/giftGoods.js'
import * as apis from '@/api/product.js' import * as apis from '@/api/product.js'
import * as api_s from '@/api/financial.js' import * as api_s from '@/api/financial.js'
import topBar from '@/components/topBar' import topBar from '@/components/topBar'
import ImageUpload from '@/components/ImageUpload'
import { getMemberName } from '@/api/financial'
import { getQueryString } from '@/utils'
import { pickDetail } from '@/api/manage' import { pickDetail } from '@/api/manage'
import * as man from '@/api/manage'
export default { export default {
components: { components: {
topBar, topBar
ImageUpload
}, },
data() { data() {
return { return {
@ -424,7 +442,7 @@ export default {
plcz: {}, plcz: {},
select: {}, // select: {}, //
dialogList: [], // dialogList: [], //
selectData: [], // selectData: undefined, //
skuList: [], // skuList: [], //
selSkuList: '', selSkuList: '',
selSkuNameList: '', selSkuNameList: '',
@ -449,9 +467,24 @@ export default {
text: '不包邮', text: '不包邮',
val: 1 val: 1
} }
],
pickTypeList: [
{
text: '提货产品',
val: 0
},
{
text: '法宝券',
val: 8
}
] ]
} }
}, },
computed: {
addBtnDisabled() {
return this.allData.some(item => item.consumeRuleConfigList.length > 0)
}
},
mounted() { mounted() {
const geturl = window.location.href const geturl = window.location.href
const getqyinfo = geturl.split('?')[1] const getqyinfo = geturl.split('?')[1]
@ -490,6 +523,7 @@ export default {
usableQuantity: res.data.usableQuantity, usableQuantity: res.data.usableQuantity,
quantity: 0, quantity: 0,
isFreeMail: res.data.isFreeMail, isFreeMail: res.data.isFreeMail,
pickType: res.data.pickType,
waresGiftConfigList: [ waresGiftConfigList: [
{ {
pkProduct: res.data.detailList[0].pkProduct, pkProduct: res.data.detailList[0].pkProduct,
@ -509,6 +543,7 @@ export default {
usableQuantity: res.data.usableQuantity, usableQuantity: res.data.usableQuantity,
quantity: 0, quantity: 0,
isFreeMail: res.data.isFreeMail, isFreeMail: res.data.isFreeMail,
pickType: res.data.pickType,
waresGiftConfigList: [ waresGiftConfigList: [
{ {
pkProduct: '', pkProduct: '',
@ -519,7 +554,6 @@ export default {
} }
] }], 'orderType': 1 }] ] }], 'orderType': 1 }]
} }
}) })
this.$forceUpdate() this.$forceUpdate()
}, },
@ -551,14 +585,21 @@ export default {
}, },
saveDate() { saveDate() {
const dataList = [] const dataList = []
this.allData[0].consumeRuleConfigList.forEach((res) => { this.allData[0].consumeRuleConfigList.forEach((item) => {
dataList.push( dataList.push(
{ 'memberCode': res.memberCode, 'pkProduct': res.waresGiftConfigList[0].pkProduct, 'memberName': res.memberName, { 'memberCode': item.memberCode,
'productName': res.waresGiftConfigList[0].productName + res.waresGiftConfigList[0].specsName, 'pkProduct': item.waresGiftConfigList[0].pkProduct,
'receiveTime': res.receiveTime, 'memberName': item.memberName,
'specsName': res.waresGiftConfigList[0].specsName, 'specsNameId': res.waresGiftConfigList[0].specsNameId, 'productName': item.waresGiftConfigList[0].productName + item.waresGiftConfigList[0].specsName,
'baseQuantity': res.baseQuantity, 'quantity': res.quantity, 'isFreeMail': res.isFreeMail, 'pkPostage': res.pkPostage, 'receiveTime': item.receiveTime,
"pkId":res.pkId?res.pkId:'' 'specsName': item.waresGiftConfigList[0].specsName,
'specsNameId': item.waresGiftConfigList[0].specsNameId,
'baseQuantity': item.baseQuantity,
'quantity': item.quantity,
'isFreeMail': item.isFreeMail,
'pkPostage': item.pkPostage,
'pkId': item.pkId ? item.pkId : '',
'pickType': item.pickType
} }
) )
}) })
@ -623,11 +664,21 @@ export default {
type: 'warning' type: 'warning'
}) })
} else { } else {
this.$router.push({ const params = {
path: 'rechargeQc', detailList: dataList,
query: { signType: 0, //
data: JSON.stringify(dataList), remark: '', //
approvalBusiness: 700, fileList: [], // []
userIdList: [], // []
sendIdList: [] // []
}
man.rechargeConfirm(params).then((res) => {
if (res.code === 200) {
this.$message({
message: res.msg,
type: 'success'
})
this.$router.go(-1)
} }
}) })
} }
@ -641,18 +692,30 @@ export default {
'receiveTime': res.receiveTime, 'receiveTime': res.receiveTime,
'specsName': res.waresGiftConfigList[0].specsName, 'specsNameId': res.waresGiftConfigList[0].specsNameId, 'specsName': res.waresGiftConfigList[0].specsName, 'specsNameId': res.waresGiftConfigList[0].specsNameId,
'baseQuantity': res.baseQuantity, 'quantity': res.quantity, 'isFreeMail': res.isFreeMail, 'pkPostage': res.pkPostage, 'baseQuantity': res.baseQuantity, 'quantity': res.quantity, 'isFreeMail': res.isFreeMail, 'pkPostage': res.pkPostage,
"pkId":res.pkId?res.pkId:'' 'pkId': res.pkId ? res.pkId : ''
} }
) )
}) })
this.$router.push({ const params = {
path: 'rechargeQc', detailList: dataList
query: { }
data: JSON.stringify(dataList), man.rechargeDel(params).then((res) => {
approvalBusiness: 701, if (res.code === 200) {
type:this.deled this.$message({
message: res.msg,
type: 'success'
})
this.$router.go(-1)
} }
}) })
// this.$router.push({
// path: 'rechargeQc',
// query: {
// data: JSON.stringify(dataList),
// approvalBusiness: 701,
// type: this.deled
// }
// })
}, },
getPage(allData) { getPage(allData) {
this.allData = allData this.allData = allData
@ -690,13 +753,19 @@ export default {
this.ggVisible = false this.ggVisible = false
}, },
sureProduct() { sureProduct() {
if (this.selectData.length == 0) { if (!this.selectData) {
this.$message({ this.$message({
message: '请选择产品', message: '请选择产品',
type: 'warning' type: 'warning'
}) })
return false
} else { } else {
if (!this.selectData.selSkuNameList || this.selectData.selSkuNameList.length === 0) {
this.$message({
message: '请选择产品规格',
type: 'warning'
})
return
}
this.allData.forEach((item) => { this.allData.forEach((item) => {
if (this.isArea == item.orderType) { if (this.isArea == item.orderType) {
item.consumeRuleConfigList[this.showCndex].waresGiftConfigList[ item.consumeRuleConfigList[this.showCndex].waresGiftConfigList[
@ -758,7 +827,7 @@ export default {
this.isArea = val this.isArea = val
}, },
handleClose() { handleClose() {
this.selectData = [] this.selectData = undefined
this.dialogVisible = false this.dialogVisible = false
}, },
handleCloseGg() { handleCloseGg() {
@ -803,8 +872,10 @@ export default {
specsName: '', specsName: '',
specsNameId: '', specsNameId: '',
quantity: '' quantity: ''
} }
] ],
pickType: 0
}) })
} }
}) })
@ -872,18 +943,23 @@ export default {
}, },
selected(selection, row) { selected(selection, row) {
// //
this.$refs.multipleTable.clearSelection() if (selection.length === 0) {
// this.selectData = undefined
// } else {
if (selection.length == 0) return
this.$refs.multipleTable.toggleRowSelection(row, true)
this.selectData = row this.selectData = row
}
this.$refs.multipleTable.clearSelection()
this.$refs.multipleTable.toggleRowSelection(row, true)
// //
// //
// this.$nextTick(() => {
// if (selection.length == 0) return
// this.$refs.multipleTable.toggleRowSelection(row, true)
// this.selectData = row
// })
}, },
//
selectionChange(val) {
//
this.selectData = val
},
tableRowClassName({ row, rowIndex }) { tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) { if (rowIndex % 2 == 1) {
return 'warning-row' return 'warning-row'
@ -891,6 +967,11 @@ export default {
return 'success-row' return 'success-row'
} }
return '' return ''
},
pickTypeChange(val, item) {
if (val === 8) {
this.$set(item, 'baseQuantity', '1')
}
} }
} }
} }

View File

@ -111,22 +111,22 @@
<div class="main_a"> <div class="main_a">
<div class="mainbtn"> <div class="mainbtn">
<el-button <el-button
v-hasButtons="['cardAdd']"
size="small" size="small"
class="addBtn" class="addBtn"
v-hasButtons="['cardAdd']"
@click="openDig" @click="openDig"
>{{ '添加' }}</el-button> >{{ '添加' }}</el-button>
<el-button <el-button
v-hasButtons="['cardExport']"
size="small" size="small"
class="thebtn2" class="thebtn2"
v-hasButtons="['cardExport']"
@click="handleExport" @click="handleExport"
> {{ '导出' }}</el-button> > 导出</el-button>
</div> </div>
<div class="maintable"> <div class="maintable">
<el-table <el-table
:data="tableData"
v-loading="loading" v-loading="loading"
:data="tableData"
style="width: 100%" style="width: 100%"
height="73vh" height="73vh"
:header-cell-style="{ background: '#EEEEEE' }" :header-cell-style="{ background: '#EEEEEE' }"
@ -152,6 +152,7 @@
align="center" align="center"
prop="" prop=""
:label="'产品名称(规格)'" :label="'产品名称(规格)'"
min-width="230"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<div v-for="item in scope.row.detailList"> <div v-for="item in scope.row.detailList">
@ -222,19 +223,23 @@
<template slot-scope="scope"> <template slot-scope="scope">
<div class="btnHeng"> <div class="btnHeng">
<div @click="toFixed(scope.row.pkId,2)" <div
type="text"
v-if="scope.row.pickType!=8"
v-hasButtons="['cardUpdata']" v-hasButtons="['cardUpdata']"
type="text"
style="color:#F3A900" style="color:#F3A900"
size="small"> size="small"
@click="toFixed(scope.row.pkId,2)"
>
{{ '修改' }} {{ '修改' }}
</div> </div>
<div @click="toDel(scope.row.pkId)" <div
type="text"
v-hasButtons="['cardDel']" v-hasButtons="['cardDel']"
type="text"
size="small" size="small"
style="color: #C8161D"> style="color: #C8161D"
@click="toDel(scope.row.pkId)"
>
{{ '删除' }} {{ '删除' }}
</div> </div>
</div> </div>
@ -257,8 +262,8 @@
<script> <script>
import topBar from '@/components/topBar' import topBar from '@/components/topBar'
import * as api from '@/api/giftGoods.js' import * as api from '@/api/giftGoods.js'
import {tgtype} from "@/api/giftGoods.js"; import { tgtype } from '@/api/giftGoods.js'
import {getPickList} from "@/api/manage"; import { getPickList } from '@/api/manage'
export default { export default {
name: 'Bzpz', name: 'Bzpz',
components: { components: {
@ -267,9 +272,9 @@ export default {
filters: { filters: {
isAgree(val) { isAgree(val) {
if (!val) { if (!val) {
return '允许'; return '允许'
} else { } else {
return '禁止'; return '禁止'
} }
} }
}, },