bianjiang 1 year ago
parent
commit
a68f734aee

+ 1 - 1
admin.html

@@ -2,7 +2,7 @@
 <html lang="en">
   <head>
     <meta charset="UTF-8" />
-    <link rel="icon" type="image/svg+xml" href="/vite.svg" />
+    <link rel="shortcut icon " type="images/x-icon" href="/favicon.ico" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
     <title>西华大学美术与设计学院--后台管理系统</title>
   </head>

+ 1 - 1
index.html

@@ -2,7 +2,7 @@
 <html lang="en">
   <head>
     <meta charset="UTF-8" />
-    <link rel="icon" type="image/svg+xml" href="/vite.svg" />
+    <link rel="shortcut icon " type="images/x-icon" href="/favicon.ico" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
     <title>西华大学美术与设计学院</title>
   </head>

BIN
public/favicon.ico


+ 19 - 1
src/modules/components/CategoryModal.tsx

@@ -1,6 +1,13 @@
 import Modal from "@/components/Provider/Modal";
 import { css } from "@linaria/core";
-import { Button, Checkbox, Form, Input, Select } from "ant-design-vue";
+import {
+  Button,
+  Checkbox,
+  Form,
+  Input,
+  InputNumber,
+  Select,
+} from "ant-design-vue";
 import { defineComponent, reactive } from "vue";
 import { any, number } from "vue-types";
 import { uploader } from "../objects";
