inleft
2022-08-26 fa1bd95d533444d7360d1ada127b7a3279a3901f
新增图组等上传支持
新增编辑页
12 files modified
1 files added
607 ■■■■■ changed files
src/assets/md.less 13 ●●●● patch | view | raw | blame | history
src/components/group/MyModal.vue 20 ●●●● patch | view | raw | blame | history
src/components/mini/box-new-article.vue 27 ●●●●● patch | view | raw | blame | history
src/components/mini/box10-add.vue 212 ●●●● patch | view | raw | blame | history
src/components/mini/box18-photoShow.vue 6 ●●●●● patch | view | raw | blame | history
src/components/mini/box2-class.vue 4 ●●●● patch | view | raw | blame | history
src/components/mini/box3-archive.vue 76 ●●●●● patch | view | raw | blame | history
src/components/mini/mdDetail.vue 7 ●●●●● patch | view | raw | blame | history
src/components/mini/tagInfo.vue 132 ●●●● patch | view | raw | blame | history
src/components/swichLabel/edit.vue 69 ●●●●● patch | view | raw | blame | history
src/components/swichLabel/main1-home.vue 2 ●●●●● patch | view | raw | blame | history
src/config/myConstant.js 1 ●●●● patch | view | raw | blame | history
src/config/router.config.js 38 ●●●●● patch | view | raw | blame | history
src/assets/md.less
@@ -20,13 +20,17 @@
     p{
         text-indent: 2rem;
     }
     img:hover{
         transform: scale(1.05);
         //box-shadow: 0 0 4px rgba(0,0,0,0.5);
         -webkit-filter: drop-shadow(4px 4px 10px rgba(0,0,0,.5));
         filter: drop-shadow(4px 4px 10px rgba(0,0,0,.5));
     }
     img{
         width: 150px;
         border-radius: 12px;
         margin: 10px auto;
         transition: all .5s;
@@ -40,6 +44,7 @@
    //      -webkit-filter: drop-shadow(4px 4px 10px rgba(0,0,0,.5));
    //      filter: drop-shadow(4px 4px 10px rgba(0,0,0,.5));
    // }
    h1, h2, h3, h4 {
        color: #111111;
        font-weight: 400;
@@ -49,6 +54,7 @@
    h1, h2, h3, h4, h5 {
        font-family: Georgia, Palatino, serif;
    }
    h1, h2, h3, h4, h5, p , dl{
        margin-bottom: 16px;
        padding: 0;
@@ -148,7 +154,6 @@
        font-size: .85em;
        white-space: pre;
        background: 0 0;
    }
    
    code {
@@ -177,7 +182,7 @@
    blockquote {
        border-left:.5em solid #cfcfcf;
        //padding: 0 0 0 2em;
        margin-left:0;
        margin-left: 0em;
    }
    blockquote  cite {
        font-size:14px;
@@ -189,8 +194,12 @@
    }
    
    blockquote p {
        text-indent: inherit;
        color: #666;
    }
    blockquote *{
        margin-left: 10px;
    }
    hr {
        text-align: left;
        color: #999;
src/components/group/MyModal.vue
@@ -1,7 +1,7 @@
<template>
    <div class="myModal" ref="test">
        <a-modal v-drag-modal v-model="visible" title="日志添加" on-ok="handleOk"
            :bodyStyle="{'overflow':'overlay','maxHeight': '550px'}">
    <div class="myModal">
        <a-modal v-drag-modal ref="blogAddModal" v-model="visible" title="日志添加" on-ok="handleOk"
            :bodyStyle="{'overflow':'overlay','maxHeight': '550px'}" :destroyOnClose="destroyOnClose">
            <template slot="footer">
                <a-button key="reset" @click="reset" type="danger">
                    擦掉重来
@@ -34,6 +34,7 @@
            return {
                visible: false,
                loading: false,
                destroyOnClose: false,
            }
        },
        methods: {
@@ -61,6 +62,7 @@
                let tempData = this.$refs.modalBox.form;
                var param = {
                    introduce: tempData.introduce,
                    secret: tempData.secret,
                    title: tempData.title,
                    articleTypeId: tempData.class,
@@ -68,15 +70,16 @@
                    articleFileId: tempData.fileId,
                    content: tempData.content,
                    articleFileType: tempData.blogType,
                    introduce: "",
                    coverFileId: tempData.coverFile,
                    pictureIds: tempData.pictureIds,
                    videoIds: tempData.videoIds,
                    publishDate: tempData.publishDate,
                    isTop: tempData.top ? 1 : 0,
                    topValue: tempData.sliderValue,
                    isLock: tempData.lock ? 1 : 0,
                    authStatus: tempData.auth,
                    authPassword: tempData.password == "" ? null : md5(tempData.password),
                    editorStatus: !tempData.tempSave?1:0
                    editorStatus: !tempData.tempSave ? 1 : 0
                }
                console.log(param)
                this.loading = true;
@@ -91,8 +94,13 @@
                // }, 3000);
            },
            reset(e) {
                var res = this.$refs.modalBox.$refs.myForm.resetFields();
                // var res = this.$refs.modalBox.$refs.myForm.resetFields();
                //this.$refs.modalBox.reset();
                this.destroyOnClose = true;
                this.visible = false;
                setTimeout(() => {
                    this.destroyOnClose = false;
                }, 500)
            },
            handleCancel(e) {
                this.visible = false;
src/components/mini/box-new-article.vue
@@ -26,12 +26,11 @@
                </a>
                <div class="article-meta-wrap" style="display: flex;">
                    <span class="post-meta-date">
                    <span class="post-meta-date" style="margin-right: 7px;">
                        <a-icon type="calendar" />
                        <span class="article-meta-label"></span>
                        <span class="article-meta__categories"> {{publishDate}} </span>
                    </span>
                    <span class="article-meta__separator" style="margin: 0px 5px ;">|</span>
                    <span class="article-meta">
                        <a-icon type="book" />
@@ -40,28 +39,18 @@
                        </a>
                        <span v-if="jumpURL !=null && jumpURL!=''">
                            <span class="article-meta__separator" style="margin: 0px 3px 5px 0px ;">|</span>
                            <span class="post-meta-date">
                                <a-icon type="share-alt" />
                                <a :href="jumpURL" target="_blank" class="no-underline"> 外链 </a>
                            </span>
                            <a-icon type="share-alt" />
                            <a :href="jumpURL" target="_blank" class="no-underline"> 外链 </a>
                        </span>
                        <span v-else-if="articleFileType==fileType.fileTypeTalking_9">
                            <span>
                                <span class="article-meta__separator" style="margin: 0px 3px 5px 0px ;">|</span>
                                <span class="post-meta-date">
                                    <a-icon type="thunderbolt" />碎碎念
                                </span>
                            </span>
                            <a-icon type="thunderbolt" />
                            <span class="post-meta-date">碎碎念</span>
                        </span>
                        <span v-if="articleFileType==fileType.fileTypeVideo_3">
                            <span class="article-meta__separator" style="margin: 0px 3px ;"> | </span>
                            <a-icon type="video-camera" />
                            <span class="post-meta-date">
                                <a-icon type="video-camera" />
                                <a @click="routerToPlatform()">
                                    视频
                                </a>
                                <a @click="routerToPlatform()">视频</a>
                            </span>
                        </span>
                        <!-- <a class="article-meta__categories" href="#"> {{tag}}</a> -->
@@ -209,6 +198,8 @@
        box-shadow: aliceblue;
    }
    // #recent-posts>.recent-post-item:not(:first-child) {
    //     margin-top: 1rem;
    // }
src/components/mini/box10-add.vue
@@ -1,5 +1,8 @@
<template>
    <div>
        <a-modal :visible="previewVisible" :footer="null" @cancel="handleCancel">
            <img alt="example" style="width: 100%" :src="previewImage" />
        </a-modal>
        <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="口令">
@@ -26,7 +29,7 @@
                    @change="handleChange" :default-file-list="form.blogFileList" :beforeUpload="beforeUpload"
                    :data="{'bucketName':bucketName.bucket_article}" accept=".md,.html,.htm,.txt">
                    <a-button>
                        <a-icon type="upload" />限 markdown/html
                        <a-icon type="upload" />限 md/html/txt
                    </a-button>
                </a-upload>
            </a-form-model-item>
@@ -58,7 +61,7 @@
                    </span>
                </a-form-model-item>
                <a-form-model-item label=" 日志主类型">
                <a-form-model-item label=" 主类型">
                    <a-select v-model="form.blogType" mode="default" placeholder=""
                        :getPopupContainer="getCalendarContainer()">
                        <a-select-option value="1">
@@ -82,7 +85,53 @@
                    </a-select>
                </a-form-model-item>
                <a-form-model-item label="引言" prop="introduce">
                    <a-input v-model="form.introduce" type="textarea" placeholder="限700字数" />
                </a-form-model-item>
                <a-form-model-item label="封面">
                    <a-upload :customRequest="customRequest" name="file" :showUploadList="true" list-type="picture"
                        :data="{'bucketName':bucketName.bucket_cover}" @change="handleChangeCoverFile"
                        :default-file-list="form.coverFileList" :beforeUpload="beforeUploadCover"
                        accept=".jpg,.png,.jpeg" @preview="handlePreview">
                        <!-- :disabled="form.coverFileList.length>=1" -->
                        <a-button>
                            <a-icon type="upload" />jpg/png/jpeg..
                        </a-button>
                    </a-upload>
                    <!-- <span class="myTip">
                        自动转码,可以传高清图
                    </span> -->
                </a-form-model-item>
                <a-form-model-item label="图组">
                    <a-upload :customRequest="customRequest" name="file" :showUploadList="true" list-type="picture-card"
                        :data="{'bucketName':bucketName.bucket_picture}" @change="handleChangePictureFile"
                        :default-file-list="form.pictureList" :beforeUpload="beforeUploadPicture"
                        accept=".jpg,.png,.jpeg" :multiple="true" @preview="handlePreview">
                        <a-button>
                            <a-icon type="upload" />jpg/png/jpeg..
                        </a-button>
                    </a-upload>
                </a-form-model-item>
                <a-form-model-item label="视频组">
                    <a-upload :customRequest="customRequest" name="file" :showUploadList="true" list-type="text"
                        :data="{'bucketName':bucketName.bucket_video}" @change="handleChangeVideoFile"
                        :default-file-list="form.videoList" :beforeUpload="beforeUploadVideo" :multiple="true"
                        accept=".mp4">
                        <a-button>
                            <a-icon type="upload" />mp4
                        </a-button>
                    </a-upload>
                </a-form-model-item>
                <a-form-model-item label="定时">
                    <a-date-picker v-model="momentDate" show-time type="datetime" placeholder="发布时间"
                        style="width: 100%;" :disabledDate="disabledDate" @change="formatDate"
                        :getCalendarContainer="getCalendarContainer()" />
                </a-form-model-item>
                <a-form-model-item label="标签">
                    <template v-for="(tag, index) in tags">
                        <a-tooltip v-if="tag.length > 20" :key="tag" :title="tag">
@@ -94,37 +143,14 @@
                            {{ tag }}
                        </a-tag>
                    </template>
                    <a-input v-if="inputVisible" ref="input" type="text" size="small" :style="{ width: '78px' }"
                        :value="inputValue" @change="handleInputChange" @blur="handleInputConfirm"
                        @keyup.enter="handleInputConfirm" />
                    <a-tag v-else style="background: #fff; borderStyle: dashed;" @click="showInput">
                        <a-icon type="plus" /> New Tag
                    </a-tag>
                </a-form-model-item>
                <a-form-model-item label="封面">
                    <a-upload :customRequest="customRequest" name="file" :showUploadList="true" list-type="picture"
                        :data="{'bucketName':bucketName.bucket_cover}" @change="handleChangeCoverFile"
                        :default-file-list="form.coverFileList" :beforeUpload="beforeUploadCover"
                        accept=".jpg,.png,.jpeg">
                        <!-- :disabled="form.coverFileList.length>=1" -->
                        <a-button>
                            <a-icon type="upload" />jpg/png/jpeg..
                        </a-button>
                    </a-upload>
                    <!-- <span class="myTip">
                        自动转码,可以传高清图
                    </span> -->
                </a-form-model-item>
                <a-form-model-item label="定时">
                    <a-date-picker v-model="form.publishDate" show-time type="datetime" placeholder="发布时间"
                        style="width: 100%;" :disabledDate="disabledDate"
                        :getCalendarContainer="getCalendarContainer()" />
                </a-form-model-item>
                <div v-bind:class="{'myBorder':form.top}" style="padding: 3px;margin-bottom: 10px;">
@@ -195,6 +221,15 @@
    import myConstant from "../../config/myConstant.js"
    import md5 from 'js-md5';
    function getBase64(file) {
        return new Promise((resolve, reject) => {
            const reader = new FileReader();
            reader.readAsDataURL(file);
            reader.onload = () => resolve(reader.result);
            reader.onerror = error => reject(error);
        });
    }
    export default {
        beforeMount() {
            queryBlogArticleType({}).then((res) => {
@@ -219,7 +254,10 @@
            };
            return {
                previewVisible: false,
                previewImage: '',
                bucketName: myConstant.bucketName,
                momentDate: undefined,
                blogArticleType: [],
                tags: [],
                inputVisible: false,
@@ -231,9 +269,8 @@
                    span: 13
                },
                form: {
                    introduce: '',
                    secret: '',
                    online: false,
                    preference: false,
                    title: '',
                    content: '',
                    class: [],
@@ -247,8 +284,14 @@
                    password: "",
                    fileId: null,
                    coverFile: null,
                    pictureIds: null,
                    videoIds: null,
                    blogFileList: [],
                    coverFileList: [],
                    pictureList: [],
                    videoList: [],
                    online: false,
                    preference: false,
                },
                rules: {
                    title: [{
@@ -263,6 +306,11 @@
                            trigger: 'blur'
                        },
                    ],
                    introduce: [{
                        max: 5,
                        message: '字数限制700',
                        trigger: 'blur'
                    }, ],
                    secret: [{
                        required: true,
                        message: '好像这里错了..',
@@ -293,9 +341,58 @@
            };
        },
        methods: {
            handleCancel() {
                this.previewVisible = false;
            },
            async handlePreview(file) {
                if (!file.url && !file.preview) {
                    file.preview = await getBase64(file.originFileObj);
                }
                this.previewImage = file.url || file.preview;
                this.previewVisible = true;
            },
            reset() {
                // this.form.blogFileList = [];
                // this.form.coverFileList = [];
            },
            formatDate(date, dateString) {
                this.form.publishDate = dateString;
            },
            beforeUploadVideo(file, fileList) {
                return new Promise((resolve, reject) => {
                    if (this.form.secret == null || this.form.secret == "") {
                        this.$message.error('需要正确的授权码');
                        return reject(false);
                    }
                    if (this.form.coverFileList.length > 10) {
                        this.$message.error('这里最多上传10个文件');
                        return reject(false);
                    }
                    if (file.size > myConstant.uploadVideoSizeLimit) {
                        this.$message.error('上传文件大小不能超过 200M!');
                        return reject(false);
                    }
                    return resolve(true)
                });
            },
            beforeUploadPicture(file, fileList) {
                return new Promise((resolve, reject) => {
                    if (this.form.secret == null || this.form.secret == "") {
                        this.$message.error('需要正确的授权码');
                        return reject(false);
                    }
                    if (this.form.coverFileList.length > 10) {
                        this.$message.error('这里最多上传10个文件');
                        return reject(false);
                    }
                    if (file.size > myConstant.uploadFileSizeLimit) {
                        this.$message.error('上传文件大小不能超过 2M!');
                        return reject(false);
                    }
                    return resolve(true)
                });
            },
            beforeUploadCover(file, fileList) {
                return new Promise((resolve, reject) => {
@@ -343,9 +440,9 @@
                }
                if (info.file.status === 'done') {
                    this.form.fileId = info.file.response.data;
                    this.$message.success(`${info.file.name} file uploaded successfully`);
                    this.$message.success(`${info.file.name} 上传成功`);
                } else if (info.file.status === 'error') {
                    this.$message.error(`${info.file.name} file upload failed.`);
                    this.$message.error(`${info.file.name} 上传失败`);
                }
                if (this.form.blogFileList == null || this.form.blogFileList.length == 0) {
@@ -360,13 +457,55 @@
                }
                if (info.file.status === 'done') {
                    this.form.coverFile = info.file.response.data;
                    this.$message.success(`${info.file.name} file uploaded successfully`);
                    this.$message.success(`${info.file.name} 上传成功`);
                } else if (info.file.status === 'error') {
                    this.$message.error(`${info.file.name} file upload failed.`);
                    this.$message.error(`${info.file.name} 上传失败`);
                }
                if (this.form.coverFileList == null || this.form.coverFileList.length == 0) {
                    this.form.coverFile = null
                }
            },
            handleChangePictureFile(info) {
                this.form.pictureList = info.fileList;
                if (info.file.status !== 'uploading') {
                    console.log(info.file, info.fileList);
                }
                if (info.file.status === 'done') {
                    if (this.form.pictureIds == null || this.form.pictureIds == "") {
                        this.form.pictureIds = info.file.response.data;
                    } else {
                        this.form.pictureIds = this.form.pictureIds + "," + info.file.response.data;
                    }
                    this.$message.success(`${info.file.name} 上传成功`);
                } else if (info.file.status === 'error') {
                    this.$message.error(`${info.file.name} 上传失败`);
                }
                if (this.form.pictureList == null || this.form.pictureList.length == 0) {
                    this.form.pictureIds = null
                }
            },
            handleChangeVideoFile(info) {
                this.form.videoList = info.fileList;
                if (info.file.status !== 'uploading') {
                    console.log(info.file, info.fileList);
                }
                if (info.file.status === 'done') {
                    if (this.form.videoIds == null || this.form.videoIds == "") {
                        this.form.videoIds = info.file.response.data;
                    } else {
                        this.form.videoIds = this.form.videoIds + "," + info.file.response.data
                    }
                    this.$message.success(`${info.file.name} 上传成功`);
                } else if (info.file.status === 'error') {
                    this.$message.error(`${info.file.name} 上传失败`);
                }
                if (this.form.videoList == null || this.form.videoList.length == 0) {
                    this.form.videoIds = null
                }
            },
            /**
@@ -377,12 +516,13 @@
                formData.append('file', option.file)
                formData.append('bucketName', option.data.bucketName)
                formData.append('authCode', this.form.secret == "" ? "" : md5(this.form.secret))
                let _this = this
                myFileInfoUpload(formData).then((res) => {
                    if (res.success) {
                        this.$message.success('上传成功')
                        option.onSuccess(res, option.file)
                        // 在上传成功后进度条显示为99
                        progress.percent = 100
                        // this.$message.success('上传成功')
                    } else {
                        this.$message.error('上传失败:' + res.message)
                    }
@@ -404,7 +544,6 @@
                    }
                }, 500)
            },
            disabledDate(current) {
                return current < moment().subtract(1, "day");
@@ -417,18 +556,15 @@
                //console.log(tags);
                this.tags = this.tags.filter(tag => tag !== removedTag);
            },
            showInput() {
                this.inputVisible = true;
                this.$nextTick(function() {
                    this.$refs.input.focus();
                });
            },
            handleInputChange(e) {
                this.inputValue = e.target.value;
            },
            handleInputConfirm() {
                const inputValue = this.inputValue;
                let tags = this.tags;
src/components/mini/box18-photoShow.vue
@@ -23,15 +23,13 @@
                            <div class="post-categories">
                                <span class="tag vcard">
                                    <a-icon type="customer-service" />
                                    <a href="#" rel="category tag"> {{item.articleTypeName}}</a>
                                    {{item.articleTypeName}}
                                </span>
                            </div>
                            <div class="post-on">
                                <span class="entry-date">
                                    <a-icon type="calendar" />
                                    <a href="#" rel="bookmark">
                                        {{item.publishDate}}
                                    </a>
                                    {{item.publishDate}}
                                </span>
                            </div>
                        </div>
src/components/mini/box2-class.vue
@@ -7,7 +7,7 @@
        </span>
        <div class="blog-scroll ">
            <div class="blog-log-list">
                <div class="blog-log-item" v-for="item in list1">
                <div class="blog-log-item" v-for="(item,index) in list1">
                    <router-link :to="{path:'/articleList',query:{typeId:item.id}}">
                        <span>{{item.typeName}}</span>
                    </router-link>
@@ -63,7 +63,7 @@
    /*日志部分*/
    .blog-log-list {
        line-height: 1.6;
        padding-left: 3%;
        // padding-left: 3%;
        padding-right: 3%;
        flex-wrap: wrap;
src/components/mini/box3-archive.vue
@@ -5,24 +5,23 @@
                归档信息
            </router-link>
        </span>
        <div class="blog-scroll ">
            <div v-for="yearData in myData">
        <div class="blog-scroll" v-bind:class="{miniHeight:showLess,maxHeight:!showLess}">
            <div v-for="(yearData,index) in myData" class="fade" v-if="index < 2 || !showLess">
                <router-link :to="{name:'tagTime',query:{year:yearData.year}}">
                    <p class="blog-pigeonhole-p">{{yearData.year}}年</p>
                </router-link>
                <div class="blog-pigeonhole-list">
                    <div class="blog-pigeonhole-item" v-for="item in yearData.list">
                        <router-link :to="{name:'tagTime',
                        query:{year:yearData.year,month:item.month}}">
                            query:{year:yearData.year,month:item.month}}">
                            <span>{{item.month}}月</span>
                        </router-link>
                        <span>{{item.count}}篇</span>
                    </div>
                </div>
            </div>
        </div>
        <div @click="()=>showLess=!showLess" v-if="myData.length>2 && showLess">...</div>
    </div>
</template>
@@ -31,7 +30,9 @@
    import {
        archive
    } from '../../api/blogStatistics.js'
    export default {
        beforeMount() {
            archive({}).then((res) => {
                this.myData = res.data;
@@ -39,52 +40,8 @@
        },
        data() {
            return {
                "myData": [
                    // {
                    //     "year": "2022",
                    //     "list": [{
                    //             "month": "12",
                    //             "count": 10
                    //         },
                    //         {
                    //             "month": "10",
                    //             "count": 11
                    //         },
                    //         {
                    //             "month": "9",
                    //             "count": 9
                    //         }
                    //     ]
                    // },
                    // {
                    //     "year": "2021",
                    //     "list": [{
                    //             "month": "12",
                    //             "count": 8
                    //         },
                    //         {
                    //             "month": "10",
                    //             "count": 7
                    //         },
                    //         {
                    //             "month": "7",
                    //             "count": 4
                    //         },
                    //         {
                    //             "month": "6",
                    //             "count": 3
                    //         },
                    //         {
                    //             "month": "5",
                    //             "count": 2
                    //         },
                    //         {
                    //             "month": "4",
                    //             "count": 1
                    //         }
                    //     ]
                    // }
                ],
                showLess: true,
                "myData": [],
            }
        }
    }
@@ -93,11 +50,24 @@
</script>
<style lang="less">
    .blog-scroll {
        transition: all ease-in-out 0.8s;
    }
    .miniHeight {
        max-height: 250px;
    }
    .maxHeight {
        max-height: 800px;
    }
    /*归档部分*/
    .archive {
        a {
            color: black;
        }
    }
    .blog-pigeonhole {
@@ -110,7 +80,7 @@
        line-height: 20px;
        border-radius: 6px 6px 6px 6px;
        /*background-color: #edf0f3;*/
        margin-left: 3%;
        margin-left: 5%;
        margin-bottom: 3%;
        opacity: 0.7;
    }
@@ -131,7 +101,7 @@
        /*让弹性盒元素在必要的时候拆行:*/
        align-content: flex-start;
        -webkit-align-content: flex-start;
        transition: all 1 ease;
    }
    .blog-pigeonhole-item {
src/components/mini/mdDetail.vue
@@ -42,7 +42,7 @@
                <div class="markdown-body  articleTitle">
                    <h4>{{articelMeta.title}}</h4>
                    <div class="introduceSamll" v-if="introduce.length==0">
                    <div class="introduceSamll" v-if="introduce==null||introduce.length==0">
                        <p>空荡荡的..我好像忘记写点什么了OωO</p>
                    </div>
                    <div class="introduce" v-else>
@@ -91,7 +91,7 @@
                        <div style="text-align: center;">图组数量:{{articelMeta.pictureUrlList.length}}</div>
                    </div>
                </div>
                <div class="introduce">
                <div class="introduce" v-if="introduce!=null && introduce.length>0">
                    <pre style="white-space: pre-line;padding: 10px;max-width: 100%;">
                    {{introduce}}
                    </pre>
@@ -598,7 +598,8 @@
                max-width: 120px;
            }
        }
        .countMeta{
        .countMeta {
            bottom: 10px;
        }
    }
src/components/mini/tagInfo.vue
@@ -3,36 +3,30 @@
    <!-- 好用的黑色 #292a2d -->
    <div class="swichTag ">
        <a-page-header title="关于我的一些..小故事" style="padding: 10px 0px 20px 0px;" @back="() => this.$router.go(-1)" />
        <a-timeline pending="...">
            <p slot="pendingDot" style="font-size: 18px;" />
            <a-timeline-item color="" style="margin-left: 10px;">
                <!-- <a-icon slot="dot" type="form" style="font-size: 18px;" /> -->
                <a-icon type="message" slot="dot" style="font-size: 18px;" />
                <br>
                <p>
                <ul>
                    <li> 尘世间一个迷途小码农</li>
                    <li> 喜欢钢琴~喜欢吉他 </li>
                    <li> 爱音乐,也爱看番 </li>
                    <li> B界的白嫖怪</li>
                    <li> PC单机的
                        <!-- <span class="myTip">伪</span> -->
                        <span class="myTip" style="text-decoration:line-through">硬核</span>玩家
                    </li>
                    <li>
                        <img src="http://t.inleft.com/share/media_photo/xm.jpg"
                            style="width: 50px;border-radius: 20px;" />
                        我的小老弟&御用暖床袋
                        <img src="http://t.inleft.com/share/media_photo/IMG_20220117_145633.jpg"
                            style="width: 50px;border-radius: 30px" />
                        <span style="font-size: 10px;color: #999">(小乖)</span>
                    </li>
                    <br>
                </ul>
                </p>
            </a-timeline-item>
        </a-timeline>
        <div>
            <p>
            <ul>
                <li> 尘世间一个迷途小码农</li>
                <li> 喜欢钢琴~喜欢吉他 </li>
                <li> 爱音乐,也爱看番 </li>
                <li> B界的白嫖怪</li>
                <li> PC单机的
                    <!-- <span class="myTip">伪</span> -->
                    <span class="myTip" style="text-decoration:line-through">硬核</span>玩家
                </li>
                <li>
                    <img src="http://t.inleft.com/share/media_photo/xm.jpg" style="width: 50px;border-radius: 20px;" />
                    我的小老弟&御用暖床袋
                    <img src="http://t.inleft.com/share/media_photo/IMG_20220117_145633.jpg"
                        style="width: 50px;border-radius: 30px" />
                    <span style="font-size: 10px;color: #999">(小乖)</span>
                </li>
                <br>
            </ul>
            </p>
        </div>
        <!-- 
  寻找天堂这部作品更引起了我的共鸣
  这个时间点之前,瞰哥还有另一个神作,去月球,我也很喜欢这个
@@ -45,7 +39,45 @@
        <h3 style="text-align: center;">那些对我而言,有意义的时刻..</h3>
        <br>
        <a-tabs defaultActiveKey="1" :tabBarStyle="{'display': 'flex','justify-content': 'center'}">
            <a-tab-pane key="1" tab="编年史">
            <a-tab-pane key="1" tab="更新记录">
                <a-timeline>
                    <a-timeline-item color="" style="margin-left: 10px;">
                        <a-icon slot="dot" type="clock-circle-o" style="font-size: 18px; " />
                        <h3>2022-08-25</h3>
                        <p>更新:拓展了数据库字段,日志可以支持更加丰富的媒体类型了</p>
                    </a-timeline-item>
                    <a-timeline-item color="" style="margin-left: 10px;">
                        <a-icon slot="dot" type="clock-circle-o" style="font-size: 18px;" />
                        <h3>2022-08-11</h3>
                        <p>更新:优化了视频模块,现在可以在
                            <router-link :to="{path:'/platform'}">「月 台」</router-link>看到新发布的视频啦
                        </p>
                    </a-timeline-item>
                    <a-timeline-item color="" style="margin-left: 10px;">
                        <a-icon slot="dot" type="clock-circle-o" style="font-size: 18px;" />
                        <h3>2022-07-29</h3>
                        <span>
                            <router-link to="/comment">优化更新:记住到访的朋友</router-link>
                            <p class="myTip">你的名字.</p>
                        </span>
                        <p>更新:近期更新日志添加小红点提示</p>
                        <p>更新:碎碎念类型日志优化提示</p>
                        <p>新增:拉取最近几条互动记录</p>
                        <p>新增:外链类型日志 for
                            <span class="myTip">浅浅子</span>
                        </p>
                    </a-timeline-item>
                    <a-timeline-item color="" style="margin-left: 10px;">
                        <a-icon slot="dot" type="clock-circle-o" style="font-size: 18px;" />
                        <h3>2022-03-03</h3>
                        <span>
                            <router-link to="/comment">碎碎念</router-link>
                        </span>
                        <p class="myTip">虽然没啥用,可万一有人想给我留言呢☺☺️</p>
                    </a-timeline-item>
                </a-timeline>
            </a-tab-pane>
            <a-tab-pane key="2" tab="编年史">
                <a-timeline>
                    <a-timeline-item color="" style="margin-left: 10px;">
                        <a-icon slot="dot" type="clock-circle-o" style="font-size: 18px; " />
@@ -125,45 +157,7 @@
                        <br>不离不弃,直至永远
                    </a-timeline-item> -->
            </a-tab-pane>
            <a-tab-pane key="2" tab="更新记录">
                <a-timeline>
                    <a-timeline-item color="" style="margin-left: 10px;">
                        <a-icon slot="dot" type="clock-circle-o" style="font-size: 18px; " />
                        <h3>2022-08-25</h3>
                        <p>更新:拓展了数据库字段,日志可以支持更加丰富的媒体类型了</p>
                    </a-timeline-item>
                    <a-timeline-item color="" style="margin-left: 10px;">
                        <a-icon slot="dot" type="clock-circle-o" style="font-size: 18px;" />
                        <h3>2022-08-11</h3>
                        <p>更新:优化了视频模块,现在可以在
                            <router-link :to="{path:'/platform'}">「月 台」</router-link>看到新发布的视频啦
                        </p>
                        <p class="myTip">谱子??谱子还没想好放哪里..</p>
                    </a-timeline-item>
                    <a-timeline-item color="" style="margin-left: 10px;">
                        <a-icon slot="dot" type="clock-circle-o" style="font-size: 18px;" />
                        <h3>2022-07-29</h3>
                        <span>
                            <router-link to="/comment">优化更新:记住到访的朋友</router-link>
                            <p class="myTip">你的名字.</p>
                        </span>
                        <p>更新:近期更新日志添加小红点提示</p>
                        <p>更新:碎碎念类型日志优化提示</p>
                        <p>新增:拉取最近几条互动记录</p>
                        <p>新增:外链类型日志 for
                            <span class="myTip">浅浅子</span>
                        </p>
                    </a-timeline-item>
                    <a-timeline-item color="" style="margin-left: 10px;">
                        <a-icon slot="dot" type="clock-circle-o" style="font-size: 18px;" />
                        <h3>2022-03-03</h3>
                        <span>
                            <router-link to="/comment">碎碎念</router-link>
                        </span>
                        <p class="myTip">虽然没啥用,可万一有人想给我留言呢☺☺️</p>
                    </a-timeline-item>
                </a-timeline>
            </a-tab-pane>
        </a-tabs>
    </div>
src/components/swichLabel/edit.vue
New file
@@ -0,0 +1,69 @@
<template>
    <div class="blog-main">
        <div class="edit-main">
            <div class="edit-info">
                <div class="edit-info-head">
                    头
                </div>
                <div class="edit-info-body">
                    信息
                </div>
            </div>
            <div class="edit-write">
                <div class="edit-write-input">输入区</div>
                <div class="edit-write-preview">对比区</div>
            </div>
        </div>
    </div>
</template>
<script>
</script>
<style lang="less">
    .edit-main {
        min-height: 860px;
        width: 100%;
        display: grid;
        grid-template-columns: repeat(11, 1fr);
    }
    .edit-info {
        grid-column-start: 1;
        grid-column-end: 4;
        display: flex;
        flex-direction: column;
    }
    .edit-info-head,
    .edit-info-body {
        width: 100%;
    }
    .edit-info-head {
        height: 200px;
        background-color: #aa55ff;
    }
    .edit-info-body {
        background-color: #aa007f;
        height: 100%;
    }
    .edit-write {
        grid-column-start: 4;
        grid-column-end: 12;
        background-color: #ffaaff;
        display: flex;
    }
    .edit-write-input {
        width: 100%;
        background-color: #aa557f;
    }
    .edit-write-preview {
        width: 100%;
        background-color: #55007f;
    }
</style>
src/components/swichLabel/main1-home.vue
@@ -252,8 +252,6 @@
        overflow-x: hidden;
        overflow-y: hidden;
        transition: height 1s;
    }
    .blog-scroll:hover::-webkit-scrollbar {
src/config/myConstant.js
@@ -1,6 +1,7 @@
//常量
const myConstant = {
    uploadFileSizeLimit: 2 * 1024 * 1024,
    uploadVideoSizeLimit: 200 * 1024 * 1024,
    visitorDataKey: "visitorData.inleft.com",
    userName: "inleft",
    img404: "this.onerror='';this.src=\"http://t.inleft.com/share/media_photo/idea_beijing.jpg\"",
src/config/router.config.js
@@ -8,6 +8,7 @@
import link from '../components/swichLabel/main4-link.vue'
import login from '../components/swichLabel/main5-login.vue'
import comment from '../components/swichLabel/main6-comment.vue'
import edit from '../components/swichLabel/edit.vue'
import platformGroup from '../components/group/platformGroup.vue'
@@ -83,22 +84,23 @@
                path: '/platform',
                component: platform,
                children: [
                //     {
                //     path: '/',
                //     name: "videoList",
                //     component: videoList,
                // },
                {
                    path: '/',
                    name: "platformGroup",
                    component: platformGroup,
                },
                {
                    path: '/videoDetail',
                    name: "videoDetail",
                    component: videoDetail,
                }]
                    //     {
                    //     path: '/',
                    //     name: "videoList",
                    //     component: videoList,
                    // },
                    {
                        path: '/',
                        name: "platformGroup",
                        component: platformGroup,
                    },
                    {
                        path: '/videoDetail',
                        name: "videoDetail",
                        component: videoDetail,
                    }
                ]
            },
            {
                path: '/main3',
@@ -110,6 +112,10 @@
            }, {
                path: '/login',
                component: login,
            }, {
                path: '/edit',
                name: 'edit',
                component: edit,
            },