This commit is contained in:
sundongyu 2024-04-06 14:18:34 +08:00
commit 8bb6b10f02
4 changed files with 210 additions and 60 deletions

16
mock/modules/ycy.js Normal file
View File

@ -0,0 +1,16 @@
import Mock from "mockjs";
const StockList = Mock.mock({
"list|20-30": [
{
"id|+1": "0",
billserial: "@integer(10000000000,19999999999)",
billType: "@integer(0,5)",
stockNum: "前端",
unit: "前端",
stockDate: "@date",
operator: "@cname",
remark: " @integer(10000000000,19999999999)",
},
],
});

View File

@ -1,12 +1,12 @@
<template> <template>
<div class="box"> <div style="height: 100%">
<t-menu> <t-menu>
<t-submenu value="1" title="财务票据管理"> <t-submenu value="1" title="财务票据管理">
<template #icon> <template #icon>
<t-icon name="application" /> <t-icon name="application" />
</template> </template>
<t-menu-item value="1-1" to="/Bill/BillStock"> <t-menu-item value="1-1" to="/Bill/BillStock">
<span>菜单二</span> <span>票据入库管理</span>
</t-menu-item> </t-menu-item>
</t-submenu> </t-submenu>
<t-submenu value="2" title="应收款管理"> <t-submenu value="2" title="应收款管理">

View File

@ -4,28 +4,93 @@
<t-form <t-form
ref="form" ref="form"
:data="formData" :data="formData"
label-width="calc(2em + 24px)" label-width="calc(2em + 40px)"
:layout="formData.layout" :layout="formData.layout"
scroll-to-first-error="smooth" scroll-to-first-error="smooth"
@reset="onReset" class="scarch-from"
@submit="onSubmit"
> >
<t-form-item label="名字" name="name"> <div style="margin-left: 1rem">
<t-form-item label="票据编号:" name="name">
<t-input v-model="formData.name"></t-input> <t-input v-model="formData.name"></t-input>
</t-form-item> </t-form-item>
<t-form-item label="密码" name="password"> <t-form-item label="入库日期:" name="password">
<t-input v-model="formData.password" type="password"></t-input> <t-input v-model="formData.password"></t-input>
</t-form-item>
</div>
<t-form-item>
<t-button theme="primary" @click="onSubmit">查询</t-button>
<t-button theme="primary" @click="onReset">重置</t-button>
</t-form-item> </t-form-item>
</t-form> </t-form>
</div> </div>
<div class="table-box">
<t-base-table
row-key="index"
:data="tableData"
:columns="columns"
></t-base-table>
</div>
</div> </div>
</template> </template>
<script setup> <script setup>
import { reactive } from "vue"; import { reactive, ref } from "vue";
import { MessagePlugin } from "tdesign-vue-next"; import { MessagePlugin } from "tdesign-vue-next";
const tableData = ref();
const columns = ref([
{
title: "票据编号",
colkey: "billserial",
align: "center",
width: 100,
},
{
title: "票据类型",
colkey: "billType",
align: "center",
width: 100,
},
{
title: "入库数量",
colkey: "stockNum",
align: "center",
width: 100,
},
{
title: "单位(如:本、张)",
colkey: "unit",
align: "center",
width: 100,
},
{
title: "入库日期",
colkey: "stockDate",
align: "center",
width: 100,
},
{
title: "操作员",
colkey: "operator",
align: "center",
width: 100,
},
{
title: "备注",
colkey: "remark",
align: "center",
width: 100,
},
{
colKey: "status",
title: "操作",
width: 120,
align: "center",
fixed: "right",
},
]);
const formData = reactive({ const formData = reactive({
layout: "inline", layout: "inline",
name: "", name: "",
@ -49,7 +114,21 @@ const onSubmit = ({ validateResult, firstError }) => {
<style scoped lang="less"> <style scoped lang="less">
.scarch-box { .scarch-box {
width: 100%; width: 100%;
height: 10%;
background-color: @base-white-color; background-color: @base-white-color;
margin-bottom: 2rem;
.scarch-from {
height: 60px;
display: flex;
justify-content: space-between;
align-items: center;
}
}
.table-box {
height: 41rem;
background-color: @base-white-color;
padding: 1rem;
}
/deep/ .t-form__controls-content {
justify-content: space-between;
} }
</style> </style>

View File

@ -1,16 +1,19 @@
<template> <template>
<div class="login-container"> <div class="login-container">
<t-space style="width: 350px"> <div style="width: 100%" class="login-right">
<div class="login-form">
<div class="login-box">
<t-form <t-form
:data="formData" :data="formData"
:rules="rules"
ref="form" ref="form"
@reset="onReset" @reset="onReset"
@submit="onSubmit" @submit="onSubmit"
:colon="true" :colon="true"
:labelWidth="80" :labelWidth="0"
class="login-form"
> >
<h2 class="login-title">登录</h2> <h2 class="login-title">登录</h2>
<t-form-item name="account"> <t-form-item name="account">
<t-input <t-input
clearable clearable
@ -34,22 +37,57 @@
<t-button theme="primary" type="submit" block>登录</t-button> <t-button theme="primary" type="submit" block>登录</t-button>
</t-form-item> </t-form-item>
</t-form> </t-form>
</t-space> </div>
</div>
</div>
</div> </div>
</template> </template>
<script setup> <script setup>
import { MessagePlugin } from 'tdesign-vue-next' import { MessagePlugin } from "tdesign-vue-next";
import { reactive } from 'vue' import { reactive, ref } from "vue";
// import { DesktopIcon, LockOnIcon } from "tdesign-icons-vue"; // import { DesktopIcon, LockOnIcon } from "tdesign-icons-vue";
const INITIAL_DATA = { const INITIAL_DATA = {
account: '', account: "",
password: '' password: "",
} };
const from = ref();
const formData = reactive({ const formData = reactive({
...INITIAL_DATA ...INITIAL_DATA,
}) });
const rules = reactive({
account: [
{
required: true,
message: "必须填写",
},
{
min: 10,
message: "输入不正确",
},
{
max: 10,
message: "输入不正确",
},
],
password: [
{
required: true,
message: "密码必填",
},
{
len: 8,
message: "请输入 8 位密码",
},
{
pattern: /[A-Z]+/,
message: "密码必须包含大写字母",
},
],
});
const onReset = () => { const onReset = () => {
MessagePlugin.success('重置成功') MessagePlugin.success('重置成功')
} }
@ -60,11 +98,16 @@ const onSubmit = ({ validateResult, firstError }) => {
console.log('Errors: ', validateResult) console.log('Errors: ', validateResult)
MessagePlugin.warning(firstError) MessagePlugin.warning(firstError)
} }
} };
const Login = async () => {
await reqLogin();
};
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.login-container { .login-container {
display: flex;
position: absolute; position: absolute;
width: 100%; width: 100%;
height: 100%; height: 100%;
@ -73,16 +116,28 @@ const onSubmit = ({ validateResult, firstError }) => {
overflow: hidden; overflow: hidden;
} }
.login-form { .login-form {
width: 450px; width: 26%;
margin: 200px; height: 40%;
background-color: rgba(255, 255, 255, 0.8); background-color: rgba(255, 255, 255, 0.8);
padding: 80px; border-radius: 1.25rem;
border-radius: 20px;
} }
.login-title { .login-title {
text-align: center; text-align: center;
font-size: 24px; font-size: 1.5rem;
margin-bottom: 40px; margin-bottom: 4rem;
color: #333; color: #333;
} }
.login-box {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
.login-right {
width: 50%;
display: flex;
align-items: center;
justify-content: center;
}
</style> </style>