浏览代码

no message

kuaifan 5 年之前
父节点
当前提交
4e0685695a

+ 26 - 0
resources/assets/js/main/components/WContent.vue

@@ -0,0 +1,26 @@
+<template>
+    <div class="w-content">
+        <slot/>
+    </div>
+</template>
+
+<style lang="scss" scoped>
+    .w-content {
+        position: absolute;
+        top: 72px;
+        left: 0;
+        right: 0;
+        bottom: 0;
+        overflow: auto;
+        background-image: url("../../../statics/images/bg1.jpg");
+
+        .w-container {
+            min-height: 500px;
+        }
+    }
+</style>
+<script>
+    export default {
+        name: 'WContent',
+    }
+</script>

+ 160 - 0
resources/assets/js/main/components/WHeader.vue

@@ -0,0 +1,160 @@
+<template>
+    <div class="w-header">
+        <div class="w-header-row">
+            <div class="w-header-row-left">
+                <ul>
+                    <li :class="value==='todo'?'active':''">
+                        <a href="javascript:void(0)" @click="tabPage('todo')"><i class="ft icon">&#xe89e;</i>待办</a>
+                    </li><li :class="value==='project'?'active':''">
+                        <a href="javascript:void(0)" @click="tabPage('project')"><i class="ft icon">&#xe6b8;</i>项目</a>
+                    </li><li :class="value==='doc'?'active':''">
+                        <a href="javascript:void(0)" @click="tabPage('doc')"><i class="ft icon">&#xe915;</i>知识库</a>
+                    </li><li :class="value==='team'?'active':''">
+                        <a href="javascript:void(0)" @click="tabPage('team')"><i class="ft icon">&#xe90d;</i>同事</a>
+                    </li>
+                </ul>
+            </div>
+            <div class="w-header-row-flex"></div>
+            <div class="w-header-row-right">
+                <div class="user-info">
+                    <span class="username">欢迎您,{{userInfo.username || "尊敬的会员"}}!</span>
+                    <ul>
+                        <li><span class="ft hover">个人中心</span></li>
+                        <li @click="logout"><span class="ft hover">退出登录</span></li>
+                    </ul>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<style lang="scss" scoped>
+    .w-header {
+        z-index: 15;
+        height: 40px;
+        position: fixed;
+        left: 0;
+        top: 0;
+        right: 0;
+        font-size: 14px;
+        background: #0396f2 linear-gradient(45deg, #0396f2 0%, #0285d7 100%);
+        box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.25);
+
+        .icon {
+            font-size: 16px;
+            margin-right: 3px;
+        }
+
+        .w-header-row {
+            display: flex;
+            color: #fff;
+            height: 40px;
+            position: relative;
+            z-index: 10;
+            margin: 0 32px;
+            .w-header-row-left {
+                max-width: 50%;
+                white-space: nowrap;
+                overflow: hidden;
+                overflow-x: auto;
+                -webkit-backface-visibility: hidden;
+                -webkit-overflow-scrolling: touch;
+                -webkit-perspective: 1000;
+                li {
+                    line-height: 40px;
+                    color: #fff;
+                    display: inline-block;
+                    a {
+                        color: #fff;
+                        display: block;
+                        width: 116px;
+                        text-align: center;
+                        &:visited {
+                            color: #fff;
+                        }
+                        &:hover {
+                            color: #f2f2f2;
+                        }
+                    }
+                }
+                li:hover, li.active {
+                    background: #0277c0;
+                }
+            }
+            .w-header-row-flex {
+                flex: 1;
+            }
+            .w-header-row-right {
+                white-space: nowrap;
+                text-align: right;
+                line-height: 40px;
+                .user-info {
+                    display: inline-block;
+                    position: relative;
+                    margin-right: 6px;
+                    cursor: pointer;
+                    &:hover {
+                        color: #f0f0f0 !important;
+                        ul {
+                            display: block;
+                        }
+                    }
+                    ul {
+                        display: none;
+                        position: absolute;
+                        background: #fff;
+                        border: 1px solid #eee;
+                        right: 0;
+                        top: 38px;
+                        width: 84px;
+                        text-align: center;
+                        border-radius: 2px;
+                        li {
+                            height: 36px;
+                            line-height: 36px;
+                            color: #666;
+                            border-bottom: 1px solid #eee;
+                            &:last-child {
+                                border-bottom: 0;
+                            }
+                            &:hover {
+                                color: #0396f2;
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+</style>
+<script>
+    export default {
+        name: 'WHeader',
+        props: {
+            value: {
+            },
+        },
+        data() {
+            return {
+                userInfo: $A.jsonParse($A.storage("userInfo")),
+            }
+        },
+        mounted() {
+
+        },
+        methods: {
+            tabPage(path) {
+                this.goForward({path: '/' + path});
+            },
+            logout() {
+                this.$Modal.confirm({
+                    title: '退出登录',
+                    content: '<p>您确定要退出登录吗?</p>',
+                    onOk: () => {
+                        this.goForward({path: '/'}, true);
+                    },
+                });
+            }
+        },
+    }
+</script>

+ 49 - 0
resources/assets/js/main/pages/doc.vue

@@ -0,0 +1,49 @@
+<template>
+    <div class="w-main doc">
+
+        <v-title>知识库-轻量级的团队在线协作</v-title>
+
+        <w-header value="doc"></w-header>
+
+        <div class="w-nav">
+            <div class="nav-row">
+                <div class="w-nav-left">
+                    <span class="new ft hover"><i class="ft icon"></i>新建知识库</span>
+                </div>
+                <div class="w-nav-flex"></div>
+            </div>
+        </div>
+
+        <w-content></w-content>
+
+    </div>
+</template>
+
+<style lang="scss" scoped>
+    .doc {
+    }
+</style>
+<script>
+    import WHeader from "../components/WHeader";
+    import WContent from "../components/WContent";
+    export default {
+        components: {WContent, WHeader},
+        data () {
+            return {
+
+            }
+        },
+        mounted() {
+
+        },
+        computed: {
+
+        },
+        watch: {
+
+        },
+        methods: {
+
+        },
+    }
+</script>

+ 339 - 0
resources/assets/js/main/pages/index.vue

@@ -0,0 +1,339 @@
+<template>
+    <div class="w-box index">
+
+        <v-title>轻量级的团队在线协作</v-title>
+
+        <div class="header">
+            <div class="z-row">
+                <div class="header-col-sub">
+                    <h2>
+                        <img src="../../../statics/images/logo4.png">
+                        <span>轻量级的团队在线协作</span>
+                    </h2>
+                </div>
+                <div class="z-1"></div>
+            </div>
+        </div>
+
+        <div class="welcome">
+            <div class="banner">
+                <div class="z-row">
+                    <div class="z-16">
+                        <Carousel class="banner-carousel" autoplay loop :autoplay-speed="5000">
+                            <CarouselItem>
+                                <img src="../../../statics/images/index/banner/1.jpg">
+                            </CarouselItem>
+                            <CarouselItem>
+                                <img src="../../../statics/images/index/banner/2.jpg">
+                            </CarouselItem>
+                        </Carousel>
+                    </div>
+                    <div class="z-8"><h3>酷团队协作工具就从这里开始</h3>
+                        <div class="bl inline-block">
+                            <span class="start" @click="loginShow=true">立即登陆</span>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="second">
+                <div class="bg"></div>
+                <div class="z-row">
+                    <div class="z-6"><a href="#W_link1"><i class="ft icon">&#xe753;</i>待办四象限</a></div>
+                    <div class="z-6"><a href="#W_link2"><i class="ft icon">&#xe6b8;</i>项目管理</a></div>
+                    <div class="z-6"><a href="#W_link3"><i class="ft icon">&#xe915;</i>在线知识库</a></div>
+                    <div class="z-6"><a href="#W_link4"><i class="ft icon">&#xe706;</i>日程管理</a></div>
+                </div>
+            </div>
+        </div>
+
+        <div class="z-row block">
+            <div class="z-6">
+                <div class="wrap-left" id="W_link1"><i class="ft icon">&#xe753;</i>待办四象限:突出事情优先级,帮助员工合理安排时间,提高工作效率。</div>
+            </div>
+            <div class="z-18"><img src="../../../statics/images/index/todo.jpg"/></div>
+        </div>
+        <div class="z-row block">
+            <div class="z-18"><img src="../../../statics/images/index/project.jpg"/></div>
+            <div class="z-6">
+                <div class="wrap-right" id="W_link2"><i class="ft icon">&#xe6b8;</i>项目管理:自定义项目看板,可视化任务安排。</div>
+            </div>
+        </div>
+        <div class="z-row block">
+            <div class="z-6">
+                <div class="wrap-left" id="W_link3"><i class="ft icon">&#xe915;</i>在线知识库:在线流程图,在线文档,以及可视化的目录编排,文档管理无忧。</div>
+            </div>
+            <div class="z-18"><img src="../../../statics/images/index/wiki.jpg"/></div>
+        </div>
+        <div class="z-row block">
+            <div class="z-18"><img src="../../../statics/images/index/week.jpg"/></div>
+            <div class="z-6">
+                <div class="wrap-right" id="W_link4"><i class="ft icon">&#xe706;</i>日程管理:可视化日程管理,快速搞定工作计划,了解工作宏观安排</div>
+            </div>
+        </div>
+
+        <div class="p-footer"><span>WorkTeam &copy; 2018-2020</span></div>
+
+        <Modal
+            v-model="loginShow"
+            title="用户登录"
+            :closable="false"
+            :mask-closable="false">
+            <Form ref="login" :model="formInline" :rules="ruleInline">
+                <FormItem prop="username">
+                    <Input type="text" v-model="formInline.username" placeholder="用户名">
+                        <Icon type="ios-person-outline" slot="prepend"></Icon>
+                    </Input>
+                </FormItem>
+                <FormItem prop="password">
+                    <Input type="password" v-model="formInline.password" placeholder="密码">
+                        <Icon type="ios-lock-outline" slot="prepend"></Icon>
+                    </Input>
+                </FormItem>
+            </Form>
+            <div slot="footer">
+                <Button type="default" @click="loginShow=false">取消</Button>
+                <Button type="primary" :loading="loadIng > 0" @click="onLogin">登录</Button>
+            </div>
+        </Modal>
+    </div>
+</template>
+
+<style lang="scss" scoped>
+    .index {
+        position: absolute;
+        color: #000000;
+        top: 0;
+        left: 0;
+        min-width: 100%;
+        min-height: 100%;
+        padding: 0;
+        margin: 0;
+        .header {
+            height: 50px;
+            background: #0396f2;
+            padding-top: 12px;
+            max-width: 1280px;
+            margin: 0 auto;
+            .z-row {
+                color: #fff;
+                height: 50px;
+                position: relative;
+                z-index: 2;
+                max-width: 1680px;
+                margin: 0 auto;
+                .header-col-sub {
+                    width: 500px;
+                    h2 {
+                        font-size: 1.2rem;
+                        height: 48px;
+                        line-height: 54px;
+                        display: inline-block;
+                        width: 400px;
+                        position: relative;
+                        img {
+                            width: 150px;
+                            margin: 1rem 0 0 1rem;
+                        }
+                        span {
+                            position: absolute;
+                            font-size: 12px;
+                            font-weight: normal;
+                            top: 8px;
+                            left: 172px;
+                            color: rgba(255, 255, 255, 0.85);
+                        }
+                    }
+                }
+                .header-1 {
+                    flex-grow: 1;
+                    flex-shrink: 1;
+                    flex-basis: 0;
+                    max-width: 100%;
+                }
+            }
+        }
+        .welcome {
+            height: 700px;
+            display: block;
+            background: #2d8cf0;
+            overflow: hidden;
+            color: #FFFFFF;
+            padding-top: 480px;
+            margin-top: -480px;
+            transform: skewY(-2deg);
+            box-shadow: 0 2px 244px 0 rgba(56, 132, 255, 0.4);
+            .unslider-arrow {
+                display: none;
+            }
+            .banner {
+                padding-top: 60px;
+                height: 460px;
+                max-width: 1200px;
+                margin: 0 auto;
+                transform: skewY(2deg);
+                .banner-carousel {
+                    max-width: 685px;
+                }
+                img {
+                    height: 400px;
+                    border: 5px solid #fff;
+                    border-radius: 5px;
+                }
+            }
+            .z-8 {
+                text-align: center;
+            }
+            h3 {
+                color: rgba(255, 255, 255, 0.8);
+                font-size: 40px;
+                font-weight: normal;
+                text-align: center;
+                margin: 30px auto;
+                width: 380px;
+            }
+            .start {
+                display: inline-block;
+                width: 160px;
+                height: 50px;
+                line-height: 50px;
+                text-align: center;
+                font-weight: normal;
+                cursor: pointer;
+                font-size: 20px;
+                background: #fff;
+                color: #0396f2;
+                border-radius: 4px;
+                border: 0;
+
+                &:hover, &:focus {
+                    background: #f6f6f6;
+                    color: #0396f2;
+                }
+            }
+            .second {
+                position: relative;
+                height: 220px;
+                text-align: center;
+                transform: skewY(2deg);
+
+                .bg {
+                    transform: skewY(-4.5deg);
+                    display: block;
+                    position: absolute;
+                    top: 0;
+                    left: 0;
+                    right: 0;
+                    bottom: 0;
+                    background: #1F65D6;
+                }
+                .z-row {
+                    z-index: 2;
+                    position: relative;
+                    font-size: 22px;
+                    max-width: 1400px;
+                    margin: 0 auto;
+                    line-height: 220px;
+                }
+                i {
+                    color: rgba(255, 255, 255, 0.85);
+                    margin-right: 6px;
+                }
+                a {
+                    color: #fff;
+                    &:hover, &:visited {
+                        color: #fff;
+                    }
+                }
+
+            }
+        }
+
+        .block {
+            max-width: 1200px;
+            margin: 30px auto;
+            padding-top: 50px;
+            border: 1px solid #F4F7F9;
+
+            .wrap-left, .wrap-right {
+                line-height: 36px;
+                color: #666;
+                font-size: 16px;
+            }
+            .wrap-left {
+                margin: 20px 30px 0 0;
+            }
+            .wrap-right {
+                margin: 20px 0 0 30px;
+            }
+            i {
+                color: rgba(248, 14, 21, 0.7);
+                margin-right: 6px;
+            }
+            img {
+                border: 5px solid #fff;
+                border-radius: 10px;
+                width: 100%;
+            }
+        }
+
+        .p-footer {
+            margin: 20px 0;
+            text-align: center;
+            color: #333;
+
+            a, span {
+                color: #333;
+                margin-left: 10px;
+            }
+        }
+    }
+</style>
+<script>
+    export default {
+        data () {
+            return {
+                loadIng: 0,
+                loginShow: false,
+                formInline: {
+                    username: '',
+                    password: ''
+                },
+                ruleInline: {
+                    username: [
+                        { required: true, message: '请填写用户名!', trigger: 'blur' }
+                    ],
+                    password: [
+                        { required: true, message: '请填写登录密码!', trigger: 'blur' },
+                        { type: 'string', min: 6, message: '密码长度不能少于6位!', trigger: 'blur' }
+                    ]
+                }
+            }
+        },
+        mounted() {
+
+        },
+        computed: {
+
+        },
+        watch: {
+
+        },
+        methods: {
+            onLogin() {
+                this.$refs.login.validate((valid) => {
+                    if (valid) {
+                        this.loadIng++;
+                        setTimeout(() => {
+                            this.loadIng--;
+                            this.$Message.success('登录成功');
+                            this.loginShow = false;
+                            this.goForward({path: '/todo'}, true);
+                        }, 3000);
+                    } else {
+                        this.$Message.error('请填写正确的信息!');
+                    }
+                })
+            }
+        },
+    }
+</script>

+ 54 - 0
resources/assets/js/main/pages/project.vue

@@ -0,0 +1,54 @@
+<template>
+    <div class="w-main project">
+
+        <v-title>项目-轻量级的团队在线协作</v-title>
+
+        <w-header value="project"></w-header>
+
+        <div class="w-nav">
+            <div class="nav-row">
+                <div class="w-nav-left">
+                    <span class="ft hover"><i class="ft icon"></i>新建项目</span>
+                </div>
+                <div class="w-nav-flex"></div>
+                <div class="w-nav-right">
+                    <span class="ft hover"><i class="ft icon"></i> 收藏的项目</span>
+                    <span class="ft hover"><i class="ft icon"></i> 参与的项目</span>
+                    <span class="ft hover"><i class="ft icon"></i> 我创建的项目</span>
+                </div>
+            </div>
+        </div>
+
+        <w-content></w-content>
+
+    </div>
+</template>
+
+<style lang="scss" scoped>
+    .project {
+    }
+</style>
+<script>
+    import WHeader from "../components/WHeader";
+    import WContent from "../components/WContent";
+    export default {
+        components: {WContent, WHeader},
+        data () {
+            return {
+
+            }
+        },
+        mounted() {
+
+        },
+        computed: {
+
+        },
+        watch: {
+
+        },
+        methods: {
+
+        },
+    }
+</script>

+ 52 - 0
resources/assets/js/main/pages/team.vue

@@ -0,0 +1,52 @@
+<template>
+    <div class="w-main team">
+
+        <v-title>团队-轻量级的团队在线协作</v-title>
+
+        <w-header value="team"></w-header>
+
+        <div class="w-nav">
+            <div class="nav-row">
+                <div class="w-nav-left">
+                    <i class="ft icon"></i>同事列表
+                </div>
+                <div class="w-nav-flex"></div>
+                <div class="w-nav-right">
+                    <span class="ft hover"><i class="ft icon"></i>添加同事</span>
+                </div>
+            </div>
+        </div>
+
+        <w-content></w-content>
+
+    </div>
+</template>
+
+<style lang="scss" scoped>
+    .team {
+    }
+</style>
+<script>
+    import WHeader from "../components/WHeader";
+    import WContent from "../components/WContent";
+    export default {
+        components: {WContent, WHeader},
+        data () {
+            return {
+
+            }
+        },
+        mounted() {
+
+        },
+        computed: {
+
+        },
+        watch: {
+
+        },
+        methods: {
+
+        },
+    }
+</script>

+ 187 - 0
resources/assets/js/main/pages/todo.vue

@@ -0,0 +1,187 @@
+<template>
+    <div class="w-main todo">
+
+        <v-title>待办-轻量级的团队在线协作</v-title>
+
+        <w-header value="todo"></w-header>
+
+        <div class="w-nav">
+            <div class="nav-row">
+                <div class="w-nav-left">
+                    <i class="ft icon">&#xE787;</i>我的待办
+                </div>
+                <div class="w-nav-flex"></div>
+                <div class="w-nav-right">
+                    <span class="ft hover"><i class="ft icon">&#xE706;</i>待办日程</span>
+                    <span class="ft hover"><i class="ft icon">&#xE73D;</i>已完成的任务</span>
+                    <span class="ft hover"><i class="ft icon">&#xE748;</i>我关注的任务</span>
+                    <span class="ft hover"><i class="ft icon">&#xE743;</i>周报/日报</span>
+                </div>
+            </div>
+        </div>
+
+        <w-content>
+            <div class="todo-main">
+                <ul>
+                    <li>
+                        <div class="todo-card">
+                            <div class="todo-card-head p1">
+                                <i class="ft icon flag"></i>
+                                <div class="todo-card-title">重要且紧急</div>
+                                <i class="ft icon close"></i>
+                            </div>
+                            <div class="todo-card-content">
+                                <div class="empty">恭喜你!已完成了所有待办</div>
+                            </div>
+                        </div>
+                    </li>
+                    <li>
+                        <div class="todo-card">
+                            <div class="todo-card-head p2">
+                                <i class="ft icon flag"></i>
+                                <div class="todo-card-title">重要不紧急</div>
+                                <i class="ft icon close"></i>
+                            </div>
+                            <div class="todo-card-content">
+                                <div class="empty">恭喜你!已完成了所有待办</div>
+                            </div>
+                        </div>
+                    </li>
+                </ul>
+                <ul>
+                    <li>
+                        <div class="todo-card">
+                            <div class="todo-card-head p3">
+                                <i class="ft icon flag"></i>
+                                <div class="todo-card-title">紧急不重要</div>
+                                <i class="ft icon close"></i>
+                            </div>
+                            <div class="todo-card-content">
+                                <div class="empty">恭喜你!已完成了所有待办</div>
+                            </div>
+                        </div>
+                    </li>
+                    <li>
+                        <div class="todo-card">
+                            <div class="todo-card-head p4">
+                                <i class="ft icon flag"></i>
+                                <div class="todo-card-title">不重要不紧急</div>
+                                <i class="ft icon close"></i>
+                            </div>
+                            <div class="todo-card-content">
+                                <div class="empty">恭喜你!已完成了所有待办</div>
+                            </div>
+                        </div>
+                    </li>
+                </ul>
+            </div>
+        </w-content>
+
+    </div>
+</template>
+
+<style lang="scss" scoped>
+    .todo {
+        .todo-main {
+            display: flex;
+            flex-direction: column;
+            align-items: center;
+            justify-content: center;
+            width: 100%;
+            height: 100%;
+            min-height: 500px;
+            padding: 5px;
+            ul {
+                flex: 1;
+                display: flex;
+                flex-direction: row;
+                align-items: center;
+                justify-content: center;
+                width: 100%;
+                li {
+                    flex: 1;
+                    height: 100%;
+                    position: relative;
+                    .todo-card {
+                        position: absolute;
+                        top: 10px;
+                        left: 10px;
+                        right: 10px;
+                        bottom: 10px;
+                        display: flex;
+                        flex-direction: column;
+                        .todo-card-head {
+                            display: flex;
+                            align-items: center;
+                            padding: 8px 10px;
+                            border-radius: 4px 4px 0 0;
+                            color: #ffffff;
+                            .ft.icon {
+                                transform: scale(1);
+                            }
+                            .flag {
+                                font-weight: bold;
+                                font-size: 14px;
+                                margin-right: 5px;
+                            }
+                            .close {
+                                font-size: 18px;
+                                font-weight: normal;
+                            }
+                            .todo-card-title {
+                                flex: 1;
+                                font-weight: bold;
+                            }
+                            &.p1 {
+                                background: rgba(248, 14, 21, 0.6);
+                            }
+                            &.p2 {
+                                background: rgba(236, 196, 2, 0.5);
+                            }
+                            &.p3 {
+                                background: rgba(0, 159, 227, 0.7);
+                            }
+                            &.p4 {
+                                background: rgba(121, 170, 28, 0.7);
+                            }
+                        }
+                        .todo-card-content {
+                            flex: 1;
+                            background-color: #f5f6f7;
+                            border-radius: 0 0 4px 4px;
+                            .empty {
+                                margin: 20px auto;
+                                text-align: center;
+                                color: #666;
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+</style>
+<script>
+    import WHeader from "../components/WHeader";
+    import WContent from "../components/WContent";
+    export default {
+        components: {WContent, WHeader},
+        data () {
+            return {
+
+            }
+        },
+        mounted() {
+
+        },
+        computed: {
+
+        },
+        watch: {
+
+        },
+        methods: {
+
+        },
+    }
+</script>

+ 22 - 2
resources/assets/js/main/routes.js

@@ -1,7 +1,27 @@
 export default [
     {
         path: '/',
-        name: 'main',
-        component: resolve => require(['./pages/main.vue'], resolve)
+        name: 'index',
+        component: resolve => require(['./pages/index.vue'], resolve)
+    }, {
+        path: '/todo',
+        name: 'todo',
+        meta: { slide: false },
+        component: resolve => require(['./pages/todo.vue'], resolve)
+    }, {
+        path: '/project',
+        name: 'project',
+        meta: { slide: false },
+        component: resolve => require(['./pages/project.vue'], resolve)
+    }, {
+        path: '/doc',
+        name: 'doc',
+        meta: { slide: false },
+        component: resolve => require(['./pages/doc.vue'], resolve)
+    }, {
+        path: '/team',
+        name: 'team',
+        meta: { slide: false },
+        component: resolve => require(['./pages/team.vue'], resolve)
     }
 ]

+ 163 - 5
resources/assets/sass/app.scss

@@ -8,11 +8,169 @@
 // Loading
 @import "loading";
 
-.navbar-laravel {
-    background-color: #fff;
-    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);
-}
-
 body {
     font-family: -apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif;
+    color: #333;
+    font-size: 14px;
+    margin: 0;
+    padding: 0;
+    -webkit-font-smoothing: antialiased;
+}
+
+div, span {
+    outline: 0;
+}
+
+em, i {
+    font-style: normal;
+}
+
+dd, dl, dt, li, ol, ul {
+    margin: 0;
+    padding: 0;
+    list-style: none;
+}
+
+.z-row {
+    text-rendering: optimizespeed;
+    display: flex;
+    align-items: stretch;
+    flex-flow: row wrap
+}
+
+.z-row.gap .z-1,.z-row.gap .z-3,.z-row.gap .z-4,.z-row.gap .z-6,.z-row.gap .z-8,.z-row.gap .z-12,.z-row.gap .z-16,.z-row.gap .z-18,.z-row.gap .z-20,.z-row.gap .z-21,.z-row.gap .z-col {
+    padding: .35rem .5rem
+}
+
+.z-row>.z-row {
+    width: 100%
+}
+
+.z-1,.z-3,.z-4,.z-6,.z-8,.z-12,.z-16,.z-18,.z-20,.z-21,.z-col {
+    display: inline-block;
+    zoom: 1;
+    box-sizing: border-box;
+    vertical-align: top;
+    text-rendering: auto
+}
+
+.z-1 {
+    flex-grow: 1;
+    flex-shrink: 1;
+    flex-basis: 0;
+    max-width: 100%
+}
+
+.z-3 {
+    width: 12.5%;
+    max-width: 12.5%
+}
+
+.z-4 {
+    width: 16.6667%;
+    max-width: 16.6667%
+}
+
+.z-6 {
+    width: 25%
+}
+
+.z-8 {
+    width: 33.3333%
+}
+
+.z-12 {
+    width: 50%
+}
+
+.z-16 {
+    width: 66.6667%
+}
+
+.z-18 {
+    width: 75%
+}
+
+.z-20 {
+    width: 83.3333%
+}
+
+.z-21 {
+    width: 87.5%
+}
+
+.w-box {
+    -webkit-box-sizing: content-box;
+    box-sizing: content-box;
+    * {
+        -webkit-box-sizing: content-box;
+        box-sizing: content-box;
+    }
+}
+
+.w-main {
+    position: absolute;
+    color: #000000;
+    top: 0;
+    left: 0;
+    min-width: 100%;
+    min-height: 100%;
+    padding: 0;
+    margin: 0;
+    background: no-repeat center;
+    background-size: cover;
+
+    .w-nav {
+        position: fixed;
+        left: 0;
+        right: 0;
+        top: 40px;
+        font-size: 14px;
+        background-color: rgba(255, 255, 255, 0.9);
+        z-index: 12;
+        color: #606266;
+        height: 32px;
+        line-height: 34px;
+        .nav-row {
+            margin: 0 32px;
+            display: flex;
+            flex-direction: row;
+            align-items: center;
+            &:before,
+            &:after {
+                display: table;
+                content: "";
+            }
+            &:after {
+                clear: both;
+            }
+            span {
+                margin: 0 12px 0 0;
+                cursor: pointer;
+            }
+            span + span {
+                padding-left: 12px;
+                border-left: 1px solid #ccc;
+            }
+            .icon {
+                font-size: 16px;
+                margin-right: 2px;
+            }
+            .w-nav-left {
+                white-space: nowrap;
+                padding-right: 24px;
+            }
+            .w-nav-flex {
+                flex: 1;
+            }
+            .w-nav-right {
+                white-space: nowrap;
+                overflow: hidden;
+                overflow-x: auto;
+                -webkit-backface-visibility: hidden;
+                -webkit-overflow-scrolling: touch;
+                -webkit-perspective: 1000;
+            }
+        }
+    }
 }

文件差异内容过多而无法显示
+ 113 - 0
resources/assets/sass/fonts-ft.scss


+ 4 - 1
resources/assets/sass/fonts.scss

@@ -45,4 +45,7 @@
     font-weight: 600;
     src: local('Raleway SemiBold'), local('Raleway-SemiBold'), url(./fonts/xkvoNo9fC8O2RDydKj12bwzyDMXhdD8sAj6OAJTFsBI.woff2) format('woff2');
     unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215;
-}
+}
+
+/* zenicon */
+@import "fonts-ft";

二进制
resources/assets/statics/images/index/banner/1.jpg


二进制
resources/assets/statics/images/index/banner/2.jpg


二进制
resources/assets/statics/images/index/project.jpg


二进制
resources/assets/statics/images/index/todo.jpg


二进制
resources/assets/statics/images/index/week.jpg


二进制
resources/assets/statics/images/index/wiki.jpg


二进制
resources/assets/statics/images/logo4.png