fix(addRechargeCard): bug-54 修复充值提货卡功能无法选择商品的bug

This commit is contained in:
woody 2025-04-28 17:06:21 +08:00
parent 9abbdd07d2
commit f208f8fdb2
1 changed files with 116 additions and 101 deletions

View File

@ -31,7 +31,7 @@
type="primary" type="primary"
size="mini" size="mini"
@click="addNewGoods" @click="addNewGoods"
>{{'添加'}} >{{ '添加' }}
</el-button> </el-button>
</th> </th>
<th <th
@ -64,9 +64,9 @@
<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>
@ -120,7 +120,7 @@
v-show="ctem.waresGiftConfigList.length==0" v-show="ctem.waresGiftConfigList.length==0"
class="tableAddPro" class="tableAddPro"
> >
{{'添加产品'}} {{ '添加产品' }}
<img <img
src="@/assets/images/iconadd.png" src="@/assets/images/iconadd.png"
alt="" alt=""
@ -129,21 +129,21 @@
</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" />
</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"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
format="yyyy-MM-dd" format="yyyy-MM-dd"
@ -233,18 +233,22 @@
> >
<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
clearable v-model="select.queryInfo"
:placeholder="'请输入'" clearable
@keyup.enter.native="getDataList" :placeholder="'请输入'"
prefix-icon="el-icon-search"></el-input> prefix-icon="el-icon-search"
</el-col> @keyup.enter.native="getDataList"
<el-col :span="2"> />
<el-button type="primary" </el-col>
size="small" <el-col :span="2">
@click="getDataList"> {{ '搜索' }}</el-button> <el-button
</el-col> type="primary"
</el-row> size="small"
@click="getDataList"
> {{ '搜索' }}</el-button>
</el-col>
</el-row>
<div style="height:10px" /> <div style="height:10px" />
<el-table <el-table
ref="multipleTable" ref="multipleTable"
@ -264,10 +268,11 @@
prop="productName" prop="productName"
:label="'产品名称'" :label="'产品名称'"
/> />
<el-table-column align="center" <el-table-column
prop="productCode" align="center"
:label="'产品编号'"> prop="productCode"
</el-table-column> :label="'产品编号'"
/>
<el-table-column <el-table-column
align="center" align="center"
prop="productName" prop="productName"
@ -278,7 +283,7 @@
v-show="scope.row.selSkuNameList==''||scope.row.selSkuNameList==undefined" v-show="scope.row.selSkuNameList==''||scope.row.selSkuNameList==undefined"
class="blueCor" class="blueCor"
@click="selSku(scope.row.pkId,scope.$index)" @click="selSku(scope.row.pkId,scope.$index)"
>{{'选择规格'}}</div> >{{ '选择规格' }}</div>
<div <div
v-show="scope.row.selSkuNameList!=''&&scope.row.selSkuNameList!=undefined" v-show="scope.row.selSkuNameList!=''&&scope.row.selSkuNameList!=undefined"
class="blueCor" class="blueCor"
@ -313,11 +318,11 @@
slot="footer" slot="footer"
class="dialog-footer" class="dialog-footer"
> >
<el-button @click="handleClose">{{'取消'}}</el-button> <el-button @click="handleClose">{{ '取消' }}</el-button>
<el-button <el-button
type="primary" type="primary"
@click="sureProduct" @click="sureProduct"
>{{'确认'}}</el-button> >{{ '确认' }}</el-button>
</span> </span>
</el-dialog> </el-dialog>
<el-dialog <el-dialog
@ -350,11 +355,11 @@
slot="footer" slot="footer"
class="dialog-footer" class="dialog-footer"
> >
<el-button @click="handleCloseGg">{{'取消'}}</el-button> <el-button @click="handleCloseGg">{{ '取消' }}</el-button>
<el-button <el-button
type="primary" type="primary"
@click="sureSku" @click="sureSku"
>{{'确认'}}</el-button> >{{ '确认' }}</el-button>
</span> </span>
</el-dialog> </el-dialog>
</div> </div>
@ -366,14 +371,14 @@
@click="cancelCz" @click="cancelCz"
> {{ '取消' }}</el-button> > {{ '取消' }}</el-button>
<el-button <el-button
v-if="!deled" v-if="!deled"
type="primary" type="primary"
class="thebtn" class="thebtn"
style="margin-left:20px" style="margin-left:20px"
@click="saveDate" @click="saveDate"
> {{ '确认' }}</el-button> > {{ '确认' }}</el-button>
<el-button <el-button
v-else v-else
type="primary" type="primary"
class="thebtn" class="thebtn"
style="margin-left:20px" style="margin-left:20px"
@ -424,7 +429,7 @@ export default {
plcz: {}, plcz: {},
select: {}, // select: {}, //
dialogList: [], // dialogList: [], //
selectData: [], // selectData: undefined, //
skuList: [], // skuList: [], //
selSkuList: '', selSkuList: '',
selSkuNameList: '', selSkuNameList: '',
@ -464,13 +469,13 @@ export default {
this.disableds = true this.disableds = true
this.addFlag = false this.addFlag = false
this.isArea = 1 this.isArea = 1
}else if (type == 3) { } else if (type == 3) {
this.getThDetails(pkId) this.getThDetails(pkId)
this.disableds = true this.disableds = true
this.deled = true this.deled = true
this.addFlag = false this.addFlag = false
this.isArea = 1 this.isArea = 1
} else { } else {
this.getData() this.getData()
} }
}, },
@ -480,46 +485,45 @@ export default {
const that = this const that = this
pickDetail({ pkId: pkId }).then((res) => { pickDetail({ pkId: pkId }).then((res) => {
// console.error(res) // console.error(res)
if(res.data.detailList){ if (res.data.detailList) {
that.allData = [{ 'consumeRuleConfigList': [{ that.allData = [{ 'consumeRuleConfigList': [{
memberName: res.data.memberName, memberName: res.data.memberName,
memberCode: res.data.memberCode, memberCode: res.data.memberCode,
pkId: res.data.pkId, pkId: res.data.pkId,
baseQuantity: res.data.baseQuantity, baseQuantity: res.data.baseQuantity,
receiveTime: res.data.receiveTime, receiveTime: res.data.receiveTime,
usableQuantity: res.data.usableQuantity, usableQuantity: res.data.usableQuantity,
quantity: 0, quantity: 0,
isFreeMail: res.data.isFreeMail, isFreeMail: res.data.isFreeMail,
waresGiftConfigList: [ waresGiftConfigList: [
{ {
pkProduct: res.data.detailList[0].pkProduct, pkProduct: res.data.detailList[0].pkProduct,
productName: res.data.detailList[0].productName, productName: res.data.detailList[0].productName,
specsName: res.data.detailList[0].specsName, specsName: res.data.detailList[0].specsName,
specsNameId: res.data.detailList[0].specsNameId, specsNameId: res.data.detailList[0].specsNameId,
quantity: res.data.detailList[0].quantity quantity: res.data.detailList[0].quantity
} }
] }], 'orderType': 1 }] ] }], 'orderType': 1 }]
}else{ } else {
that.allData = [{ 'consumeRuleConfigList': [{ that.allData = [{ 'consumeRuleConfigList': [{
memberName: res.data.memberName, memberName: res.data.memberName,
memberCode: res.data.memberCode, memberCode: res.data.memberCode,
pkId: res.data.pkId, pkId: res.data.pkId,
baseQuantity: res.data.baseQuantity, baseQuantity: res.data.baseQuantity,
receiveTime: res.data.receiveTime, receiveTime: res.data.receiveTime,
usableQuantity: res.data.usableQuantity, usableQuantity: res.data.usableQuantity,
quantity: 0, quantity: 0,
isFreeMail: res.data.isFreeMail, isFreeMail: res.data.isFreeMail,
waresGiftConfigList: [ waresGiftConfigList: [
{ {
pkProduct:'', pkProduct: '',
productName: '', productName: '',
specsName: '', specsName: '',
specsNameId: '', specsNameId: '',
quantity: 0 quantity: 0
} }
] }], 'orderType': 1 }] ] }], 'orderType': 1 }]
} }
}) })
this.$forceUpdate() this.$forceUpdate()
}, },
@ -558,7 +562,7 @@ 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 : ''
} }
) )
}) })
@ -590,7 +594,7 @@ export default {
} }
if (res.quantity === '' || res.quantity == undefined) { if (res.quantity === '' || res.quantity == undefined) {
this.flags = 3 this.flags = 3
return false return false
} else { } else {
this.flags = 2 this.flags = 2
@ -619,20 +623,20 @@ export default {
}) })
} else if (this.flags == 3) { } else if (this.flags == 3) {
this.$message({ this.$message({
message: '请输入增加数量', message: '请输入增加数量',
type: 'warning' type: 'warning'
}) })
}else { } else {
this.$router.push({ this.$router.push({
path: 'rechargeQc', path: 'rechargeQc',
query: { query: {
data: JSON.stringify(dataList), data: JSON.stringify(dataList),
approvalBusiness: 700, approvalBusiness: 700
} }
}) })
} }
}, },
saveDate1(){ saveDate1() {
const dataList = [] const dataList = []
this.allData[0].consumeRuleConfigList.forEach((res) => { this.allData[0].consumeRuleConfigList.forEach((res) => {
dataList.push( dataList.push(
@ -641,18 +645,18 @@ 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({ this.$router.push({
path: 'rechargeQc', path: 'rechargeQc',
query: { query: {
data: JSON.stringify(dataList), data: JSON.stringify(dataList),
approvalBusiness: 701, approvalBusiness: 701,
type:this.deled type: this.deled
} }
}) })
}, },
getPage(allData) { getPage(allData) {
this.allData = allData this.allData = allData
@ -690,13 +694,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 +768,7 @@ export default {
this.isArea = val this.isArea = val
}, },
handleClose() { handleClose() {
this.selectData = [] this.selectData = undefined
this.dialogVisible = false this.dialogVisible = false
}, },
handleCloseGg() { handleCloseGg() {
@ -838,7 +848,7 @@ export default {
}, },
getDataList() { getDataList() {
api api
.getProductAll(Object.assign({isPutOn:0}, this.queryParams, this.select,{isExistSpecs:1})) .getProductAll(Object.assign({ isPutOn: 0 }, this.queryParams, this.select, { isExistSpecs: 1 }))
.then((res) => { .then((res) => {
res.rows.forEach((item) => { res.rows.forEach((item) => {
item.quantity = 1 item.quantity = 1
@ -872,18 +882,23 @@ export default {
}, },
selected(selection, row) { selected(selection, row) {
// //
if (selection.length === 0) {
this.selectData = undefined
} else {
this.selectData = row
}
this.$refs.multipleTable.clearSelection() this.$refs.multipleTable.clearSelection()
//
//
if (selection.length == 0) return
this.$refs.multipleTable.toggleRowSelection(row, true) this.$refs.multipleTable.toggleRowSelection(row, true)
this.selectData = row // //
}, // //
// // this.$nextTick(() => {
selectionChange(val) { // if (selection.length == 0) return
// // this.$refs.multipleTable.toggleRowSelection(row, true)
this.selectData = val // this.selectData = row
// })
}, },
tableRowClassName({ row, rowIndex }) { tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) { if (rowIndex % 2 == 1) {
return 'warning-row' return 'warning-row'