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>
<div class="box">
<div style="height: 100%">
<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>
<span>票据入库管理</span>
</t-menu-item>
</t-submenu>
<t-submenu value="2" title="应收款管理">

View File

@ -4,28 +4,93 @@
<t-form
ref="form"
:data="formData"
label-width="calc(2em + 24px)"
label-width="calc(2em + 40px)"
:layout="formData.layout"
scroll-to-first-error="smooth"
@reset="onReset"
@submit="onSubmit"
class="scarch-from"
>
<t-form-item label="名字" name="name">
<t-input v-model="formData.name"></t-input>
</t-form-item>
<div style="margin-left: 1rem">
<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 label="入库日期:" name="password">
<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>
</div>
<div class="table-box">
<t-base-table
row-key="index"
:data="tableData"
:columns="columns"
></t-base-table>
</div>
</div>
</template>
<script setup>
import { reactive } from "vue";
import { reactive, ref } from "vue";
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({
layout: "inline",
name: "",
@ -49,7 +114,21 @@ const onSubmit = ({ validateResult, firstError }) => {
<style scoped lang="less">
.scarch-box {
width: 100%;
height: 10%;
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>

View File

@ -1,55 +1,93 @@
<template>
<div class="login-container">
<t-space style="width: 350px">
<t-form
:data="formData"
ref="form"
@reset="onReset"
@submit="onSubmit"
:colon="true"
:labelWidth="80"
class="login-form"
>
<h2 class="login-title">登录</h2>
<t-form-item name="account">
<t-input
clearable
v-model="formData.account"
placeholder="请输入工号或学号"
<div style="width: 100%" class="login-right">
<div class="login-form">
<div class="login-box">
<t-form
:data="formData"
:rules="rules"
ref="form"
@reset="onReset"
@submit="onSubmit"
:colon="true"
:labelWidth="0"
>
<desktop-icon slot:string="prefix-icon"></desktop-icon>
</t-input>
</t-form-item>
<t-form-item name="password">
<t-input
type="password"
clearable
v-model="formData.password"
placeholder="请输入密码"
>
<lock-on-icon slot:string="prefix-icon"></lock-on-icon>
</t-input>
</t-form-item>
<t-form-item>
<t-button theme="primary" type="submit" block>登录</t-button>
</t-form-item>
</t-form>
</t-space>
<h2 class="login-title">登录</h2>
<t-form-item name="account">
<t-input
clearable
v-model="formData.account"
placeholder="请输入工号或学号"
>
<desktop-icon slot:string="prefix-icon"></desktop-icon>
</t-input>
</t-form-item>
<t-form-item name="password">
<t-input
type="password"
clearable
v-model="formData.password"
placeholder="请输入密码"
>
<lock-on-icon slot:string="prefix-icon"></lock-on-icon>
</t-input>
</t-form-item>
<t-form-item>
<t-button theme="primary" type="submit" block>登录</t-button>
</t-form-item>
</t-form>
</div>
</div>
</div>
</div>
</template>
<script setup>
import { MessagePlugin } from 'tdesign-vue-next'
import { reactive } from 'vue'
import { MessagePlugin } from "tdesign-vue-next";
import { reactive, ref } from "vue";
// import { DesktopIcon, LockOnIcon } from "tdesign-icons-vue";
const INITIAL_DATA = {
account: '',
password: ''
}
account: "",
password: "",
};
const from = ref();
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 = () => {
MessagePlugin.success('重置成功')
}
@ -60,11 +98,16 @@ const onSubmit = ({ validateResult, firstError }) => {
console.log('Errors: ', validateResult)
MessagePlugin.warning(firstError)
}
}
};
const Login = async () => {
await reqLogin();
};
</script>
<style lang="less" scoped>
.login-container {
display: flex;
position: absolute;
width: 100%;
height: 100%;
@ -73,16 +116,28 @@ const onSubmit = ({ validateResult, firstError }) => {
overflow: hidden;
}
.login-form {
width: 450px;
margin: 200px;
width: 26%;
height: 40%;
background-color: rgba(255, 255, 255, 0.8);
padding: 80px;
border-radius: 20px;
border-radius: 1.25rem;
}
.login-title {
text-align: center;
font-size: 24px;
margin-bottom: 40px;
font-size: 1.5rem;
margin-bottom: 4rem;
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>