Merge remote-tracking branch 'origin/feature/v1.2灵机空间-内容上传审核_rxd' into test
# Conflicts: # pnpm-lock.yaml # src/components/text-over-tips/index.vue # src/layouts/Basic.vue # src/main.ts # src/router/constants.ts # src/router/typeings.d.ts # src/utils/tools.ts # vite.config.ts
This commit is contained in:
18
pnpm-lock.yaml
generated
18
pnpm-lock.yaml
generated
@ -1758,8 +1758,8 @@ packages:
|
|||||||
copy-to@2.0.1:
|
copy-to@2.0.1:
|
||||||
resolution: {integrity: sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w==}
|
resolution: {integrity: sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w==}
|
||||||
|
|
||||||
core-js@3.44.0:
|
core-js@3.45.0:
|
||||||
resolution: {integrity: sha512-aFCtd4l6GvAXwVEh3XbbVqJGHDJt0OZRa+5ePGx3LLwi12WfexqQxcsohb2wgsa/92xtl19Hd66G/L+TaAxDMw==}
|
resolution: {integrity: sha512-c2KZL9lP4DjkN3hk/an4pWn5b5ZefhRJnAc42n6LJ19kSnbeRbdQZE5dSeE2LBol1OwJD3X1BQvFTAsa8ReeDA==}
|
||||||
|
|
||||||
core-util-is@1.0.3:
|
core-util-is@1.0.3:
|
||||||
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
|
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
|
||||||
@ -3608,11 +3608,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==}
|
resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
marked@16.1.1:
|
|
||||||
resolution: {integrity: sha512-ij/2lXfCRT71L6u0M29tJPhP0bM5shLL3u5BePhFwPELj2blMJ6GDtD7PfJhRLhJ/c2UwrK17ySVcDzy2YHjHQ==}
|
|
||||||
engines: {node: '>= 20'}
|
|
||||||
hasBin: true
|
|
||||||
|
|
||||||
match-file@0.2.2:
|
match-file@0.2.2:
|
||||||
resolution: {integrity: sha512-BDEZIcrBSnooL0zC72Yt3z1HhJiCq+2pMnHKVDeYN/cilCrz3KrpqKPm4ZOfWCoDolRl4QyKQpfRlQWF6PqnjQ==}
|
resolution: {integrity: sha512-BDEZIcrBSnooL0zC72Yt3z1HhJiCq+2pMnHKVDeYN/cilCrz3KrpqKPm4ZOfWCoDolRl4QyKQpfRlQWF6PqnjQ==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
@ -7427,7 +7422,7 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@babel/runtime': 7.28.2
|
'@babel/runtime': 7.28.2
|
||||||
'@types/raf': 3.4.3
|
'@types/raf': 3.4.3
|
||||||
core-js: 3.44.0
|
core-js: 3.45.0
|
||||||
raf: 3.4.1
|
raf: 3.4.1
|
||||||
regenerator-runtime: 0.13.11
|
regenerator-runtime: 0.13.11
|
||||||
rgbcolor: 1.0.1
|
rgbcolor: 1.0.1
|
||||||
@ -7649,7 +7644,7 @@ snapshots:
|
|||||||
|
|
||||||
copy-to@2.0.1: {}
|
copy-to@2.0.1: {}
|
||||||
|
|
||||||
core-js@3.44.0:
|
core-js@3.45.0:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
core-util-is@1.0.3: {}
|
core-util-is@1.0.3: {}
|
||||||
@ -7881,6 +7876,7 @@ snapshots:
|
|||||||
dompurify@3.2.6:
|
dompurify@3.2.6:
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/trusted-types': 2.0.7
|
'@types/trusted-types': 2.0.7
|
||||||
|
optional: true
|
||||||
|
|
||||||
domutils@1.7.0:
|
domutils@1.7.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -9482,7 +9478,7 @@ snapshots:
|
|||||||
fflate: 0.8.2
|
fflate: 0.8.2
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
canvg: 3.0.11
|
canvg: 3.0.11
|
||||||
core-js: 3.44.0
|
core-js: 3.45.0
|
||||||
dompurify: 3.2.6
|
dompurify: 3.2.6
|
||||||
html2canvas: 1.4.1
|
html2canvas: 1.4.1
|
||||||
|
|
||||||
@ -9864,8 +9860,6 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
object-visit: 1.0.1
|
object-visit: 1.0.1
|
||||||
|
|
||||||
marked@16.1.1: {}
|
|
||||||
|
|
||||||
match-file@0.2.2:
|
match-file@0.2.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
is-glob: 3.1.0
|
is-glob: 3.1.0
|
||||||
|
|||||||
@ -51,7 +51,6 @@ const props = defineProps({
|
|||||||
default: false,
|
default: false,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const data = reactive({});
|
const data = reactive({});
|
||||||
const isShow = ref(false);
|
const isShow = ref(false);
|
||||||
const contentStyle = computed(() => {
|
const contentStyle = computed(() => {
|
||||||
|
|||||||
@ -110,10 +110,6 @@ provide('toggleDrawerMenu', () => {
|
|||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
$layout-max-width: 1100px;
|
$layout-max-width: 1100px;
|
||||||
|
|
||||||
.layout {
|
|
||||||
// width: 100%;
|
|
||||||
// height: 100%;
|
|
||||||
}
|
|
||||||
.layout-navbar {
|
.layout-navbar {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 0;
|
top: 0;
|
||||||
|
|||||||
@ -26,4 +26,11 @@ app.component('NoData', NoData);
|
|||||||
app.component('SvgIcon', SvgIcon);
|
app.component('SvgIcon', SvgIcon);
|
||||||
(Object.keys(directives) as Array<keyof typeof directives>).forEach((k) => app.use(directives[k])); // 注册指令
|
(Object.keys(directives) as Array<keyof typeof directives>).forEach((k) => app.use(directives[k])); // 注册指令
|
||||||
|
|
||||||
app.use(store).use(router).mount('#app');
|
app.use(store);
|
||||||
|
app.use(router);
|
||||||
|
|
||||||
|
Object.values(directives).forEach((directive) => {
|
||||||
|
app.use(directive);
|
||||||
|
}); // 注册指令
|
||||||
|
|
||||||
|
app.mount('#app');
|
||||||
|
|||||||
@ -23,10 +23,10 @@ export const DEFAULT_ROUTE = {
|
|||||||
|
|
||||||
export const MENU_GROUP_IDS = {
|
export const MENU_GROUP_IDS = {
|
||||||
DATA_ENGINE_ID: 1, // 全域数据分析
|
DATA_ENGINE_ID: 1, // 全域数据分析
|
||||||
AGENT: 2, // 智能体
|
AGENT: 2,
|
||||||
MANAGEMENT_ID: 3, // 管理中心
|
MANAGEMENT_ID: 3, // 管理中心
|
||||||
PROPERTY_ID: 4, // 资产营销平台
|
PROPERTY_ID: 4, // 资产营销平台
|
||||||
WORK_BENCH_ID: 5, // 工作台
|
WORK_BENCH_ID: 5, // 工作台
|
||||||
WRITER_CREATIVE_GENERATION_WORKSHOP_ID: 6, // 内容稿件-写手侧
|
WRITER_CREATIVE_GENERATION_WORKSHOP_ID: 6, // 内容稿件-写手侧
|
||||||
CREATIVE_GENERATION_WORKSHOP_ID: 7, // 创意生成工坊
|
CREATIVE_GENERATION_WORKSHOP_ID: 7 // 创意生成工坊
|
||||||
};
|
};
|
||||||
|
|||||||
2
src/router/typeings.d.ts
vendored
2
src/router/typeings.d.ts
vendored
@ -14,8 +14,8 @@ declare module 'vue-router' {
|
|||||||
noAffix?: boolean; // if set true, the tag will not affix in the tab-bar
|
noAffix?: boolean; // if set true, the tag will not affix in the tab-bar
|
||||||
ignoreCache?: boolean; // if set true, the page will not be cached
|
ignoreCache?: boolean; // if set true, the page will not be cached
|
||||||
hideSidebar?: boolean;
|
hideSidebar?: boolean;
|
||||||
isAgentRoute?:boolean;
|
|
||||||
hideFooter?: boolean;
|
hideFooter?: boolean;
|
||||||
|
isAgentRoute?:boolean;
|
||||||
requireLogin?: boolean; // 是否需要登陆才能访问
|
requireLogin?: boolean; // 是否需要登陆才能访问
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -397,7 +397,7 @@ export function getImageMainColor(imageUrl: string): Promise<string> {
|
|||||||
const avgColor = {
|
const avgColor = {
|
||||||
r: Math.round(maxGroup.sumR / maxGroup.count),
|
r: Math.round(maxGroup.sumR / maxGroup.count),
|
||||||
g: Math.round(maxGroup.sumG / maxGroup.count),
|
g: Math.round(maxGroup.sumG / maxGroup.count),
|
||||||
b: Math.round(maxGroup.sumB / maxGroup.count),
|
b: Math.round(maxGroup.sumB / maxGroup.count)
|
||||||
};
|
};
|
||||||
|
|
||||||
resolve(`rgb(${avgColor.r},${avgColor.g},${avgColor.b})`);
|
resolve(`rgb(${avgColor.r},${avgColor.g},${avgColor.b})`);
|
||||||
@ -427,38 +427,28 @@ function medianCut(data: Uint8ClampedArray, levels: number): any[] {
|
|||||||
if (a < 128) continue;
|
if (a < 128) continue;
|
||||||
|
|
||||||
colors.push({
|
colors.push({
|
||||||
r,
|
r, g, b,
|
||||||
g,
|
|
||||||
b,
|
|
||||||
count: 1,
|
count: 1,
|
||||||
sumR: r,
|
sumR: r, sumG: g, sumB: b
|
||||||
sumG: g,
|
|
||||||
sumB: b,
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// 如果没有颜色数据,返回默认白色
|
// 如果没有颜色数据,返回默认白色
|
||||||
if (colors.length === 0) {
|
if (colors.length === 0) {
|
||||||
return [
|
return [{
|
||||||
{
|
count: 1,
|
||||||
count: 1,
|
sumR: 255, sumG: 255, sumB: 255
|
||||||
sumR: 255,
|
}];
|
||||||
sumG: 255,
|
|
||||||
sumB: 255,
|
|
||||||
},
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 开始中位数切分
|
// 开始中位数切分
|
||||||
let colorGroups = [
|
let colorGroups = [{
|
||||||
{
|
colors,
|
||||||
colors,
|
count: colors.length,
|
||||||
count: colors.length,
|
sumR: colors.reduce((sum, c) => sum + c.r, 0),
|
||||||
sumR: colors.reduce((sum, c) => sum + c.r, 0),
|
sumG: colors.reduce((sum, c) => sum + c.g, 0),
|
||||||
sumG: colors.reduce((sum, c) => sum + c.g, 0),
|
sumB: colors.reduce((sum, c) => sum + c.b, 0)
|
||||||
sumB: colors.reduce((sum, c) => sum + c.b, 0),
|
}];
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
||||||
for (let i = 0; i < levels; i++) {
|
for (let i = 0; i < levels; i++) {
|
||||||
const newGroups = [];
|
const newGroups = [];
|
||||||
@ -470,12 +460,12 @@ function medianCut(data: Uint8ClampedArray, levels: number): any[] {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 找出颜色范围最大的通道
|
// 找出颜色范围最大的通道
|
||||||
const rMin = Math.min(...group.colors.map((c) => c.r));
|
const rMin = Math.min(...group.colors.map(c => c.r));
|
||||||
const rMax = Math.max(...group.colors.map((c) => c.r));
|
const rMax = Math.max(...group.colors.map(c => c.r));
|
||||||
const gMin = Math.min(...group.colors.map((c) => c.g));
|
const gMin = Math.min(...group.colors.map(c => c.g));
|
||||||
const gMax = Math.max(...group.colors.map((c) => c.g));
|
const gMax = Math.max(...group.colors.map(c => c.g));
|
||||||
const bMin = Math.min(...group.colors.map((c) => c.b));
|
const bMin = Math.min(...group.colors.map(c => c.b));
|
||||||
const bMax = Math.max(...group.colors.map((c) => c.b));
|
const bMax = Math.max(...group.colors.map(c => c.b));
|
||||||
|
|
||||||
const rRange = rMax - rMin;
|
const rRange = rMax - rMin;
|
||||||
const gRange = gMax - gMin;
|
const gRange = gMax - gMin;
|
||||||
@ -489,9 +479,15 @@ function medianCut(data: Uint8ClampedArray, levels: number): any[] {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 按最大范围通道排序
|
// 按最大范围通道排序
|
||||||
type ColorChannel = 'r' | 'g' | 'b';
|
group.colors.sort((a, b) => {
|
||||||
const safeSortChannel = sortChannel as ColorChannel;
|
if (sortChannel === 'r') {
|
||||||
group.colors.sort((a, b) => a[safeSortChannel] - b[safeSortChannel]);
|
return a.r - b.r;
|
||||||
|
} else if (sortChannel === 'g') {
|
||||||
|
return a.g - b.g;
|
||||||
|
} else {
|
||||||
|
return a.b - b.b;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// 切分中位数
|
// 切分中位数
|
||||||
const mid = Math.floor(group.colors.length / 2);
|
const mid = Math.floor(group.colors.length / 2);
|
||||||
@ -504,7 +500,7 @@ function medianCut(data: Uint8ClampedArray, levels: number): any[] {
|
|||||||
count: group1.length,
|
count: group1.length,
|
||||||
sumR: group1.reduce((sum, c) => sum + c.r, 0),
|
sumR: group1.reduce((sum, c) => sum + c.r, 0),
|
||||||
sumG: group1.reduce((sum, c) => sum + c.g, 0),
|
sumG: group1.reduce((sum, c) => sum + c.g, 0),
|
||||||
sumB: group1.reduce((sum, c) => sum + c.b, 0),
|
sumB: group1.reduce((sum, c) => sum + c.b, 0)
|
||||||
});
|
});
|
||||||
|
|
||||||
newGroups.push({
|
newGroups.push({
|
||||||
@ -512,7 +508,7 @@ function medianCut(data: Uint8ClampedArray, levels: number): any[] {
|
|||||||
count: group2.length,
|
count: group2.length,
|
||||||
sumR: group2.reduce((sum, c) => sum + c.r, 0),
|
sumR: group2.reduce((sum, c) => sum + c.r, 0),
|
||||||
sumG: group2.reduce((sum, c) => sum + c.g, 0),
|
sumG: group2.reduce((sum, c) => sum + c.g, 0),
|
||||||
sumB: group2.reduce((sum, c) => sum + c.b, 0),
|
sumB: group2.reduce((sum, c) => sum + c.b, 0)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -136,7 +136,7 @@ export default {
|
|||||||
});
|
});
|
||||||
if (code === 200) {
|
if (code === 200) {
|
||||||
taskStatus.value = TASK_STATUS.SUCCESS;
|
taskStatus.value = TASK_STATUS.SUCCESS;
|
||||||
works.value = data ? [data] : [];
|
data && works.value.push(data);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -189,8 +189,9 @@ export default {
|
|||||||
<Upload
|
<Upload
|
||||||
action="/"
|
action="/"
|
||||||
draggable
|
draggable
|
||||||
|
multiple
|
||||||
customRequest={handleUpload}
|
customRequest={handleUpload}
|
||||||
accept=".xlsx,.xls,.docx,.doc,.mp4,.mov,.avi,.flv,.wmv"
|
accept=".xlsx,.xls,.docx,.doc,.mp4,.mov,.avi,.flv,.wmv,.m4v"
|
||||||
show-file-list={false}
|
show-file-list={false}
|
||||||
>
|
>
|
||||||
{{
|
{{
|
||||||
|
|||||||
@ -277,7 +277,7 @@ export default {
|
|||||||
onClick={(e) => onDelete(e, item, index)}
|
onClick={(e) => onDelete(e, item, index)}
|
||||||
/>
|
/>
|
||||||
<TextOverTips
|
<TextOverTips
|
||||||
context={item.content}
|
context={item.title}
|
||||||
line={1}
|
line={1}
|
||||||
class={`cts !color-#211F24 mb-8px ${selectCardInfo.value.id === item.id ? 'bold' : ''}`}
|
class={`cts !color-#211F24 mb-8px ${selectCardInfo.value.id === item.id ? 'bold' : ''}`}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@ -158,7 +158,7 @@ export default {
|
|||||||
});
|
});
|
||||||
if (code === 200) {
|
if (code === 200) {
|
||||||
taskStatus.value = TASK_STATUS.SUCCESS;
|
taskStatus.value = TASK_STATUS.SUCCESS;
|
||||||
works.value = data ? [data] : [];
|
data && works.value.push(data);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -220,8 +220,9 @@ export default {
|
|||||||
<Upload
|
<Upload
|
||||||
action="/"
|
action="/"
|
||||||
draggable
|
draggable
|
||||||
|
multiple
|
||||||
customRequest={handleUpload}
|
customRequest={handleUpload}
|
||||||
accept=".xlsx,.xls,.docx,.doc,.mp4,.mov,.avi,.flv,.wmv"
|
accept=".xlsx,.xls,.docx,.doc,.mp4,.mov,.avi,.flv,.wmv,.m4v"
|
||||||
show-file-list={false}
|
show-file-list={false}
|
||||||
>
|
>
|
||||||
{{
|
{{
|
||||||
|
|||||||
@ -278,7 +278,7 @@ export default {
|
|||||||
onClick={(e) => onDelete(e, item, index)}
|
onClick={(e) => onDelete(e, item, index)}
|
||||||
/>
|
/>
|
||||||
<TextOverTips
|
<TextOverTips
|
||||||
context={item.content}
|
context={item.title}
|
||||||
line={1}
|
line={1}
|
||||||
class={`cts !color-#211F24 mb-8px ${selectCardInfo.value.id === item.id ? 'bold' : ''}`}
|
class={`cts !color-#211F24 mb-8px ${selectCardInfo.value.id === item.id ? 'bold' : ''}`}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@ -19,7 +19,7 @@
|
|||||||
class="ignore-export"
|
class="ignore-export"
|
||||||
@onReset="handleReset"
|
@onReset="handleReset"
|
||||||
v-model:query="query"
|
v-model:query="query"
|
||||||
@onSearch="onSearch"
|
@onSearch="handleSearch"
|
||||||
:disabled="loading"
|
:disabled="loading"
|
||||||
></listSearchForm>
|
></listSearchForm>
|
||||||
|
|
||||||
@ -29,6 +29,7 @@
|
|||||||
@onSearch="onSearch"
|
@onSearch="onSearch"
|
||||||
@updateQuery="handleUpdateQuery"
|
@updateQuery="handleUpdateQuery"
|
||||||
/>
|
/>
|
||||||
|
<a-spin v-if="loading" tip="AI分析中" />
|
||||||
|
|
||||||
<div v-if="listData.total > 0" class="pagination-box flex justify-end ignore-export">
|
<div v-if="listData.total > 0" class="pagination-box flex justify-end ignore-export">
|
||||||
<a-pagination
|
<a-pagination
|
||||||
@ -44,10 +45,13 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 投放建议-->
|
<!-- 投放建议-->
|
||||||
<MonthData v-if="tabData == 'placement_guide'" :overview="aiResult.overview"></MonthData>
|
<MonthData v-if="tabData == 'placement_guide'" :overview="aiResult.overview"></MonthData>
|
||||||
|
<PlacementSuggestions
|
||||||
<PlacementSuggestions v-if="tabData == 'placement_guide'" :optimization="aiResult.optimization"></PlacementSuggestions>
|
v-if="tabData == 'placement_guide'"
|
||||||
|
:optimization="aiResult.optimization"
|
||||||
|
></PlacementSuggestions>
|
||||||
|
|
||||||
<div v-if="tabData == 'placement_guide'" class="ignore-export">
|
<div v-if="tabData == 'placement_guide'" class="ignore-export">
|
||||||
<a-space class="down-btn">
|
<a-space class="down-btn">
|
||||||
@ -132,12 +136,9 @@ const onSearch = async () => {
|
|||||||
let result;
|
let result;
|
||||||
if (tabData.value === 'placement_guide') {
|
if (tabData.value === 'placement_guide') {
|
||||||
result = await getPlacementGuide(query);
|
result = await getPlacementGuide(query);
|
||||||
|
console.log(1);
|
||||||
|
|
||||||
placementGuideList.value = result?.data?.data || [];
|
placementGuideList.value = result?.data?.data || [];
|
||||||
if (placementGuideList.value.length > 0 && isGetAi.value) {
|
|
||||||
loading.value = true;
|
|
||||||
syncGetAiResult();
|
|
||||||
startTask();
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
result = await getPlacementGuideHistory(query);
|
result = await getPlacementGuideHistory(query);
|
||||||
guideHistoryList.value = result?.data?.data || [];
|
guideHistoryList.value = result?.data?.data || [];
|
||||||
@ -145,6 +146,16 @@ const onSearch = async () => {
|
|||||||
listData.total = result.data.total;
|
listData.total = result.data.total;
|
||||||
isGetAi.value = true;
|
isGetAi.value = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleSearch = async () => {
|
||||||
|
await onSearch();
|
||||||
|
if (placementGuideList.value.length > 0 && isGetAi.value) {
|
||||||
|
loading.value = true;
|
||||||
|
syncGetAiResult();
|
||||||
|
startTask();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
const aiResult = reactive({
|
const aiResult = reactive({
|
||||||
optimization: [], // 投放建议优化
|
optimization: [], // 投放建议优化
|
||||||
action_guide: [], // 新投放建议生成
|
action_guide: [], // 新投放建议生成
|
||||||
|
|||||||
@ -40,7 +40,7 @@ export default defineConfig(({ mode }: ConfigEnv): UserConfig => {
|
|||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
rewrite: (path) => path.replace(/^\/api/, ''),
|
rewrite: (path) => path.replace(/^\/api/, ''),
|
||||||
// 目标地址
|
// 目标地址
|
||||||
target: 'https://lingjiapi.lvfunai.com/api',
|
target: 'https://lingjiapi.lvfunai.com/api',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user