feat: 票据入库管理页面完成

This commit is contained in:
ycy 2024-04-06 14:17:49 +08:00
parent 5b66b7a60f
commit a949bff448
4 changed files with 127 additions and 25 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

@ -31,7 +31,9 @@
</t-input> </t-input>
</t-form-item> </t-form-item>
<t-form-item> <t-form-item>
<t-button theme="primary" type="submit" block>登录</t-button> <t-button theme="primary" type="submit" block @click="Login"
>登录</t-button
>
</t-form-item> </t-form-item>
</t-form> </t-form>
</t-space> </t-space>
@ -41,6 +43,7 @@
<script setup> <script setup>
import { MessagePlugin } from "tdesign-vue-next"; import { MessagePlugin } from "tdesign-vue-next";
import { reactive } from "vue"; import { reactive } from "vue";
import { reqLogin } from "@/api/login/index";
// import { DesktopIcon, LockOnIcon } from "tdesign-icons-vue"; // import { DesktopIcon, LockOnIcon } from "tdesign-icons-vue";
const INITIAL_DATA = { const INITIAL_DATA = {
@ -61,9 +64,13 @@ const onSubmit = ({ validateResult, firstError }) => {
MessagePlugin.warning(firstError); MessagePlugin.warning(firstError);
} }
}; };
const Login = async () => {
await reqLogin();
};
</script> </script>
<style lang="scss" scoped> <style lang="less" scoped>
.login-container { .login-container {
position: absolute; position: absolute;
width: 100%; width: 100%;
@ -83,6 +90,6 @@ const onSubmit = ({ validateResult, firstError }) => {
text-align: center; text-align: center;
font-size: 24px; font-size: 24px;
margin-bottom: 40px; margin-bottom: 40px;
color:#333 color: #333;
} }
</style> </style>