From 14ae2f656166b98302682664888d2b882b7e4649 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期四, 16 十月 2025 11:10:58 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/send_coupon' into send_coupon
---
seller/src/views/goods/goods-seller/goodsOperationSec.vue | 205 ++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 192 insertions(+), 13 deletions(-)
diff --git a/seller/src/views/goods/goods-seller/goodsOperationSec.vue b/seller/src/views/goods/goods-seller/goodsOperationSec.vue
index ce95523..4b5e0cb 100644
--- a/seller/src/views/goods/goods-seller/goodsOperationSec.vue
+++ b/seller/src/views/goods/goods-seller/goodsOperationSec.vue
@@ -82,8 +82,19 @@
@on-clear="handleGoodsType"
@on-change="handleGoodsType"
>
- <Option value="COUPON">浼樻儬鍗�</option>
+ <Option value="COUPON">浼樻儬鍔�</option>
</select>
+ </FormItem>
+ <FormItem v-if="baseInfoForm.goodsType == 'PHYSICAL_GOODS'" class="form-item-view-el" label="鍟嗗搧绫诲瀷">
+ <Select
+ v-model="baseInfoForm.customizeFlag"
+ clearable
+ style="width: 160px"
+ @on-clear="handleGoodsType"
+ @on-change="handleGoodsType"
+ >
+ <Option value="CUSTOMIZE">瀹氬埗鍟嗗搧</option>
+ </select>
</FormItem>
<FormItem v-if="baseInfoForm.salesModel == 'WHOLESALE'" class="form-item-view-el" label="閿�鍞鍒�"
prop="wholesaleRule">
@@ -362,13 +373,22 @@
</Input>
</template>
<template slot="COUPON" slot-scope="{ row }">
- <div @click="showCouponListModal(row)">
- <Input v-model="row.couponName" clearable placeholder="閫夋嫨浼樻儬鍗�"
+ <div @click="showCouponListModal($event,row)">
+ <Input v-model="row.couponName" clearable placeholder="閫夋嫨浼樻儬鍔�"
>
</Input>
</div>
</template>
+ <template slot="CUSTOMIZE" slot-scope="{ row }">
+ <div @click="showTemplateListModal($event,row)">
+ <Input v-model="row.customizeTemplateName" clearable placeholder="閫夋嫨瀹氬埗妯℃澘"
+ >
+ </Input>
+ </div>
+
+ </template>
+
<template slot="cost" slot-scope="{ row }">
<Input v-model="row.cost" clearable placeholder="璇疯緭鍏ユ垚鏈环"
@on-change="updateSkuTable(row, 'cost')">
@@ -528,11 +548,11 @@
<Button type="primary" @click="saveToDraft">淇濆瓨涓烘ā鐗�</Button>
</ButtonGroup>
</div>
- <Modal v-model="showCouponModal" title="浼樻儬鍗峰垪琛�" width="1200px">
+ <Modal v-model="showCouponModal" title="浼樻儬鍔靛垪琛�" width="1200px">
<div style="display: flex; align-items: center; margin-bottom: 20px;">
<!-- 妯℃嫙琛ㄥ崟label鏍峰紡 -->
<label style="width: 100px; text-align: right; padding-right: 12px; font-size:14px;">
- 宸查�夋嫨浼樻儬鍗�:
+ 宸查�夋嫨浼樻儬鍔�:
</label>
<Input
:disabled="true"
@@ -565,6 +585,46 @@
></Page>
</Row>
</Modal>
+
+ <Modal v-model="showTemplateModal" title="妯℃澘鍒楄〃" width="1200px">
+ <div style="display: flex; align-items: center; margin-bottom: 20px;">
+ <!-- 妯℃嫙琛ㄥ崟label鏍峰紡 -->
+ <label style="width: 100px; text-align: right; padding-right: 12px; font-size:14px;">
+ 宸查�夋嫨妯℃澘:
+ </label>
+ <Input
+ :disabled="true"
+ style="width: 30%;"
+ v-model="showTemplate"
+ placeholder="璇风偣鍑婚�夋嫨琛ㄦ牸鍐呮ā鏉�"
+ ></Input>
+ </div>
+ <Table
+ :loading="templateLoading"
+ border
+ :columns="templateColumns"
+ :data="templateData"
+ ref="table"
+ @on-current-change="templateHandleRowClick"
+ highlight-row
+ ></Table>
+ <Row type="flex" justify="center" class="mt_10">
+ <Page
+ :current="templateSearchForm.pageNumber"
+ :total="templateTotal"
+ :page-size="templateSearchForm.pageSize"
+ @on-change="templateChangePage"
+ @on-page-size-change="templateChangePageSize"
+ :page-size-opts="[10, 20, 50]"
+ size="small"
+ show-total
+ show-elevator
+ show-sizer
+ ></Page>
+ </Row>
+ </Modal>
+
+
<Modal v-model="showGoodsVideo" title="鏌ョ湅瑙嗛">
<div id="dplayer">
@@ -605,6 +665,7 @@
</div>
</template>
<script>
+import * as API_GOODS_CUSTOMEIZE from "@/api/goods-customeize-template"
import * as API_GOODS from "@/api/goods";
import * as API_Shop from "@/api/shops";
import cloneObj from "@/utils/index";
@@ -653,6 +714,42 @@
}, 1000);
};
return {
+ showTemplateModal:false,
+ showTemplate:'',
+ templateSearchForm: {
+ // 鎼滅储妗嗗垵濮嬪寲瀵硅薄
+ pageNumber: 1, // 褰撳墠椤垫暟
+ pageSize: 10, // 椤甸潰澶у皬
+ status:"ENABLE"
+ },
+ templateLoading:false,
+ templateColumns:[
+ {
+ title: "妯℃澘鍚嶇О",
+ key: "templateName",
+ tooltip: true,
+ },
+ {
+ title: '鍚敤鐘舵��',
+ key: 'status',
+ width: 120,
+ align: 'center',
+ render: (h, params) => {
+ const status = params.row.status;
+ const color = status === 'ENABLE' ? 'success' : status === 'DISABLE' ? 'default' : 'warning';
+ const text = status === 'ENABLE' ? '鍚敤' : status === 'DISABLE' ? '鏈惎鐢�' : '鏈煡';
+
+ return h('Tag', {
+ props: {
+ color: color
+ }
+ }, text);
+ }
+ },
+ ],
+ templateData:[],
+ templateTotal:0,
+
currentRow:null,
showCouponModal:false,
showCoupon:'',
@@ -824,6 +921,7 @@
],
/** 鍙戝竷鍟嗗搧鍩烘湰鍙傛暟 */
baseInfoForm: {
+ customizeFlag:"",
virtualGoodsType:"",
salesModel: "RETAIL",
/** 鍟嗗搧鐩稿唽鍒楄〃 */
@@ -922,6 +1020,8 @@
"quantity",
"couponName",
"couponId",
+ "customizeTemplateName",
+ "customizetemplateId",
// "alertQuantity",
"specId",
"specValueId",
@@ -947,7 +1047,23 @@
}
},
methods: {
- showCouponListModal(row){
+ showTemplateListModal(event,row){
+ if (event.target.classList.contains('ivu-icon-ios-close-circle') ||
+ event.target.closest('.ivu-input-wrapper-clear-icon')) {
+ return; // 濡傛灉鏄竻闄ゆ寜閽紝涓嶆墽琛屽悗缁�昏緫
+ }
+ console.log(row)
+ console.log("瑙﹀彂鐐瑰嚮")
+ this.showTemplateModal = true;
+ this.showTemplate='';
+ this.getTemplateDataList()
+ this.currentRow = row;
+ },
+ showCouponListModal(event,row){
+ if (event.target.classList.contains('ivu-icon-ios-close-circle') ||
+ event.target.closest('.ivu-input-wrapper-clear-icon')) {
+ return; // 濡傛灉鏄竻闄ゆ寜閽紝涓嶆墽琛屽悗缁�昏緫
+ }
this.showCouponModal = true;
this.showCoupon ='';
this.getCouponDataList()
@@ -956,6 +1072,18 @@
handleGoodsType(){
//閲嶆柊娓叉煋
this.renderTableData(this.skuTableData);
+ },
+ getTemplateDataList() {
+ // 鑾峰彇鏁版嵁
+ this.templateLoading = true;
+ API_GOODS_CUSTOMEIZE.getPage(this.templateSearchForm).then((res) => {
+ this.templateLoading = false;
+ if (res.code === 200) {
+ this.templateData = res.data;
+ this.templateTotal = res.total;
+ }
+ });
+ this.templateLoading = false;
},
getCouponDataList() {
// 鑾峰彇鏁版嵁
@@ -969,6 +1097,16 @@
});
this.couponLoading = false;
},
+ templateHandleRowClick(currentRow ,oldCurrentRow){
+ this.showTemplate = currentRow.templateName;
+ this.$set(this.currentRow, 'customizeTemplateName', currentRow.templateName);
+ this.currentRow.customizeTemplateId = currentRow.id
+ console.log(this.currentRow)
+ this.updateSkuTable(this.currentRow,"customizeTemplateName")
+ this.updateSkuTable(this.currentRow,"customizeTemplateId")
+ console.log(this.skuTableData)
+ },
+
// 澶勭悊琛岀偣鍑讳簨浠�
handleRowClick(currentRow ,oldCurrentRow){
this.showCoupon = currentRow.couponName;
@@ -978,6 +1116,15 @@
this.updateSkuTable(this.currentRow,"couponName")
this.updateSkuTable(this.currentRow,"couponId")
console.log(this.skuTableData)
+ },
+ templateChangePage(v){
+ this.templateSearchForm.pageNumber = v;
+ this.getTemplateDataList();
+ },
+ templateChangePageSize(v){
+ this.templateSearchForm.pageNumber = 1;
+ this.templateSearchForm.pageSize = v;
+ this.getTemplateDataList();
},
couponChangePage(v) {
// 鏀瑰彉椤电爜
@@ -1548,6 +1695,8 @@
// alertQuantity: e.alertQuantity,
couponName:e.couponName,
couponId:e.couponId,
+ customizeTemplateName:e.customizeTemplateName,
+ customizeTemplateId:e.customizeTemplateId,
weight: e.weight,
};
if (e.goodsGalleryList && e.goodsGalleryList.length >= 1) {
@@ -1901,6 +2050,8 @@
// find.alertQuantity && (find.alertQuantity = "");
find.couponName && (find.couponName = "");
find.couponId && (find.couponId = "");
+ find.customizeTemplateName && (find.customizeTemplateName = "");
+ find.customizeTemplateId && (find.customizeTemplateId ="");
find.weight && (find.weight = "");
this.skuTableData.splice(this.skuTableData.length, 0, find);
@@ -1917,6 +2068,8 @@
find.quantity && (find.quantity = "");
find.couponName && (find.couponName = "");
find.couponId && (find.couponId = "");
+ find.customizeTemplateName && (find.customizeTemplateName = "");
+ find.customizeTemplateId && (find.customizeTemplateId ="");
// find.alertQuantity && (find.alertQuantity = "");
find.weight && (find.weight = "");
@@ -2012,11 +2165,18 @@
if (this.baseInfoForm.goodsType ==="VIRTUAL_GOODS" && this.baseInfoForm.virtualGoodsType==="COUPON"){
pushData.push(
{
- title:"浼樻儬鍗�",
+ title:"浼樻儬鍔�",
slot:"COUPON"
}
)
}
+ if(this.baseInfoForm.goodsType==="PHYSICAL_GOODS" &&this.baseInfoForm.customizeFlag==="CUSTOMIZE"){
+ pushData.push({
+ title:"瀹氬埗鍟嗗搧妯℃澘",
+ slot:"CUSTOMIZE"
+ })
+ }
+
pushData.push(
{
title: "搴撳瓨",
@@ -2070,6 +2230,7 @@
sn: skus[index].sn,
quantity: skus[index].quantity,
coupon: skus[index].coupon,
+ customize: skus[index].customize,
cost: skus[index].cost,
price: skus[index].price,
// [spec[0].name]: skus[index][spec[0].name] ? skus[index][spec[0].name] : specItem.value,
@@ -2219,6 +2380,7 @@
},
/** 娣诲姞鍟嗗搧 **/
save() {
+ console.log(this.skuTableData)
try {
this.submitLoading = true;
this.$refs["baseInfoForm"].validate((valid) => {
@@ -2271,19 +2433,34 @@
cost: 1,
price: sku.price,
quantity: sku.quantity,
- couponName:sku.couponName,
- couponId:sku.couponId,
+ couponName:this.baseInfoForm.virtualGoodsType === "COUPON" ? sku.couponName:null,
+ couponId:this.baseInfoForm.virtualGoodsType === "COUPON" ? sku.couponId:null,
+ customizeTemplateName:this.baseInfoForm.customizeFlag === "CUSTOMIZE" ? sku.customizeTemplateName : null,
+ customizeTemplateId:this.baseInfoForm.customizeFlag === "CUSTOMIZE" ? sku.customizeTemplateId :null,
// alertQuantity: sku.alertQuantity,
sn: sku.sn,
images: [],
};
- if(this.baseInfoForm.goodsType === "VIRTUAL_GOODS"){
+ if(this.baseInfoForm.goodsType === "VIRTUAL_GOODS" &&
+ this.baseInfoForm.virtualGoodsType === "COUPON"
+ ){
if (sku.couponId === null || sku.couponId === undefined){
this.$Message.error("璇烽�夋嫨浼樻儬鍔�")
return;
}
if (sku.couponName === null || sku.couponName === undefined){
this.$Message.error("璇烽�夋嫨浼樻儬鍔�")
+ return;
+ }
+ }
+ if(this.baseInfoForm.goodsType === "PHYSICAL_GOODS" &&
+ this.baseInfoForm.customizeFlag === "CUSTOMIZE"){
+ if (sku.customizeTemplateId === null || sku.customizeTemplateId === undefined){
+ this.$Message.error("璇烽�夋嫨瀹氬埗妯℃澘")
+ return;
+ }
+ if (sku.customizeTemplateName === null || sku.customizeTemplateName === undefined){
+ this.$Message.error("璇烽�夋嫨瀹氬埗妯℃澘")
return;
}
}
@@ -2332,6 +2509,7 @@
? (submit.recommend = true)
: (submit.recommend = false);
if (this.goodsId) {
+ console.log(this.submit)
API_GOODS.editGoods(this.goodsId, submit).then((res) => {
if (res.success) {
this.submitLoading = false;
@@ -2435,8 +2613,8 @@
// todo 鏂囦欢涓婁紶
async upLoadImg(file) {
console.log(file, this.count++);
- if (this.listImages.length >= 5) {
- this.$Message.error("鍥剧墖涓婁紶涓嶈兘瓒呰繃5涓�");
+ if (this.listImages.length >= 10) {
+ this.$Message.error("鍥剧墖涓婁紶涓嶈兘瓒呰繃10涓�");
return;
}
try {
@@ -2530,6 +2708,7 @@
},
},
mounted() {
+
this.accessToken = {
accessToken: this.getStore("accessToken"),
};
@@ -2551,7 +2730,7 @@
this.categoryId = cateId[2];
this.baseInfoForm.categoryPath = cateId.toString();
this.baseInfoForm.goodsType = this.firstData.goodsType;
-
+ console.log(this.baseInfoForm)
if (this.categoryId != null && this.categoryId !== '') {
/** 鑾峰彇璇ュ晢鍩庡垎绫讳笅 鍟嗗搧鍙傛暟淇℃伅 */
--
Gitblit v1.8.0