lex 2 лет назад
Родитель
Сommit
80edf4c19d
1 измененных файлов с 158 добавлено и 129 удалено
  1. 158 129
      src/views/helpCenter/helpContent.vue

+ 158 - 129
src/views/helpCenter/helpContent.vue

@@ -1,8 +1,8 @@
-
 <template>
   <div class="m-container">
     <h2>
-      <div class="squrt"></div>帮助中心
+      <div class="squrt"></div>
+      帮助中心
     </h2>
     <div class="m-core">
       <el-button
@@ -15,39 +15,49 @@
       </el-button>
       <el-button
         v-permission="'/helpCategory'"
-           @click="onToUrl()"
+        @click="onToUrl()"
         type="primary"
         style="margin-bottom:20px"
       >
         分类管理
       </el-button>
       <!-- 搜索标题 -->
-      <save-form :inline="true"
-               class="searchForm"
-               @submit="search"
-               :model="searchForm">
+      <save-form
+        :inline="true"
+        class="searchForm"
+        @submit="search"
+        :model="searchForm"
+      >
         <el-form-item prop="hasPracticeCourse">
-          <el-cascader ref="cascader"
-                       :show-all-levels="false"
-                       :options="treeList"
-                       v-model="searchForm.catalogId"
-                       :props="{ checkStrictly: true }"
-                       clearable></el-cascader>
+          <el-cascader
+            ref="cascader"
+            :show-all-levels="false"
+            :options="treeList"
+            v-model="searchForm.catalogId"
+            :props="{ checkStrictly: true }"
+            clearable
+          ></el-cascader>
         </el-form-item>
         <el-form-item>
           <el-button native-type="submit" type="danger">搜索</el-button>
         </el-form-item>
       </save-form>
       <div class="tableWrap">
-        <el-table :data="tableList"
-                  :header-cell-style="{background:'#EDEEF0',color:'#444'}">>
-          <el-table-column width="120px"
-                           align="center"
-                           prop="id"
-                           label="编号"></el-table-column>
-          <el-table-column align="center"
-                           prop="title"
-                           label="标题"></el-table-column>
+        <el-table
+          :data="tableList"
+          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+          >>
+          <el-table-column
+            width="120px"
+            align="center"
+            prop="id"
+            label="编号"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            prop="title"
+            label="标题"
+          ></el-table-column>
           <!-- <el-table-column align="center"
                            prop="content"
                            label="内容">
@@ -55,79 +65,91 @@
               <Tooltip :content="scope.row.content"></Tooltip>
             </template>
           </el-table-column> -->
-          <el-table-column align="center"
-                           prop="catalog.text"
-                           label="分类名"></el-table-column>
-          <el-table-column align="center"
-                           label="操作">
+          <el-table-column
+            align="center"
+            prop="catalog.text"
+            label="分类名"
+          ></el-table-column>
+          <el-table-column align="center" label="操作">
             <template slot-scope="scope">
-              <el-button v-permission="'helpCenterContent/modify'"
-                         @click="openTypes('update', scope.row)"
-                         type="text">修改</el-button>
-              <el-button @click="onTypeDelOpeation(scope.row)"
-                         v-permission="'helpCenterContent/delete'"
-                         type="text">删除</el-button>
+              <el-button
+                v-permission="'helpCenterContent/modify'"
+                @click="openTypes('update', scope.row)"
+                type="text"
+                >修改</el-button
+              >
+              <el-button
+                @click="onTypeDelOpeation(scope.row)"
+                v-permission="'helpCenterContent/delete'"
+                type="text"
+                >删除</el-button
+              >
             </template>
           </el-table-column>
         </el-table>
-        <pagination sync :total.sync="pageInfo.total"
-                    :page.sync="pageInfo.page"
-                    :limit.sync="pageInfo.limit"
-                    :page-sizes="pageInfo.page_size"
-                    @pagination="getList" />
+        <pagination
+          sync
+          :total.sync="pageInfo.total"
+          :page.sync="pageInfo.page"
+          :limit.sync="pageInfo.limit"
+          :page-sizes="pageInfo.page_size"
+          @pagination="getList"
+        />
       </div>
     </div>
-    <el-dialog :title="formTitle[formActionTitle]"
-               :visible.sync="typeStatus"
-               @close="onFormClose('ruleForm')"
-               width="1000px">
-      <el-form :model="form"
-               :rules="rules"
-               ref="ruleForm">
-        <el-form-item label="标题"
-                      prop="title"
-                      :label-width="formLabelWidth">
-          <el-input v-model.trim="form.title"
-                    autocomplete="off"
-                    placeholder="请输入标题"></el-input>
+    <el-dialog
+      :title="formTitle[formActionTitle]"
+      :visible.sync="typeStatus"
+      @close="onFormClose('ruleForm')"
+      width="1000px"
+    >
+      <el-form :model="form" :rules="rules" ref="ruleForm">
+        <el-form-item label="标题" prop="title" :label-width="formLabelWidth">
+          <el-input
+            v-model.trim="form.title"
+            autocomplete="off"
+            placeholder="请输入标题"
+          ></el-input>
         </el-form-item>
