liyongli 2 år sedan
förälder
incheckning
caa3a21d78

+ 1 - 1
public/index.html

@@ -4,7 +4,7 @@
     <meta charset="utf-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width,initial-scale=1.0">
-    <link rel="icon" href="https://home.sxtvs.com.cn/images/favicon.ico">
+    <link rel="icon" href="https://home.sxtvs.net/images/favicon.ico">
     <title></title>
   </head>
   <body>

+ 2 - 0
src/App.vue

@@ -13,11 +13,13 @@ export default {
 * {
   margin: 0;
   padding: 0;
+  box-sizing: border-box;
 }
 #app {
   font-family: Avenir, Helvetica, Arial, sans-serif;
   -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
+  font-weight: 400;
   color: #2c3e50;
   width: 100vw;
   height: 100vh;

BIN
src/assets/img/0.jpg


BIN
src/assets/img/jd.png


BIN
src/assets/img/sj.png


+ 32 - 0
src/router/allMedia.js

@@ -0,0 +1,32 @@
+export default [
+  // 登录
+  {
+    path: '/login',
+    name: 'Login',
+    component: () =>
+      import(/* webpackChunkName: "Login" */ '../view/allMedia/login.vue'),
+  },
+  // 主页
+  {
+    path: '/main_home',
+    name: 'mainHome',
+    component: () =>
+      import(/* webpackChunkName: "mainHome" */ '../view/allMedia/main.vue'),
+    children: [
+      {
+        path: 'proofread',
+        component: () =>
+          import(
+            /* webpackChunkName: "onlineText" */ '../view/allMedia/proofread.vue'
+          ),
+      },
+      {
+        path: 'analysis',
+        component: () =>
+          import(
+            /* webpackChunkName: "analysis" */ '../view/allMedia/analysis.vue'
+          ),
+      },
+    ],
+  },
+];

+ 4 - 0
src/router/index.js

@@ -1,16 +1,20 @@
 import { createRouter, createWebHashHistory } from 'vue-router';
 
+import allMedia from "./allMedia";
+
 import NotFound from "../errorPage/404.vue";
 
 const router = createRouter({
   history: createWebHashHistory(process.env.BASE_URL),
   routes: [
+    // 搞钱校对-全媒体平台
     {
       path: '/Home',
       name: 'Home',
       component: () =>
         import(/* webpackChunkName: "Home" */ '../view/onlineText.vue'),
     },
+    ...allMedia,
     {
         path: "/:pathMatch(.*)*",
         name: "NotFound",

+ 13 - 0
src/view/allMedia/analysis.vue

@@ -0,0 +1,13 @@
+<template>
+    <el-scrollbar>
+        123
+    </el-scrollbar>
+  </template>
+  
+  <script setup>
+  
+  </script>
+  
+  <style scoped>
+  </style>
+  

+ 86 - 0
src/view/allMedia/login.vue

@@ -0,0 +1,86 @@
+<template>
+  <div class="login">
+    <el-form
+      ref="formEle"
+      :model="form"
+      size="large"
+      class="mo"
+      :rules="rules"
+    >
+      <el-form-item label="账号" prop="name">
+        <el-input placeholder="请输入账号" v-model="form.name" />
+      </el-form-item>
+      <el-form-item label="密码" prop="pwd">
+        <el-input placeholder="请输入密码" type="password" v-model="form.pwd" />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" @click="onSubmit">
+          登录
+          <el-icon style="vertical-align: middle" class="el-icon--right">
+            <Right />
+          </el-icon>
+        </el-button>
+      </el-form-item>
+    </el-form>
+  </div>
+</template>
+
+<script setup>
+import { reactive, ref } from 'vue';
+import { useRouter, useRoute } from 'vue-router';
+const router = useRouter();
+const route = useRoute();
+const formEle = ref(null);
+const form = reactive({
+  name: '',
+  pwd: '',
+});
+const rules = reactive({
+  name: [{ required: true, message: '请输入用户名', trigger: 'blur' }],
+  pwd: [{ required: true, message: '请输入密码', trigger: 'blur' }],
+});
+
+async function onSubmit() {
+  await formEle.value.validate((valid, fields) => {
+    if (!valid) return console.log('error submit!', fields);
+    router.replace({
+      path: '/main_home/proofread',
+      query: {
+        ...route.query,
+      },
+    });
+  });
+}
+</script>
+
+<style scoped>
+.login * {
+  box-sizing: border-box;
+}
+.login {
+  width: 100%;
+  height: 100%;
+  font-weight: 500;
+  font-size: 14px;
+  position: relative;
+}
+
+.login .mo {
+  top: 50%;
+  left: 50%;
+  width: 35%;
+  max-width: 500px;
+  padding: 1em;
+  position: absolute;
+  text-align: center;
+  transform: translate(-50%, -50%);
+}
+
+.login .el-input__inner,
+.el-form-item--large .el-form-item__label {
+  height: 55px;
+  line-height: 55px;
+}
+</style>
+
+<style></style>

+ 118 - 0
src/view/allMedia/main.vue

@@ -0,0 +1,118 @@
+<template>
+  <el-scrollbar>
+    <div class="main">
+      <el-scrollbar class="menu">
+        <div
+          @click="() => selectMenuFunc(item)"
+          v-for="(item, index) in menu"
+          :key="index"
+          :class="{
+            'menu-item': true,
+            active: selectMenu == item.path,
+          }"
+        >
+          <img :src="item.icon" class="icon" />
+          <span v-text="item.title"></span>
+        </div>
+      </el-scrollbar>
+      <router-view class="rightMain" />
+    </div>
+  </el-scrollbar>
+</template>
+
+<script setup>
+import { ref } from 'vue';
+import { useRoute, useRouter } from 'vue-router';
+
+const Router = useRouter();
+const Route = useRoute();
+const selectMenu = ref(Route.fullPath);
+const menu = ref([
+  {
+    title: '智能校对',
+    icon: require('../../assets/img/jd.png'),
+    path: '/main_home/proofread',
+  },
+  {
+    title: '数据分析',
+    icon: require('../../assets/img/sj.png'),
+    path: '/main_home/analysis',
+  },
+]);
+
+const selectMenuFunc = item => {
+  if (!item.path || Route.fullPath == item.path) return;
+  selectMenu.value = item.path;
+  Router.push({
+    path: item.path,
+    query: {},
+  });
+};
+</script>
+
+<style scoped>
+.main {
+  width: 100vw;
+  height: 100vh;
+  min-width: 960px;
+  overflow: auto;
+  display: flex;
+}
+
+.main .menu {
+  position: relative;
+  display: inline-block;
+  width: 35%;
+  max-width: 300px;
+  min-width: 200px;
+  padding: 48px 32px 0;
+  height: 99.7%;
+  flex: 1;
+}
+
+.main .icon {
+  width: 1.8em;
+  vertical-align: middle;
+  margin-right: 6px;
+}
+
+.main .rightMain {
+  display: inline-block;
+  vertical-align: top;
+  height: 100%;
+  flex: 1;
+}
+
+.menu-item {
+  padding: 10px 16px;
+  cursor: pointer;
+  font-size: 16px;
+  color: rgb(96, 98, 102);
+}
+.main .min-item {
+  padding-left: 5px;
+  text-align: center;
+  padding-right: 5px;
+  width: 60px;
+  background-color: #ddd;
+}
+
+.min-item .menu-item {
+  padding: 10px 0px;
+}
+.min-item .icon {
+  margin: 0;
+}
+.menu-item:hover {
+  color: rgb(64, 158, 255);
+}
+.active {
+  font-weight: 600;
+  border-radius: 8px;
+  color: rgb(64, 158, 255);
+  background-color: rgba(64, 158, 255, 0.1);
+}
+.main .el-scrollbar {
+  display: inline-block;
+}
+</style>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 468 - 0
src/view/allMedia/proofread.vue


Vissa filer visades inte eftersom för många filer har ändrats