1
This commit is contained in:
@@ -154,12 +154,15 @@
|
|||||||
<el-form-item label="商品链接/SKU" prop="materialUrl">
|
<el-form-item label="商品链接/SKU" prop="materialUrl">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="createForm.materialUrl"
|
v-model="createForm.materialUrl"
|
||||||
placeholder="请输入商品链接或SKU ID,回车或点击查询按钮查询商品信息"
|
placeholder="请输入商品链接或SKU ID,必须先点击查询按钮获取商品信息"
|
||||||
@keyup.enter.native="queryProductInfo"
|
@keyup.enter.native="queryProductInfo"
|
||||||
>
|
>
|
||||||
<el-button slot="append" icon="el-icon-search" @click="queryProductInfo" :loading="queryLoading">查询</el-button>
|
<el-button slot="append" icon="el-icon-search" @click="queryProductInfo" :loading="queryLoading">查询</el-button>
|
||||||
</el-input>
|
</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>
|
||||||
<el-form-item label="商品名称" prop="skuName">
|
<el-form-item label="商品名称" prop="skuName">
|
||||||
<el-input v-model="createForm.skuName" placeholder="查询商品信息后自动填充" :disabled="true" />
|
<el-input v-model="createForm.skuName" placeholder="查询商品信息后自动填充" :disabled="true" />
|
||||||
@@ -548,38 +551,80 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 根据提取结果设置skuId或materialUrl
|
// 根据提取结果设置skuId或materialUrl
|
||||||
|
// 参考JD项目:idOrUrl = skuId != null && !skuId.trim().isEmpty() ? skuId : materialUrl
|
||||||
// 优先使用查询商品信息时获取的数据
|
// 优先使用查询商品信息时获取的数据
|
||||||
if (this.createForm.queryResult) {
|
if (this.createForm.queryResult) {
|
||||||
// 如果查询过商品信息,优先使用查询结果中的materialUrl或spuid
|
// 如果查询过商品信息,优先使用查询结果中的spuid(SKU ID)或materialUrl
|
||||||
const queryResult = this.createForm.queryResult
|
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
|
params.materialUrl = queryResult.materialUrl
|
||||||
console.log('使用查询到的materialUrl:', queryResult.materialUrl)
|
console.log('使用查询到的materialUrl:', queryResult.materialUrl)
|
||||||
} else if (queryResult.spuid && /^\d+$/.test(queryResult.spuid)) {
|
}
|
||||||
// 如果没有materialUrl,使用spuid(SKU ID)
|
// 3. 降级:从用户输入的URL中提取SKU ID
|
||||||
params.skuId = queryResult.spuid
|
else if (isUrl && skuId && /^\d+$/.test(skuId)) {
|
||||||
console.log('使用查询到的spuid:', queryResult.spuid)
|
|
||||||
} else if (isUrl && skuId && /^\d+$/.test(skuId)) {
|
|
||||||
// 从用户输入的URL中提取SKU ID
|
|
||||||
params.skuId = skuId
|
params.skuId = skuId
|
||||||
} else {
|
console.log('使用从URL提取的SKU ID:', skuId)
|
||||||
|
}
|
||||||
|
// 4. 最后降级:使用用户输入的原始URL(但短链可能不行)
|
||||||
|
else {
|
||||||
params.materialUrl = materialUrl
|
params.materialUrl = materialUrl
|
||||||
|
console.log('使用用户输入的原始URL(可能是短链,可能不工作):', materialUrl)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// 没有查询过商品信息,使用用户输入的
|
// 没有查询过商品信息,使用用户输入的
|
||||||
if (isUrl && skuId && /^\d+$/.test(skuId)) {
|
if (isUrl && skuId && /^\d+$/.test(skuId)) {
|
||||||
// 如果从URL中提取到了纯数字SKU ID,优先使用skuId
|
// 如果从URL中提取到了纯数字SKU ID,优先使用skuId
|
||||||
params.skuId = skuId
|
params.skuId = skuId
|
||||||
|
console.log('使用从URL提取的SKU ID:', skuId)
|
||||||
} else if (isUrl) {
|
} else if (isUrl) {
|
||||||
// 如果提取不到纯数字SKU ID,使用原始URL作为materialUrl
|
// 如果提取不到纯数字SKU ID,使用原始URL作为materialUrl
|
||||||
|
// 注意:短链(u.jd.com)可能无法用于创建礼金
|
||||||
params.materialUrl = materialUrl
|
params.materialUrl = materialUrl
|
||||||
|
console.log('使用用户输入的URL(可能是短链,可能不工作):', materialUrl)
|
||||||
} else if (/^\d+$/.test(skuId)) {
|
} else if (/^\d+$/.test(skuId)) {
|
||||||
// 纯数字,作为SKU ID
|
// 纯数字,作为SKU ID
|
||||||
params.skuId = skuId
|
params.skuId = skuId
|
||||||
|
console.log('使用纯数字SKU ID:', skuId)
|
||||||
} else {
|
} else {
|
||||||
// 其他情况,作为materialUrl
|
// 其他情况,作为materialUrl
|
||||||
params.materialUrl = 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