瀏覽代碼

update: 移除node_modules依赖

小莫唐尼 1 年之前
父節點
當前提交
d22224e2fc

+ 0 - 207
components/attachment-select/attachment-select.vue

@@ -1,207 +0,0 @@
-<template>
-	<tm-poup v-model="show" position="bottom" height="auto" @change="fnClose">
-		<view class="poup-head pa-24 text-align-center text-weight-b ">{{ title }}</view>
-		<view class="poup-body pa-24 pt-0 pb-0">
-			<view v-if="loading != 'success'" class="loading-wrap flex flex-center">
-				<view v-if="loading == 'loading'" class="loading">加载中...</view>
-				<view v-else class="error" @click="fnGetData()">加载失败,点击刷新!</view>
-			</view>
-			<block v-else>
-				<view v-if="total == 0" class="empty">无附件</view>
-				<scroll-view v-else class="poup-content" :enable-flex="true" :scroll-y="true" @touchmove.stop>
-					<view class="card-content">
-						<view class="card pa-12" v-for="(file, index) in dataList" :key="index" @click="fnOnSelect(file, index)">
-							<view class="card-inner round-3" :class="{ 'is-select': selectIndex == index }">
-								<cache-image v-if="file.isImage" class="cover" height="160rpx" :url="file.thumbPath" :fileMd5="file.thumbPath" mode="aspectFill"></cache-image>
-								<view v-else class="cover flex pl-46 pr-46 flex-center bg-gradient-blue-grey-accent text-align-center text-size-m">{{ file.mediaType }}</view>
-
-								<view class="name text-overflow text-size-m pa-12">{{ file.name }}</view>
-							</view>
-						</view>
-					</view>
-				</scroll-view>
-			</block>
-		</view>
-		<view class="poup-foot pa-30 pb-12 pt-0">
-			<!-- 分页 -->
-			<view v-if="total > queryParams.size" class="mt-36 pl-24 pr-24">
-				<tm-pagination color="bg-gradient-blue-accent" :page.sync="queryParams.page" :total="total" :totalVisible="5" @change="fnGetPagingData"></tm-pagination>
-			</view>
-			<view class=" flex flex-center mt-12">
-				<tm-button size="m" theme="bg-gradient-blue-accent" @click="fnSava()">确定选用</tm-button>
-				<tm-button size="m" theme="bg-gradient-orange-accent" @click="fnUpload()">上传</tm-button>
-				<tm-button size="m" theme="bg-gradient-blue-grey-accent" @click="fnClose(false)">关 闭</tm-button>
-			</view>
-		</view>
-	</tm-poup>
-</template>
-
-<script>
-import { getAdminAccessToken } from '@/utils/auth.js';
-
-import tmPoup from '@/tm-vuetify/components/tm-poup/tm-poup.vue';
-import tmPagination from '@/tm-vuetify/components/tm-pagination/tm-pagination.vue';
-import tmButton from '@/tm-vuetify/components/tm-button/tm-button.vue';
-export default {
-	name: 'attachment-select',
-	components: { tmPoup, tmPagination, tmButton },
-	props: {
-		title: {
-			type: String,
-			default: '附件列表'
-		},
-		selectType: {
-			type: String,
-			default: ''
-		}
-	},
-	data() {
-		return {
-			show: true,
-			loading: 'loading',
-			total: 0,
-			queryParams: {
-				size: 6,
-				page: 1
-			},
-			dataList: [],
-			select: null,
-			selectIndex: -1
-		};
-	},
-	created() {
-		this.fnGetData();
-	},
-	methods: {
-		fnGetData() {
-			this.queryParams.page = 1;
-			this.fnGetPagingData(1);
-		},
-		fnGetPagingData(page) {
-			this.loading = 'loading';
-			const _params = {
-				...this.queryParams
-			};
-			_params.page = page - 1;
-			this.$httpApi.admin
-				.getAttachmentsByPage(_params)
-				.then(res => {
-					if (res.status == 200) {
-						this.total = res.data.total;
-						this.dataList = res.data.content.map(file => {
-							if (this.$utils.fnCheckIsFileType('image', file) && file.size / 1024 / 1024 > 2) {
-								file.isImage = false;
-								file.desc = '图片过大无法显示缩略图';
-							} else {
-								file.isImage = this.$utils.fnCheckIsFileType('image', file);
-							}
-							file.thumbPath = this.$utils.checkThumbnailUrl(file.thumbPath);
-							return file;
-						});
-						this.loading = 'success';
-					} else {
-						uni.$tm.toast('加载失败,请重试!');
-						this.loading = 'error';
-					}
-				})
-				.catch(err => {
-					console.error(err);
-					uni.$tm.toast('加载失败,请重试!');
-					this.loading = 'error';
-				});
-		},
-		fnOnSelect(file, index) {
-			this.select = file;
-			this.selectIndex = index;
-		},
-		fnSava() {
-			if (this.selectType) {
-				if (this.$utils.fnCheckIsFileType(this.selectType, this.select)) {
-					this.$emit('on-select', this.select);
-				} else {
-					uni.$tm.toast('该附件类型不符合!');
-				}
-			} else {
-				this.$emit('on-select', this.select);
-			}
-		},
-		fnClose(e) {
-			if (!e) {
-				this.$emit('on-close');
-			}
-		},
-		fnUpload() {
-			uni.chooseImage({
-				count: 1,
-				success: res => {
-					uni.uploadFile({
-						filePath: res.tempFilePaths[0],
-						header: {
-							'admin-authorization': getAdminAccessToken()
-						},
-						url: this.$baseApiUrl + '/api/admin/attachments/upload',
-						name: 'file',
-						success: upladRes => {
-							const _uploadRes = JSON.parse(upladRes.data);
-							if (_uploadRes.status == 200) {
-								uni.$tm.toast('上传成功!');
-								this.fnGetData(1);
-							} else {
-								uni.$tm.toast(_uploadRes.message);
-							}
-						},
-						fail: err => {
-							uni.$tm.toast(err.message);
-						}
-					});
-				}
-			});
-		}
-	}
-};
-</script>
-
-<style scoped lang="scss">
-.poup-head {
-}
-.poup-body {
-	height: 50vh;
-}
-.loading-wrap {
-	height: 50vh;
-	background-color: #fafafa;
-}
-.poup-content {
-	height: inherit;
-	box-sizing: border-box;
-	.card-content {
-		height: inherit;
-		display: flex;
-		flex-wrap: wrap;
-	}
-}
-.card {
-	width: 50%;
-	box-sizing: border-box;
-	&-inner {
-		box-sizing: border-box;
-		overflow: hidden;
-		box-shadow: 0rpx 4rpx 24rpx rgba(0, 0, 0, 0.05);
-		border: 4rpx solid transparent;
-		&.is-select {
-			border-color: rgb(13, 141, 242);
-		}
-	}
-	.cover {
-		width: 100%;
-		height: 160rpx;
-		flex-wrap: wrap;
-		box-sizing: border-box;
-	}
-	.name {
-		color: #303133;
-		box-sizing: border-box;
-		text-align: center;
-	}
-}
-</style>

