This commit is contained in:
吕才卓 2024-04-06 11:30:30 +08:00
commit c888946994
9 changed files with 236 additions and 4 deletions

20
package-lock.json generated
View File

@ -14,6 +14,7 @@
"pinia": "^2.1.7",
"tdesign-vue-next": "^1.9.3",
"vite-plugin-mock": "^3.0.1",
"vite-plugin-mock": "^3.0.1",
"vue": "^3.4.21",
"vue-router": "^4.3.0"
},
@ -1090,6 +1091,7 @@
"version": "1.0.5",
"resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz",
"integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw=="
"integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw=="
},
"node_modules/@types/lodash": {
"version": "4.14.182",
@ -1101,6 +1103,11 @@
"resolved": "https://registry.npmjs.org/@types/mockjs/-/mockjs-1.0.10.tgz",
"integrity": "sha512-SXgrhajHG7boLv6oU93CcmdDm0HYRiceuz6b+7z+/2lCJPTWDv0V5YiwFHT2ejE4bQqgSXQiVPQYPWv7LGsK1g=="
},
"node_modules/@types/mockjs": {
"version": "1.0.10",
"resolved": "https://registry.npmmirror.com/@types/mockjs/-/mockjs-1.0.10.tgz",
"integrity": "sha512-SXgrhajHG7boLv6oU93CcmdDm0HYRiceuz6b+7z+/2lCJPTWDv0V5YiwFHT2ejE4bQqgSXQiVPQYPWv7LGsK1g=="
},
"node_modules/@types/sortablejs": {
"version": "1.15.8",
"resolved": "https://registry.npmmirror.com/@types/sortablejs/-/sortablejs-1.15.8.tgz",
@ -1339,6 +1346,18 @@
"node": ">= 8"
}
},
"node_modules/anymatch": {
"version": "3.1.3",
"resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz",
"integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
"dependencies": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
@ -2083,6 +2102,7 @@
"version": "2.1.2",
"resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/nanoid": {
"version": "3.3.7",

View File

@ -0,0 +1,27 @@
<template>
<div class="box">
<t-menu>
<t-submenu value="1" title="财务票据管理">
<template #icon>
<t-icon name="application" />
</template>
<t-menu-item value="1-1" to="/Bill/BillStock">
<span>菜单二</span>
</t-menu-item>
</t-submenu>
</t-menu>
</div>
</template>
<script setup></script>
<style lang="less" scoped>
.t-demo-collapse-btn {
color: #fff;
&:hover {
background-color: #4b4b4b;
border-color: transparent;
--ripple-color: #383838;
}
}
</style>

View File

@ -0,0 +1,14 @@
<template>
<div>
<t-layout>
<t-content>
<RouterView />
</t-content>
<t-footer>Footer</t-footer>
</t-layout>
</div>
</template>
<script setup></script>
<style lang="scss" scoped></style>

View File

@ -0,0 +1,58 @@
<template>
<div>
<t-head-menu v-model="menu1Value" theme="light" @change="changeHandler">
<template #logo>
<img
height="28"
src="https://tdesign.gtimg.com/site/baseLogo-light.png"
alt="logo"
/>
</template>
<t-menu-item value="item1"> 菜单1 </t-menu-item>
<t-menu-item value="item2"> 菜单2 </t-menu-item>
<t-menu-item value="item4" :disabled="true"> 禁用菜单 </t-menu-item>
<template #operations>
<t-button variant="text" shape="square">
<template #icon><t-icon name="search" /></template>
</t-button>
<t-button variant="text" shape="square">
<template #icon><t-icon name="mail" /></template>
</t-button>
<t-button variant="text" shape="square">
<template #icon><t-icon name="user" /></template>
</t-button>
<t-button variant="text" shape="square">
<template #icon><t-icon name="ellipsis" /></template>
</t-button>
</template>
</t-head-menu>
</div>
</template>
<script setup>
import { ref } from 'vue'
const menu1Value = ref('item2')
const changeHandler = active => {
console.log('change', active)
}
</script>
<style lang="less" scoped>
.t-menu__operations {
.t-button {
margin-left: 8px;
}
}
.t-demo-menu--dark {
.t-button {
color: #fff;
&:hover {
background-color: #4b4b4b;
border-color: transparent;
--ripple-color: #383838;
}
}
}
</style>

View File

@ -0,0 +1,22 @@
<template>
<t-layout>
<t-header>
<LHeader />
</t-header>
<t-layout>
<t-aside>
<LAside />
</t-aside>
<t-content>
<LContent />
</t-content>
</t-layout>
</t-layout>
</template>
<script setup>
import LHeader from "./components/LayoutHeader.vue";
import LAside from "./components/LayoutAside.vue";
import LContent from "./components/LayoutContent.vue";
</script>
<style scoped></style>

View File

@ -0,0 +1,55 @@
<template>
<div class="back-color">
<div class="scarch-box">
<t-form
ref="form"
:data="formData"
label-width="calc(2em + 24px)"
:layout="formData.layout"
scroll-to-first-error="smooth"
@reset="onReset"
@submit="onSubmit"
>
<t-form-item label="名字" name="name">
<t-input v-model="formData.name"></t-input>
</t-form-item>
<t-form-item label="密码" name="password">
<t-input v-model="formData.password" type="password"></t-input>
</t-form-item>
</t-form>
</div>
</div>
</template>
<script setup>
import { reactive } from "vue";
import { MessagePlugin } from "tdesign-vue-next";
const formData = reactive({
layout: "inline",
name: "",
password: "",
});
const onReset = () => {
MessagePlugin.success("重置成功");
};
const onSubmit = ({ validateResult, firstError }) => {
if (validateResult === true) {
MessagePlugin.success("提交成功");
} else {
console.log("Validate Errors: ", firstError, validateResult);
MessagePlugin.warning(firstError);
}
};
</script>
<style scoped lang="less">
.scarch-box {
width: 100%;
height: 10%;
background-color: @base-white-color;
}
</style>

View File

@ -1,20 +1,33 @@
import { createRouter, createWebHistory } from "vue-router";
import HomeView from "@/pages/index.vue";
import FinanceBillManage from "./modules/financeBillManage";
import Login from "@/pages/login/index.vue";
import Layout from "@/layout/index.vue";
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes: [
{
path: "/",
name: "home",
component: HomeView,
redirect: "/accounts",
meta: { title: "应收款管理", name: "accounts" },
component: Layout,
children: [
{
path: "/accounts",
name: "Accounts",
component: () => import("@/pages/index.vue"),
meta: {
title: "应收款管理",
},
},
],
},
{
path: "/login",
name: "login",
component: Login,
},
...FinanceBillManage,
],
});

View File

@ -0,0 +1,23 @@
import Layout from "@/layout/index.vue";
import BillManage from "@/pages/finance-bill-manage/billStock.vue";
const financeBillManage = [
{
path: "/Bill",
name: "bill",
component: Layout,
meta: { title: "票据管理", name: "resource" },
children: [
{
path: "BillStock",
name: "billStock",
component: BillManage,
meta: {
title: "票据上传",
},
},
],
},
];
export default financeBillManage;

View File

@ -186,7 +186,7 @@ pre {
.back-color {
background-color: #f5f7fb;
padding: 16px 24px;
height: calc(95vh - 64px);
height: calc(100vh - 128px);
overflow-y: auto;
overflow-x: hidden;
}