From 08881d6b6412822d5035f63a0775ca1f213c8668 Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期一, 20 十月 2025 10:17:22 +0800
Subject: [PATCH] 测试完成
---
src/views/knowledge/education/index.vue | 295 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 280 insertions(+), 15 deletions(-)
diff --git a/src/views/knowledge/education/index.vue b/src/views/knowledge/education/index.vue
index ec87876..32789dc 100644
--- a/src/views/knowledge/education/index.vue
+++ b/src/views/knowledge/education/index.vue
@@ -1,5 +1,6 @@
<template>
<div class="educationmanagement">
+
<!-- 宸︿晶鏍� -->
<div class="sidecolumn">
<div class="sidecolumn-top">
@@ -87,7 +88,6 @@
>
<el-option
v-for="item in courtyardlist"
- :key="item.label"
:label="item.label"
:value="item.label"
>
@@ -111,7 +111,6 @@
>
<el-option
v-for="(item, index) in qyoptions"
- :key="item.value"
:label="item.label"
:value="item.value"
>
@@ -161,6 +160,16 @@
>鍒犻櫎</el-button
>
</el-col>
+ <el-col :span="1.5">
+ <el-button
+ type="success"
+ plain
+ icon="el-icon-data-line"
+ size="medium"
+ @click="statistics"
+ >缁熻鍒嗘瀽</el-button
+ >
+ </el-col>
<!-- <el-col :span="1.5"> </el-col> -->
</el-row>
@@ -183,6 +192,7 @@
label="鏍囬"
fixed
align="center"
+ width="150"
key="preachname"
prop="preachname"
:show-overflow-tooltip="true"
@@ -197,6 +207,7 @@
<el-table-column
label="涓昏鍐呭"
align="center"
+ width="260"
key="preachcontent"
prop="preachcontent"
:show-overflow-tooltip="true"
@@ -310,15 +321,15 @@
><i class="el-icon-edit"></i>浜岀淮鐮�</span
></el-button
> -->
- <!-- <el-button
+ <el-button
size="medium"
type="text"
@click="Vieweducation(scope.row)"
v-hasPermi="['system:user:edit']"
><span class="button-textck"
- ><i class="el-icon-edit"></i>鏌ョ湅</span
+ ><i class="el-icon-edit"></i>棰勮</span
></el-button
- > -->
+ >
<el-button
size="medium"
type="text"
@@ -353,7 +364,7 @@
</div>
</div>
<!-- 娣诲姞绫诲埆寮规 -->
- <el-dialog title="鏂板绫诲埆" width="30%" :visible.sync="dialogFormVisible">
+ <el-dialog title="绫诲埆缂栬緫" width="30%" :visible.sync="dialogFormVisible">
<div style="text-align: center; margin-bottom: 20px">
<el-radio-group v-model="radio">
<el-radio-button label="涓诲垎绫�"></el-radio-button>
@@ -442,6 +453,29 @@
<div class="qrcode-img"></div>
</div>
</el-dialog>
+ <el-dialog title="妯℃澘棰勮" :visible.sync="previewtf" width="60%">
+ <div class="preview-left">
+ <!-- 鍗曢�� -->
+ <div v-html="htmlRichText"></div>
+ </div>
+ <!-- <span slot="footer" class="dialog-footer">
+ <el-button @click="previewGo">鍓嶅線妯℃澘璇︽儏淇敼</el-button>
+ <el-button type="primary" @click="previewFn">纭浣跨敤</el-button>
+ </span> --> </el-dialog
+ >\
+ <!-- 缁熻鍥捐〃 -->
+ <el-dialog width="80%" title="绠¢ゲ瀹f暀缁熻" :visible.sync="statisticson">
+ <div class="grid-content bg-purple" style="min-height: 300px">
+ <div class="title">
+ 瀹f暀缁熻
+ <span class="el-icon-s-unfold moreIcon"></span>
+ </div>
+ <div class="cooperate">
+ <!-- 鍚堜綔鍖哄煙 -->
+ <div class="pieChart" id="pieCharts"></div>
+ </div>
+ </div>
+ </el-dialog>
</div>
</template>
@@ -459,11 +493,12 @@
getillnesslist,
illnesslistget,
getillness,
+ deltargetillness,
} from "@/api/AiCentre/index";
import { listDept } from "@/api/system/dept";
import { getToken } from "@/utils/auth";
import store from "@/store";
-
+import axios from "axios";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
@@ -487,10 +522,13 @@
total: 0,
nameeducation: "",
haoeducation: "",
+ statisticson: false,
indexid: null,
inputValue: "",
+ htmlRichText: "",
radio: "涓诲垎绫�",
inputVisible: false,
+ previewtf: false,
illnessVisible: false, //鎸囨爣鐤剧梾寮规
deptOptions: [],
courtyardlist: [],
@@ -549,7 +587,9 @@
xjxsoptions: [],
deptList: [],
props: { multiple: true, value: "deptId", label: "deptName" },
-
+ Collarr: [],
+ Collarrname: [],
+ Collarrvalue: [],
//绫诲埆鍒楄〃
editableTabs: [],
// 鏌ヨ鍙傛暟
@@ -598,6 +638,113 @@
this.nameeducation = row.userName;
this.haoeducation = row.nickName;
},
+ // 鍚堜綔鍟嗙偣浣嶆眹鎬荤粺璁¢ゼ鐘跺浘
+ async getnodeCollect() {
+ // const res = await getnodeCollect();
+ // this.nodeCollect = res.data;
+ // this.nodeCollect = [
+ // { name: "褰卞儚闅忚", value: 1232 },
+ // { name: "鍑洪櫌闅忚", value: 342 },
+ // ];
+ this.myPieChart();
+ },
+ // 楗肩姸鍥�
+ myPieChart() {
+ // 鍩轰簬鍑嗗濂界殑dom锛屽垵濮嬪寲echarts瀹炰緥
+ var echarts = require("echarts");
+ var mypPieCharts = echarts.init(document.getElementById("pieCharts"));
+ this.mypPieCharts = mypPieCharts;
+ // 鎸囧畾鍥捐〃鐨勯厤缃」鍜屾暟鎹�
+ var optionPie = {
+ tooltip: {
+ trigger: "item",
+ formatter: "{a} <br/>{b} : {c} ({d}%)",
+ },
+ legend: {
+ left: "left",
+ orient: "horizontal", // 鍥句緥椤规按骞虫帓鍒�
+ top: "top", // 鍥句緥鏀剧疆鍦ㄩ《閮�
+ data: this.Collarrname,
+ },
+ toolbox: {
+ feature: {
+ magicType: {
+ type: ["stack"],
+ },
+ dataView: {},
+ },
+ },
+ xAxis: [
+ {
+ type: "category",
+ data: this.Collarrname,
+ axisLabel: {
+ formatter: "{value}",
+ },
+ },
+ ],
+ grid: { top: "30%", left: "10%", right: "40%", bottom: "10%" },
+ yAxis: [
+ {
+ type: "value",
+ },
+ ],
+ series: [
+ {
+ name: "鏌ョ湅娆℃暟",
+ type: "bar",
+ data: this.Collarrvalue,
+ seriesLayoutBy: "row",
+ smooth: true,
+ label: {
+ show: true,
+ position: "inside",
+ },
+ emphasis: { focus: "series" },
+ },
+ {
+ name: "鏌ョ湅娆℃暟姣旂巼",
+ type: "pie",
+ radius: "30%",
+ radius: ["40%", "70%"],
+ center: ["80%", "60%"],
+ data: this.Collarr,
+ emphasis: {
+ focus: "self",
+ },
+ itemStyle: {
+ borderRadius: 10,
+ borderColor: "#fff",
+ borderWidth: 2,
+ },
+ label: {
+ formatter: "{b}: {d}%",
+ },
+ },
+ ],
+ };
+ mypPieCharts.on("updateAxisPointer", function (event) {
+ const xAxisInfo = event.axesInfo[0];
+ if (xAxisInfo) {
+ const dimension = xAxisInfo.value + 1;
+ mypPieCharts.setOption({
+ series: {
+ id: "pie",
+ label: {
+ formatter: "{b}: {@[" + dimension + "]} ",
+ },
+ encode: {
+ value: dimension,
+ tooltip: dimension,
+ },
+ },
+ });
+ }
+ });
+
+ // 浣跨敤鍒氭寚瀹氱殑閰嶇疆椤瑰拰鏁版嵁鏄剧ず鍥捐〃銆�
+ mypPieCharts.setOption(optionPie);
+ },
// 琛ㄥ崟閲嶇疆
reset() {
this.form = {};
@@ -626,22 +773,37 @@
/** 鏂板鎸夐挳鎿嶄綔 */
handleAdd() {
this.$router.push({
- path: "/knowledge/education/compilequer/",
+ path: "/knowledge/educationinfo/",
});
},
/** 淇敼鎸夐挳鎿嶄綔 */
handleUpdate(row) {
this.$router.push({
- path: "/knowledge/education/compilequer/",
+ path: "/knowledge/educationinfo/",
query: { id: row.id },
});
},
// 鏌ョ湅瀹f暀
- Vieweducation() {
- this.$router.push({
- path: "/knowledge/education/examine/",
- query: { id: row.id },
- });
+ Vieweducation(row) {
+ this.htmlRichText = null;
+ this.previewtf = true;
+ axios
+ .get(row.htmlRichText)
+ .then((response) => {
+ console.log(response.data, "鏁版嵁"); // 杈撳嚭鑾峰彇鍒扮殑鏂囦欢鍐呭
+ this.htmlRichText = response.data;
+ this.htmlRichText = this.addStyleToImages(this.htmlRichText);
+ })
+ .catch((error) => {
+ this.$modal.msgError("鑾峰彇瀵屾枃鏈け璐�");
+ console.error("Failed to fetch file:", error);
+ });
+ },
+ addStyleToImages(html) {
+ return html.replace(
+ /<img([^>]*)style=(['"])(?:(?!\2).)*\2([^>]*)>/g,
+ '<img$1style="width:100%;height:auto;"$3>'
+ );
},
/** 鍒犻櫎鎸夐挳鎿嶄綔 */
@@ -657,6 +819,31 @@
this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
})
.catch(() => {});
+ },
+ // 鎵撳紑缁熻鍥捐〃
+ statistics() {
+ this.Collarrname=[];
+ this.Collarrvalue=[];
+ //鍙栨暟鎹�
+ let obj = { assortid: 13, isavailable: "", pageNum: 1, pageSize: 20 };
+ getlibrarylist(obj).then((response) => {
+ console.log(response.rows, "response.rows");
+ response.rows.forEach((item) => {
+ this.Collarr.push({ name: item.preachname, value: item.watchCount });
+ });
+ this.Collarrname = this.Collarr.map((item) => item.name);
+
+ // 鎻愬彇 value 灞炴�у埌涓�涓柊鏁扮粍
+ this.Collarrvalue = this.Collarr.map((item) =>
+ parseInt(item.value, 10)
+ );
+ this.statisticson = true;
+ this.$nextTick(function () {
+ this.getnodeCollect();
+ });
+ this.total = response.total;
+ this.loading = false;
+ });
},
// 鍒嗙被鏍�-----------------------------------------
@@ -702,6 +889,7 @@
} else {
return this.$modal.msgError("璇峰~鍐欏畬鏁翠俊鎭�");
}
+ this.classifyform.hetype = 1;
addheLibraryAssort(this.classifyform).then((res) => {
this.getDeptTree();
this.$modal.msgSuccess("鏂板鎴愬姛");
@@ -950,6 +1138,83 @@
vertical-align: bottom;
}
}
+
+.bg-purple {
+ background: #fff;
+}
+
+.grid-content {
+ min-height: 36px;
+ border-radius: 20px;
+ padding: 0 10px;
+}
+.title {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+ font-size: 16px;
+ font-family: PingFangSC-Semibold, PingFang SC;
+ font-weight: 600;
+ color: #333;
+ padding-top: 17px;
+ padding-bottom: -4px;
+
+ span {
+ margin-left: 10px;
+ font-size: 12px;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #999;
+ }
+}
+.moreIcon {
+ font-size: 22px !important;
+ margin-left: 400px !important;
+ color: #5f84ff !important;
+ cursor: pointer;
+}
+.cooperate {
+ width: 100%;
+ height: 280px;
+ margin-top: 25px;
+ display: flex;
+ .pieChart {
+ flex: 1;
+ }
+ .Points {
+ width: 154px;
+ height: 230px;
+ text-align: center;
+ padding: 20px 0;
+ background: linear-gradient(135deg, transparent, #f8f8f9 0) 0 0,
+ linear-gradient(-135deg, transparent 12px, #f8f8f9 0) 100% 0,
+ linear-gradient(-45deg, transparent, #f8f8f9 0) 100% 100%,
+ linear-gradient(45deg, transparent 12px, #f8f8f9 0) 0 100%;
+ background-size: 50% 50%;
+ background-repeat: no-repeat;
+ p {
+ height: 33px;
+ margin-bottom: 10px;
+ font-size: 24px;
+ font-family: PingFangSC-Semibold, PingFang SC;
+ font-weight: 600;
+ color: #072074;
+ line-height: 33px;
+ }
+ span {
+ height: 17px;
+ margin-top: 6px;
+ font-size: 12px;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #000412;
+ line-height: 17px;
+ }
+ }
+}
::v-deep .el-tree-node__content {
display: -webkit-box;
display: -ms-flexbox;
--
Gitblit v1.9.3