From b73b5dd97cbda40d0584f579ed9f65f4fcffe23f Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期一, 31 三月 2025 15:33:02 +0800
Subject: [PATCH] 测试完成

---
 src/views/knowledge/education/index.vue | 1257 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 1,252 insertions(+), 5 deletions(-)

diff --git a/src/views/knowledge/education/index.vue b/src/views/knowledge/education/index.vue
index 3dc5259..b692fc7 100644
--- a/src/views/knowledge/education/index.vue
+++ b/src/views/knowledge/education/index.vue
@@ -1,17 +1,1264 @@
 <template>
-  <div>瀹f暀绠$悊</div>
+  <div class="educationmanagement">
+
+    <!-- 宸︿晶鏍� -->
+    <div class="sidecolumn">
+      <div class="sidecolumn-top">
+        <div class="top-wj">瀹f暀绫诲瀷</div>
+        <div class="top-tj" @click="dialogFormVisible = true">+娣诲姞绫诲埆</div>
+      </div>
+      <div class="center-ss">
+        <el-input
+          placeholder="璇疯緭鍏ュ唴瀹�"
+          v-model="sidecolumnval"
+          class="input-with-select"
+          size="medium"
+        >
+        </el-input>
+      </div>
+      <div class="head-container" style="margin-top: 20px">
+        <el-tree
+          :data="deptOptions"
+          :props="defaultProps"
+          :expand-on-click-node="false"
+          :filter-node-method="filterNode"
+          ref="tree"
+          node-key="id"
+          default-expand-all
+          highlight-current
+          @node-click="handleNodeClick"
+        >
+          <span class="custom-tree-node" slot-scope="{ node, data }">
+            <span>{{ node.label }}</span>
+            <span v-if="data.id > 0">
+              <el-button
+                type="text"
+                icon="el-icon-delete"
+                circle
+                size="mini"
+                @click="() => remove(node, data)"
+              >
+              </el-button>
+            </span>
+            <span v-if="data.id > 0">
+              <el-button
+                type="text"
+                circle
+                size="mini"
+                @click="() => altertag(node, data)"
+                ><span class="button-textxg"
+                  ><i class="el-icon-edit-outline"></i
+                ></span>
+              </el-button>
+            </span>
+          </span>
+        </el-tree>
+      </div>
+    </div>
+    <!-- 鍙充晶鏁版嵁 -->
+    <div class="leftvlue">
+      <div class="leftvlue-bg">
+        <el-row :gutter="20">
+          <!--鐢ㄦ埛鏁版嵁-->
+          <el-col :span="24" :xs="24">
+            <el-form
+              :model="queryParams"
+              ref="queryForm"
+              size="small"
+              :inline="true"
+              v-show="showSearch"
+              label-width="98px"
+            >
+              <el-form-item label="閫氱煡鏍囬" prop="preachname">
+                <el-input
+                  v-model="queryParams.preachname"
+                  placeholder="璇疯緭鍏�"
+                  clearable
+                  style="width: 200px"
+                  @keyup.enter.native="handleQuery"
+                />
+              </el-form-item>
+              <el-form-item label="閫傜敤闄㈠尯" prop="region">
+                <el-select
+                  v-model="campus"
+                  size="medium"
+                  multiple
+                  filterable
+                  placeholder="璇烽�夋嫨鍒嗙被"
+                >
+                  <el-option
+                    v-for="item in courtyardlist"
+                    :key="item.label"
+                    :label="item.label"
+                    :value="item.label"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+              <el-form-item label="閫氱煡鍐呭" prop="userName">
+                <el-input
+                  v-model="queryParams.preachcontent"
+                  placeholder="璇疯緭鍏�"
+                  clearable
+                  style="width: 200px"
+                  @keyup.enter.native="handleQuery"
+                />
+              </el-form-item>
+
+              <el-form-item label="鍙敤鐘舵��" prop="classify">
+                <el-select
+                  v-model="queryParams.isavailable"
+                  placeholder="璇烽�夋嫨"
+                >
+                  <el-option
+                    v-for="(item, index) in qyoptions"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+
+              <el-form-item>
+                <el-button
+                  type="primary"
+                  icon="el-icon-search"
+                  size="medium"
+                  @click="handleQuery"
+                  >鎼滅储</el-button
+                >
+                <el-button
+                  icon="el-icon-refresh"
+                  size="medium"
+                  @click="resetQuery"
+                  >閲嶇疆</el-button
+                >
+              </el-form-item>
+            </el-form>
+            <el-divider></el-divider>
+            <el-row :gutter="10" class="mb8">
+              <el-col :span="1.5">
+                <el-button
+                  type="primary"
+                  plain
+                  icon="el-icon-plus"
+                  size="medium"
+                  @click="handleAdd"
+                  v-hasPermi="['system:user:add']"
+                  >鏂板</el-button
+                >
+              </el-col>
+
+              <el-col :span="1.5">
+                <el-button
+                  type="danger"
+                  plain
+                  icon="el-icon-delete"
+                  size="medium"
+                  :disabled="multiple"
+                  @click="handleDelete"
+                  v-hasPermi="['system:user:remove']"
+                  >鍒犻櫎</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>
+
+            <el-table
+              v-loading="loading"
+              :data="userList"
+              border
+              @selection-change="handleSelectionChange"
+            >
+              <el-table-column type="selection" width="50" align="center" />
+              <el-table-column
+                label="搴忓彿"
+                fixed
+                align="center"
+                key="id"
+                prop="id"
+              />
+              <el-table-column
+                label="鏍囬"
+                fixed
+                align="center"
+                width="150"
+                key="preachname"
+                prop="preachname"
+                :show-overflow-tooltip="true"
+              />
+              <el-table-column
+                label="鐗堟湰"
+                align="center"
+                key="version"
+                prop="version"
+                :show-overflow-tooltip="true"
+              />
+              <el-table-column
+                label="涓昏鍐呭"
+                align="center"
+                width="260"
+                key="preachcontent"
+                prop="preachcontent"
+                :show-overflow-tooltip="true"
+              />
+
+              <el-table-column
+                label="閫傜敤鐤剧梾"
+                align="center"
+                key="aphonenumber"
+                prop="aphonenumber"
+                width="120"
+              >
+                <template slot-scope="scope">
+                  <el-button
+                    size="medium"
+                    type="text"
+                    @click="illnessUpdate(scope.row)"
+                    v-hasPermi="['system:user:edit']"
+                    ><span class="button-textxg"
+                      ><i class="el-icon-date"></i>璇︽儏</span
+                    ></el-button
+                  >
+                </template>
+              </el-table-column>
+
+              <el-table-column
+                label="鏍囩"
+                align="center"
+                key="labelInfo"
+                prop="labelInfo"
+                width="160"
+                :show-overflow-tooltip="true"
+              >
+                <template slot-scope="scope">
+                  <div v-if="scope.row.labelInfo">
+                    <span v-for="item in scope.row.labelInfo.split(',')"
+                      >{{ item }}銆�
+                    </span>
+                  </div>
+                  <div v-else>
+                    <span>鏃�</span>
+                  </div>
+                </template>
+              </el-table-column>
+              <el-table-column
+                label="閫傜敤鏂瑰紡"
+                align="center"
+                key="suitway"
+                prop="suitway"
+                width="120"
+              >
+                <template slot-scope="scope">
+                  <div v-if="scope.row.suitway">
+                    <span v-for="item in scope.row.suitway.split(',')"
+                      >{{ item }}銆�
+                    </span>
+                  </div>
+                  <div v-else>
+                    <span>鏃�</span>
+                  </div>
+                </template>
+              </el-table-column>
+              <el-table-column
+                label="鍐呭褰㈠紡"
+                align="center"
+                key="preachform"
+                prop="preachform"
+                width="120"
+              >
+                <template slot-scope="scope">
+                  <dict-tag
+                    :options="editabshape"
+                    :value="scope.row.preachform"
+                  />
+                </template>
+              </el-table-column>
+              <el-table-column
+                label="鏈�杩戜慨鏀�"
+                align="center"
+                key="updateTime"
+                prop="updateTime"
+                width="120"
+              />
+              <el-table-column
+                label="鏄惁鍙敤"
+                align="center"
+                key="isavailable"
+                prop="isavailable"
+                width="120"
+              >
+                <template slot-scope="scope">
+                  <dict-tag :options="usable" :value="scope.row.isavailable" />
+                </template>
+              </el-table-column>
+
+              <el-table-column
+                label="鎿嶄綔"
+                fixed="right"
+                align="center"
+                width="300"
+                class-name="small-padding fixed-width"
+              >
+                <template slot-scope="scope">
+                  <!-- <el-button
+                    size="medium"
+                    type="text"
+                    @click="goQRCode(scope.row)"
+                    v-hasPermi="['system:user:edit']"
+                  >
+                    <span class="button-text"
+                      ><i class="el-icon-edit"></i>浜岀淮鐮�</span
+                    ></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
+                    ></el-button
+                  >
+                  <el-button
+                    size="medium"
+                    type="text"
+                    @click="handleUpdate(scope.row)"
+                    v-hasPermi="['system:user:edit']"
+                    ><span class="button-textxg"
+                      ><i class="el-icon-edit"></i>淇敼</span
+                    ></el-button
+                  >
+                  <el-button
+                    size="medium"
+                    type="text"
+                    @click="handleDelete(scope.row)"
+                    v-hasPermi="['system:user:remove']"
+                    ><span class="button-textsc"
+                      ><i class="el-icon-edit"></i>鍒犻櫎</span
+                    ></el-button
+                  >
+                </template>
+              </el-table-column>
+            </el-table>
+
+            <pagination
+              v-show="total > 0"
+              :total="total"
+              :page.sync="queryParams.pageNum"
+              :limit.sync="queryParams.pageSize"
+              @pagination="getList"
+            />
+          </el-col>
+        </el-row>
+      </div>
+    </div>
+    <!-- 娣诲姞绫诲埆寮规 -->
+    <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>
+          <el-radio-button label="瀛愬垎绫�"></el-radio-button>
+        </el-radio-group>
+      </div>
+      <el-divider></el-divider>
+      <el-form :model="classifyform">
+        <el-form-item label="璇烽�夋嫨闂澶х被" v-if="radio == '瀛愬垎绫�'">
+          <el-select v-model="classifyform.pid" placeholder="璇烽�夋嫨">
+            <el-option
+              v-for="item in deptOptions"
+              :key="item.id"
+              :label="item.assortname"
+              :value="item.id"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="璇疯緭鍏ョ被鍒悕绉�">
+          <el-input
+            v-model="classifyform.assortname"
+            autocomplete="off"
+          ></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="getDeptTree()">鍙� 娑�</el-button>
+        <el-button type="primary" @click="submitsidecolumn">纭� 瀹�</el-button>
+      </div>
+    </el-dialog>
+    <!-- 鐤剧梾寮规 -->
+    <el-dialog title="鎸囨爣鐤剧梾" :visible.sync="illnessVisible" width="50%">
+      <div>
+        <div class="xinz-infs">
+          <el-tag
+            :key="item.icd10name"
+            type="warning"
+            v-for="item in illnesslist"
+            closable
+            :disable-transitions="false"
+            @close="handleCloseillness(item)"
+          >
+            {{ item.icd10name }}
+          </el-tag>
+          <el-select
+            v-model="inputValue"
+            v-if="inputVisible"
+            @change="illnessConfirm"
+            :remote-method="remoteMethod"
+            filterable
+            remote
+            allow-create
+            default-first-option
+            placeholder="璇烽�夋嫨/鏌ヨ"
+            :loading="loading"
+          >
+            <el-option
+              v-for="item in optionsillness"
+              :key="item.icdid"
+              :label="item.icdname"
+              :value="item.icdid"
+            >
+            </el-option>
+          </el-select>
+          <el-button
+            v-else
+            class="button-new-tag"
+            size="small"
+            @click="showInput"
+            >+ 鏂板鐤剧梾</el-button
+          >
+        </div>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="illnessVisible = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="confirmillness">纭� 瀹�</el-button>
+      </span>
+    </el-dialog>
+    <!-- 浜岀淮鐮佸睍绀哄脊妗� -->
+    <el-dialog width="30%" :visible.sync="goQRCodeVisible">
+      <div class="qrcode-dialo">
+        <div class="qrcode-text">
+          {{ nameeducation }}<span>{{ haoeducation }}</span>
+        </div>
+        <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>
 
 <script>
