From 1861d195f7f3a7364c1099356858c94a6c0741e2 Mon Sep 17 00:00:00 2001
From: 明梦爽 <2972214568@qq.com>
Date: 星期三, 02 三月 2022 18:11:16 +0800
Subject: [PATCH] 所有功能实现

---
 src/utils/request.js                       |    5 
 src/components/page/News.vue               |   11 
 src/components/page/index.vue              |    6 
 src/api/api.js                             |   73 ++++--
 src/components/Administrator/Edit.vue      |  128 ++++++++----
 src/components/Administrator/AdEdit.vue    |  156 +++++++++++++++
 src/main.js                                |    2 
 src/components/Home.vue                    |    2 
 src/components/page/introduce.vue          |    5 
 src/components/Administrator/EditLunBo.vue |   95 ++++++--
 src/components/Administrator/Welcome.vue   |   64 ++++++
 11 files changed, 433 insertions(+), 114 deletions(-)

diff --git a/src/api/api.js b/src/api/api.js
index c867b16..e01e24d 100644
--- a/src/api/api.js
+++ b/src/api/api.js
@@ -20,69 +20,94 @@
 export const getNewsList = data => {
   return request({
     method: 'POST',
-    url:'/news/list',
-    params:data,
+    url: '/news/list',
+    params: data,
   })
 }
 //鑾峰彇鍙湁涓�绡囨柊闂�
 export const getnew = data => {
   return request({
     method: 'GET',
-    url:`/news/main/${data}`
+    url: `/news/main/${data}`
   })
 }
 //淇敼鏂伴椈
 export const update = data => {
   return request({
-    method:'POST',
-    url:'/news/update',
-    params:data,
+    method: 'POST',
+    url: '/news/update',
+    params: data,
   })
 }
 //鍒犻櫎鏂伴椈
 export const deleteNew = data => {
   return request({
-    method:'POST',
-    url:'/news/delete',
-    params:data,
+    method: 'POST',
+    url: '/news/delete',
+    params: data,
   })
 }
 //妯$硦鏌ヨ
 export const fuzzy = data => {
   return request({
-    method:'POST',
-    url:'/news/fuzzy',
-    params:data,
+    method: 'POST',
+    url: '/news/fuzzy',
+    params: data,
   })
 }
 //娣诲姞鏂伴椈
-export const add = data => {
+export const add = (data, fd) => {
   return request({
-    method:'POST',
-    url:'/news/add',
-    params:data
+    method: 'POST',
+    url: '/news/add',
+    params: data,
+    data: fd
   })
 }
 //鐧诲綍
 export const login = data => {
   return request({
-    method:'POST',
-    url:'/login',
-    params:data
+    method: 'POST',
+    url: '/login',
+    params: data
   })
 }
 //鑾峰彇鏅�氱鐞嗗憳鍒楄〃
 export const getmain = () => {
   return request({
     method: 'GET',
-    url:'/admin/list'
+    url: '/admin/list'
   })
 }
 //瓒呯淇敼鏅璐﹀彿瀵嗙爜
 export const editAccount = data => {
   return request({
-    method:'POST',
-    url:'/admin/updatePassword',
-    params:data
+    method: 'POST',
+    url: '/admin/updatePassword',
+    params: data
   })
-}
\ No newline at end of file
+}
+//鍒犻櫎鏅�氱鐞嗗憳
+export const deleteAd = data => {
+  return request({
+    method: 'POST',
+    url: '/admin/delete',
+    params: data
+  })
+}
+//娉ㄥ唽鏅�氱鐞嗗憳
+export const addAd = data => {
+  return request({
+    method: 'POST',
+    url: '/admin/add',
+    params: data
+  })
+}
+//鏂囦欢涓婁紶
+export const fileUpload = fd => {
+  return request({
+    method: 'POST',
+    url: '/uploading',
+    data: fd
+  })
+}
diff --git a/src/components/Administrator/AdEdit.vue b/src/components/Administrator/AdEdit.vue
index 665807a..a87374c 100644
--- a/src/components/Administrator/AdEdit.vue
+++ b/src/components/Administrator/AdEdit.vue
@@ -1,6 +1,7 @@
 <template>
   <div>
     <el-card class="box-card">
+      <el-button type="primary" @click="add()" icon="el-icon-circle-plus" class='add'>娉ㄥ唽鏂扮殑绠$悊鍛樿处鍙�</el-button>
       <!-- 鏂伴椈琛ㄦ牸鍖哄煙 -->
       <el-table 
         :data="tableData"
@@ -22,42 +23,187 @@
           <template slot-scope="scope">
             <!-- {{ scope.row.id }} -->
             <div>