-        <el-form-item label="分类"
-                      prop="catalogId"
-                      :label-width="formLabelWidth">
-          <el-cascader v-if="typeStatus"
-                       style="width: 100%;"
-                       :show-all-levels="false"
-                       ref="formCascader"
-                       :options="treeList"
-                       v-model="form.catalogId"
-                       :props="{ checkStrictly: true }"
-                       clearable></el-cascader>
+        <el-form-item
+          label="分类"
+          prop="catalogId"
+          :label-width="formLabelWidth"
+        >
+          <el-cascader
+            v-if="typeStatus"
+            style="width: 100%;"
+            :show-all-levels="false"
+            ref="formCascader"
+            :options="treeList"
+            v-model="form.catalogId"
+            :props="{ checkStrictly: true }"
+            clearable
+          ></el-cascader>
         </el-form-item>
-        <el-form-item label="内容"
-                      prop="content"
-                      :label-width="formLabelWidth">
+        <el-form-item label="内容" prop="content" :label-width="formLabelWidth">
           <!-- <el-input type="textarea"
                     :rows="3"
                     placeholder="请输入内容"
                     v-model="form.content"> -->
-                    <!-- 改为富文本编辑器 -->
+          <!-- 改为富文本编辑器 -->
           <!-- </el-input> -->
-          <Editor :form='form'/>
+          <Editor :form="form.content" @onEditorChange="onEditorChange" />
         </el-form-item>
       </el-form>
-      <span slot="footer"
-            class="dialog-footer">
+      <span slot="footer" class="dialog-footer">
         <el-button @click="typeStatus = false">取 消</el-button>
-        <el-button type="primary"
-                   @click="onTypeSubmit('ruleForm')">确 定</el-button>
+        <el-button type="primary" @click="onTypeSubmit('ruleForm')"
+          >确 定</el-button
+        >
       </span>
     </el-dialog>
   </div>
 </template>
 <script>
 import pagination from "@/components/Pagination/index";