+import {
+  getheLibraryAssort,
+  delheLibraryAssort,
+  addheLibraryAssort,
+  editheLibraryAssort,
+  addtargetillness,
+  getlibrarylist,
+  dellibraryinfo,
+  compilelibrary,
+  getlibraryinfo,
+  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 {
+  name: "education",
+  dicts: ["sys_normal_disable", "sys_user_sex"],
+  components: { Treeselect },
   data() {
-    return {};
+    return {
+      topactiveName: "Local", //椤堕儴閫夋嫨
+      // 閬僵灞�
+      loading: false,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      nameeducation: "",
+      haoeducation: "",
+      statisticson: false,
+      indexid: null,
+      inputValue: "",
+      htmlRichText: "",
+      radio: "涓诲垎绫�",
+      inputVisible: false,
+      previewtf: false,
+      illnessVisible: false, //鎸囨爣鐤剧梾寮规
+      deptOptions: [],
+      courtyardlist: [],
+      optionsillness: [],
+      illnesslistapi: [],
+      illnesslist: [],
+      campus: [],
+      defaultProps: {
+        children: "heLibraryAssortList",
+        label: "assortname",
+      },
+      // 鐢ㄦ埛琛ㄦ牸鏁版嵁
+      userList: [
+        {
+          userid: 1,
+          userName: "涓夊彿瀹f暀",
+          nickName: "1.2.4",
+          aphonenumber: "鍏宠妭鐐庣棁",
+          bphonenumber: "寰堟",
+          cphonenumber: "2022-12-12",
+        },
+      ],
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 鏃ユ湡鑼冨洿
+      dateRange: [],
+      // 宀椾綅閫夐」
+      postOptions: [],
+      // 瑙掕壊閫夐」
+      roleOptions: [],
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      numberlb: 22,
+      numberlbs: 2,
+      sidecolumnform: {}, //娣诲姞绫诲埆琛ㄥ崟
+      goQRCodeVisible: false, //浜岀淮鐮佸脊妗�
+      sidecolumnval: "", //绫诲埆鎼滅储
+      propss: { multiple: true },
+      idds: "",
+      amendtag: false, //鏄惁淇敼绫诲埆
+      dialogFormVisible: false, //淇敼娣诲姞绫诲埆寮规
+      deleteVisible: false, //鍒嗙被鍒犻櫎寮规
+      deletefenl: "楂樿鍘�", //鍒犻櫎椤�
+      classifyform: {
+        categoryname: "",
+      }, //绫诲埆琛ㄥ崟
+      optionss: [],
+      mode: [],
+      qyoptions: [],
+      languagelist: [],
+      editabshape: [],
+      usable: [],
+      precedencetype: [],
+      xjxsoptions: [],
+      deptList: [],
+      props: { multiple: true, value: "deptId", label: "deptName" },
+      Collarr: [],
+      Collarrname: [],
+      Collarrvalue: [],
+      //绫诲埆鍒楄〃
+      editableTabs: [],
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        isavailable: "",
+      },
+    };
+  },
+  watch: {},
+  created() {
+    this.getList();
+    this.getDeptTree();
+    this.mode = store.getters.mode;
+    this.languagelist = store.getters.languagelist;
+    this.usable = store.getters.usable;
+    this.precedencetype = store.getters.precedencetype;
+    this.editabshape = store.getters.editabshape;
+    this.qyoptions = store.getters.usable;
+    this.courtyardlist = store.getters.courtyardlist;
   },
 
-  created() {},
+  methods: {
+    /** 鏌ヨ瀹f暀鍒楄〃 */
+    getList() {
+      this.loading = true;
+      getlibrarylist(this.queryParams).then((response) => {
+        console.log(response);
+        this.userList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+      listDept(this.queryParams).then((response) => {
+        this.deptList = this.handleTree(response.data, "deptId");
+      });
+    },
 
-  methods: {},
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    goQRCode(row) {
+      this.goQRCodeVisible = true;
+      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 = {};
+      this.resetForm("form");
+    },
+    /** 鎼滅储鎸夐挳鎿嶄綔 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.queryParams.campus = this.campus.join(",");
+      this.getList();
+    },
+    /** 閲嶇疆鎸夐挳鎿嶄綔 */
+    resetQuery() {
+      this.dateRange = [];
+      this.resetForm("queryForm");
+      this.queryParams.deptId = undefined;
+      this.$refs.tree.setCurrentKey(null);
+      this.handleQuery();
+    },
+    // 澶氶�夋閫変腑鏁版嵁
+    handleSelectionChange(selection) {
+      this.ids = selection.map((item) => item.id);
+      this.single = selection.length != 1;
+      this.multiple = !selection.length;
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.$router.push({
+        path: "/knowledge/educationinfo/",
+      });
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.$router.push({
+        path: "/knowledge/educationinfo/",
+        query: { id: row.id },
+      });
+    },
+    // 鏌ョ湅瀹f暀
+    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>'
+      );
+    },
+
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const userIds = row.id || this.ids;
+      this.$modal
+        .confirm('鏄惁纭鍒犻櫎鐢ㄦ埛缂栧彿涓�"' + userIds + '"鐨勬暟鎹」锛�')
+        .then(function () {
+          return dellibraryinfo(userIds);
+        })
+        .then(() => {
+          this.getList();
+          this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+        })
+        .catch(() => {});
+    },
+    // 鎵撳紑缁熻鍥捐〃
+    statistics() {
+      //鍙栨暟鎹�
+      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;
+      });
+    },
+
+    // 鍒嗙被鏍�-----------------------------------------
+    // 淇敼鍒嗙被寮规
+    popoveramend(tagcategoryid) {
+      this.idds = tagcategoryid;
+      this.amendtag = true;
+      this.dialogFormVisible = true;
+    },
+    // 鏌ヨ鏍�
+    getDeptTree() {
+      getheLibraryAssort({}).then((res) => {
+        this.deptOptions = res.rows;
+        this.dialogFormVisible = false;
+      });
+    },
+
+    // 娣诲姞绫诲埆鏍�
+    submitsidecolumn() {
+      if (this.classifyform.id) {
+        editheLibraryAssort(this.classifyform).then((res) => {
+          this.getDeptTree();
+          this.$modal.msgSuccess("淇敼鎴愬姛");
+          this.classifyform = {};
+          this.dialogFormVisible = false;
+        });
+        return;
+      }
+      let calssvalue = {};
+      if (
+        this.classifyform.pid &&
+        this.classifyform.assortname &&
+        this.radio == "瀛愬垎绫�"
+      ) {
+        const index = this.deptOptions.findIndex(
+          (obj) => obj.id == this.classifyform.pid
+        );
+        calssvalue = this.deptOptions[index];
+        calssvalue.heLibraryAssortList.push(this.classifyform);
+      } else if (this.radio == "涓诲垎绫�" && this.classifyform.assortname) {
+        this.classifyform.pid = null;
+        this.classifyform.heLibraryAssortList = [];
+      } else {
+        return this.$modal.msgError("璇峰~鍐欏畬鏁翠俊鎭�");
+      }
+      this.classifyform.hetype = 1;
+      addheLibraryAssort(this.classifyform).then((res) => {
+        this.getDeptTree();
+        this.$modal.msgSuccess("鏂板鎴愬姛");
+        this.classifyform = {};
+        this.dialogFormVisible = false;
+      });
+    },
+    remove(a, b) {
+      if (b.pid) {
+        this.$modal
+          .confirm('鏄惁纭鍒犻櫎鍒嗙被椤逛负"' + b.assortname + '"鐨勬暟鎹」锛�')
+          .then(function () {
+            return delheLibraryAssort(b.id);
+          })
+          .then(() => {
+            this.getDeptTree();
+            this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+          })
+          .catch(() => {});
+      } else {
+        this.$modal
+          .confirm(
+            '鏄惁纭鍒犻櫎涓�绾у垎绫�"' +
+              b.assortname +
+              '"锛熷垹闄ゅ悗鍏朵笅鍒嗙被灏嗗綊绫烩�樻湭鍒嗙被鈥�'
+          )
+          .then(() => {
+            return delheLibraryAssort(b.id);
+          })
+          .then(() => {
+            this.getDeptTree();
+            this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+          })
+          .catch(() => {});
+      }
+    },
+    altertag(a, b) {
+      this.dialogFormVisible = true;
+      if (!b.pid) {
+        this.radio = "涓诲垎绫�";
+      } else {
+        this.radio = "瀛愬垎绫�";
+      }
+      this.classifyform = b;
+      this.dialogFormVisible = true;
+    },
+
+    // 绛涢�夎妭鐐�
+    filterNode(value, data) {
+      if (!value) return true;
+      return data.assortname.indexOf(value) !== -1;
+    },
+    handleNodeClick(data) {
+      this.queryParams.assortid = data.id;
+      this.getList();
+    },
+    // 鐤剧梾-----------------------
+    illnessUpdate(row) {
+      this.illnessVisible = true;
+      this.indexid = row.id;
+      this.illnesslistapi = [];
+      const illnessqueryParams = {
+        pageNum: 1,
+        pageSize: 100,
+      };
+      getillnesslist(illnessqueryParams).then((response) => {
+        console.log(response);
+        this.optionsillness = response.rows;
+      });
+      getillness({ outid: row.id, type: 6 }).then((res) => {
+        this.illnesslist = res.rows;
+        console.log(res);
+      });
+    },
+    handleCloseillness(tag) {
+      this.illnesslist.splice(this.illnesslist.indexOf(tag), 1);
+      if (tag.id) {
+        this.illnesslistapi.push(tag.id);
+      }
+    },
+    remoteMethod(value) {
+      console.log(value);
+      const illnessqueryParams = {
+        pageNum: 1,
+        pageSize: 100,
+        icdname: value,
+      };
+      this.loading = true;
+      setTimeout(() => {
+        this.loading = false;
+        getillnesslist(illnessqueryParams).then((response) => {
+          this.optionsillness = response.rows;
+        });
+      }, 200);
+    },
+    illnessConfirm(item) {
+      let opeavalue = {};
+      let tagname = this.inputValue;
+      illnesslistget(item).then((res) => {
+        opeavalue = res.data;
+        opeavalue.outid = this.indexid;
+        opeavalue.type = 6;
+        opeavalue.icd10id = opeavalue.icdid;
+        opeavalue.icd10name = opeavalue.icdname;
+        opeavalue.icd10code = opeavalue.icdcode;
+        if (tagname) {
+          this.illnesslist.push(opeavalue);
+        }
+      });
+      console.log(this.illnesslist);
+      this.inputVisible = false;
+      this.inputValue = "";
+    },
+    confirmillness() {
+      this.illnesslist.forEach((item, index) => {
+        if (!item.id) {
+          addtargetillness(item).then((res) => {});
+        }
+      });
+      if (this.illnesslistapi.length) {
+        deltargetillness(this.illnesslistapi.join(",")).then((res) => {});
+      }
+      this.illnessVisible = false;
+      this.$modal.msgSuccess("缂栬緫鎴愬姛");
+    },
+    showInput() {
+      this.inputVisible = true;
+    },
+  },
 };
 </script>
 