-              <el-button type="success" @click="look(scope.row.id)">娣诲姞</el-button>
-              <el-button type="warning" @click="showEditDialog(scope.row.id)">淇敼</el-button>
-              <el-button type="info" @click="deleteNews(scope.row.id)">鍒犻櫎</el-button>
+              <el-button type="primary" @click="showEditDialog(scope.row.id)" icon="el-icon-edit"></el-button>
+              <el-button type="danger" @click="deleteAds(scope.row.id)" icon="el-icon-delete"></el-button>
             </div>
           </template>
           
         </el-table-column>
       </el-table>
     </el-card>
+    <!-- 淇敼璐︽埛鐨勫璇濇 -->
+    <el-dialog
+      title="淇敼鏅�氱鐞嗗憳瀵嗙爜"
+      :visible.sync="editDialogVisible"
+      width="50%"
+      @close="editClose">
+      <!-- rules琛ㄥ崟楠岃瘉瑙勫垯锛宺ef褰撳墠琛ㄥ崟鐨勯獙璇佸璞� -->
+      <el-form ref="editFormRef" :model="editForm"  label-width="80px" status-icon>
+        <el-form-item label="鐢ㄦ埛鍚�:">
+          <el-input v-model="editForm.username" prefix-icon="iconfont icon-user" placeholder="璇疯緭鍏ヨ处鍙�" clearable=""></el-input>
+        </el-form-item>
+        <el-form-item label="鏃у瘑鐮�:">
+          <el-input v-model="editForm.oldPassword" prefix-icon="iconfont icon-3702mima" type="password" show-password placeholder="璇疯緭鍏ユ棫瀵嗙爜"></el-input>
+        </el-form-item>
+        <el-form-item label="鏂板瘑鐮�:">
+          <el-input v-model="editForm.password" prefix-icon="iconfont icon-3702mima" type="password" show-password placeholder="璇疯緭鍏ユ柊瀵嗙爜"></el-input>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="cancel">鍙� 娑�</el-button>
+        <el-button type="primary" @click="subEdit()">纭� 瀹�</el-button>
+      </span>
+    </el-dialog>
+    <!-- 娣诲姞绠$悊鍛樺璇濇 -->
+    <el-dialog
+      title="娣诲姞鏅�氱鐞嗗憳"
+      :visible.sync="addDialogVisible"
+      width="50%"
+      @close="addClose">
+      <!-- rules琛ㄥ崟楠岃瘉瑙勫垯锛宺ef褰撳墠琛ㄥ崟鐨勯獙璇佸璞� -->
+      <el-form ref="addFormRef" :model="addForm"  label-width="80px" status-icon>
+        <el-form-item label="鐢ㄦ埛鍚�:">
+          <el-input v-model="addForm.username" prefix-icon="iconfont icon-user" placeholder="璇疯緭鍏ヨ处鍙�" clearable=""></el-input>
+        </el-form-item>
+        <el-form-item label="瀵嗙爜:">
+          <el-input v-model="addForm.password" prefix-icon="iconfont icon-3702mima" type="password" show-password placeholder="璇疯緭鍏ュ瘑鐮�"></el-input>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="canceladd">鍙� 娑�</el-button>
+        <el-button type="primary" @click="addEdit()">娉� 鍐�</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
 
 <script>
