2
This commit is contained in:
@@ -299,7 +299,8 @@ export default {
|
|||||||
skuName: '',
|
skuName: '',
|
||||||
owner: 'g',
|
owner: 'g',
|
||||||
amount: 5, // 默认5元
|
amount: 5, // 默认5元
|
||||||
quantity: 10 // 默认10
|
quantity: 10, // 默认10
|
||||||
|
queryResult: null // 保存查询到的商品信息,包含materialUrl等
|
||||||
},
|
},
|
||||||
queryLoading: false, // 查询商品信息加载状态
|
queryLoading: false, // 查询商品信息加载状态
|
||||||
createRules: {
|
createRules: {
|
||||||
@@ -393,7 +394,8 @@ export default {
|
|||||||
skuName: '',
|
skuName: '',
|
||||||
owner: 'g',
|
owner: 'g',
|
||||||
amount: 5, // 默认5元
|
amount: 5, // 默认5元
|
||||||
quantity: 10 // 默认10
|
quantity: 10, // 默认10
|
||||||
|
queryResult: null // 查询结果
|
||||||
}
|
}
|
||||||
this.createDialogVisible = true
|
this.createDialogVisible = true
|
||||||
},
|
},
|
||||||
@@ -450,16 +452,24 @@ export default {
|
|||||||
console.log('提取的商品信息:', productInfo)
|
console.log('提取的商品信息:', productInfo)
|
||||||
|
|
||||||
if (productInfo) {
|
if (productInfo) {
|
||||||
|
// 保存完整的查询结果
|
||||||
|
this.createForm.queryResult = productInfo
|
||||||
|
|
||||||
// 自动填充商品信息
|
// 自动填充商品信息
|
||||||
this.createForm.skuName = productInfo.skuName || productInfo.title || productInfo.productName || productInfo.cleanSkuName || ''
|
this.createForm.skuName = productInfo.skuName || productInfo.title || productInfo.productName || productInfo.cleanSkuName || ''
|
||||||
// owner字段:'p'表示POP,'g'表示自营,其他默认'g'
|
// owner字段:'p'表示POP,'g'表示自营,其他默认'g'
|
||||||
const ownerValue = productInfo.owner || (productInfo.popId ? 'pop' : 'g') || 'g'
|
const ownerValue = productInfo.owner || (productInfo.popId ? 'pop' : 'g') || 'g'
|
||||||
this.createForm.owner = ownerValue === 'p' ? 'pop' : (ownerValue === 'pop' ? 'pop' : 'g')
|
this.createForm.owner = ownerValue === 'p' ? 'pop' : (ownerValue === 'pop' ? 'pop' : 'g')
|
||||||
|
|
||||||
// 如果有materialUrl,可以用于后续创建礼金
|
// 保存查询到的materialUrl或spuid,用于后续创建礼金
|
||||||
if (productInfo.materialUrl && !this.createForm.materialUrl.includes('jingfen.jd.com')) {
|
// 优先使用jingfen链接的materialUrl,如果没有则使用spuid
|
||||||
// 如果用户输入的是普通链接,可以使用查询到的materialUrl(jingfen链接)
|
if (productInfo.materialUrl) {
|
||||||
// 但为了不丢失用户输入,这里先不更新
|
// 保存materialUrl到查询结果中,创建礼金时使用
|
||||||
|
console.log('查询到的materialUrl:', productInfo.materialUrl)
|
||||||
|
}
|
||||||
|
if (productInfo.spuid) {
|
||||||
|
// 保存spuid(SKU ID),可以用于创建礼金
|
||||||
|
console.log('查询到的spuid:', productInfo.spuid)
|
||||||
}
|
}
|
||||||
|
|
||||||
this.$modal.msgSuccess('商品信息查询成功:' + (this.createForm.owner === 'g' ? '自营' : 'POP'))
|
this.$modal.msgSuccess('商品信息查询成功:' + (this.createForm.owner === 'g' ? '自营' : 'POP'))
|
||||||
@@ -538,15 +548,39 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 根据提取结果设置skuId或materialUrl
|
// 根据提取结果设置skuId或materialUrl
|
||||||
if (isUrl && skuId) {
|
// 优先使用查询商品信息时获取的数据
|
||||||
// 如果从URL中提取到了SKU ID,优先使用skuId
|
if (this.createForm.queryResult) {
|
||||||
params.skuId = skuId
|
// 如果查询过商品信息,优先使用查询结果中的materialUrl或spuid
|
||||||
} else if (isUrl) {
|
const queryResult = this.createForm.queryResult
|
||||||
// 如果提取不到SKU ID,使用原始URL
|
if (queryResult.materialUrl) {
|
||||||
params.materialUrl = materialUrl
|
// 优先使用jingfen链接
|
||||||
|
params.materialUrl = queryResult.materialUrl
|
||||||
|
console.log('使用查询到的materialUrl:', queryResult.materialUrl)
|
||||||
|
} else if (queryResult.spuid && /^\d+$/.test(queryResult.spuid)) {
|
||||||
|
// 如果没有materialUrl,使用spuid(SKU ID)
|
||||||
|
params.skuId = queryResult.spuid
|
||||||
|
console.log('使用查询到的spuid:', queryResult.spuid)
|
||||||
|
} else if (isUrl && skuId && /^\d+$/.test(skuId)) {
|
||||||
|
// 从用户输入的URL中提取SKU ID
|
||||||
|
params.skuId = skuId
|
||||||
|
} else {
|
||||||
|
params.materialUrl = materialUrl
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// 纯数字,作为SKU ID
|
// 没有查询过商品信息,使用用户输入的
|
||||||
params.skuId = skuId
|
if (isUrl && skuId && /^\d+$/.test(skuId)) {
|
||||||
|
// 如果从URL中提取到了纯数字SKU ID,优先使用skuId
|
||||||
|
params.skuId = skuId
|
||||||
|
} else if (isUrl) {
|
||||||
|
// 如果提取不到纯数字SKU ID,使用原始URL作为materialUrl
|
||||||
|
params.materialUrl = materialUrl
|
||||||
|
} else if (/^\d+$/.test(skuId)) {
|
||||||
|
// 纯数字,作为SKU ID
|
||||||
|
params.skuId = skuId
|
||||||
|
} else {
|
||||||
|
// 其他情况,作为materialUrl
|
||||||
|
params.materialUrl = materialUrl
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 调用创建礼金接口
|
// 调用创建礼金接口
|
||||||
@@ -566,14 +600,42 @@ export default {
|
|||||||
if (isSuccess) {
|
if (isSuccess) {
|
||||||
// 解析返回的giftCouponKey(参考xbmessage中的处理方式)
|
// 解析返回的giftCouponKey(参考xbmessage中的处理方式)
|
||||||
let giftKey = null
|
let giftKey = null
|
||||||
|
|
||||||
|
// 先打印data的详细信息
|
||||||
|
console.log('返回的data类型:', typeof res.data, 'data内容:', res.data)
|
||||||
|
|
||||||
if (typeof res.data === 'string') {
|
if (typeof res.data === 'string') {
|
||||||
giftKey = res.data
|
// 如果是字符串,尝试解析
|
||||||
} else if (res.data) {
|
try {
|
||||||
// 尝试多种可能的字段名
|
const parsed = JSON.parse(res.data)
|
||||||
giftKey = res.data.giftCouponKey || res.data.giftKey || (res.data.data && (res.data.data.giftCouponKey || res.data.data.giftKey))
|
console.log('data字符串解析后:', parsed)
|
||||||
|
giftKey = parsed.giftCouponKey || parsed.giftKey
|
||||||
|
} catch (e) {
|
||||||
|
// 如果解析失败,可能就是字符串本身
|
||||||
|
giftKey = res.data
|
||||||
|
}
|
||||||
|
} else if (res.data && typeof res.data === 'object') {
|
||||||
|
// 尝试多种可能的字段名(优先顺序很重要)
|
||||||
|
// 1. 直接获取 giftCouponKey
|
||||||
|
if (res.data.giftCouponKey) {
|
||||||
|
giftKey = res.data.giftCouponKey
|
||||||
|
}
|
||||||
|
// 2. 获取 giftKey
|
||||||
|
else if (res.data.giftKey) {
|
||||||
|
giftKey = res.data.giftKey
|
||||||
|
}
|
||||||
|
// 3. 如果data里面还有data对象(嵌套情况)
|
||||||
|
else if (res.data.data && typeof res.data.data === 'object') {
|
||||||
|
giftKey = res.data.data.giftCouponKey || res.data.data.giftKey
|
||||||
|
}
|
||||||
|
// 4. 如果data是数组,取第一个
|
||||||
|
else if (Array.isArray(res.data) && res.data.length > 0) {
|
||||||
|
const first = res.data[0]
|
||||||
|
giftKey = first.giftCouponKey || first.giftKey
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('解析到的礼金Key:', giftKey)
|
console.log('解析到的礼金Key:', giftKey, '完整data结构:', JSON.stringify(res.data, null, 2))
|
||||||
|
|
||||||
if (giftKey) {
|
if (giftKey) {
|
||||||
// 可选:自动生成短链(参考JD项目的完整流程)
|
// 可选:自动生成短链(参考JD项目的完整流程)
|
||||||
@@ -619,7 +681,9 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
// 没有礼金Key,但接口返回成功,可能是其他格式
|
// 没有礼金Key,但接口返回成功,可能是其他格式
|
||||||
console.warn('未找到礼金Key,完整返回:', res)
|
console.warn('未找到礼金Key,完整返回:', res)
|
||||||
this.$modal.msgWarning('礼金创建完成,但未返回礼金Key。返回数据:' + JSON.stringify(res.data).substring(0, 100))
|
console.warn('data的完整内容:', JSON.stringify(res.data, null, 2))
|
||||||
|
// 即使没有Key,也提示成功,因为接口返回了code:200
|
||||||
|
this.$modal.msgWarning('礼金创建完成,但未在返回数据中找到礼金Key。请查看控制台日志或联系技术支持。')
|
||||||
}
|
}
|
||||||
|
|
||||||
// 关闭对话框并刷新
|
// 关闭对话框并刷新
|
||||||
|
|||||||
Reference in New Issue
Block a user