diff --git a/src/api/portraitModel.js b/src/api/portraitModel.js
index 9800b47..bc23910 100644
--- a/src/api/portraitModel.js
+++ b/src/api/portraitModel.js
@@ -67,20 +67,20 @@ export function downloadDataByRepurchase(data) {
}
//数据下载-留存分析
export function downloadDataByRetain(data) {
- return request({
- url: "/api/downDataByUserPortrait/analysisByRetention",
- method: "get",
- params: data,
- });
- }
+ return request({
+ url: "/api/downDataByUserPortrait/analysisByRetention",
+ method: "get",
+ params: data,
+ });
+}
//数据下载-用户粘性分析
export function downloadDataByViscosity(data) {
- return request({
- url: "/api/downDataByUserPortrait/analysisByStickiness",
- method: "get",
- params: data,
- });
- }
+ return request({
+ url: "/api/downDataByUserPortrait/analysisByStickiness",
+ method: "get",
+ params: data,
+ });
+}
//筛选出统计样本
export function filterOutStatisSample(data) {
return request({
@@ -129,3 +129,12 @@ export function uploadFile(data) {
data: data,
});
}
+// 评论点抽取
+export function getCommentPoint(data) {
+ return request({
+ url: "/v1/singleEmotionAnalysis/",
+ baseURL: "http://192.168.2.14:8000",
+ method: "post",
+ data: data,
+ });
+}
diff --git a/src/store/modules/algorithm.js b/src/store/modules/algorithm.js
index 6dcccd6..1363bc8 100644
--- a/src/store/modules/algorithm.js
+++ b/src/store/modules/algorithm.js
@@ -1,3 +1,11 @@
+/*
+ * @Author: qinzhenpen qzp1807@126.com
+ * @Date: 2024-08-16 17:56:32
+ * @LastEditors: qinzhenpen qzp1807@126.com
+ * @LastEditTime: 2024-08-26 15:26:20
+ * @FilePath: \digital-marketing\src\store\modules\algorithm.js
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
import Cookies from "js-cookie";
import * as portraitModel from "@/api/portraitModel";
import * as marketingAlgorithmApi from "@/api/marketing-algorithm.js";
@@ -8,7 +16,7 @@ const useAlgorithmStore = defineStore("algorithm", {
tableData: [],
tableKey:[],
userDataLabel:["用户属性表", "用户登录活跃表", "用户消费能力表", "用户行为表", "用户评论表"], //用户数据标签
- userDataLabel2:["用户属性表", "用户登录活跃表", "用户消费能力表", "用户行为表", "用户评论表"],
+ userDataLabel2:["用户评论表"],
indexLibrary: [],
analysisData: [],
}),
diff --git a/src/utils/request.js b/src/utils/request.js
index 8d85d2f..ca747ea 100644
--- a/src/utils/request.js
+++ b/src/utils/request.js
@@ -1,3 +1,4 @@
+
import axios from "axios";
import { ElNotification, ElMessageBox, ElMessage, ElLoading } from "element-plus";
import { getToken } from "@/utils/auth";
@@ -16,8 +17,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.16:9868/',
+ // baseURL: "http://118.31.7.2:9868/",
+ baseURL:'http://192.168.2.14:9868/',
// 超时
timeout: 100000,
});
diff --git a/src/views/digitalMarketingAlgorithms/components/associationRuleMining.vue b/src/views/digitalMarketingAlgorithms/components/associationRuleMining.vue
index 9dd5e19..14f6413 100644
--- a/src/views/digitalMarketingAlgorithms/components/associationRuleMining.vue
+++ b/src/views/digitalMarketingAlgorithms/components/associationRuleMining.vue
@@ -2,7 +2,7 @@
任务描述
-
(给出任务清单参考,做哪些数据的统计分析)Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra justo commodo. Proin sodales pulvinar sic tempor. Sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam fermentum, nulla luctus pharetra vulputate, felis tellus mollis orci, sed rhoncus pronin sapien nunc accuan eget.
+
使用“购物车数据”,对所购商品进行购物篮分析(关联规则挖掘),并提交实训任务。
diff --git a/src/views/digitalMarketingAlgorithms/components/bigData.vue b/src/views/digitalMarketingAlgorithms/components/bigData.vue
index 9f0f65e..be77274 100644
--- a/src/views/digitalMarketingAlgorithms/components/bigData.vue
+++ b/src/views/digitalMarketingAlgorithms/components/bigData.vue
@@ -16,9 +16,9 @@
@@ -49,13 +49,12 @@ import { getUserInfo } from "@/utils/auth";
const userInfo = JSON.parse(getUserInfo());
const loading = ref(false);
const fileData = ref(null);
-const userStore = useUserStore();
const algorithmStore = useAlgorithmStore();
// 数据表query
const n_dataTableQuery = ref({
index: 1,
size: 7,
- tableName: "用户属性表",
+ tableName: "",
userId: userInfo.userId,
});
const datatotal = ref(0);
@@ -64,40 +63,42 @@ const nzData = ref([]);
const zjIndex = ref(-1);
const zjData = ref([]);
const tableLabel = ref([
- { prop: "id", label: "用户ID" },
- { prop: "loginName", label: "登录名" },
- { prop: "userName", label: "用户姓名" },
- { prop: "studentId", label: "学号" },
- { prop: "stuClass", label: "班级" },
- { prop: "major", label: "专业" },
- { prop: "school", label: "学校" },
- { prop: "roleName", label: "角色名称" },
- { prop: "roleGender", label: "角色性别" },
- { prop: "roleAge", label: "角色年龄" },
- { prop: "updateTime", label: "注册时间" },
- { prop: "location", label: "所在地" },
+ { prop: "id", label: "ID" },
+ { prop: "age", label: "年龄" },
+ { prop: "annualIncome", label: "年收入" },
+ { prop: "spendingScore", label: "消费水平" },
+ { prop: "consumerGoods", label: "消费商品" },
+]);
+const tableLabel3 = ref([
+ { prop: "id", label: "ID" },
+ { prop: "content", label: "评论内容" },
+ { prop: "creationTime", label: "评论时间" },
+ { prop: "nickName", label: "昵称" },
+ { prop: "referenceName", label: "评论对象" },
+ { prop: "contentType", label: "评论类型" },
+]);
+const tableLabel4 = ref([
+ { prop: "id", label: "ID" },
+ { prop: "salesVolume", label: "销售量" },
+ { prop: "salesForehead", label: "销售额" },
+]);
+const tableLabel5 = ref([
+ { prop: "id", label: "ID" },
+ { prop: "consumerGoods", label: "消费商品" },
]);
const tableLabel2 = ref([]);
const arrhander = ref([]);
const arrhanderkey = ref([]);
+const arrMap = {
+ 客户细分数据表: tableLabel.value,
+ 销售预测数据表: tableLabel4.value,
+ 购物车数据表: tableLabel5.value,
+ 用户评论表: tableLabel3.value,
+};
const goNZ = (index, item) => {
nzIndex.value = index;
- zjIndex.value = -1;
- tableLabel.value = [
- { prop: "id", label: "用户ID" },
- { prop: "loginName", label: "登录名" },
- { prop: "userName", label: "用户姓名" },
- { prop: "studentId", label: "学号" },
- { prop: "stuClass", label: "班级" },
- { prop: "major", label: "专业" },
- { prop: "school", label: "学校" },
- { prop: "roleName", label: "角色名称" },
- { prop: "roleGender", label: "角色性别" },
- { prop: "roleAge", label: "角色年龄" },
- { prop: "updateTime", label: "注册时间" },
- { prop: "location", label: "所在地" },
- ];
+ tableLabel.value = arrMap[item];
n_dataTableQuery.value.tableName = item;
delete n_dataTableQuery.value.selfTableName;
getSurface();
@@ -113,9 +114,11 @@ const headerCellStyle = () => {
};
};
// 选择内置或自建
-const selectType = (type) => {
+const selectType = (type, idx) => {
delete n_dataTableQuery.value.tableName;
+ n_dataTableQuery.value.selfTableName = type;
getSurface();
+ zjIndex.value = idx;
nzIndex.value = -1;
};
const getSurface = () => {
@@ -163,7 +166,9 @@ const importData = (e) => {
const selectZJ = (item) => {
portraitModel.getUserTableInfo({ userId: userInfo.userId }).then((res) => {
nzData.value = res.data.tableNames;
- algorithmStore.userDataLabel = [...res?.data.tableNames, ...res.data.selfBuiltTable];
+ n_dataTableQuery.value.tableName = nzData.value[0];
+ getSurface();
+ algorithmStore.userDataLabel = [...res?.data.tableNames, ...res.data.selfBuiltTable].filter((item) => item !== "用户评论表");
});
};
// 查询自建下拉框
@@ -174,7 +179,6 @@ const getZJData = () => {
};
onMounted(() => {
selectZJ();
- getSurface();
getZJData();
});
diff --git a/src/views/digitalMarketingAlgorithms/components/clusterAnalysis.vue b/src/views/digitalMarketingAlgorithms/components/clusterAnalysis.vue
index 53d7e31..5642e8f 100644
--- a/src/views/digitalMarketingAlgorithms/components/clusterAnalysis.vue
+++ b/src/views/digitalMarketingAlgorithms/components/clusterAnalysis.vue
@@ -2,7 +2,7 @@
任务描述
-
(给出任务清单参考,做哪些数据的统计分析)Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra justo commodo. Proin sodales pulvinar sic tempor. Sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam fermentum, nulla luctus pharetra vulputate, felis tellus mollis orci, sed rhoncus pronin sapien nunc accuan eget.
+
使用“客户细分数据”,对客户进行聚类分析,并提交实训任务。
diff --git a/src/views/digitalMarketingAlgorithms/components/descriptiveStatistics.vue b/src/views/digitalMarketingAlgorithms/components/descriptiveStatistics.vue
index 0bc7e13..597259e 100644
--- a/src/views/digitalMarketingAlgorithms/components/descriptiveStatistics.vue
+++ b/src/views/digitalMarketingAlgorithms/components/descriptiveStatistics.vue
@@ -1,7 +1,7 @@
任务描述
-
(给出任务清单参考,做哪些数据的统计分析)Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra justo commodo. Proin sodales pulvinar sic tempor. Sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam fermentum, nulla luctus pharetra vulputate, felis tellus mollis orci, sed rhoncus pronin sapien nunc accuan eget.
+
使用“客户细分数据”,对“消费得分(Spending Score)”指标进行描述性统计分析,并提交实训任务。
@@ -15,7 +15,7 @@
-
+
一、选择指标
@@ -57,13 +57,13 @@
计算
-
-
-
-

-
重新开始
+
+
+

+
重新开始
+
-
+
@@ -255,7 +255,7 @@ const runResultShow = ref(false);
const n_dataTableQuery = ref({
index: 1,
size: 5,
- tableName: "用户属性表",
+ tableName: algorithmStore.userDataLabel[0],
userId: userInfo.userId,
});
const gAnalysisResults = ref({
@@ -348,6 +348,22 @@ const aOriginalDataOfAnalysisResults2 = ref({});
// 模型参数
const g_modelParameter = ref([]);
+// 任务提交答案
+const g_taskAnswer = ref({
+ average: 49.9,
+ median: 50.0,
+ mode: 42.0,
+ standardDeviation: 21.7,
+ variance: 469.0,
+ standardError: 2.2,
+ kurtosis: 0.1,
+ skewness: -0.1,
+ max: 99.0,
+ min: 3.0,
+ summation: 4993.0,
+ observations: 100,
+});
+
// 预处理
const preProcess = (tetx) => {
if (analysisData.value.length == 0) {
@@ -456,18 +472,27 @@ const knowledgeImport = () => {
};
// 实训任务提交
const submitTask = () => {
+ const flat = false;
for (let key in formInline.value) {
if (formInline.value[key] == "") {
const label = tableLabel.find((item) => item.prop == key);
proxy.$modal.msgWarning(`${label.label}不能为空`);
return;
+ } else {
+ // 判断value的值等不等于g_taskAnswer.value每一项都要相等才行
+ if (Number(formInline.value[key]) != g_taskAnswer.value[key]) {
+ const label = tableLabel.find((item) => item.prop == key);
+ flat = true
+ proxy.$modal.msgWarning(`${label.label}错误`);
+ return;
+ }
}
}
portraitModel
.submit({
userId: n_dataTableQuery.value.userId,
taskName: "描述性统计",
- numberOfErrors: 0,
+ numberOfErrors: flat ? 1 : 0,
})
.then((res) => {
dialogVisible.value = false;
diff --git a/src/views/digitalMarketingAlgorithms/components/emotion-analysis.vue b/src/views/digitalMarketingAlgorithms/components/emotion-analysis.vue
index f554b43..f93b9f5 100644
--- a/src/views/digitalMarketingAlgorithms/components/emotion-analysis.vue
+++ b/src/views/digitalMarketingAlgorithms/components/emotion-analysis.vue
@@ -1,7 +1,7 @@
任务描述
-
(给出任务清单参考,做哪些数据的统计分析)Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra justo commodo. Proin sodales pulvinar sic tempor. Sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam fermentum, nulla luctus pharetra vulputate, felis tellus mollis orci, sed rhoncus pronin sapien nunc accuan eget.
+
使用“用户商品评论数据”,进行各类文本挖掘任务,分析评论情感情绪,最后提交实训任务。
@@ -69,11 +69,9 @@
分析数据:
-
- {{ text.name }}
-
+
-
+
-
+
+
负向情感
@@ -126,7 +125,11 @@
{{ sentiment == 0 ? "负向评价" : sentiment == 1 ? "中性评价" : "正向评价" }}:
- {{ items.prop + items.adj }}
+
{{ items.aspect }}
+
+ {{ items.aspect + i }}
+
+
@@ -145,7 +148,7 @@
-
+
@@ -435,7 +438,7 @@ const multipleTableRef = ref(null);
const n_dataTableQuery = ref({
index: 1,
size: 5,
- tableName: "用户属性表",
+ tableName: algorithmStore.userDataLabel2[0],
userId: userInfo.userId,
});
const textType = [
@@ -456,9 +459,7 @@ const textType = [
const dialogVisible = ref(false);
const analysisData = ref([]);
const analysisHanderKry = ref([]);
-//
const aWordFrequency = ref([]);
-const s_commentType = ref("");
const tableLabel = reactive([
{ prop: "max", label: "最多数量词语" },
{ prop: "frequency", label: "频次" },
@@ -490,7 +491,6 @@ const mWordFrequency = ref({
namenum: "",
frequency: "",
}); //词频数据
-
// 分析变量
const g_analyzeTheNumberOfDataItems = ref("");
// 模型参数
@@ -500,7 +500,15 @@ const g_emotionAnalysis = ref(0);
const aCommentOpinion = ref([]);
// 下载状态
const downloadStatus = ref(false);
-// 下载
+//提交校验
+const g_submitVerification = ref({
+ max: "13",
+ frequency: "3",
+ text1: "质量",
+ text2: "包装好",
+ emotional: "负向",
+ prominent: "的",
+});
// 预处理
const preProcess = (tetx) => {
if (g_indicatorData.value.length == 0) {
@@ -515,7 +523,11 @@ const preProcess = (tetx) => {
}).then((res) => {
proxy.$modal.msgSuccess("预处理成功");
analysisData.value = res.data;
- g_analyzeTheNumberOfDataItems.value = res.data.map((item) => (item ? item.text : "")).join(",");
+ g_analyzeTheNumberOfDataItems.value = res.data
+ .slice(0, 4)
+ .map((item) => (item ? item.content : ""))
+ .join(",")
+ .replace(/\s+/g, "");
});
};
// 提交
@@ -542,15 +554,19 @@ const submit = () => {
if (g_indicatorData.value.length == 0) return proxy.$modal.msgWarning("请选择指标");
loading.value = true;
marketingAlgorithmApi.getMarketingAlgorithm({ userId: n_dataTableQuery.value.userId, tableName: n_dataTableQuery.value.tableName, fieldList: g_indicatorData.value }).then((res) => {
- // g_analyzeTheNumberOfDataItems.value =
if (
res.data
- .map((item) => (item ? item.text : ""))
+ .map((item) => (item ? item.content : ""))
.every((item) => {
return item !== "";
})
) {
- g_analyzeTheNumberOfDataItems.value = res.data.map((item) => (item ? item.text : "")).join(",");
+ g_analyzeTheNumberOfDataItems.value = res.data
+ .slice(0.4)
+ .map((item, index) => (item ? item.content : ""))
+ .slice(0, 4)
+ .join(",")
+ .replace(/\s+/g, "");
} else {
g_analyzeTheNumberOfDataItems.value = "";
loading.value = false;
@@ -574,18 +590,26 @@ const knowledgeImport = () => {
};
// 实训任务提交
const submitTask = () => {
+ let flat = false;
for (let key in formInline.value) {
if (formInline.value[key] == "") {
const label = tableLabel.find((item) => item.prop == key);
proxy.$modal.msgWarning(`${label.label}不能为空`);
return;
+ } else {
+ if (formInline.value[key] != g_submitVerification.value[key]) {
+ const label = tableLabel.find((item) => item.prop == key);
+ proxy.$modal.msgWarning(`${label.label}错误`);
+ flat = true;
+ return;
+ }
}
}
portraitModel
.submit({
userId: n_dataTableQuery.value.userId,
taskName: "情感分析",
- numberOfErrors: 0,
+ numberOfErrors: flat ? 1 : 0,
})
.then((res) => {
dialogVisible.value = false;
@@ -624,7 +648,6 @@ const restart = () => {
nOriginalWordFrequencyNum.value = 0;
aWordFrequency.value = [];
nOriginalWordFrequency.value = [];
- s_commentType.value = "";
proxy.$modal.msgSuccess("重新开始!");
multipleTableRef.value.clearSelection();
};
@@ -637,12 +660,14 @@ const download = async () => {
try {
// 使用 html2canvas 将元素转换为画布
let VDOM = document.querySelector(".emotion_analysis_title");
- let VDOM2 = document.querySelector(".result");
-
+ let VDOM2 = document.getElementsByClassName("result");
if (preProcessText.value.text3 == "情感倾向分析") {
VDOM.style.color = "#221f1f";
} else {
- VDOM2.style.color = "#212020";
+ for (let i = 0; i < VDOM2.length; i++) {
+ const element = VDOM2[i];
+ element.style.color = "#221f1f";
+ }
}
const canvas = await html2canvas(captureElement.value);
@@ -657,7 +682,10 @@ const download = async () => {
if (preProcessText.value.text3 == "情感倾向分析") {
VDOM.style.color = "#ffffff";
} else {
- VDOM2.style.color = "#ffffff";
+ for (let i = 0; i < VDOM2.length; i++) {
+ const element = VDOM2[i];
+ element.style.color = "#ffffff";
+ }
}
} catch (error) {
console.error("无法生成图片", error);
@@ -681,9 +709,7 @@ const sentimentAnalysis = () => {
if (preProcessText.value.text2 == "") return proxy.$modal.msgWarning("请先对数据进行预处理!");
}
if (preProcessText.value.text3 == "") return proxy.$modal.msgWarning("请先选择模型!");
- if (preProcessText.value.text3 === "评论观点抽取" && s_commentType.value == "") {
- return proxy.$modal.msgWarning("请先选择评论类型!");
- }
+
if (g_analyzeTheNumberOfDataItems.value == "") return proxy.$modal.msgWarning("请先选择指标/手动输入进行情感分析!");
loading.value = true;
if (preProcessText.value.text3 === "情感倾向分析") {
@@ -698,23 +724,25 @@ const sentimentAnalysis = () => {
const negPercentage = total !== 0 ? (neg / total) * 100 : 0;
if (posPercentage > negPercentage) {
g_emotionAnalysis.value = 2;
- n_emotiveTendency.value = posPercentage;
+ n_emotiveTendency.value = Math.floor(posPercentage);
} else if (negPercentage > posPercentage) {
g_emotionAnalysis.value = 0;
- n_emotiveTendency.value = negPercentage;
+ n_emotiveTendency.value = Math.floor(posPercentage);
}
if (posPercentage == negPercentage) {
g_emotionAnalysis.value = 1;
n_emotiveTendency.value = 50;
}
loading.value = false;
+ downloadStatus.value = true;
+ proxy.$modal.msgSuccess("分析成功");
})
.catch((err) => {
loading.value = false;
});
- } else {
+ } else if (preProcessText.value.text3 !== "评论观点抽取") {
marketingAlgorithmApi
- .getMarketingAlgorithmSentiment({ id: s_commentType.value, userId: n_dataTableQuery.value.userId, content: g_analyzeTheNumberOfDataItems.value, modelType: preProcessText.value.text3 == "词云生成" ? "词频分析" : preProcessText.value.text3 })
+ .getMarketingAlgorithmSentiment({ userId: n_dataTableQuery.value.userId, content: g_analyzeTheNumberOfDataItems.value, modelType: preProcessText.value.text3 == "词云生成" ? "词频分析" : preProcessText.value.text3 })
.then((res) => {
if (preProcessText.value.text3 === "词云生成") {
nOriginalWordFrequency.value = res.data;
@@ -723,18 +751,33 @@ const sentimentAnalysis = () => {
nOriginalWordFrequency.value = res.data;
aWordFrequency.value = res.data.slice(0, 5);
nOriginalWordFrequencyNum.value = res.data.length;
- } else {
- aCommentOpinion.value = JSON.parse(res.data).items.reduce((groups, item) => {
- // 如果该 sentiment 的组不存在,则创建
- if (!groups[item.sentiment]) {
- groups[item.sentiment] = [];
- }
- // 将 item 加入到相应的组中
- groups[item.sentiment].push(item);
- return groups;
- }, {});
}
downloadStatus.value = true;
+ g_submitVerification.value.n_maximumQuantity = nOriginalWordFrequency.value.reduce((longest, current) => {
+ return current.keyword.length > longest.keyword.length ? current.keyword : longest.keyword;
+ }, nOriginalWordFrequency.value[0]);
+ g_submitVerification.value.n_frequency = nOriginalWordFrequency.value.reduce((longest, current) => {
+ return item.frequency > max.frequency ? item.n_frequency : max.n_frequency;
+ }, nOriginalWordFrequency.value[0]);
+ console.log(g_submitVerification.value, "g_submitVerification.value.");
+ loading.value = false;
+ proxy.$modal.msgSuccess("分析成功");
+ })
+ .catch((err) => {
+ loading.value = false;
+ });
+ } else {
+ portraitModel
+ .getCommentPoint(JSON.stringify({ text: g_analyzeTheNumberOfDataItems.value }))
+ .then((res) => {
+ aCommentOpinion.value = res.singleAnalysisResult.reduce((groups, item) => {
+ if (!groups[item.sentiment == "正向" ? 2 : 0]) {
+ groups[item.sentiment == "正向" ? 2 : 0] = [];
+ }
+ groups[item.sentiment == "正向" ? 2 : 0].push(item);
+ return groups;
+ }, {});
+ downloadStatus.value = true;
loading.value = false;
proxy.$modal.msgSuccess("分析成功");
})
@@ -748,6 +791,7 @@ const clear = () => {
if (!g_analyzeTheNumberOfDataItems.value) return proxy.$modal.msgWarning("请先分析数据!");
g_analyzeTheNumberOfDataItems.value = "";
aWordFrequency.value = [];
+ loading.value = false;
proxy.$modal.msgSuccess("清空成功");
};
const initChart = () => {
@@ -814,9 +858,7 @@ const initChart = () => {
],
});
};
-const commentType = (text) => {
- s_commentType.value = text.id;
-};
+
const wordFrequencyNext = () => {
if (mWordFrequency.value.frequency !== "" || mWordFrequency.value.namenum !== "") {
wordFrequencySearch();
@@ -849,7 +891,6 @@ const switchingModels = () => {
mWordFrequency.value.size = 5;
mWordFrequency.value.frequency = "";
mWordFrequency.value.namenum = "";
- s_commentType.value = "";
};
@@ -1198,4 +1239,8 @@ p {
border-color: #6fa8de !important;
}
}
+p,
+h4 {
+ color: #ffffff;
+}
diff --git a/src/views/digitalMarketingAlgorithms/components/regressionAnalysis.vue b/src/views/digitalMarketingAlgorithms/components/regressionAnalysis.vue
index 1b5f73c..ba62a4c 100644
--- a/src/views/digitalMarketingAlgorithms/components/regressionAnalysis.vue
+++ b/src/views/digitalMarketingAlgorithms/components/regressionAnalysis.vue
@@ -2,7 +2,7 @@
任务描述
-
(给出任务清单参考,做哪些数据的统计分析)Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra justo commodo. Proin sodales pulvinar sic tempor. Sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam fermentum, nulla luctus pharetra vulputate, felis tellus mollis orci, sed rhoncus pronin sapien nunc accuan eget.
+
使用“销售预测数据”,建立回归模型,并预测销量是84610下的销售额,最后提交实训任务。
diff --git a/src/views/portraitModel/index.vue b/src/views/portraitModel/index.vue
index 5a7f79d..f46b8e0 100644
--- a/src/views/portraitModel/index.vue
+++ b/src/views/portraitModel/index.vue
@@ -8,7 +8,7 @@
-
+
@@ -44,30 +44,18 @@
background: `linear-gradient(0deg, #002651 0%, #0087F9 100%)`,
}"
>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
@@ -269,61 +153,61 @@ const fileTable = ref([]);
const tabList = ref([
{
id: "1",
- key: () => import('./components/rfmAnalysis.vue'),
+ key: () => import("./components/rfmAnalysis.vue"),
title: "RFM分析",
backImg: "/src/assets/images/icon1.png",
},
{
id: "2",
- key: () => import('./components/abcAnalysis.vue'),
+ key: () => import("./components/abcAnalysis.vue"),
title: "帕累托/ABC分析",
backImg: "/src/assets/images/icon2.png",
},
{
id: "3",
- key: () => import('./components/bostonAnalysis.vue'),
+ key: () => import("./components/bostonAnalysis.vue"),
title: "波士顿矩阵分析",
backImg: "/src/assets/images/icon3.png",
},
{
id: "4",
- key: () => import('./components/funnelAnalysis.vue'),
+ key: () => import("./components/funnelAnalysis.vue"),
title: "转化分析-漏斗模型",
backImg: "/src/assets/images/icon4.png",
},
{
id: "5",
- key: () => import('./components/basketAnalysis.vue'),
+ key: () => import("./components/basketAnalysis.vue"),
title: "购物篮分析",
backImg: "/src/assets/images/icon5.png",
},
{
id: "6",
- key: () => import('./components/repurchaseAnalysis.vue'),
+ key: () => import("./components/repurchaseAnalysis.vue"),
title: "复购分析",
backImg: "/src/assets/images/icon6.png",
},
{
id: "7",
- key: () => import('./components/retainAnalysis.vue'),
+ key: () => import("./components/retainAnalysis.vue"),
title: "留存分析",
backImg: "/src/assets/images/icon7.png",
},
{
id: "8",
- key: () => import('./components/viscosityAnalysis.vue'),
+ key: () => import("./components/viscosityAnalysis.vue"),
title: "用户粘性分析",
backImg: "/src/assets/images/icon8.png",
},
{
id: "9",
- key: () => import('./components/AARRRAnalysis.vue'),
+ key: () => import("./components/AARRRAnalysis.vue"),
title: "AARRR用户运营分析",
backImg: "/src/assets/images/icon9.png",
},
{
id: "10",
- key: () => import('./components/portraitAnalysis.vue'),
+ key: () => import("./components/portraitAnalysis.vue"),
title: "用户画像分析",
backImg: "/src/assets/images/icon10.png",
},
@@ -331,7 +215,7 @@ const tabList = ref([
// defineExpose({ submitMethod });
onMounted(() => {
// getTableData("用户属性表");
- currentComponent.value =defineAsyncComponent( tabList.value[0].key)
+ currentComponent.value = defineAsyncComponent(tabList.value[0].key);
});
const getTableData = (name) => {
fileTable.value = [];
@@ -434,47 +318,48 @@ const retrain = () => {
.tabs:nth-of-type(1) {
// background-image: url("@/assets/images/itembg1.png");
width: 130px;
- background-size: 130px 56px;
+ background-size: 130px 56px;
}
.tabs:nth-of-type(2) {
// background-image: url("@/assets/images/itembg1.png");
width: 153px;
- background-size: 153px 56px;
+ background-size: 153px 56px;
}
.tabs:nth-of-type(3) {
// background-image: url("@/assets/images/itembg1.png");
width: 150px;
- background-size: 150px 56px;
+ background-size: 150px 56px;
}
.tabs:nth-of-type(4) {
// background-image: url("@/assets/images/itembg1.png");
width: 172px;
- background-size: 172px 56px;
+ background-size: 172px 56px;
}
- .tabs:nth-of-type(6),.tabs:nth-of-type(7) {
+ .tabs:nth-of-type(6),
+ .tabs:nth-of-type(7) {
// background-image: url("@/assets/images/itembg1.png");
width: 133px;
- background-size: 133px 56px;
+ background-size: 133px 56px;
}
- .tabs:nth-of-type(5) {
+ .tabs:nth-of-type(5) {
// background-image: url("@/assets/images/itembg1.png");
width: 133px;
- background-size: 133px 56px;
+ background-size: 133px 56px;
}
- .tabs:nth-of-type(8) {
+ .tabs:nth-of-type(8) {
// background-image: url("@/assets/images/itembg1.png");
width: 135px;
- background-size: 135px 56px;
+ background-size: 135px 56px;
}
- .tabs:nth-of-type(9) {
+ .tabs:nth-of-type(9) {
// background-image: url("@/assets/images/itembg1.png");
width: 185px;
- background-size: 185px 56px;
+ background-size: 185px 56px;
}
.tabs:nth-of-type(10) {
// background-image: url("@/assets/images/itembg1.png");
width: 138px;
- background-size: 138px 56px;
+ background-size: 138px 56px;
}
}
.btn {