-import Tooltip from '@/components/Tooltip'
-import Editor from '@/components/Editor'
+import Tooltip from "@/components/Tooltip";
+import Editor from "@/components/Editor";
 // import store from '@/store'
 import {
   helpCenterCatalogList,
@@ -136,9 +158,9 @@ import {
   helpCenterContentDelete
 } from "@/api/appTenant";
 export default {
-  components: { pagination, Tooltip,Editor },
+  components: { pagination, Tooltip, Editor },
   name: "helpCategory",
-  data () {
+  data() {
     return {
       searchForm: {
         catalogId: null
@@ -155,12 +177,14 @@ export default {
       form: {
         title: null, // 标题
         content: null, // 内容
-        catalogId: null, // 分类编号
+        catalogId: null // 分类编号
       },
       rules: {
         title: [{ required: true, message: "请输入标题", trigger: "blur" }],
-        content: [{ required: true, message: "请输入内容", trigger: "blur" }],
-        catalogId: [{ required: true, message: "请输入选择分类", trigger: "blur" }]
+        content: [{ required: true, message: "请输入内容", trigger: "change" }],
+        catalogId: [
+          { required: true, message: "请输入选择分类", trigger: "blur" }
+        ]
         // subjectIds: [{ required: true, message: "请选择声部组合", trigger: "change" }]
       },
       pageInfo: {
@@ -173,37 +197,40 @@ export default {
       tempTreeList: []
     };
   },
-  mounted () {
+  mounted() {
     this.getList();
-    this.getTreeList()
+    this.getTreeList();
   },
   methods: {
     search() {
-      this.pageInfo.page = 1
-      this.getList()
+      this.pageInfo.page = 1;
+      this.getList();
     },
-    onTypeDelOpeation (row) {
-      this.$confirm('您是否删除该内容?', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(() => {
-        helpCenterContentDelete({ id: row.id }).then(res => {
-          this.messageTips('删除', res)
-        })
-      }).catch(() => {
+    onEditorChange(html) {
+      this.form.content = html;
+    },
+    onTypeDelOpeation(row) {
+      this.$confirm("您是否删除该内容?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
       })
-
+        .then(() => {
+          helpCenterContentDelete({ id: row.id }).then(res => {
+            this.messageTips("删除", res);
+          });
+        })
+        .catch(() => {});
     },
-    onTypeSubmit (formName) {
+    onTypeSubmit(formName) {
       this.$refs[formName].validate(valid => {
         if (valid) {
           if (this.formActionTitle == "create") {
             let params = {
               title: this.form.title, // 标题
               content: this.form.content, // 内容
-              catalogId: this.form.catalogId[this.form.catalogId.length - 1], // 分类编号
-            }
+              catalogId: this.form.catalogId[this.form.catalogId.length - 1] // 分类编号
+            };
             helpCenterContentModify(params).then(res => {
               this.messageTips("添加", res);
             });
@@ -212,8 +239,8 @@ export default {
               id: this.form.id,
               title: this.form.title, // 标题
               content: this.form.content, // 内容
-              catalogId: this.form.catalogId[this.form.catalogId.length - 1], // 分类编号
-            }
+              catalogId: this.form.catalogId[this.form.catalogId.length - 1] // 分类编号
+            };
             helpCenterContentModify(params).then(res => {
               this.messageTips("修改", res);
             });
@@ -223,7 +250,7 @@ export default {
         }
       });
     },
-    messageTips (title, res) {
+    messageTips(title, res) {
       if (res.code == 200) {
         this.$message.success(title + "成功");
         this.typeStatus = false;
@@ -232,25 +259,27 @@ export default {
         this.$message.error(res.msg);
       }
     },
-    getList () {
-      let catalogId = this.searchForm.catalogId ? this.searchForm.catalogId : null
+    getList() {
+      let catalogId = this.searchForm.catalogId
+        ? this.searchForm.catalogId
+        : null;
       if (catalogId) {
-        catalogId = catalogId[catalogId.length - 1]
+        catalogId = catalogId[catalogId.length - 1];
       }
       let params = {
         catalogIds: catalogId,
         page: this.pageInfo.page,
         rows: this.pageInfo.limit
-      }
+      };
       helpCenterContentList(params).then(res => {
         let result = res.data;
         if (res.code == 200) {
           this.tableList = result.rows;
-          this.pageInfo.total = result.total
+          this.pageInfo.total = result.total;
         }
       });
     },
-    getTreeList () {
+    getTreeList() {
       helpCenterCatalogList({
         parentId: 0
       }).then(res => {
@@ -260,51 +289,52 @@ export default {
         }
       });
     },
-    setTableData (result) {
-      let list = []
+    setTableData(result) {
+      let list = [];
       list = result.map(res => {
-        let tempList = {}
+        let tempList = {};
         tempList = {
           value: res.id,
           label: res.text,
           parentId: res.parentId
-        }
+        };
         if (res.children && res.children.length > 0) {
-          tempList.children = this.setTableData(res.children)
+          tempList.children = this.setTableData(res.children);
         }
-        return tempList
-      })
-      return list
+        return tempList;
+      });
+      return list;
     },
-    openTypes (type, row) {
-      this.typeStatus = true
-      this.formActionTitle = type
+    openTypes(type, row) {
+      this.typeStatus = true;
+      this.formActionTitle = type;
       if (type == "update") {
         // 修改的时候赋值
         this.form = {
           id: row.id,
           title: row.title, // 标题
           content: row.content, // 内容
-          catalogId: this.getAllIds(row), // 分类编号
+          catalogId: this.getAllIds(row) // 分类编号
         };
       }
     },
-    onToUrl () {
-      this.$router.push('/contentManager/helpCategory')
+    onToUrl() {
+      this.$router.push("/contentManager/helpCategory");
     },
-    getAllIds (row) {
-      let idAndParent = [];// idAndParent保存 Tree所有节点的id和parentId
+    getAllIds(row) {
+      let idAndParent = []; // idAndParent保存 Tree所有节点的id和parentId
       this.getIdAndParent(this.treeList, idAndParent);
       let parentIds = []; // 用于保存选中节点的父节点及父节点的父节点
       this.getId(row.catalogId, parentIds, idAndParent);
       return parentIds.reverse(); //反转数组
     },
-    getIdAndParent (tree, idAndParentIds) {// idAndParentIds用来保存所有节点的id,parentId
+    getIdAndParent(tree, idAndParentIds) {
+      // idAndParentIds用来保存所有节点的id,parentId
       // 对原有的数据结构进行遍历,拿出所有节点的id,parentId到一个一维数组中。
       tree.forEach(item => {
         let mid = {
           id: item.value,
-          parentId: item.parentId,
+          parentId: item.parentId
         };
         idAndParentIds.push(mid);
         if (item.children) {
@@ -312,7 +342,7 @@ export default {
         }
       });
     },
-    getId (id, parentIds, idAndParent) {
+    getId(id, parentIds, idAndParent) {
       idAndParent.forEach(item => {
         if (item.id == id) {
           parentIds.push(id);
@@ -322,21 +352,20 @@ export default {
         }
       });
     },
-    onFormClose (formName) {
+    onFormClose(formName) {
       // 关闭弹窗重置验证
       this.form = {
         title: null, // 标题
         content: null, // 内容
-        catalogId: [], // 分类编号
-      }
-      this.$refs.formCascader.handleClear()
+        catalogId: [] // 分类编号
+      };
+      this.$refs.formCascader.handleClear();
       this.$refs[formName].resetFields();
     }
   }
 };
 </script>
 <style lang="scss" scoped>
-
 ::v-deep .el-date-editor.el-input {
   width: 100% !important;
 }