-<style lang="scss" scoped></style>
+<style lang="scss" scoped>
+.educationmanagement {
+  display: flex;
+}
+.sidecolumn {
+  width: 300px;
+  min-height: 100vh;
+  text-align: center;
+  //   display: flex;
+  margin-top: 20px;
+  margin: 20px;
+  padding: 30px;
+  background: #fff;
+  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);
+  .sidecolumn-top {
+    display: flex;
+    justify-content: space-between;
+    .top-wj {
+      font-size: 20px;
+    }
+    .top-tj {
+      font-size: 18px;
+
+      color: rgb(0, 89, 255);
+      cursor: pointer;
+    }
+  }
+  .center-ss {
+    margin-top: 30px;
+    .input-with-select {
+      height: 40px !important;
+    }
+  }
+  .bottom-fl {
+    margin-top: 30px;
+    display: center !important;
+  }
+}
+.qrcode-dialo {
+  text-align: center;
+  //   display: flex;
+  margin: 20px;
+  padding: 30px;
+  background: #edf1f7;
+  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);
+  .qrcode-text {
+    font-size: 20px;
+    span {
+      margin-left: 20px;
+    }
+  }
+  .qrcode-img {
+    width: 300px;
+    height: 400px;
+  }
+}
+::v-deep.el-tabs--left,
+.el-tabs--right {
+  overflow: hidden;
+  align-items: center;
+  display: flex;
+}
+::v-deep.el-input--medium .el-input__inner {
+  height: 40px !important;
+}
+::v-deep.el-tabs--right .el-tabs__active-bar.is-right {
+  height: 40px;
+  width: 5px;
+  left: 0;
+}
+::v-deep.el-tabs--right .el-tabs__item.is-right {
+  display: block;
+  font-size: 20px;
+}
+.leftvlue {
+  //   display: flex;
+  //   flex: 1;
+  width: 80%;
+  margin-top: 20px;
+  //   margin: 20px;
+  padding: 30px;
+  background: #ffff;
+  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);
+  .mulsz {
+    font-size: 20px;
+  }
+}
+.xinz-infs {
+  font-size: 18px;
+  overflow: hidden;
+  text-overflow: ellipsis;
+
+  line-height: 48px;
+
+  .el-tag + .el-tag {
+    margin-left: 10px;
+  }
+  .button-new-tag {
+    margin-left: 10px;
+    height: 32px;
+    line-height: 30px;
+    padding-top: 0;
+    padding-bottom: 0;
+  }
+  .input-new-tag {
+    width: 90px;
+    margin-left: 10px;
+    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;
+  display: flex;
+  -webkit-box-align: center;
+  -ms-flex-align: center;
+  align-items: center;
+  height: 46px;
+  font-size: 20px;
+  cursor: pointer;
+}
+::v-deep .el-tree {
+  position: relative;
+  cursor: default;
+  border-radius: 5px;
+  background: #eff8fe;
+  color: #606266;
+  border: 1px solid #bbe1fa;
+  // 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);
+}
+::v-deep
+  .el-tree--highlight-current
+  .el-tree-node.is-current
+  > .el-tree-node__content {
+  background-color: #7799fb;
+  color: #fff;
+}
+::v-deep .el-button--mini.is-circle {
+  padding: 7px;
+  margin: 0;
+  color: red;
+}
+.button-text {
+  color: rgb(70, 204, 238);
+}
+.button-textck {
+  color: rgb(39, 167, 67);
+}
+.button-textxg {
+  color: rgb(35, 81, 233);
+}
+.button-textsc {
+  color: rgb(235, 23, 23);
+}
+</style>

--
Gitblit v1.9.3