feat(home): 更新首页模型列表和创建项目功能
- 从后端获取模型列表数据,替换静态数据 - 优化模型卡片组件,使用动态获取的模型信息- 添加创建普通问卷的功能 - 调整场景列表数据结构 - 移除 ModelCard组件中的多余 console.log
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
<template>
|
||||
<div class="model-item" :style="{ backgroundImage: `url(${model.bg})` }">
|
||||
<div class="model-item" :style="{ backgroundImage: `url(${model.image})` }">
|
||||
<div class="flex align-items-center">
|
||||
<img :src="model.icon" alt="" style="height: 23px; margin-right: 8px" />
|
||||
<p class="model-item-title">{{ model.title }}</p>
|
||||
</div>
|
||||
<p class="model-item-desc">{{ model.desc }}</p>
|
||||
<p class="model-item-desc">{{ model.description }}</p>
|
||||
<div
|
||||
class="view-link"
|
||||
@mouseover="hoverIndex = index"
|
||||
@@ -30,7 +30,6 @@ defineProps({
|
||||
}
|
||||
})
|
||||
const getText = (index) => {
|
||||
console.log(index);
|
||||
if (hoverIndex.value === index) {
|
||||
return index === 2 ? "敬请期待" : "去查看";
|
||||
}
|
||||
|
||||
@@ -13,63 +13,45 @@
|
||||
@open="handleCreateModule(item)"
|
||||
/>
|
||||
</div>
|
||||
<create ref="createRef"
|
||||
style="width: 1px;height: 0"
|
||||
@update:ai-assistant-visible="getValue">
|
||||
</create>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from 'vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { addSpecSurvey } from '@/api/home'
|
||||
import ModelCard from './ModelCard.vue'
|
||||
import { onMounted, ref } from 'vue';
|
||||
import { useRouter } from 'vue-router';
|
||||
import { addSpecSurvey, getSceneListHome } from '@/api/home';
|
||||
import ModelCard from './ModelCard.vue';
|
||||
import create from '@/views/ProjectManage/create/Index.vue'
|
||||
|
||||
const router = useRouter()
|
||||
const loading = ref(false)
|
||||
|
||||
const modelsList = ref([
|
||||
{
|
||||
icon: require('@/assets/img/home/kanoicon.png'),
|
||||
bg: require('@/assets/img/home/kanobg.png'),
|
||||
title: 'KANO 模型',
|
||||
type: '2',
|
||||
desc: '通过对用户需求分类和优先排序,明确细分市场对不同配置的需求划分,指导产品功能优化和迭代。',
|
||||
},
|
||||
{
|
||||
icon: require('@/assets/img/home/maxicon.png'),
|
||||
bg: require('@/assets/img/home/maxbg.png'),
|
||||
title: 'Maxdiff 模型',
|
||||
type: '3',
|
||||
desc: '通过了解消费者对一组选项的偏好程度,批量评估多个属性或功能的重要性排序,帮助确定产品开发的优先级。',
|
||||
},
|
||||
{
|
||||
icon: require('@/assets/img/home/pkicon.png'),
|
||||
bg: require('@/assets/img/home/pkbg.png'),
|
||||
title: 'PK 模型',
|
||||
type: '4',
|
||||
desc: '通过一对一PK互动的方式对少量包装、海报等素材进行智能测款,科学筛选最优设计。',
|
||||
},
|
||||
{
|
||||
icon: require('@/assets/img/home/psmicon.png'),
|
||||
bg: require('@/assets/img/home/psmbg.png'),
|
||||
title: 'PSM 模型',
|
||||
type: '1',
|
||||
desc: '通过了解消费者对产品不同价格的容忍度,评估未上市新品的合理价格感知、价格容忍度极限并分析最佳价格点。',
|
||||
},
|
||||
])
|
||||
const modelsList = ref([])
|
||||
const createRef = ref(null)
|
||||
|
||||
onMounted(() => {
|
||||
getModelList()
|
||||
})
|
||||
const getModelList = () => {
|
||||
console.log('getSceneList')
|
||||
getSceneListHome().then(res => {
|
||||
console.log(res);
|
||||
modelsList.value = res.data.models
|
||||
})
|
||||
}
|
||||
const handleCreateModule = async (item) => {
|
||||
console.log('handleCreateModule');
|
||||
console.log(item.type);
|
||||
// if (loading.value) return
|
||||
// loading.value = true
|
||||
if (item.type === '4'){
|
||||
// pk模型 不允许创建
|
||||
if (item.sort === 103) {
|
||||
return
|
||||
}
|
||||
const res = await addSpecSurvey({ type: item.type })
|
||||
await router.push({
|
||||
path: '/survey/planet/design',
|
||||
query: { sn: res.data.sn },
|
||||
})
|
||||
|
||||
if ([31].includes(item.code)) {
|
||||
if (createRef.value) {
|
||||
item.hasTitle = true
|
||||
item.title+='问卷'
|
||||
createRef.value.createNormalSurvey(item)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
@@ -241,9 +241,9 @@ onMounted(() => {
|
||||
// 🟩 初始化 Swiper 并赋值给 mySwiper
|
||||
mySwiper = new Swiper(swiperContainer.value, {
|
||||
loop: false,
|
||||
autoplay: {
|
||||
delay: 13000,
|
||||
},
|
||||
// autoplay: {
|
||||
// delay: 13000,
|
||||
// },
|
||||
pagination: {
|
||||
el: pagination.value,
|
||||
clickable: true,
|
||||
|
||||
@@ -50,7 +50,6 @@
|
||||
|
||||
<script setup>
|
||||
import { onMounted, ref } from 'vue';
|
||||
// 导入组件以便使用 ref 引用
|
||||
import create from '@/views/ProjectManage/create/Index.vue'
|
||||
import {useRouter} from 'vue-router';
|
||||
import { getSceneListHome } from '@/api/home';
|
||||
@@ -103,8 +102,8 @@ const getSceneList=()=>{
|
||||
console.log('getSceneList')
|
||||
getSceneListHome().then(res=>{
|
||||
console.log(res);
|
||||
sceneList.value=[]
|
||||
sceneList.value = fixedSceneList.concat(res.data)
|
||||
sceneList.value = []
|
||||
sceneList.value = fixedSceneList.concat(res.data.items)
|
||||
})
|
||||
}
|
||||
/**
|
||||
|
||||
@@ -531,7 +531,7 @@ function createNormalSurvey(item) {
|
||||
temp_sn.value = item.sn;
|
||||
groupInfo.value.sn = '';
|
||||
groupInfo.value.group_id = 0;
|
||||
groupInfo.value.project_name = '';
|
||||
groupInfo.value.project_name = item.hasTitle ? item.title : '';
|
||||
groupInfo.value.remarks = '';
|
||||
groupInfo.value.tag = [];
|
||||
groupInfo.value.scene_code_info = `${item.code}`;
|
||||
|
||||
Reference in New Issue
Block a user