xjc 4 éve
szülő
commit
7be233e5a2
6 módosított fájl, 635 hozzáadás és 3 törlés
  1. 48 0
      src/api.js
  2. 39 0
      src/router.js
  3. 3 3
      src/views/Index.vue
  4. 183 0
      src/views/system/ColdWord.vue
  5. 183 0
      src/views/system/HotWord.vue
  6. 179 0
      src/views/system/SenWord.vue

+ 48 - 0
src/api.js

@@ -417,4 +417,52 @@ export default {
 	getHotelData: params => {
 		return axios.get(`${baseURL}/api/admin/hotel/download`);
 	},
+	// 热词
+	getHotWordList: params => {
+		return axios.get(`${baseURL}/api/admin/hotword/list`, { params: params });
+	},
+	addHotWord: params => {
+		return axios.post(`${baseURL}/api/admin/hotword`, params);
+	},
+	updateHotWord: params => {
+		return axios.put(`${baseURL}/api/admin/hotword`, params);
+	},
+	delHotWord: params => {
+		return axios.delete(`${baseURL}/api/admin/hotword`, { params: params });
+	},
+	getHotWord: params => {
+		return axios.get(`${baseURL}/api/admin/hotword`, { params: params });
+	},
+	// 冷词
+	getColdWordList: params => {
+		return axios.get(`${baseURL}/api/admin/coldword/list`, { params: params });
+	},
+	addColdWord: params => {
+		return axios.post(`${baseURL}/api/admin/coldword`, params);
+	},
+	updateColdWord: params => {
+		return axios.put(`${baseURL}/api/admin/coldword`, params);
+	},
+	delColdWord: params => {
+		return axios.delete(`${baseURL}/api/admin/coldword`, { params: params });
+	},
+	getColdWord: params => {
+		return axios.get(`${baseURL}/api/admin/coldword`, { params: params });
+	},
+	// 敏感词
+	getSenWordList: params => {
+		return axios.get(`${baseURL}/api/admin/senword/list`, { params: params });
+	},
+	addSenWord: params => {
+		return axios.post(`${baseURL}/api/admin/senword`, params);
+	},
+	updateSenWord: params => {
+		return axios.put(`${baseURL}/api/admin/senword`, params);
+	},
+	delSenWord: params => {
+		return axios.delete(`${baseURL}/api/admin/senword`, { params: params });
+	},
+	getSenWord: params => {
+		return axios.get(`${baseURL}/api/admin/senword`, { params: params });
+	},
 }

+ 39 - 0
src/router.js

@@ -287,5 +287,44 @@ export default new Router({
         name: '角色管理'
       }, ]
     },
+    {
+      path: '/system/hotword',
+      name: '热词',
+      icon: 'iconfont iconzhanghaoguanli',
+      component: () => import('./views/Home.vue'),
+      show: 0,
+      isLeaf: 1,
+      children: [{
+        path: '/system/hotword',
+        component: () => import('./views/system/HotWord.vue'),
+        name: '热词'
+      }, ]
+    },
+    {
+      path: '/system/coldword',
+      name: '冷词',
+      icon: 'iconfont iconzhanghaoguanli',
+      component: () => import('./views/Home.vue'),
+      show: 0,
+      isLeaf: 1,
+      children: [{
+        path: '/system/coldword',
+        component: () => import('./views/system/ColdWord.vue'),
+        name: '冷词'
+      }, ]
+    },
+    {
+      path: '/system/senword',
+      name: '敏感词',
+      icon: 'iconfont iconzhanghaoguanli',
+      component: () => import('./views/Home.vue'),
+      show: 0,
+      isLeaf: 1,
+      children: [{
+        path: '/system/senword',
+        component: () => import('./views/system/SenWord.vue'),
+        name: '敏感词'
+      }, ]
+    },
   ]
 })

+ 3 - 3
src/views/Index.vue

@@ -751,7 +751,7 @@ export default {
             organizer_journal_x.push(item.name)
             organizer_journal_y.push(item.value)
         })
