ソースを参照

Merge branch 'HitSheep' of http://39.105.160.25:10880/post-project-ui/post-ui into HitSheep

wangrui 2 年 前
コミット
a5fbb5a8f0

+ 3 - 0
Dockerfile

@@ -0,0 +1,3 @@
+FROM nginx
+EXPOSE 80
+COPY dist /usr/share/nginx/html

+ 11 - 2
Jenkinsfile

@@ -1,10 +1,17 @@
 pipeline {
     agent any
-
     stages {
         stage('Build') {
+            agent {
+                docker {
+                    image 'node:16-alpine'  
+                }
+            }
             steps {
-                echo 'Building..'
+                sh 'docker-compose stop'
+                sh 'docker-compose rm -sf'
+                sh 'npm install --registry https://registry.npm.taobao.org'
+                sh 'npm run build:prod'
             }
         }
         stage('Test') {
@@ -15,6 +22,8 @@ pipeline {
         stage('Deploy') {
             steps {
                 echo 'Deploying....'
+                sh 'docker build -t hitsheep:0.1 .'
+                sh 'docker-compose up -d'
             }
         }
     }

+ 11 - 0
docker-compose.yml

@@ -0,0 +1,11 @@
+services:
+  post-project-ui-HitSheep:
+    image: hitsheep:0.1
+    container_name: post-ui-HitSheep
+    ports:
+      - 8680:80
+    networks:
+      - local_public
+networks:
+  local_public:
+    external: true

+ 3 - 3
src/api/message/message.js

@@ -2,9 +2,9 @@
 import request from '@/utils/request'
 
 // 获取消息列表
-export function getMessage() {
+export function getMessage(pageNum) {
   return request({
-    url: '/post/news/list',
+    url: '/post/news/list?pageNum=' +pageNum ,
     method: 'get'
   })
 }
@@ -26,7 +26,7 @@ export function searchMessage(id) {
 export function moreMessage(id) {
   return request({
     url: '/post/news/' + id,
-    method: 'post'
+    method: 'get'
   })
 }
 

+ 38 - 0
src/api/notice/notice.js

@@ -0,0 +1,38 @@
+// 后端接口版本
+import request from '@/utils/request'
+
+//获取公告列表
+export function getNotice(){
+    return request({
+        url:'/post/bulletin/list',
+        method:'get'
+    })
+}
+//删除公告
+export function deleteNotice(id){
+    return request({
+        url:'/post/bulletin/' + id,
+        method:'delete'
+    })
+}
+//查看详情
+export function moreNotice(id){
+    return request({
+        url:'/post/bulletin/' + id,
+        method:'get'
+    })
+}
+//ID搜索
+export function searchNotice(id){
+    return request({
+        url:'http://localhost:8080/post/bulletin/' + id,
+        method:'get'
+    })
+}
+//标题搜索
+export function searchJNotice(title){
+    return request({
+        url:'/post/bulletin/list?noticeTitle=' + title,
+        method: 'get'
+    })
+}

+ 1 - 1
src/router/index.js

@@ -138,7 +138,7 @@ export const constantRoutes = [
         path:'messageDetails',
         component:() => import('@/views/message/messageDetails'),
         name: 'messageDetails',
-        meta: { title:'公告详情', icon:'user'},
+        meta: { title:'消息详情', icon:'user'},
         hidden: true
       }
       // messageDetails

+ 22 - 40
src/views/message/messageDetails.vue

@@ -3,45 +3,50 @@
     <el-button id="returnBtn" @click="returnBtn">返回</el-button>
     <div class="noticeDetails">
       <div class="title">消息详情</div>
-      <h3 id="noticeTitle">数字邮局正式上线,创世版首发!</h3>
+      <h3 id="noticeTitle" :data="newsTitle"> {{ newsTitle }}</h3>
       <!-- <div class="noticeTitle">数字邮局正式上线,创世版首发!</div> -->
-      <h4 id="noticeTime">2023-01-13 11:46:38</h4>
-      <div class="noticeContent">
-        邮贝数字邮局,是由中国邮政集团有限公司北京市公司设立,同时使用人民日报全国党媒联盟链进行数字邮品和数字产品的登记、认证与确权,服务广大集邮用户和数字收藏爱好者的邮政官方数字邮品和数字产品发行平台。邮贝数字邮局由北京游贝数字科技有限公司负责运营。
+      <h4 id="noticeTime" :data="createTime">{{ createTime }}</h4>
+      <div class="noticeContent" :data="newsContent">
+        {{ newsContent }}
       </div>
-      
-    </div>
-    
+    </div> 
   </div>
 </template>
 
 <script>
 import { moreMessage } from '../../api/message/message.js'
-import mitt from '@/utils/mitt.js';
 export default {
-  props: {
-    
-  },
+  props:["row_"],
   data() {
     return {
-      num:1
+      num:1,
+      _row : 1 ,
+      newsTitle:"" ,
+      createTime :"" ,
+      newsContent:""
     }
   },
   mounted() {
+    let queryObj = this.$route.query.id
+    this._row = queryObj
+    // console.log("----", this._row);
     this.getList();
-    mitt.on("searchMore",(data)=>{
-      console.log("*******");
-      console.log(data);
-    })
   },
   beforeDestroy() {
   },
   methods: {
     getList() {
-      moreMessage().then((res) => {
+      // console.log("get" , this._row);
+      moreMessage( this._row ).then((res) => {
         console.log(res);
+        this.newsTitle = res.data.newsTitle
+        this.createTime = res.data.createTime
+        this.newsContent = res.data.newsContent  
       })
     },
+    returnBtn(){
+        this.$router.go(-1)
+    }
   }
 }
 
@@ -97,26 +102,3 @@ export default {
 </style>
 
 
-<script>
-export default {
-  data() {
-    return {
-      noticeTitle: "",
-      noticeTime: "",
-    };
-  },
-  mounted() {
-    //获取到当前公告的标题和时间
-    this.noticeTitle = document.querySelector("#noticeTitle");
-    this.noticeTime = document.querySelector("#noticeTime");
-    noticeTitle.innerHTML = this.$route.query.title;
-    noticeTime.innerHTML = this.$route.query.publishTime;
-  },
-  methods:{
-    //返回上一页
-    returnBtn(){
-        this.$router.go(-1)
-    }
-  }
-};
-</script>

+ 28 - 23
src/views/message/messageList.vue

@@ -13,7 +13,7 @@
           消息标题:<el-input v-model="input" class="up-input" placeholder="请输入内容"></el-input>
         </div>
         <div class="up-input-title-right">
-          <span class="demonstration" >发布时间:</span>
+          <span class="demonstration">发布时间:</span>
           <el-date-picker v-model="value2" type="datetimerange" class="up-input-right" :picker-options="pickerOptions"
             range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" align="right">
           </el-date-picker>
@@ -39,7 +39,7 @@
           </el-table-column>
           <el-table-column prop="operate" label="操作">
             <template slot-scope="scope">
-              <el-button size="mini" type="text" @click="viewDetails(scope)">查看详情</el-button>
+              <el-button size="mini" type="text" @click="viewDetails(scope)" v-bind:row_="row_">查看详情</el-button>
               <el-popconfirm title="你确定删除本条消息吗?" @confirm="deleteMessage(scope)">
                 <el-button class="btn-delete" size="mini" type="text" icon="el-icon-delete"
                   slot="reference">删除</el-button>
@@ -51,11 +51,11 @@
     </div>
     <div class="bottom">
       <div class="bottom-page">
-        <el-pagination layout="prev, pager, next" :total="mockMessageList.length" @size-change="handleSizeChange"
-          @current-change="handleCurrentChange">
+        <!-- @size-change="handleSizeChange(this.total)" -->
+        <el-pagination layout="prev, pager, next" :total="this.total" @current-change="handleCurrentChange">
         </el-pagination>
       </div>
-      <span class="bottom-number">共{{ mockMessageList.length }}条 </span>
+      <span class="bottom-number">共{{ this.total }}条 </span>
     </div>
   </div>
 </template>
@@ -73,37 +73,33 @@ export default {
       value2: "",
       mock: "",
       mockMessageList: [],
+      currentPageData: [],
       currentPage: 1,
-      pagesize: 10
+      pageNum: 1,
+      pagesize: 10,
+      row_: "1",
+      total: 1,
     }
   },
   mounted() {
     this.getMockMessageList();
-
   },
   beforeDestroy() {
   },
   methods: {
     getMockMessageList() {
-      getMessage().then((res) => {
+      getMessage(this.pageNum).then((res) => {
         this.tableData = res.rows
+        this.total = res.total
+        console.log(res);
         console.log(res.rows);
       })
     },
-    //分页功能
-    getPageData() {
-      console.log(this.mockMessageList);
-      let start = (this.currentPage - 1) * this.pagesize;
-      let end = start + this.pagesize;
-      this.tableData = this.mockMessageList.slice(start, end);
-    },
-    handleSizeChange(val) {
-      this.pagesize = val;
-      this.getPageData();
-    },
     handleCurrentChange(val) {
-      this.currentPage = val;
-      this.getPageData();
+      getMessage(val).then((res) => {
+        this.tableData = res.rows
+        this.total = res.total
+      })
     },
     stateFormat(row, column, cellValue) {
       if (!cellValue) return ''
@@ -130,7 +126,16 @@ export default {
     viewDetails(row) {
       row = row.row.newsId
       mitt.emit('searchMore', row)
-      this.$router.push("/messageList/messageDetails");
+      this.row_ = row
+      console.log(this.row_);
+      // this.$router.push({path:"/messageList/messageDetails",query:{row_: this.row_}})
+      this.$router.push({
+        name: "messageDetails",
+        query: {
+          id: this.row_
+        }
+      });
+      // this.$router.push("/messageList/messageDetails");
     },
     //添加跳转
     addNoticce() {
@@ -149,7 +154,7 @@ export default {
     },
     //重置
     reset() {
-      this.input = "" 
+      this.input = ""
       this.value2 = ""
     }
   }

+ 25 - 9
src/views/notice/noticeDetails.vue

@@ -3,11 +3,11 @@
     <el-button id="returnBtn" @click="returnBtn">返回</el-button>
     <div class="noticeDetails">
       <div class="title">公告详情</div>
-      <h3 id="noticeTitle">数字邮局正式上线,创世版首发!</h3>
+      <h3 id="noticeTil" >{{noticeTil}}</h3>
       <!-- <div class="noticeTitle">数字邮局正式上线,创世版首发!</div> -->
-      <h4 id="noticeTime">2023-01-13 11:46:38</h4>
+      <h4 id="noticeTim">{{noticeTim}}</h4>
       <div class="noticeContent">
-        邮贝数字邮局,是由中国邮政集团有限公司北京市公司设立,同时使用人民日报全国党媒联盟链进行数字邮品和数字产品的登记、认证与确权,服务广大集邮用户和数字收藏爱好者的邮政官方数字邮品和数字产品发行平台。邮贝数字邮局由北京游贝数字科技有限公司负责运营。
+        {{noticeContent}}
       </div>
     </div>
   </div>
@@ -60,21 +60,37 @@
 
 
 <script>
+import {moreNotice}  from "../../api/notice/notice";
 export default {
   data() {
     return {
-      noticeTitle: "",
-      noticeTime: "",
+      noticeTil: "",
+      noticeTim: "",
+      row_ :1 ,
+      noticeContent:"" ,
+      
     };
   },
   mounted() {
     //获取到当前公告的标题和时间
-    this.noticeTitle = document.querySelector("#noticeTitle");
-    this.noticeTime = document.querySelector("#noticeTime");
-    noticeTitle.innerHTML = this.$route.query.title;
-    noticeTime.innerHTML = this.$route.query.publishTime;
+    this.row_ = this.$route.query.id;
+    console.log(this.row_);
+    // this.noticeTil = document.querySelector("#noticeTil");
+    // this.noticeTim = document.querySelector("#noticeTim");
+    // noticeTil.innerHTML = this.$route.query.id;
+    // noticeTim.innerHTML = this.$route.query.noticeTime;
+    this.getmoreNotice()
   },
   methods:{
+    //获取
+    getmoreNotice(){
+      moreNotice(this.row_).then((res)=>{
+        console.log(res);
+        this.noticeContent = res.data.noticeContent 
+        this.noticeTil = res.data.noticeTitle
+        this.noticeTim = res.data.createTime
+      })
+    },
     //返回上一页
     returnBtn(){
         this.$router.go(-1)

+ 59 - 39
src/views/notice/noticeList.vue

@@ -7,8 +7,8 @@
           <i id="search-text" class="el-icon-search"> 筛选搜索</i>
         </div>
         <div class="search-btn">
-          <el-button plain>重置</el-button>
-          <el-button type="primary">查询搜索</el-button>
+          <el-button plain @click="reset">重置</el-button>
+          <el-button type="primary" @click="searchNotice">查询搜索</el-button>
         </div>
       </div>
       <!-- 筛选公告标题 -->
@@ -43,21 +43,25 @@
     <!-- 数据栏 -->
     <div class="data-list">
       <el-table :data="tableData" border style="width: 100%" class="data-table">
-        <el-table-column prop="id" label="ID"> </el-table-column>
-        <el-table-column prop="title" label="公告标题"> </el-table-column>
-        <el-table-column prop="publishTime" label="发布时间"> </el-table-column>
+        <el-table-column prop="noticeId" label="ID"> </el-table-column>
+        <el-table-column prop="noticeTitle" label="公告标题"> </el-table-column>
+        <el-table-column prop="createTime" label="发布时间"> </el-table-column>
         <el-table-column prop="operation" label="操作">
           <template slot-scope="scope">
-            <el-button size="mini" type="text" @click="viewDetails(scope.$index)"
-              >查看详情</el-button
-            >
             <el-button
-              id="deleteBtn"
               size="mini"
               type="text"
-              @click="deleteBtn(scope.$index)"
-              >删除</el-button
+              @click="viewDetails(scope)"
+              >查看详情</el-button
             >
+            <el-popconfirm
+              title="你确定删除本条消息吗?"
+              @confirm="deleteNotice(scope)"
+            >
+              <el-button id="deleteBtn" size="mini" type="text" slot="reference"
+                >删除</el-button
+              >
+            </el-popconfirm>
           </template>
           <!-- <el-button size="mini" type="text" icon="el-icon-delete"
             >删除</el-button
@@ -174,6 +178,8 @@
   
 
 <script>
+import { getNotice, deleteNotice,searchJNotice } from "../../api/notice/notice";
+
 export default {
   data() {
     return {
@@ -184,43 +190,41 @@ export default {
       total: 0,
       pageSize: 5,
       totalNum: "",
+      row_ : "1",
+      noticeTime_: "1"
     };
   },
   mounted() {
     //获取总条目的id
     this.totalNum = document.querySelector("#dataNum");
     this.getMockNoticeList();
-    this.getTableList();
+    // this.getTableList();
   },
 
   methods: {
     getMockNoticeList() {
-      var Mock = require("mockjs");
-      var data = Mock.mock({
-        "list|1-20": [
-          {
-            "id|+1": 1,
-            title: "@cword(3, 5)",
-            publishTime: "@datetime()",
-            // 'operation|1-10': "★",
-          },
-        ],
-      });
-      this.mockNoticeList = data;
-    },
-    //获取数据按钮
-    getTableList() {
-      this.tableData = this.mockNoticeList.list;
-      // console.log(this.tableData)
+      getNotice().then((res) => {
+        //获取数据
+        this.tableData = res.rows;
+        console.log(res);
 
-      //获取数据总数
-      this.totalNum.innerHTML = `共:${this.tableData.length}条`;
-      this.total = this.tableData.length;
-      // console.log(this.total)
+        //获取数据总数
+        this.totalNum.innerHTML = `共:${res.rows.length}条`;
+        this.total = res.rows.length;
+      });
     },
     // 删除按钮
-    deleteBtn(row) {
-      this.tableData.splice(this.tableData[row], 1);
+    deleteNotice(row) {
+      console.log(row);
+      row = row.row.noticeId;
+      deleteNotice(row).then((res) => {
+        console.log(res);
+        this.$message({
+          message: "恭喜你,删除成功!",
+          type: "success",
+        });
+        this.$router.go(0);
+      });
       // console.log(this.tableData[row].title)
       // console.log(this.tableData[row].publishTime)
     },
@@ -230,14 +234,30 @@ export default {
     },
     //查看详情按钮 点击按钮跳转到公告详情页面
     viewDetails(row) {
+      row = row.row.noticeId
+      this.row_ = row
+      console.log(this.row_)
+      // console.log(this.noticeTime_)
       this.$router.push({
         name: "noticeDetails",
-        query:{
-          publishTime:'时间',
-          title:'标题'
-        }
+        query: {
+          id: this.row_,
+        },
       });
     },
+    //搜索
+    searchNotice() {
+      searchJNotice(this.input).then((res) =>{
+        console.log(res);
+        this.tableData = res.rows
+      })
+      this.reset();
+    },
+    //重置
+    reset() {
+      this.input = "";
+      this.value1 = "";
+    },
   },
 };
 </script>