+ 0 - 194
components/bottom-tool-bar/bottom-tool-bar.vue

@@ -1,194 +0,0 @@
-<template>
-	<view class="bottom-tool-bar">
-		<tm-translate :auto="true" animation-name="fadeUp">
-			<view class="content flex">
-				<view class="input" @click="fnToComment()">
-					<text class="icon iconfont icon-edit"></text>
-					<text class="text">(*^▽^*)说点啥吧~</text>
-				</view>
-				<view class="right flex">
-					<!-- 点赞 -->
-					<view class="item likes" @click="fnDoLikes()">
-						<view class="iconfont icon-like"></view>
-						<view class="text">{{ tempPost.likes }}</view>
-					</view>
-					<!-- 评论 -->
-					<view class="item comment">
-						<view class="iconfont icon-comment-dots"></view>
-						<view class="text">{{ tempPost.commentCount }}</view>
-					</view>
-					<!-- 分享 -->
-					<view class="item share" @click="fnOnShare()"><text class="iconfont icon-share1"></text></view>
-				</view>
-			</view>
-		</tm-translate>
-
-		<tm-shareSheet @change="fnOnShareChange" :actions="share.list" title="分享文章" v-model="share.show"></tm-shareSheet>
-	</view>
-</template>
-
-<script>
-import tmTranslate from '@/tm-vuetify/components/tm-translate/tm-translate.vue';
-import tmShareSheet from '@/tm-vuetify/components/tm-shareSheet/tm-shareSheet.vue';
-export default {
-	name: 'bottom-tool-bar',
-	components: {
-		tmTranslate,
-		tmShareSheet
-	},
-	props: {
-		// 文章数据
-		post: {
-			type: Object,
-			default: () => {}
-		},
-		// 其他参数
-		params: {
-			type: Object,
-			default: () => {}
-		}
-	},
-	data() {
-		return {
-			share: {
-				show: false,
-				list: [
-					[
-						{ name: '微信好友', bgcolor: '#07c160', icon: 'icon-weixin', color: 'white' },
-						{ name: '朋友圈', bgcolor: '#04c887', icon: 'icon-pengyouquan', color: 'white' },
-						{ name: '生成海报', bgcolor: '#1dc0fd', icon: 'icon-QQ', color: 'white' }
-					]
-				]
-			},
-			tempPost: {}
-		};
-	},
-	watch: {
-		post: {
-			deep: true,
-			handler(val) {
-				console.log('watch', val);
-				this.tempPost = this.$utils.deepClone(val);
-			}
-		}
-	},
-	created() {
-		console.log(this.post);
-		this.tempPost = this.$utils.deepClone(this.post);
-		console.log(this.tempPost);
-	},
-	methods: {
-		fnToComment() {
-			this.$Router.push({
-				path: '/pagesA/comment/comment',
-				query: {
-					postId: this.post.id,
-					parentId: 0,
-					title: this.post.title,
-					formPage: 'comment_list',
-					type: 'post'
-				}
-			});
-		},
-		fnDoLikes() {
-			this.$httpApi
-				.postLikePost(this.post.id)
-				.then(res => {
-					if (res.status == 200) {
-						uni.showToast({
-							icon: 'none',
-							title: '点赞成功'
-						});
-						this.tempPost.likes += 1;
-					} else {
-						uni.showToast({
-							icon: 'none',
-							title: res.message
-						});
-					}
-				})
-				.catch(err => {
-					console.log(err);
-					uni.showToast({
-						icon: 'none',
-						title: err.message
-					});
-				});
-		},
-		fnOnShare() {
-			// this.$emit('on-share');
-			this.share.show = true;
-		},
-		fnOnShareChange(e) {
-			console.log(e);
-		}
-	}
-};
-</script>
-
-<style scoped lang="scss">
-.bottom-tool-bar {
-	width: 100vw;
-	position: fixed;
-	left: 0;
-	bottom: 0;
-	z-index: 401;
-
-	::v-deep {
-		.tm-shareSheet-wk .uni-scroll-view-content {
-			display: flex;
-			align-items: center;
-			justify-content: center;
-		}
-	}
-	.content {
-		width: 100%;
-		justify-content: space-between;
-		box-sizing: border-box;
-		padding: 24rpx;
-		background-color: #ffffff;
-		box-shadow: 0rpx -4rpx 24rpx rgba(0, 0, 0, 0.07);
-		border-radius: 24rpx 24rpx 0 0;
-		.input {
-			width: 280rpx;
-			padding: 12rpx 24rpx;
-			background-color: #f5f5f5;
-			border-radius: 60rpx;
-			font-size: 24rpx;
-			color: #666;
-			.icon {
-			}
-			.text {
-				padding-left: 8rpx;
-			}
-		}
-
-		.right {
-			width: 0;
-			flex-grow: 1;
-			align-items: center;
-			justify-content: space-between;
-			padding-left: 24rpx;
-			.item {
-				margin-left: 24rpx;
-				text-align: center;
-				display: flex;
-				align-items: center;
-				&.share {
-					.iconfont {
-						font-size: 36rpx;
-					}
-				}
-				.iconfont {
-					font-size: 36rpx;
-					color: #333;
-				}
-				.text {
-					padding-left: 6rpx;
-					font-size: 32rpx;
-				}
-			}
-		}
-	}
-}
-</style>

