1
This commit is contained in:
@@ -154,12 +154,15 @@
|
||||
<el-form-item label="商品链接/SKU" prop="materialUrl">
|
||||
<el-input
|
||||
v-model="createForm.materialUrl"
|
||||
placeholder="请输入商品链接或SKU ID,回车或点击查询按钮查询商品信息"
|
||||
placeholder="请输入商品链接或SKU ID,必须先点击查询按钮获取商品信息"
|
||||
@keyup.enter.native="queryProductInfo"
|
||||
>
|
||||
<el-button slot="append" icon="el-icon-search" @click="queryProductInfo" :loading="queryLoading">查询</el-button>
|
||||
</el-input>
|
||||
<div style="color: #909399; font-size: 12px; margin-top: 5px;">支持:京东商品链接或SKU ID,输入后点击查询自动获取商品信息</div>
|
||||
<div style="color: #E6A23C; font-size: 12px; margin-top: 5px;">
|
||||
<i class="el-icon-warning"></i>
|
||||
<strong>重要:</strong>请先点击"查询"按钮获取商品信息(特别是SKU ID),然后再创建礼金。直接使用短链可能创建失败。
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="商品名称" prop="skuName">
|
||||
<el-input v-model="createForm.skuName" placeholder="查询商品信息后自动填充" :disabled="true" />
|
||||
@@ -548,38 +551,80 @@ export default {
|
||||
}
|
||||
|
||||
// 根据提取结果设置skuId或materialUrl
|
||||
// 参考JD项目:idOrUrl = skuId != null && !skuId.trim().isEmpty() ? skuId : materialUrl
|
||||
// 优先使用查询商品信息时获取的数据
|
||||
if (this.createForm.queryResult) {
|
||||
// 如果查询过商品信息,优先使用查询结果中的materialUrl或spuid
|
||||
// 如果查询过商品信息,优先使用查询结果中的spuid(SKU ID)或materialUrl
|
||||
const queryResult = this.createForm.queryResult
|
||||
if (queryResult.materialUrl) {
|
||||
// 优先使用jingfen链接
|
||||
|
||||
// 1. 优先使用spuid(纯数字SKU ID)- 这是最准确的
|
||||
if (queryResult.spuid && /^\d+$/.test(String(queryResult.spuid))) {
|
||||
params.skuId = String(queryResult.spuid)
|
||||
console.log('使用查询到的spuid(SKU ID):', queryResult.spuid)
|
||||
}
|
||||
// 2. 如果没有spuid,使用materialUrl(jingfen链接)
|
||||
else if (queryResult.materialUrl) {
|
||||
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
|
||||
}
|
||||
// 3. 降级:从用户输入的URL中提取SKU ID
|
||||
else if (isUrl && skuId && /^\d+$/.test(skuId)) {
|
||||
params.skuId = skuId
|
||||
} else {
|
||||
console.log('使用从URL提取的SKU ID:', skuId)
|
||||
}
|
||||
// 4. 最后降级:使用用户输入的原始URL(但短链可能不行)
|
||||
else {
|
||||
params.materialUrl = materialUrl
|
||||
console.log('使用用户输入的原始URL(可能是短链,可能不工作):', materialUrl)
|
||||
}
|
||||
} else {
|
||||
// 没有查询过商品信息,使用用户输入的
|
||||
if (isUrl && skuId && /^\d+$/.test(skuId)) {
|
||||
// 如果从URL中提取到了纯数字SKU ID,优先使用skuId
|
||||
params.skuId = skuId
|
||||
console.log('使用从URL提取的SKU ID:', skuId)
|
||||
} else if (isUrl) {
|
||||
// 如果提取不到纯数字SKU ID,使用原始URL作为materialUrl
|
||||
// 注意:短链(u.jd.com)可能无法用于创建礼金
|
||||
params.materialUrl = materialUrl
|
||||
console.log('使用用户输入的URL(可能是短链,可能不工作):', materialUrl)
|
||||
} else if (/^\d+$/.test(skuId)) {
|
||||
// 纯数字,作为SKU ID
|
||||
params.skuId = skuId
|
||||
console.log('使用纯数字SKU ID:', skuId)
|
||||
} else {
|
||||
// 其他情况,作为materialUrl
|
||||
params.materialUrl = materialUrl
|
||||
console.log('使用其他格式的URL:', materialUrl)
|
||||
}
|
||||
}
|
||||
|
||||
// 确保必须有skuId或materialUrl之一
|
||||
if (!params.skuId && !params.materialUrl) {
|
||||
this.$modal.msgError('无法确定商品标识,请先查询商品信息或输入有效的SKU ID')
|
||||
this.createLoading = false
|
||||
return
|
||||
}
|
||||
|
||||
// 如果使用的是短链(u.jd.com),提示必须查询
|
||||
if (params.materialUrl && params.materialUrl.includes('u.jd.com')) {
|
||||
this.$modal.msgError('不能直接使用短链创建礼金!请先点击"查询"按钮获取商品信息(SKU ID或jingfen链接),然后再创建。')
|
||||
this.createLoading = false
|
||||
return
|
||||
}
|
||||
|
||||
// 如果没有查询过,且使用的是普通链接而不是SKU ID,也提示
|
||||
if (!this.createForm.queryResult && params.materialUrl && !params.skuId) {
|
||||
const confirmMsg = '检测到您未查询商品信息。建议先点击"查询"按钮获取准确的商品信息(SKU ID),这样可以提高创建成功率。是否继续使用当前链接创建?'
|
||||
try {
|
||||
await this.$confirm(confirmMsg, '提示', {
|
||||
confirmButtonText: '继续创建',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
})
|
||||
} catch {
|
||||
this.createLoading = false
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user