From 6bcd135673be57b00ea68e58f1ae6aef2ac19e21 Mon Sep 17 00:00:00 2001
From: inleft <inleft@qq.com>
Date: Thu, 17 Feb 2022 18:30:05 +0800
Subject: [PATCH] 友链接口对接

---
 src/components/mini/box-friend.vue         |   49 +++++--
 src/api/fileManage.js                      |   47 +++++++
 src/components/mini/box10-add.vue          |  162 +++++++++++++++++++++-----
 src/components/group/boxRight.vue          |    4 
 src/components/swichLabel/main1-show.vue   |   27 +++-
 src/components/swichLabel/main4-show.vue   |    4 
 src/api/blogLink.js                        |   22 +++
 src/components/group/articleListScorll.vue |    2 
 src/components/layouts/baseLayout.vue      |    6 
 9 files changed, 261 insertions(+), 62 deletions(-)

diff --git a/src/api/blogLink.js b/src/api/blogLink.js
new file mode 100644
index 0000000..37d5136
--- /dev/null
+++ b/src/api/blogLink.js
@@ -0,0 +1,22 @@
+/**
+ * 系统应用
+ *
+ * @author yubaoshan
+ * @date 2020年4月23日12:10:57
+ */
+import {
+	axios
+} from '../utils/request.js'
+
+
+/**
+ * 查询blog友链列表
+ *
+ */
+export function queryBlogLinkGroup(parameter) {
+	return axios({
+		url: '/outside/blogLink/queryBlogLinkGroup',
+		method: 'get',
+		params: parameter
+	})
+}
diff --git a/src/api/fileManage.js b/src/api/fileManage.js
new file mode 100644
index 0000000..0875988
--- /dev/null
+++ b/src/api/fileManage.js
@@ -0,0 +1,47 @@
+import { axios } from '@/utils/request'
+ 
+
+/**
+ * 上传文件
+ *
+ * @author yubaoshan
+ * @date 2020/6/30 00:20
+ */
+export function sysFileInfoUpload (parameter) {
+  return axios({
+    url: '/sysFileInfo/upload',
+    method: 'post',
+    data: parameter
+  })
+}
+
+/**
+ * 下载文件
+ *
+ * @author yubaoshan
+ * @date 2020/6/30 00:20
+ */
+export function sysFileInfoDownload (parameter) {
+  return axios({
+    url: '/sysFileInfo/download',
+    method: 'get',
+    params: parameter,
+    responseType: 'blob'
+  })
+}
+
+/**
+ * 查看图片
+ *
+ * @author yubaoshan
+ * @date 2020/6/30 00:20
+ */
+export function sysFileInfoPreview (parameter) {
+  return axios({
+    url: '/sysFileInfo/preview',
+    method: 'get',
+    params: parameter,
+    responseType: 'arraybuffer'
+  })
+}
+ 
diff --git a/src/components/group/articleListScorll.vue b/src/components/group/articleListScorll.vue
index 9de3547..6d83f3d 100644
--- a/src/components/group/articleListScorll.vue
+++ b/src/components/group/articleListScorll.vue
@@ -109,7 +109,7 @@
 					this.data = this.data.concat(res.data.records);
 					this.busy = false;
 					if (res.data.records.length == 0) {
-						this.$message.warning('没有更多了');
+						this.$message.warning('别滑了,别滑了,到底了..');
 						this.busy = true;
 						this.loading = false;
 						return;
diff --git a/src/components/group/boxRight.vue b/src/components/group/boxRight.vue
index f07fbd3..2806d55 100644
--- a/src/components/group/boxRight.vue
+++ b/src/components/group/boxRight.vue
@@ -9,11 +9,11 @@
 		<div class="blog-cell  ">
 			<box4 v-bind="vo2"></box4>
 		</div> -->
-		<div class="blog-cell ">
+		<!-- <div class="blog-cell ">
 			<box4 v-bind="vo3"></box4>
 			<div class="blog-right-side-exchange">
 			</div>
-		</div>
+		</div> -->
 
 	</div>
 </template>
diff --git a/src/components/layouts/baseLayout.vue b/src/components/layouts/baseLayout.vue
index 88e4f70..55dbd69 100644
--- a/src/components/layouts/baseLayout.vue
+++ b/src/components/layouts/baseLayout.vue
@@ -5,8 +5,10 @@
 			<tag-Header />
 		</a-layout-header>
 
-		<router-view></router-view>
-
+		<keep-alive>
+			<router-view></router-view>
+		</keep-alive>
+		
 		<a-layout-footer>
 			<AplayerBox />
 			<tagFooter />
diff --git a/src/components/mini/box-friend.vue b/src/components/mini/box-friend.vue
index a5a5805..c570349 100644
--- a/src/components/mini/box-friend.vue
+++ b/src/components/mini/box-friend.vue
@@ -1,25 +1,44 @@
 <template>
 	<div class="myFriend">
-		<h1>朋友们</h1>
-		<hr>
-		<div class="link-box">
-			<!-- <a href="#" target="_blank" class="no-underline"> -->
-			<a href="#" class="no-underline" v-for="temp in [1,2,1,1,1,1,1,1,1]">
-				<div class="thumb">
-					<img width="200" height="200" src="https://cdn.jsdelivr.net/gh/Musenxi/CDN/长野.jpg" alt="长野 の BLOG">
-				</div>
-				<div class="content">
-					<p class="title">
-						长野 の BLOG
-					</p>
-				</div>
-			</a>
+		<div v-for="temp in list">
+			<h1>{{temp.groupName}}</h1>
+			<hr>
+			<div class="link-box"  >
+				<!-- <a href="#" target="_blank" class="no-underline"> -->
+				<a :href="listTemp.url" target="_blank" class="no-underline" v-for="listTemp in temp.linkVoList">
+					<div class="thumb">
+						<img width="200" height="200" 
+						 :src="listTemp.avatar" :onerror="img404" 
+							:alt="listTemp.name">
+					</div>
+					<div class="content">
+						<p class="title">
+							{{listTemp.name}}
+						</p>
+					</div>
+				</a>
+			</div>
 		</div>
 	</div>
 </template>
 
 <script>
-	export default {}
+	import {
+		queryBlogLinkGroup
+	} from '../../api/blogLink.js'
+	export default {
+		created() {
+			queryBlogLinkGroup().then((res) => {
+				this.list = res.data;
+			})
+		},
+		data() {
+			return {
+				img404:"this.onerror='';this.src=\"https://blog.zeruns.tech/tx.jpg\"",
+				list: []
+			}
+		}
+	}
 </script>
 
 </script>
diff --git a/src/components/mini/box10-add.vue b/src/components/mini/box10-add.vue
index 8a2ca36..c51dcde 100644
--- a/src/components/mini/box10-add.vue
+++ b/src/components/mini/box10-add.vue
@@ -1,6 +1,12 @@
 <template>
 	<div>
 		<a-form-model ref="myForm" :model="form" :label-col="labelCol" :wrapper-col="wrapperCol" :rules="rules">
+			<a-form-model-item label="认证" prop="secret">
+				<a-input v-model="form.secret" autocomplete='new-password' type="password" placeholder="口令">
+					<a-icon slot="prefix" type="lock" style="color:rgba(0,0,0,.25)" />
+				</a-input>
+			</a-form-model-item>
+
 			<a-form-model-item label="标题" prop="title">
 				<a-input v-model="form.title" placeholder="限 50字内" />
 			</a-form-model-item>
@@ -13,11 +19,21 @@
 			</a-form-model-item>
 
 
-			<a-form-model-item label="日志文件" v-show="!form.online" prop="blogFileList">
-				<a-upload action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
+			<a-form-model-item label="日志文件" v-show="!form.online">
+				<!-- <a-upload action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
 					:default-file-list="form.blogFileList">
 					<a-button>
 						<a-icon type="upload" /> 限 markdown/html
+					</a-button>
+				</a-upload> -->
+
+				<a-upload :customRequest="customRequest" name="file" :showUploadList="true" @change="handleChange"
+					:default-file-list="form.blogFileList" 
+					:beforeUpload="beforeUpload"
+					>
+
+					<a-button>
+						<a-icon type="upload" />限 markdown/html
 					</a-button>
 				</a-upload>
 			</a-form-model-item>
@@ -27,17 +43,13 @@
 			</a-form-model-item>
 
 			<a-form-model-item label="分类" prop="class">
-				<a-select v-model="form.class" :allowClear="true" mode="multiple" placeholder="多选(至少一个)"
+				<a-select v-model="form.class" :allowClear="true" mode="default" placeholder="日志分类"
 					:getPopupContainer="getCalendarContainer()">
-					<a-select-option value="shanghai">
-						Zone one
+
+					<a-select-option v-for="(item,index) in this.blogArticleType" :key="index" :value="item.id">
+						{{ item.typeName }}
 					</a-select-option>
-					<a-select-option value="beijing">
-						Zone two
-					</a-select-option>
-					<a-select-option value="beijing2">
-						Zone two
-					</a-select-option>
+
 				</a-select>
 			</a-form-model-item>
 
@@ -89,15 +101,22 @@
 
 
 				<a-form-model-item label="封面">
-					<a-upload action="https://www.mocky.io/v2/5cc8019d300000980a055e76" list-type="picture"
+					<!-- <a-upload action="https://www.mocky.io/v2/5cc8019d300000980a055e76" list-type="picture"
 						:default-file-list="form.coverFileList" class="upload-list-inline">
 						<a-button>
 							<a-icon type="upload" /> jpg/png/jpeg..
 						</a-button>
+					</a-upload> -->
+
+					<a-upload :customRequest="customRequest" name="file" :showUploadList="true" list-type="picture"
+						:default-file-list="form.coverFileList">
+						<a-button>
+							<a-icon type="upload" />jpg/png/jpeg..
+						</a-button>
 					</a-upload>
-					<span class="myTip">
+					<!-- <span class="myTip">
 						自动转码,可以传高清图
-					</span>
+					</span> -->
 				</a-form-model-item>
 
 				<a-form-model-item label="定时">
@@ -106,14 +125,21 @@
 						:getCalendarContainer="getCalendarContainer()" />
 				</a-form-model-item>
 
-				<a-form-model-item label="置顶权重">
-					<a-slider v-model="form.sliderValue" :default-value="20" :step="5"
-						:getTooltipPopupContainer="getCalendarContainer()" />
-					<span class="myTip">
-						越小越靠前
-					</span>
-				</a-form-model-item>
+				<div v-bind:class="{'myBorder':form.top}" style="padding: 3px;">
+					<a-form-model-item label="置顶">
+						<a-switch v-model="form.top" />
+					</a-form-model-item>
 
+					<div v-show="form.top">
+						<a-form-model-item label="权重">
+							<a-slider v-model="form.sliderValue" :default-value="80" :step="5"
+								:getTooltipPopupContainer="getCalendarContainer()" />
+							<span class="myTip">
+								越小越靠前
+							</span>
+						</a-form-model-item>
+					</div>
+				</div>
 
 
 				<div v-bind:class="{'myBorder':form.lock}" style="padding: 3px;">
@@ -138,7 +164,8 @@
 						</a-form-model-item>
 
 						<a-form-model-item label="授权密码" v-show="form.auth=='password'">
-							<a-input v-model="form.password" type="password" placeholder="独立密码">
+							<a-input v-model="form.password" autocomplete='new-password' type="password"
+								placeholder="独立密码">
 								<a-icon slot="prefix" type="lock" style="color:rgba(0,0,0,.25)" />
 							</a-input>
 						</a-form-model-item>
@@ -154,7 +181,18 @@
 
 <script>
 	import moment from "moment";
+	import {
+		sysFileInfoUpload
+	} from '../../api/fileManage.js';
+	import {
+		queryBlogArticleType
+	} from '../../api/blogArticleType.js'
 	export default {
+		beforeMount() {
+			queryBlogArticleType({}).then((res) => {
+				this.blogArticleType = res.data;
+			})
+		},
 		data() {
 
 			let validateContent = (rule, value, callback) => {
@@ -169,17 +207,17 @@
 			};
 
 			return {
-
-				blogFileList: [],
-				coverFileList: [
-					// {
-					// uid: '-1',
-					// name: 'xxx.png',
-					// status: 'done',
-					// url: 'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png',
-					// thumbUrl: 'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png',
-					// } 
-				],
+				blogArticleType: [],
+				// blogFileList: [],
+				// coverFileList: [
+				// 	// {
+				// 	// uid: '-1',
+				// 	// name: 'xxx.png',
+				// 	// status: 'done',
+				// 	// url: 'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png',
+				// 	// thumbUrl: 'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png',
+				// 	// } 
+				// ],
 				tags: [],
 				inputVisible: false,
 				inputValue: '',
@@ -190,6 +228,7 @@
 					span: 13
 				},
 				form: {
+					secret: '',
 					online: false,
 					preference: false,
 					title: '',
@@ -199,6 +238,7 @@
 					blogType: "Markdown",
 					publishDate: "",
 					lock: false,
+					top: false,
 					auth: "private",
 					password: "",
 					blogFileList: [],
@@ -217,6 +257,11 @@
 							trigger: 'blur'
 						},
 					],
+					secret: [{
+						required: true,
+						message: '不正经的人..',
+						trigger: 'blur'
+					}],
 					common: [{
 						validator: validateContent,
 						trigger: []
@@ -228,7 +273,7 @@
 						trigger: 'blur'
 					}, ],
 					blogFileList: [{
-						min: 1,
+						max: 1,
 						required: true,
 						message: '文件未上传',
 					}],
@@ -267,6 +312,55 @@
 			};
 		},
 		methods: {
+			beforeUpload(file, fileList) {
+				console.log(333);
+				console.log(this.blogFileList);
+				return new Promise((resolve, reject) => {
+					if(fileList.length>=2){
+						this.$message.error('这里最多上传一个文件');
+						return reject(false);
+					}
+				    // var testmsg=/^image\/(jpeg|png|jpg)$/.test(file.type)
+				    // // var testmsg=/^image\/(md|html|markdown)$/.test(file.type)
+				    // if (!testmsg) {
+				    //   this.$message.error('上传文件格式不对!');
+				    //   return reject(false);
+				    // }
+					
+				    const isLt2M = file.size / 1024 / 1024 <=2//图片大小不超过2MB
+				    if(!isLt2M) {
+				      this.$message.error('上传文件大小不能超过 2M!');
+				      return reject(false);
+				    }
+				    return resolve(true)
+				  });
+				
+			},
+			handleChange(info) {
+				if (info.file.status !== 'uploading') {
+					console.log(info.file, info.fileList);
+				}
+				if (info.file.status === 'done') {
+					this.$message.success(`${info.file.name} file uploaded successfully`);
+				} else if (info.file.status === 'error') {
+					this.$message.error(`${info.file.name} file upload failed.`);
+				}
+			},
+			/**
+			 * 上传文件
+			 */
+			customRequest(option) {
+				const formData = new FormData()
+				formData.append('file', option.file)
+				sysFileInfoUpload(formData).then((res) => {
+					if (res.success) {
+						this.$message.success('上传成功')
+						option.onSuccess(res, option.file)
+					} else {
+						this.$message.error('上传失败:' + res.message)
+					}
+				})
+			},
 			disabledDate(current) {
 				return current < moment().subtract(1, "day");
 			},
diff --git a/src/components/swichLabel/main1-show.vue b/src/components/swichLabel/main1-show.vue
index 45172ae..3bcd6f6 100644
--- a/src/components/swichLabel/main1-show.vue
+++ b/src/components/swichLabel/main1-show.vue
@@ -15,10 +15,12 @@
 		<div class="blog-main">
 
 			<a-row>
-				<a-col v-bind="colApiLeft">
-					<boxLeft></boxLeft>
-					<boxRight></boxRight>
-				</a-col>
+				<keep-alive>
+					<a-col v-bind="colApiLeft">
+						<boxLeft></boxLeft>
+						<boxRight></boxRight>
+					</a-col>
+				</keep-alive>
 
 				<a-col v-bind="colApiMain ">
 					<a-col v-bind="colMini" :style="{'position':'absolute','right':'30px'}">
@@ -28,8 +30,9 @@
 							</a-button>
 						</a-affix>
 					</a-col>
-
-					<router-view class="fade"></router-view>
+					<keep-alive>
+						<router-view class="fade"></router-view>
+					</keep-alive>
 				</a-col>
 
 				<a-col v-bind="colApiRight" ref="myDrawer">
@@ -165,7 +168,17 @@
 		src: url("https://unpkg.zhimg.com/fontawepro@latest/fonts/hytmr55.woff") format("truetype");
 	}
 
-	span,p,a,body,h1,h2,h3,h4,h5,h6,code {
+	span,
+	p,
+	a,
+	body,
+	h1,
+	h2,
+	h3,
+	h4,
+	h5,
+	h6,
+	code {
 		font-family: HYTangMeiRen !important;
 	}
 
diff --git a/src/components/swichLabel/main4-show.vue b/src/components/swichLabel/main4-show.vue
index a56705d..1150902 100644
--- a/src/components/swichLabel/main4-show.vue
+++ b/src/components/swichLabel/main4-show.vue
@@ -3,7 +3,9 @@
 		<a-row>
 			<a-col v-bind="colApiMain " class="holdHeight">
 				<a-page-header title="朋友们" style="padding: 0px;" @back="() => this.$router.go(-1)" />
-				<boxFriend></boxFriend>
+				<keep-alive>
+					<boxFriend></boxFriend>
+				</keep-alive>
 			</a-col>
 		</a-row>
 	</div>

--
Gitblit v1.9.1