+ 0 - 159
components/journal-card/journal-card.vue

@@ -1,159 +0,0 @@
-<template>
-	<view class="journal-card mb-24  round-3 bg-white ">
-		<view class="head pa-24 pb-0 flex flex-between">
-			<view class="left flex">
-				<cache-image class="avatar rounded" radius="50%" width="70rpx" height="70rpx" :url="bloggerInfo.avatar"
-					:fileMd5="bloggerInfo.avatar" mode="scaleToFill"></cache-image>
-				<view class="info pl-16 flex flex-col">
-					<view class="nickname text-weight-b text-grey-darken-4">{{ bloggerInfo.nickname }}</view>
-					<view class="mt-3 time text-size-m ">
-						{{ $tm.dayjs(journal.createTime).format('YYYY-MM-DD HH:mm:ss') }}</view>
-				</view>
-			</view>
-			<view class="right">
-				<tm-button v-if="useLike" :shadow="0" theme="light-blue" size="s"
-					@click="fnLike(journal)">点赞({{ journal.likes }})</tm-button>
-				<tm-button v-if="useEdit" :shadow="0" theme="light-blue" size="s"
-					@click="$emit('on-edit', journal)">编辑</tm-button>
-				<tm-button v-if="useDel" :shadow="0" theme="red" size="s" @click="fnDel(journal)">删除</tm-button>
-			</view>
-		</view>
-		<tm-more v-if="journal.content.length > 50" :maxHeight="100" label="查看全部内容" open-label="隐藏部分内容">
-			<mp-html class="evan-markdown" lazy-load :domain="markdownConfig.domain"
-				:loading-img="markdownConfig.loadingGif" :scroll-table="true" :selectable="true"
-				:tag-style="markdownConfig.tagStyle" :container-style="markdownConfig.containStyle"
-				:content="journal.content" :markdown="true" :showLineNumber="true" :showLanguageName="true"
-				:copyByLongPress="true" />
-		</tm-more>
-		<mp-html v-else class="evan-markdown" lazy-load :domain="markdownConfig.domain"
-			:loading-img="markdownConfig.loadingGif" :scroll-table="true" :selectable="true"
-			:tag-style="markdownConfig.tagStyle" :container-style="markdownConfig.containStyle"
-			:content="journal.content" :markdown="true" :showLineNumber="true" :showLanguageName="true"
-			:copyByLongPress="true" />
-	</view>
-</template>
-
-<script>
-	import MarkdownConfig from '@/common/markdown/markdown.config.js';
-	import mpHtml from '@/components/mp-html/components/mp-html/mp-html.vue';
-	import tmButton from '@/tm-vuetify/components/tm-button/tm-button.vue';
-	import tmMore from '@/tm-vuetify/components/tm-more/tm-more.vue';
-	export default {
-		name: 'journal-card',
-		components: {
-			mpHtml,
-			tmButton,
-			tmMore
-		},
-		props: {
-			isAdmin: {
-				type: Boolean,
-				default: false
-			},
-			journal: {
-				type: Object,
-				default: () => {}
-			},
-			useLike: {
-				type: Boolean,
-				default: false
-			},
-			useEdit: {
-				type: Boolean,
-				default: false
-			},
-			useDel: {
-				type: Boolean,
-				default: false
-			}
-		},
-		data() {
-			return {
-				markdownConfig: MarkdownConfig
-			};
-		},
-		computed: {
-			bloggerInfo() {
-				let blogger = this.$tm.vx.getters().getConfigs.authorConfig.blogger;
-				blogger.avatar = this.$utils.checkAvatarUrl(blogger.avatar, true);
-				return blogger;
-			},
-		},
-		methods: {
-			fnLike(journal) {
-				uni.showLoading({
-					mask: true,
-					title: '正在点赞中...'
-				});
-				this.$httpApi
-					.postJournalLikes(journal.id)
-					.then(res => {
-						if (res.status == 200) {
-							journal.likes += 1;
-							uni.$tm.toast('o( ̄▽ ̄)d点赞成功!');
-						} else {
-							uni.$tm.toast('Ծ‸Ծ点赞失败了~');
-						}
-					})
-					.catch(err => {
-						uni.$tm.toast('Ծ‸Ծ点赞失败了~');
-					});
-			},
-
-			fnDel(journal) {
-				uni.$eShowModal({
-						title: '提示',
-						content: '您确定要删除该日记吗?',
-						showCancel: true,
-						cancelText: '否',
-						cancelColor: '#999999',
-						confirmText: '是',
-						confirmColor: '#03a9f4'
-					})
-					.then(res => {
-						this.$httpApi.admin
-							.deleteJournalsById(journal.id)
-							.then(res => {
-								if (res.status == 200) {
-									this.$emit('on-del', journal);
-									uni.$tm.toast('删除成功!');
-								} else {
-									uni.$tm.toast('Ծ‸Ծ删除失败~');
-								}
-							})
-							.catch(err => {
-								uni.$tm.toast('Ծ‸Ծ删除失败~');
-							});
-					})
-					.catch(() => {});
-			}
-		}
-	};
-</script>
-
-<style scoped lang="scss">
-	.journal-card {
-		box-sizing: border-box;
-		box-shadow: 0rpx 2rpx 24rpx rgba(0, 0, 0, 0.05);
-		overflow: hidden;
-
-		.avatar {
-			width: 70rpx;
-			height: 70rpx;
-			border: 6rpx solid #fff;
-			box-shadow: 0rpx 0rpx 24rpx rgba(0, 0, 0, 0.05);
-		}
-
-		.info {
-			justify-content: center;
-
-			.nickname {
-				font-size: 30rpx;
-			}
-
-			.time {
-				font-size: 26rpx;
-			}
-		}
-	}
-</style>

