diff --git a/src/views/system/xbmessage/index.vue b/src/views/system/xbmessage/index.vue index 7ef13d9..a13b06e 100644 --- a/src/views/system/xbmessage/index.vue +++ b/src/views/system/xbmessage/index.vue @@ -493,14 +493,61 @@ export default { const images = (parsedQuery && parsedQuery.images && Array.isArray(parsedQuery.images)) ? parsedQuery.images : []; // 记录当前线报项,便于发品成功后加入常用 this.currentXbMessageItem = child; - this.publishInitialData = { + + // 先尝试生成转链文案,成功后带文案打开发品弹窗 + const materialUrl = this.getJsonValue(child.jsonQueryResult, 'materialUrl'); + const skuName = child.skuName; + const inputContent = materialUrl || skuName || ''; + + // 预先设置基本信息,等待文案生成后补充 + const baseInitialData = { title: this.decodeUnicode(child.skuName) || '', content: '', images: images, originalPrice: parsedQuery && parsedQuery.priceInfo ? Number(parsedQuery.priceInfo.price || parsedQuery.priceInfo.lowestCouponPrice || 0) : null, wenanOptions: [] }; - this.publishDialogVisible = true; + + if (!inputContent) { + // 无法生成转链输入,直接打开(无文案) + this.publishInitialData = baseInitialData; + this.publishDialogVisible = true; + return; + } + + try { + this.$modal && this.$modal.loading('正在生成转链文案,请稍候…'); + } catch(e) { /* 忽略 */ } + + generatePromotionContent({ promotionContent: inputContent }).then(res => { + let result = res && (res.msg || res.data); + let arr = []; + try { + if (typeof result === 'string') { + arr = JSON.parse(result); + } else if (Array.isArray(result)) { + arr = result; + } + } catch (e) { arr = []; } + + let wenanOptions = []; + if (Array.isArray(arr) && arr.length > 0) { + const first = arr[0] || {}; + const wenanArr = Array.isArray(first.wenan) ? first.wenan : []; + wenanOptions = wenanArr.map((w, i) => ({ label: w.type || `版本${i+1}`, content: w.content || '' })); + } + + this.publishInitialData = Object.assign({}, baseInitialData, { + content: (wenanOptions[0] && wenanOptions[0].content) || '', + wenanOptions + }); + }).catch(() => { + // 忽略错误,仍然打开弹窗(无文案) + this.publishInitialData = baseInitialData; + }).finally(() => { + try { this.$modal && this.$modal.closeLoading(); } catch(e) { /* 忽略 */ } + this.publishDialogVisible = true; + }); }, /** 查询消息列表 */ getList() {