-import { getmain,editAccount } from '../../api/api'
+import { getmain,editAccount,deleteAd,addAd } from '../../api/api'
 export default {
   data() {
     return {
       tableData:[], //鏅�氱鐞嗗憳鍒楄〃
+      editDialogVisible:false,
+      addDialogVisible:false,
+      editForm:{ username:'',oldPassword:'',password:'' },  //淇敼琛ㄥ崟瀵硅薄
+      addForm:{ username:'',password:'' }  //娣诲姞绠$悊瀵硅薄
     }
   },
   created(){
     this.ready()
   },
   methods:{
+    //鑾峰彇閾虹鍒楄〃
     ready(){
       getmain().then(res => {
-        console.log(res);
+        // console.log(res);
         if(res.code == 200){
           this.tableData = res.data
         }
       })
+    },
+    //灞曠ず缂栬緫瀵硅瘽妗�
+    showEditDialog(){
+      this.editDialogVisible = true
+    },
+    editClose(){
+      this.editForm.username = '';
+      this.editForm.oldPassword = '';
+      this.editForm.password = '';
+    },
+    cancel(){
+      this.editForm.username = '';
+      this.editForm.oldPassword = '';
+      this.editForm.password = '';
+      this.editDialogVisible = false
+    },
+    //缂栬緫纭畾浜嬩欢
+    subEdit(){
+      const data = {
+        username:this.editForm.username,
+        oldPassword:this.editForm.oldPassword,
+        password:this.editForm.password
+      }
+      editAccount(data).then(res => {
+        // console.log(res);
+        if(res.code == 200){
+          this.$message.success('璐︽埛淇敼鎴愬姛')
+          this.editDialogVisible = false
+          this.ready()
+        }else{
+          this.$message.error('璐︽埛淇敼澶辫触')
+        }
+      })
+    },
+    //鍒犻櫎鏅�氱鐞嗗憳
+    async deleteAds(id){
+      // console.log(id);
+      const res = await this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ョ鐞嗚处鍙�, 鏄惁缁х画?', '鎻愮ず', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning'
+      }).catch(err => {
+        return err
+      })
+      //濡傛灉鐢ㄦ埛鐐瑰嚮纭畾鍒欒繑鍥瀋onfirm
+      //濡傛灉鐢ㄦ埛鐐瑰嚮鍙栨秷鍒欒繑鍥瀋ancel
+      console.log(res);
+      if(res !== 'confirm'){
+        return this.$message.info('宸插彇娑堝垹闄')
+      }else{
+        // console.log(id);
+        const data = {
+          id:id
+        }
+        //鍙傛暟data 瑕佷互瀵硅薄鐨勫舰寮忎紶鍏�
+        deleteAd(data).then(res => {
+          // console.log('>>>'+res);
+          if(res.code == 200){
+            this.$message.success('鍒犻櫎鎴愬姛锛�')
+            this.ready()
+          }else{
+            return this.$message.error('鍒犻櫎澶辫触锛�')
+          }
+        })
+      }
+    },
+    add(){
+      this.addDialogVisible = true
+    },
+    //娉ㄥ唽鍙栨秷娓呯┖
+    canceladd(){
+      this.addForm.username = '';
+      this.addForm.password = '';
+      this.addDialogVisible = false
+    },
+    addClose(){
+      this.addForm.username = '';
+      this.addForm.password = '';
+    },
+    //娉ㄥ唽鎻愪氦
+    addEdit(){
+      const data = {
+        username:this.addForm.username,
+        password:this.addForm.password
+      }
+      addAd(data).then(res => {
+        if(res.code == 200){
+          this.$message.success('娉ㄥ唽鎴愬姛')
+          this.addDialogVisible = false
+          this.ready()
+        }else{
+          this.$message.error('娉ㄥ唽澶辫触')
+        }
+      })
+
     }
   }
 }
 </script>
 
 <style lang="less" scoped>
+.add{
+  margin-bottom: 10px;
+}
 
 </style>
\ No newline at end of file
diff --git a/src/components/Administrator/Edit.vue b/src/components/Administrator/Edit.vue
index 16e10cc..dce7624 100644
--- a/src/components/Administrator/Edit.vue
+++ b/src/components/Administrator/Edit.vue
@@ -3,31 +3,27 @@
     <el-row><h3 style="margin-top: 0px">{{ $route.query.title }}</h3></el-row>
     鏂伴椈鏍囬锛�<el-input v-model="title" placeholder="璇疯緭鍏ユ柊闂绘爣棰�"></el-input><br/><br/>
     鍙戝竷鏃ユ湡锛�<el-date-picker  format="yyyy 骞� MM 鏈� dd 鏃�" value-format="yyyy-MM-dd" v-model="releaseTime" placeholder="璇烽�夋嫨鏂伴椈鍙戝竷鏃ユ湡"></el-date-picker><br/><br/>
-    <!-- <el-upload
-      class="upload-demo"
-      ref="upload"
-      drag
-      action
-      :auto-upload="false"
-      :http-request="httpRequest"
-      multiple
-      :file-list="fileList">
-      <i class="el-icon-upload"></i>
-      <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div>
-      <div class="el-upload__tip" slot="tip">鍙兘涓婁紶jpg/png鏂囦欢锛屼笖涓嶈秴杩�500kb</div>
-    </el-upload><br/> -->
     鏂伴椈鍐呭锛�<quill-editor ref="text" v-model="content" class="myQuillEditor" :options="editorOption" />
     <el-row style="margin-top:50px;">
       <el-button  type="success" @click="submit">鍙戝竷</el-button>
+      <!-- <input type="file" @change="chooseFile"/><br/><br/>
+      <el-button  type="success" @click="tijiao">鎻愪氦</el-button><br/><br/>
+      <img :src="'http://localhost:7070/'+this.photo" style="width: 400px"> -->
     </el-row>
   </div>
 </template>
 <script>
-import { add } from '../../api/api'
-import { quillEditor } from 'vue-quill-editor'
+import axios from 'axios'
+
+import { add,fileUpload, login } from '../../api/api'
+import {quillEditor,Quill} from 'vue-quill-editor'
 import 'quill/dist/quill.core.css'
 import 'quill/dist/quill.snow.css'
 import 'quill/dist/quill.bubble.css'