+ 1 - 12
main.js

@@ -1,10 +1,5 @@
 import App from "./App";
 import Vue from "vue";
-import {
-	router,
-	RouterMount
-} from './router/router.js'
-Vue.use(router)
 
 // 挂载全局工具类
 import utils from "./utils/index.js";
@@ -75,10 +70,4 @@ const app = new Vue({
 	...App,
 });
 
-// #ifdef H5
-RouterMount(app, router, '#app')
-// #endif
-
-// #ifndef H5
-app.$mount(); //为了兼容小程序及app端必须这样写才有效果
-// #endif
+app.$mount();

+ 0 - 28
package.json

@@ -1,28 +0,0 @@
-{
-	"name": "uni-halo",
-	"version": "1.0.0",
-	"description": "<p align=\"center\">\r     <img alt=\"logo\" src=\"https://b.925i.cn/uni_halo/uni_halo_logo.png\" width=\"120\" height=\"120\" style=\"margin-bottom: 10px;\">\r </p>\r <h3 align=\"center\" style=\"margin: 30px 0 30px;font-weight: bold;font-size:40px;\">uni-halo</h3>\r <h3 align=\"center\">uni-halo 基于Halo一款现代化的开源博客/CMS系统API开发的可多端编译应用</h3>",
-	"repository": {
-		"type": "git",
-		"url": "git+https://gitee.com/ialley-workshop-open/uni-halo.git"
-	},
-	"keywords": [
-		"uni-halo",
-		"小莫唐尼",
-		"巷子工坊"
-	],
-	"author": "巷子工坊丨小莫唐尼",
-	"license": "AGPL-3.0",
-	"bugs": {
-		"url": "https://gitee.com/ialley-workshop-open/uni-halo/issues"
-	},
-	"homepage": "https://uni-halo.925i.cn",
-	"devDependencies": {
-		"vue-i18n": "^9.1.10"
-	},
-	"dependencies": {
-		"qs": "^6.12.1",
-		"uni-read-pages": "^1.0.5",
-		"uni-simple-router": "^2.0.8-beta.4"
-	}
-}

+ 2 - 21
pages.json

@@ -185,20 +185,7 @@
               }
             }
           }
-        },
-        {
-          "path": "journal/journal",
-          "style": {
-            "navigationBarTitleText": "个人日记",
-            "enablePullDownRefresh": true,
-            "app-plus": {
-              "pullToRefresh": {
-                "color": "#03a9f4",
-                "style": "circle"
-              }
-            }
-          }
-        },
+        }, 
         {
           "path": "articles/articles",
           "style": {
@@ -272,13 +259,7 @@
               }
             }
           }
