|
|
|
|
@ -1,7 +1,7 @@
|
|
|
|
|
<template>
|
|
|
|
|
<div class="main-top">
|
|
|
|
|
<span style="font-weight: bold; font-size: 18px; color: #3596eb">任务描述</span>
|
|
|
|
|
<p style="font-weight: 400; font-size: 12px; color: #e6e6e6">(给出任务清单参考,做哪些数据的统计分析)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.</p>
|
|
|
|
|
<p style="font-weight: 400; font-size: 12px; color: #e2e7ee !important">(给出任务清单参考,做哪些数据的统计分析)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.</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="main-but">
|
|
|
|
|
<el-button @click="knowledgeImport">
|
|
|
|
|
@ -21,7 +21,7 @@
|
|
|
|
|
</div>
|
|
|
|
|
<div class="metrics">
|
|
|
|
|
<el-select v-model="n_dataTableQuery.tableName" placeholder="请选择数据" style="width: 180px" @change="selectType">
|
|
|
|
|
<el-option v-for="item in algorithmStore.userDataLabel" :key="item" :label="item" :value="item" />
|
|
|
|
|
<el-option v-for="item in algorithmStore.userDataLabel2" :key="item" :label="item" :value="item" />
|
|
|
|
|
</el-select>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="metrics-table" style="margin-top: 10px">
|
|
|
|
|
@ -82,7 +82,7 @@
|
|
|
|
|
</div>
|
|
|
|
|
<div class="analysisResults" style="margin-top: 20px">
|
|
|
|
|
<span style="font-weight: bold; font-size: 18px; color: #3596eb; display: block">分析结果:</span>
|
|
|
|
|
<el-button v-if="preProcessText.text3 !== '词云生成'" @click="download">下载</el-button>
|
|
|
|
|
<el-button v-if="preProcessText.text3 !== '词云生成'" @click="download">下载</el-button>
|
|
|
|
|
<div v-show="preProcessText.text3 == '词频分析'" v-loading="loading2" :element-loading-spinner="svg" element-loading-svg-view-box="-10, -10, 50, 50" element-loading-background="rgba(122, 122, 122, 0.8)">
|
|
|
|
|
<h4>词频列表</h4>
|
|
|
|
|
<p>你可以对词频词语进行修改删除以及增加,频次数越大,显示越大,最多200关键词。</p>
|
|
|
|
|
@ -107,15 +107,15 @@
|
|
|
|
|
<div class="div" v-if="preProcessText.text3 == '词云生成'">
|
|
|
|
|
<div id="mywordcloud_positive" style="width: 50%; height: 600px"></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div ref="captureElement" v-if="preProcessText.text3 == '情感倾向分析' && n_emotiveTendency == 0 ? true : g_emotionAnalysis">
|
|
|
|
|
<div ref="captureElement" v-if="preProcessText.text3 == '情感倾向分析' && n_emotiveTendency == 0 ? true : n_emotiveTendency">
|
|
|
|
|
<div class="emotion_analysis">
|
|
|
|
|
<div class="emotion_analysis-ani-in-le">
|
|
|
|
|
<span>正向情感</span>
|
|
|
|
|
<img src="../../../assets/images/笑脸.png" alt="" />
|
|
|
|
|
</div>
|
|
|
|
|
<el-progress style="width: 480px" :text-inside="true" :stroke-width="20" :percentage="n_emotiveTendency" :color="'#ff540a'" />
|
|
|
|
|
<el-progress :class="[g_emotionAnalysis == 0 ? 'negPercentage ' : '']" style="width: 480px" :text-inside="true" :stroke-width="20" :percentage="n_emotiveTendency" :color="'#ff540a'" />
|
|
|
|
|
<div class="emotion_analysis-ani-in-ri">
|
|
|
|
|
<img src="" alt="" />
|
|
|
|
|
<img src="../../../assets/images/哭脸.png" alt="" />
|
|
|
|
|
<span>负向情感</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="emotion_analysis_title">{{ g_emotionAnalysis == 0 ? "情感偏负向" : g_emotionAnalysis == 1 ? "情感偏中性" : "情感偏正向" }}</div>
|
|
|
|
|
@ -162,7 +162,7 @@
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="情感倾向分析: " label-width="120px">
|
|
|
|
|
<el-radio-group v-model="formInline.emotional" style="margin-left: 31px">
|
|
|
|
|
<el-radio-group v-model="formInline.emotional" style="margin-left: 31px" fill="red" text-color="#ffffff">
|
|
|
|
|
<el-radio value="1" label="正向" size="large"></el-radio>
|
|
|
|
|
<el-radio value="2" label="负向" size="large"></el-radio>
|
|
|
|
|
</el-radio-group>
|
|
|
|
|
@ -184,7 +184,7 @@
|
|
|
|
|
<popModel :showModel="b_algorithmKnowledge" title="情感分析" @closePop="b_algorithmKnowledge = false">
|
|
|
|
|
<template v-slot:content>
|
|
|
|
|
<!-- 情感分析 -->
|
|
|
|
|
<div>
|
|
|
|
|
<div style="color: #000000 !important">
|
|
|
|
|
<p style="font-weight: 700; font-size: 22px">总览</p>
|
|
|
|
|
<p>
|
|
|
|
|
文本分析指对文本数据进行表示 (representation),处理(processing)和建模(modeling)来获得有用的见解(insight)。
|
|
|
|
|
@ -413,7 +413,6 @@
|
|
|
|
|
</template>
|
|
|
|
|
<script setup>
|
|
|
|
|
import popModel from "@/views/components/popModal.vue";
|
|
|
|
|
|
|
|
|
|
import { paginate } from "@/utils/index.js";
|
|
|
|
|
import * as echarts from "echarts";
|
|
|
|
|
import * as XLSX from "XLSX";
|
|
|
|
|
@ -424,7 +423,6 @@ import * as API from "@/api/AI.js";
|
|
|
|
|
import * as marketingAlgorithmApi from "@/api/marketing-algorithm.js";
|
|
|
|
|
import html2canvas from "html2canvas";
|
|
|
|
|
import useAlgorithmStore from "@/store/modules/algorithm.js";
|
|
|
|
|
import useUserStore from "@/store/modules/user";
|
|
|
|
|
import { getUserInfo } from "@/utils/auth";
|
|
|
|
|
// 算法知识
|
|
|
|
|
const b_algorithmKnowledge = ref(false);
|
|
|
|
|
@ -434,7 +432,6 @@ const loading2 = ref(false);
|
|
|
|
|
const { proxy } = getCurrentInstance();
|
|
|
|
|
const algorithmStore = useAlgorithmStore();
|
|
|
|
|
const multipleTableRef = ref(null);
|
|
|
|
|
const b_introductionOfAlgorithmKnowledge = ref(false);
|
|
|
|
|
const n_dataTableQuery = ref({
|
|
|
|
|
index: 1,
|
|
|
|
|
size: 5,
|
|
|
|
|
@ -487,7 +484,6 @@ const preProcessText = ref({
|
|
|
|
|
const aOriginalDataOfAnalysisResults2 = ref({});
|
|
|
|
|
const nOriginalWordFrequency = ref([]); //词频原始数据
|
|
|
|
|
const nOriginalWordFrequencyNum = ref(0); //词频原始数据
|
|
|
|
|
const nOriginalWordFrequencySearch = ref([]); //词频原始数据
|
|
|
|
|
const mWordFrequency = ref({
|
|
|
|
|
index: 1,
|
|
|
|
|
size: 10,
|
|
|
|
|
@ -498,10 +494,13 @@ const mWordFrequency = ref({
|
|
|
|
|
// 分析变量
|
|
|
|
|
const g_analyzeTheNumberOfDataItems = ref("");
|
|
|
|
|
// 模型参数
|
|
|
|
|
const g_modelParameter = ref([]);
|
|
|
|
|
const n_emotiveTendency = ref(0);
|
|
|
|
|
const g_emotionAnalysis = ref(0);
|
|
|
|
|
|
|
|
|
|
const aCommentOpinion = ref([]);
|
|
|
|
|
// 下载状态
|
|
|
|
|
const downloadStatus = ref(false);
|
|
|
|
|
// 下载
|
|
|
|
|
// 预处理
|
|
|
|
|
const preProcess = (tetx) => {
|
|
|
|
|
if (g_indicatorData.value.length == 0) {
|
|
|
|
|
@ -523,7 +522,6 @@ const preProcess = (tetx) => {
|
|
|
|
|
const taskSubmit = () => {
|
|
|
|
|
dialogVisible.value = true;
|
|
|
|
|
};
|
|
|
|
|
const tableData = ref([]);
|
|
|
|
|
const headerCellStyle = () => {
|
|
|
|
|
return {
|
|
|
|
|
backgroundColor: "#1882DE !important", // 设置表头背景颜色
|
|
|
|
|
@ -544,47 +542,25 @@ 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 = res.data.map((item) => (item ? item.text : "")).join(",");
|
|
|
|
|
// g_analyzeTheNumberOfDataItems.value =
|
|
|
|
|
if (
|
|
|
|
|
res.data
|
|
|
|
|
.map((item) => (item ? item.text : ""))
|
|
|
|
|
.every((item) => {
|
|
|
|
|
return item !== "";
|
|
|
|
|
})
|
|
|
|
|
) {
|
|
|
|
|
g_analyzeTheNumberOfDataItems.value = res.data.map((item) => (item ? item.text : "")).join(",");
|
|
|
|
|
} else {
|
|
|
|
|
g_analyzeTheNumberOfDataItems.value = "";
|
|
|
|
|
loading.value = false;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
analysisData.value = res.data.filter((item) => item !== null);
|
|
|
|
|
loading.value = false;
|
|
|
|
|
proxy.$modal.msgSuccess("分析数据成功");
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
// 选择模型
|
|
|
|
|
const handlemodelSelectionChange = (type) => {
|
|
|
|
|
g_modelParameter.value = type.map((item) => item.name);
|
|
|
|
|
};
|
|
|
|
|
//计算
|
|
|
|
|
const modelCalculation = () => {
|
|
|
|
|
if (analysisData.value.length == 0 && g_modelParameter.value.length == 0) {
|
|
|
|
|
proxy.$modal.msgWarning("请先分析数据/未选择模型参数!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
const processedData = processArrayData(["text"], analysisData.value);
|
|
|
|
|
marketingAlgorithmApi.getMarketingAlgorithmPreprocessing(JSON.stringify({ map: processedData, statistic: [preProcessText.value.text3 == "词云生成" ? "词频分析" : preProcessText.value.text3], userId: n_dataTableQuery.value.userId })).then((res) => {
|
|
|
|
|
aOriginalDataOfAnalysisResults2.value = res.data;
|
|
|
|
|
tableData.value = res.data.map((item) => item.statistics);
|
|
|
|
|
if (res.data.length > 5) {
|
|
|
|
|
nNumberOfAnalysisResults.value = res.data.length;
|
|
|
|
|
aOriginalDataOfAnalysisResults.value = res.data.map((item) => item.statistics);
|
|
|
|
|
tableData.value = res.data.map((item) => item.statistics).slice(0, 5);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
function processArrayData(keys, data) {
|
|
|
|
|
// 创建结果对象
|
|
|
|
|
const result = {};
|
|
|
|
|
|
|
|
|
|
// 遍历每个键
|
|
|
|
|
keys.forEach((key) => {
|
|
|
|
|
// 为每个键创建一个数组,包含 data 数组中该键的所有值
|
|
|
|
|
const values = data.map((item) => item[key]);
|
|
|
|
|
// 将键和对应的值数组添加到结果对象中
|
|
|
|
|
result[key] = values;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
onMounted(() => {
|
|
|
|
|
getIndicator();
|
|
|
|
|
});
|
|
|
|
|
@ -620,35 +596,42 @@ const submitTask = () => {
|
|
|
|
|
const restart = () => {
|
|
|
|
|
// 清空
|
|
|
|
|
formInline.value = {
|
|
|
|
|
average: "",
|
|
|
|
|
median: "",
|
|
|
|
|
mode: "",
|
|
|
|
|
standardDeviation: "",
|
|
|
|
|
variance: "",
|
|
|
|
|
standardError: "",
|
|
|
|
|
kurtosis: "",
|
|
|
|
|
skewness: "",
|
|
|
|
|
max: "",
|
|
|
|
|
min: "",
|
|
|
|
|
summation: "",
|
|
|
|
|
observations: "",
|
|
|
|
|
frequency: "",
|
|
|
|
|
text1: "",
|
|
|
|
|
text2: "",
|
|
|
|
|
emotional: "",
|
|
|
|
|
prominent: "",
|
|
|
|
|
};
|
|
|
|
|
analysisData.value = [];
|
|
|
|
|
g_analyzeTheNumberOfDataItems.value = "";
|
|
|
|
|
analysisHanderKry.value = [];
|
|
|
|
|
tableData.value = [];
|
|
|
|
|
g_indicatorData.value = [];
|
|
|
|
|
g_modelParameter.value = [];
|
|
|
|
|
preProcessText.value.text2 = "";
|
|
|
|
|
n_dataTableQuery.value.tableName = "用户属性表";
|
|
|
|
|
getIndicator();
|
|
|
|
|
proxy.$modal.msgSuccess("重新开始成功");
|
|
|
|
|
preProcessText.value = {
|
|
|
|
|
text1: "数据去重",
|
|
|
|
|
text2: "",
|
|
|
|
|
text3: "",
|
|
|
|
|
};
|
|
|
|
|
aOriginalDataOfAnalysisResults2.value = {};
|
|
|
|
|
mWordFrequency.value = {
|
|
|
|
|
index: 1,
|
|
|
|
|
size: 10,
|
|
|
|
|
namenum: "",
|
|
|
|
|
frequency: "",
|
|
|
|
|
};
|
|
|
|
|
n_emotiveTendency.value = 0;
|
|
|
|
|
aCommentOpinion.value = [];
|
|
|
|
|
nOriginalWordFrequencyNum.value = 0;
|
|
|
|
|
aWordFrequency.value = [];
|
|
|
|
|
nOriginalWordFrequency.value = [];
|
|
|
|
|
s_commentType.value = "";
|
|
|
|
|
proxy.$modal.msgSuccess("重新开始!");
|
|
|
|
|
multipleTableRef.value.clearSelection();
|
|
|
|
|
};
|
|
|
|
|
const captureElement = ref(null);
|
|
|
|
|
// 下载
|
|
|
|
|
const download = async () => {
|
|
|
|
|
// let tableData = ["内容", "频次"];
|
|
|
|
|
// XLSX.utils.aoa_to_sheet(tableData);
|
|
|
|
|
if (!downloadStatus.value) return proxy.$modal.msgWarning("请先分析数据!");
|
|
|
|
|
if (preProcessText.value.text3 == "情感倾向分析" || preProcessText.value.text3 == "评论观点抽取") {
|
|
|
|
|
if (captureElement.value) {
|
|
|
|
|
try {
|
|
|
|
|
@ -703,41 +686,66 @@ const sentimentAnalysis = () => {
|
|
|
|
|
}
|
|
|
|
|
if (g_analyzeTheNumberOfDataItems.value == "") return proxy.$modal.msgWarning("请先选择指标/手动输入进行情感分析!");
|
|
|
|
|
loading.value = true;
|
|
|
|
|
marketingAlgorithmApi
|
|
|
|
|
.getMarketingAlgorithmSentiment({ id: s_commentType.value, 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;
|
|
|
|
|
initChart();
|
|
|
|
|
} else if (preProcessText.value.text3 === "词频分析") {
|
|
|
|
|
nOriginalWordFrequency.value = res.data;
|
|
|
|
|
aWordFrequency.value = res.data.slice(0, 5);
|
|
|
|
|
nOriginalWordFrequencyNum.value = res.data.length;
|
|
|
|
|
} else if (preProcessText.value.text3 === "情感倾向分析") {
|
|
|
|
|
g_emotionAnalysisinfo = JSON.parse(res.data);
|
|
|
|
|
g_emotionAnalysis.value = JSON.parse(res.data)?.items[0]?.sentiment;
|
|
|
|
|
n_emotiveTendency.value = Math.round(g_emotionAnalysisinfo.items[0].positive_prob * 100);
|
|
|
|
|
console.log(n_emotiveTendency.value, " n_emotiveTendency.value");
|
|
|
|
|
} 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;
|
|
|
|
|
}, {});
|
|
|
|
|
}
|
|
|
|
|
loading.value = false;
|
|
|
|
|
proxy.$modal.msgSuccess("分析成功");
|
|
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
|
|
|
|
loading.value = false;
|
|
|
|
|
});
|
|
|
|
|
if (preProcessText.value.text3 === "情感倾向分析") {
|
|
|
|
|
marketingAlgorithmApi
|
|
|
|
|
.getMarketingAlgorithmSentimentAnalysis(JSON.stringify({ text: g_analyzeTheNumberOfDataItems.value }))
|
|
|
|
|
.then((res) => {
|
|
|
|
|
g_emotionAnalysisinfo = res.data;
|
|
|
|
|
const pos = parseFloat(g_emotionAnalysisinfo.pos);
|
|
|
|
|
const neg = parseFloat(g_emotionAnalysisinfo.neg);
|
|
|
|
|
const total = pos + neg;
|
|
|
|
|
const posPercentage = total !== 0 ? (pos / total) * 100 : 0;
|
|
|
|
|
const negPercentage = total !== 0 ? (neg / total) * 100 : 0;
|
|
|
|
|
if (posPercentage > negPercentage) {
|
|
|
|
|
g_emotionAnalysis.value = 2;
|
|
|
|
|
n_emotiveTendency.value = posPercentage;
|
|
|
|
|
} else if (negPercentage > posPercentage) {
|
|
|
|
|
g_emotionAnalysis.value = 0;
|
|
|
|
|
n_emotiveTendency.value = negPercentage;
|
|
|
|
|
}
|
|
|
|
|
if (posPercentage == negPercentage) {
|
|
|
|
|
g_emotionAnalysis.value = 1;
|
|
|
|
|
n_emotiveTendency.value = 50;
|
|
|
|
|
}
|
|
|
|
|
loading.value = false;
|
|
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
|
|
|
|
loading.value = false;
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
marketingAlgorithmApi
|
|
|
|
|
.getMarketingAlgorithmSentiment({ id: s_commentType.value, 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;
|
|
|
|
|
initChart();
|
|
|
|
|
} else if (preProcessText.value.text3 === "词频分析") {
|
|
|
|
|
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;
|
|
|
|
|
loading.value = false;
|
|
|
|
|
proxy.$modal.msgSuccess("分析成功");
|
|
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
|
|
|
|
loading.value = false;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
// 清空
|
|
|
|
|
const clear = () => {
|
|
|
|
|
if (!g_analyzeTheNumberOfDataItems.value) return proxy.$modal.msgWarning("请先分析数据!");
|
|
|
|
|
g_analyzeTheNumberOfDataItems.value = "";
|
|
|
|
|
aWordFrequency.value = [];
|
|
|
|
|
proxy.$modal.msgSuccess("清空成功");
|
|
|
|
|
@ -966,6 +974,24 @@ const switchingModels = () => {
|
|
|
|
|
.footer {
|
|
|
|
|
padding-top: 20px;
|
|
|
|
|
text-align: center;
|
|
|
|
|
.el-button {
|
|
|
|
|
width: 110px;
|
|
|
|
|
height: 31px;
|
|
|
|
|
color: #333333;
|
|
|
|
|
border: none;
|
|
|
|
|
// 获取焦点
|
|
|
|
|
&:focus {
|
|
|
|
|
outline: none;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.el-button:nth-child(1) {
|
|
|
|
|
background: url("../../../assets/images/情感分析.png") no-repeat;
|
|
|
|
|
background-size: 100% 100%;
|
|
|
|
|
}
|
|
|
|
|
.el-button:nth-child(2) {
|
|
|
|
|
background: url("../../../assets/images/取消.png") no-repeat;
|
|
|
|
|
background-size: 100% 100%;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.metrics,
|
|
|
|
|
@ -1055,9 +1081,17 @@ const switchingModels = () => {
|
|
|
|
|
font-size: 24px;
|
|
|
|
|
font-weight: normal;
|
|
|
|
|
}
|
|
|
|
|
:deep(.el-progress) {
|
|
|
|
|
position: relative;
|
|
|
|
|
}
|
|
|
|
|
:deep(.el-progress-bar__outer) {
|
|
|
|
|
background-color: #036fe2;
|
|
|
|
|
}
|
|
|
|
|
:deep(.negPercentage) {
|
|
|
|
|
.el-progress-bar__inner {
|
|
|
|
|
background-color: #036fe2 !important;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.comment-opinion {
|
|
|
|
|
padding: 30px 20px 0px 90px !important;
|
|
|
|
|
@ -1152,8 +1186,8 @@ const switchingModels = () => {
|
|
|
|
|
}
|
|
|
|
|
h4,
|
|
|
|
|
p {
|
|
|
|
|
color: #ffffff !important;
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
// color: #ffffff !important;
|
|
|
|
|
// font-size: 14px;
|
|
|
|
|
}
|
|
|
|
|
:deep(.pagination-container .el-pagination) {
|
|
|
|
|
// 去除定位
|
|
|
|
|
@ -1164,4 +1198,22 @@ p {
|
|
|
|
|
flex-wrap: nowrap !important;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
:deep(.el-radio-group) {
|
|
|
|
|
// 添加颜色类
|
|
|
|
|
.is-checked.el-radio__label {
|
|
|
|
|
color: #ffffff !important;
|
|
|
|
|
}
|
|
|
|
|
.el-radio__input.is-checked .el-radio__inner {
|
|
|
|
|
background: #2d5c8f !important;
|
|
|
|
|
border-color: #2d5c8f !important;
|
|
|
|
|
}
|
|
|
|
|
.el-radio__label {
|
|
|
|
|
color: #ffffff !important;
|
|
|
|
|
}
|
|
|
|
|
.el-radio__input .el-radio__inner {
|
|
|
|
|
background: #2d5c8f !important;
|
|
|
|
|
border-color: #2d5c8f !important;
|
|
|
|
|
border-color: #6fa8de !important;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
|