+import { container, ImageExtend,QuillWatch } from 'quill-image-extend-module'
+Quill.register('modules/ImageExtend', ImageExtend)
+axios.defaults.withCredentials = true;
+
 export default {
   components:{ quillEditor },
   data(){
@@ -35,16 +31,58 @@
       title:'', //鏍囬鍐呭
       releaseTime:'', //鍙戝竷鏃ユ湡
       content: '',  //鏂伴椈鍐呭
+      picture:null,
+      photo:'',
       newsCategoryId:2,
       editorOption: {
         placeholder: "璇疯緭鍏ユ鏂�",
-        // editorOption閲屾槸鏀惧浘鐗囦笂浼犻厤缃弬鏁扮敤鐨勶紝渚嬪锛�
-        action:  '/api/product/richtext_img_upload.do',  // 蹇呭~鍙傛暟 鍥剧墖涓婁紶鍦板潃
-        methods: 'POST',  // 蹇呭~鍙傛暟 鍥剧墖涓婁紶鏂瑰紡
-        token: '',  // 鍙�夊弬鏁� 濡傛灉闇�瑕乼oken楠岃瘉锛屽亣璁句綘鐨則oken鏈夊瓨鏀惧湪sessionStorage
-        name: 'upload_file',  // 蹇呭~鍙傛暟 鏂囦欢鐨勫弬鏁板悕
-        size: 10000000,  // 鍙�夊弬鏁�   鍥剧墖澶у皬锛屽崟浣嶄负Kb, 1M = 1024Kb
-        accept: 'multipart/form-data, image/png, image/gif, image/jpeg, image/bmp, image/x-icon,image/jpg'  // 鍙�� 鍙笂浼犵殑鍥剧墖鏍煎紡
+        modules: {
+            ImageExtend: {  // 濡傛灉涓嶄綔璁剧疆锛屽嵆{}  鍒欎緷鐒跺紑鍚鍒剁矘璐村姛鑳戒笖浠ase64鎻掑叆 
+                name: 'file',  // 鍥剧墖鍙傛暟鍚�
+                loading: true,
+                size: 10,  // 鍙�夊弬鏁� 鍥剧墖澶у皬锛屽崟浣嶄负M锛�1M = 1024kb
+                action:'http://localhost:7070/uploading',
+                response: (res) => {
+                  console.log(res);
+                    return 'http://localhost:7070/'+res.data
+                },
+                headers: (xhr) => {
+                  // axios.defaults.withCredentials = true;
+                  // xhr.setRequestHeader('Cookie','NMTID=00OVM6QOJcTDVhqDUtvgSnd-5FBxLcAAAF9nTiDHg; JSESSIONID=5ACC52D29A2434E09450CB975E08C288')
+                },  // 鍙�夊弬鏁� 璁剧疆璇锋眰澶撮儴
+                sizeError: () => {},  // 鍥剧墖瓒呰繃澶у皬鐨勫洖璋�
+                start: () => {},  // 鍙�夊弬鏁� 鑷畾涔夊紑濮嬩笂浼犺Е鍙戜簨浠�
+                end: () => {},  // 鍙�夊弬鏁� 鑷畾涔変笂浼犵粨鏉熻Е鍙戠殑浜嬩欢锛屾棤璁烘垚鍔熸垨鑰呭け璐�
+                error: () => {},  // 鍙�夊弬鏁� 涓婁紶澶辫触瑙﹀彂鐨勪簨浠�
+                success: () => {},  // 鍙�夊弬鏁�  涓婁紶鎴愬姛瑙﹀彂鐨勪簨浠�
+                change: (xhr, formData) => {
+                // formData.append('token', 'myToken')
+                } // 鍙�夊弬鏁� 姣忔閫夋嫨鍥剧墖瑙﹀彂锛屼篃鍙敤鏉ヨ缃ご閮紝浣嗘瘮headers澶氫簡涓�涓弬鏁帮紝鍙缃甪ormData
+            },
+            toolbar:{
+                container:[
+                    ['bold', 'italic', 'underline', 'strike'],        //鍔犵矖锛屾枩浣擄紝涓嬪垝绾匡紝鍒犻櫎绾�
+                    ['blockquote', 'code-block'],         //寮曠敤锛屼唬鐮佸潡
+                    [{ 'header': 1 }, { 'header': 2 }],               // 鏍囬锛岄敭鍊煎鐨勫舰寮忥紱1銆�2琛ㄧず瀛椾綋澶у皬
+                    [{ 'list': 'ordered'}, { 'list': 'bullet' }],          //鍒楄〃
+                    [{ 'script': 'sub'}, { 'script': 'super' }],      // 涓婁笅鏍�
+                    [{ 'indent': '-1'}, { 'indent': '+1' }],          // 缂╄繘
+                    [{ 'direction': 'rtl' }],                         // 鏂囨湰鏂瑰悜
+                    [{ 'size': ['small', false, 'large', 'huge'] }],  // 瀛椾綋澶у皬
+                    [{ 'header': [1, 2, 3, 4, 5, 6, false] }],         //鍑犵骇鏍囬
+                    [{ 'color': [] }, { 'background': [] }],          // 瀛椾綋棰滆壊锛屽瓧浣撹儗鏅鑹�
+                    [{ 'font': [] }],         //瀛椾綋
+                    [{ 'align': [] }],        //瀵归綈鏂瑰紡
+                    ['clean'],        //娓呴櫎瀛椾綋鏍峰紡
+                    ['image']        //涓婁紶鍥剧墖銆佷笂浼犺棰�
+                ],
+                handlers: {
+                    'image': function () {  // 鍔寔鍘熸潵鐨勫浘鐗囩偣鍑绘寜閽簨浠�
+                        QuillWatch.emit(this.quill.id)
+                    }
+                }
+            },
+        },
       } ,  //缂栬緫鍣ㄦ柊闂诲璞�
       fileList:[],
     }
@@ -53,40 +91,34 @@
     // console.log('>>>>>>>',this.$route.query.id);
     this.newsCategoryId = this.$route.query.id
   },