-        },
-        {
-          "path": "test-page/test-page",
-          "style": {
-            "navigationBarTitleText": ""
-          }
-        },
+        }, 
         {
           "path": "advertise/advertise",
           "style": {

+ 34 - 35
pages/tabbar/about/about.vue

@@ -174,38 +174,37 @@ export default {
             // #ifdef MP-WEIXIN
             _isWx = true;
             // #endif
-            this.navList = [
-                {
-                    key: 'archives',
-                    title: '文章归档',
-                    leftIcon: 'halocoloricon-classify',
-                    leftIconColor: 'red',
-                    rightText: '已归档的文章',
-                    path: '/pagesA/archives/archives',
-                    isAdmin: false,
-                    type: 'page',
-                    show: false
-                }, {
-                    key: 'love',
-                    title: '恋爱日记',
-                    leftIcon: 'halocoloricon-attent',
-                    leftIconColor: 'red',
-                    rightText: '甜蜜恋人的专属',
-                    path: '/pagesA/love/love',
-                    isAdmin: false,
-                    type: 'page',
-                    show: this.haloConfigs.loveConfig.loveEnabled
-                }, {
-                    key: 'disclaimers',
-                    title: '友情链接',
-                    leftIcon: 'icon-lianjie',
-                    leftIconColor: 'blue',
-                    rightText: '看看朋友们吧',
-                    path: '/pagesA/friend-links/friend-links',
-                    isAdmin: false,
-                    type: 'page',
-                    show: true
-                },
+            this.navList = [{
+                key: 'archives',
+                title: '文章归档',
+                leftIcon: 'halocoloricon-classify',
+                leftIconColor: 'red',
+                rightText: '已归档的文章',
+                path: '/pagesA/archives/archives',
+                isAdmin: false,
+                type: 'page',
+                show: false
+            }, {
+                key: 'love',
+                title: '恋爱日记',
+                leftIcon: 'halocoloricon-attent',
+                leftIconColor: 'red',
+                rightText: '甜蜜恋人的专属',
+                path: '/pagesA/love/love',
+                isAdmin: false,
+                type: 'page',
+                show: this.haloConfigs.loveConfig.loveEnabled
+            }, {
+                key: 'disclaimers',
+                title: '友情链接',
+                leftIcon: 'icon-lianjie',
+                leftIconColor: 'blue',
+                rightText: '看看朋友们吧',
+                path: '/pagesA/friend-links/friend-links',
+                isAdmin: false,
+                type: 'page',
+                show: true
+            },
                 {
                     key: 'disclaimers',
                     title: '免责声明',
@@ -400,9 +399,9 @@ export default {
                         break;
                 }
             } else if (type == 'page') {
-                this.$Router.push({
-                    path: path
-                });
+                uni.navigateTo({
+                    url: path
+                })
             }
         },
 

+ 2 - 21
pages/tabbar/home/home.vue

@@ -90,7 +90,6 @@ import tmIcons from '@/tm-vuetify/components/tm-icons/tm-icons.vue';
 import tmEmpty from '@/tm-vuetify/components/tm-empty/tm-empty.vue';
 
 import eSwiper from '@/components/e-swiper/e-swiper.vue';
-import qs from 'qs'
 
 export default {
     components: {
@@ -209,15 +208,8 @@ export default {
                 });
             };
 
-            const paramsStr = qs.stringify(this.queryParams, {
-                allowDots: true,
-                encodeValuesOnly: true,
-                skipNulls: true,
-                encode: true,
-                arrayFormat: 'repeat'
-            })
             uni.request({
-                url: this.$baseApiUrl + '/apis/api.content.halo.run/v1alpha1/posts?' + paramsStr,
+                url: this.$baseApiUrl + '/apis/api.content.halo.run/v1alpha1/posts',
                 method: 'GET',
                 params: this.queryParams,
                 success: (res) => {
@@ -241,25 +233,14 @@ export default {
         },
         // 文章列表
         fnGetArticleList() {
-            // uni.showLoading({
-            // 	mask: true,
-            // 	title: '加载中...'
-            // });
             // 设置状态为加载中
             if (!this.isLoadMore) {
                 this.loading = 'loading';
             }
             this.loadMoreText = '加载中...';
 
-            const paramsStr = qs.stringify(this.queryParams, {
-                allowDots: true,
-                encodeValuesOnly: true,
-                skipNulls: true,
-                encode: true,
-                arrayFormat: 'repeat'
-            })
             uni.request({
-                url: this.$baseApiUrl + '/apis/api.content.halo.run/v1alpha1/posts?' + paramsStr,
+                url: this.$baseApiUrl + '/apis/api.content.halo.run/v1alpha1/posts?',
                 method: 'GET',
                 params: this.queryParams,
                 success: (res) => {

+ 0 - 135
pages/template.vue

@@ -1,135 +0,0 @@
-<template>
-	<view class="app-page">
-		<view v-if="loading != 'success'" class="loading-wrap">
-			<tm-skeleton model="listAvatr"></tm-skeleton>
-			<tm-skeleton model="listAvatr"></tm-skeleton>
-			<tm-skeleton model="listAvatr"></tm-skeleton>
-		</view>
-		<!-- 内容区域 -->
-		<view v-else class="app-page-content">
-			<view v-if="dataList.length == 0" class="content-empty flex flex-center">
-				<!-- 空布局 -->
-				<tm-empty icon="icon-shiliangzhinengduixiang-" label="该分类下暂无数据"></tm-empty>
-			</view>
-			<block v-else>
-				<block v-for="(item, index) in dataList" :key="index">
-					<!--  卡片 -->
-					<tm-translate animation-name="fadeUp" :wait="(index + 1) * 50">
-						<!-- 列表项 -->
-						{{ item }}
-					</tm-translate>
-				</block>
-				<tm-flotbutton @click="fnToTopPage" size="m" color="light-blue" icon="icon-angle-up"></tm-flotbutton>
-				<view class="load-text">{{ loadMoreText }}</view>
-			</block>
-		</view>
-	</view>
-</template>
-
-<script>
-import tmSkeleton from '@/tm-vuetify/components/tm-skeleton/tm-skeleton.vue';
-import tmFlotbutton from '@/tm-vuetify/components/tm-flotbutton/tm-flotbutton.vue';
-import tmTranslate from '@/tm-vuetify/components/tm-translate/tm-translate.vue';
-import tmEmpty from '@/tm-vuetify/components/tm-empty/tm-empty.vue';
-export default {
-	components: {
-		tmSkeleton,
-		tmFlotbutton,
-		tmTranslate,
-		tmEmpty
-	},
-	data() {
-		return {
-			loading: 'loading',
-			queryParams: {
-				size: 10,
-				page: 0
-			},
-			result: null,
-			dataList: [],
-			hasNext:false,
-			isLoadMore: false,
-			loadMoreText: '加载中...'
-		};
-	},
-
-	onLoad() {
-		this.fnSetPageTitle();
-	},
-	created() {
-		this.fnGetData();
-	},
-	onPullDownRefresh() {
-		this.isLoadMore = false;
-		this.queryParams.page = 0;
-		this.fnGetData();
-	},
-
-	onReachBottom(e) {
-		if (this.result.hasNext) {
-			this.queryParams.page += 1;
-			this.isLoadMore = true;
-			this.fnGetData();
-		} else {
-			uni.showToast({
-				icon: 'none',
-				title: '没有更多数据了'
-			});
-		}
-	},
-	methods: {
-		fnGetData() {
-			return;
-			uni.showLoading({
-				mask: true,
-				title: '加载中...'
-			});
-			// 设置状态为加载中
-			if (!this.isLoadMore) {
-				this.loading = 'loading';
-			}
-			this.loadMoreText = '加载中...';
-			this.$httpApi
-				.getXXX(this.queryParams)
-				.then(res => {
-					console.log('请求结果:');
-					console.log(res);
-
-					this.loading = 'success';
-					this.loadMoreText = res.data.hasNext ? '上拉加载更多' : '呜呜,没有更多数据啦~';
-					// 处理数据
-					this.result = res.data;
-					if (this.isLoadMore) {
-						this.dataList = this.dataList.concat(res.data.content);
-					} else {
-						this.dataList = res.data.content;
-					}
-				})
-				.catch(err => {
-					console.error(err);
-					this.loading = 'error';
-					this.loadMoreText = '加载失败,请下拉刷新!';
-				})
-				.finally(() => {
-					setTimeout(() => {
-						uni.hideLoading();
-						uni.stopPullDownRefresh();
-					}, 500);
-				});
-		}
-	}
-};
-</script>
-
-<style lang="scss" scoped>
-.app-page {
-	width: 100vw;
-	display: flex;
-	flex-direction: column;
-	padding: 24rpx 0;
-	padding-bottom: 144rpx;
-}
-.loading-wrap {
-	padding: 24rpx;
-}
-</style>

+ 3 - 3
pagesA/friend-links/friend-links.vue

@@ -290,9 +290,9 @@ export default {
             });
         },
         toSubmitLinkPage() {
-            this.$Router.push({
-                path: '/pagesA/submit-link/submit-link'
-            });
+            uni.navigateTo({
+                url: '/pagesA/submit-link/submit-link'
+            })
         }
     }
 };

+ 0 - 137
pagesA/journal/journal.vue

@@ -1,137 +0,0 @@
-<template>
-    <view class="app-page">
-        <view v-if="loading != 'success'" class="loading-wrap pa-24">
-            <tm-skeleton model="listAvatr"></tm-skeleton>
-            <tm-skeleton model="listAvatr"></tm-skeleton>
-            <tm-skeleton model="listAvatr"></tm-skeleton>
-        </view>
-        <!-- 内容区域 -->
-        <view v-else class="app-page-content pa-24">
-            <view v-if="dataList.length == 0" class="content-empty flex flex-center">
-                <!-- 空布局 -->
-                <tm-empty icon="icon-shiliangzhinengduixiang-" label="博主还没有写任何日记"></tm-empty>
-            </view>
-            <block v-else>
-                <block v-for="(journal, index) in dataList" :key="index">
-                    <tm-translate animation-name="fadeUp" :wait="calcAniWait(index)">
-                        <!-- 日记卡片 -->
-                        <journal-card :journal="journal" :useLike="true"></journal-card>
-                    </tm-translate>
-                </block>
-
-                <tm-flotbutton @click="fnToTopPage" color="light-blue" size="m" icon="icon-angle-up"></tm-flotbutton>
-                <view class="load-text">{{ loadMoreText }}</view>
-            </block>
-        </view>
-    </view>
-</template>
-
-<script>
-import MarkdownConfig from '@/common/markdown/markdown.config.js';
-import mpHtml from '@/components/mp-html/components/mp-html/mp-html.vue';
-import journalCard from '@/components/journal-card/journal-card.vue';
-
-import tmSkeleton from '@/tm-vuetify/components/tm-skeleton/tm-skeleton.vue';
-import tmEmpty from '@/tm-vuetify/components/tm-empty/tm-empty.vue';
-import tmTranslate from '@/tm-vuetify/components/tm-translate/tm-translate.vue';
-import tmFlotbutton from '@/tm-vuetify/components/tm-flotbutton/tm-flotbutton.vue';
-
-export default {
-    components: {mpHtml, tmSkeleton, tmEmpty, tmTranslate, tmFlotbutton, journalCard},
-    data() {
-        return {
-            loading: 'loading',
-            markdownConfig: MarkdownConfig,
-            queryParams: {
-                size: 10,
-                page: 0
-            },
-
-            dataList: [],
-            hasNext: false,
-            isLoadMore: false,
-            loadMoreText: '加载中...'
-        };
-    },
-
-    onLoad() {
-        this.fnSetPageTitle('个人日记');
-    },
-    created() {
-        this.fnGetData();
-    },
-    onPullDownRefresh() {
-        this.isLoadMore = false;
-        this.queryParams.page = 0;
-        this.fnGetData();
-    },
-    onReachBottom(e) {
-        if (this.hasNext) {
-            this.queryParams.page += 1;
-            this.isLoadMore = true;
-            this.fnGetData();
-        } else {
-            uni.showToast({
-                icon: 'none',
-                title: '没有更多数据了'
-            });
-        }
-    },
-    methods: {
-        fnGetData() {
-            // uni.showLoading({
-            // 	mask: true,
-            // 	title: '加载中...'
-            // });
-            // 设置状态为加载中
-            if (!this.isLoadMore) {
-                this.loading = 'loading';
-            }
-            this.loadMoreText = '加载中...';
-            this.$httpApi
-                .getJournals(this.queryParams)
-                .then(res => {
-                    this.loading = 'success';
-                    this.loadMoreText = res.data.hasNext ? '上拉加载更多' : '呜呜,没有更多数据啦~';
-                    // 处理数据
-                    this.result = res.data;
-                    if (this.isLoadMore) {
-                        this.dataList = this.dataList.concat(res.data.content);
-                    } else {
-                        this.dataList = res.data.content;
-                    }
-                    this.loading = 'success';
-                })
-                .catch(err => {
-                    console.error(err);
-                    this.loading = 'error';
-                    this.loadMoreText = '加载失败,请下拉刷新!';
-                })
-                .finally(() => {
-                    setTimeout(() => {
-                        uni.hideLoading();
-                        uni.stopPullDownRefresh();
-                    }, 500);
-                });
-        }
-    }
-};
-</script>
-
-<style lang="scss" scoped>
-.app-page {
-    width: 100vw;
-    display: flex;
-    flex-direction: column;
-}
-
-.loading-wrap {
-}
-
-.app-page-content {
-}
-
-.content-empty {
-    height: 60vh;
-}
-</style>

+ 2 - 2
pagesA/start/start.vue

@@ -48,10 +48,10 @@
         <cover-view v-if="startConfig.title || startConfig.logo" class="title-container">
 
             <cover-view v-if="startConfig.logo" class="app-logo">
-                <view class="app-logo-border">
+                <cover-view class="app-logo-border">
                     <cover-image class="app-logo-image" :src="$utils.checkImageUrl(startConfig.logo)"
                                  mode="aspectFill"></cover-image>
-                </view>
+                </cover-view>
             </cover-view>
 
             <cover-view v-if="startConfig.title" class="app-title" :style="startConfig.titleStyle">

+ 0 - 289
pagesA/test-page/test-page.vue

@@ -1,289 +0,0 @@
-<template>
-	<view class="app-page">
-
-		<view v-if="loading != 'success' && articleList.length===0" class="loading-wrap">
-			加载中
-		</view>
-		<block v-else>
-
-			<view v-if="articleList.length == 0" class="article-empty"><tm-empty icon="icon-shiliangzhinengduixiang-"
-					label="博主还没有发表任何文章~"></tm-empty></view>
-			<block v-else>
-
-				<view style="width: 100%;text-align: center;display: flex;flex-direction: column;align-items: center;"
-					v-for="(article, index) in articleList" :key="index">
-					<image style="width: 100%;height: 250rpx;" :src="article.cover"></image>
-					<view style="margin-top: 12rpx;">{{article.title}}</view>
-				</view>
-				<view class="load-text mt-12">{{ loadMoreText }}</view>
-			</block>
-		</block>
-	</view>
-</template>
-
-<script>
-	export default {
-		components: {
-
-		},
-		data() {
-			return {
-				loading: 'loading',
-				queryParams: {
-					size: 30,
-					page: 1
-				},
-				result: {},
-				isLoadMore: false,
-				loadMoreText: '加载中...',
-				bannerCurrent: 0,
-				bannerList: [],
-				noticeList: [],
-				articleList: [],
-				categoryList: [],
-			};
-		},
-		onLoad() {
-			this.fnQuery();
-		},
-
-		onPullDownRefresh() {
-			this.isLoadMore = false;
-			this.queryParams.page = 1;
-			this.fnQuery();
-		},
-
-		onReachBottom(e) {
-			if (this.result.hasNext) {
-				this.queryParams.page += 1;
-				this.isLoadMore = true;
-				this.fnGetArticleList();
-			} else {
-				uni.showToast({
-					icon: 'none',
-					title: '没有更多数据了'
-				});
-			}
-		},
-		methods: {
-			fnQuery() {
-				this.fnGetArticleList();
-			},
-			fnOnBannerChange(e) {
-				this.bannerCurrent = e.current;
-			},
-			fnOnBannerClick(item) {
-				if (item.id == '') return;
-				this.fnToArticleDetail({
-					metadata: {
-						name: item.id
-					}
-				});
-			},
-			fnGetArticleList() {
-
-				// 设置状态为加载中
-				if (!this.isLoadMore) {
-					this.loading = 'loading';
-				}
-				this.loadMoreText = '加载中...';
-				const list = new Array(30).fill(10).map(item => {
-					return {
-						title: '红红火火恍恍惚惚哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈发放',
-						cover: 'https://blog.925i.cn/upload/房间%20少女%20蓝色眼睛%20夏天的裙子%20室内绿色植物%20动漫壁纸_彼岸壁纸.webp'
-					}
-				})
-
-				setTimeout(() => {
-					setTimeout(() => {
-						this.result = {
-							hasNext: true
-						};
-
-						if (this.isLoadMore) {
-							this.articleList = this.articleList.concat(list);
-						} else {
-							this.articleList = list;
-						}
-					}, 200)
-					this.loading = 'success';
-					this.loadMoreText = this.result ? '上拉加载更多' : '呜呜,没有更多数据啦~';
-					uni.hideLoading();
-					uni.stopPullDownRefresh();
-				}, 300)
-
-
-			},
-
-			//跳转文章详情
-			fnToArticleDetail(article) {
-				uni.navigateTo({
-					url: '/pagesA/article-detail/article-detail?name=' + article.metadata.name,
-					animationType: 'slide-in-right'
-				});
-			},
-			// 快捷导航页面跳转
-			fnToNavPage(item) {
-				switch (item.type) {
-					case 'tabbar':
-						uni.switchTab({
-							url: item.path
-						});
-						break;
-					case 'page':
-						uni.navigateTo({
-							url: item.path
-						});
-						break;
-				}
-			},
-			// 分类页面
-			fnToCategoryPage() {
-				uni.switchTab({
-					url: '/pages/tabbar/category/category'
-				});
-			},
-			// 所有的文章列表页面
-			fnToArticlesPage() {
-				uni.navigateTo({
-					url: '/pagesA/articles/articles'
-				});
-			},
-
-			// 根据slug查询分类下的文章
-			fnToCategoryBy(category) {
-				uni.navigateTo({
-					url: `/pagesA/category-detail/category-detail?name=${category.metadata.name}&title=${category.spec.displayName}`
-				});
-			},
-
-			fnChangeMode() {
-				const isBlackTheme = this.$tm.vx.state().tmVuetify.black;
-				this.$tm.theme.setBlack(!isBlackTheme);
-				uni.setNavigationBarColor({
-					backgroundColor: !isBlackTheme ? '#0a0a0a' : '#ffffff',
-					frontColor: !isBlackTheme ? '#ffffff' : '#0a0a0a'
-				});
-			},
-
-			fnToSearch() {
-				uni.navigateTo({
-					url: '/pagesA/articles/articles'
-				});
-			}
-		}
-	};
-</script>
-
-<style lang="scss" scoped>
-	.app-page {
-		width: 100vw;
-		min-height: 100vh;
-		display: flex;
-		flex-direction: column;
-		// background-color: #ffffff;
-
-		.logo {
-			width: 60rpx;
-			height: 60rpx;
-			box-sizing: border-box;
-		}
-
-		::v-deep {
-			.tm-menubars .body .body_wk .left {
-				min-width: initial;
-			}
-		}
-	}
-
-	.loading-wrap {
-		padding: 24rpx;
-	}
-
-	.search-input {
-		background-color: #f5f5f5;
-		align-items: center;
-		/* #ifdef MP-WEIXIN */
-		margin-right: 24rpx;
-
-		/* #endif */
-		&_icon {}
-
-		&_text {}
-	}
-
-	.show-more {
-		width: 42rpx;
-		height: 42rpx;
-		box-sizing: border-box;
-		box-shadow: 0rpx 0rpx 24rpx rgba(0, 0, 0, 0.03);
-	}
-
-	.banner {
-		overflow: hidden;
-	}
-
-	.quick-nav {
-		background-color: #fff;
-		box-sizing: border-box;
-
-		// box-shadow: 0rpx 2rpx 24rpx rgba(0, 0, 0, 0.03);
-		.name {
-			color: var(--main-text-color);
-		}
-	}
-
-	.category {
-		width: 94vw;
-		display: flex;
-		height: 200rpx;
-		white-space: nowrap;
-		margin: 0 24rpx;
-
-		.content {
-			display: inline-block;
-			padding-left: 24rpx;
-
-			&:first-child {
-				padding-left: 0;
-			}
-		}
-
-		.cate-empty {
-			height: inherit;
-		}
-	}
-
-	.page-item {
-		&_title {
-			position: relative;
-			padding-left: 24rpx;
-			font-size: 32rpx;
-			z-index: 1;
-			color: var(--main-text-color);
-
-			&:before {
-				content: '';
-				position: absolute;
-				left: 0rpx;
-				top: 8rpx;
-				width: 8rpx;
-				height: 30rpx;
-				background-color: rgba(33, 150, 243, 1);
-				border-radius: 6rpx;
-				z-index: 0;
-			}
-		}
-	}
-
-	.h_row_col2 {
-		display: flex;
-		flex-wrap: wrap;
-		box-sizing: border-box;
-		padding: 0 12rpx;
-
-		.ani-item {
-			width: 50%;
-		}
-	}
-</style>

+ 0 - 24
router/router.js

@@ -1,24 +0,0 @@
-// router.js
-import {
-	RouterMount,
-	createRouter
-} from 'uni-simple-router';
-
-const router = createRouter({
-	platform: process.env.VUE_APP_PLATFORM,
-	routes: [...ROUTES]
-});
-
-//全局路由前置守卫
-router.beforeEach((to, from, next) => {
-	next();
-});
-// 全局路由后置守卫
-router.afterEach((to, from) => {
-	console.log('跳转结束')
-})
-
-export {
-	router,
-	RouterMount
-}

+ 1 - 17
vue.config.js

@@ -1,8 +1,4 @@
 //vue.config.js
-const TransformPages = require('uni-read-pages')
-const {
-	webpack
-} = new TransformPages()
 module.exports = {
 	devServer: {
 		disableHostCheck: true,
@@ -16,17 +12,5 @@ module.exports = {
 				}
 			}
 		}
-	},
-	configureWebpack: {
-		plugins: [
-			new webpack.DefinePlugin({
-				ROUTES: webpack.DefinePlugin.runtimeValue(() => {
-					const tfPages = new TransformPages({
-						includes: ['path', 'name', 'aliasPath', "meta"]
-					});
-					return JSON.stringify(tfPages.routes)
-				}, true)
-			})
-		]
 	}
-}
+}