From c73a2c380aca7ac4ef16e76388b1a52356df8634 Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期五, 30 八月 2024 19:01:04 +0800 Subject: [PATCH] 测试完成 --- src/views/knowledge/education/index.vue | 294 +++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 205 insertions(+), 89 deletions(-) diff --git a/src/views/knowledge/education/index.vue b/src/views/knowledge/education/index.vue index 013025c..9216623 100644 --- a/src/views/knowledge/education/index.vue +++ b/src/views/knowledge/education/index.vue @@ -29,7 +29,7 @@ > <span class="custom-tree-node" slot-scope="{ node, data }"> <span>{{ node.label }}</span> - <span> + <span v-if="data.id > 0"> <el-button type="text" icon="el-icon-delete" @@ -37,6 +37,17 @@ 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> @@ -57,64 +68,52 @@ v-show="showSearch" label-width="98px" > - <el-form-item label="瀹f暀鏍囬" prop="userName"> + <el-form-item label="閫氱煡鏍囬" prop="preachname"> <el-input - v-model="queryParams.userName" + v-model="queryParams.preachname" placeholder="璇疯緭鍏�" clearable style="width: 200px" @keyup.enter.native="handleQuery" /> </el-form-item> - <el-form-item label="閫傜敤绉戝" prop="sickness"> - <el-cascader - v-model="queryParams.sickness" - :options="optionss" - :props="propss" - clearable - ></el-cascader> - </el-form-item> - <el-form-item label="閫氱煡鍐呭" prop="userName"> - <el-input - v-model="queryParams.userNamevalue" - placeholder="璇疯緭鍏�" - clearable - style="width: 200px" - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="閫傜敤鏂瑰紡" prop="shape"> - <el-cascader - v-model="queryParams.shapevalue" - :options="optionss" - :props="propss" - clearable - ></el-cascader> - </el-form-item> - <el-form-item label="鍐呭褰㈠紡" prop="classify"> + <el-form-item label="閫傜敤闄㈠尯" prop="region"> <el-select - v-model="queryParams.classifyvalue" - placeholder="璇烽�夋嫨" + v-model="campus" + size="medium" + multiple + filterable + placeholder="璇烽�夋嫨鍒嗙被" > <el-option - v-for="(item, index) in editableTabs" - :key="index++" - :label="item.title" - :value="index++" + 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.classifyvalue" + v-model="queryParams.isavailable" placeholder="璇烽�夋嫨" > <el-option - v-for="item in qyoptions" + v-for="(item, index) in qyoptions" :key="item.value" - :label="item.value" - :value="item.label" + :label="item.label" + :value="item.value" > </el-option> </el-select> @@ -173,12 +172,20 @@ @selection-change="handleSelectionChange" > <el-table-column type="selection" width="50" align="center" /> - <el-table-column label="搴忓彿" align="center" key="id" prop="id" /> + <el-table-column + label="搴忓彿" + fixed + align="center" + key="id" + prop="id" + /> <el-table-column label="鏍囬" + fixed align="center" - key="extName" - prop="extName" + width="150" + key="preachname" + prop="preachname" :show-overflow-tooltip="true" /> <el-table-column @@ -189,15 +196,16 @@ :show-overflow-tooltip="true" /> <el-table-column - label="涓昏鍐呭(缂�)" + label="涓昏鍐呭" align="center" - key="userNamevalue" - prop="userNamevalue" + width="260" + key="preachcontent" + prop="preachcontent" :show-overflow-tooltip="true" /> <el-table-column - label="閫傜敤鐤剧梾(缂�)" + label="閫傜敤鐤剧梾" align="center" key="aphonenumber" prop="aphonenumber" @@ -215,39 +223,58 @@ > </template> </el-table-column> + <el-table-column - label="閫傜敤绉戝(缂�)" + label="鏍囩" align="center" - key="bphonenumber" - prop="bphonenumber" - width="120" - /> - <el-table-column - label="鏍囩(缂�)" - align="center" - key="tagList" - prop="tagList" + key="labelInfo" + prop="labelInfo" width="160" :show-overflow-tooltip="true" > <template slot-scope="scope"> - <span v-for="item in scope.row.tagList">{{ item }} </span> + <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="瀹f暀鏂瑰紡(缂�)" + label="閫傜敤鏂瑰紡" align="center" - key="cphonenumber" - prop="cphonenumber" + 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="璧勬枡褰㈠紡(缂�)" + label="鍐呭褰㈠紡" align="center" - key="cphonenumbers" - prop="cphonenumbers" + 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" @@ -258,19 +285,24 @@ <el-table-column label="鏄惁鍙敤" align="center" - key="isEnable" - prop="isEnable" + 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 + <!-- <el-button size="medium" type="text" @click="goQRCode(scope.row)" @@ -279,14 +311,14 @@ <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 + ><i class="el-icon-edit"></i>棰勮</span ></el-button > <el-button @@ -351,7 +383,7 @@ </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> - <el-button @click="dialogFormVisible = false">鍙� 娑�</el-button> + <el-button @click="getDeptTree()">鍙� 娑�</el-button> <el-button type="primary" @click="submitsidecolumn">纭� 瀹�</el-button> </div> </el-dialog> @@ -412,6 +444,16 @@ <div class="qrcode-img"></div> </div> </el-dialog> + <el-dialog title="妯$増棰勮" :visible.sync="previewtf" width="60%"> + <div class="preview-left"> + <!-- 鍗曢�� --> + <div v-html="richText"></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> </div> </template> @@ -420,6 +462,7 @@ getheLibraryAssort, delheLibraryAssort, addheLibraryAssort, + editheLibraryAssort, addtargetillness, getlibrarylist, dellibraryinfo, @@ -429,9 +472,10 @@ illnesslistget, getillness, } 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 { @@ -457,13 +501,17 @@ haoeducation: "", indexid: null, inputValue: "", + richText: "", radio: "涓诲垎绫�", inputVisible: false, + previewtf: false, illnessVisible: false, //鎸囨爣鐤剧梾寮规 deptOptions: [], + courtyardlist: [], optionsillness: [], illnesslistapi: [], illnesslist: [], + campus: [], defaultProps: { children: "heLibraryAssortList", label: "assortname", @@ -507,10 +555,14 @@ }, //绫诲埆琛ㄥ崟 optionss: [], mode: [], - languagelist: [], qyoptions: [], + languagelist: [], + editabshape: [], + usable: [], precedencetype: [], xjxsoptions: [], + deptList: [], + props: { multiple: true, value: "deptId", label: "deptName" }, //绫诲埆鍒楄〃 editableTabs: [], @@ -518,6 +570,7 @@ queryParams: { pageNum: 1, pageSize: 10, + isavailable: "", }, }; }, @@ -527,17 +580,25 @@ this.getDeptTree(); this.mode = store.getters.mode; this.languagelist = store.getters.languagelist; - this.qyoptions = store.getters.usable; + 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; }, methods: { /** 鏌ヨ瀹f暀鍒楄〃 */ getList() { - // this.loading = true; + 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"); }); }, @@ -559,6 +620,7 @@ /** 鎼滅储鎸夐挳鎿嶄綔 */ handleQuery() { this.queryParams.pageNum = 1; + this.queryParams.campus = this.campus.join(","); this.getList(); }, /** 閲嶇疆鎸夐挳鎿嶄綔 */ @@ -571,38 +633,53 @@ }, // 澶氶�夋閫変腑鏁版嵁 handleSelectionChange(selection) { - this.ids = selection.map((item) => item.userId); + this.ids = selection.map((item) => item.id); this.single = selection.length != 1; this.multiple = !selection.length; }, /** 鏂板鎸夐挳鎿嶄綔 */ handleAdd() { this.$router.push({ - path: "/knowledge/education/compilequer/", + path: "/knowledge/educationinfo/", }); }, /** 淇敼鎸夐挳鎿嶄綔 */ handleUpdate(row) { this.$router.push({ - path: "/knowledge/education/compilequer/", - query: { id: "1" }, + path: "/knowledge/educationinfo/", + query: { id: row.id }, }); }, // 鏌ョ湅瀹f暀 - Vieweducation() { - this.$router.push({ - path: "/knowledge/education/examine/", - query: { id: "1" }, - }); + Vieweducation(row) { + this.richText = null; + this.previewtf = true; + axios + .get(row.richText) + .then((response) => { + console.log(response.data, "鏁版嵁"); // 杈撳嚭鑾峰彇鍒扮殑鏂囦欢鍐呭 + this.richText = response.data; + this.richText = this.addStyleToImages(this.richText); + }) + .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.userId || this.ids; + const userIds = row.id || this.ids; this.$modal .confirm('鏄惁纭鍒犻櫎鐢ㄦ埛缂栧彿涓�"' + userIds + '"鐨勬暟鎹」锛�') .then(function () { - return delFollowupinfo(userIds); + return dellibraryinfo(userIds); }) .then(() => { this.getList(); @@ -622,12 +699,21 @@ getDeptTree() { getheLibraryAssort({}).then((res) => { this.deptOptions = res.rows; - console.log(res); + 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 && @@ -645,10 +731,12 @@ } 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) { @@ -679,6 +767,16 @@ }) .catch(() => {}); } + }, + altertag(a, b) { + this.dialogFormVisible = true; + if (!b.pid) { + this.radio = "涓诲垎绫�"; + } else { + this.radio = "瀛愬垎绫�"; + } + this.classifyform = b; + this.dialogFormVisible = true; }, // 绛涢�夎妭鐐� @@ -778,7 +876,7 @@ margin-top: 20px; margin: 20px; padding: 30px; - background: #edf1f7; + 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); @@ -893,6 +991,24 @@ 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; -- Gitblit v1.9.3