+  mounted(){
+  },
   methods:{
-    // jsonData(formData){ var jsonData = {}; formData.forEach((value, key) => jsonData[key] = value); return jsonData },
-    // httpRequest(params){
-    //   const pictureFile = params.file;
-    //   const newsCategoryId = this.newsCategoryId;
-    //   const content = this.content;
-    //   const title = this.title;
-    //   const releaseTime = this.releaseTime;
-    //   var formData = new FormData();
-    //   formData.append("pictureFile",pictureFile)
-    //   formData.append("newsCategoryId",newsCategoryId)
-    //   formData.append("content",content)
-    //   formData.append("title",title)
-    //   formData.append("releaseTime",releaseTime)
-    //   console.log(this.jsonData(formData));
-    //   add(this.jsonData(formData)).then(res => {
-    //     console.log(res);
-    //     if(res.code !== 200){
-    //       return this.$message.error('鍙戝竷鏂伴椈澶辫触锛岃閲嶈瘯锛�')
-    //     }else{
-    //       this.$message.success('鏂伴椈鍙戝竷鎴愬姛锛�')
-    //       console.log(this.content);
-    //       this.$router.go(-1)
+    // chooseFile(file){
+    //   this.picture = file.target.files[0];
+    //   console.log(this.picture)
+    //   return false;
+    // },
+    // tijiao(){
+    //   const fd = new FormData()
+    //   fd.append('file',this.picture)
+    //   fileUpload(fd).then(res => {
+    //     console.log(res)
+    //     if(res.code == 200){
+    //       this.photo = res.data
+    //       console.log(this.photo);
     //     }
     //   })
     // },
     submit(){
-      // this.$refs.upload.submit();
       const data = {
         newsCategoryId:this.newsCategoryId,
         content:this.content,
         title:this.title,
         releaseTime:this.releaseTime
       }
+      console.log(this.content);
+      // console.log(this.newsCategoryId);
       add(data).then(res => {
         console.log(res);
         if(res.code !== 200){
@@ -97,7 +129,7 @@
           this.$router.go(-1)
         }
       })
-    }
+    },
   }
 }
 </script>
@@ -115,4 +147,8 @@
   bottom: 20px;
   left: 168px;
 }
+.ql-editor img{
+  width: 100px !important;
+  height: 100px !important;
+}
 </style>
\ No newline at end of file
diff --git a/src/components/Administrator/EditLunBo.vue b/src/components/Administrator/EditLunBo.vue
index 47900d7..b8ae69d 100644
--- a/src/components/Administrator/EditLunBo.vue
+++ b/src/components/Administrator/EditLunBo.vue
@@ -3,29 +3,23 @@
     <el-row><h3 style="margin-top: 0px">{{ $route.query.title }}</h3></el-row>
     鏂伴椈鏍囬锛�<el-input v-model="title" placeholder="璇疯緭鍏ユ柊闂绘爣棰�"></el-input><br/><br/>
     鍙戝竷鏃ユ湡锛�<el-date-picker  format="yyyy 骞� MM 鏈� dd 鏃�" value-format="yyyy-MM-dd" v-model="releaseTime" placeholder="璇烽�夋嫨鏂伴椈鍙戝竷鏃ユ湡"></el-date-picker><br/><br/>
-    <el-upload
-      class="upload-demo"
-      drag
-      action="http://localhost:8080//news/add"
-      :on-remove="handleRemove"
-      multiple>
-      <i class="el-icon-upload"></i>
-      <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div>
-      <div class="el-upload__tip" slot="tip">鍙兘涓婁紶jpg/png鏂囦欢锛屼笖涓嶈秴杩�500kb</div>
-    </el-upload><br/>
+    <input type="file" @change="chooseFile"/><br/><br/>
     鏂伴椈鍐呭锛�<quill-editor ref="text" v-model="content" class="myQuillEditor" :options="editorOption" />
     <el-row style="margin-top:50px;">
       <el-button  type="success" @click="submit">鍙戝竷</el-button>
     </el-row>
-    杞挱鍥�
   </div>
 </template>
 <script>
-import { add } from '../../api/api'
-import { quillEditor } from 'vue-quill-editor'
+import { add,fileUpload, login } from '../../api/api'
+import {quillEditor,Quill} from 'vue-quill-editor'
 import 'quill/dist/quill.core.css'
 import 'quill/dist/quill.snow.css'
 import 'quill/dist/quill.bubble.css'
