AIGC部分开发

dev-QQq
HeHaonan 2 years ago
parent 2764d66d89
commit a9e5d76213

@ -113,3 +113,11 @@ export function submit(data) {
params: data,
});
}
//文件上传
export function uploadFile(data) {
return request({
url: "/api/bigModule/uploadFile",
method: "post",
data: data,
});
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 911 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 503 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

@ -16,8 +16,8 @@ axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
const service = axios.create({
// axios中请求配置有baseURL选项表示请求URL公共部分
// baseURL: import.meta.env.VITE_APP_BASE_API,
baseURL:'http://118.31.7.2:9868/',
// baseURL:'http://192.168.2.28:9868/',
// baseURL:'http://118.31.7.2:9868/',
baseURL:'http://192.168.2.16:9868/',
// 超时
timeout: 100000
})

@ -0,0 +1,293 @@
<template>
<div class="app-containere">
<div class="material">
<div class="title">
<img src="@/assets/images/caseIcon.png" alt="" />
<span>任务素材</span>
</div>
<div>
<p>
根据文字描述要求利用推荐的AI工具进行图片修复美化
<br />
1AI消除去除图片中的水印和文字只保留鞋子
<br />
2AI抠图将人物照中的背景去除抠出人物
<br />
3AI扩图将金鱼图片进行尺寸扩展或者周边扩展
</p>
</div>
</div>
<div class="material">
<div class="title">
<img src="@/assets/images/步骤.png" alt="" />
<span>任务提交</span>
<span style="font-size: 13px">(请按照任务素材顺序依次提交)</span>
</div>
<div style="margin-top: 10px; width: 200px">
<el-upload ref="uploadRef" class="upload-demo" :file-list="previewFile1" :auto-upload="false" :on-change="handleChange1" :show-file-list="true" :limit="1">
<el-button type="primary" class="uploadBtn">+任务提交1</el-button>
</el-upload>
</div>
<div style="margin-top: 10px; width: 200px">
<el-upload ref="uploadRef" class="upload-demo" :file-list="previewFile2" :auto-upload="false" :on-change="handleChange2" :show-file-list="true" :limit="1">
<el-button type="primary" class="uploadBtn">+任务提交2</el-button>
</el-upload>
</div>
<div style="margin-top: 10px; width: 200px">
<el-upload ref="uploadRef" class="upload-demo" :file-list="previewFile3" :auto-upload="false" :on-change="handleChange3" :show-file-list="true" :limit="1">
<el-button type="primary" class="uploadBtn">+任务提交3</el-button>
</el-upload>
</div>
</div>
<div class="material" style="margin-top: 20px">
<div class="title">
<img src="@/assets/icons/svg/sxbg.svg" style="width: 30px; height: 30px" />
<span>大模型参考工具</span>
</div>
<div style="display: flex">
<div class="case">
<div class="bgItem">
<img src="@/assets/images/aiPic.png" alt="" />
</div>
<div class="detail">
<div class="title">美图AI文生图</div>
<el-tooltip
popper-class="tooltip"
effect="light"
content="美图A|文生图原是由美图创意平台推出的A|图像创作工具现已集成到美图设计室中用户只需输入文字创意描述并选择自己喜欢的模型风格
点击立即生成即可获得由美图AI创作的一幅画作
"
placement="top-start"
>
<div style="line-height: 24px; font-size: 13px">美图A|文生图原是由美图创意平台推出的A|图像创作工具现已集成到美图设计室中用户只需输入文字创意描述并选择自己喜欢的模型风格 点击立即生成即可获得由美图AI创作的一幅画作</div>
</el-tooltip>
<a class="btn" href="https://www.designkit.com/" target="_blank">
<span>访问官网</span>
</a>
</div>
</div>
<div class="case">
<div class="bgItem">
<img src="@/assets/images/21bc66fba04ca35e7640b1cb1d5d7e4.png" alt="" />
</div>
<div class="detail">
<div class="title">堆友AI</div>
<el-tooltip popper-class="tooltip" effect="light" content="堆友AI是由阿里巴巴设计师团队原创的一个免费可商用的3D头像、3D场景、3D元素等资源网站和在线编辑神器。用户可以通过简洁模式或自由模式进行AI绘画创作选择不同的模型效果生成设计作品并且可以下载、分享图片、进行二次创作抠图和高分辨率处理。" placement="top-start">
<div style="line-height: 24px; font-size: 13px">堆友AI是由阿里巴巴设计师团队原创的一个免费可商用的3D头像3D场景3D元素等资源网站和在线编辑神器用户可以通过简洁模式或自由模式进行AI绘画创作选择不同的模型效果生成设计...</div>
</el-tooltip>
<a class="btn" href="https://d.design/toolbox" target="_blank">
<span>访问官网</span>
</a>
</div>
</div>
<div class="case">
<div class="bgItem">
<img src="@/assets/images/gaodingAi.png" alt="" />
</div>
<div class="detail">
<!-- <div class="icon">
<div class="iconItem">AI工具</div>
<span></span>
<div class="iconItem">AI写作对话</div>
</div> -->
<div class="title">稿定AI</div>
<el-tooltip popper-class="tooltip" effect="light" content="稿定AI是稿定设计提供的一款集合了多种AI设计工具的平台旨在帮助用户快速实现创意设计。它包括AI绘图、AI文案、AI商品图设计、AI素材搜寻以及AI场景图生成等功能满足不同设计需求。用户可以通过输入文案或提供参考图利用AI技术生成画面还可以选择不同风格实现灵感落地和创意表达。" placement="top-start">
<div style="line-height: 24px; font-size: 13px">稿定AI是稿定设计提供的一款集合了多种AI设计工具的平台旨在帮助用户快速实现创意设计它包括AI绘图AI文案AI商品图设计AI素材搜寻以及AI场景图生成等功能满足不同设计需求用户可以...</div>
</el-tooltip>
<a class="btn" href="https://www.gaoding.com/ai" target="_blank">
<span>访问官网</span>
</a>
</div>
</div>
</div>
</div>
</div>
</template>
<script setup>
import popModal from "@/views/components/popModal.vue";
import { getUserInfo } from "@/utils/auth";
import * as portraitModel from "@/api/portraitModel";
import { uploadFile } from "@/api/portraitModel";
import { downBlobFile } from "@/utils/index.js";
import * as echarts from "echarts";
const { proxy } = getCurrentInstance();
const baseUrl = import.meta.env.VITE_APP_BASE_API;
const previewFile1 = ref([]);
const previewFile2 = ref([]);
const previewFile3 = ref([]);
const fileList1 = ref([]);
const fileList2 = ref([]);
const fileList3 = ref([]);
const handleChange1 = async (info) => {
fileList1.value = [];
fileList1.value.push(info);
let formData = new FormData();
formData.append("file", fileList1.value[0].raw);
formData.append("userId", JSON.parse(getUserInfo()).userId);
formData.append("module", "AI修图");
formData.append("count", 1);
try {
previewFile1.value = [];
const res = await uploadFile(formData);
// registerParams.value.imgAddress = res.data;
proxy.$modal.msgSuccess("上传成功!");
previewFile1.value.push({
name: fileList1.value[0].raw.name,
});
// getMessage();
} catch (e) {
// console.log(e);
}
};
const handleChange2 = async (info) => {
fileList2.value = [];
fileList2.value.push(info);
let formData = new FormData();
formData.append("file", fileList2.value[0].raw);
formData.append("userId", JSON.parse(getUserInfo()).userId);
formData.append("module", "AI修图");
formData.append("count", 2);
try {
previewFile2.value = [];
const res = await uploadFile(formData);
// registerParams.value.imgAddress = res.data;
proxy.$modal.msgSuccess("上传成功!");
previewFile2.value.push({
name: fileList2.value[0].raw.name,
});
// getMessage();
} catch (e) {
// console.log(e);
}
};
const handleChange3 = async (info) => {
fileList3.value = [];
fileList3.value.push(info);
let formData = new FormData();
formData.append("file", fileList3.value[0].raw);
formData.append("userId", JSON.parse(getUserInfo()).userId);
formData.append("module", "AI修图");
formData.append("count", 3);
try {
previewFile3.value = [];
const res = await uploadFile(formData);
// registerParams.value.imgAddress = res.data;
proxy.$modal.msgSuccess("上传成功!");
previewFile3.value.push({
name: fileList3.value[0].raw.name,
});
// getMessage();
} catch (e) {
// console.log(e);
}
};
</script>
<style lang="scss" scoped>
.app-containere {
margin: 10px 4px 10px 10px;
border: 1px solid #0452c6;
// background-color: rgba(0, 0, 0, 0.5);
background: rgba(0, 29, 64, 0.5);
padding: 25px;
color: #fff;
.material {
.title {
display: flex;
align-items: center;
font-size: 18px;
span {
margin-left: 10px;
}
}
p {
font-size: 15px;
line-height: 30px;
}
.case {
margin-right: 18px;
padding: 10px;
padding-top: 20px;
padding-bottom: 20px;
color: #fff;
margin-top: 10px;
// width: calc(100% - 100px);
width: 500px;
// background: #fff;
// background: #002c5b;
background: #011031;
border-radius: 10px;
border: 1px solid #003e7c;
display: flex;
align-items: center;
.bgItem {
display: flex;
align-items: center;
justify-content: center;
img {
// 186px
width: 258px;
height: 134px;
border-radius: 5px;
scale: 0.8;
}
// background-color: #e6e8ed;
background-color: #002c5b;
width: 240px;
height: 170px;
// padding: 20px;
border-radius: 10px;
box-shadow: 0 30px 20px -20px rgba(0, 0, 0, 0.15);
}
.detail {
width: 300px;
margin-left: 20px;
.icon {
display: flex;
align-items: center;
span {
color: #f1404b;
}
.iconItem {
background-color: #f1404b;
color: #fff;
font-size: 12px;
padding: 2px;
border-radius: 4px;
padding-left: 4px;
padding-right: 4px;
}
}
.title {
font-size: 26px;
margin-top: 5px;
margin-bottom: 5px;
// font-weight: bold;
}
.btn {
display: block;
background-color: #e7e6e8;
color: #333;
width: 110px;
height: 40px;
text-align: center;
line-height: 40px;
border-radius: 5px;
margin-top: 10px;
cursor: pointer;
}
.btn:hover {
background-color: #409eff;
color: #fff;
}
}
}
}
}
</style>
<style>
.tooltip {
max-width: 260px;
}
</style>

@ -0,0 +1,286 @@
<template>
<div class="app-containere">
<div class="material">
<div class="title">
<img src="@/assets/images/caseIcon.png" alt="" />
<span>任务素材</span>
</div>
<div>
<p>
根据文字描述提示利用推荐的三个AI工具生成对应的视频
<br />
1旅行视频想象你刚从一次热带岛屿旅行回来你希望将你的照片和视频片段制作成一个吸引人的旅行视频你希望视频中包含海滩日落当地市场美食和你参与的水上活动的画面
<br />
2产品介绍视频你是一家初创公司的市场经理需要制作一个简短的产品介绍视频来展示你的新科技产品你希望视频突出产品的特点使用场景和用户反馈
<br />
3教育解说视频采用数字人技术创建一个教育解说视频以生动有趣的方式解释科学概念
</p>
</div>
</div>
<div class="material">
<div class="title">
<img src="@/assets/images/步骤.png" alt="" />
<span>任务提交</span>
<span style="font-size: 13px">(请按照任务素材顺序依次提交)</span>
</div>
<div style="margin-top: 10px; width: 200px">
<el-upload ref="uploadRef" class="upload-demo" :file-list="previewFile1" :auto-upload="false" :on-change="handleChange1" :show-file-list="true" :limit="1">
<el-button type="primary" class="uploadBtn">+任务提交1</el-button>
</el-upload>
</div>
<div style="margin-top: 10px; width: 200px">
<el-upload ref="uploadRef" class="upload-demo" :file-list="previewFile2" :auto-upload="false" :on-change="handleChange2" :show-file-list="true" :limit="1">
<el-button type="primary" class="uploadBtn">+任务提交2</el-button>
</el-upload>
</div>
<div style="margin-top: 10px; width: 200px">
<el-upload ref="uploadRef" class="upload-demo" :file-list="previewFile3" :auto-upload="false" :on-change="handleChange3" :show-file-list="true" :limit="1">
<el-button type="primary" class="uploadBtn">+任务提交3</el-button>
</el-upload>
</div>
</div>
<div class="material" style="margin-top: 20px">
<div class="title">
<img src="@/assets/icons/svg/sxbg.svg" style="width: 30px; height: 30px" />
<span>大模型参考工具</span>
</div>
<div style="display: flex">
<div class="case">
<div class="bgItem">
<img src="@/assets/images/aiVideo1.png" alt="" />
</div>
<div class="detail">
<div class="title">即梦Dreamina</div>
<el-tooltip popper-class="tooltip" effect="light" content="即梦Dreamina是由字节跳动旗下的剪映推出的AI创作平台它支持中文生成视频。这个平台的主要功能包括AI图片创作和视频生成用户可以通过输入文案快速生成创意图像或视频非常适合用于社交媒体平台的内容创作。" placement="top-start">
<div style="line-height: 24px; font-size: 13px">即梦Dreamina是由字节跳动旗下的剪映推出的AI创作平台它支持中文生成视频这个平台的主要功能包括AI图片创作和视频生成用户可以通过输入文案快速生成创意图像或视频非常适合用于社交媒体平台的...</div>
</el-tooltip>
<a class="btn" href="https://jimeng.jianying.com/ai-tool/home" target="_blank">
<span>访问官网</span>
</a>
</div>
</div>
<div class="case">
<div class="bgItem">
<img src="@/assets/images/aiVideo2.png" alt="" />
</div>
<div class="detail">
<div class="title">万兴播爆</div>
<el-tooltip popper-class="tooltip" effect="light" content="万兴播爆是A股上市公司万兴科技旗下的AIGC产品,为您提供AI数字人定制服务只需简单输入关键词即可轻松生成真人营销视频。万兴播爆拥有上百套专业级模板涵盖各种场景视频需求是出海视频营销的一站式神器。" placement="top-start">
<div style="line-height: 24px; font-size: 13px">万兴播爆是A股上市公司万兴科技旗下的AIGC产品,为您提供AI数字人定制服务只需简单输入关键词即可轻松生成真人营销视频万兴播爆拥有上百套专业级模板涵盖各种场景视频需求是出海视频营销的...</div>
</el-tooltip>
<a class="btn" href="https://virbo.wondershare.cn/?ref=pidoutv.com" target="_blank">
<span>访问官网</span>
</a>
</div>
</div>
<div class="case">
<div class="bgItem">
<img src="@/assets/images/aiVideo3.png" alt="" />
</div>
<div class="detail">
<!-- <div class="icon">
<div class="iconItem">AI工具</div>
<span></span>
<div class="iconItem">AI写作对话</div>
</div> -->
<div class="title">万彩AI</div>
<el-tooltip popper-class="tooltip" effect="light" content="万彩AI是一款强大的AI内容创作工具合集除了提供AI智能写作支持之外还集成了AI换脸、照片数字人制作和AI短视频制作等强大的AI生成内容功能。无需下载安装软件可以直接在线创作电脑网页和手机都可以使用。" placement="top-start">
<div style="line-height: 24px; font-size: 13px">万彩AI是一款强大的AI内容创作工具合集除了提供AI智能写作支持之外还集成了AI换脸照片数字人制作和AI短视频制作等强大的AI生成内容功能无需下载安装软件可以直接在线创作电脑网页和手机...</div>
</el-tooltip>
<a class="btn" href="https://ai.kezhan365.com/" target="_blank">
<span>访问官网</span>
</a>
</div>
</div>
</div>
</div>
</div>
</template>
<script setup>
import popModal from "@/views/components/popModal.vue";
import { getUserInfo } from "@/utils/auth";
import * as portraitModel from "@/api/portraitModel";
import { uploadFile } from "@/api/portraitModel";
import { downBlobFile } from "@/utils/index.js";
import * as echarts from "echarts";
const { proxy } = getCurrentInstance();
const baseUrl = import.meta.env.VITE_APP_BASE_API;
const previewFile1 = ref([]);
const previewFile2 = ref([]);
const previewFile3 = ref([]);
const fileList1 = ref([]);
const fileList2 = ref([]);
const fileList3 = ref([]);
const handleChange1 = async (info) => {
fileList1.value = [];
fileList1.value.push(info);
let formData = new FormData();
formData.append("file", fileList1.value[0].raw);
formData.append("userId", JSON.parse(getUserInfo()).userId);
formData.append("module", "AI视频");
formData.append("count", 1);
try {
previewFile1.value = [];
const res = await uploadFile(formData);
// registerParams.value.imgAddress = res.data;
proxy.$modal.msgSuccess("上传成功!");
previewFile1.value.push({
name: fileList1.value[0].raw.name,
});
// getMessage();
} catch (e) {
// console.log(e);
}
};
const handleChange2 = async (info) => {
fileList2.value = [];
fileList2.value.push(info);
let formData = new FormData();
formData.append("file", fileList2.value[0].raw);
formData.append("userId", JSON.parse(getUserInfo()).userId);
formData.append("module", "AI视频");
formData.append("count", 2);
try {
previewFile2.value = [];
const res = await uploadFile(formData);
// registerParams.value.imgAddress = res.data;
proxy.$modal.msgSuccess("上传成功!");
previewFile2.value.push({
name: fileList2.value[0].raw.name,
});
// getMessage();
} catch (e) {
// console.log(e);
}
};
const handleChange3 = async (info) => {
fileList3.value = [];
fileList3.value.push(info);
let formData = new FormData();
formData.append("file", fileList3.value[0].raw);
formData.append("userId", JSON.parse(getUserInfo()).userId);
formData.append("module", "AI视频");
formData.append("count", 3);
try {
previewFile3.value = [];
const res = await uploadFile(formData);
// registerParams.value.imgAddress = res.data;
proxy.$modal.msgSuccess("上传成功!");
previewFile3.value.push({
name: fileList3.value[0].raw.name,
});
// getMessage();
} catch (e) {
// console.log(e);
}
};
</script>
<style lang="scss" scoped>
.app-containere {
margin: 10px 4px 10px 10px;
border: 1px solid #0452c6;
// background-color: rgba(0, 0, 0, 0.5);
background: rgba(0, 29, 64, 0.5);
padding: 25px;
color: #fff;
.material {
.title {
display: flex;
align-items: center;
font-size: 18px;
span {
margin-left: 10px;
}
}
p {
font-size: 15px;
line-height: 30px;
}
.case {
margin-right: 18px;
padding: 10px;
padding-top: 20px;
padding-bottom: 20px;
color: #fff;
margin-top: 10px;
// width: calc(100% - 100px);
width: 500px;
// background: #fff;
// background: #002c5b;
background: #011031;
border-radius: 10px;
border: 1px solid #003e7c;
display: flex;
align-items: center;
.bgItem {
display: flex;
align-items: center;
justify-content: center;
img {
// 186px
width: 258px;
height: 134px;
border-radius: 5px;
scale: 0.8;
}
// background-color: #e6e8ed;
background-color: #002c5b;
width: 240px;
height: 170px;
// padding: 20px;
border-radius: 10px;
box-shadow: 0 30px 20px -20px rgba(0, 0, 0, 0.15);
}
.detail {
width: 300px;
margin-left: 20px;
.icon {
display: flex;
align-items: center;
span {
color: #f1404b;
}
.iconItem {
background-color: #f1404b;
color: #fff;
font-size: 12px;
padding: 2px;
border-radius: 4px;
padding-left: 4px;
padding-right: 4px;
}
}
.title {
font-size: 26px;
margin-top: 5px;
margin-bottom: 5px;
// font-weight: bold;
}
.btn {
display: block;
background-color: #e7e6e8;
color: #333;
width: 110px;
height: 40px;
text-align: center;
line-height: 40px;
border-radius: 5px;
margin-top: 10px;
cursor: pointer;
}
.btn:hover {
background-color: #409eff;
color: #fff;
}
}
}
}
}
</style>
<style>
.tooltip {
max-width: 260px;
}
</style>

@ -21,10 +21,21 @@
<div class="title">
<img src="@/assets/images/步骤.png" alt="" />
<span>任务提交</span>
<span style="font-size: 13px">(请按照任务素材顺序依次提交)</span>
</div>
<div style="margin-top: 10px">
<el-upload ref="uploadRef" class="upload-demo" :auto-upload="false" :on-change="handleChange" :show-file-list="true" accept=".png,.jpg,.jpeg" :limit="1">
<el-button type="primary" class="uploadBtn">+任务提交</el-button>
<div style="margin-top: 10px; width: 200px">
<el-upload ref="uploadRef" class="upload-demo" :file-list="previewFile1" :auto-upload="false" :on-change="handleChange1" :show-file-list="true" :limit="1">
<el-button type="primary" class="uploadBtn">+任务提交1</el-button>
</el-upload>
</div>
<div style="margin-top: 10px; width: 200px">
<el-upload ref="uploadRef" class="upload-demo" :file-list="previewFile2" :auto-upload="false" :on-change="handleChange2" :show-file-list="true" :limit="1">
<el-button type="primary" class="uploadBtn">+任务提交2</el-button>
</el-upload>
</div>
<div style="margin-top: 10px; width: 200px">
<el-upload ref="uploadRef" class="upload-demo" :file-list="previewFile3" :auto-upload="false" :on-change="handleChange3" :show-file-list="true" :limit="1">
<el-button type="primary" class="uploadBtn">+任务提交3</el-button>
</el-upload>
</div>
</div>
@ -50,7 +61,7 @@
</div>
<div class="case">
<div class="bgItem">
<img src="@/assets/images/1723156589-image.png" alt="" />
<img src="@/assets/images/huoshan.png" alt="" />
</div>
<div class="detail">
<div class="title">火山写作</div>
@ -64,7 +75,7 @@
</div>
<div class="case">
<div class="bgItem">
<img src="@/assets/images/1723156589-image.png" alt="" />
<img src="@/assets/images/Pasted-628.png" alt="" />
</div>
<div class="detail">
<!-- <div class="icon">
@ -85,13 +96,92 @@
</div>
</div>
</template>
<script setup></script>
<script setup>
import popModal from "@/views/components/popModal.vue";
import { getUserInfo } from "@/utils/auth";
import * as portraitModel from "@/api/portraitModel";
import { uploadFile } from "@/api/portraitModel";
import { downBlobFile } from "@/utils/index.js";
import * as echarts from "echarts";
const { proxy } = getCurrentInstance();
const baseUrl = import.meta.env.VITE_APP_BASE_API;
const previewFile1 = ref([]);
const previewFile2 = ref([]);
const previewFile3 = ref([]);
const fileList1 = ref([]);
const fileList2 = ref([]);
const fileList3 = ref([]);
const handleChange1 = async (info) => {
fileList1.value = [];
fileList1.value.push(info);
let formData = new FormData();
formData.append("file", fileList1.value[0].raw);
formData.append("userId", JSON.parse(getUserInfo()).userId);
formData.append("module", "AI写作");
formData.append("count", 1);
try {
previewFile1.value = [];
const res = await uploadFile(formData);
// registerParams.value.imgAddress = res.data;
proxy.$modal.msgSuccess("上传成功!");
previewFile1.value.push({
name: fileList1.value[0].raw.name,
});
// getMessage();
} catch (e) {
// console.log(e);
}
};
const handleChange2 = async (info) => {
fileList2.value = [];
fileList2.value.push(info);
let formData = new FormData();
formData.append("file", fileList2.value[0].raw);
formData.append("userId", JSON.parse(getUserInfo()).userId);
formData.append("module", "AI写作");
formData.append("count", 2);
try {
previewFile2.value = [];
const res = await uploadFile(formData);
// registerParams.value.imgAddress = res.data;
proxy.$modal.msgSuccess("上传成功!");
previewFile2.value.push({
name: fileList2.value[0].raw.name,
});
// getMessage();
} catch (e) {
// console.log(e);
}
};
const handleChange3 = async (info) => {
fileList3.value = [];
fileList3.value.push(info);
let formData = new FormData();
formData.append("file", fileList3.value[0].raw);
formData.append("userId", JSON.parse(getUserInfo()).userId);
formData.append("module", "AI写作");
formData.append("count", 3);
try {
previewFile3.value = [];
const res = await uploadFile(formData);
// registerParams.value.imgAddress = res.data;
proxy.$modal.msgSuccess("上传成功!");
previewFile3.value.push({
name: fileList3.value[0].raw.name,
});
// getMessage();
} catch (e) {
// console.log(e);
}
};
</script>
<style lang="scss" scoped>
.app-containere {
margin: 10px 4px 10px 10px;
border: 1px solid #0452c6;
background-color: rgba(0, 0, 0, 0.5);
// background-color: rgba(0, 0, 0, 0.5);
background: rgba(0, 29, 64, 0.5);
padding: 25px;
color: #fff;
.material {
@ -117,7 +207,8 @@
// width: calc(100% - 100px);
width: 500px;
// background: #fff;
background: #002c5b;
// background: #002c5b;
background: #011031;
border-radius: 10px;
border: 1px solid #003e7c;
display: flex;
@ -134,7 +225,8 @@
border-radius: 5px;
scale: 0.8;
}
background-color: #e6e8ed;
// background-color: #e6e8ed;
background-color: #002c5b;
width: 240px;
height: 170px;
// padding: 20px;
@ -179,7 +271,7 @@
cursor: pointer;
}
.btn:hover {
background-color: #000;
background-color: #409eff;
color: #fff;
}
}

