From 9dd3964e34f08bbb04a82f2e05f1b41de7425c48 Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期五, 20 六月 2025 15:30:16 +0800
Subject: [PATCH] 测试完成
---
src/views/sfstatistics/analyse/index.vue | 230 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 225 insertions(+), 5 deletions(-)
diff --git a/src/views/sfstatistics/analyse/index.vue b/src/views/sfstatistics/analyse/index.vue
index 7972788..601d735 100644
--- a/src/views/sfstatistics/analyse/index.vue
+++ b/src/views/sfstatistics/analyse/index.vue
@@ -1,17 +1,237 @@
<template>
- <div>鎸囨爣鍒嗘瀽</div>
+ <div class="indexanalysis">
+ <div class="analysis-top">
+ <div class="title-top">鏌ヨ鏉′欢</div>
+ <div class="value">
+ <el-form ref="form" :model="queryParams" label-width="120px">
+ <el-form-item label="閫夋嫨鎸囨爣鍚嶇О">
+ <el-select
+ remote
+ :remote-method="remoteMethod"
+ default-first-option
+ v-model="targetvalue"
+ @change="Labelstatistics"
+ filterable
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in targetList"
+ :key="item.id"
+ :label="item.targetname"
+ :value="item.id"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-form>
+ </div>
+ </div>
+ <div class="formindex">
+ <el-table
+ v-loading="loading"
+ :data="tableData"
+ :span-method="objectSpanMethod"
+ border
+ :summary-method="getSummaries"
+ show-summary
+ style="width: 100%"
+ >
+ <el-table-column prop="targetname" label="鎸囨爣鍚嶇О"> </el-table-column>
+ <el-table-column prop="targetShowCount" label="鎸囨爣鍑虹幇娆℃暟">
+ </el-table-column>
+ <el-table-column prop="matchedtext" label="鍗曢」鍚嶇О"> </el-table-column>
+ <el-table-column prop="count" label="鍗曢」閫変腑娆℃暟"> </el-table-column>
+ <el-table-column prop="percentage" label="鍗犳瘮">
+ <template slot-scope="scope">
+ <span>{{ (Number(scope.row.percentage) * 100).toFixed(2) }}%</span>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ </div>
</template>
<script>
+import { gettargetInfo, Labelstatistics } from "@/api/AiCentre/index";
export default {
+ name: "indexanalysis",
data() {
- return {};
+ return {
+ targetList: [
+ {
+ value: "閫夐」1",
+ label: "鍙戠儹鏈夋棤",
+ },
+ {
+ value: "閫夐」2",
+ label: "鍜冲椊鏈夋棤",
+ },
+ {
+ value: "閫夐」3",
+ label: "鏈嶈嵂鍚庝笉鑹弽搴�",
+ },
+ ],
+ tableData: [
+ {
+ date: "鍙戠儹鏈夋棤",
+ name: "鏈�",
+ address: 1,
+ times: 2,
+ proportion: "50",
+ },
+ {
+ date: "鍙戠儹鏈夋棤",
+ name: "鏃�",
+ address: 1,
+ times: 2,
+ proportion: "50",
+ },
+ {
+ date: "鍙戠儹鏈夋棤",
+ name: "鍏朵粬",
+ address: 0,
+ times: 2,
+ proportion: "0",
+ },
+ ],
+ targetvalue: "",
+ queryParams: {
+ pageNum: 1,
+ pageSize: 66,
+ scriptType: "1",
+ },
+ };
},
- created() {},
+ created() {
+ this.getList();
+ },
- methods: {},
+ methods: {
+ getList() {
+ this.loading = true;
+ gettargetInfo(this.queryParams).then((res) => {
+ this.targetList = res.rows;
+ this.Labelstatistics(res.rows[0].id);
+ });
+ },
+ Labelstatistics(id) {
+ console.log(id, "id");
+
+ Labelstatistics(id).then((res) => {
+ if (res.data.length > 0) {
+ this.tableData = res.data;
+ } else {
+ gettargetInfo({ id: id }).then((res) => {
+ console.log(res, "鏇挎崲灞曠ず鍊�");
+ this.tableData = [];
+ res.rows[0].targetoptionList.forEach((item) => {
+ this.tableData.push({
+ targetname: res.rows[0].targetname,
+ targetShowCount:0,
+ count:0,
+ percentage:0,
+ matchedtext:item.targetvalue,
+ });
+ });
+ });
+ }
+ this.loading = false;
+ });
+ },
+ remoteMethod(value) {
+ const illnessqueryParams = {
+ pageNum: 1,
+ pageSize: 66,
+ targetname: value,
+ scriptType: "1",
+ };
+ setTimeout(() => {
+ gettargetInfo(illnessqueryParams).then((res) => {
+ this.targetList = res.rows;
+ });
+ }, 200);
+ },
+ objectSpanMethod({ row, column, rowIndex, columnIndex }) {
+ if (columnIndex === 0 || columnIndex === 1) {
+ const totalRows = this.tableData.length;
+ if (rowIndex === 0) {
+ return [totalRows, 1];
+ } else {
+ // 鍏朵粬琛岄殣钘�
+ return [0, 0];
+ }
+ }
+ },
+ getSummaries(param) {
+ const { columns, data } = param;
+ const sums = [];
+ columns.forEach((column, index) => {
+ console.log(data, "data");
+
+ if (index === 0) {
+ sums[index] = "鍚堣"; // 淇敼涓衡�滃悎璁♀�濇洿绗﹀悎璇箟
+ return;
+ }
+ if (column.property === "percentage") {
+ // 瀵瑰崰姣斿垪杩涜鐗规畩澶勭悊
+ const values = data.map((item) => Number(item[column.property]));
+ const total = values.reduce((prev, curr) => {
+ const value = Number(curr);
+ if (!isNaN(value)) {
+ return prev + value;
+ } else {
+ return prev;
+ }
+ }, 0);
+ sums[index] = `${total * 100}%`; // 鐩存帴娣诲姞鐧惧垎鍙�
+ } else if (column.property === "targetShowCount") {
+ sums[index] = data[0].targetShowCount + " 娆�"; // 涓烘鏁扮浉鍏冲垪娣诲姞鍗曚綅
+ } else {
+ const values = data.map((item) => Number(item[column.property]));
+ if (!values.every((value) => isNaN(value))) {
+ sums[index] = values.reduce((prev, curr) => {
+ const value = Number(curr);
+ if (!isNaN(value)) {
+ return prev + curr;
+ } else {
+ return prev;
+ }
+ }, 0);
+ if (column.property === "count") {
+ sums[index] += " 娆�"; // 涓烘鏁扮浉鍏冲垪娣诲姞鍗曚綅
+ }
+ } else {
+ sums[index] = "/";
+ }
+ }
+ });
+ return sums;
+ },
+ },
};
</script>
-<style lang="scss" scoped></style>
+<style lang="scss" scoped>
+.analysis-top {
+ border: 1px solid #dcdfe6;
+ -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
+ 0 0 6px 0 rgba(0, 0, 0, 0.04);
+ margin: 15px;
+ .title-top {
+ background-color: #6784f2;
+ color: #fff;
+ padding: 10px 20px;
+ font-size: 20px;
+ font-weight: 500;
+ margin-bottom: 20px;
+ }
+}
+.formindex {
+ margin: 0 15px;
+ border: 1px solid #dcdfe6;
+ -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
+ 0 0 6px 0 rgba(0, 0, 0, 0.04);
+ padding: 20px;
+}
+</style>
--
Gitblit v1.9.3