-        this.form.journal_article.forEach((item,index)=>{
+        this.form.journal_article_top5.forEach((item,index)=>{
             journal_article_x.push(item.journal_name)
             journal_article_y.push(item.count)
         })
@@ -769,8 +769,8 @@ export default {
         })
         this.form.organizer_journal_x = organizer_journal_x
         this.form.organizer_journal_y = organizer_journal_y
-        this.form.journal_article_x = journal_article_x
-        this.form.journal_article_y = journal_article_y
+        this.form.journal_article_x = journal_article_x.reverse()
+        this.form.journal_article_y = journal_article_y.reverse()
         this.form.pubtime_article_x = pubtime_article_x
         this.form.pubtime_article_y = pubtime_article_y
         this.form.organizer_conference_x = organizer_journal_x

+ 183 - 0
src/views/system/ColdWord.vue

@@ -0,0 +1,183 @@
+<style lang="scss">
+.preview {
+  .el-form-item {
+    margin-bottom: 15px;
+  }
+  label,
+  p {
+    line-height: 25px !important;
+  }
+}
+</style>
+<template>
+  <section>
+    <p><span>系统管理></span>冷词管理</p>
+    <div class="content">
+      <div class="filter">
+        <el-form
+          size="small"
+          label-width="70px"
+          :inline="true"
+          label-position="left"
+        >
+          <el-form-item label="">
+            <el-input
+              clearable
+              placeholder="请输入热词"
+              v-model="form.name"
+            ></el-input>
+          </el-form-item>
+          <el-form-item>
+            <el-button type="primary" @click="search">搜索</el-button>
+          </el-form-item>
+          <el-form-item style="float: right">
+            <el-button
+              @click="(dialogVisible = true), (dialogTitle = '新增冷词')"
+              type="primary"
+              >新增冷词</el-button
+            >
+          </el-form-item>
+        </el-form>
+      </div>
+      <el-table
+        class="table"
+        :data="list"
+        height="50vh"
+        border
+        v-loading="loading"
+        default-expand-all
+        row-key="id"
+        style="width: 100%"
+      >
+        <el-table-column prop="name" width="300" label="关键字">
+        </el-table-column>
+        <el-table-column prop="is_active" label="状态">
+          <template slot-scope="scope">
+            <el-switch v-model="scope.row.is_active"> </el-switch>
+          </template>
+        </el-table-column>
+        <el-table-column prop="cname" label="编辑人"> </el-table-column>
+        <el-table-column prop="zip" width="150" label="操作">
+          <template slot-scope="scope">
+            <el-button class="del" @click="del(scope.row.id)" type="text"
+              >删除</el-button
+            >
+          </template>
+        </el-table-column>
+      </el-table>
+      <Page
+        ref="pageButton"
+        :current="form.page"
+        :page_size="form.page_size"
+        :total="total"
+        @pageChange="gopage"
+      />
+    </div>
+
+    <el-dialog
+      :title="dialogTitle"
+      :close-on-click-modal="false"
+      :visible.sync="dialogVisible"
+    >
+      <el-form size="small" class="preview" :inline="false" label-width="80px">
+        <el-form-item label="冷词名称">
+          <el-input v-model="form1.name"></el-input>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" type="primary" @click="save">确 定</el-button>
+      </span>
+    </el-dialog>
+  </section>
+</template>
+<script>
+import Page from "../../components/Page";
+export default {
+  components: {
+    Page,
+  },
+  data() {
+    return {
+      form: { name: "", page: 1, page_size: 20 },
+      form1: {},
+      total: 1,
+      list: [{ name: "2333" }],
+      loading: false,
+      input: "",
+      dialogVisible: false,
+      dialogTitle: "",
+      defaultProps: {},
+      data: [],
+      selected: [],
+    };
+  },
+  methods: {
+    search() {
+      let parm = this.form;
+      this.getData();
+    },
+    getData() {
+      var parm = this.form;
+      this.loading = true;
+      this.$api.getColdWordList(parm).then((res) => {
+        let list = res.data.data.list;
+        this.list = list;
+        this.total = res.data.data.total;
+        this.loading = false;
+      });
+    },
+    gopage(size) {
+      if (size) {
+        this.form.page_size = size;
+      }
+      this.form.page = this.$refs.pageButton.page;
+      this.getData();
+    },
+    del(id) {
+      this.$confirm("确定删除吗", "提示", {
+        type: "warning",
+      }).then(() => {
+        this.$api.delColdWord({ id: id }).then((res) => {
+          this.$message({
+            message: "删除成功",
+            type: "success",
+          });
+          this.getData();
+        });
+      });
+    },
+    save() {
+      let parm = this.form1;
+      if (parm.id) {
+        this.$api.updateColdWord(parm).then((res) => {
+          if (res.data.code == 0) {
+            this.$message({
+              type: "success",
+              message: "保存成功!",
+            });
+            this.getData();
+          } else {
+            this.$message.error("失败!");
+          }
+        });
+      } else {
+        this.$api.addColdWord(parm).then((res) => {
+          if (res.data.code == 0) {
+            this.$message({
+              type: "success",
+              message: "保存成功!",
+            });
+            this.getData();
+          } else {
+            this.$message.error("失败!");
+          }
+        });
+      }
+      this.dialogVisible = false;
+    },
+  },
+  created() {
+    this.getData();
+  },
+};
+</script>

+ 183 - 0
src/views/system/HotWord.vue

@@ -0,0 +1,183 @@
+<style lang="scss">
+.preview {
+  .el-form-item {
+    margin-bottom: 15px;
+  }
+  label,
+  p {
+    line-height: 25px !important;
+  }
+}
+</style>
+<template>
+  <section>
+    <p><span>系统管理></span>热词管理</p>
+    <div class="content">
+      <div class="filter">
+        <el-form
+          size="small"
+          label-width="70px"
+          :inline="true"
+          label-position="left"
+        >
+          <el-form-item label="">
+            <el-input
+              clearable
+              placeholder="请输入热词"
+              v-model="form.name"
+            ></el-input>
+          </el-form-item>
+          <el-form-item>
+            <el-button type="primary" @click="search">搜索</el-button>
+          </el-form-item>
+          <el-form-item style="float: right">
+            <el-button
+              @click="(dialogVisible = true), (dialogTitle = '新增热词')"
+              type="primary"
+              >新增热词</el-button
+            >
+          </el-form-item>
+        </el-form>
+      </div>
+      <el-table
+        class="table"
+        :data="list"
+        height="50vh"
+        border
+        v-loading="loading"
+        default-expand-all
+        row-key="id"
+        style="width: 100%"
+      >
+        <el-table-column prop="name" width="300" label="关键字">
+        </el-table-column>
+        <el-table-column prop="is_active" label="状态">
+          <template slot-scope="scope">
+            <el-switch v-model="scope.row.is_active"> </el-switch>
+          </template>
+        </el-table-column>
+        <el-table-column prop="cname" label="编辑人"> </el-table-column>
+        <el-table-column prop="zip" width="150" label="操作">
+          <template slot-scope="scope">
+            <el-button class="del" @click="del(scope.row.id)" type="text"
+              >删除</el-button
+            >
+          </template>
+        </el-table-column>
+      </el-table>
+      <Page
+        ref="pageButton"
+        :current="form.page"
+        :page_size="form.page_size"
+        :total="total"
+        @pageChange="gopage"
+      />
+    </div>
+
+    <el-dialog
+      :title="dialogTitle"
+      :close-on-click-modal="false"
+      :visible.sync="dialogVisible"
+    >
+      <el-form size="small" class="preview" :inline="false" label-width="80px">
+        <el-form-item label="热词名称">
+          <el-input v-model="form1.name"></el-input>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" type="primary" @click="save">确 定</el-button>
+      </span>
+    </el-dialog>
+  </section>
+</template>
+<script>
+import Page from "../../components/Page";
+export default {
+  components: {
+    Page,
+  },
+  data() {
+    return {
+      form: { name: "", page: 1, page_size: 20 },
+      form1: {},
+      total: 1,
+      list: [{ name: "2333" }],
+      loading: false,
+      input: "",
+      dialogVisible: false,
+      dialogTitle: "",
+      defaultProps: {},
+      data: [],
+      selected: [],
+    };
+  },
+  methods: {
+    search() {
+      let parm = this.form;
+      this.getData();
+    },
+    getData() {
+      var parm = this.form;
+      this.loading = true;
+      this.$api.getHotWordList(parm).then((res) => {
+        let list = res.data.data.list;
+        this.list = list;
+        this.total = res.data.data.total;
+        this.loading = false;
+      });
+    },
+    gopage(size) {
+      if (size) {
+        this.form.page_size = size;
+      }
+      this.form.page = this.$refs.pageButton.page;
+      this.getData();
+    },
+    del(id) {
+      this.$confirm("确定删除吗", "提示", {
+        type: "warning",
+      }).then(() => {
+        this.$api.delHotWord({ id: id }).then((res) => {
+          this.$message({
+            message: "删除成功",
+            type: "success",
+          });
+          this.getData();
+        });
+      });
+    },
+    save() {
+      let parm = this.form1;
+      if (parm.id) {
+        this.$api.updateHotWord(parm).then((res) => {
+          if (res.data.code == 0) {
+            this.$message({
+              type: "success",
+              message: "保存成功!",
+            });
+            this.getData();
+          } else {
+            this.$message.error("失败!");
+          }
+        });
+      } else {
+        this.$api.addHotWord(parm).then((res) => {
+          if (res.data.code == 0) {
+            this.$message({
+              type: "success",
+              message: "保存成功!",
+            });
+            this.getData();
+          } else {
+            this.$message.error("失败!");
+          }
+        });
+      }
+      this.dialogVisible = false;
+    },
+  },
+  created() {
+    this.getData();
+  },
+};
+</script>

+ 179 - 0
src/views/system/SenWord.vue

@@ -0,0 +1,179 @@
+<style lang="scss">
+.preview {
+  .el-form-item {
+    margin-bottom: 15px;
+  }
+  label,
+  p {
+    line-height: 25px !important;
+  }
+}
+</style>
+<template>
+  <section>
+    <p><span>系统管理></span>敏感词管理</p>
+    <div class="content">
+      <div class="filter">
+        <el-form
+          size="small"
+          label-width="70px"
+          :inline="true"
+          label-position="left"
+        >
+          <el-form-item label="">
+            <el-input
+              clearable
+              placeholder="请输入热词"
+              v-model="form.name"
+            ></el-input>
+          </el-form-item>
+          <el-form-item>
+            <el-button type="primary" @click="search">搜索</el-button>
+          </el-form-item>
+          <el-form-item style="float: right">
+            <el-button
+              @click="(dialogVisible = true), (dialogTitle = '新增敏感词')"
+              type="primary"
+              >新增敏感词</el-button
+            >
+          </el-form-item>
+        </el-form>
+      </div>
+      <el-table
+        class="table"
+        :data="list"
+        height="50vh"
+        border
+        v-loading="loading"
+        default-expand-all
+        row-key="id"
+        style="width: 100%"
+      >
+        <el-table-column prop="name" width="300" label="关键字">
+        </el-table-column>
+        <el-table-column prop="cname" label="编辑人"> </el-table-column>
+        <el-table-column prop="ctime" label="编辑时间"> </el-table-column>
+        <el-table-column prop="zip" width="150" label="操作">
+          <template slot-scope="scope">
+            <el-button class="del" @click="del(scope.row.id)" type="text"
+              >删除</el-button
+            >
+          </template>
+        </el-table-column>
+      </el-table>
+      <Page
+        ref="pageButton"
+        :current="form.page"
+        :page_size="form.page_size"
+        :total="total"
+        @pageChange="gopage"
+      />
+    </div>
+
+    <el-dialog
+      :title="dialogTitle"
+      :close-on-click-modal="false"
+      :visible.sync="dialogVisible"
+    >
+      <el-form size="small" class="preview" :inline="false" label-width="80px">
+        <el-form-item label="敏感词">
+          <el-input v-model="form1.name"></el-input>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" type="primary" @click="save">确 定</el-button>
+      </span>
+    </el-dialog>
+  </section>
+</template>
+<script>
+import Page from "../../components/Page";
+export default {
+  components: {
+    Page,
+  },
+  data() {
+    return {
+      form: { name: "", page: 1, page_size: 20 },
+      form1: {},
+      total: 1,
+      list: [{ name: "2333" }],
+      loading: false,
+      input: "",
+      dialogVisible: false,
+      dialogTitle: "",
+      defaultProps: {},
+      data: [],
+      selected: [],
+    };
+  },
+  methods: {
+    search() {
+      let parm = this.form;
+      this.getData();
+    },
+    getData() {
+      var parm = this.form;
+      this.loading = true;
+      this.$api.getSenWordList(parm).then((res) => {
+        let list = res.data.data.list;
+        this.list = list;
+        this.total = res.data.data.total;
+        this.loading = false;
+      });
+    },
+    gopage(size) {
+      if (size) {
+        this.form.page_size = size;
+      }
+      this.form.page = this.$refs.pageButton.page;
+      this.getData();
+    },
+    del(id) {
+      this.$confirm("确定删除吗", "提示", {
+        type: "warning",
+      }).then(() => {
+        this.$api.delSenWord({ id: id }).then((res) => {
+          this.$message({
+            message: "删除成功",
+            type: "success",
+          });
+          this.getData();
+        });
+      });
+    },
+    save() {
+      let parm = this.form1;
+      if (parm.id) {
+        this.$api.updateSenWord(parm).then((res) => {
+          if (res.data.code == 0) {
+            this.$message({
+              type: "success",
+              message: "保存成功!",
+            });
+            this.getData();
+          } else {
+            this.$message.error("失败!");
+          }
+        });
+      } else {
+        this.$api.addSenWord(parm).then((res) => {
+          if (res.data.code == 0) {
+            this.$message({
+              type: "success",
+              message: "保存成功!",
+            });
+            this.getData();
+          } else {
+            this.$message.error("失败!");
+          }
+        });
+      }
+      this.dialogVisible = false;
+    },
+  },
+  created() {
+    this.getData();
+  },
+};
+</script>