@ -7,8 +7,10 @@
<script setup>
import AIVenison from "./components/AIVenisonDiagram.vue";
import AIWriting from "./components/AIWriting.vue";
import AIPicture from "./components/AIPicture.vue"
import AIVideo from "./components/AIVideo.vue"
import AIGC from "./components/thirdPartyAIGC.vue";
const pageData = [AIVenison, AIWriting, null, null, null, AIGC];
const pageData = [AIVenison, AIWriting, null, AIPicture, AIVideo, AIGC];
const page = ref(AIVenison);
const clickIndx = (index) => {
page.value = pageData[index];

@ -585,10 +585,10 @@ const step3AnswerFlag = ref(false);
const step4AnswerFlag = ref(false);
const step5AnswerFlag = ref(false);
onMounted(() => {
getData();
step3EchartInit();
step4EchartInit();
step5EchartInit();
getData();
});
onBeforeUnmount(() => {
saveData();
@ -1263,7 +1263,7 @@ const saveData = () => {
stepSixD: step1Data.value[3].params2,
stepSevenA: step2Data.value[4].params1,
stepSevenB: step2Data.value[4].params2,
// stepSevenC: step2Data.value[4].params,
// stepSevenC: JSON.stringify(option.value.series[0].data),
// stepSevenD: step2Data.value[5].params,
// stepEightA: step2Data.value[6].params,
// stepEightB: step2Data.value[7].params,
@ -1326,7 +1326,7 @@ const getData = () => {
step1Data.value[3].params2 = res.data.stepSixD;
step2Data.value[4].params1 = res.data.stepSevenA;
step2Data.value[4].params2 = res.data.stepSevenB;
// step2Data.value[4].params = res.data.stepSevenC;
// option.value.series[0].data = JSON.parse(res.data.stepSevenC);
// step2Data.value[5].params = res.data.stepSevenD;
// step2Data.value[6].params = res.data.stepEightA;
// step2Data.value[7].params = res.data.stepEightB;
@ -1362,6 +1362,7 @@ const getData = () => {
// step5DataTable3.value[3].params2 = res.data.stepNewFive;
// step5DataTable3.value[4].params1 = res.data.stepNewSix;
// step5DataTable3.value[4].params2 = res.data.stepNewEight;
// console.log(JSON.parse(res.data.stepSevenC));
})
.catch((error) => {});
};

@ -147,12 +147,12 @@
</span>
<div style="margin-top: 10px; display: flex">
<div id="funnel" style="width: 520px; height: 400px"></div>
<div style="margin-top: 70px">
<div style="margin-top: 75px">
<div>
<el-select
v-model="step2Select1"
placeholder="请选择"
style="width: 130px; margin-bottom: 25px"
style="width: 130px; margin-bottom: 28px"
>
<el-option :label="'浏览2071'" :value="'浏览2071'" />
<el-option :label="'购物车622'" :value="'购物车622'" />
@ -165,7 +165,7 @@
<el-select
v-model="step2Select2"
placeholder="请选择"
style="width: 130px; margin-bottom: 25px"
style="width: 130px; margin-bottom: 32px"
>
<el-option :label="'浏览2071'" :value="'浏览2071'" />
<el-option :label="'购物车622'" :value="'购物车622'" />
@ -178,7 +178,7 @@
<el-select
v-model="step2Select3"
placeholder="请选择"
style="width: 130px; margin-bottom: 25px"
style="width: 130px; margin-bottom: 30px"
>
<el-option :label="'浏览2071'" :value="'浏览2071'" />
<el-option :label="'购物车622'" :value="'购物车622'" />
@ -191,7 +191,7 @@
<el-select
v-model="step2Select4"
placeholder="请选择"
style="width: 130px; margin-bottom: 25px"
style="width: 130px; margin-bottom: 30px"
>
<el-option :label="'浏览2071'" :value="'浏览2071'" />
<el-option :label="'购物车622'" :value="'购物车622'" />
@ -204,7 +204,7 @@
<el-select
v-model="step2Select5"
placeholder="请选择"
style="width: 130px; margin-bottom: 25px"
style="width: 130px; margin-bottom: 30px"
>
<el-option :label="'浏览2071'" :value="'浏览2071'" />
<el-option :label="'购物车622'" :value="'购物车622'" />
@ -525,77 +525,165 @@ const typeData = ref([
data2: "占总销售额的10%,给予一般关注",
},
]);
// const option = {
// title: {
// text: "",
// // color:'#fff'
// textStyle: {
// color: "#fff",
// },
// },
// tooltip: {
// trigger: "item",
// formatter: "{b} : {c}",
// },
// // toolbox: {
// // feature: {
// // dataView: { readOnly: false },
// // restore: {},
// // saveAsImage: {},
// // },
// // },
// legend: {
// // data: ["", "", "", "", ""],
// itemStyle: {},
// textStyle: {
// color: "#fff",
// },
// },
// series: [
// {
// name: "Funnel",
// type: "funnel",
// left: "10%",
// top: 60,
// bottom: 60,
// width: "80%",
// min: 0,
// max: 2071,
// minSize: "0%",
// maxSize: "100%",
// sort: "descending",
// gap: 2,
// label: {
// show: true,
// position: "inside",
// },
// labelLine: {
// length: 10,
// lineStyle: {
// width: 1,
// type: "solid",
// },
// },
// itemStyle: {
// borderColor: "#fff",
// borderWidth: 1,
// },
// emphasis: {
// label: {
// fontSize: 20,
// },
// },
// data: [
// { value: 2071, name: "" },
// { value: 622, name: "" },
// { value: 284, name: "" },
// { value: 235, name: "" },
// { value: 223, name: "" },
// ],
// },
// ],
// };
const option = {
title: {
text: "漏斗图",
// color:'#fff'
textStyle: {
text: '漏斗图',
textStyle: {
color: "#fff",
},
},
tooltip: {
trigger: "item",
formatter: "{b} : {c}",
},
// toolbox: {
// feature: {
// dataView: { readOnly: false },
// restore: {},
// saveAsImage: {},
// },
// },
// trigger: 'axis',
// axisPointer: {
// type: 'shadow'
// }
},
legend: {
// data: ["", "", "", "", ""],
itemStyle: {},
data:[],
textStyle: {
color: "#fff",
},
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: {
show:false
// type: 'value',
// boundaryGap: [0, 0.01]
},
yAxis: {
type: 'category',
data: ['', '', '', '', ''],
position: 'center'
},
series: [
{
name: "Funnel",
type: "funnel",
left: "10%",
top: 60,
bottom: 60,
width: "80%",
min: 0,
max: 2071,
minSize: "0%",
maxSize: "100%",
sort: "descending",
gap: 2,
label: {
show: true,
position: "inside",
},
labelLine: {
length: 10,
lineStyle: {
width: 1,
type: "solid",
},
},
name: '',
stack: 'one',
type: 'bar',
barWidth: '60%',
data: [1120, 1113, 1090, 920, 220],
itemStyle: {
borderColor: "#fff",
borderWidth: 1,
},
emphasis: {
label: {
fontSize: 20,
},
},
data: [
{ value: 2071, name: "" },
{ value: 622, name: "" },
{ value: 284, name: "" },
{ value: 235, name: "" },
{ value: 223, name: "" },
],
normal: {
//
color: function (params) {
//
var colorList = [
'rgba(0,0,0,0)',
'rgba(0,0,0,0)',
'rgba(0,0,0,0)',
'rgba(0,0,0,0)',
'rgba(0,0,0,0)',
'rgba(0,0,0,0)'
];
return colorList[params.dataIndex];
}
}
}
},
],
};
{
stack: 'one',
name: '',
type: 'bar',
barWidth: '60%',
data: [223, 235, 284, 622, 2071],
itemStyle: {
normal: {
//
color: function (params) {
//
var colorList = [
'#009FF1',
'#003DA3',
'#00B869',
'#FE8D2A',
'#FB54A1',
];
return colorList[params.dataIndex];
}
},
borderColor: "#fff",
borderWidth: 1,
}
}
]
}
const step1Error = ref(0);
const step2Error = ref(0);
const step3Error = ref(0);
@ -610,7 +698,7 @@ onBeforeUnmount(() => {
onMounted(() => {
getData();
var chartDom = document.getElementById("funnel");
var myChart = echarts.init(chartDom);
var myChart = echarts.init(chartDom,);
option && myChart.setOption(option);
});
const moveUp = (index, row) => {

Loading…
Cancel
Save