+import { container, ImageExtend,QuillWatch } from 'quill-image-extend-module'
+Quill.register('modules/ImageExtend', ImageExtend)
+// axios.defaults.withCredentials = true;
+
 export default {
   components:{ quillEditor },
   data(){
@@ -33,17 +27,58 @@
       title:'', //鏍囬鍐呭
       releaseTime:'', //鍙戝竷鏃ユ湡
       content: '',  //鏂伴椈鍐呭
-      newsCategoryId:2,
+      newsCategoryId:45,
       editorOption: {
         placeholder: "璇疯緭鍏ユ鏂�",
-        // editorOption閲屾槸鏀惧浘鐗囦笂浼犻厤缃弬鏁扮敤鐨勶紝渚嬪锛�
-        action:  '/api/product/richtext_img_upload.do',  // 蹇呭~鍙傛暟 鍥剧墖涓婁紶鍦板潃
-        methods: 'POST',  // 蹇呭~鍙傛暟 鍥剧墖涓婁紶鏂瑰紡
-        token: '',  // 鍙�夊弬鏁� 濡傛灉闇�瑕乼oken楠岃瘉锛屽亣璁句綘鐨則oken鏈夊瓨鏀惧湪sessionStorage
-        name: 'upload_file',  // 蹇呭~鍙傛暟 鏂囦欢鐨勫弬鏁板悕
-        size: 10000000,  // 鍙�夊弬鏁�   鍥剧墖澶у皬锛屽崟浣嶄负Kb, 1M = 1024Kb
-        accept: 'multipart/form-data, image/png, image/gif, image/jpeg, image/bmp, image/x-icon,image/jpg'  // 鍙�� 鍙笂浼犵殑鍥剧墖鏍煎紡
+        modules: {
+            ImageExtend: {  // 濡傛灉涓嶄綔璁剧疆锛屽嵆{}  鍒欎緷鐒跺紑鍚鍒剁矘璐村姛鑳戒笖浠ase64鎻掑叆 
+                name: 'file',  // 鍥剧墖鍙傛暟鍚�
+                loading: true,
+                size: 10,  // 鍙�夊弬鏁� 鍥剧墖澶у皬锛屽崟浣嶄负M锛�1M = 1024kb
+                action:'http://localhost:7070/uploading',
+                response: (res) => {
+                  console.log(res);
+                    return 'http://localhost:7070/'+res.data
+                },
+                headers: (xhr) => {
+                  // axios.defaults.withCredentials = true;
+                  // xhr.setRequestHeader('Cookie','NMTID=00OVM6QOJcTDVhqDUtvgSnd-5FBxLcAAAF9nTiDHg; JSESSIONID=5ACC52D29A2434E09450CB975E08C288')
+                },  // 鍙�夊弬鏁� 璁剧疆璇锋眰澶撮儴
+                sizeError: () => {},  // 鍥剧墖瓒呰繃澶у皬鐨勫洖璋�
+                start: () => {},  // 鍙�夊弬鏁� 鑷畾涔夊紑濮嬩笂浼犺Е鍙戜簨浠�
+                end: () => {},  // 鍙�夊弬鏁� 鑷畾涔変笂浼犵粨鏉熻Е鍙戠殑浜嬩欢锛屾棤璁烘垚鍔熸垨鑰呭け璐�
+                error: () => {},  // 鍙�夊弬鏁� 涓婁紶澶辫触瑙﹀彂鐨勪簨浠�
+                success: () => {},  // 鍙�夊弬鏁�  涓婁紶鎴愬姛瑙﹀彂鐨勪簨浠�
+                change: (xhr, formData) => {
+                // formData.append('token', 'myToken')
+                } // 鍙�夊弬鏁� 姣忔閫夋嫨鍥剧墖瑙﹀彂锛屼篃鍙敤鏉ヨ缃ご閮紝浣嗘瘮headers澶氫簡涓�涓弬鏁帮紝鍙缃甪ormData
+            },
+            toolbar:{
+                container:[
+                    ['bold', 'italic', 'underline', 'strike'],        //鍔犵矖锛屾枩浣擄紝涓嬪垝绾匡紝鍒犻櫎绾�
+                    ['blockquote', 'code-block'],         //寮曠敤锛屼唬鐮佸潡
+                    [{ 'header': 1 }, { 'header': 2 }],               // 鏍囬锛岄敭鍊煎鐨勫舰寮忥紱1銆�2琛ㄧず瀛椾綋澶у皬
+                    [{ 'list': 'ordered'}, { 'list': 'bullet' }],          //鍒楄〃
+                    [{ 'script': 'sub'}, { 'script': 'super' }],      // 涓婁笅鏍�
+                    [{ 'indent': '-1'}, { 'indent': '+1' }],          // 缂╄繘
+                    [{ 'direction': 'rtl' }],                         // 鏂囨湰鏂瑰悜
+                    [{ 'size': ['small', false, 'large', 'huge'] }],  // 瀛椾綋澶у皬
+                    [{ 'header': [1, 2, 3, 4, 5, 6, false] }],         //鍑犵骇鏍囬
+                    [{ 'color': [] }, { 'background': [] }],          // 瀛椾綋棰滆壊锛屽瓧浣撹儗鏅鑹�
+                    [{ 'font': [] }],         //瀛椾綋
+                    [{ 'align': [] }],        //瀵归綈鏂瑰紡
+                    ['clean'],        //娓呴櫎瀛椾綋鏍峰紡
+                    ['image']        //涓婁紶鍥剧墖銆佷笂浼犺棰�
+                ],
+                handlers: {
+                    'image': function () {  // 鍔寔鍘熸潵鐨勫浘鐗囩偣鍑绘寜閽簨浠�
+                        QuillWatch.emit(this.quill.id)
+                    }
+                }
+            },
+        },
       } ,  //缂栬緫鍣ㄦ柊闂诲璞�
+      fileList:[],
     }
   },
   created(){
@@ -51,20 +86,26 @@
     this.newsCategoryId = this.$route.query.id
   },
   methods:{
-    handleRemove(file,fileList){
-      console.log(file,fileList);
+    chooseFile(file) {
+      this.pictureFile = file.target.files[0];
+      console.log(this.pictureFile)
+      console.log(file);
+      return false;
     },
     submit(){
+      const fd = new FormData();
+      fd.append('pictureFile',this.pictureFile);
       const data = {
         newsCategoryId:this.newsCategoryId,
         content:this.content,
-        title:this.title,
         releaseTime:this.releaseTime,
-        pictureFile:this.file,
+        title:this.title
       }
-      add(data).then(res => {
+      // console.log(999)
+      add(data,fd).then(res => {
         console.log(res);
-        if(res.code !== 200){
+        console.log(this.newsCategoryId);
+        if (res.code != 200) {
           return this.$message.error('鍙戝竷鏂伴椈澶辫触锛岃閲嶈瘯锛�')
         }else{
           this.$message.success('鏂伴椈鍙戝竷鎴愬姛锛�')
diff --git a/src/components/Administrator/Welcome.vue b/src/components/Administrator/Welcome.vue
index b46f470..8f99e0f 100644
--- a/src/components/Administrator/Welcome.vue
+++ b/src/components/Administrator/Welcome.vue
@@ -1,14 +1,74 @@
 <template>
   <div>
     <h2>娆㈣繋杩涘叆鍚庡彴绠$悊绯荤粺</h2>
+
+    <el-upload
+      ref="upload"
+      action
+      accept="image/*"
+      :limit= 3
+      :file-list='filelist'   
+      list-type="picture-card"
+      :on-preview="handlePictureCardPreview"
+      :on-remove="handleRemove"
+      :http-request='upload'>
+      <i class="el-icon-plus"></i>
+    </el-upload>
+    <el-dialog :visible.sync="dialogVisible">
+      <img width="100%" :src="dialogImageUrl" alt="">
+    </el-dialog>
+    <el-button @click="save">淇濆瓨</el-button>
   </div>
 
 </template>
 
 <script>
-
-
+import {fileUpload, update} from '../../api/api'
 export default {
+  data() {
+    return {
+      // fileList: []
+      imageUrl:'',
+      filelist:[],
+      delList:[],
+      dialogVisible:false,
+      dialogImageUrl:'',
+    }
+  },
+  methods:{
+    save(){
+      //鍙栧埌鍥剧墖闆嗗悎
+      let uploadImglist = this.$refs.upload.uploadFiles
+      console.log(uploadImglist);
+      let formData = new FormData();
+      uploadImglist.forEach(item => {
+        //ready鐘舵�佺殑鏄湭涓婁紶鐨� success鏄凡缁忎笂浼犳垚鍔熺殑锛屽彧闇�瑕佹坊鍔犳湭涓婁紶鐨勫嵆鍙�
+        if(item.status == "ready"){
+          formData.append('file', item.raw);
+        }
+      });
+      formData.get('file')
+      fileUpload(formData).then(res=>{
+        //涓婁紶鎺ュ彛
+        console.log(res);
+      })
+    },
+    // 棰勮鍥剧墖
+    handlePictureCardPreview(file){
+      this.dialogVisible = true
+      this.dialogImageUrl=file.url
+      console.log(this.dialogImageUrl);
+    },
+    // 鍒犻櫎鍥剧墖
+    handleRemove(file){
+      //鍒ゆ柇鐘舵�侊紝濡傛灉鏄笂浼犳垚鍔熺殑 闇�瑕佹妸id鍔犲埌鍒犻櫎id闆嗗悎閲岄潰
+      if(file.status == 'success'){
+        this.delList.push(file.id)
+      }
+    },
+    upload(){
+    }
+  }
 }
 </script>
 
diff --git a/src/components/Home.vue b/src/components/Home.vue
index 7bafe07..3e42a65 100644
--- a/src/components/Home.vue
+++ b/src/components/Home.vue
@@ -45,7 +45,7 @@
     // this.getNavArr();
   },
   mounted() {
-    let api3 = 'http://localhost:8080/news_type/all'
+    let api3 = 'http://localhost:7070/news_type/all'
     axios.get(api3).then((res)=>{
       // console.log(res);
       this.menuList2 = res.data.data
diff --git a/src/components/page/News.vue b/src/components/page/News.vue
index 3d576af..2914833 100644
--- a/src/components/page/News.vue
+++ b/src/components/page/News.vue
@@ -3,10 +3,10 @@
     <!-- <p>{{ this.$route.query.id }}</p> -->
     <div class="header">
       <h2>{{ title }}</h2>
-      <p>鍙戝竷鏃ユ湡锛歿{ releaseTime }} 鐐瑰嚮閲忥細[ {{hits}} ]</p>
+      <p>鍙戝竷鏃ユ湡锛歿{ releaseTime }} 鐐瑰嚮閲忥細[ {{(hits+1)/2}} ]</p>
     </div>
     <hr>
-    <div v-html="content"></div>
+    <div v-html="content" class="ql-editor"></div>
   </div>
 </template>
 <script>
@@ -54,4 +54,11 @@
   height: 35px;
   line-height: 35px;
 }
+.ql-editor{
+  padding: 12px 0px !important;
+}
+.ql-editor img{
+  width: 600px;
+  height: 400px;
+}
 </style>
\ No newline at end of file
diff --git a/src/components/page/index.vue b/src/components/page/index.vue
index 506c2ad..789723f 100644
--- a/src/components/page/index.vue
+++ b/src/components/page/index.vue
@@ -3,10 +3,10 @@
     <!-- 棣栭〉涓婂崐閮ㄥ垎 -->
     <el-row type="flex" class="row-bg" justify="space-between">
         <div class="block marr10">
-          <el-carousel height="460px"  arrow="always" :interval="3000">
+          <el-carousel height="450px"  arrow="always" :interval="3000">
             <el-carousel-item v-for="(item,index) in imgList" :key="index">
-              <div @click="gonew(item.id)" class="cursor">
-                <img :src="'http://localhost:8080/'+item.picturePath"  alt="" style="width:105%;">
+              <div @click="gonew(item.id)" class="cursor" style="width:590px; height:450px">
+                <img :src="'http://localhost:7070/'+item.picturePath"  alt="" style="width:100%; height:90%">
               </div>
             </el-carousel-item>
           </el-carousel>
diff --git a/src/components/page/introduce.vue b/src/components/page/introduce.vue
index 631982e..41641c1 100644
--- a/src/components/page/introduce.vue
+++ b/src/components/page/introduce.vue
@@ -15,7 +15,7 @@
        <!-- 鏂伴椈鍐呭 -->
       <el-card class="box-card">
         <el-col>
-          <div v-html="this.new.content"></div>
+          <div v-html="this.new.content" class="ql-editor"></div>
         </el-col>
       </el-card>
     </el-row>
@@ -116,4 +116,7 @@
 .ft-black {
   color: #000;
 }
+.ql-editor{
+  padding: 12px 0px !important;
+}
 </style>
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index ba50c0f..801199f 100644
--- a/src/main.js
+++ b/src/main.js
@@ -13,7 +13,7 @@
 // 閰嶇疆璇锋眰鐨勮窡璺緞
 // axios.defaults.baseURL = 'http://8.140.68.52:8181'
 // axios.defaults.baseURL = 'http://127.0.0.1:8888/api/private/v1'
-axios.defaults.baseURL = 'http://localhost:8080/'
+axios.defaults.baseURL = 'http://localhost:7070/'
 axios.defaults.withCredentials = true;
 axios.interceptors.request.use(config => {
   // console.log(config)
diff --git a/src/utils/request.js b/src/utils/request.js
index dbffe70..ee13a3f 100644
--- a/src/utils/request.js
+++ b/src/utils/request.js
@@ -1,9 +1,10 @@
 //瀵筧xios鐨勫皝瑁�
 import axios from 'axios'
-let is_baseURL = 'http://localhost:8080/'//娴嬭瘯鐜
+let is_baseURL = 'http://localhost:7070/'//娴嬭瘯鐜
 //鍒涘缓axios瀹炰緥
 const request = axios.create({
-  baseURL: is_baseURL
+  baseURL: is_baseURL,
+  headers:{'Content-Type':'application/x-www-form-urlencoded'}
 })
 //response鏈嶅姟鍣ㄥ搷搴旀嫤鎴櫒
 request.interceptors.response.use(

--
Gitblit v1.8.0