@@ -33,6 +40,9 @@ export default defineComponent({
 
     const rules = reactive({
       name: [{ required: true, message: "名称不能为空", trigger: "change" }],
+      sort: [
+        { required: true, message: "菜单顺序不能为空", trigger: "change" },
+      ],
       cover: [{ required: false }],
       subName: [{ required: false }],
       isHome: [{ required: false }],
@@ -85,6 +95,14 @@ export default defineComponent({
                 <Select.Option value="download">下载</Select.Option>
               </Select>
             </Form.Item>
+            <Form.Item {...validateInfos.sort} label={"菜单顺序"}>
+              <InputNumber
+                step={1}
+                min={0}
+                placeholder={"请输入菜单顺序"}
+                v-model={[formState.formData.sort, "value"]}
+              />
+            </Form.Item>
             <Form.Item {...validateInfos.isHome} label={"是否首页展示"}>
               <Checkbox
                 v-model={[formState.formData.isHome, "checked"]}

+ 2 - 2
src/views/admin/category/CategoryTree.tsx

@@ -46,7 +46,7 @@ export default defineComponent({
                   emit("update", item, key);
                 }}
               ></Button>
-              <Button
+              {/* <Button
                 class="tree_btn"
                 title="删除"
                 icon={<DeleteOutlined />}
@@ -54,7 +54,7 @@ export default defineComponent({
                   e.stopPropagation();
                   emit("delete", item);
                 }}
-              ></Button>
+              ></Button> */}
             </div>
           </div>
         );

+ 8 - 2
src/views/website/components/layout/Header.tsx

@@ -18,8 +18,8 @@ export default defineComponent(() => {
       <div class={HeaderLayout}>
         <div class={"lay_top flex align-center justify-between"}>
           <div>立足四川、面向全国,贴近行业,服务社会。</div>
-          <div>
-            <Space size={50}>
+          <div class={"top_links"}>
+            <Space size={0}>
               {topCate.map((e) => {
                 return (
                   <router-link to={`/detail/${e._id}`}>{e.name}</router-link>
@@ -54,6 +54,12 @@ const HeaderLayout = css`
         text-decoration: underline;
       }
     }
+    .top_links {
+      .ant-space-item {
+        width: 130px;
+        text-align: center;
+      }
+    }
   }
   .lay_menu {
     align-items: center;

+ 2 - 0
src/views/website/components/layout/Menu.tsx

@@ -56,8 +56,10 @@ const Menus = defineComponent({
 const MenuLayout = css`
   display: flex;
   align-items: center;
+  justify-content: flex-end;
   a {
     flex: 1;
+    max-width: 130px;
     position: relative;
     margin-top: 16px;
     padding-bottom: 22px;

+ 4 - 0
src/views/website/detail/ListPage.tsx

@@ -212,11 +212,15 @@ const TeacherItemStyle = css`
       width: 100%;
       height: 100%;
       object-fit: cover;
+      transition: all 0.3s ease-in-out;
     }
     &:hover {
       .item_footer {
         transform: translateY(0);
       }
+      img {
+        transform: scale(1.2);
+      }
     }
     .item_footer {
       position: absolute;

+ 1 - 1
src/views/website/detail/PageTabsLow.tsx

@@ -37,7 +37,7 @@ export default defineComponent({
 const page = css`
   display: flex;
   align-items: center;
-  margin-bottom: 50px;
+  margin-bottom: 25px;
   .tabs_item {
     position: relative;
     margin-right: 30px;

+ 33 - 0
src/views/website/home/components/Faculty.tsx

@@ -64,6 +64,9 @@ export default defineComponent({
                   <SwiperSlide>
                     <div class={"teacher_item"} onClick={() => turnPage(e._id)}>
                       <Image src={e.cover} />
+                      <div class={"item_footer"}>
+                        <div class={"name"}>{e.title}</div>
+                      </div>
                     </div>
                   </SwiperSlide>
                 );
@@ -91,11 +94,41 @@ const page = css`
     .teacher_item {
       width: 100%;
       height: 500px;
+      position: relative;
+      overflow: hidden;
       cursor: pointer;
       img {
         width: 100%;
         height: 100%;
         object-fit: cover;
+        transition: all 0.3s ease-in-out;
+      }
+      &:hover {
+        .item_footer {
+          transform: translateY(0);
+        }
+        img {
+          transform: scale(1.2);
+        }
+      }
+      .item_footer {
+        position: absolute;
+        display: inline-flex;
+        flex-direction: column;
+        justify-content: flex-end;
+        bottom: 0;
+        left: 0;
+        width: 100%;
+        height: 140px;
+        padding: 0 24px 20px;
+        transform: translateY(100%);
+        background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, #000000 100%);
+        transition: all 0.3s ease-in-out;
+      }
+      .name {
+        color: #fff;
+        font-size: 18px;
+        font-weight: 600;
       }
     }
   }

+ 2 - 1
src/views/website/home/components/News.tsx

@@ -243,6 +243,7 @@ const page = css`
         }
         padding: 18px 0;
         font-size: 16px;
+        line-height: 28px;
         display: flex;
         align-items: center;
         justify-content: space-between;
@@ -254,7 +255,7 @@ const page = css`
         &:first-child {
           padding-top: 0;
           font-size: 24px;
-          line-height: 1.5;
+          line-height: 36px;
           .item {
             padding-right: 0;
             overflow: auto;

+ 1 - 1
src/views/website/home/components/Speciality.tsx

@@ -3,7 +3,7 @@ import { ArrowRightOutlined } from "@ant-design/icons-vue";
 import { defineComponent, onMounted, reactive, watch } from "vue";
 import { useArticle, useCategory } from "@/modules";
 import { RouterLink } from "vue-router";
-import { renderSummary } from "@/modules/objects";
+import { renderSummary, renderTitle } from "@/modules/objects";
 
 export default defineComponent({
   setup() {

+ 9 - 3
src/views/website/home/components/Talents.tsx

@@ -36,8 +36,10 @@ export default defineComponent({
         return;
       }
       const children = currCategory.children;
-
       const res = children.map((e: any) => {
+        if (e.children && e.children.length > 0) {
+          return getList(e.children[0]._id);
+        }
         return getList(e._id);
       });
       Promise.all(res).then(() => {
@@ -103,10 +105,14 @@ export default defineComponent({
               },
               default: () => {
                 return state.tabs.map((item: any) => {
-                  const list = state.allList.get(item._id);
+                  let currId = item._id;
+                  if (item.children && item.children.length > 0) {
+                    currId = item.children[0]._id;
+                  }
+                  const list = state.allList.get(currId);
                   return (
                     <TabPane tab={item.name} key={item._id}>
-                      {list.length > 0 ? (
+                      {list && list.length > 0 ? (
                         <div class={"tab_list"}>
                           {list.map((e: ArticleItem) => {
                             return (